The branch main has been updated by kbowling:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=bf6feffef6c16559333048859b24547acea3dba5

commit bf6feffef6c16559333048859b24547acea3dba5
Author:     Kevin Bowling <[email protected]>
AuthorDate: 2026-08-11 19:36:08 +0000
Commit:     Kevin Bowling <[email protected]>
CommitDate: 2026-08-11 20:59:33 +0000

    ixgbe: Use unsigned register bitmap shifts
    
    VLAN, VMDq, and VF reset bit indices can reach 31.  Use unsigned
    values when constructing their 32-bit register masks so the shifts do
    not operate on signed integers.
    
    MFC after:      2 weeks
---
 sys/dev/ixgbe/ixgbe_82598.c  |  6 +++---
 sys/dev/ixgbe/ixgbe_common.c | 18 +++++++++---------
 sys/dev/ixgbe/ixgbe_mbx.c    |  4 ++--
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/sys/dev/ixgbe/ixgbe_82598.c b/sys/dev/ixgbe/ixgbe_82598.c
index f27f263dd07f..dae2fa4b7613 100644
--- a/sys/dev/ixgbe/ixgbe_82598.c
+++ b/sys/dev/ixgbe/ixgbe_82598.c
@@ -1025,7 +1025,7 @@ s32 ixgbe_set_vfta_82598(struct ixgbe_hw *hw, u32 vlan, 
u32 vind,
 
        /* Set the nibble for VMD queue index */
        bits = IXGBE_READ_REG(hw, IXGBE_VFTAVIND(vftabyte, regindex));
-       bits &= (~(0x0F << bitindex));
+       bits &= ~(0x0FU << bitindex);
        bits |= (vind << bitindex);
        IXGBE_WRITE_REG(hw, IXGBE_VFTAVIND(vftabyte, regindex), bits);
 
@@ -1035,10 +1035,10 @@ s32 ixgbe_set_vfta_82598(struct ixgbe_hw *hw, u32 vlan, 
u32 vind,
        bits = IXGBE_READ_REG(hw, IXGBE_VFTA(regindex));
        if (vlan_on)
                /* Turn on this VLAN id */
-               bits |= (1 << bitindex);
+               bits |= 1U << bitindex;
        else
                /* Turn off this VLAN id */
-               bits &= ~(1 << bitindex);
+               bits &= ~(1U << bitindex);
        IXGBE_WRITE_REG(hw, IXGBE_VFTA(regindex), bits);
 
        return IXGBE_SUCCESS;
diff --git a/sys/dev/ixgbe/ixgbe_common.c b/sys/dev/ixgbe/ixgbe_common.c
index 2b9bd2da403c..5c80fb084d12 100644
--- a/sys/dev/ixgbe/ixgbe_common.c
+++ b/sys/dev/ixgbe/ixgbe_common.c
@@ -3841,10 +3841,10 @@ s32 ixgbe_clear_vmdq_generic(struct ixgbe_hw *hw, u32 
rar, u32 vmdq)
                        mpsar_hi = IXGBE_READ_REG(hw, IXGBE_MPSAR_HI(rar));
                }
        } else if (vmdq < 32) {
-               mpsar_lo &= ~(1 << vmdq);
+               mpsar_lo &= ~(1U << vmdq);
                IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), mpsar_lo);
        } else {
-               mpsar_hi &= ~(1 << (vmdq - 32));
+               mpsar_hi &= ~(1U << (vmdq - 32));
                IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), mpsar_hi);
        }
 
@@ -3878,11 +3878,11 @@ s32 ixgbe_set_vmdq_generic(struct ixgbe_hw *hw, u32 
rar, u32 vmdq)
 
        if (vmdq < 32) {
                mpsar = IXGBE_READ_REG(hw, IXGBE_MPSAR_LO(rar));
-               mpsar |= 1 << vmdq;
+               mpsar |= 1U << vmdq;
                IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), mpsar);
        } else {
                mpsar = IXGBE_READ_REG(hw, IXGBE_MPSAR_HI(rar));
-               mpsar |= 1 << (vmdq - 32);
+               mpsar |= 1U << (vmdq - 32);
                IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), mpsar);
        }
        return IXGBE_SUCCESS;
@@ -3906,11 +3906,11 @@ s32 ixgbe_set_vmdq_san_mac_generic(struct ixgbe_hw *hw, 
u32 vmdq)
        DEBUGFUNC("ixgbe_set_vmdq_san_mac");
 
        if (vmdq < 32) {
-               IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), 1 << vmdq);
+               IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), 1U << vmdq);
                IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), 0);
        } else {
                IXGBE_WRITE_REG(hw, IXGBE_MPSAR_LO(rar), 0);
-               IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), 1 << (vmdq - 32));
+               IXGBE_WRITE_REG(hw, IXGBE_MPSAR_HI(rar), 1U << (vmdq - 32));
        }
 
        return IXGBE_SUCCESS;
@@ -4018,7 +4018,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 = 1U << (vlan % 32);
        vfta = IXGBE_READ_REG(hw, IXGBE_VFTA(regidx));
 
        /*
@@ -4090,12 +4090,12 @@ s32 ixgbe_set_vlvf_generic(struct ixgbe_hw *hw, u32 
vlan, u32 vind,
        bits = IXGBE_READ_REG(hw, IXGBE_VLVFB(vlvf_index * 2 + vind / 32));
 
        /* set the pool bit */
-       bits |= 1 << (vind % 32);
+       bits |= 1U << (vind % 32);
        if (vlan_on)
                goto vlvf_update;
 
        /* clear the pool bit */
-       bits ^= 1 << (vind % 32);
+       bits ^= 1U << (vind % 32);
 
        if (!bits &&
            !IXGBE_READ_REG(hw, IXGBE_VLVFB(vlvf_index * 2 + 1 - vind / 32))) {
diff --git a/sys/dev/ixgbe/ixgbe_mbx.c b/sys/dev/ixgbe/ixgbe_mbx.c
index 82cbe0a18eb3..a6a2721d7132 100644
--- a/sys/dev/ixgbe/ixgbe_mbx.c
+++ b/sys/dev/ixgbe/ixgbe_mbx.c
@@ -861,9 +861,9 @@ static s32 ixgbe_check_for_rst_pf(struct ixgbe_hw *hw, u16 
vf_id)
                break;
        }
 
-       if (vflre & (1 << vf_shift)) {
+       if (vflre & (1U << vf_shift)) {
                ret_val = IXGBE_SUCCESS;
-               IXGBE_WRITE_REG(hw, IXGBE_PFVFLREC(index), (1 << vf_shift));
+               IXGBE_WRITE_REG(hw, IXGBE_PFVFLREC(index), 1U << vf_shift);
                hw->mbx.stats.rsts++;
        }
 

Reply via email to