X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;ds=sidebyside;f=target%2Flinux%2Fgeneric%2Ffiles%2Fdrivers%2Fnet%2Fphy%2Fb53%2Fb53_common.c;h=f5dd068a1b03b72ca8249e3b46b6744690ee79d5;hb=69a13d9a4577237b01074264c447523c1d95c071;hp=39027c1771066e6eb9cdba0f088e84de7eec9885;hpb=4ee818beacc94141660512b30ddd06ae26c7f623;p=openwrt.git diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c index 39027c1771..f5dd068a1b 100644 --- a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c @@ -189,7 +189,8 @@ static void b53_set_vlan_entry(struct b53_device *dev, u16 vid, u16 members, u32 entry = 0; if (members) { - entry = (untag << VA_UNTAG_S) | members; + entry = ((untag & VA_UNTAG_MASK_25) << VA_UNTAG_S_25) | + members; if (dev->core_rev >= 3) entry |= VA_VALID_25_R4 | vid << VA_VID_HIGH_S; else @@ -203,7 +204,8 @@ static void b53_set_vlan_entry(struct b53_device *dev, u16 vid, u16 members, u16 entry = 0; if (members) - entry = (untag << VA_UNTAG_S) | members | VA_VALID_65; + entry = ((untag & VA_UNTAG_MASK_65) << VA_UNTAG_S_65) | + members | VA_VALID_65; b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_WRITE_65, entry); b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_65, vid |