Skip to contentSkip to conversation

fix for depca driver

PATCH New Andrea Righi 1 participant 1 message Apr 4, 2007 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix for depca driver

Hi all,

the following patch fixes a kernel bug in depca_platform_probe().

We don't use a dynamic pointer for pldev->dev.platform_data, so it seems that the correct way to proceed if platform_device_add(pldev) fails is to explicitly set the pldev->dev.platform_data pointer to NULL, before calling the platform_device_put(pldev), or it will be kfree'ed by platform_device_release().

-Andrea

---
 drivers/net/depca.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/net/depca.c +2 -1
index 5113eef..f3807aa 100644
@@ -1491,8 +1491,9 @@ static void __init depca_platform_probe
                depca_io_ports[i].device = pldev;
 
                if (platform_device_add(pldev)) {
-                       platform_device_put(pldev);
                        depca_io_ports[i].device = NULL;
+                       pldev->dev.platform_data = NULL;
+                       platform_device_put(pldev);
                        continue;
                }