diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-02-24 19:01:21 +0100 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-04-18 17:55:32 +0200 |
commit | 1dc3bea78b6cd71c2017aa5da076684c049d8b98 (patch) | |
tree | 7bbdc2ca8204d48701e2d0b895da217bde49c711 | |
parent | 7c1fca336661aaeb70b9094c4b8eaae389027509 (diff) | |
download | op-kernel-dev-1dc3bea78b6cd71c2017aa5da076684c049d8b98.zip op-kernel-dev-1dc3bea78b6cd71c2017aa5da076684c049d8b98.tar.gz |
firewire: refactor fw_unit reference counting
Add wrappers for getting and putting a unit.
Remove some line breaks.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jarod Wilson <jwilson@redhat.com>
-rw-r--r-- | drivers/firewire/fw-device.h | 27 | ||||
-rw-r--r-- | drivers/firewire/fw-sbp2.c | 4 |
2 files changed, 19 insertions, 12 deletions
diff --git a/drivers/firewire/fw-device.h b/drivers/firewire/fw-device.h index 78ecd39..0d771fd 100644 --- a/drivers/firewire/fw-device.h +++ b/drivers/firewire/fw-device.h @@ -64,28 +64,24 @@ struct fw_device { struct fw_attribute_group attribute_group; }; -static inline struct fw_device * -fw_device(struct device *dev) +static inline struct fw_device *fw_device(struct device *dev) { return container_of(dev, struct fw_device, device); } -static inline int -fw_device_is_shutdown(struct fw_device *device) +static inline int fw_device_is_shutdown(struct fw_device *device) { return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN; } -static inline struct fw_device * -fw_device_get(struct fw_device *device) +static inline struct fw_device *fw_device_get(struct fw_device *device) { get_device(&device->device); return device; } -static inline void -fw_device_put(struct fw_device *device) +static inline void fw_device_put(struct fw_device *device) { put_device(&device->device); } @@ -104,12 +100,23 @@ struct fw_unit { struct fw_attribute_group attribute_group; }; -static inline struct fw_unit * -fw_unit(struct device *dev) +static inline struct fw_unit *fw_unit(struct device *dev) { return container_of(dev, struct fw_unit, device); } +static inline struct fw_unit *fw_unit_get(struct fw_unit *unit) +{ + get_device(&unit->device); + + return unit; +} + +static inline void fw_unit_put(struct fw_unit *unit) +{ + put_device(&unit->device); +} + #define CSR_OFFSET 0x40 #define CSR_LEAF 0x80 #define CSR_DIRECTORY 0xc0 diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c index 8fff18e..c7aba5c 100644 --- a/drivers/firewire/fw-sbp2.c +++ b/drivers/firewire/fw-sbp2.c @@ -796,7 +796,7 @@ static void sbp2_release_target(struct kref *kref) scsi_remove_host(shost); fw_notify("released %s\n", tgt->bus_id); - put_device(&tgt->unit->device); + fw_unit_put(tgt->unit); scsi_host_put(shost); fw_device_put(device); } @@ -1119,7 +1119,7 @@ static int sbp2_probe(struct device *dev) goto fail_shost_put; fw_device_get(device); - get_device(&unit->device); + fw_unit_get(unit); /* Initialize to values that won't match anything in our table. */ firmware_revision = 0xff000000; |