• R/O
  • HTTP
  • SSH
  • HTTPS

linux-2.4.36: コミット

2.4.36-stable kernel tree


コミットメタ情報

リビジョンabf857e7a1cbfd9a2d4e72d22bd6ac0f8a69d1b3 (tree)
日時2006-11-02 10:28:40
作者Stephen Hemminger <shemminger@osdl...>
コミッターDavid S. Miller

ログメッセージ

[BRIDGE]: netfilter deadlock

A deadlock was found in bridge netfilter code (2.4 only), when a
device is removed. The device removal path causes a BPDU to be
generated and ends up self deadlocking on the BR lock.

Simple fix would be to avoid generating config bpdu's immediately when
becoming root bridge, and just let the first hello timer tick do that.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

変更サマリ

差分

--- a/net/bridge/br_stp.c
+++ b/net/bridge/br_stp.c
@@ -140,8 +140,8 @@ void br_become_root_bridge(struct net_bridge *br)
140140 br->forward_delay = br->bridge_forward_delay;
141141 br_topology_change_detection(br);
142142 br_timer_clear(&br->tcn_timer);
143- br_config_bpdu_generation(br);
144- br_timer_set(&br->hello_timer, jiffies);
143+
144+ br_timer_set(&br->hello_timer, jiffies - br->hello_time);
145145 }
146146
147147 /* called under bridge lock */
旧リポジトリブラウザで表示