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 /drivers/firewire | |
parent | firewire: fw-sbp2: fix reference counting (diff) | |
download | linux-1dc3bea78b6cd71c2017aa5da076684c049d8b98.tar.xz linux-1dc3bea78b6cd71c2017aa5da076684c049d8b98.zip |
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>
Diffstat (limited to 'drivers/firewire')
-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 78ecd3991b7f..0d771fda86de 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 8fff18e05000..c7aba5cff5d2 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; |