diff mbox

[git,patches] net driver fixes for 2.6.28-rc

Message ID 20081104075138.GA2096@earth.li
State Accepted, archived
Delegated to: Jeff Garzik
Headers show

Commit Message

Jonathan McDowell Nov. 4, 2008, 7:51 a.m. UTC
In article <490F824E.3070809@garzik.org> (earth.lists.linux-kernel) you wrote:
> Marcel Holtmann wrote:
> > are you also queuing patches for drivers/net/usb/hso.c, because the 
> > current state of that driver is fully broken. It oopses and shows up 
> > with a WLAN RFKILL switch instead of WWAN. Also it has some weird 
> > disconnect race with the TTY layer. Some patches have been posted, but 
> > seems that nobody has picked them up so far.

> Last patch sent me was sent on 9/16 by Denis Joseph Barrow; I replied 
> and never received a response after that.

> Patches welcome...

> I don't see any hso patches on
> http://patchwork.ozlabs.org/project/netdev/list/ nor in my inbox, so I'm 
> guessing that no one sent me or netdev any hso patches.

I sent the below to netdev@, Greg K-H and Andrew Bird (the people listed
in hso.c). I can't see it in the netdev archives but it did hit lkml ok
at:

http://lkml.org/lkml/2008/10/30/92

A subsequent fix for the rfkill layer has also been sent (and that did
hit netdev ok and got acked), but this hso cleanup is still appropriate.

The WLAN/WWAN change is obviously a one line fix but I didn't see any
point sending a patch for it until I knew I was going to get some sort
of response about it; I can knock one up if that's helpful.

Original message:

[PATCH] Cleanup hso rfkill error handling

Yup, this appears to be the problem, thanks. I think &hso_net->net->dev
is more intuitive for the error message, so I've used that. I've also
added missing line endings on the error messages and set our local
rfkill structure element to NULL on failure so we don't try to call
rfkill_unregister on driver removal if we failed to register at all.

The patch below Works For Me (TM); the device is detected fine, can be
removed without problems and connects ok. I'll have a prod at why the
rfkill stuff isn't working next, but I believe this cleanup of the error
handling is appropriate no matter what the issue with registration is.

Signed-Off-By: Jonathan McDowell <noodles@earth.li>

-----
-----

J.

Comments

Marcel Holtmann Nov. 4, 2008, 8:27 a.m. UTC | #1
Hi Jonathan,

>>> are you also queuing patches for drivers/net/usb/hso.c, because the
>>> current state of that driver is fully broken. It oopses and shows up
>>> with a WLAN RFKILL switch instead of WWAN. Also it has some weird
>>> disconnect race with the TTY layer. Some patches have been posted,  
>>> but
>>> seems that nobody has picked them up so far.
>
>> Last patch sent me was sent on 9/16 by Denis Joseph Barrow; I replied
>> and never received a response after that.
>
>> Patches welcome...
>
>> I don't see any hso patches on
>> http://patchwork.ozlabs.org/project/netdev/list/ nor in my inbox,  
>> so I'm
>> guessing that no one sent me or netdev any hso patches.
>
> I sent the below to netdev@, Greg K-H and Andrew Bird (the people  
> listed
> in hso.c). I can't see it in the netdev archives but it did hit lkml  
> ok
> at:
>
> http://lkml.org/lkml/2008/10/30/92
>
> A subsequent fix for the rfkill layer has also been sent (and that did
> hit netdev ok and got acked), but this hso cleanup is still  
> appropriate.

It is not only appropriate, it is needed, because otherwise the driver  
is oopsing.

> The WLAN/WWAN change is obviously a one line fix but I didn't see any
> point sending a patch for it until I knew I was going to get some sort
> of response about it; I can knock one up if that's helpful.

Send a patch for it.

> Original message:
>
> [PATCH] Cleanup hso rfkill error handling
>
> Yup, this appears to be the problem, thanks. I think &hso_net->net- 
> >dev
> is more intuitive for the error message, so I've used that. I've also
> added missing line endings on the error messages and set our local
> rfkill structure element to NULL on failure so we don't try to call
> rfkill_unregister on driver removal if we failed to register at all.
>
> The patch below Works For Me (TM); the device is detected fine, can be
> removed without problems and connects ok. I'll have a prod at why the
> rfkill stuff isn't working next, but I believe this cleanup of the  
> error
> handling is appropriate no matter what the issue with registration is.
>
> Signed-Off-By: Jonathan McDowell <noodles@earth.li>

I have this patch running now and it works. Without it the device is  
not usable at all.

Acked-by: Marcel Holtmann <marcel@holtmann.org>

Regards

Marcel

--
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
Jeff Garzik Nov. 6, 2008, 5:42 a.m. UTC | #2
Jonathan McDowell wrote:
> In article <490F824E.3070809@garzik.org> (earth.lists.linux-kernel) you wrote:
>> Marcel Holtmann wrote:
>>> are you also queuing patches for drivers/net/usb/hso.c, because the 
>>> current state of that driver is fully broken. It oopses and shows up 
>>> with a WLAN RFKILL switch instead of WWAN. Also it has some weird 
>>> disconnect race with the TTY layer. Some patches have been posted, but 
>>> seems that nobody has picked them up so far.
> 
>> Last patch sent me was sent on 9/16 by Denis Joseph Barrow; I replied 
>> and never received a response after that.
> 
>> Patches welcome...
> 
>> I don't see any hso patches on
>> http://patchwork.ozlabs.org/project/netdev/list/ nor in my inbox, so I'm 
>> guessing that no one sent me or netdev any hso patches.
> 
> I sent the below to netdev@, Greg K-H and Andrew Bird (the people listed
> in hso.c). I can't see it in the netdev archives but it did hit lkml ok
> at:
> 
> http://lkml.org/lkml/2008/10/30/92
> 
> A subsequent fix for the rfkill layer has also been sent (and that did
> hit netdev ok and got acked), but this hso cleanup is still appropriate.
> 
> The WLAN/WWAN change is obviously a one line fix but I didn't see any
> point sending a patch for it until I knew I was going to get some sort
> of response about it; I can knock one up if that's helpful.
> 
> Original message:
> 
> [PATCH] Cleanup hso rfkill error handling
> 
> Yup, this appears to be the problem, thanks. I think &hso_net->net->dev
> is more intuitive for the error message, so I've used that. I've also
> added missing line endings on the error messages and set our local
> rfkill structure element to NULL on failure so we don't try to call
> rfkill_unregister on driver removal if we failed to register at all.
> 
> The patch below Works For Me (TM); the device is detected fine, can be
> removed without problems and connects ok. I'll have a prod at why the
> rfkill stuff isn't working next, but I believe this cleanup of the error
> handling is appropriate no matter what the issue with registration is.
> 
> Signed-Off-By: Jonathan McDowell <noodles@earth.li>
> 
> -----
> diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
> index 1164c52..9d9622b 100644
> --- a/drivers/net/usb/hso.c
> +++ b/drivers/net/usb/hso.c
> @@ -2184,19 +2184,20 @@ static void hso_create_rfkill(struct hso_device *hso_dev,
>  			     struct usb_interface *interface)
>  {
>  	struct hso_net *hso_net = dev2net(hso_dev);
> -	struct device *dev = hso_dev->dev;
> +	struct device *dev = &hso_net->net->dev;
>  	char *rfkn;
>  
>  	hso_net->rfkill = rfkill_allocate(&interface_to_usbdev(interface)->dev,
>  				 RFKILL_TYPE_WLAN);
>  	if (!hso_net->rfkill) {
> -		dev_err(dev, "%s - Out of memory", __func__);
> +		dev_err(dev, "%s - Out of memory\n", __func__);
>  		return;
>  	}
>  	rfkn = kzalloc(20, GFP_KERNEL);
>  	if (!rfkn) {
>  		rfkill_free(hso_net->rfkill);
> -		dev_err(dev, "%s - Out of memory", __func__);
> +		hso_net->rfkill = NULL;
> +		dev_err(dev, "%s - Out of memory\n", __func__);
>  		return;
>  	}
>  	snprintf(rfkn, 20, "hso-%d",
> @@ -2209,7 +2210,8 @@ static void hso_create_rfkill(struct hso_device *hso_dev,
>  		kfree(rfkn);
>  		hso_net->rfkill->name = NULL;
>  		rfkill_free(hso_net->rfkill);
> -		dev_err(dev, "%s - Failed to register rfkill", __func__);
> +		hso_net->rfkill = NULL;
> +		dev_err(dev, "%s - Failed to register rfkill\n", __func__);
>  		return;

applied


--
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 1164c52..9d9622b 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -2184,19 +2184,20 @@  static void hso_create_rfkill(struct hso_device *hso_dev,
 			     struct usb_interface *interface)
 {
 	struct hso_net *hso_net = dev2net(hso_dev);
-	struct device *dev = hso_dev->dev;
+	struct device *dev = &hso_net->net->dev;
 	char *rfkn;
 
 	hso_net->rfkill = rfkill_allocate(&interface_to_usbdev(interface)->dev,
 				 RFKILL_TYPE_WLAN);
 	if (!hso_net->rfkill) {
-		dev_err(dev, "%s - Out of memory", __func__);
+		dev_err(dev, "%s - Out of memory\n", __func__);
 		return;
 	}
 	rfkn = kzalloc(20, GFP_KERNEL);
 	if (!rfkn) {
 		rfkill_free(hso_net->rfkill);
-		dev_err(dev, "%s - Out of memory", __func__);
+		hso_net->rfkill = NULL;
+		dev_err(dev, "%s - Out of memory\n", __func__);
 		return;
 	}
 	snprintf(rfkn, 20, "hso-%d",
@@ -2209,7 +2210,8 @@  static void hso_create_rfkill(struct hso_device *hso_dev,
 		kfree(rfkn);
 		hso_net->rfkill->name = NULL;
 		rfkill_free(hso_net->rfkill);
-		dev_err(dev, "%s - Failed to register rfkill", __func__);
+		hso_net->rfkill = NULL;
+		dev_err(dev, "%s - Failed to register rfkill\n", __func__);
 		return;
 	}
 }