Skip to content

Commit

Permalink
Staging: ipack: unregister devices when uninstall the carrier device.
Browse files Browse the repository at this point in the history
Find the IP modules that are plugged to the carrier and unregister them.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Samuel Iglesias Gonsálvez authored and Greg Kroah-Hartman committed Sep 11, 2012
1 parent 690949e commit bffe0fd
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/staging/ipack/ipack.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,20 @@ struct ipack_bus_device *ipack_bus_register(struct device *parent, int slots,
}
EXPORT_SYMBOL_GPL(ipack_bus_register);

static int ipack_unregister_bus_member(struct device *dev, void *data)
{
struct ipack_device *idev = to_ipack_dev(dev);
struct ipack_bus_device *bus = data;

if (idev->bus_nr == bus->bus_nr)
ipack_device_unregister(idev);

return 1;
}

int ipack_bus_unregister(struct ipack_bus_device *bus)
{
bus_for_each_dev(&ipack_bus_type, NULL, bus, ipack_unregister_bus_member);
ida_simple_remove(&ipack_ida, bus->bus_nr);
kfree(bus);
return 0;
Expand Down

0 comments on commit bffe0fd

Please sign in to comment.