I did a compile with extra gcc warnings, and found a bug in
net/bridge/br_stp_if.c function br_stp_recalculate_bridge_id():
compare_ether_addr() returns 0 if match, positive if not, so
checking it for negative is wrong. 

Signed-of-by: Mika Kukkonen <[EMAIL PROTECTED]>

---

 net/bridge/br_stp_if.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
index ac09b6a..08c52c2 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -158,7 +158,7 @@ void br_stp_recalculate_bridge_id(struct
 
        list_for_each_entry(p, &br->port_list, list) {
                if (addr == br_mac_zero ||
-                   compare_ether_addr(p->dev->dev_addr, addr) < 0)
+                   compare_ether_addr(p->dev->dev_addr, addr))
                        addr = p->dev->dev_addr;
 
        }

_______________________________________________
Bridge mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/bridge

Reply via email to