diff options
author | Kristian Høgsberg <krh@redhat.com> | 2007-03-07 12:12:48 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-03-09 22:03:11 +0100 |
commit | 2603bf219e9bef3396b96b65326de7db27958c95 (patch) | |
tree | 1e18057a1a7e4f22c0b7eaec1b3330ad426cdb72 /drivers/firewire/fw-device.h | |
parent | 2aaad97be6b58ae865f402fcd27d138e7346ff81 (diff) |
firewire: Use only a wait queue and terminate poll and read on device removal.
Drop the event list semaphore and only use the wait queue and the list
to synchronize queue access. Break out of a poll or read whenever
the device is disconnected.
Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-device.h')
-rw-r--r-- | drivers/firewire/fw-device.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/firewire/fw-device.h b/drivers/firewire/fw-device.h index 1a3655bea335..ba0e2463e4a7 100644 --- a/drivers/firewire/fw-device.h +++ b/drivers/firewire/fw-device.h @@ -53,11 +53,18 @@ fw_device(struct device *dev) return container_of(dev, struct fw_device, device); } +static inline int +fw_device_is_shutdown(struct fw_device *device) +{ + return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN; +} + struct fw_device *fw_device_get(struct fw_device *device); void fw_device_put(struct fw_device *device); int fw_device_enable_phys_dma(struct fw_device *device); void fw_device_cdev_update(struct fw_device *device); +void fw_device_cdev_remove(struct fw_device *device); struct fw_device *fw_device_from_devt(dev_t devt); extern int fw_cdev_major; |