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);
 

Reply via email to