浏览代码

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 <krh@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Kristian Høgsberg 18 年之前
父节点
当前提交
993baca3dd
共有 1 个文件被更改,包括 1 次插入2 次删除
  1. 1 2
      drivers/firewire/fw-topology.c

+ 1 - 2
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);