From patchwork Fri Feb 27 18:44:52 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aleksander Morgado X-Patchwork-Id: 444446 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id C0FF9140142 for ; Sat, 28 Feb 2015 05:45:06 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755080AbbB0SpA (ORCPT ); Fri, 27 Feb 2015 13:45:00 -0500 Received: from mail-wi0-f182.google.com ([209.85.212.182]:35459 "EHLO mail-wi0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755056AbbB0So7 (ORCPT ); Fri, 27 Feb 2015 13:44:59 -0500 Received: by wibbs8 with SMTP id bs8so2288351wib.0 for ; Fri, 27 Feb 2015 10:44:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=iNNwj5GVxM4WZTz0X7zkMIefn4v46NsWhs/R+ePFyxE=; b=iq0hVHexVejcKPt9QNwiYVWoAuK7padF3kUlX97fvawIYqEoMbCDWKkRsk5MP7dOeh CUGJhhWVIZqO/bGtASAKcRT2zFgzPjcJ77NxbygC2LcIee8IkyVZehw/k3b1UScJmROH 5cMTrhy/lXMbcgQGAsgMeXkuJ8wWx1WqBP17TEWWj82yGDX3YbeKHdBV8tNZuYebNNl7 5ekOEHvUenuOS1qM1WpjWxjnOYxBWRJ9lvALewjtA2JfwBcrtLzKHdN7oOArCLZKxBG0 FYyQrnuUSeJsVgFaVCG7FKG5eZxna9M7QgRWbIGax07YYg3M+SnfChOY6VH4NQmziW+G cJMg== X-Gm-Message-State: ALoCoQkgat3eFIFh7NMVTQi+AH7xlwx0WZsZJZEJLVaN8sur0YEVaz9qF8lxZ+G0NYw6pZOXbsTC X-Received: by 10.194.61.51 with SMTP id m19mr30862505wjr.39.1425062697827; Fri, 27 Feb 2015 10:44:57 -0800 (PST) Received: from athena.localdomain ([188.86.139.224]) by mx.google.com with ESMTPSA id dj4sm7122399wjc.13.2015.02.27.10.44.56 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 27 Feb 2015 10:44:57 -0800 (PST) From: Aleksander Morgado To: j.dumon@option.com Cc: linux-usb@vger.kernel.org, netdev@vger.kernel.org, Aleksander Morgado Subject: [PATCH] hso: add missing spinlock grab when iterating the serial table Date: Fri, 27 Feb 2015 19:44:52 +0100 Message-Id: <1425062692-25155-1-git-send-email-aleksander@aleksander.es> X-Mailer: git-send-email 2.3.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Access to the 'serial_table' array needs to be protected by the spinlock. Signed-off-by: Aleksander Morgado --- drivers/net/usb/hso.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 3c8dfe5..4f6deff 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -607,19 +607,24 @@ static struct hso_serial *get_serial_by_shared_int_and_type( struct hso_shared_int *shared_int, int mux) { + struct hso_serial *serial = NULL; int i, port; + unsigned long flags; port = hso_mux_to_port(mux); + spin_lock_irqsave(&serial_table_lock, flags); for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) { if (serial_table[i] && (dev2ser(serial_table[i])->shared_int == shared_int) && ((serial_table[i]->port_spec & HSO_PORT_MASK) == port)) { - return dev2ser(serial_table[i]); + serial = dev2ser(serial_table[i]); + break; } } + spin_unlock_irqrestore(&serial_table_lock, flags); - return NULL; + return serial; } static struct hso_serial *get_serial_by_index(unsigned index)