From: Felipe Balbi <balbi@ti.com>
To: <changbin.du@intel.com>, <johnyoun@synopsys.com>
Cc: <gregkh@linuxfoundation.org>, <linux-usb@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
"Du, Changbin" <changbin.du@intel.com>
Subject: Re: [PATCH 1/2] usb: dwc2: add ep enabled flag to avoid double enable/disable
Date: Thu, 10 Dec 2015 11:26:15 -0600 [thread overview]
Message-ID: <87zixii5ag.fsf@saruman.tx.rr.com> (raw)
In-Reply-To: <1448860888-9841-2-git-send-email-changbin.du@intel.com>
[-- Attachment #1: Type: text/plain, Size: 2108 bytes --]
Hi,
changbin.du@intel.com writes:
> From: "Du, Changbin" <changbin.du@intel.com>
>
> Enabling a already enabled ep is illegal, because the ep may has trbs
> running. Reprogram the ep may break running transfer. So udc driver
> must avoid this happening by return an error -EBUSY. Gadget function
> driver also should avoid such things, but that is out of udc driver.
>
> Similarly, disable a disabled ep makes no sense, but no need return
> an error here.
>
> Signed-off-by: Du, Changbin <changbin.du@intel.com>
> ---
> drivers/usb/dwc2/core.h | 1 +
> drivers/usb/dwc2/gadget.c | 20 +++++++++++++++++++-
> 2 files changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
> index a66d3cb..cf7eccd 100644
> --- a/drivers/usb/dwc2/core.h
> +++ b/drivers/usb/dwc2/core.h
> @@ -162,6 +162,7 @@ struct dwc2_hsotg_ep {
> unsigned char mc;
> unsigned char interval;
>
> + unsigned int enabled:1;
> unsigned int halted:1;
> unsigned int periodic:1;
> unsigned int isochronous:1;
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index 0abf73c..586bbcd 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -2423,6 +2423,7 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg,
> /* enable, but don't activate EP0in */
> dwc2_writel(dwc2_hsotg_ep0_mps(hsotg->eps_out[0]->ep.maxpacket) |
> DXEPCTL_USBACTEP, hsotg->regs + DIEPCTL0);
> + hsotg->eps_out[0]->enabled = 1;
>
> dwc2_hsotg_enqueue_setup(hsotg);
>
> @@ -2680,6 +2681,14 @@ static int dwc2_hsotg_ep_enable(struct usb_ep *ep,
> return -EINVAL;
> }
>
> + spin_lock_irqsave(&hsotg->lock, flags);
> + if (hs_ep->enabled) {
> + dev_warn(hsotg->dev, "%s: ep %s already enabled\n",
> + __func__, hs_ep->name);
this is a rather serious condition. I'd rather use dev_WARN_ONCE():
if (dev_WARN_ONCE(hsotg->dev, hs_ep->enabled,
"ep %s already enabled\n", hs_ep->name)) {
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
next prev parent reply other threads:[~2015-12-10 17:26 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-30 5:21 [PATCH 0/2] Two fix for dwc2 gadget driver changbin.du
2015-11-30 5:21 ` [PATCH 1/2] usb: dwc2: add ep enabled flag to avoid double enable/disable changbin.du
2015-12-10 17:26 ` Felipe Balbi [this message]
2015-12-14 3:23 ` Du, Changbin
2015-11-30 5:21 ` [PATCH 2/2] usb: dwc2: forbid queuing request to a disabled ep changbin.du
2015-12-10 17:27 ` Felipe Balbi
2015-12-03 1:20 ` [PATCH 0/2] Two fix for dwc2 gadget driver John Youn
2015-12-03 4:23 ` Du, Changbin
2015-12-04 7:21 ` [PATCH] usb: gadget: forbid queuing request to a disabled ep changbin.du
2015-12-10 17:28 ` Felipe Balbi
2015-12-14 3:48 ` [PATCH v2] " changbin.du
2015-12-14 10:20 ` Du, Changbin
2015-12-14 10:20 ` Du, Changbin
2015-12-16 16:52 ` Felipe Balbi
2015-12-16 16:52 ` Felipe Balbi
2015-12-17 9:35 ` Du, Changbin
2015-12-17 9:35 ` Du, Changbin
2015-12-17 10:00 ` [PATCH v3] " changbin.du
2015-12-17 10:00 ` changbin.du
2015-12-17 15:26 ` Felipe Balbi
2015-12-17 15:26 ` Felipe Balbi
2015-12-18 7:34 ` Du, Changbin
2015-12-18 7:34 ` Du, Changbin
2015-12-18 7:36 ` [PATCH v4] " changbin.du
2015-12-18 7:36 ` changbin.du
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zixii5ag.fsf@saruman.tx.rr.com \
--to=balbi@ti.com \
--cc=changbin.du@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=johnyoun@synopsys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.