mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] amendment to "firewire: reread config ROM when device reset the bus"
@ 2008-03-24 19:54 Stefan Richter
  0 siblings, 0 replies; only message in thread
From: Stefan Richter @ 2008-03-24 19:54 UTC (permalink / raw)
  To: linux1394-devel; +Cc: linux-kernel

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@s5r6.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/


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-03-24 19:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-24 19:54 [PATCH] amendment to "firewire: reread config ROM when device reset the bus" Stefan Richter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®