adm5120: fix promiscuous mode handling (patch from #8581)
authorFelix Fietkau <nbd@openwrt.org>
Fri, 15 Apr 2011 00:20:59 +0000 (00:20 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 15 Apr 2011 00:20:59 +0000 (00:20 +0000)
SVN-Revision: 26673

target/linux/adm5120/files/drivers/net/adm5120sw.c

index 09cb9097e87d7afc2265309a35ca32623281c17a..9adbf6cbefd286e67a9d3351ddf9b52e0d297479 100644 (file)
@@ -962,10 +962,10 @@ static void adm5120_if_set_multicast_list(struct net_device *dev)
        /* to the CPU, the Bridge Test Mode has to be activated.               */
 
        /* Check if there is any vlan in promisc mode. */
-       if (t & (SWITCH_PORTS_NOCPU << CPUP_CONF_DUNP_SHIFT))
-               t &= ~CPUP_CONF_BTM; /* Disable Bridge Testing Mode */
-       else
+       if (~t & (SWITCH_PORTS_NOCPU << CPUP_CONF_DUNP_SHIFT))
                t |= CPUP_CONF_BTM;  /* Enable Bridge Testing Mode */
+       else
+               t &= ~CPUP_CONF_BTM; /* Disable Bridge Testing Mode */
 
        sw_write_reg(SWITCH_REG_CPUP_CONF, t);