[<prev] [next>] [day] [month] [year] [list]
Message-ID: <tkrat.404f0a7603ed030f@s5r6.in-berlin.de>
Date: Mon, 24 Mar 2008 20:54:28 +0100 (CET)
From: Stefan Richter <stefanr@...6.in-berlin.de>
To: linux1394-devel@...ts.sourceforge.net
cc: linux-kernel@...r.kernel.org
Subject: [PATCH] amendment to "firewire: reread config ROM when device reset
the bus"
This applies after and should be rolled into patch "firewire: reread
config ROM when device reset the bus".
Fix:
fw_device_refresh() sometimes forgot to reschedule the bus manager work.
Among else, this kept the bus in danger of PHYs having different gap
counts, which resulted in "giving up on config ROM" or other errors.
Optimization:
We can start re-reading the config ROM of the local node without dealy.
Signed-off-by: Stefan Richter <stefanr@...6.in-berlin.de>
---
drivers/firewire/fw-device.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/drivers/firewire/fw-device.c 2008-03-24 19:10:42.000000000 +0100
+++ b/drivers/firewire/fw-device.c 2008-03-24 19:09:42.000000000 +0100
@@ -877,8 +877,7 @@ static void fw_device_refresh(struct wor
fw_device_update(work);
device->config_rom_retries = 0;
-
- return;
+ goto out;
case REREAD_BIB_CHANGED:
break;
@@ -982,7 +981,8 @@ void fw_node_event(struct fw_card *card,
FW_DEVICE_RUNNING,
FW_DEVICE_INITIALIZING) == FW_DEVICE_RUNNING) {
PREPARE_DELAYED_WORK(&device->work, fw_device_refresh);
- schedule_delayed_work(&device->work, INITIAL_DELAY);
+ schedule_delayed_work(&device->work,
+ node == card->local_node ? 0 : INITIAL_DELAY);
}
break;
--
Stefan Richter
-=====-==--- --== ==---
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists