Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01bc8ad1 authored by Cornelia Huck's avatar Cornelia Huck Committed by Martin Schwidefsky
Browse files

[S390] cio: Add shutdown callback for ccwgroup.



This intendeds to make proper shutdown of qeth devices easier.

Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 2fffc935
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -391,12 +391,24 @@ ccwgroup_remove (struct device *dev)
	return 0;
}

static void ccwgroup_shutdown(struct device *dev)
{
	struct ccwgroup_device *gdev;
	struct ccwgroup_driver *gdrv;

	gdev = to_ccwgroupdev(dev);
	gdrv = to_ccwgroupdrv(dev->driver);
	if (gdrv && gdrv->shutdown)
		gdrv->shutdown(gdev);
}

static struct bus_type ccwgroup_bus_type = {
	.name   = "ccwgroup",
	.match  = ccwgroup_bus_match,
	.uevent = ccwgroup_uevent,
	.probe  = ccwgroup_probe,
	.remove = ccwgroup_remove,
	.shutdown = ccwgroup_shutdown,
};

/**
+2 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ struct ccwgroup_device {
 * @remove: function called on remove
 * @set_online: function called when device is set online
 * @set_offline: function called when device is set offline
 * @shutdown: function called when device is shut down
 * @driver: embedded driver structure
 */
struct ccwgroup_driver {
@@ -49,6 +50,7 @@ struct ccwgroup_driver {
	void (*remove) (struct ccwgroup_device *);
	int (*set_online) (struct ccwgroup_device *);
	int (*set_offline) (struct ccwgroup_device *);
	void (*shutdown)(struct ccwgroup_device *);

	struct device_driver driver;
};