All of lore.kernel.org
 help / color / mirror / Atom feed
From: sshtylyov@mvista.com (Sergei Shtylyov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] USB: ohci-at91: add a reset function to fix race condition
Date: Wed, 09 May 2012 21:22:20 +0400	[thread overview]
Message-ID: <4FAAA7CC.7050208@mvista.com> (raw)
In-Reply-To: <1336553334-31058-1-git-send-email-nicolas.ferre@atmel.com>

Hello.

On 09-05-2012 12:48, Nicolas Ferre wrote:

> A possible race condition appears because we are not initializing
> the ohci->regs before calling usb_hcd_request_irqs().
> We move the call to ohci_init() in hcd->driver->reset() instead of
> hcd->driver->start() to fix this.
> This was experienced when we share the same IRQ line between OHCI and EHCI
> controllers.

> Signed-off-by: Nicolas Ferre<nicolas.ferre@atmel.com>
> Tested-by: Christian Eggers<christian.eggers@kathrein.de>
> Cc: stable<stable@vger.kernel.org>
> ---
>   drivers/usb/host/ohci-at91.c |   11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)

> diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
> index 13ebeca..55d3d64 100644
> --- a/drivers/usb/host/ohci-at91.c
> +++ b/drivers/usb/host/ohci-at91.c
> @@ -223,7 +223,7 @@ static void __devexit usb_hcd_at91_remove(struct usb_hcd *hcd,
>   /*-------------------------------------------------------------------------*/
>
>   static int __devinit
> -ohci_at91_start (struct usb_hcd *hcd)
> +ohci_at91_reset (struct usb_hcd *hcd)

    Have you run the patch thru scripts/checkpatch.pl? There should be no 
space between function name and '('.

>   {
>   	struct at91_usbh_data	*board = hcd->self.controller->platform_data;
>   	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);
> @@ -233,6 +233,14 @@ ohci_at91_start (struct usb_hcd *hcd)
>   		return ret;
>
>   	ohci->num_ports = board->ports;
> +	return 0;
> +}
> +
> +static int __devinit
> +ohci_at91_start (struct usb_hcd *hcd)

    Same here.

> +{
> +	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);

    And here.

WBR, Sergei

WARNING: multiple messages have this Message-ID (diff)
From: Sergei Shtylyov <sshtylyov@mvista.com>
To: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: stern@rowland.harvard.edu, linux-usb@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, plagnioj@jcrosoft.com,
	gregkh@linuxfoundation.org, stable <stable@vger.kernel.org>
Subject: Re: [PATCH] USB: ohci-at91: add a reset function to fix race condition
Date: Wed, 09 May 2012 21:22:20 +0400	[thread overview]
Message-ID: <4FAAA7CC.7050208@mvista.com> (raw)
In-Reply-To: <1336553334-31058-1-git-send-email-nicolas.ferre@atmel.com>

Hello.

On 09-05-2012 12:48, Nicolas Ferre wrote:

> A possible race condition appears because we are not initializing
> the ohci->regs before calling usb_hcd_request_irqs().
> We move the call to ohci_init() in hcd->driver->reset() instead of
> hcd->driver->start() to fix this.
> This was experienced when we share the same IRQ line between OHCI and EHCI
> controllers.

> Signed-off-by: Nicolas Ferre<nicolas.ferre@atmel.com>
> Tested-by: Christian Eggers<christian.eggers@kathrein.de>
> Cc: stable<stable@vger.kernel.org>
> ---
>   drivers/usb/host/ohci-at91.c |   11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)

> diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
> index 13ebeca..55d3d64 100644
> --- a/drivers/usb/host/ohci-at91.c
> +++ b/drivers/usb/host/ohci-at91.c
> @@ -223,7 +223,7 @@ static void __devexit usb_hcd_at91_remove(struct usb_hcd *hcd,
>   /*-------------------------------------------------------------------------*/
>
>   static int __devinit
> -ohci_at91_start (struct usb_hcd *hcd)
> +ohci_at91_reset (struct usb_hcd *hcd)

    Have you run the patch thru scripts/checkpatch.pl? There should be no 
space between function name and '('.

>   {
>   	struct at91_usbh_data	*board = hcd->self.controller->platform_data;
>   	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);
> @@ -233,6 +233,14 @@ ohci_at91_start (struct usb_hcd *hcd)
>   		return ret;
>
>   	ohci->num_ports = board->ports;
> +	return 0;
> +}
> +
> +static int __devinit
> +ohci_at91_start (struct usb_hcd *hcd)

    Same here.

> +{
> +	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);

    And here.

WBR, Sergei

  reply	other threads:[~2012-05-09 17:22 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-09  8:48 [PATCH] USB: ohci-at91: add a reset function to fix race condition Nicolas Ferre
2012-05-09  8:48 ` Nicolas Ferre
2012-05-09 17:22 ` Sergei Shtylyov [this message]
2012-05-09 17:22   ` Sergei Shtylyov
2012-05-10  7:38   ` Nicolas Ferre
2012-05-10  7:38     ` Nicolas Ferre
2012-05-09 17:45 ` Alan Stern
2012-05-09 17:45   ` Alan Stern

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=4FAAA7CC.7050208@mvista.com \
    --to=sshtylyov@mvista.com \
    --cc=linux-arm-kernel@lists.infradead.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.