[patch 2/3] Amiga zorro bus: Add missing zorro_device_remove()

Geert Uytterhoeven
2007-11-18T10:13:32Z

[-- Attachment #1: zorro-add-missing-zorro_device_remove.diff --]
[-- Type: text/plain, Size: 1344 bytes --]

From: Geert Uytterhoeven <geert@linux-m68k.org>

Amiga zorro bus: Add missing zorro_device_remove(). Without this ifconfig and
/proc/net/dev oops after unloading a Zorro network device driver module.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
drivers/zorro/zorro-driver.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)

--- a/drivers/zorro/zorro-driver.c
+++ b/drivers/zorro/zorro-driver.c
@@ -60,6 +60,20 @@ static int zorro_device_probe(struct dev
}

+static int zorro_device_remove(struct device *dev)
+{
+ struct zorro_dev *z = to_zorro_dev(dev);
+ struct zorro_driver *drv = to_zorro_driver(dev->driver);
+
+ if (drv) {
+ if (drv->remove)
+ drv->remove(z);
+ z->driver = NULL;
+ }
+ return 0;
+}
+
+
/**
* zorro_register_driver - register a new Zorro driver
* @drv: the driver structure to register
@@ -128,6 +142,7 @@ struct bus_type zorro_bus_type = {
.name = "zorro",
.match = zorro_bus_match,
.probe = zorro_device_probe,
+ .remove = zorro_device_remove,
};