From 3bea7fcb797eed256f461e14e1992f4e71932704 Mon Sep 17 00:00:00 2001 From: Jens Taprogge Date: Tue, 11 Sep 2012 13:34:59 +0200 Subject: [PATCH] Staging: ipack: remove field driver from struct ipack_device. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit After a successful match is found the driver field in struct device is set by the core device code. We can use this field. Signed-off-by: Jens Taprogge Signed-off-by: Samuel Iglesias Gonsálvez Signed-off-by: Greg Kroah-Hartman --- drivers/staging/ipack/ipack.c | 17 +++++++---------- drivers/staging/ipack/ipack.h | 2 -- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/staging/ipack/ipack.c b/drivers/staging/ipack/ipack.c index 1ad73e5..6895426 100644 --- a/drivers/staging/ipack/ipack.c +++ b/drivers/staging/ipack/ipack.c @@ -59,32 +59,29 @@ static int ipack_bus_match(struct device *dev, struct device_driver *drv) const struct ipack_device_id *found_id; found_id = ipack_match_id(idrv->id_table, idev); - if (found_id) { - idev->driver = idrv; - return 1; - } - - return 0; + return found_id ? 1 : 0; } static int ipack_bus_probe(struct device *device) { struct ipack_device *dev = to_ipack_dev(device); + struct ipack_driver *drv = to_ipack_driver(device->driver); - if (!dev->driver->ops->probe) + if (!drv->ops->probe) return -EINVAL; - return dev->driver->ops->probe(dev); + return drv->ops->probe(dev); } static int ipack_bus_remove(struct device *device) { struct ipack_device *dev = to_ipack_dev(device); + struct ipack_driver *drv = to_ipack_driver(device->driver); - if (!dev->driver->ops->remove) + if (!drv->ops->remove) return -EINVAL; - dev->driver->ops->remove(dev); + drv->ops->remove(dev); return 0; } diff --git a/drivers/staging/ipack/ipack.h b/drivers/staging/ipack/ipack.h index 89af9e4..ad4c3bf 100644 --- a/drivers/staging/ipack/ipack.h +++ b/drivers/staging/ipack/ipack.h @@ -53,7 +53,6 @@ struct ipack_addr_space { * @bus_nr: IP bus number where the device is plugged * @slot: Slot where the device is plugged in the carrier board * @irq: IRQ vector - * @driver: Pointer to the ipack_driver that manages the device * @bus: ipack_bus_device where the device is plugged to. * @id_space: Virtual address to ID space. * @io_space: Virtual address to IO space. @@ -68,7 +67,6 @@ struct ipack_device { unsigned int bus_nr; unsigned int slot; unsigned int irq; - struct ipack_driver *driver; struct ipack_bus_device *bus; struct ipack_addr_space id_space; struct ipack_addr_space io_space; -- 2.7.4