diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-07-07 09:36:07 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-07-13 03:47:47 -0400 |
commit | 8b4f70ba4967cae90d128857af1382026a24230a (patch) | |
tree | a327de21c9c5758bef562df9cb21ac90980b1c70 /drivers/firewire | |
parent | eb5b35a560510efc6bb62f05c3c82e9596cdfafe (diff) |
firewire: cdev: fix fw_cdev_event_bus_reset emission after local config ROM changes
When a descriptor was added or removed to the local node's config ROM,
userspace clients which had a local node's /dev/fw* open did not receive
any fw_cdev_event_bus_reset for poll()/read() consumption.
The cause was that the core-device.c facility which re-reads the config
ROM of the bus reset initiator node missed to call the fw_device update
function. The fw_units are destroyed and newly added, but their parent
stays and needs to be updated.
Reported-by: Jay Fenlason <fenlason@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire')
-rw-r--r-- | drivers/firewire/core-device.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c index 781fd7374ae9..e9c18f582c82 100644 --- a/drivers/firewire/core-device.c +++ b/drivers/firewire/core-device.c | |||
@@ -1136,6 +1136,7 @@ static void fw_device_refresh(struct work_struct *work) | |||
1136 | goto give_up; | 1136 | goto give_up; |
1137 | } | 1137 | } |
1138 | 1138 | ||
1139 | fw_device_cdev_update(device); | ||
1139 | create_units(device); | 1140 | create_units(device); |
1140 | 1141 | ||
1141 | /* Userspace may want to re-read attributes. */ | 1142 | /* Userspace may want to re-read attributes. */ |