diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-01-17 22:45:54 +0100 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-01-20 19:29:52 +0100 |
commit | 3d36a0df3b473fb53531484df227f2da8bc7494b (patch) | |
tree | f0fcb758c8e68f1e5389ccd895d98efcc55ed0e8 /net/ethernet/eth.c | |
parent | 8cd0bbbdff7471163cc6a058be8b8610ddd01d6b (diff) |
firewire: keep highlevel drivers attached during brief connection loss
There are situations when nodes vanish from the bus and come back
quickly thereafter:
- When certain bus-powered hubs are plugged in,
- when certain devices are plugged into 6-port hubs,
- when certain disk enclosures are switched from self-power to bus
power or vice versa and break the daisy chain during the transition,
- when the user plugs a cable out and quickly plugs it back in, e.g.
to reorder a daisy chain (works on Mac OS X if done quickly enough),
- when certain hubs temporarily malfunction during high bus traffic.
Until now, firewire-core reported affected nodes as lost to the
highlevel drivers (firewire-sbp2 and userspace drivers). We now delay
the destruction of device representations until after at least two
seconds after the last bus reset. If a "new" device is detected in this
period whose bus information block and root directory header match that
of a device which is pending for deletion, we resurrect that device and
send update calls to highlevel drivers.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'net/ethernet/eth.c')
0 files changed, 0 insertions, 0 deletions