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>
This commit is contained in:
@@ -64,28 +64,24 @@ struct fw_device {
|
|||||||
struct fw_attribute_group attribute_group;
|
struct fw_attribute_group attribute_group;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline struct fw_device *
|
static inline struct fw_device *fw_device(struct device *dev)
|
||||||
fw_device(struct device *dev)
|
|
||||||
{
|
{
|
||||||
return container_of(dev, struct fw_device, device);
|
return container_of(dev, struct fw_device, device);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int fw_device_is_shutdown(struct fw_device *device)
|
||||||
fw_device_is_shutdown(struct fw_device *device)
|
|
||||||
{
|
{
|
||||||
return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN;
|
return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct fw_device *
|
static inline struct fw_device *fw_device_get(struct fw_device *device)
|
||||||
fw_device_get(struct fw_device *device)
|
|
||||||
{
|
{
|
||||||
get_device(&device->device);
|
get_device(&device->device);
|
||||||
|
|
||||||
return device;
|
return device;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void fw_device_put(struct fw_device *device)
|
||||||
fw_device_put(struct fw_device *device)
|
|
||||||
{
|
{
|
||||||
put_device(&device->device);
|
put_device(&device->device);
|
||||||
}
|
}
|
||||||
@@ -104,12 +100,23 @@ struct fw_unit {
|
|||||||
struct fw_attribute_group attribute_group;
|
struct fw_attribute_group attribute_group;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline struct fw_unit *
|
static inline struct fw_unit *fw_unit(struct device *dev)
|
||||||
fw_unit(struct device *dev)
|
|
||||||
{
|
{
|
||||||
return container_of(dev, struct fw_unit, device);
|
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_OFFSET 0x40
|
||||||
#define CSR_LEAF 0x80
|
#define CSR_LEAF 0x80
|
||||||
#define CSR_DIRECTORY 0xc0
|
#define CSR_DIRECTORY 0xc0
|
||||||
|
@@ -796,7 +796,7 @@ static void sbp2_release_target(struct kref *kref)
|
|||||||
scsi_remove_host(shost);
|
scsi_remove_host(shost);
|
||||||
fw_notify("released %s\n", tgt->bus_id);
|
fw_notify("released %s\n", tgt->bus_id);
|
||||||
|
|
||||||
put_device(&tgt->unit->device);
|
fw_unit_put(tgt->unit);
|
||||||
scsi_host_put(shost);
|
scsi_host_put(shost);
|
||||||
fw_device_put(device);
|
fw_device_put(device);
|
||||||
}
|
}
|
||||||
@@ -1119,7 +1119,7 @@ static int sbp2_probe(struct device *dev)
|
|||||||
goto fail_shost_put;
|
goto fail_shost_put;
|
||||||
|
|
||||||
fw_device_get(device);
|
fw_device_get(device);
|
||||||
get_device(&unit->device);
|
fw_unit_get(unit);
|
||||||
|
|
||||||
/* Initialize to values that won't match anything in our table. */
|
/* Initialize to values that won't match anything in our table. */
|
||||||
firmware_revision = 0xff000000;
|
firmware_revision = 0xff000000;
|
||||||
|
Reference in New Issue
Block a user