Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3519598pxf; Mon, 15 Mar 2021 11:21:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyGqyn0jri+UG4ATuVP3AiOQGDkRp8WXEKnocAUfR0ez0nYxaGvuMBUpqIimTmUlmBFy5Vb X-Received: by 2002:a17:906:f9cc:: with SMTP id lj12mr24646471ejb.544.1615832498684; Mon, 15 Mar 2021 11:21:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615832498; cv=none; d=google.com; s=arc-20160816; b=OruIIFZ9v35p1dVnKZvnV91cSlFEoD+sWftm6SYMIFU8D8Hnpu+Z1Y3gjy48B1o7cq 14Kg0TCRDQsW77iLzUV/jkiW0WqQi06xqHL4kEGWi0UU89aVRKOLu2rOVxp8a+4uRX/U EnjVCvn+9p0gTEtnnlSz+r/hptJGBX02JMXE50tVNPmgwqguvZqJw7k3cyG4V7qJ6rBR N1JV925oqcqNf6qeHjpqll9T5gAvKQO6ufx0diohL4agPvvl7p8UniC3Y5x0tCfCnt3C iQRYhDZRiPgjtGRR+2h973S/Tnh2isYXRavyEyg01/rj9RKVmzyCX5DW4eajPpPRAhAM PoQw== 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=a/Eb9KV4U9cq5gvCoud/or96LuC8jFkUv8YwOMhzlDU5OI3YwmbBHYSZ37xqbTIhmi iAM99etpA4pbXIq3VolTL2gwDXWJeesrZDOdzQ45JcpeLOds9WCBvn7gRYE1UhiQunPs UTr67JKbMBLUihCarQLTxw5PjewOajhBWU+I8w/mFpsPa77F6gGXjEX9N2uDPaTPqaD1 KxgcLfxinHqxvQydgIeWat0VUd9rYPj9s9Hq6ub6WqNHKI+4eP9RgU13mj0D0/jZJZTK iMrveNgl7Q05R1LYpVQddcsAEkBitnOMPQPb4NJs3RvZCWgVI0NJcwGb3ZgpZZt9Nrb+ Mciw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=XzZwjXMv; 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 f8si12011610ejw.51.2021.03.15.11.21.16; Mon, 15 Mar 2021 11:21:38 -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=XzZwjXMv; 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 S231401AbhCOOUW (ORCPT + 99 others); Mon, 15 Mar 2021 10:20:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:37540 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232769AbhCON7z (ORCPT ); Mon, 15 Mar 2021 09:59:55 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 64B3F64E4D; Mon, 15 Mar 2021 13:59:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615816775; bh=I5/Ju2sqpmZF9GUUl8cG9iEELjgWoaYlwhzX40Zzz+w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XzZwjXMvv4GPwfasXqYsXEvMM5/SexOgacsu7Dv61UlJSQtgNrQMSCobCRutZR6cR XJBJUr6G1HWkfkKh5j/UPafiFx11BnJdHVHgVNBg84sQbqia+nTQtnfSo6xCSZborW N97sJhMez/8PTDfMEgY/91VoaK0B3NVgzhZP/a7Q= From: gregkh@linuxfoundation.org To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH 4.14 53/95] usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM Date: Mon, 15 Mar 2021 14:57:23 +0100 Message-Id: <20210315135742.012983544@linuxfoundation.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315135740.245494252@linuxfoundation.org> References: <20210315135740.245494252@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); }