diff mbox

startup race in hso driver

Message ID 200812181457.36340.oliver@neukum.org
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Oliver Neukum Dec. 18, 2008, 1:57 p.m. UTC
The flag marking a device running must be set before the URBs for
recption are submitted or they may complete too early and fail to resubmit.

Signed-off-by: Oliver Neukum <oneukum@suse.de>

	Regards
		Oliver

---

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Denis Joseph Barrow Dec. 18, 2008, 1:59 p.m. UTC | #1
Thanks Oliver,
I'll add it to our internal tree.

Oliver Neukum wrote:
> The flag marking a device running must be set before the URBs for
> recption are submitted or they may complete too early and fail to resubmit.
> 
> Signed-off-by: Oliver Neukum <oneukum@suse.de>
> 
> 	Regards
> 		Oliver
> 
> ---
> 
> diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
> index 8e90891..cc75c8b 100644
> --- a/drivers/net/usb/hso.c
> +++ b/drivers/net/usb/hso.c
> @@ -658,10 +658,9 @@ static int hso_net_open(struct net_device *net)
>  	odev->rx_buf_missing = sizeof(struct iphdr);
>  	spin_unlock_irqrestore(&odev->net_lock, flags);
>  
> -	hso_start_net_device(odev->parent);
> -
>  	/* We are up and running. */
>  	set_bit(HSO_NET_RUNNING, &odev->flags);
> +	hso_start_net_device(odev->parent);
>  
>  	/* Tell the kernel we are ready to start receiving from it */
>  	netif_start_queue(net);
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Dec. 19, 2008, 3:45 a.m. UTC | #2
From: Oliver Neukum <oliver@neukum.org>
Date: Thu, 18 Dec 2008 14:57:35 +0100

> The flag marking a device running must be set before the URBs for
> recption are submitted or they may complete too early and fail to resubmit.
> 
> Signed-off-by: Oliver Neukum <oneukum@suse.de>

Applied to net-next-2.6, thanks Oliver.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Dec. 19, 2008, 3:52 a.m. UTC | #3
From: Denis Joseph Barrow <D.Barow@option.com>
Date: Thu, 18 Dec 2008 14:59:04 +0100

> Thanks Oliver,
> I'll add it to our internal tree.

Ok, I'll pull it out of net-next-2.6 then...
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Denis Joseph Barrow Dec. 19, 2008, 9:20 a.m. UTC | #4
No no no.
Please put it in Dave,
Our internal tree is a completely seperately maintained hso module
which is ifdeffed out of existance to compile back to 2.6.11.

It's typically made available at www.pharscape.org, the center
of the universe for 3G on linux.


David Miller wrote:
> From: Denis Joseph Barrow <D.Barow@option.com>
> Date: Thu, 18 Dec 2008 14:59:04 +0100
> 
>> Thanks Oliver,
>> I'll add it to our internal tree.
> 
> Ok, I'll pull it out of net-next-2.6 then...
David Miller Dec. 23, 2008, 3:54 a.m. UTC | #5
From: Denis Joseph Barrow <D.Barow@option.com>
Date: Fri, 19 Dec 2008 10:20:54 +0100

> No no no.
> Please put it in Dave,
> Our internal tree is a completely seperately maintained hso module
> which is ifdeffed out of existance to compile back to 2.6.11.
> 
> It's typically made available at www.pharscape.org, the center
> of the universe for 3G on linux.

Ok, thanks for the clarification, I've put the patch back
into net-next-2.6
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Oliver Neukum Dec. 23, 2008, 12:33 p.m. UTC | #6
Am Dienstag, 23. Dezember 2008 04:54:20 schrieb David Miller:
> From: Denis Joseph Barrow <D.Barow@option.com>
> Date: Fri, 19 Dec 2008 10:20:54 +0100
> 
> > No no no.
> > Please put it in Dave,
> > Our internal tree is a completely seperately maintained hso module
> > which is ifdeffed out of existance to compile back to 2.6.11.
> > 
> > It's typically made available at www.pharscape.org, the center
> > of the universe for 3G on linux.
> 
> Ok, thanks for the clarification, I've put the patch back
> into net-next-2.6

Perhaps that issue should be documented in MAINTAINERS.

	Regards
		Oliver
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Denis Joseph Barrow Jan. 12, 2009, 10:03 a.m. UTC | #7
Hi Oliver,
Is the patch below now obselete?
I applied it to our internal tree, should I remove it?

I've yet to check the code in the big patch with subject
Re: another race in hso
Does this patch render the small one below obselete?



Oliver Neukum wrote:
> The flag marking a device running must be set before the URBs for
> recption are submitted or they may complete too early and fail to resubmit.
> 
> Signed-off-by: Oliver Neukum <oneukum@suse.de>
> 
> 	Regards
> 		Oliver
> 
> ---
> 
> diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
> index 8e90891..cc75c8b 100644
> --- a/drivers/net/usb/hso.c
> +++ b/drivers/net/usb/hso.c
> @@ -658,10 +658,9 @@ static int hso_net_open(struct net_device *net)
>  	odev->rx_buf_missing = sizeof(struct iphdr);
>  	spin_unlock_irqrestore(&odev->net_lock, flags);
>  
> -	hso_start_net_device(odev->parent);
> -
>  	/* We are up and running. */
>  	set_bit(HSO_NET_RUNNING, &odev->flags);
> +	hso_start_net_device(odev->parent);
>  
>  	/* Tell the kernel we are ready to start receiving from it */
>  	netif_start_queue(net);
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Oliver Neukum Jan. 12, 2009, 10:57 a.m. UTC | #8
Am Monday 12 January 2009 11:03:02 schrieb Denis Joseph Barrow:
> Hi Oliver,
> Is the patch below now obselete?
> I applied it to our internal tree, should I remove it?

Hi,

this patch is still needed. It fixes a completely different issue
than the second, large patch I sent later. This patch solves
a race between startup and urb completion. The second patch
fixes a race between xmit and autosuspend.

Earlier today you wanted your patches broken down by bugs
they fix, so you've already gotten what you wanted ;-)

	Regards
		Oliver

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 8e90891..cc75c8b 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -658,10 +658,9 @@  static int hso_net_open(struct net_device *net)
 	odev->rx_buf_missing = sizeof(struct iphdr);
 	spin_unlock_irqrestore(&odev->net_lock, flags);
 
-	hso_start_net_device(odev->parent);
-
 	/* We are up and running. */
 	set_bit(HSO_NET_RUNNING, &odev->flags);
+	hso_start_net_device(odev->parent);
 
 	/* Tell the kernel we are ready to start receiving from it */
 	netif_start_queue(net);