]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/bridge/br_stp_bpdu.c
sis190: mdio operation failure is not correctly detected
[linux-2.6-omap-h63xx.git] / net / bridge / br_stp_bpdu.c
index 60112bce66984343e8ab13121c1304a1cde29739..0edbd2a1c3f3cafe6d2046360f92b5a9084235f3 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/netfilter_bridge.h>
 #include <linux/etherdevice.h>
 #include <linux/llc.h>
+#include <net/net_namespace.h>
 #include <net/llc.h>
 #include <net/llc_pdu.h>
 #include <asm/unaligned.h>
@@ -64,7 +65,7 @@ static inline int br_get_ticks(const unsigned char *src)
 {
        unsigned long ticks = ntohs(get_unaligned((__be16 *)src));
 
-       return (ticks * HZ + STP_HZ - 1) / STP_HZ;
+       return DIV_ROUND_UP(ticks * HZ, STP_HZ);
 }
 
 /* called under bridge lock */
@@ -141,6 +142,9 @@ int br_stp_rcv(struct sk_buff *skb, struct net_device *dev,
        struct net_bridge *br;
        const unsigned char *buf;
 
+       if (dev->nd_net != &init_net)
+               goto err;
+
        if (!p)
                goto err;