Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3311962pxf; Mon, 15 Mar 2021 06:56:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyaqriV1GpusYn70vwlfImvnGA90xEpxLTOALLYx/b362WhNq3FwoF+qM5BRa2FSUW1oIMB X-Received: by 2002:a17:906:d8d3:: with SMTP id re19mr23903337ejb.440.1615816611663; Mon, 15 Mar 2021 06:56:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615816611; cv=none; d=google.com; s=arc-20160816; b=xKrCBQ/7SV5hZbdyfnM3kRjXl3CBMws6VrE2LrdEXFQZai4equP/A/EDsNtwytKOHS /q5W+0kOrKSDMxwvoGsL4C3Lfxra12DvAS6UuHN8J2jSwcL/xcLhZRnIDom71uHVWmEl LuOeQ++ZrkgjX7P6Tk9z9ftwrPVo5PWr2O4GamcT6Ypr3t8eN3CVY1lOKJSR1rnyoF+S SyagbFlAIbaYge8wbDhSq4tyM6O8H5p+4C5o8CUs/GwPF6CVK/0lIg4JjKUj2t+kxQmv wWUnv08nAcowEdvBRCsXtrtBZRpQ9wsGTz6qRTTSKdtKSHkaVS6NPfEGJuG504CO3eKn cXEA== 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=e0t27Yh3XAiOrG0mku+JkaHveerKFVMOO5/mAJFKcNo=; b=sH640HXV6LhA1Q4vEMAoylD/xWXttPKR3OFhz8Jp0Q1mEMhccpz7r+ebl6gtiIwh81 6tKmvQK7xM9Ihk0wYHiKaxOQm/fET31s/5SF4kjaxKLZqSeJfr6cidhS9G5wvgs+bNwb Mx5j4q9A4U7pP9K7gLmCCeNA4JIl+KV06nJ1QIsFNv9S4C2m/znejLqENfo5TlpeBVAV aglfKwz194eIDAsQTUDSqmMUdf7i/hrDhG1sXWWh+JgwgtLMxzqcbmsEsVt4RAuoR6um wBGdlIiM/Bm7DOAx8fg8pEPm2qUycZxLqeLykxAxPD6ySx1H2GMioIf/S3b1mHa2qzWV o4JQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=wQnWu0fF; 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 r17si11555573eds.189.2021.03.15.06.56.29; Mon, 15 Mar 2021 06:56: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=wQnWu0fF; 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 S231638AbhCONz0 (ORCPT + 99 others); Mon, 15 Mar 2021 09:55:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:56588 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230454AbhCONxm (ORCPT ); Mon, 15 Mar 2021 09:53:42 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8446364EEC; Mon, 15 Mar 2021 13:53:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615816421; bh=i0nEAkue8GYGBWhyZ5ELNuUKpkrXLf0NFhxXfMAgPAk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wQnWu0fFN7+sMFpiIbjpba5eqUJLkh9r56GitoDP9pAhA3pOUd4g2RJC6M/uHniJF hAeXlmSqJ9JfiOJ/gh8G27fbVlHhtU4nDwJXyF52RXxNlDSC8PjwyQG1V2p5WpO7Jb vou9OhvModuO+y49iyPqao7dSsSIjLzZIS8m24wU= From: gregkh@linuxfoundation.org To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH 4.4 34/75] usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM Date: Mon, 15 Mar 2021 14:51:48 +0100 Message-Id: <20210315135209.365910941@linuxfoundation.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315135208.252034256@linuxfoundation.org> References: <20210315135208.252034256@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 @@ -805,6 +805,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); }