From: Kristian Høgsberg Date: Tue, 6 Feb 2007 19:49:35 +0000 (-0500) Subject: firewire: Schedule topology work before calling driver update functions. X-Git-Tag: v2.6.22-rc1~111^2~97 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=993baca3dde7959567e3c7c262c2bc843ba241de;p=linux-2.6 firewire: Schedule topology work before calling driver update functions. This prevents superfluous bus traffic as fw-sbp2 logs in only to get kicked off the device by another bus reset as the driver core does bus management. Scheduling it this way lets the driver core finish bus management before higher level drivers get the update callback. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- diff --git a/drivers/firewire/fw-topology.c b/drivers/firewire/fw-topology.c index 27c6cb9c83..36c9be75b0 100644 --- a/drivers/firewire/fw-topology.c +++ b/drivers/firewire/fw-topology.c @@ -483,6 +483,7 @@ fw_core_handle_bus_reset(struct fw_card *card, card->generation = generation; memcpy(card->self_ids, self_ids, self_id_count * 4); card->reset_jiffies = jiffies; + schedule_delayed_work(&card->work, 0); local_node = build_tree(card); @@ -498,8 +499,6 @@ fw_core_handle_bus_reset(struct fw_card *card, update_tree(card, local_node); } - schedule_delayed_work(&card->work, 0); - spin_unlock_irqrestore(&card->lock, flags); } EXPORT_SYMBOL(fw_core_handle_bus_reset);