* [PATCH] can: usb_8dev: unregister netdev before free()ing
@ 2013-06-18 12:57 Marc Kleine-Budde
2013-06-18 18:23 ` Bernd Krumboeck
0 siblings, 1 reply; 7+ messages in thread
From: Marc Kleine-Budde @ 2013-06-18 12:57 UTC (permalink / raw)
To: linux-can; +Cc: Marc Kleine-Budde
The usb_8dev hardware has problems on some xhci USB hosts. The driver fails to
read the firmware revision in the probe function. This leads to the following
Oops:
[ 3356.635912] kernel BUG at net/core/dev.c:5701!
The driver tries to free the netdev, which has already been registered, without
unregistering it.
This patch fixes the problem by unregistering the netdev in the error path.
Reported-by: <m.olbrich@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/net/can/usb/usb_8dev.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c
index 6e15ef0..cbd388e 100644
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -977,7 +977,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
err = usb_8dev_cmd_version(priv, &version);
if (err) {
netdev_err(netdev, "can't get firmware version\n");
- goto cleanup_cmd_msg_buffer;
+ goto cleanup_unregister_candev;
} else {
netdev_info(netdev,
"firmware: %d.%d, hardware: %d.%d\n",
@@ -989,6 +989,9 @@ static int usb_8dev_probe(struct usb_interface *intf,
return 0;
+cleanup_unregister_candev:
+ unregister_netdev(priv->netdev);
+
cleanup_cmd_msg_buffer:
kfree(priv->cmd_msg_buffer);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] can: usb_8dev: unregister netdev before free()ing
2013-06-18 12:57 [PATCH] can: usb_8dev: unregister netdev before free()ing Marc Kleine-Budde
@ 2013-06-18 18:23 ` Bernd Krumboeck
2013-06-18 18:34 ` Marc Kleine-Budde
0 siblings, 1 reply; 7+ messages in thread
From: Bernd Krumboeck @ 2013-06-18 18:23 UTC (permalink / raw)
To: Marc Kleine-Budde; +Cc: linux-can
Am 2013-06-18 14:57, schrieb Marc Kleine-Budde:
> The usb_8dev hardware has problems on some xhci USB hosts. The driver fails to
> read the firmware revision in the probe function. This leads to the following
> Oops:
>
> [ 3356.635912] kernel BUG at net/core/dev.c:5701!
>
> The driver tries to free the netdev, which has already been registered, without
> unregistering it.
>
> This patch fixes the problem by unregistering the netdev in the error path.
>
Thank you for the patch!
I've applied it to my source tree:
https://github.com/krumboeck/usb2can
regards,
Bernd
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] can: usb_8dev: unregister netdev before free()ing
2013-06-18 18:23 ` Bernd Krumboeck
@ 2013-06-18 18:34 ` Marc Kleine-Budde
2013-06-18 20:20 ` Bernd Krumboeck
0 siblings, 1 reply; 7+ messages in thread
From: Marc Kleine-Budde @ 2013-06-18 18:34 UTC (permalink / raw)
To: Bernd Krumboeck; +Cc: linux-can
[-- Attachment #1: Type: text/plain, Size: 991 bytes --]
On 06/18/2013 08:23 PM, Bernd Krumboeck wrote:
> Am 2013-06-18 14:57, schrieb Marc Kleine-Budde:
>> The usb_8dev hardware has problems on some xhci USB hosts. The driver
>> fails to
>> read the firmware revision in the probe function. This leads to the
>> following
>> Oops:
>>
>> [ 3356.635912] kernel BUG at net/core/dev.c:5701!
>>
>> The driver tries to free the netdev, which has already been
>> registered, without
>> unregistering it.
>>
>> This patch fixes the problem by unregistering the netdev in the error
>> path.
>>
>
> Thank you for the patch!
>
> I've applied it to my source tree:
> https://github.com/krumboeck/usb2can
Can I have you Acked-by or Reviewed-by?
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] can: usb_8dev: unregister netdev before free()ing
2013-06-18 18:34 ` Marc Kleine-Budde
@ 2013-06-18 20:20 ` Bernd Krumboeck
2013-06-18 20:21 ` Marc Kleine-Budde
0 siblings, 1 reply; 7+ messages in thread
From: Bernd Krumboeck @ 2013-06-18 20:20 UTC (permalink / raw)
To: Marc Kleine-Budde; +Cc: linux-can
Am 2013-06-18 20:34, schrieb Marc Kleine-Budde:
> On 06/18/2013 08:23 PM, Bernd Krumboeck wrote:
>> Am 2013-06-18 14:57, schrieb Marc Kleine-Budde:
>>> The usb_8dev hardware has problems on some xhci USB hosts. The driver
>>> fails to
>>> read the firmware revision in the probe function. This leads to the
>>> following
>>> Oops:
>>>
>>> [ 3356.635912] kernel BUG at net/core/dev.c:5701!
>>>
>>> The driver tries to free the netdev, which has already been
>>> registered, without
>>> unregistering it.
>>>
>>> This patch fixes the problem by unregistering the netdev in the error
>>> path.
>>>
>>
>> Thank you for the patch!
>>
>> I've applied it to my source tree:
>> https://github.com/krumboeck/usb2can
>
> Can I have you Acked-by or Reviewed-by?
>
> Marc
>
Yes, of course.
Please add "Reviewed-by: Bernd Krumboeck <krumboeck@universalnet.at>".
regards,
Bernd
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] can: usb_8dev: unregister netdev before free()ing
2013-06-18 20:20 ` Bernd Krumboeck
@ 2013-06-18 20:21 ` Marc Kleine-Budde
0 siblings, 0 replies; 7+ messages in thread
From: Marc Kleine-Budde @ 2013-06-18 20:21 UTC (permalink / raw)
To: Bernd Krumboeck; +Cc: linux-can
[-- Attachment #1: Type: text/plain, Size: 843 bytes --]
On 06/18/2013 10:20 PM, Bernd Krumboeck wrote:
>>>> The driver tries to free the netdev, which has already been
>>>> registered, without
>>>> unregistering it.
>>>>
>>>> This patch fixes the problem by unregistering the netdev in the error
>>>> path.
>>>>
>>>
>>> Thank you for the patch!
>>>
>>> I've applied it to my source tree:
>>> https://github.com/krumboeck/usb2can
>>
>> Can I have you Acked-by or Reviewed-by?
>>
>> Marc
>>
>
> Yes, of course.
>
> Please add "Reviewed-by: Bernd Krumboeck <krumboeck@universalnet.at>".
Tnx,
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] can: usb_8dev: unregister netdev before free()ing
2013-06-19 7:02 pull-request: can 2013-06-19 Marc Kleine-Budde
@ 2013-06-19 7:02 ` Marc Kleine-Budde
2013-06-19 16:29 ` Oliver Hartkopp
0 siblings, 1 reply; 7+ messages in thread
From: Marc Kleine-Budde @ 2013-06-19 7:02 UTC (permalink / raw)
To: netdev; +Cc: linux-can, davem, Marc Kleine-Budde
The usb_8dev hardware has problems on some xhci USB hosts. The driver fails to
read the firmware revision in the probe function. This leads to the following
Oops:
[ 3356.635912] kernel BUG at net/core/dev.c:5701!
The driver tries to free the netdev, which has already been registered, without
unregistering it.
This patch fixes the problem by unregistering the netdev in the error path.
Reported-by: Michael Olbrich <m.olbrich@pengutronix.de>
Reviewed-by: Bernd Krumboeck <krumboeck@universalnet.at>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/net/can/usb/usb_8dev.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c
index 6e15ef0..cbd388e 100644
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -977,7 +977,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
err = usb_8dev_cmd_version(priv, &version);
if (err) {
netdev_err(netdev, "can't get firmware version\n");
- goto cleanup_cmd_msg_buffer;
+ goto cleanup_unregister_candev;
} else {
netdev_info(netdev,
"firmware: %d.%d, hardware: %d.%d\n",
@@ -989,6 +989,9 @@ static int usb_8dev_probe(struct usb_interface *intf,
return 0;
+cleanup_unregister_candev:
+ unregister_netdev(priv->netdev);
+
cleanup_cmd_msg_buffer:
kfree(priv->cmd_msg_buffer);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] can: usb_8dev: unregister netdev before free()ing
2013-06-19 7:02 ` [PATCH] can: usb_8dev: unregister netdev before free()ing Marc Kleine-Budde
@ 2013-06-19 16:29 ` Oliver Hartkopp
0 siblings, 0 replies; 7+ messages in thread
From: Oliver Hartkopp @ 2013-06-19 16:29 UTC (permalink / raw)
To: Marc Kleine-Budde; +Cc: netdev, linux-can, davem, stable, Bernd Krumböck
Hello Marc,
the usb_8dev driver was introduced in Linux 3.9 and therefore this reasonable
patch should be queued up for linux-3.9.y stable too.
Regards,
Oliver
On 19.06.2013 09:02, Marc Kleine-Budde wrote:
> The usb_8dev hardware has problems on some xhci USB hosts. The driver fails to
> read the firmware revision in the probe function. This leads to the following
> Oops:
>
> [ 3356.635912] kernel BUG at net/core/dev.c:5701!
>
> The driver tries to free the netdev, which has already been registered, without
> unregistering it.
>
> This patch fixes the problem by unregistering the netdev in the error path.
>
> Reported-by: Michael Olbrich <m.olbrich@pengutronix.de>
> Reviewed-by: Bernd Krumboeck <krumboeck@universalnet.at>
> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> ---
> drivers/net/can/usb/usb_8dev.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c
> index 6e15ef0..cbd388e 100644
> --- a/drivers/net/can/usb/usb_8dev.c
> +++ b/drivers/net/can/usb/usb_8dev.c
> @@ -977,7 +977,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
> err = usb_8dev_cmd_version(priv, &version);
> if (err) {
> netdev_err(netdev, "can't get firmware version\n");
> - goto cleanup_cmd_msg_buffer;
> + goto cleanup_unregister_candev;
> } else {
> netdev_info(netdev,
> "firmware: %d.%d, hardware: %d.%d\n",
> @@ -989,6 +989,9 @@ static int usb_8dev_probe(struct usb_interface *intf,
>
> return 0;
>
> +cleanup_unregister_candev:
> + unregister_netdev(priv->netdev);
> +
> cleanup_cmd_msg_buffer:
> kfree(priv->cmd_msg_buffer);
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-06-19 16:29 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-18 12:57 [PATCH] can: usb_8dev: unregister netdev before free()ing Marc Kleine-Budde
2013-06-18 18:23 ` Bernd Krumboeck
2013-06-18 18:34 ` Marc Kleine-Budde
2013-06-18 20:20 ` Bernd Krumboeck
2013-06-18 20:21 ` Marc Kleine-Budde
-- strict thread matches above, loose matches on Subject: below --
2013-06-19 7:02 pull-request: can 2013-06-19 Marc Kleine-Budde
2013-06-19 7:02 ` [PATCH] can: usb_8dev: unregister netdev before free()ing Marc Kleine-Budde
2013-06-19 16:29 ` Oliver Hartkopp
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).