• Jesse Brandeburg's avatar
    net: intel: fix old compiler regressions · 75428f53
    Jesse Brandeburg authored
    The kernel build regressions/improvements email contained a couple of
    issues with old compilers (in fact all the reports were on different
    architectures, but all gcc 5.5) and the FIELD_PREP() and FIELD_GET()
    conversions. They're all because an integer #define that should have
    been declared as unsigned, was shifted to the point that it could set
    the sign bit.
    
    The fix just involves making sure the defines use the "U" identifier on
    the constants to make sure they're unsigned. Should make the checkers
    happier.
    
    Confirmed with objdump before/after that there is no change to the
    binaries.
    
    Issues were reported as follows:
    ./drivers/net/ethernet/intel/ice/ice_base.c:238:7: note: in expansion of macro 'FIELD_GET'
          (FIELD_GET(GLINT_CTL_ITR_GRAN_25_M, regval) == ICE_ITR_GRAN_US))
           ^
    ./include/linux/compiler_types.h:435:38: error: call to '__compiletime_assert_1093' declared with attribute error: FIELD_GET: mask is not constant
    drivers/net/ethernet/intel/ice/ice_nvm.c:709:16: note: in expansion of macro ‘FIELD_GET’
      orom->major = FIELD_GET(ICE_OROM_VER_MASK, combo_ver);
                    ^
    ./include/linux/compiler_types.h:435:38: error: call to ‘__compiletime_assert_796’ declared with attribute error: FIELD_GET: mask is not constant
    drivers/net/ethernet/intel/ice/ice_common.c:945:18: note: in expansion of macro ‘FIELD_GET’
      u8 max_agg_bw = FIELD_GET(GL_PWR_MODE_CTL_CAR_MAX_BW_M,
                      ^
    ./include/linux/compiler_types.h:435:38: error: call to ‘__compiletime_assert_420’ declared with attribute error: FIELD_GET: mask is not constant
    drivers/net/ethernet/intel/i40e/i40e_dcb.c:458:8: note: in expansion of macro ‘FIELD_GET’
      oui = FIELD_GET(I40E_LLDP_TLV_OUI_MASK, ouisubtype);
            ^
    Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Closes: https://lore.kernel.org/lkml/d03e90ca-8485-4d1b-5ec1-c3398e0e8da@linux-m68k.org/ #i40e #ice
    Fixes: 62589808 ("i40e: field get conversion")
    Fixes: 5a259f8e ("ice: field get conversion")
    Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
    Link: https://lore.kernel.org/r/20240206022906.2194214-1-jesse.brandeburg@intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    75428f53
i40e_dcb.h 9.24 KB