Skip to contentSkip to conversation

smsc911x unloading crash

PATCH dfoley 3 participants 3 messages Dec 18, 2008 – Dec 19, 2008

Subsystems (2)
lore
Share & tools
lore

dfoley

author
#0 lore raw

I am testing out the new smsc911x driver that is in the linux-next tree.
I get a crash when unloading the module. I've got this patch to fix it. I noticed that the dev_set_drvdata is clobbering the data when the driver's ..._remove function calls dev = platform_get_drvdata(pdev);
I've back ported this to run on 2.6.27, so this patch may or
may not be needed. Sorry if it's a matter of not having the latest version.

drivers/net/smsc911x.c 2008-12-18 12:03:52.000000000 -0800 renamed from drivers/net/smsc911x.c 2008-12-18 10:03:27.000000000 -0800 +1 -2
diff -purN a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
@@ -822,7 +822,6 @@ static int __devinit smsc911x_mii_init(s
                pdata->mii_bus->irq[i] = PHY_POLL;
 
        pdata->mii_bus->parent = &pdev->dev;
-       dev_set_drvdata(&pdev->dev, &pdata->mii_bus);
 
        pdata->using_extphy = 0;
 
@@ -1872,7 +1871,7 @@ static int __devexit smsc911x_drv_remove
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
                                           "smsc911x-memory");
        if (!res)
-               platform_get_resource(pdev, IORESOURCE_MEM, 0);
+               res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 
        release_mem_region(res->start, res->end - res->start);
 
maintainer
#1 lore raw

From: dfoley <[email protected]>
Date: Thu, 18 Dec 2008 14:50:34 -0800

Quoted 5 lines

I am testing out the new smsc911x driver that is in the linux-next tree.
I get a crash when unloading the module. I've got this patch to fix it. I noticed that the dev_set_drvdata is clobbering the data when the driver's ..._remove function calls dev = platform_get_drvdata(pdev);
I've back ported this to run on 2.6.27, so this patch may or
may not be needed. Sorry if it's a matter of not having the latest version.

Steve, please take a look at this.

dfoley, even if your patch is correct your email client has severely corrupted the patch (changing tab characters into spaces, etc.) so if this patch is still needed you'll need to resubmit with your email client fixed to not corrupt the patch with formatting changes.

Quoted 24 lines

diff -purN a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c

drivers/net/smsc911x.c 2008-12-18 12:03:52.000000000 -0800 renamed from drivers/net/smsc911x.c 2008-12-18 10:03:27.000000000 -0800 +1 -3
@@ -822,7 +822,6 @@ static int __devinit smsc911x_mii_init(s
                 pdata->mii_bus->irq[i] = PHY_POLL;
 
         pdata->mii_bus->parent = &pdev->dev;
-       dev_set_drvdata(&pdev->dev, &pdata->mii_bus);
 
         pdata->using_extphy = 0;
 
@@ -1872,7 +1871,7 @@ static int __devexit smsc911x_drv_remove
         res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
                                            "smsc911x-memory");
         if (!res)
-               platform_get_resource(pdev, IORESOURCE_MEM, 0);
+               res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 
         release_mem_region(res->start, res->end - res->start);
 
--

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

#2 lore raw

Hi dfoley,

Quoted 6 lines

I am testing out the new smsc911x driver that is in the linux-next tree. I get a crash when unloading the module. I've got this patch to fix it. I noticed that the dev_set_drvdata is clobbering the data when the driver's ..._remove function calls dev = platform_get_drvdata(pdev); I've back ported this to run on 2.6.27, so this patch may or may not be needed. Sorry if it's a matter of not having the latest

version.

This is indeed a bug, thanks for finding it. Some other drivers use the device driver_data for storing their mii_bus, but we already store our net_device there so we shouldn't be setting this here.

Quoted 4 lines

dfoley, even if your patch is correct your email client has severely corrupted the patch (changing tab characters into spaces, etc.) so if this patch is still needed you'll need to resubmit with your email client fixed to not corrupt the patch with formatting changes.

The [broken] patch actually fixes two different bugs, can you split this into two patches?

The second bug is a typo - It's supposed to look the same as the code in smsc911x_drv_probe 35 lines later, but it's missing the assignment.

Both Signed-off-by: Steve Glendinning <[email protected]>

Regards,
--
Steve Glendinning
SMSC GmbH
m: +44 777 933 9124
e: [email protected]