ar71xx: on ar7240, exclude ports from their own port vlan destination mask (backport...
authorFelix Fietkau <nbd@openwrt.org>
Tue, 8 Nov 2011 00:34:11 +0000 (00:34 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 8 Nov 2011 00:34:11 +0000 (00:34 +0000)
SVN-Revision: 28852

target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c

index 534af4b9f9ea3d998c5fa8e894b56184826455cc..5e02303cbcac6dc86da770dadef291d793c34b00 100644 (file)
@@ -477,7 +477,6 @@ static void ar7240sw_setup_port(struct ar7240sw *as, unsigned port, u8 portmask)
 {
        struct mii_bus *mii = as->mii_bus;
        u32 ctrl;
-       u32 dest_ports;
        u32 vlan;
 
        ctrl = AR7240_PORT_CTRL_STATE_FORWARD | AR7240_PORT_CTRL_LEARN |
@@ -525,7 +524,7 @@ static void ar7240sw_setup_port(struct ar7240sw *as, unsigned port, u8 portmask)
        /* allow the port to talk to all other ports, but exclude its
         * own ID to prevent frames from being reflected back to the
         * port that they came from */
-       dest_ports = AR7240_PORT_MASK_BUT(port);
+       portmask &= AR7240_PORT_MASK_BUT(port);
 
        /* set default VID and and destination ports for this VLAN */
        vlan |= (portmask << AR7240_PORT_VLAN_DEST_PORTS_S);