diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-07-22 11:56:38 +0200 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-07-27 11:04:11 +0200 |
commit | 424d66cedae8bebb00fdb917fc8430f7b8a655cf (patch) | |
tree | cd232df29974be404978d47a2257c9422272d304 /kernel/rcutree.c | |
parent | firewire: nosy: handle errors in device probe (diff) | |
download | linux-424d66cedae8bebb00fdb917fc8430f7b8a655cf.tar.xz linux-424d66cedae8bebb00fdb917fc8430f7b8a655cf.zip |
firewire: nosy: fix device shutdown with active client
Fix race between nosy_open() and remove_card() by replacing the
unprotected array of card pointers by a mutex-protected list of cards.
Make card instances reference-counted and let each client hold a
reference.
Notify clients about card removal via POLLHUP in poll()'s events
bitmap; also let read() fail with errno=ENODEV if the card was removed
and everything in the buffer was read.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'kernel/rcutree.c')
0 files changed, 0 insertions, 0 deletions