Module Name: src Committed By: msaitoh Date: Thu Jul 25 05:58:25 UTC 2019
Modified Files: src/sys/dev/pci/ixgbe: ixv.c Log Message: Set IVAR (Interrupt Vector Allocation Register) correctly in ixgbe_set_ivar(). Found by KUBSan. To generate a diff of this commit: cvs rdiff -u -r1.120 -r1.121 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/ixv.c diff -u src/sys/dev/pci/ixgbe/ixv.c:1.120 src/sys/dev/pci/ixgbe/ixv.c:1.121 --- src/sys/dev/pci/ixgbe/ixv.c:1.120 Wed Jul 17 03:26:24 2019 +++ src/sys/dev/pci/ixgbe/ixv.c Thu Jul 25 05:58:25 2019 @@ -1,4 +1,4 @@ -/*$NetBSD: ixv.c,v 1.120 2019/07/17 03:26:24 msaitoh Exp $*/ +/*$NetBSD: ixv.c,v 1.121 2019/07/25 05:58:25 msaitoh Exp $*/ /****************************************************************************** @@ -2190,8 +2190,8 @@ ixv_set_ivar(struct adapter *adapter, u8 } else { /* RX/TX IVARS */ index = (16 * (entry & 1)) + (8 * type); ivar = IXGBE_READ_REG(hw, IXGBE_VTIVAR(entry >> 1)); - ivar &= ~(0xFF << index); - ivar |= (vector << index); + ivar &= ~(0xffUL << index); + ivar |= ((u32)vector << index); IXGBE_WRITE_REG(hw, IXGBE_VTIVAR(entry >> 1), ivar); } } /* ixv_set_ivar */