From: Jeff Dike <[email protected]>, Paolo 'Blaisorblade' Giarrusso <[email protected]>
Define a release method for the ubd and network driver so that sysfs doesn't
complain when one is removed via:
host $ uml_mconsole <umid> remove <dev>
Done by Jeff around January for ubd only, later lost, then restored in his tree
- however I'm merging it now since there's no reason to leave this here.
We don't need to do any cleanup in the new added method, because when hot-unplug
is done by uml_mconsole we already handle cleanup in mconsole infrastructure,
i.e. mc_device->remove (net_remove/ubd_remove), which is also the calling
method.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[email protected]>
---
arch/um/drivers/net_kern.c | 6 ++++++
arch/um/drivers/ubd_kern.c | 6 ++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c
index fb1f9fb..5b8c64e 100644
--- a/arch/um/drivers/net_kern.c
+++ b/arch/um/drivers/net_kern.c
@@ -276,6 +276,11 @@ static struct platform_driver uml_net_dr
};
static int driver_registered;
+/* Sysfs requires a ->release when mconsole hot-unplug is done */
+static void dummy_device_release(struct device *dev)
+{
+}
+
static int eth_configure(int n, void *init, char *mac,
struct transport *transport)
{
@@ -324,6 +329,7 @@ static int eth_configure(int n, void *in
}
device->pdev.id = n;
device->pdev.name = DRIVER_NAME;
+ device->pdev.dev.release = dummy_device_release;
platform_device_register(&device->pdev);
SET_NETDEV_DEV(dev,&device->pdev.dev);
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c
index 7696f8d..49dda56 100644
--- a/arch/um/drivers/ubd_kern.c
+++ b/arch/um/drivers/ubd_kern.c
@@ -617,6 +617,11 @@ static int ubd_open_dev(struct ubd *dev)
return(err);
}
+/* Sysfs requires a ->release when mconsole hot-unplug is done */
+static void dummy_device_release(struct device *dev)
+{
+}
+
static int ubd_new_disk(int major, u64 size, int unit,
struct gendisk **disk_out)
@@ -652,6 +657,7 @@ static int ubd_new_disk(int major, u64 s
if (major == MAJOR_NR) {
ubd_dev[unit].pdev.id = unit;
ubd_dev[unit].pdev.name = DRIVER_NAME;
+ ubd_dev[unit].pdev.dev.release = dummy_device_release;
platform_device_register(&ubd_dev[unit].pdev);
disk->driverfs_dev = &ubd_dev[unit].pdev.dev;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]