From a7970fc8ae83cf466b33a7e79f136d2337745c43 Mon Sep 17 00:00:00 2001 From: msaitoh Date: Thu, 25 Jul 2019 09:01:56 +0000 Subject: Fix VLAN filter setting. Found by KUBSan. --- sys/dev/pci/ixgbe/ixgbe.c | 6 +++--- sys/dev/pci/ixgbe/ixgbe_common.c | 4 ++-- sys/dev/pci/ixgbe/ixv.c | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/pci/ixgbe/ixgbe.c b/sys/dev/pci/ixgbe/ixgbe.c index 69e2a260750..716976257e0 100644 --- a/sys/dev/pci/ixgbe/ixgbe.c +++ b/sys/dev/pci/ixgbe/ixgbe.c @@ -1,4 +1,4 @@ -/* $NetBSD: ixgbe.c,v 1.194 2019/07/24 06:07:57 msaitoh Exp $ */ +/* $NetBSD: ixgbe.c,v 1.195 2019/07/25 09:01:56 msaitoh Exp $ */ /****************************************************************************** @@ -2339,7 +2339,7 @@ ixgbe_register_vlan(void *arg, struct ifnet *ifp, u16 vtag) IXGBE_CORE_LOCK(adapter); index = (vtag >> 5) & 0x7F; bit = vtag & 0x1F; - adapter->shadow_vfta[index] |= (1 << bit); + adapter->shadow_vfta[index] |= ((u32)1 << bit); error = adapter->hw.mac.ops.set_vfta(&adapter->hw, vtag, 0, true, true); IXGBE_CORE_UNLOCK(adapter); @@ -2370,7 +2370,7 @@ ixgbe_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag) IXGBE_CORE_LOCK(adapter); index = (vtag >> 5) & 0x7F; bit = vtag & 0x1F; - adapter->shadow_vfta[index] &= ~(1 << bit); + adapter->shadow_vfta[index] &= ~((u32)1 << bit); error = adapter->hw.mac.ops.set_vfta(&adapter->hw, vtag, 0, false, true); IXGBE_CORE_UNLOCK(adapter); diff --git a/sys/dev/pci/ixgbe/ixgbe_common.c b/sys/dev/pci/ixgbe/ixgbe_common.c index 6988815b63d..e8cf4a7060f 100644 --- a/sys/dev/pci/ixgbe/ixgbe_common.c +++ b/sys/dev/pci/ixgbe/ixgbe_common.c @@ -1,4 +1,4 @@ -/* $NetBSD: ixgbe_common.c,v 1.24 2019/07/25 07:05:44 msaitoh Exp $ */ +/* $NetBSD: ixgbe_common.c,v 1.25 2019/07/25 09:01:56 msaitoh Exp $ */ /****************************************************************************** SPDX-License-Identifier: BSD-3-Clause @@ -4020,7 +4020,7 @@ s32 ixgbe_set_vfta_generic(struct ixgbe_hw *hw, u32 vlan, u32 vind, * bits[4-0]: which bit in the register */ regidx = vlan / 32; - vfta_delta = 1 << (vlan % 32); + vfta_delta = (u32)1 << (vlan % 32); vfta = IXGBE_READ_REG(hw, IXGBE_VFTA(regidx)); /* diff --git a/sys/dev/pci/ixgbe/ixv.c b/sys/dev/pci/ixgbe/ixv.c index 6f831ad52a4..9280aaab539 100644 --- a/sys/dev/pci/ixgbe/ixv.c +++ b/sys/dev/pci/ixgbe/ixv.c @@ -1,4 +1,4 @@ -/*$NetBSD: ixv.c,v 1.121 2019/07/25 05:58:25 msaitoh Exp $*/ +/*$NetBSD: ixv.c,v 1.122 2019/07/25 09:01:56 msaitoh Exp $*/ /****************************************************************************** @@ -2074,7 +2074,7 @@ ixv_register_vlan(void *arg, struct ifnet *ifp, u16 vtag) IXGBE_CORE_LOCK(adapter); index = (vtag >> 5) & 0x7F; bit = vtag & 0x1F; - adapter->shadow_vfta[index] |= (1 << bit); + adapter->shadow_vfta[index] |= ((u32)1 << bit); error = hw->mac.ops.set_vfta(hw, vtag, 0, true, false); IXGBE_CORE_UNLOCK(adapter); @@ -2109,7 +2109,7 @@ ixv_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag) IXGBE_CORE_LOCK(adapter); index = (vtag >> 5) & 0x7F; bit = vtag & 0x1F; - adapter->shadow_vfta[index] &= ~(1 << bit); + adapter->shadow_vfta[index] &= ~((u32)1 << bit); error = hw->mac.ops.set_vfta(hw, vtag, 0, false, false); IXGBE_CORE_UNLOCK(adapter); -- cgit