Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3349028pxf; Mon, 15 Mar 2021 07:42:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3qEe8sY+A9TCWycncQE847wzldd80je89yXON7Zm9jNxX4CVg2nE19COZnJ6DltNisEbO X-Received: by 2002:a17:906:5e4a:: with SMTP id b10mr24047142eju.116.1615819348855; Mon, 15 Mar 2021 07:42:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615819348; cv=none; d=google.com; s=arc-20160816; b=ZMWb2iaa5uBT7L8BQDckgaubnKkrRyOToMVU5GDa/WNLKtls2SJRI2GMmFd1Rl3tGr x+Cmsrs5asEHWmKLMUKM81ptVjYzoU+/s0yJATpS5f5WRqIKUcZro6/u2zfc3zt5c2kJ cHYEDxT0wezieJ2M0P32Gu+a7ubaJEkUarWhjOtKiuPNwVVU6Rx3mWyyTimTJpKGMDQI tEuKHIdgEHbba9gdQfMjrR31T/Y9FPlQ1w4Bafdh9m8yRCwrJMOwGMpshVY5I4hl8Q5H zcxQkmNEpMu5OEgV7BNYFXlpIUvSFeiMmOiEYqetFQ8i9udkc6cqSMsVk8wvX49nCain G4SQ== 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=roHE61+SfUDj0nSd1MnQHbCpxeVy4If3ZPUcU2AV3uxCQguvD3dayKPbiIPhusPEGv irk5AkgyDMXuWbIY4Ti1DdQtm6G1kIbTTmLTNT0L8DrG+hv7ldSOs3YPqb5UNfcVX7UC 7I4ogGs0sCO7rhFlBRQflHfEUNW3e0Uv12KxVQByXo6fx9X5Cq8yQLGwhqa8oD1xpHyk pPiiZ9+8Dgcs6oIehfOu9quDHnkkA8SS0U77Rsnu+yXj7U4HOkWuekO10WdvzA4hLpa4 rlvC7oCJZ1b7L4Kbs7cVT/BTeUIeJunq/F9cry7CmyybpcbV4cBDuQ1aBSgGze/Wlhkk 7JqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Lp8XVwZo; 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 a17si11227554eju.485.2021.03.15.07.42.05; Mon, 15 Mar 2021 07:42:28 -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=Lp8XVwZo; 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 S237248AbhCOOk0 (ORCPT + 99 others); Mon, 15 Mar 2021 10:40:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:49114 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233844AbhCOOCb (ORCPT ); Mon, 15 Mar 2021 10:02:31 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id CA78364E83; Mon, 15 Mar 2021 14:02:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615816950; bh=I5/Ju2sqpmZF9GUUl8cG9iEELjgWoaYlwhzX40Zzz+w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Lp8XVwZoNwH/7NyzGLAMkudtEhl3CNS17lz4WWNWsH8qs47H5Ut2B4eeYvjW57EiP D4UCE9FbE2z/nrmeqbGxT5uLsuPjpwt7NoFUOp/mB+CAKiIYWHp46XfvcQuZn4qbyl k3P+kRbWowVeSkC0XaOnUXdDXoPiH74Nyn1ztV6I= From: gregkh@linuxfoundation.org To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH 5.10 207/290] usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM Date: Mon, 15 Mar 2021 14:55:00 +0100 Message-Id: <20210315135548.925921517@linuxfoundation.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315135541.921894249@linuxfoundation.org> References: <20210315135541.921894249@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); }