diff options
author | Federico Vaga <federico.vaga@cern.ch> | 2014-09-02 17:31:40 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-23 23:13:13 -0700 |
commit | 36c53b3cc3fac6952af68f43609b15ae050c9318 (patch) | |
tree | bf265c1d5992290869d0d4caee7f7f398467dfa2 /drivers/ipack | |
parent | 78f22bc29e6e367f272a7fc700baa4d4263d376a (diff) | |
download | linux-36c53b3cc3fac6952af68f43609b15ae050c9318.tar.gz linux-36c53b3cc3fac6952af68f43609b15ae050c9318.tar.bz2 linux-36c53b3cc3fac6952af68f43609b15ae050c9318.zip |
ipack: save carrier owner to allow device to get it
There was not any kind of protection against carrier driver removal.
In this way, device driver can 'get' the carrier driver when it is
using it.
Signed-off-by: Federico Vaga <federico.vaga@cern.ch>
Acked-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/ipack')
-rw-r--r-- | drivers/ipack/carriers/tpci200.c | 3 | ||||
-rw-r--r-- | drivers/ipack/ipack.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/ipack/carriers/tpci200.c b/drivers/ipack/carriers/tpci200.c index de5e32151a1e..9b23843dcad4 100644 --- a/drivers/ipack/carriers/tpci200.c +++ b/drivers/ipack/carriers/tpci200.c @@ -572,7 +572,8 @@ static int tpci200_pci_probe(struct pci_dev *pdev, /* Register the carrier in the industry pack bus driver */ tpci200->info->ipack_bus = ipack_bus_register(&pdev->dev, TPCI200_NB_SLOT, - &tpci200_bus_ops); + &tpci200_bus_ops, + THIS_MODULE); if (!tpci200->info->ipack_bus) { dev_err(&pdev->dev, "error registering the carrier on ipack driver\n"); diff --git a/drivers/ipack/ipack.c b/drivers/ipack/ipack.c index d0016ba469ed..c0e7b624ce54 100644 --- a/drivers/ipack/ipack.c +++ b/drivers/ipack/ipack.c @@ -206,7 +206,8 @@ static struct bus_type ipack_bus_type = { }; struct ipack_bus_device *ipack_bus_register(struct device *parent, int slots, - const struct ipack_bus_ops *ops) + const struct ipack_bus_ops *ops, + struct module *owner) { int bus_nr; struct ipack_bus_device *bus; @@ -225,6 +226,7 @@ struct ipack_bus_device *ipack_bus_register(struct device *parent, int slots, bus->parent = parent; bus->slots = slots; bus->ops = ops; + bus->owner = owner; return bus; } EXPORT_SYMBOL_GPL(ipack_bus_register); |