Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2340384ybz; Thu, 23 Apr 2020 16:20:20 -0700 (PDT) X-Google-Smtp-Source: APiQypLkJGhkjWLOD1/E9aEihCwNt5GPnirRshDetErW/MMukDW6S5JSOTUfFJk9tOKXyd3WK0vX X-Received: by 2002:a05:6402:b2a:: with SMTP id bo10mr5086065edb.366.1587684020057; Thu, 23 Apr 2020 16:20:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587684020; cv=none; d=google.com; s=arc-20160816; b=BHNE2ZWVjAeIEpw6BK1kno9OGk3qFa9wTfoPELgDBh82SeY4yLJlOBaEmE42pyLsxJ Qjk4O39Jda3XE6TkrZkSYOIbNu2iQAXmzSpm/jRGdLr3ubh0BsbJEI+jWPVIo5Um46Hi 2LDi8T5WgQo4np4PHXZ5ImJA2APijSxOTpQTcGbsFJYBPWTC+RtRrpT+FOWA/kYvYRTa +XQRVTDrxD/fx//JkP+/9vfjPavV4rc2QQTIC0hgZB+8ok05eJXsukVSNsBiUIvLNgid UlC2gYf04ZVfclKInrS05HiGkWAotnzTpiBJ/jI1PjSJHMPm5ZIFlpF7lOEOZwEyVg6y EBjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=6JAZYCY/LkjrMJH7+YZiNplUjopiE3JNU4uCXA47OxI=; b=tQh6C2nm+sbGPOCh7tZjjDxaY6rnVfQZbK9AP/wQNA5vXNaLanPM0qzAPoNcIFd6QW NmQX3tjNsECv5NXBvnsbqgnf7QqwV7bAGroAqzga9rHuZeDc9hvswhyRhvOx7PstFu/y qanIQEJskvBbvELsvurSJNCqfjy0tWuvrKEZzXh5iaRVdQp0CKPgRSpSh7gsT7+lUbWC UtEeRK6jQmjmiSTW0gKF429zC0Nv706d7sKB7iquyr/cZNvoMPYk2HneSa7Wiu9IFZlM fF2Ox0wKl2zGZPTvThKiZxDCpdsdMJfnNwBpwBchLW1rKuC8N3cpxnSvsPC+AifsyH3i 6okg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p10si2076906edq.609.2020.04.23.16.19.56; Thu, 23 Apr 2020 16:20:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729217AbgDWXSW (ORCPT + 99 others); Thu, 23 Apr 2020 19:18:22 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:48994 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728273AbgDWXGi (ORCPT ); Thu, 23 Apr 2020 19:06:38 -0400 Received: from [192.168.4.242] (helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jRkvP-0004fP-2K; Fri, 24 Apr 2020 00:06:31 +0100 Received: from ben by deadeye with local (Exim 4.93) (envelope-from ) id 1jRkvN-00E6lt-9c; Fri, 24 Apr 2020 00:06:29 +0100 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, Denis Kirjanov , "Johan Hovold" , "Greg Kroah-Hartman" Date: Fri, 24 Apr 2020 00:05:13 +0100 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 086/245] USB: serial: io_edgeport: fix epic endpoint lookup In-Reply-To: X-SA-Exim-Connect-IP: 192.168.4.242 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.83-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Johan Hovold commit 7c5a2df3367a2c4984f1300261345817d95b71f8 upstream. Make sure to use the current alternate setting when looking up the endpoints on epic devices to avoid binding to an invalid interface. Failing to do so could cause the driver to misbehave or trigger a WARN() in usb_submit_urb() that kernels with panic_on_warn set would choke on. Fixes: 6e8cf7751f9f ("USB: add EPIC support to the io_edgeport driver") Signed-off-by: Johan Hovold Link: https://lore.kernel.org/r/20191210112601.3561-5-johan@kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/usb/serial/io_edgeport.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- a/drivers/usb/serial/io_edgeport.c +++ b/drivers/usb/serial/io_edgeport.c @@ -2859,16 +2859,18 @@ static int edge_startup(struct usb_seria response = 0; if (edge_serial->is_epic) { + struct usb_host_interface *alt; + + alt = serial->interface->cur_altsetting; + /* EPIC thing, set up our interrupt polling now and our read * urb, so that the device knows it really is connected. */ interrupt_in_found = bulk_in_found = bulk_out_found = false; - for (i = 0; i < serial->interface->altsetting[0] - .desc.bNumEndpoints; ++i) { + for (i = 0; i < alt->desc.bNumEndpoints; ++i) { struct usb_endpoint_descriptor *endpoint; int buffer_size; - endpoint = &serial->interface->altsetting[0]. - endpoint[i].desc; + endpoint = &alt->endpoint[i].desc; buffer_size = usb_endpoint_maxp(endpoint); if (!interrupt_in_found && (usb_endpoint_is_int_in(endpoint))) {