Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3521032pxf; Mon, 15 Mar 2021 11:23:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwAMfFD1FdRgmU0hPClJ7rRxzyepkZT7lJlCCN0dGuh0GFVdf7N2pTrlUqCE3hu+5z1yfbR X-Received: by 2002:a17:907:2112:: with SMTP id qn18mr24709414ejb.220.1615832631678; Mon, 15 Mar 2021 11:23:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615832631; cv=none; d=google.com; s=arc-20160816; b=yyVrNrJhbLKjiCHp6h0vlM2o62DUeQRNKCz3MzSxgAz6adGz1A/KJnliYykuWLO9aT OW9+YPykZjeOHthqZ5tTLTfr+5dlySR51qd/zAHK7jGzI3n//63biG4mdaO1okdTBeJ0 lQyVt9y/fLkIgMtT8qUcgP1SleY536riEkaYLG3MR3AERXdxOLzyIuvGLZPnYXl2AbYK Q+V74JdNFwgRR1t6h7S/KgksvB4/BIQocGoeXE/rRJbyyx+rvVDkCTF//IZ24qa7BBgG pBl8Pl/YyretTW0ZlLzImWOd+xX5Wcs3Y7BldMaa8fnYr5Nw5/vG5GEo0jR5m50NTeKa 04aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7sXxXxWoCMBLZCxwYIHk2FWhafYb6bN1Jxo/G0k8ENs=; b=AXiJXo/hrcNE5dCyN+zDeXCIGmuiRiSk+xPn/yEPBi7zPjcJtyH67P67GYAn1afy26 LCI4FnXlzWIBm6/5ZGRgGKMKX1QpwAzZupLNULaGSy0Ow4BLYJo4tA6H/VdhNKimLpBs auNVH1vYR90Evtk7CPM09oLXIOfzNFjX+A/qwx3frn9N99WrCkGOak7OsfuSd7ohHlFW bOdWyWJghOJQpC+QsdwcELwsHoDc6Fj7O0l0MjkM/uoBIbwZ+q+cIuA48dmmCq9CBTah a6vH0HA1bJcGxKjG/SeNEowsYAm4uXIaG+MRl/d7Wyvmq8G7cVS1Lw5hesDfAuF1sXMv tPZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xmHgCTdv; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k19si11829393eja.265.2021.03.15.11.23.29; Mon, 15 Mar 2021 11:23:51 -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; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xmHgCTdv; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238437AbhCOOXN (ORCPT + 99 others); Mon, 15 Mar 2021 10:23:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:37500 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232887AbhCOOAF (ORCPT ); Mon, 15 Mar 2021 10:00:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 54A4164F69; Mon, 15 Mar 2021 13:59:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615816788; bh=I5/Ju2sqpmZF9GUUl8cG9iEELjgWoaYlwhzX40Zzz+w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xmHgCTdvvEXa509HzwRzsKcpsliJh6Mz9R8ltjy9IAjXdSphkhfYw25B7+sY5rTWk pxWDL0Rcqf5AGK49eR3FiSeVJGeL410+tUvSLdBYSOt04aXZYGbHWNoS8b2L9ZwUZ2 AzFF0uydqQxpKnfQvmJNIp69U/8iENmKlQPF14WE= From: gregkh@linuxfoundation.org To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH 5.4 110/168] usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM Date: Mon, 15 Mar 2021 14:55:42 +0100 Message-Id: <20210315135553.976127888@linuxfoundation.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315135550.333963635@linuxfoundation.org> References: <20210315135550.333963635@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Greg Kroah-Hartman From: Yoshihiro Shimoda commit b1d25e6ee57c2605845595b6c61340d734253eb3 upstream. According to the datasheet, this controller has a restriction which "set an endpoint number so that combinations of the DIR bit and the EPNUM bits do not overlap.". However, since the udc core driver is possible to assign a bulk pipe as an interrupt endpoint, an endpoint number may not match the pipe number. After that, when user rebinds another gadget driver, this driver broke the restriction because the driver didn't clear any configuration in usb_ep_disable(). Example: # modprobe g_ncm Then, EP3 = pipe 3, EP4 = pipe 4, EP5 = pipe 6 # rmmod g_ncm # modprobe g_hid Then, EP3 = pipe 6, EP4 = pipe 7. So, pipe 3 and pipe 6 are set as EP3. So, clear PIPECFG register in usbhs_pipe_free(). Fixes: dfb87b8bfe09 ("usb: renesas_usbhs: gadget: fix re-enabling pipe without re-connecting") Cc: stable Signed-off-by: Yoshihiro Shimoda Link: https://lore.kernel.org/r/1615168538-26101-1-git-send-email-yoshihiro.shimoda.uh@renesas.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/renesas_usbhs/pipe.c | 2 ++ 1 file changed, 2 insertions(+) --- a/drivers/usb/renesas_usbhs/pipe.c +++ b/drivers/usb/renesas_usbhs/pipe.c @@ -746,6 +746,8 @@ struct usbhs_pipe *usbhs_pipe_malloc(str void usbhs_pipe_free(struct usbhs_pipe *pipe) { + usbhsp_pipe_select(pipe); + usbhsp_pipe_cfg_set(pipe, 0xFFFF, 0); usbhsp_put_pipe(pipe); }