Module Name: src Committed By: msaitoh Date: Thu Jul 25 09:01:56 UTC 2019
Modified Files: src/sys/dev/pci/ixgbe: ixgbe.c ixgbe_common.c ixv.c Log Message: Fix VLAN filter setting. Found by KUBSan. To generate a diff of this commit: cvs rdiff -u -r1.194 -r1.195 src/sys/dev/pci/ixgbe/ixgbe.c cvs rdiff -u -r1.24 -r1.25 src/sys/dev/pci/ixgbe/ixgbe_common.c cvs rdiff -u -r1.121 -r1.122 src/sys/dev/pci/ixgbe/ixv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/ixgbe/ixgbe.c diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.194 src/sys/dev/pci/ixgbe/ixgbe.c:1.195 --- src/sys/dev/pci/ixgbe/ixgbe.c:1.194 Wed Jul 24 06:07:57 2019 +++ src/sys/dev/pci/ixgbe/ixgbe.c Thu Jul 25 09:01:56 2019 @@ -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 if 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 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); Index: src/sys/dev/pci/ixgbe/ixgbe_common.c diff -u src/sys/dev/pci/ixgbe/ixgbe_common.c:1.24 src/sys/dev/pci/ixgbe/ixgbe_common.c:1.25 --- src/sys/dev/pci/ixgbe/ixgbe_common.c:1.24 Thu Jul 25 07:05:44 2019 +++ src/sys/dev/pci/ixgbe/ixgbe_common.c Thu Jul 25 09:01:56 2019 @@ -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_ * 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)); /* Index: src/sys/dev/pci/ixgbe/ixv.c diff -u src/sys/dev/pci/ixgbe/ixv.c:1.121 src/sys/dev/pci/ixgbe/ixv.c:1.122 --- src/sys/dev/pci/ixgbe/ixv.c:1.121 Thu Jul 25 05:58:25 2019 +++ src/sys/dev/pci/ixgbe/ixv.c Thu Jul 25 09:01:56 2019 @@ -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 ifne 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 if 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);