Fix several GCC6 warnings
Subsystems (2)
cover Fix several GCC6 warnings
This patch series fixes several warnings on Intel(R) drivers, including for igb, igbvf, e1000e, ixgbe, ixgbevf, i40e, i40evf and fm10k.
The primary change is to use BIT() macro where appropriate, and use the unsigned postfix for various other bitshifts. While much of this change doesn't prevent any current warnings, it helps ensure that future additions make use of BIT() macro or the unsigned postfix and prevent signed bitshift errors in the future. A few places (especially in ixgbe) don't use BIT even though it's technically equivalent for style and understanding the real intent of the code.
The series also fixes some other warnings, and makes use of GENMASK in a few locations.
Jacob Keller (13):
ixgbe: use BIT() macro
ixgbe: resolve shift of negative value warning
ixgbevf: make use of BIT() macro to avoid shift of signed values i40e/i40evf: fix I40E_MASK signed shift overflow warnings
i40e: make use of BIT() macro to prevent left shift of signed values
i40evf: make use of BIT() macro to avoid signed left shift
igb: use BIT() macro or unsigned prefix
igb: make igb_update_pf_vlvf static
igbvf: remove unused variable and dead code
igbvf: use BIT() macro instead of shifts
e1000e: use BIT() macro for bit defines
e1000e: mark shifted values as unsigned
e1000e: remove unused variable
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 12 +- drivers/net/ethernet/intel/e1000e/82571.c | 30 ++-- drivers/net/ethernet/intel/e1000e/e1000.h | 100 ++++++------- drivers/net/ethernet/intel/e1000e/ethtool.c | 40 ++--- drivers/net/ethernet/intel/e1000e/ich8lan.c | 44 +++--- drivers/net/ethernet/intel/e1000e/ich8lan.h | 8 +- drivers/net/ethernet/intel/e1000e/mac.c | 2 +- drivers/net/ethernet/intel/e1000e/netdev.c | 29 ++-- drivers/net/ethernet/intel/e1000e/nvm.c | 2 +- drivers/net/ethernet/intel/e1000e/phy.c | 4 +- drivers/net/ethernet/intel/e1000e/phy.h | 10 +- drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 53 ++++--- drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +- .../net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 44 +++--- drivers/net/ethernet/intel/i40evf/i40e_type.h | 2 +- drivers/net/ethernet/intel/igb/e1000_82575.c | 8 +- drivers/net/ethernet/intel/igb/e1000_82575.h | 30 ++-- drivers/net/ethernet/intel/igb/e1000_defines.h | 108 +++++++------- drivers/net/ethernet/intel/igb/e1000_mac.c | 10 +- drivers/net/ethernet/intel/igb/e1000_mbx.c | 4 +- drivers/net/ethernet/intel/igb/e1000_nvm.c | 2 +- drivers/net/ethernet/intel/igb/e1000_phy.h | 6 +- drivers/net/ethernet/intel/igb/igb.h | 32 ++-- drivers/net/ethernet/intel/igb/igb_ethtool.c | 18 +-- drivers/net/ethernet/intel/igb/igb_main.c | 50 +++---- drivers/net/ethernet/intel/igb/igb_ptp.c | 6 +- drivers/net/ethernet/intel/igbvf/defines.h | 2 +- drivers/net/ethernet/intel/igbvf/ethtool.c | 2 +- drivers/net/ethernet/intel/igbvf/igbvf.h | 4 +- drivers/net/ethernet/intel/igbvf/netdev.c | 14 +- drivers/net/ethernet/intel/igbvf/vf.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe.h | 68 ++++----- drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 6 +- drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 16 +- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 30 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 6 +- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 14 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 36 ++--- drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 22 +-- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 164 ++++++++++----------- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 8 +- drivers/net/ethernet/intel/ixgbevf/defines.h | 22 +-- drivers/net/ethernet/intel/ixgbevf/ethtool.c | 2 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 8 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 18 +-- 52 files changed, 558 insertions(+), 564 deletions(-)
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 1/13 ixgbe: use BIT() macro
Several areas of ixgbe were written before widespread usage of the BIT(n) macro. With the impending release of GCC 6 and its associated new warnings, some usages such as (1 << 31) have been noted within the ixgbe driver source. Fix these wholesale and prevent future issues by simply using BIT macro instead of hand coded bit shifts.
Also fix a few shifts that are shifting values into place by using the 'u' prefix to indicate unsigned. It doesn't strictly matter in these cases because we're not shifting by too large a value, but these are all unsigned values and should be indicated as such.
--- drivers/net/ethernet/intel/ixgbe/ixgbe.h | 68 ++++----- drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 6 +- drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 16 +- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 30 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 6 +- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 14 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 32 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 22 +-- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 164 ++++++++++----------- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 8 +- 17 files changed, 194 insertions(+), 194 deletions(-)
drivers/net/ethernet/intel/ixgbe/ixgbe.h +34 -34
@@ -170,7 +170,7 @@ struct vf_macvlans { };#define IXGBE_MAX_TXD_PWR 14 -#define IXGBE_MAX_DATA_PER_TXD (1 << IXGBE_MAX_TXD_PWR) +#define IXGBE_MAX_DATA_PER_TXD BIT(IXGBE_MAX_TXD_PWR)/* Tx Descriptors needed, worst case */ #define TXD_USE_COUNT (S ) DIV_ROUND_UP((S), IXGBE_MAX_DATA_PER_TXD)
@@ -620,44 +620,44 @@ struct ixgbe_adapter {* thus the additional *_CAPABLE flags. */ u32 flags; -#define IXGBE_FLAG_MSI_ENABLED (u32)(1 << 1) -#define IXGBE_FLAG_MSIX_ENABLED (u32)(1 << 3) -#define IXGBE_FLAG_RX_1BUF_CAPABLE (u32)(1 << 4) -#define IXGBE_FLAG_RX_PS_CAPABLE (u32)(1 << 5) -#define IXGBE_FLAG_RX_PS_ENABLED (u32)(1 << 6) -#define IXGBE_FLAG_DCA_ENABLED (u32)(1 << 8) -#define IXGBE_FLAG_DCA_CAPABLE (u32)(1 << 9) -#define IXGBE_FLAG_IMIR_ENABLED (u32)(1 << 10) -#define IXGBE_FLAG_MQ_CAPABLE (u32)(1 << 11) -#define IXGBE_FLAG_DCB_ENABLED (u32)(1 << 12) -#define IXGBE_FLAG_VMDQ_CAPABLE (u32)(1 << 13) -#define IXGBE_FLAG_VMDQ_ENABLED (u32)(1 << 14) -#define IXGBE_FLAG_FAN_FAIL_CAPABLE (u32)(1 << 15) -#define IXGBE_FLAG_NEED_LINK_UPDATE (u32)(1 << 16) -#define IXGBE_FLAG_NEED_LINK_CONFIG (u32)(1 << 17) -#define IXGBE_FLAG_FDIR_HASH_CAPABLE (u32)(1 << 18) -#define IXGBE_FLAG_FDIR_PERFECT_CAPABLE (u32)(1 << 19) -#define IXGBE_FLAG_FCOE_CAPABLE (u32)(1 << 20) -#define IXGBE_FLAG_FCOE_ENABLED (u32)(1 << 21) -#define IXGBE_FLAG_SRIOV_CAPABLE (u32)(1 << 22) -#define IXGBE_FLAG_SRIOV_ENABLED (u32)(1 << 23) +#define IXGBE_FLAG_MSI_ENABLED BIT(1) +#define IXGBE_FLAG_MSIX_ENABLED BIT(3) +#define IXGBE_FLAG_RX_1BUF_CAPABLE BIT(4) +#define IXGBE_FLAG_RX_PS_CAPABLE BIT(5) +#define IXGBE_FLAG_RX_PS_ENABLED BIT(6) +#define IXGBE_FLAG_DCA_ENABLED BIT(8) +#define IXGBE_FLAG_DCA_CAPABLE BIT(9) +#define IXGBE_FLAG_IMIR_ENABLED BIT(10) +#define IXGBE_FLAG_MQ_CAPABLE BIT(11) +#define IXGBE_FLAG_DCB_ENABLED BIT(12) +#define IXGBE_FLAG_VMDQ_CAPABLE BIT(13) +#define IXGBE_FLAG_VMDQ_ENABLED BIT(14) +#define IXGBE_FLAG_FAN_FAIL_CAPABLE BIT(15) +#define IXGBE_FLAG_NEED_LINK_UPDATE BIT(16) +#define IXGBE_FLAG_NEED_LINK_CONFIG BIT(17) +#define IXGBE_FLAG_FDIR_HASH_CAPABLE BIT(18) +#define IXGBE_FLAG_FDIR_PERFECT_CAPABLE BIT(19) +#define IXGBE_FLAG_FCOE_CAPABLE BIT(20) +#define IXGBE_FLAG_FCOE_ENABLED BIT(21) +#define IXGBE_FLAG_SRIOV_CAPABLE BIT(22) +#define IXGBE_FLAG_SRIOV_ENABLED BIT(23)#define IXGBE_FLAG_VXLAN_OFFLOAD_CAPABLE BIT(24)#define IXGBE_FLAG_RX_HWTSTAMP_ENABLED BIT(25)#define IXGBE_FLAG_RX_HWTSTAMP_IN_REGISTER BIT(26)u32 flags2; -#define IXGBE_FLAG2_RSC_CAPABLE (u32)(1 << 0) -#define IXGBE_FLAG2_RSC_ENABLED (u32)(1 << 1) -#define IXGBE_FLAG2_TEMP_SENSOR_CAPABLE (u32)(1 << 2) -#define IXGBE_FLAG2_TEMP_SENSOR_EVENT (u32)(1 << 3) -#define IXGBE_FLAG2_SEARCH_FOR_SFP (u32)(1 << 4) -#define IXGBE_FLAG2_SFP_NEEDS_RESET (u32)(1 << 5) -#define IXGBE_FLAG2_RESET_REQUESTED (u32)(1 << 6) -#define IXGBE_FLAG2_FDIR_REQUIRES_REINIT (u32)(1 << 7) -#define IXGBE_FLAG2_RSS_FIELD_IPV4_UDP (u32)(1 << 8) -#define IXGBE_FLAG2_RSS_FIELD_IPV6_UDP (u32)(1 << 9) -#define IXGBE_FLAG2_PTP_PPS_ENABLED (u32)(1 << 10) -#define IXGBE_FLAG2_PHY_INTERRUPT (u32)(1 << 11) +#define IXGBE_FLAG2_RSC_CAPABLE BIT(0) +#define IXGBE_FLAG2_RSC_ENABLED BIT(1) +#define IXGBE_FLAG2_TEMP_SENSOR_CAPABLE BIT(2) +#define IXGBE_FLAG2_TEMP_SENSOR_EVENT BIT(3) +#define IXGBE_FLAG2_SEARCH_FOR_SFP BIT(4) +#define IXGBE_FLAG2_SFP_NEEDS_RESET BIT(5) +#define IXGBE_FLAG2_RESET_REQUESTED BIT(6) +#define IXGBE_FLAG2_FDIR_REQUIRES_REINIT BIT(7) +#define IXGBE_FLAG2_RSS_FIELD_IPV4_UDP BIT(8) +#define IXGBE_FLAG2_RSS_FIELD_IPV6_UDP BIT(9) +#define IXGBE_FLAG2_PTP_PPS_ENABLED BIT(10) +#define IXGBE_FLAG2_PHY_INTERRUPT BIT(11)#define IXGBE_FLAG2_VXLAN_REREG_NEEDED BIT(12)#define IXGBE_FLAG2_VLAN_PROMISC BIT(13)
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c +3 -3
@@ -792,7 +792,7 @@ mac_reset_top: } gheccr =IXGBE_READ_REG (hw,IXGBE_GHECCR ); - gheccr &= ~((1 <<21 ) | (1 <<18 ) | (1 <<9 ) | (1 <<6 )); + gheccr &= ~(BIT (21 ) |BIT (18 ) |BIT (9 ) |BIT (6 ));IXGBE_WRITE_REG (hw,IXGBE_GHECCR , gheccr);/*
@@ -914,10 +914,10 @@ static 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 |=BIT (bitindex);else /* Turn off this VLAN id */ - bits &= ~(1 << bitindex); + bits &= ~BIT (bitindex);IXGBE_WRITE_REG (hw,IXGBE_VFTA (regindex), bits);return 0 ;
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c +8 -8
@@ -1296,17 +1296,17 @@ s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 fdirctrl)#define IXGBE_COMPUTE_SIG_HASH_ITERATION (_n) \ do { \ u32 n = (_n); \ - if (IXGBE_ATR_COMMON_HASH_KEY & (0x01 << n)) \ + if (IXGBE_ATR_COMMON_HASH_KEY & BIT(n)) \ common_hash ^= lo_hash_dword >> n; \ - else if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << n)) \ + else if (IXGBE_ATR_BUCKET_HASH_KEY & BIT(n)) \ bucket_hash ^= lo_hash_dword >> n; \ - else if (IXGBE_ATR_SIGNATURE_HASH_KEY & (0x01 << n)) \ + else if (IXGBE_ATR_SIGNATURE_HASH_KEY & BIT(n)) \ sig_hash ^= lo_hash_dword << (16 - n); \ - if (IXGBE_ATR_COMMON_HASH_KEY & (0x01 << (n + 16))) \ + if (IXGBE_ATR_COMMON_HASH_KEY & BIT((n + 16))) \ common_hash ^= hi_hash_dword >> n; \ - else if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << (n + 16))) \ + else if (IXGBE_ATR_BUCKET_HASH_KEY & BIT((n + 16))) \ bucket_hash ^= hi_hash_dword >> n; \ - else if (IXGBE_ATR_SIGNATURE_HASH_KEY & (0x01 << (n + 16))) \ + else if (IXGBE_ATR_SIGNATURE_HASH_KEY & BIT((n + 16))) \ sig_hash ^= hi_hash_dword << (16 - n); \ } while (0)
@@ -1440,9 +1440,9 @@ s32 ixgbe_fdir_add_signature_filter_82599(struct ixgbe_hw *hw,#define IXGBE_COMPUTE_BKT_HASH_ITERATION (_n) \ do { \ u32 n = (_n); \ - if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << n)) \ + if (IXGBE_ATR_BUCKET_HASH_KEY & BIT(n)) \ bucket_hash ^= lo_hash_dword >> n; \ - if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << (n + 16))) \ + if (IXGBE_ATR_BUCKET_HASH_KEY & BIT((n + 16))) \ bucket_hash ^= hi_hash_dword >> n; \ } while (0)
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +15 -15
@@ -825,8 +825,8 @@ s32 ixgbe_init_eeprom_params_generic(struct ixgbe_hw *hw)*/ eeprom_size = (u16)((eec &IXGBE_EEC_SIZE ) >>IXGBE_EEC_SIZE_SHIFT ); - eeprom->word_size =1 << (eeprom_size + -IXGBE_EEPROM_WORD_SIZE_SHIFT ); + eeprom->word_size =BIT (eeprom_size + +IXGBE_EEPROM_WORD_SIZE_SHIFT ); }if (eec &IXGBE_EEC_ADDR_SIZE )
@@ -1502,7 +1502,7 @@ static void ixgbe_shift_out_eeprom_bits(struct ixgbe_hw *hw, u16 data,* Mask is used to shift "count" bits of "data" out to the EEPROM * one bit at a time. Determine the starting bit based on count */ - mask =0x01 << (count -1 ); + mask =BIT (count -1 );for (i =0 ; i < count; i++) {/*
@@ -1991,7 +1991,7 @@ static void ixgbe_set_mta(struct ixgbe_hw *hw, u8 *mc_addr)*/ vector_reg = (vector >>5 ) &0x7F ; vector_bit = vector &0x1F ; - hw->mac.mta_shadow[vector_reg] |= (1 << vector_bit); + hw->mac.mta_shadow[vector_reg] |=BIT (vector_bit); }/**
@@ -2921,10 +2921,10 @@ s32 ixgbe_clear_vmdq_generic(struct ixgbe_hw *hw, u32 rar, u32 vmdq) mpsar_hi =0 ; } }else if (vmdq <32 ) { - mpsar_lo &= ~(1 << vmdq); + mpsar_lo &= ~BIT (vmdq);IXGBE_WRITE_REG (hw,IXGBE_MPSAR_LO (rar), mpsar_lo); }else { - mpsar_hi &= ~(1 << (vmdq -32 )); + mpsar_hi &= ~BIT ((vmdq -32 ));IXGBE_WRITE_REG (hw,IXGBE_MPSAR_HI (rar), mpsar_hi); }
@@ -2953,11 +2953,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 |=BIT (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 |=BIT (vmdq -32 );IXGBE_WRITE_REG (hw,IXGBE_MPSAR_HI (rar), mpsar); }return 0 ;
@@ -2978,11 +2978,11 @@ s32 ixgbe_set_vmdq_san_mac_generic(struct ixgbe_hw *hw, u32 vmdq)u32 rar = hw->mac.san_mac_rar_index;if (vmdq <32 ) { -IXGBE_WRITE_REG (hw,IXGBE_MPSAR_LO (rar),1 << vmdq); +IXGBE_WRITE_REG (hw,IXGBE_MPSAR_LO (rar),BIT (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),BIT (vmdq -32 )); }return 0 ;
@@ -3082,7 +3082,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 =BIT (vlan %32 ); vfta =IXGBE_READ_REG (hw,IXGBE_VFTA (regidx));/* vfta_delta represents the difference between the current value
@@ -3113,12 +3113,12 @@ s32 ixgbe_set_vfta_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 |=BIT (vind %32 );if (vlan_on) goto vlvf_update;/* clear the pool bit */ - bits ^=1 << (vind %32 ); + bits ^=BIT (vind %32 );if (!bits && !IXGBE_READ_REG (hw,IXGBE_VLVFB (vlvf_index *2 +1 - vind /32 ))) {
@@ -3349,9 +3349,9 @@ void ixgbe_set_vlan_anti_spoofing(struct ixgbe_hw *hw, bool enable, int vf) pfvfspoof =IXGBE_READ_REG (hw,IXGBE_PFVFSPOOF (vf_target_reg));if (enable) - pfvfspoof |= (1 << vf_target_shift); + pfvfspoof |=BIT (vf_target_shift);else - pfvfspoof &= ~(1 << vf_target_shift); + pfvfspoof &= ~BIT (vf_target_shift);IXGBE_WRITE_REG (hw,IXGBE_PFVFSPOOF (vf_target_reg), pfvfspoof); }
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c +2 -2
@@ -186,7 +186,7 @@ void ixgbe_dcb_unpack_pfc(struct ixgbe_dcb_config *cfg, u8 *pfc_en)for (*pfc_en =0 , tc =0 ; tc <MAX_TRAFFIC_CLASS ; tc++) {if (tc_config[tc].dcb_pfc != pfc_disabled) - *pfc_en |=1 << tc; + *pfc_en |=BIT (tc); } }
@@ -232,7 +232,7 @@ void ixgbe_dcb_unpack_prio(struct ixgbe_dcb_config *cfg, int direction,u8 ixgbe_dcb_get_tc_from_up (struct ixgbe_dcb_config *cfg,int direction,u8 up) {struct tc_configuration *tc_config = &cfg->tc_config[0 ]; -u8 prio_mask =1 << up; +u8 prio_mask =BIT (up);u8 tc = cfg->num_tcs.pg_tcs;/* If tc is 0 then DCB is likely not enabled or supported */
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c +1 -1
@@ -210,7 +210,7 @@ s32 ixgbe_dcb_config_pfc_82598(struct ixgbe_hw *hw, u8 pfc_en)/* Configure PFC Tx thresholds per TC */ for (i =0 ; i <MAX_TRAFFIC_CLASS ; i++) { -if (!(pfc_en & (1 << i))) { +if (!(pfc_en &BIT (i))) {IXGBE_WRITE_REG (hw,IXGBE_FCRTL (i),0 );IXGBE_WRITE_REG (hw,IXGBE_FCRTH (i),0 );continue ;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c +1 -1
@@ -248,7 +248,7 @@ s32 ixgbe_dcb_config_pfc_82599(struct ixgbe_hw *hw, u8 pfc_en, u8 *prio_tc)int enabled =0 ;for (j =0 ; j <MAX_USER_PRIORITY ; j++) { -if ((prio_tc[j] == i) && (pfc_en & (1 << j))) { +if ((prio_tc[j] == i) && (pfc_en &BIT (j))) { enabled =1 ;break ; }
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c +3 -3
@@ -62,7 +62,7 @@ static int ixgbe_copy_dcb_cfg(struct ixgbe_adapter *adapter, int tc_max) };u8 up =dcb_getapp (adapter->netdev, &app); -if (up && !(up & (1 << adapter->fcoe.up))) +if (up && !(up &BIT (adapter->fcoe.up))) changes |=BIT_APP_UPCHG ;#endif
@@ -657,7 +657,7 @@ static int ixgbe_dcbnl_ieee_setapp(struct net_device *dev, app->protocol == ETH_P_FCOE) {u8 app_mask =dcb_ieee_getapp_mask (dev, app); -if (app_mask & (1 << adapter->fcoe.up)) +if (app_mask &BIT (adapter->fcoe.up))return 0 ; adapter->fcoe.up = app->priority;
@@ -700,7 +700,7 @@ static int ixgbe_dcbnl_ieee_delapp(struct net_device *dev, app->protocol == ETH_P_FCOE) {u8 app_mask =dcb_ieee_getapp_mask (dev, app); -if (app_mask & (1 << adapter->fcoe.up)) +if (app_mask &BIT (adapter->fcoe.up))return 0 ; adapter->fcoe.up = app_mask ?
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +7 -7
@@ -1588,7 +1588,7 @@ static int ixgbe_intr_test(struct ixgbe_adapter *adapter, u64 *data)/* Test each interrupt */ for (; i <10 ; i++) {/* Interrupt to test */ - mask =1 << i; + mask =BIT (i);if (!shared_int) {/*
@@ -3016,14 +3016,14 @@ static int ixgbe_get_ts_info(struct net_device *dev, info->phc_index =-1 ; info->tx_types = - (1 <<HWTSTAMP_TX_OFF ) | - (1 <<HWTSTAMP_TX_ON ); +BIT (HWTSTAMP_TX_OFF ) | +BIT (HWTSTAMP_TX_ON ); info->rx_filters = - (1 <<HWTSTAMP_FILTER_NONE ) | - (1 <<HWTSTAMP_FILTER_PTP_V1_L4_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_EVENT ); +BIT (HWTSTAMP_FILTER_NONE ) | +BIT (HWTSTAMP_FILTER_PTP_V1_L4_SYNC ) | +BIT (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ ) | +BIT (HWTSTAMP_FILTER_PTP_V2_EVENT );break ;default :return ethtool_op_get_ts_info (dev, info);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +16 -16
@@ -2246,7 +2246,7 @@ static void ixgbe_configure_msix(struct ixgbe_adapter *adapter)/* Populate MSIX to EITR Select */ if (adapter->num_vfs >32 ) { -u32 eitrsel = (1 << (adapter->num_vfs -32 )) -1 ; +u32 eitrsel =BIT (adapter->num_vfs -32 ) -1 ;IXGBE_WRITE_REG (&adapter->hw,IXGBE_EITRSEL , eitrsel); }
@@ -2885,7 +2885,7 @@ int ixgbe_poll(struct napi_struct *napi, int budget)if (adapter->rx_itr_setting &1 )ixgbe_set_itr (q_vector);if (!test_bit (__IXGBE_DOWN, &adapter->state)) -ixgbe_irq_enable_queues (adapter, ((u64 )1 << q_vector->v_idx)); +ixgbe_irq_enable_queues (adapter,BIT_ULL (q_vector->v_idx));return 0 ; }
@@ -3178,15 +3178,15 @@ void ixgbe_configure_tx_ring(struct ixgbe_adapter *adapter,* currently 40. */ if (!ring->q_vector || (ring->q_vector->itr <IXGBE_100K_ITR )) - txdctl |= (1 <<16 );/* WTHRESH = 1 */ + txdctl |=1u <<16 ;/* WTHRESH = 1 */ else - txdctl |= (8 <<16 );/* WTHRESH = 8 */ + txdctl |=8u <<16 ;/* WTHRESH = 8 */ /* * Setting PTHRESH to 32 both improves performance * and avoids a TX hang with DFP enabled */ - txdctl |= (1 <<8 ) |/* HTHRESH = 1 */ + txdctl |= (1u <<8 ) |/* HTHRESH = 1 */ 32 ;/* PTHRESH = 32 */ /* reinitialize flowdirector state */
@@ -3738,9 +3738,9 @@ static void ixgbe_setup_psrtype(struct ixgbe_adapter *adapter)return ;if (rss_i >3 ) - psrtype |=2 <<29 ; + psrtype |=2u <<29 ;else if (rss_i >1 ) - psrtype |=1 <<29 ; + psrtype |=1u <<29 ;for_each_set_bit (pool, &adapter->fwd_bitmask,32 )IXGBE_WRITE_REG (hw,IXGBE_PSRTYPE (VMDQ_P (pool)), psrtype);
@@ -3995,7 +3995,7 @@ void ixgbe_update_pf_promisc_vlvf(struct ixgbe_adapter *adapter, u32 vid)* entry other than the PF. */ word = idx *2 + (VMDQ_P (0 ) /32 ); - bits = ~(1 << (VMDQ_P (0 )) %32 ); + bits = ~BIT (VMDQ_P (0 ) %32 ); bits &=IXGBE_READ_REG (hw,IXGBE_VLVFB (word));/* Disable the filter so this falls into the default pool. */
@@ -4130,7 +4130,7 @@ static void ixgbe_vlan_promisc_enable(struct ixgbe_adapter *adapter)u32 reg_offset =IXGBE_VLVFB (i *2 +VMDQ_P (0 ) /32 );u32 vlvfb =IXGBE_READ_REG (hw, reg_offset); - vlvfb |=1 << (VMDQ_P (0 ) %32 ); + vlvfb |=BIT (VMDQ_P (0 ) %32 );IXGBE_WRITE_REG (hw, reg_offset, vlvfb); }
@@ -4160,7 +4160,7 @@ static void ixgbe_scrub_vfta(struct ixgbe_adapter *adapter, u32 vfta_offset)if (vlvf) {/* record VLAN ID in VFTA */ - vfta[(vid - vid_start) /32 ] |=1 << (vid %32 ); + vfta[(vid - vid_start) /32 ] |=BIT (vid %32 );/* if PF is part of this then continue */ if (test_bit (vid, adapter->active_vlans))
@@ -4169,7 +4169,7 @@ static void ixgbe_scrub_vfta(struct ixgbe_adapter *adapter, u32 vfta_offset)/* remove PF from the pool */ word = i *2 +VMDQ_P (0 ) /32 ; - bits = ~(1 << (VMDQ_P (0 ) %32 )); + bits = ~BIT (VMDQ_P (0 ) %32 ); bits &=IXGBE_READ_REG (hw,IXGBE_VLVFB (word));IXGBE_WRITE_REG (hw,IXGBE_VLVFB (word), bits); }
@@ -4863,9 +4863,9 @@ static void ixgbe_fwd_psrtype(struct ixgbe_fwd_adapter *vadapter)return ;if (rss_i >3 ) - psrtype |=2 <<29 ; + psrtype |=2u <<29 ;else if (rss_i >1 ) - psrtype |=1 <<29 ; + psrtype |=1u <<29 ;IXGBE_WRITE_REG (hw,IXGBE_PSRTYPE (VMDQ_P (pool)), psrtype); }
@@ -4929,7 +4929,7 @@ static void ixgbe_disable_fwd_ring(struct ixgbe_fwd_adapter *vadapter,/* shutdown specific queue receive and wait for dma to settle */ ixgbe_disable_rx_queue (adapter, rx_ring);usleep_range (10000 ,20000 ); -ixgbe_irq_disable_queues (adapter, ((u64 )1 << index)); +ixgbe_irq_disable_queues (adapter,BIT_ULL (index));ixgbe_clean_rx_ring (rx_ring); rx_ring->l2_accel_priv =NULL ; }
@@ -6629,7 +6629,7 @@ static void ixgbe_check_hang_subtask(struct ixgbe_adapter *adapter)for (i =0 ; i < adapter->num_q_vectors; i++) {struct ixgbe_q_vector *qv = adapter->q_vector[i];if (qv->rx.ring || qv->tx.ring) - eics |= ((u64 )1 << i); + eics |=BIT_ULL (i); } }
@@ -9221,7 +9221,7 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_ioremap; }/* If EEPROM is valid (bit 8 = 1), use default otherwise use bit bang */ -if (!(eec & (1 <<8 ))) +if (!(eec &BIT (8 ))) hw->eeprom.ops.read = &ixgbe_read_eeprom_bit_bang_generic;/* PHY */
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c +2 -2
@@ -314,8 +314,8 @@ static s32 ixgbe_check_for_rst_pf(struct ixgbe_hw *hw, u16 vf_number)break ; } -if (vflre & (1 << vf_shift)) { -IXGBE_WRITE_REG (hw,IXGBE_VFLREC (reg_offset), (1 << vf_shift)); +if (vflre &BIT (vf_shift)) { +IXGBE_WRITE_REG (hw,IXGBE_VFLREC (reg_offset),BIT (vf_shift)); hw->mbx.stats.rsts++;return 0 ; }
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h +1 -1
@@ -107,7 +107,7 @@#define IXGBE_PE 0xE0/* Port expander addr */ #define IXGBE_PE_OUTPUT 1/* Output reg offset */ #define IXGBE_PE_CONFIG 3/* Config reg offset */ -#define IXGBE_PE_BIT1 (1 << 1) +#define IXGBE_PE_BIT1 BIT(1)/* Flow control defines */ #define IXGBE_TAF_SYM_PAUSE 0x400
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c +2 -2
@@ -396,7 +396,7 @@ static int ixgbe_ptp_adjfreq_82599(struct ptp_clock_info *ptp, s32 ppb)if (incval >0x00FFFFFFULL )e_dev_warn ("PTP ppb adjusted SYSTIME rate overflowed!\n" );IXGBE_WRITE_REG (hw,IXGBE_TIMINCA , - (1 <<IXGBE_INCPER_SHIFT_82599 ) | +BIT (IXGBE_INCPER_SHIFT_82599 ) | ((u32 )incval &0x00FFFFFFUL ));break ;default :
@@ -1114,7 +1114,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter) incval >>=IXGBE_INCVAL_SHIFT_82599 ; cc.shift -=IXGBE_INCVAL_SHIFT_82599 ;IXGBE_WRITE_REG (hw,IXGBE_TIMINCA , - (1 <<IXGBE_INCPER_SHIFT_82599 ) | incval); +BIT (IXGBE_INCPER_SHIFT_82599 ) | incval);break ;default :/* other devices aren't supported */
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +11 -11
@@ -406,7 +406,7 @@ static int ixgbe_set_vf_multicasts(struct ixgbe_adapter *adapter, vector_reg = (vfinfo->vf_mc_hashes[i] >>5 ) &0x7F ; vector_bit = vfinfo->vf_mc_hashes[i] &0x1F ; mta_reg =IXGBE_READ_REG (hw,IXGBE_MTA (vector_reg)); - mta_reg |= (1 << vector_bit); + mta_reg |=BIT (vector_bit);IXGBE_WRITE_REG (hw,IXGBE_MTA (vector_reg), mta_reg); } vmolr |=IXGBE_VMOLR_ROMPE ;
@@ -433,7 +433,7 @@ void ixgbe_restore_vf_multicasts(struct ixgbe_adapter *adapter) vector_reg = (vfinfo->vf_mc_hashes[j] >>5 ) &0x7F ; vector_bit = vfinfo->vf_mc_hashes[j] &0x1F ; mta_reg =IXGBE_READ_REG (hw,IXGBE_MTA (vector_reg)); - mta_reg |= (1 << vector_bit); + mta_reg |=BIT (vector_bit);IXGBE_WRITE_REG (hw,IXGBE_MTA (vector_reg), mta_reg); }
@@ -536,9 +536,9 @@ static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)/* enable or disable receive depending on error */ vfre =IXGBE_READ_REG (hw,IXGBE_VFRE (reg_offset));if (err) - vfre &= ~(1 << vf_shift); + vfre &= ~BIT (vf_shift);else - vfre |=1 << vf_shift; + vfre |=BIT (vf_shift);IXGBE_WRITE_REG (hw,IXGBE_VFRE (reg_offset), vfre);if (err) {
@@ -592,8 +592,8 @@ static void ixgbe_clear_vf_vlans(struct ixgbe_adapter *adapter, u32 vf)u32 vlvfb_mask, pool_mask, i;/* create mask for VF and other pools */ - pool_mask = ~(1 << (VMDQ_P (0 ) %32 )); - vlvfb_mask =1 << (vf %32 ); + pool_mask = ~BIT (VMDQ_P (0 ) %32 ); + vlvfb_mask =BIT (vf %32 );/* post increment loop, covers VLVF_ENTRIES - 1 to 0 */ for (i =IXGBE_VLVF_ENTRIES ; i--;) {
@@ -629,7 +629,7 @@ static void ixgbe_clear_vf_vlans(struct ixgbe_adapter *adapter, u32 vf) goto update_vlvfb; vid = vlvf &VLAN_VID_MASK ; - mask =1 << (vid %32 ); + mask =BIT (vid %32 );/* clear bit from VFTA */ vfta =IXGBE_READ_REG (hw,IXGBE_VFTA (vid /32 ));
@@ -813,7 +813,7 @@ static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)/* enable transmit for vf */ reg =IXGBE_READ_REG (hw,IXGBE_VFTE (reg_offset)); - reg |=1 << vf_shift; + reg |=BIT (vf_shift);IXGBE_WRITE_REG (hw,IXGBE_VFTE (reg_offset), reg);/* force drop enable for all VF Rx queues */
@@ -821,7 +821,7 @@ static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)/* enable receive for vf */ reg =IXGBE_READ_REG (hw,IXGBE_VFRE (reg_offset)); - reg |=1 << vf_shift; + reg |=BIT (vf_shift);/* * The 82599 cannot support a mix of jumbo and non-jumbo PF/VFs. * For more info take a look@ixgbe_set_vf_lpe
@@ -837,7 +837,7 @@ static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)#endif /* CONFIG_FCOE */ if (pf_max_frame >ETH_FRAME_LEN ) - reg &= ~(1 << vf_shift); + reg &= ~BIT (vf_shift); }IXGBE_WRITE_REG (hw,IXGBE_VFRE (reg_offset), reg);
@@ -846,7 +846,7 @@ static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)/* Enable counting of spoofed packets in the SSVPC register */ reg =IXGBE_READ_REG (hw,IXGBE_VMECM (reg_offset)); - reg |= (1 << vf_shift); + reg |=BIT (vf_shift);IXGBE_WRITE_REG (hw,IXGBE_VMECM (reg_offset), reg);/*
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h +82 -82
250 lines not on this page · raw message
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c +2 -2
@@ -214,8 +214,8 @@ s32 ixgbe_init_eeprom_params_X540(struct ixgbe_hw *hw) eec =IXGBE_READ_REG (hw,IXGBE_EEC (hw)); eeprom_size = (u16)((eec &IXGBE_EEC_SIZE ) >>IXGBE_EEC_SIZE_SHIFT ); - eeprom->word_size =1 << (eeprom_size + -IXGBE_EEPROM_WORD_SIZE_SHIFT ); + eeprom->word_size =BIT (eeprom_size + +IXGBE_EEPROM_WORD_SIZE_SHIFT );hw_dbg (hw,"Eeprom params: type = %d, size = %d\n" , eeprom->type, eeprom->word_size);
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +4 -4
@@ -335,8 +335,8 @@ static s32 ixgbe_init_eeprom_params_X550(struct ixgbe_hw *hw) eec =IXGBE_READ_REG (hw,IXGBE_EEC (hw)); eeprom_size = (u16)((eec &IXGBE_EEC_SIZE ) >>IXGBE_EEC_SIZE_SHIFT ); - eeprom->word_size =1 << (eeprom_size + -IXGBE_EEPROM_WORD_SIZE_SHIFT ); + eeprom->word_size =BIT (eeprom_size + +IXGBE_EEPROM_WORD_SIZE_SHIFT );hw_dbg (hw,"Eeprom params: type = %d, size = %d\n" , eeprom->type, eeprom->word_size);
@@ -2646,9 +2646,9 @@ static void ixgbe_set_ethertype_anti_spoofing_X550(struct ixgbe_hw *hw, pfvfspoof =IXGBE_READ_REG (hw,IXGBE_PFVFSPOOF (vf_target_reg));if (enable) - pfvfspoof |= (1 << vf_target_shift); + pfvfspoof |=BIT (vf_target_shift);else - pfvfspoof &= ~(1 << vf_target_shift); + pfvfspoof &= ~BIT (vf_target_shift);IXGBE_WRITE_REG (hw,IXGBE_PFVFSPOOF (vf_target_reg), pfvfspoof); }
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 2/13 ixgbe: resolve shift of negative value warning
In reply to Jacob KellerMake use of GENMASK instead of open coding the equivalent operation incorrectly.
--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +2 -2
@@ -3767,9 +3767,9 @@ static void ixgbe_configure_virtualization(struct ixgbe_adapter *adapter) reg_offset = (VMDQ_P (0 ) >=32 ) ?1 :0 ;/* Enable only the PF's pool for Tx/Rx */ -IXGBE_WRITE_REG (hw,IXGBE_VFRE (reg_offset), (~0 ) << vf_shift); +IXGBE_WRITE_REG (hw,IXGBE_VFRE (reg_offset),GENMASK (vf_shift,31 ));IXGBE_WRITE_REG (hw,IXGBE_VFRE (reg_offset ^1 ), reg_offset -1 ); -IXGBE_WRITE_REG (hw,IXGBE_VFTE (reg_offset), (~0 ) << vf_shift); +IXGBE_WRITE_REG (hw,IXGBE_VFTE (reg_offset),GENMASK (vf_shift,31 ));IXGBE_WRITE_REG (hw,IXGBE_VFTE (reg_offset ^1 ), reg_offset -1 );if (adapter->bridge_mode ==BRIDGE_MODE_VEB )IXGBE_WRITE_REG (hw,IXGBE_PFDTXGSWC ,IXGBE_PFDTXGSWC_VT_LBEN );
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 3/13 ixgbevf: make use of BIT() macro to avoid shift of signed values
In reply to Jacob KellerAlso cleanup a case where we're bit shifting a value into place, and use an unsigned constant.
--- drivers/net/ethernet/intel/ixgbevf/defines.h | 22 +++++++++++----------- drivers/net/ethernet/intel/ixgbevf/ethtool.c | 2 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 8 ++++---- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 18 +++++++++--------- 4 files changed, 25 insertions(+), 25 deletions(-)
drivers/net/ethernet/intel/ixgbevf/defines.h +11 -11
@@ -74,7 +74,7 @@ typedef u32 ixgbe_link_speed;#define IXGBE_RXDCTL_RLPML_EN 0x00008000/* DCA Control */ -#define IXGBE_DCA_TXCTRL_TX_WB_RO_EN (1 << 11)/* Tx Desc writeback RO bit */ +#define IXGBE_DCA_TXCTRL_TX_WB_RO_EN BIT(11)/* Tx Desc writeback RO bit */ /* PSRTYPE bit definitions */ #define IXGBE_PSRTYPE_TCPHDR 0x00000010
@@ -296,16 +296,16 @@ struct ixgbe_adv_tx_context_desc {#define IXGBE_TXDCTL_SWFLSH 0x04000000/* Tx Desc. wr-bk flushing */ #define IXGBE_TXDCTL_WTHRESH_SHIFT 16/* shift to WTHRESH bits */ -#define IXGBE_DCA_RXCTRL_DESC_DCA_EN (1 << 5)/* Rx Desc enable */ -#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN (1 << 6)/* Rx Desc header ena */ -#define IXGBE_DCA_RXCTRL_DATA_DCA_EN (1 << 7)/* Rx Desc payload ena */ -#define IXGBE_DCA_RXCTRL_DESC_RRO_EN (1 << 9)/* Rx rd Desc Relax Order */ -#define IXGBE_DCA_RXCTRL_DATA_WRO_EN (1 << 13)/* Rx wr data Relax Order */ -#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN (1 << 15)/* Rx wr header RO */ +#define IXGBE_DCA_RXCTRL_DESC_DCA_EN BIT(5)/* Rx Desc enable */ +#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN BIT(6)/* Rx Desc header ena */ +#define IXGBE_DCA_RXCTRL_DATA_DCA_EN BIT(7)/* Rx Desc payload ena */ +#define IXGBE_DCA_RXCTRL_DESC_RRO_EN BIT(9)/* Rx rd Desc Relax Order */ +#define IXGBE_DCA_RXCTRL_DATA_WRO_EN BIT(13)/* Rx wr data Relax Order */ +#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN BIT(15)/* Rx wr header RO */ -#define IXGBE_DCA_TXCTRL_DESC_DCA_EN (1 << 5)/* DCA Tx Desc enable */ -#define IXGBE_DCA_TXCTRL_DESC_RRO_EN (1 << 9)/* Tx rd Desc Relax Order */ -#define IXGBE_DCA_TXCTRL_DESC_WRO_EN (1 << 11)/* Tx Desc writeback RO bit */ -#define IXGBE_DCA_TXCTRL_DATA_RRO_EN (1 << 13)/* Tx rd data Relax Order */ +#define IXGBE_DCA_TXCTRL_DESC_DCA_EN BIT(5)/* DCA Tx Desc enable */ +#define IXGBE_DCA_TXCTRL_DESC_RRO_EN BIT(9)/* Tx rd Desc Relax Order */ +#define IXGBE_DCA_TXCTRL_DESC_WRO_EN BIT(11)/* Tx Desc writeback RO bit */ +#define IXGBE_DCA_TXCTRL_DATA_RRO_EN BIT(13)/* Tx rd data Relax Order */ #endif /* _IXGBEVF_DEFINES_H_ */
drivers/net/ethernet/intel/ixgbevf/ethtool.c +1 -1
@@ -166,7 +166,7 @@ static void ixgbevf_get_regs(struct net_device *netdev,memset (p,0 , regs_len); - regs->version = (1 <<24 ) | hw->revision_id <<16 | hw->device_id; + regs->version =BIT (24 ) | hw->revision_id <<16 | hw->device_id;/* General Registers */ regs_buff[0 ] =IXGBE_READ_REG (hw,IXGBE_VFCTRL );
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h +4 -4
@@ -166,10 +166,10 @@ struct ixgbevf_ring {#define MAXIMUM_ETHERNET_VLAN_SIZE (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN) -#define IXGBE_TX_FLAGS_CSUM (u32)(1) -#define IXGBE_TX_FLAGS_VLAN (u32)(1 << 1) -#define IXGBE_TX_FLAGS_TSO (u32)(1 << 2) -#define IXGBE_TX_FLAGS_IPV4 (u32)(1 << 3) +#define IXGBE_TX_FLAGS_CSUM BIT(0) +#define IXGBE_TX_FLAGS_VLAN BIT(1) +#define IXGBE_TX_FLAGS_TSO BIT(2) +#define IXGBE_TX_FLAGS_IPV4 BIT(3)#define IXGBE_TX_FLAGS_VLAN_MASK 0xffff0000#define IXGBE_TX_FLAGS_VLAN_PRIO_MASK 0x0000e000#define IXGBE_TX_FLAGS_VLAN_SHIFT 16
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +9 -9
@@ -1056,7 +1056,7 @@ static int ixgbevf_poll(struct napi_struct *napi, int budget)if (!test_bit (__IXGBEVF_DOWN, &adapter->state) && !test_bit (__IXGBEVF_REMOVING, &adapter->state))ixgbevf_irq_enable_queues (adapter, -1 << q_vector->v_idx); +BIT (q_vector->v_idx));return 0 ; }
@@ -1158,14 +1158,14 @@ static void ixgbevf_configure_msix(struct ixgbevf_adapter *adapter) }/* add q_vector eims value to global eims_enable_mask */ - adapter->eims_enable_mask |=1 << v_idx; + adapter->eims_enable_mask |=BIT (v_idx);ixgbevf_write_eitr (q_vector); }ixgbevf_set_ivar (adapter,-1 ,1 , v_idx);/* setup eims_other and add value to global eims_enable_mask */ - adapter->eims_other =1 << v_idx; + adapter->eims_other =BIT (v_idx); adapter->eims_enable_mask |= adapter->eims_other; }
@@ -1589,8 +1589,8 @@ static void ixgbevf_configure_tx_ring(struct ixgbevf_adapter *adapter, txdctl |= (8 <<16 );/* WTHRESH = 8 */ /* Setting PTHRESH to 32 both improves performance */ - txdctl |= (1 <<8 ) |/* HTHRESH = 1 */ -32 ;/* PTHRESH = 32 */ + txdctl |= (1u <<8 ) |/* HTHRESH = 1 */ +32 ;/* PTHRESH = 32 */ clear_bit (__IXGBEVF_HANG_CHECK_ARMED, &ring->state);
@@ -1646,7 +1646,7 @@ static void ixgbevf_setup_psrtype(struct ixgbevf_adapter *adapter)IXGBE_PSRTYPE_L2HDR ;if (adapter->num_rx_queues >1 ) - psrtype |=1 <<29 ; + psrtype |=BIT (29 );IXGBE_WRITE_REG (hw,IXGBE_VFPSRTYPE , psrtype); }
@@ -2797,7 +2797,7 @@ static void ixgbevf_check_hang_subtask(struct ixgbevf_adapter *adapter)struct ixgbevf_q_vector *qv = adapter->q_vector[i];if (qv->rx.ring || qv->tx.ring) - eics |=1 << i; + eics |=BIT (i); }/* Cause software interrupt to ensure rings are cleaned */
@@ -3325,7 +3325,7 @@ static int ixgbevf_tso(struct ixgbevf_ring *tx_ring,/* mss_l4len_id: use 1 as index for TSO */ mss_l4len_idx = l4len <<IXGBE_ADVTXD_L4LEN_SHIFT ; mss_l4len_idx |=skb_shinfo (skb)->gso_size <<IXGBE_ADVTXD_MSS_SHIFT ; - mss_l4len_idx |=1 <<IXGBE_ADVTXD_IDX_SHIFT ; + mss_l4len_idx |=BIT (IXGBE_ADVTXD_IDX_SHIFT );/* vlan_macip_lens: HEADLEN, MACLEN, VLAN tag */ vlan_macip_lens =skb_network_header_len (skb);
@@ -3422,7 +3422,7 @@ static void ixgbevf_tx_olinfo_status(union ixgbe_adv_tx_desc *tx_desc,/* use index 1 context for TSO/FSO/FCOE */ if (tx_flags &IXGBE_TX_FLAGS_TSO ) - olinfo_status |=cpu_to_le32 (1 <<IXGBE_ADVTXD_IDX_SHIFT ); + olinfo_status |=cpu_to_le32 (BIT (IXGBE_ADVTXD_IDX_SHIFT ));/* Check Context must be set if Tx switch is enabled, which it * always is for case where virtual functions are running
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 3/13 ixgbevf: make use of BIT() macro to avoid shift of signed values
Quoted 56 lines · Jacob Keller
Also cleanup a case where we're bit shifting a value into place, and use an unsigned constant.
Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/ixgbevf/defines.h | 22 +++++++++++----------- drivers/net/ethernet/intel/ixgbevf/ethtool.c | 2 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 8 ++++---- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 18 +++++++++--------- 4 files changed, 25 insertions(+), 25 deletions(-)drivers/net/ethernet/intel/ixgbevf/defines.h +11
-11@@ -74,7 +74,7 @@ typedef u32 ixgbe_link_speed;#define IXGBE_RXDCTL_RLPML_EN 0x00008000/* DCA Control */ -#define IXGBE_DCA_TXCTRL_TX_WB_RO_EN (1 << 11)/* Tx Desc writeback RO bit */ +#define IXGBE_DCA_TXCTRL_TX_WB_RO_EN BIT(11)/* Tx Desc writeback RO bit */ /* PSRTYPE bit definitions */ #define IXGBE_PSRTYPE_TCPHDR 0x00000010@@ -296,16 +296,16 @@ struct ixgbe_adv_tx_context_desc {#define IXGBE_TXDCTL_SWFLSH 0x04000000/* Tx Desc. wr-bk flushing */ #define IXGBE_TXDCTL_WTHRESH_SHIFT 16/* shift to WTHRESH bits */ -#define IXGBE_DCA_RXCTRL_DESC_DCA_EN (1 << 5)/* Rx Desc enable */ -#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN (1 << 6)/* Rx Desc header ena */ -#define IXGBE_DCA_RXCTRL_DATA_DCA_EN (1 << 7)/* Rx Desc payload ena */ -#define IXGBE_DCA_RXCTRL_DESC_RRO_EN (1 << 9)/* Rx rd Desc Relax Order */ -#define IXGBE_DCA_RXCTRL_DATA_WRO_EN (1 << 13)/* Rx wr data Relax Order */ -#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN (1 << 15)/* Rx wr header RO */ +#define IXGBE_DCA_RXCTRL_DESC_DCA_EN BIT(5)/* Rx Desc enable */ +#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN BIT(6)/* Rx Desc header ena */ +#define IXGBE_DCA_RXCTRL_DATA_DCA_EN BIT(7)/* Rx Desc payload ena */ +#define IXGBE_DCA_RXCTRL_DESC_RRO_EN BIT(9)/* Rx rd Desc Relax Order */ +#define IXGBE_DCA_RXCTRL_DATA_WRO_EN BIT(13)/* Rx wr data Relax Order */ +#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN BIT(15)/* Rx wr header RO */ -#define IXGBE_DCA_TXCTRL_DESC_DCA_EN (1 << 5)/* DCA Tx Desc enable */ -#define IXGBE_DCA_TXCTRL_DESC_RRO_EN (1 << 9)/* Tx rd Desc Relax Order */ -#define IXGBE_DCA_TXCTRL_DESC_WRO_EN (1 << 11)/* Tx Desc writeback RO bit */ -#define IXGBE_DCA_TXCTRL_DATA_RRO_EN (1 << 13)/* Tx rd data Relax Order */ +#define IXGBE_DCA_TXCTRL_DESC_DCA_EN BIT(5)/* DCA Tx Desc enable */ +#define IXGBE_DCA_TXCTRL_DESC_RRO_EN BIT(9)/* Tx rd Desc Relax Order */ +#define IXGBE_DCA_TXCTRL_DESC_WRO_EN BIT(11)/* Tx Desc writeback RO bit */ +#define IXGBE_DCA_TXCTRL_DATA_RRO_EN BIT(13)/* Tx rd data Relax Order */ #endif /* _IXGBEVF_DEFINES_H_ */ drivers/net/ethernet/intel/ixgbevf/ethtool.c +0
-0
drivers/net/ethernet/intel/ixgbevf/ethtool.c static void ixgbevf_get_regs(struct net_device *netdev, · line 172
Quoted 8 lines
drivers/net/ethernet/intel/ixgbevf/ethtool.c +1
-1@@ -166,7 +166,7 @@ static void ixgbevf_get_regs(struct net_device *netdev,memset (p,0 , regs_len); - regs->version = (1 <<24 ) | hw->revision_id <<16 | hw->device_id; + regs->version =BIT (24 ) | hw->revision_id <<16 | hw->device_id;/* General Registers */ regs_buff[0 ] =IXGBE_READ_REG (hw,IXGBE_VFCTRL );
So the question I would have is what did the (1 << 24) mean? I'm pretty sure it wasn't a bitmask. It is supposed to be a version number. You might want to restructure this bit so that it is more clear that what you are doing is converting the version, revision_id, and device_id into a version number for use by ethtool.
Quoted 88 lines
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h +4
-4@@ -166,10 +166,10 @@ struct ixgbevf_ring {#define MAXIMUM_ETHERNET_VLAN_SIZE (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN) -#define IXGBE_TX_FLAGS_CSUM (u32)(1) -#define IXGBE_TX_FLAGS_VLAN (u32)(1 << 1) -#define IXGBE_TX_FLAGS_TSO (u32)(1 << 2) -#define IXGBE_TX_FLAGS_IPV4 (u32)(1 << 3) +#define IXGBE_TX_FLAGS_CSUM BIT(0) +#define IXGBE_TX_FLAGS_VLAN BIT(1) +#define IXGBE_TX_FLAGS_TSO BIT(2) +#define IXGBE_TX_FLAGS_IPV4 BIT(3)#define IXGBE_TX_FLAGS_VLAN_MASK 0xffff0000#define IXGBE_TX_FLAGS_VLAN_PRIO_MASK 0x0000e000#define IXGBE_TX_FLAGS_VLAN_SHIFT 16drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +8
-8@@ -1056,7 +1056,7 @@ static int ixgbevf_poll(struct napi_struct *napi, int budget)if (!test_bit (__IXGBEVF_DOWN, &adapter->state) && !test_bit (__IXGBEVF_REMOVING, &adapter->state))ixgbevf_irq_enable_queues (adapter, -1 << q_vector->v_idx); +BIT (q_vector->v_idx));return 0 ; }@@ -1158,14 +1158,14 @@ static void ixgbevf_configure_msix(struct ixgbevf_adapter *adapter) }/* add q_vector eims value to global eims_enable_mask */ - adapter->eims_enable_mask |=1 << v_idx; + adapter->eims_enable_mask |=BIT (v_idx);ixgbevf_write_eitr (q_vector); }ixgbevf_set_ivar (adapter,-1 ,1 , v_idx);/* setup eims_other and add value to global eims_enable_mask */ - adapter->eims_other =1 << v_idx; + adapter->eims_other =BIT (v_idx); adapter->eims_enable_mask |= adapter->eims_other; }@@ -1589,8 +1589,8 @@ static void ixgbevf_configure_tx_ring(struct ixgbevf_adapter *adapter, txdctl |= (8 <<16 );/* WTHRESH = 8 */ /* Setting PTHRESH to 32 both improves performance */ - txdctl |= (1 <<8 ) |/* HTHRESH = 1 */ -32 ;/* PTHRESH = 32 */ + txdctl |= (1u <<8 ) |/* HTHRESH = 1 */ +32 ;/* PTHRESH = 32 */ clear_bit (__IXGBEVF_HANG_CHECK_ARMED, &ring->state);@@ -1646,7 +1646,7 @@ static void ixgbevf_setup_psrtype(struct ixgbevf_adapter *adapter)IXGBE_PSRTYPE_L2HDR ;if (adapter->num_rx_queues >1 ) - psrtype |=1 <<29 ; + psrtype |=BIT (29 );IXGBE_WRITE_REG (hw,IXGBE_VFPSRTYPE , psrtype); }@@ -2797,7 +2797,7 @@ static void ixgbevf_check_hang_subtask(struct ixgbevf_adapter *adapter)struct ixgbevf_q_vector *qv = adapter->q_vector[i];if (qv->rx.ring || qv->tx.ring) - eics |=1 << i; + eics |=BIT (i); }/* Cause software interrupt to ensure rings are cleaned */ @@ -3325,7 +3325,7 @@ static int ixgbevf_tso(struct ixgbevf_ring *tx_ring,/* mss_l4len_id: use 1 as index for TSO */ mss_l4len_idx = l4len <<IXGBE_ADVTXD_L4LEN_SHIFT ; mss_l4len_idx |=skb_shinfo (skb)->gso_size <<IXGBE_ADVTXD_MSS_SHIFT ; - mss_l4len_idx |=1 <<IXGBE_ADVTXD_IDX_SHIFT ; + mss_l4len_idx |=BIT (IXGBE_ADVTXD_IDX_SHIFT );/* vlan_macip_lens: HEADLEN, MACLEN, VLAN tag */ vlan_macip_lens =skb_network_header_len (skb);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c static void ixgbevf_tx_olinfo_status(union ixgbe_adv_tx_desc *tx_desc, · line 3425
Quoted 5 lines
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +1
-1@@ -3422,7 +3422,7 @@ static void ixgbevf_tx_olinfo_status(union ixgbe_adv_tx_desc *tx_desc,/* use index 1 context for TSO/FSO/FCOE */ if (tx_flags &IXGBE_TX_FLAGS_TSO ) - olinfo_status |=cpu_to_le32 (1 <<IXGBE_ADVTXD_IDX_SHIFT ); + olinfo_status |=cpu_to_le32 (BIT (IXGBE_ADVTXD_IDX_SHIFT ));
Same here. This is a index value shifted by ADVTXD_IDX_SHIFT. Maybe
you should just invent a new bit so that you have IXGBE_ADVTXD_IDX1. It would be much more readable than converting a shift into a bit index.
Keller
PATCH 3/13 ixgbevf: make use of BIT() macro to avoid shift of signed values
Quoted 97 lines · Alexander Duyck
Quoted 95 lines · Jacob Keller
Also cleanup a case where we're bit shifting a value into place, and use
an unsigned constant.Signed-off-by Jacob Keller <[email protected]>---
?drivers/net/ethernet/intel/ixgbevf/defines.h??????| 22
+++++++++++-----------?drivers/net/ethernet/intel/ixgbevf/ethtool.c??????|??2 +- ?drivers/net/ethernet/intel/ixgbevf/ixgbevf.h??????|??8 ++++---- ?drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 18 +++++++++---------
?4 files changed, 25 insertions(+), 25 deletions(-)drivers/net/ethernet/intel/ixgbevf/defines.h +0
-0@@ -74,7 +74,7 @@ typedef u32 ixgbe_link_speed;?#define IXGBE_RXDCTL_RLPML_EN??0x00008000
?/* DCA Control */
-#defineIXGBE_DCA_TXCTRL_TX_WB_RO_EN(1 << 11) /* Tx Desc writeback RO bit */
+#defineIXGBE_DCA_TXCTRL_TX_WB_RO_ENBIT(11) /* Tx Desc writeback RO bit */?/* PSRTYPE bit definitions */
?#define IXGBE_PSRTYPE_TCPHDR???0x00000010drivers/net/ethernet/intel/ixgbevf/defines.h +0
-0@@ -296,16 +296,16 @@ struct ixgbe_adv_tx_context_desc {?#define IXGBE_TXDCTL_SWFLSH????????????0x04000000 /* Tx Desc. wr- bk flushing */
?#define IXGBE_TXDCTL_WTHRESH_SHIFT?????16?????????/* shift to WTHRESH bits */-#define IXGBE_DCA_RXCTRL_DESC_DCA_EN???(1 << 5)??/* Rx Desc enable */
-#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN???(1 << 6)??/* Rx Desc header ena */
-#define IXGBE_DCA_RXCTRL_DATA_DCA_EN???(1 << 7)??/* Rx Desc payload ena */
-#define IXGBE_DCA_RXCTRL_DESC_RRO_EN???(1 << 9)??/* Rx rd Desc Relax Order */
-#define IXGBE_DCA_RXCTRL_DATA_WRO_EN???(1 << 13) /* Rx wr data Relax Order */
-#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN???(1 << 15) /* Rx wr header RO */
+#define IXGBE_DCA_RXCTRL_DESC_DCA_EN???BIT(5)??/* Rx Desc enable */
+#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN???BIT(6)??/* Rx Desc header ena */
+#define IXGBE_DCA_RXCTRL_DATA_DCA_EN???BIT(7)??/* Rx Desc payload ena */
+#define IXGBE_DCA_RXCTRL_DESC_RRO_EN???BIT(9)??/* Rx rd Desc Relax Order */
+#define IXGBE_DCA_RXCTRL_DATA_WRO_EN???BIT(13) /* Rx wr data Relax Order */
+#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN???BIT(15) /* Rx wr header RO */-#define IXGBE_DCA_TXCTRL_DESC_DCA_EN???(1 << 5)??/* DCA Tx Desc enable */
-#define IXGBE_DCA_TXCTRL_DESC_RRO_EN???(1 << 9)??/* Tx rd Desc Relax Order */
-#define IXGBE_DCA_TXCTRL_DESC_WRO_EN???(1 << 11) /* Tx Desc writeback RO bit */
-#define IXGBE_DCA_TXCTRL_DATA_RRO_EN???(1 << 13) /* Tx rd data Relax Order */
+#define IXGBE_DCA_TXCTRL_DESC_DCA_EN???BIT(5)??/* DCA Tx Desc enable */
+#define IXGBE_DCA_TXCTRL_DESC_RRO_EN???BIT(9)??/* Tx rd Desc Relax Order */
+#define IXGBE_DCA_TXCTRL_DESC_WRO_EN???BIT(11) /* Tx Desc writeback RO bit */
+#define IXGBE_DCA_TXCTRL_DATA_RRO_EN???BIT(13) /* Tx rd data Relax Order */?#endif /* _IXGBEVF_DEFINES_H_ */
drivers/net/ethernet/intel/ixgbevf/ethtool.c +1
-1@@ -166,7 +166,7 @@ static void ixgbevf_get_regs(struct net_device *netdev, ????????memset(p, 0, regs_len); -???????regs->version = (1 << 24) | hw->revision_id << 16 | hw- >device_id; +???????regs->version = BIT(24) | hw->revision_id << 16 | hw- >device_id;
Quoted 8 lines
Quoted 2 lines
????????/* General Registers */ ????????regs_buff[0] =
IXGBE_READ_REG(hw, IXGBE_VFCTRL);So the question I would have is what did the (1 << 24) mean???I'm pretty sure it wasn't a bitmask.??It is supposed to be a version number.??You might want to restructure this bit so that it is more clear that what you are doing is converting the version,
revision_id, anddevice_idinto a version number for use by ethtool.
This probably needs work. I just used a regular expression to convert the 1 << x@first and didn't notice this in the review. I am not really sure what the best way to do that would be, but this defintily is less confusing. I'll think about it a little.
Quoted 103 lines
Quoted 103 lines
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h +0
-0@@ -166,10 +166,10 @@ struct ixgbevf_ring {?#define
MAXIMUM_ETHERNET_VLAN_SIZE(VLAN_ETH_FRAME_LEN+ETH_FCS_LEN)drivers/net/ethernet/intel/ixgbevf/ixgbevf.h +4
-4-#define IXGBE_TX_FLAGS_CSUM ????????????(u32)(1) -#define IXGBE_TX_FLAGS_VLAN ????????????(u32)(1 << 1) -#define IXGBE_TX_FLAGS_TSO ?????????????(u32)(1 << 2) -#define IXGBE_TX_FLAGS_IPV4 ????????????(u32)(1 << 3) +#define IXGBE_TX_FLAGS_CSUM ????????????BIT(0) +#define IXGBE_TX_FLAGS_VLAN ????????????BIT(1) +#define IXGBE_TX_FLAGS_TSO ?????????????BIT(2) +#define IXGBE_TX_FLAGS_IPV4 ????????????BIT(3)?#define IXGBE_TX_FLAGS_VLAN_MASK???????0xffff0000 ?#define IXGBE_TX_FLAGS_VLAN_PRIO_MASK??0x0000e000 ?#define IXGBE_TX_FLAGS_VLAN_SHIFT??????16
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +0
-0@@ -1056,7 +1056,7 @@ static int ixgbevf_poll(struct napi_struct *napi, int budget)????????if (!test_bit(__IXGBEVF_DOWN,
&adapter->state) && ????????????!test_bit(__IXGBEVF_REMOVING,&adapter->state)) ????????????????ixgbevf_irq_enable_queues(adapter, -?????????????????????????????????????????1 <<q_vector->v_idx); +?????????????????????????????????????????BIT(q_vector->v_idx));????????return 0;
?}drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +0
-0@@ -1158,14 +1158,14 @@ static void ixgbevf_configure_msix(struct ixgbevf_adapter *adapter) ????????????????}????????????????/* add
q_vectoreims value to globaleims_enable_mask*/ -???????????????adapter->eims_enable_mask |= 1 <<v_idx; +???????????????adapter->eims_enable_mask |=BIT(v_idx);????????????????ixgbevf_write_eitr(q_vector);
????????}????????ixgbevf_set_ivar(adapter, -1, 1,
v_idx); ????????/* setupeims_otherand add value to globaleims_enable_mask*/
-???????adapter->eims_other = 1 <<v_idx; +???????adapter->eims_other =BIT(v_idx); ????????adapter->eims_enable_mask |=adapter->eims_other; ?}drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +0
-0@@ -1589,8 +1589,8 @@ static void ixgbevf_configure_tx_ring(struct ixgbevf_adapter *adapter,????????txdctl |= (8 << 16);????/* WTHRESH = 8 */
????????/* Setting PTHRESH to 32 both improves performance */ -???????txdctl |= (1 << 8) |????/* HTHRESH = 1 */ -?????????????????32;??????????/* PTHRESH = 32 */ +???????txdctl |= (1u << 8) |????/* HTHRESH = 1 */ +??????????????????32;???????????/* PTHRESH = 32 */
????????clear_bit(__IXGBEVF_HANG_CHECK_ARMED,
&ring->state);drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +1
-1@@ -1646,7 +1646,7 @@ static void ixgbevf_setup_psrtype(struct ixgbevf_adapter *adapter) ??????????????????????IXGBE_PSRTYPE_L2HDR; ????????if (adapter->num_rx_queues > 1) -???????????????psrtype |= 1 << 29; +???????????????psrtype |= BIT(29); ????????IXGBE_WRITE_REG(hw, IXGBE_VFPSRTYPE, psrtype);?}
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +1
-1@@ -2797,7 +2797,7 @@ static void ixgbevf_check_hang_subtask(struct ixgbevf_adapter *adapter) ????????????????struct ixgbevf_q_vector *qv = adapter->q_vector[i]; ????????????????if (qv->rx.ring || qv->tx.ring) -???????????????????????eics |= 1 << i; +???????????????????????eics |= BIT(i); ????????}????????/* Cause software interrupt to ensure rings are cleaned */
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +0
-0@@ -3325,7 +3325,7 @@ static int ixgbevf_tso(struct ixgbevf_ring *tx_ring,????????/*
mss_l4len_id: use 1 as index for TSO */ ????????mss_l4len_idx = l4len <<IXGBE_ADVTXD_L4LEN_SHIFT; ????????mss_l4len_idx |= skb_shinfo(skb)->gso_size <<IXGBE_ADVTXD_MSS_SHIFT;
-???????mss_l4len_idx |= 1 <<IXGBE_ADVTXD_IDX_SHIFT; +???????mss_l4len_idx |=BIT(IXGBE_ADVTXD_IDX_SHIFT);????????/*
vlan_macip_lens: HEADLEN, MACLEN, VLAN tag */ ????????vlan_macip_lens =skb_network_header_len(skb);drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +0
-0@@ -3422,7 +3422,7 @@ static void ixgbevf_tx_olinfo_status(union ixgbe_adv_tx_desc *tx_desc,
Quoted 11 lines
Quoted 6 lines
????????/* use index 1 context for TSO/FSO/FCOE */ ????????if (
tx_flags&IXGBE_TX_FLAGS_TSO) -???????????????olinfo_status |=cpu_to_le32(1 << IXGBE_ADVTXD_IDX_SHIFT); +???????????????olinfo_status |= cpu_to_le32(BIT(IXGBE_ADVTXD_IDX_SHIFT));Same here.???This is a index value shifted by ADVTXD_IDX_SHIFT.??Maybe
you should just invent a new bit so that you haveIXGBE_ADVTXD_IDX1. It would be much more readable than converting a shift into a bit index.
Yea this should just be "1u" instead of BIT.
Thanks,
Jake
PATCH 4/13 i40e/i40evf: fix I40E_MASK signed shift overflow warnings
In reply to Jacob KellerGCC 6 has a new warning which will display when you attempt to left shift a signed value beyond the storage size of the type. I40E_MASK generates a mask value for 32bit registers. Properly typecast the mask value and place the values in parenthesis to prevent macro expansion issues.
--- drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +- drivers/net/ethernet/intel/i40evf/i40e_type.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -1
@@ -36,7 +36,7 @@#include "i40e_devids.h" /* I40E_MASK is a macro used on 32 bit registers */ -#define I40E_MASK (mask, shift) (mask << shift) +#define I40E_MASK (mask, shift) ((u32)(mask) << (shift))#define I40E_MAX_VSI_QP 16#define I40E_MAX_VF_VSI 3
drivers/net/ethernet/intel/i40evf/i40e_type.h +1 -1
@@ -36,7 +36,7 @@#include "i40e_devids.h" /* I40E_MASK is a macro used on 32 bit registers */ -#define I40E_MASK (mask, shift) (mask << shift) +#define I40E_MASK (mask, shift) ((u32)(mask) << (shift))#define I40E_MAX_VSI_QP 16#define I40E_MAX_VF_VSI 3
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 5/13 i40e: make use of BIT() macro to prevent left shift of signed values
In reply to Jacob Keller--- drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 53 +++++++++++------------ 1 file changed, 25 insertions(+), 28 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h +25 -28
@@ -78,17 +78,17 @@ struct i40e_aq_desc {#define I40E_AQ_FLAG_EI_SHIFT 14#define I40E_AQ_FLAG_FE_SHIFT 15 -#define I40E_AQ_FLAG_DD (1 << I40E_AQ_FLAG_DD_SHIFT)/* 0x1 */ -#define I40E_AQ_FLAG_CMP (1 << I40E_AQ_FLAG_CMP_SHIFT)/* 0x2 */ -#define I40E_AQ_FLAG_ERR (1 << I40E_AQ_FLAG_ERR_SHIFT)/* 0x4 */ -#define I40E_AQ_FLAG_VFE (1 << I40E_AQ_FLAG_VFE_SHIFT)/* 0x8 */ -#define I40E_AQ_FLAG_LB (1 << I40E_AQ_FLAG_LB_SHIFT)/* 0x200 */ -#define I40E_AQ_FLAG_RD (1 << I40E_AQ_FLAG_RD_SHIFT)/* 0x400 */ -#define I40E_AQ_FLAG_VFC (1 << I40E_AQ_FLAG_VFC_SHIFT)/* 0x800 */ -#define I40E_AQ_FLAG_BUF (1 << I40E_AQ_FLAG_BUF_SHIFT)/* 0x1000 */ -#define I40E_AQ_FLAG_SI (1 << I40E_AQ_FLAG_SI_SHIFT)/* 0x2000 */ -#define I40E_AQ_FLAG_EI (1 << I40E_AQ_FLAG_EI_SHIFT)/* 0x4000 */ -#define I40E_AQ_FLAG_FE (1 << I40E_AQ_FLAG_FE_SHIFT)/* 0x8000 */ +#define I40E_AQ_FLAG_DD BIT(I40E_AQ_FLAG_DD_SHIFT)/* 0x1 */ +#define I40E_AQ_FLAG_CMP BIT(I40E_AQ_FLAG_CMP_SHIFT)/* 0x2 */ +#define I40E_AQ_FLAG_ERR BIT(I40E_AQ_FLAG_ERR_SHIFT)/* 0x4 */ +#define I40E_AQ_FLAG_VFE BIT(I40E_AQ_FLAG_VFE_SHIFT)/* 0x8 */ +#define I40E_AQ_FLAG_LB BIT(I40E_AQ_FLAG_LB_SHIFT)/* 0x200 */ +#define I40E_AQ_FLAG_RD BIT(I40E_AQ_FLAG_RD_SHIFT)/* 0x400 */ +#define I40E_AQ_FLAG_VFC BIT(I40E_AQ_FLAG_VFC_SHIFT)/* 0x800 */ +#define I40E_AQ_FLAG_BUF BIT(I40E_AQ_FLAG_BUF_SHIFT)/* 0x1000 */ +#define I40E_AQ_FLAG_SI BIT(I40E_AQ_FLAG_SI_SHIFT)/* 0x2000 */ +#define I40E_AQ_FLAG_EI BIT(I40E_AQ_FLAG_EI_SHIFT)/* 0x4000 */ +#define I40E_AQ_FLAG_FE BIT(I40E_AQ_FLAG_FE_SHIFT)/* 0x8000 */ /* error codes */ enum i40e_admin_queue_err {
@@ -1653,11 +1653,11 @@ enum i40e_aq_phy_type {enum i40e_aq_link_speed {I40E_LINK_SPEED_UNKNOWN =0 , -I40E_LINK_SPEED_100MB = (1 <<I40E_LINK_SPEED_100MB_SHIFT ), -I40E_LINK_SPEED_1GB = (1 <<I40E_LINK_SPEED_1000MB_SHIFT ), -I40E_LINK_SPEED_10GB = (1 <<I40E_LINK_SPEED_10GB_SHIFT ), -I40E_LINK_SPEED_40GB = (1 <<I40E_LINK_SPEED_40GB_SHIFT ), -I40E_LINK_SPEED_20GB = (1 <<I40E_LINK_SPEED_20GB_SHIFT ) +I40E_LINK_SPEED_100MB =BIT (I40E_LINK_SPEED_100MB_SHIFT ), +I40E_LINK_SPEED_1GB =BIT (I40E_LINK_SPEED_1000MB_SHIFT ), +I40E_LINK_SPEED_10GB =BIT (I40E_LINK_SPEED_10GB_SHIFT ), +I40E_LINK_SPEED_40GB =BIT (I40E_LINK_SPEED_40GB_SHIFT ), +I40E_LINK_SPEED_20GB =BIT (I40E_LINK_SPEED_20GB_SHIFT ) };struct i40e_aqc_module_desc {
@@ -1928,9 +1928,9 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_nvm_config_write);/* Used for 0x0704 as well as for 0x0705 commands */ #define I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_SHIFT 1#define I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_MASK \ - (1 << I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_SHIFT) + BIT(I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_SHIFT)#define I40E_AQ_ANVM_FEATURE 0 -#define I40E_AQ_ANVM_IMMEDIATE_FIELD (1 << FEATURE_OR_IMMEDIATE_SHIFT) +#define I40E_AQ_ANVM_IMMEDIATE_FIELD BIT(FEATURE_OR_IMMEDIATE_SHIFT)struct i40e_aqc_nvm_config_data_feature {__le16 feature_id;#define I40E_AQ_ANVM_FEATURE_OPTION_OEM_ONLY 0x01
@@ -2227,13 +2227,11 @@ I40E_CHECK_STRUCT_LEN(0x20, i40e_aqc_get_cee_dcb_cfg_resp);*/ struct i40e_aqc_lldp_set_local_mib {#define SET_LOCAL_MIB_AC_TYPE_DCBX_SHIFT 0 -#define SET_LOCAL_MIB_AC_TYPE_DCBX_MASK (1 << SET_LOCAL_MIB_AC_TYPE_DCBX_SHIFT) -#define SET_LOCAL_MIB_AC_TYPE_DCBX_MASK (1 << \ - SET_LOCAL_MIB_AC_TYPE_DCBX_SHIFT) +#define SET_LOCAL_MIB_AC_TYPE_DCBX_MASK BIT(SET_LOCAL_MIB_AC_TYPE_DCBX_SHIFT)#define SET_LOCAL_MIB_AC_TYPE_LOCAL_MIB 0x0#define SET_LOCAL_MIB_AC_TYPE_NON_WILLING_APPS_SHIFT (1) -#define SET_LOCAL_MIB_AC_TYPE_NON_WILLING_APPS_MASK (1 << \ - SET_LOCAL_MIB_AC_TYPE_NON_WILLING_APPS_SHIFT) +#define SET_LOCAL_MIB_AC_TYPE_NON_WILLING_APPS_MASK \ + BIT(SET_LOCAL_MIB_AC_TYPE_NON_WILLING_APPS_SHIFT)#define SET_LOCAL_MIB_AC_TYPE_NON_WILLING_APPS 0x1u8 type;u8 reserved0;
@@ -2251,7 +2249,7 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_set_local_mib);struct i40e_aqc_lldp_stop_start_specific_agent {#define I40E_AQC_START_SPECIFIC_AGENT_SHIFT 0#define I40E_AQC_START_SPECIFIC_AGENT_MASK \ - (1 << I40E_AQC_START_SPECIFIC_AGENT_SHIFT) + BIT(I40E_AQC_START_SPECIFIC_AGENT_SHIFT)u8 command;u8 reserved[15 ]; };
@@ -2304,7 +2302,7 @@ struct i40e_aqc_del_udp_tunnel_completion {I40E_CHECK_CMD_LENGTH (i40e_aqc_del_udp_tunnel_completion);struct i40e_aqc_get_set_rss_key { -#define I40E_AQC_SET_RSS_KEY_VSI_VALID (0x1 << 15) +#define I40E_AQC_SET_RSS_KEY_VSI_VALID BIT(15)#define I40E_AQC_SET_RSS_KEY_VSI_ID_SHIFT 0#define I40E_AQC_SET_RSS_KEY_VSI_ID_MASK (0x3FF << \ I40E_AQC_SET_RSS_KEY_VSI_ID_SHIFT)
@@ -2324,14 +2322,13 @@ struct i40e_aqc_get_set_rss_key_data {I40E_CHECK_STRUCT_LEN (0x34 , i40e_aqc_get_set_rss_key_data);struct i40e_aqc_get_set_rss_lut { -#define I40E_AQC_SET_RSS_LUT_VSI_VALID (0x1 << 15) +#define I40E_AQC_SET_RSS_LUT_VSI_VALID BIT(15)#define I40E_AQC_SET_RSS_LUT_VSI_ID_SHIFT 0#define I40E_AQC_SET_RSS_LUT_VSI_ID_MASK (0x3FF << \ I40E_AQC_SET_RSS_LUT_VSI_ID_SHIFT)__le16 vsi_id;#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT 0 -#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK (0x1 << \ - I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT) +#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK BIT(I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT)#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_VSI 0#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_PF 1
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 6/13 i40evf: make use of BIT() macro to avoid signed left shift
In reply to Jacob Keller--- .../net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 44 +++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-)
drivers/net/ethernet/intel/i40evf/i40e_adminq_cmd.h +22 -22
@@ -78,17 +78,17 @@ struct i40e_aq_desc {#define I40E_AQ_FLAG_EI_SHIFT 14#define I40E_AQ_FLAG_FE_SHIFT 15 -#define I40E_AQ_FLAG_DD (1 << I40E_AQ_FLAG_DD_SHIFT)/* 0x1 */ -#define I40E_AQ_FLAG_CMP (1 << I40E_AQ_FLAG_CMP_SHIFT)/* 0x2 */ -#define I40E_AQ_FLAG_ERR (1 << I40E_AQ_FLAG_ERR_SHIFT)/* 0x4 */ -#define I40E_AQ_FLAG_VFE (1 << I40E_AQ_FLAG_VFE_SHIFT)/* 0x8 */ -#define I40E_AQ_FLAG_LB (1 << I40E_AQ_FLAG_LB_SHIFT)/* 0x200 */ -#define I40E_AQ_FLAG_RD (1 << I40E_AQ_FLAG_RD_SHIFT)/* 0x400 */ -#define I40E_AQ_FLAG_VFC (1 << I40E_AQ_FLAG_VFC_SHIFT)/* 0x800 */ -#define I40E_AQ_FLAG_BUF (1 << I40E_AQ_FLAG_BUF_SHIFT)/* 0x1000 */ -#define I40E_AQ_FLAG_SI (1 << I40E_AQ_FLAG_SI_SHIFT)/* 0x2000 */ -#define I40E_AQ_FLAG_EI (1 << I40E_AQ_FLAG_EI_SHIFT)/* 0x4000 */ -#define I40E_AQ_FLAG_FE (1 << I40E_AQ_FLAG_FE_SHIFT)/* 0x8000 */ +#define I40E_AQ_FLAG_DD BIT(I40E_AQ_FLAG_DD_SHIFT)/* 0x1 */ +#define I40E_AQ_FLAG_CMP BIT(I40E_AQ_FLAG_CMP_SHIFT)/* 0x2 */ +#define I40E_AQ_FLAG_ERR BIT(I40E_AQ_FLAG_ERR_SHIFT)/* 0x4 */ +#define I40E_AQ_FLAG_VFE BIT(I40E_AQ_FLAG_VFE_SHIFT)/* 0x8 */ +#define I40E_AQ_FLAG_LB BIT(I40E_AQ_FLAG_LB_SHIFT)/* 0x200 */ +#define I40E_AQ_FLAG_RD BIT(I40E_AQ_FLAG_RD_SHIFT)/* 0x400 */ +#define I40E_AQ_FLAG_VFC BIT(I40E_AQ_FLAG_VFC_SHIFT)/* 0x800 */ +#define I40E_AQ_FLAG_BUF BIT(I40E_AQ_FLAG_BUF_SHIFT)/* 0x1000 */ +#define I40E_AQ_FLAG_SI BIT(I40E_AQ_FLAG_SI_SHIFT)/* 0x2000 */ +#define I40E_AQ_FLAG_EI BIT(I40E_AQ_FLAG_EI_SHIFT)/* 0x4000 */ +#define I40E_AQ_FLAG_FE BIT(I40E_AQ_FLAG_FE_SHIFT)/* 0x8000 */ /* error codes */ enum i40e_admin_queue_err {
@@ -1650,11 +1650,11 @@ enum i40e_aq_phy_type {enum i40e_aq_link_speed {I40E_LINK_SPEED_UNKNOWN =0 , -I40E_LINK_SPEED_100MB = (1 <<I40E_LINK_SPEED_100MB_SHIFT ), -I40E_LINK_SPEED_1GB = (1 <<I40E_LINK_SPEED_1000MB_SHIFT ), -I40E_LINK_SPEED_10GB = (1 <<I40E_LINK_SPEED_10GB_SHIFT ), -I40E_LINK_SPEED_40GB = (1 <<I40E_LINK_SPEED_40GB_SHIFT ), -I40E_LINK_SPEED_20GB = (1 <<I40E_LINK_SPEED_20GB_SHIFT ) +I40E_LINK_SPEED_100MB =BIT (I40E_LINK_SPEED_100MB_SHIFT ), +I40E_LINK_SPEED_1GB =BIT (I40E_LINK_SPEED_1000MB_SHIFT ), +I40E_LINK_SPEED_10GB =BIT (I40E_LINK_SPEED_10GB_SHIFT ), +I40E_LINK_SPEED_40GB =BIT (I40E_LINK_SPEED_40GB_SHIFT ), +I40E_LINK_SPEED_20GB =BIT (I40E_LINK_SPEED_20GB_SHIFT ) };struct i40e_aqc_module_desc {
@@ -1925,9 +1925,9 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_nvm_config_write);/* Used for 0x0704 as well as for 0x0705 commands */ #define I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_SHIFT 1#define I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_MASK \ - (1 << I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_SHIFT) + BIT(I40E_AQ_ANVM_FEATURE_OR_IMMEDIATE_SHIFT)#define I40E_AQ_ANVM_FEATURE 0 -#define I40E_AQ_ANVM_IMMEDIATE_FIELD (1 << FEATURE_OR_IMMEDIATE_SHIFT) +#define I40E_AQ_ANVM_IMMEDIATE_FIELD BIT(FEATURE_OR_IMMEDIATE_SHIFT)struct i40e_aqc_nvm_config_data_feature {__le16 feature_id;#define I40E_AQ_ANVM_FEATURE_OPTION_OEM_ONLY 0x01
@@ -2196,7 +2196,7 @@ struct i40e_aqc_del_udp_tunnel_completion {I40E_CHECK_CMD_LENGTH (i40e_aqc_del_udp_tunnel_completion);struct i40e_aqc_get_set_rss_key { -#define I40E_AQC_SET_RSS_KEY_VSI_VALID (0x1 << 15) +#define I40E_AQC_SET_RSS_KEY_VSI_VALID BIT(15)#define I40E_AQC_SET_RSS_KEY_VSI_ID_SHIFT 0#define I40E_AQC_SET_RSS_KEY_VSI_ID_MASK (0x3FF << \ I40E_AQC_SET_RSS_KEY_VSI_ID_SHIFT)
@@ -2216,14 +2216,14 @@ struct i40e_aqc_get_set_rss_key_data {I40E_CHECK_STRUCT_LEN (0x34 , i40e_aqc_get_set_rss_key_data);struct i40e_aqc_get_set_rss_lut { -#define I40E_AQC_SET_RSS_LUT_VSI_VALID (0x1 << 15) +#define I40E_AQC_SET_RSS_LUT_VSI_VALID BIT(15)#define I40E_AQC_SET_RSS_LUT_VSI_ID_SHIFT 0#define I40E_AQC_SET_RSS_LUT_VSI_ID_MASK (0x3FF << \ I40E_AQC_SET_RSS_LUT_VSI_ID_SHIFT)__le16 vsi_id;#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT 0 -#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK (0x1 << \ - I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT) +#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK \ + BIT(I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT)#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_VSI 0#define I40E_AQC_SET_RSS_LUT_TABLE_TYPE_PF 1
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 7/13 igb: use BIT() macro or unsigned prefix
In reply to Jacob KellerFor bitshifts, we should make use of the BIT macro when possible, and ensure that other bitshifts are marked as unsigned. This helps prevent signed bitshift errors, and ensures similar style.
--- drivers/net/ethernet/intel/igb/e1000_82575.c | 8 +- drivers/net/ethernet/intel/igb/e1000_82575.h | 30 +++---- drivers/net/ethernet/intel/igb/e1000_defines.h | 108 ++++++++++++------------- drivers/net/ethernet/intel/igb/e1000_mac.c | 10 +-- drivers/net/ethernet/intel/igb/e1000_mbx.c | 4 +- drivers/net/ethernet/intel/igb/e1000_nvm.c | 2 +- drivers/net/ethernet/intel/igb/e1000_phy.h | 6 +- drivers/net/ethernet/intel/igb/igb.h | 32 ++++---- drivers/net/ethernet/intel/igb/igb_ethtool.c | 18 ++--- drivers/net/ethernet/intel/igb/igb_main.c | 48 +++++------ drivers/net/ethernet/intel/igb/igb_ptp.c | 6 +- 11 files changed, 136 insertions(+), 136 deletions(-)
drivers/net/ethernet/intel/igb/e1000_82575.c +4 -4
@@ -361,7 +361,7 @@ static s32 igb_init_nvm_params_82575(struct e1000_hw *hw)if (size >15 ) size =15 ; - nvm->word_size =1 << size; + nvm->word_size =BIT (size); nvm->opcode_bits =8 ; nvm->delay_usec =1 ;
@@ -380,7 +380,7 @@ static s32 igb_init_nvm_params_82575(struct e1000_hw *hw) 16 : 8;break ; } -if (nvm->word_size == (1 <<15 )) +if (nvm->word_size ==BIT (15 )) nvm->page_size =128 ; nvm->type = e1000_nvm_eeprom_spi;
@@ -391,7 +391,7 @@ static s32 igb_init_nvm_params_82575(struct e1000_hw *hw) nvm->ops.write = igb_write_nvm_spi; nvm->ops.validate = igb_validate_nvm_checksum; nvm->ops.update = igb_update_nvm_checksum; -if (nvm->word_size < (1 <<15 )) +if (nvm->word_size <BIT (15 )) nvm->ops.read = igb_read_nvm_eerd;else nvm->ops.read = igb_read_nvm_spi;
@@ -2107,7 +2107,7 @@ void igb_vmdq_set_anti_spoofing_pf(struct e1000_hw *hw, bool enable, int pf)/* The PF can spoof - it has to in order to * support emulation mode NICs */ - reg_val ^= (1 << pf |1 << (pf +MAX_NUM_VFS )); + reg_val ^= (BIT (pf) |BIT (pf +MAX_NUM_VFS )); }else { reg_val &= ~(E1000_DTXSWC_MAC_SPOOF_MASK |E1000_DTXSWC_VLAN_SPOOF_MASK );
drivers/net/ethernet/intel/igb/e1000_82575.h +15 -15
@@ -168,16 +168,16 @@ struct e1000_adv_tx_context_desc {#define E1000_DCA_CTRL_DCA_MODE_CB2 0x02/* DCA Mode CB2 */ #define E1000_DCA_RXCTRL_CPUID_MASK 0x0000001F/* Rx CPUID Mask */ -#define E1000_DCA_RXCTRL_DESC_DCA_EN (1 << 5)/* DCA Rx Desc enable */ -#define E1000_DCA_RXCTRL_HEAD_DCA_EN (1 << 6)/* DCA Rx Desc header enable */ -#define E1000_DCA_RXCTRL_DATA_DCA_EN (1 << 7)/* DCA Rx Desc payload enable */ -#define E1000_DCA_RXCTRL_DESC_RRO_EN (1 << 9)/* DCA Rx rd Desc Relax Order */ +#define E1000_DCA_RXCTRL_DESC_DCA_EN BIT(5)/* DCA Rx Desc enable */ +#define E1000_DCA_RXCTRL_HEAD_DCA_EN BIT(6)/* DCA Rx Desc header enable */ +#define E1000_DCA_RXCTRL_DATA_DCA_EN BIT(7)/* DCA Rx Desc payload enable */ +#define E1000_DCA_RXCTRL_DESC_RRO_EN BIT(9)/* DCA Rx rd Desc Relax Order */ #define E1000_DCA_TXCTRL_CPUID_MASK 0x0000001F/* Tx CPUID Mask */ -#define E1000_DCA_TXCTRL_DESC_DCA_EN (1 << 5)/* DCA Tx Desc enable */ -#define E1000_DCA_TXCTRL_DESC_RRO_EN (1 << 9)/* Tx rd Desc Relax Order */ -#define E1000_DCA_TXCTRL_TX_WB_RO_EN (1 << 11)/* Tx Desc writeback RO bit */ -#define E1000_DCA_TXCTRL_DATA_RRO_EN (1 << 13)/* Tx rd data Relax Order */ +#define E1000_DCA_TXCTRL_DESC_DCA_EN BIT(5)/* DCA Tx Desc enable */ +#define E1000_DCA_TXCTRL_DESC_RRO_EN BIT(9)/* Tx rd Desc Relax Order */ +#define E1000_DCA_TXCTRL_TX_WB_RO_EN BIT(11)/* Tx Desc writeback RO bit */ +#define E1000_DCA_TXCTRL_DATA_RRO_EN BIT(13)/* Tx rd data Relax Order */ /* Additional DCA related definitions, note change in position of CPUID */ #define E1000_DCA_TXCTRL_CPUID_MASK_82576 0xFF000000/* Tx CPUID Mask */
@@ -186,8 +186,8 @@ struct e1000_adv_tx_context_desc {#define E1000_DCA_RXCTRL_CPUID_SHIFT 24/* Rx CPUID now in the last byte */ /* ETQF register bit definitions */ -#define E1000_ETQF_FILTER_ENABLE (1 << 26) -#define E1000_ETQF_1588 (1 << 30) +#define E1000_ETQF_FILTER_ENABLE BIT(26) +#define E1000_ETQF_1588 BIT(30)/* FTQF register bit definitions */ #define E1000_FTQF_VF_BP 0x00008000
@@ -203,16 +203,16 @@ struct e1000_adv_tx_context_desc {#define E1000_DTXSWC_VLAN_SPOOF_MASK 0x0000FF00/* Per VF VLAN spoof control */ #define E1000_DTXSWC_LLE_MASK 0x00FF0000/* Per VF Local LB enables */ #define E1000_DTXSWC_VLAN_SPOOF_SHIFT 8 -#define E1000_DTXSWC_VMDQ_LOOPBACK_EN (1 << 31)/* global VF LB enable */ +#define E1000_DTXSWC_VMDQ_LOOPBACK_EN BIT(31)/* global VF LB enable */ /* Easy defines for setting default pool, would normally be left a zero */ #define E1000_VT_CTL_DEFAULT_POOL_SHIFT 7#define E1000_VT_CTL_DEFAULT_POOL_MASK (0x7 << E1000_VT_CTL_DEFAULT_POOL_SHIFT)/* Other useful VMD_CTL register defines */ -#define E1000_VT_CTL_IGNORE_MAC (1 << 28) -#define E1000_VT_CTL_DISABLE_DEF_POOL (1 << 29) -#define E1000_VT_CTL_VM_REPL_EN (1 << 30) +#define E1000_VT_CTL_IGNORE_MAC BIT(28) +#define E1000_VT_CTL_DISABLE_DEF_POOL BIT(29) +#define E1000_VT_CTL_VM_REPL_EN BIT(30)/* Per VM Offload register setup */ #define E1000_VMOLR_RLPML_MASK 0x00003FFF/* Long Packet Maximum Length mask */
@@ -252,7 +252,7 @@ struct e1000_adv_tx_context_desc {#define E1000_DTXCTL_MDP_EN 0x0020#define E1000_DTXCTL_SPOOF_INT 0x0040 -#define E1000_EEPROM_PCS_AUTONEG_DISABLE_BIT (1 << 14) +#define E1000_EEPROM_PCS_AUTONEG_DISABLE_BIT BIT(14)#define ALL_QUEUES 0xFFFF
drivers/net/ethernet/intel/igb/e1000_defines.h +54 -54
127 lines not on this page · raw message
drivers/net/ethernet/intel/igb/e1000_mac.c +5 -5
@@ -212,7 +212,7 @@ s32 igb_vfta_set(struct e1000_hw *hw, u32 vlan, u32 vind,* bits[4-0]: which bit in the register */ regidx = vlan /32 ; - vfta_delta =1 << (vlan %32 ); + vfta_delta =BIT (vlan %32 ); vfta = adapter->shadow_vfta[regidx];/* vfta_delta represents the difference between the current value
@@ -243,12 +243,12 @@ s32 igb_vfta_set(struct e1000_hw *hw, u32 vlan, u32 vind, bits =rd32 (E1000_VLVF (vlvf_index));/* set the pool bit */ - bits |=1 << (E1000_VLVF_POOLSEL_SHIFT + vind); + bits |=BIT (E1000_VLVF_POOLSEL_SHIFT + vind);if (vlan_on) goto vlvf_update;/* clear the pool bit */ - bits ^=1 << (E1000_VLVF_POOLSEL_SHIFT + vind); + bits ^=BIT (E1000_VLVF_POOLSEL_SHIFT + vind);if (!(bits &E1000_VLVF_POOLSEL_MASK )) {/* Clear VFTA first, then disable VLVF. Otherwise
@@ -427,7 +427,7 @@ void igb_mta_set(struct e1000_hw *hw, u32 hash_value) mta =array_rd32 (E1000_MTA , hash_reg); - mta |= (1 << hash_bit); + mta |=BIT (hash_bit);array_wr32 (E1000_MTA , hash_reg, mta);wrfl ();
@@ -527,7 +527,7 @@ void igb_update_mc_addr_list(struct e1000_hw *hw, hash_reg = (hash_value >>5 ) & (hw->mac.mta_reg_count -1 ); hash_bit = hash_value &0x1F ; - hw->mac.mta_shadow[hash_reg] |= (1 << hash_bit); + hw->mac.mta_shadow[hash_reg] |=BIT (hash_bit); mc_addr_list += (ETH_ALEN ); }
drivers/net/ethernet/intel/igb/e1000_mbx.c +2 -2
@@ -302,9 +302,9 @@ static s32 igb_check_for_rst_pf(struct e1000_hw *hw, u16 vf_number)u32 vflre =rd32 (E1000_VFLRE );s32 ret_val = -E1000_ERR_MBX ; -if (vflre & (1 << vf_number)) { +if (vflre &BIT (vf_number)) { ret_val =0 ; -wr32 (E1000_VFLRE , (1 << vf_number)); +wr32 (E1000_VFLRE ,BIT (vf_number)); hw->mbx.stats.rsts++; }
drivers/net/ethernet/intel/igb/e1000_nvm.c +1 -1
@@ -72,7 +72,7 @@ static void igb_shift_out_eec_bits(struct e1000_hw *hw, u16 data, u16 count)u32 eecd =rd32 (E1000_EECD );u32 mask; - mask =0x01 << (count -1 ); + mask =1u << (count -1 );if (nvm->type == e1000_nvm_eeprom_spi) eecd |=E1000_EECD_DO ;
drivers/net/ethernet/intel/igb/e1000_phy.h +3 -3
@@ -91,10 +91,10 @@ s32 igb_check_polarity_m88(struct e1000_hw *hw);#define I82580_ADDR_REG 16#define I82580_CFG_REG 22 -#define I82580_CFG_ASSERT_CRS_ON_TX (1 << 15) -#define I82580_CFG_ENABLE_DOWNSHIFT (3 << 10)/* auto downshift 100/10 */ +#define I82580_CFG_ASSERT_CRS_ON_TX BIT(15) +#define I82580_CFG_ENABLE_DOWNSHIFT (3u << 10)/* auto downshift 100/10 */ #define I82580_CTRL_REG 23 -#define I82580_CTRL_DOWNSHIFT_MASK (7 << 10) +#define I82580_CTRL_DOWNSHIFT_MASK (7u << 10)/* 82580 specific PHY registers */ #define I82580_PHY_CTRL_2 18
drivers/net/ethernet/intel/igb/igb.h +16 -16
@@ -169,7 +169,7 @@ enum igb_tx_flags {* maintain a power of two alignment we have to limit ourselves to 32K. */ #define IGB_MAX_TXD_PWR 15 -#define IGB_MAX_DATA_PER_TXD (1 << IGB_MAX_TXD_PWR) +#define IGB_MAX_DATA_PER_TXD BIT(IGB_MAX_TXD_PWR)/* Tx Descriptors needed, worst case */ #define TXD_USE_COUNT (S ) DIV_ROUND_UP((S), IGB_MAX_DATA_PER_TXD)
@@ -466,21 +466,21 @@ struct igb_adapter {u16 eee_advert; }; -#define IGB_FLAG_HAS_MSI (1 << 0) -#define IGB_FLAG_DCA_ENABLED (1 << 1) -#define IGB_FLAG_QUAD_PORT_A (1 << 2) -#define IGB_FLAG_QUEUE_PAIRS (1 << 3) -#define IGB_FLAG_DMAC (1 << 4) -#define IGB_FLAG_PTP (1 << 5) -#define IGB_FLAG_RSS_FIELD_IPV4_UDP (1 << 6) -#define IGB_FLAG_RSS_FIELD_IPV6_UDP (1 << 7) -#define IGB_FLAG_WOL_SUPPORTED (1 << 8) -#define IGB_FLAG_NEED_LINK_UPDATE (1 << 9) -#define IGB_FLAG_MEDIA_RESET (1 << 10) -#define IGB_FLAG_MAS_CAPABLE (1 << 11) -#define IGB_FLAG_MAS_ENABLE (1 << 12) -#define IGB_FLAG_HAS_MSIX (1 << 13) -#define IGB_FLAG_EEE (1 << 14) +#define IGB_FLAG_HAS_MSI BIT(0) +#define IGB_FLAG_DCA_ENABLED BIT(1) +#define IGB_FLAG_QUAD_PORT_A BIT(2) +#define IGB_FLAG_QUEUE_PAIRS BIT(3) +#define IGB_FLAG_DMAC BIT(4) +#define IGB_FLAG_PTP BIT(5) +#define IGB_FLAG_RSS_FIELD_IPV4_UDP BIT(6) +#define IGB_FLAG_RSS_FIELD_IPV6_UDP BIT(7) +#define IGB_FLAG_WOL_SUPPORTED BIT(8) +#define IGB_FLAG_NEED_LINK_UPDATE BIT(9) +#define IGB_FLAG_MEDIA_RESET BIT(10) +#define IGB_FLAG_MAS_CAPABLE BIT(11) +#define IGB_FLAG_MAS_ENABLE BIT(12) +#define IGB_FLAG_HAS_MSIX BIT(13) +#define IGB_FLAG_EEE BIT(14)#define IGB_FLAG_VLAN_PROMISC BIT(15)/* Media Auto Sense */
drivers/net/ethernet/intel/igb/igb_ethtool.c +9 -9
@@ -466,7 +466,7 @@ static void igb_get_regs(struct net_device *netdev,memset (p,0 ,IGB_REGS_LEN *sizeof (u32)); - regs->version = (1 <<24 ) | (hw->revision_id <<16 ) | hw->device_id; + regs->version =BIT (24 ) | (hw->revision_id <<16 ) | hw->device_id;/* General Registers */ regs_buff[0 ] =rd32 (E1000_CTRL );
@@ -1448,7 +1448,7 @@ static int igb_intr_test(struct igb_adapter *adapter, u64 *data)/* Test each interrupt */ for (; i <31 ; i++) {/* Interrupt to test */ - mask =1 << i; + mask =BIT (i);if (!(mask & ics_mask))continue ;
@@ -2411,19 +2411,19 @@ static int igb_get_ts_info(struct net_device *dev,SOF_TIMESTAMPING_RAW_HARDWARE ; info->tx_types = - (1 <<HWTSTAMP_TX_OFF ) | - (1 <<HWTSTAMP_TX_ON ); +BIT (HWTSTAMP_TX_OFF ) | +BIT (HWTSTAMP_TX_ON ); - info->rx_filters =1 <<HWTSTAMP_FILTER_NONE ; + info->rx_filters =BIT (HWTSTAMP_FILTER_NONE );/* 82576 does not support timestamping all packets. */ if (adapter->hw.mac.type >= e1000_82580) - info->rx_filters |=1 <<HWTSTAMP_FILTER_ALL ; + info->rx_filters |=BIT (HWTSTAMP_FILTER_ALL );else info->rx_filters |= - (1 <<HWTSTAMP_FILTER_PTP_V1_L4_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_EVENT ); +BIT (HWTSTAMP_FILTER_PTP_V1_L4_SYNC ) | +BIT (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ ) | +BIT (HWTSTAMP_FILTER_PTP_V2_EVENT );return 0 ;default :
drivers/net/ethernet/intel/igb/igb_main.c +24 -24
144 lines not on this page · raw message
drivers/net/ethernet/intel/igb/igb_ptp.c +3 -3
@@ -69,9 +69,9 @@#define IGB_SYSTIM_OVERFLOW_PERIOD (HZ * 60 * 9)#define IGB_PTP_TX_TIMEOUT (HZ * 15) -#define INCPERIOD_82576 (1 << E1000_TIMINCA_16NS_SHIFT) -#define INCVALUE_82576_MASK ((1 << E1000_TIMINCA_16NS_SHIFT) - 1) -#define INCVALUE_82576 (16 << IGB_82576_TSYNC_SHIFT) +#define INCPERIOD_82576 BIT(E1000_TIMINCA_16NS_SHIFT) +#define INCVALUE_82576_MASK GENMASK(E1000_TIMINCA_16NS_SHIFT - 1, 0) +#define INCVALUE_82576 (16u << IGB_82576_TSYNC_SHIFT)#define IGB_NBITS_82580 40static void igb_ptp_tx_hwtstamp (struct igb_adapter *adapter);
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 8/13 igb: make igb_update_pf_vlvf static
In reply to Jacob Keller--- drivers/net/ethernet/intel/igb/igb_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/intel/igb/igb_main.c +1 -1
@@ -6027,7 +6027,7 @@ static int igb_find_vlvf_entry(struct e1000_hw *hw, u32 vlan)return idx; } -void igb_update_pf_vlvf (struct igb_adapter *adapter,u32 vid) +static void igb_update_pf_vlvf (struct igb_adapter *adapter,u32 vid) {struct e1000_hw *hw = &adapter->hw;u32 bits, pf_id;
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 9/13 igbvf: remove unused variable and dead code
In reply to Jacob KellerThe variable rdlen is set but never used, and thus setting it is dead code. Remove it.
--- drivers/net/ethernet/intel/igbvf/netdev.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/net/ethernet/intel/igbvf/netdev.c +1 -3
@@ -1367,7 +1367,7 @@ static void igbvf_configure_rx(struct igbvf_adapter *adapter)struct e1000_hw *hw = &adapter->hw;struct igbvf_ring *rx_ring = adapter->rx_ring;u64 rdba; -u32 rdlen, rxdctl; +u32 rxdctl;/* disable receives */ rxdctl =er32 (RXDCTL (0 ));
@@ -1375,8 +1375,6 @@ static void igbvf_configure_rx(struct igbvf_adapter *adapter)e1e_flush ();msleep (10 ); - rdlen = rx_ring->count *sizeof (union e1000_adv_rx_desc ); -/* Setup the HW Rx Head and Tail Descriptor Pointers and * the Base and Length of the Rx Descriptor Ring */
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 10/13 igbvf: use BIT() macro instead of shifts
In reply to Jacob KellerTo prevent signed bitshift issues, and improve code readability, use the BIT() macro.
--- drivers/net/ethernet/intel/igbvf/defines.h | 2 +- drivers/net/ethernet/intel/igbvf/ethtool.c | 2 +- drivers/net/ethernet/intel/igbvf/igbvf.h | 4 ++-- drivers/net/ethernet/intel/igbvf/netdev.c | 10 +++++----- drivers/net/ethernet/intel/igbvf/vf.c | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-)
drivers/net/ethernet/intel/igbvf/defines.h +1 -1
@@ -113,7 +113,7 @@#define E1000_RXDCTL_QUEUE_ENABLE 0x02000000/* Enable specific Rx Que */ /* Direct Cache Access (DCA) definitions */ -#define E1000_DCA_TXCTRL_TX_WB_RO_EN (1 << 11)/* Tx Desc writeback RO bit */ +#define E1000_DCA_TXCTRL_TX_WB_RO_EN BIT(11)/* Tx Desc writeback RO bit */ #define E1000_VF_INIT_TIMEOUT 200/* Number of retries to clear RSTI */
drivers/net/ethernet/intel/igbvf/ethtool.c +1 -1
@@ -154,7 +154,7 @@ static void igbvf_get_regs(struct net_device *netdev,memset (p,0 ,IGBVF_REGS_LEN *sizeof (u32)); - regs->version = (1 <<24 ) | (adapter->pdev->revision <<16 ) | + regs->version =BIT (24 ) | (adapter->pdev->revision <<16 ) | adapter->pdev->device; regs_buff[0 ] =er32 (CTRL );
drivers/net/ethernet/intel/igbvf/igbvf.h +2 -2
@@ -287,8 +287,8 @@ struct igbvf_info { };/* hardware capability, feature, and workaround flags */ -#define IGBVF_FLAG_RX_CSUM_DISABLED (1 << 0) -#define IGBVF_FLAG_RX_LB_VLAN_BSWAP (1 << 1) +#define IGBVF_FLAG_RX_CSUM_DISABLED BIT(0) +#define IGBVF_FLAG_RX_LB_VLAN_BSWAP BIT(1)#define IGBVF_RX_DESC_ADV (R , i) \ (&((((R).desc))[i].rx_desc))#define IGBVF_TX_DESC_ADV (R , i) \
drivers/net/ethernet/intel/igbvf/netdev.c +5 -5
@@ -964,7 +964,7 @@ static void igbvf_assign_vector(struct igbvf_adapter *adapter, int rx_queue, ivar = ivar &0xFFFFFF00 ; ivar |= msix_vector |E1000_IVAR_VALID ; } - adapter->rx_ring[rx_queue].eims_value =1 << msix_vector; + adapter->rx_ring[rx_queue].eims_value =BIT (msix_vector);array_ew32 (IVAR0 , index, ivar); }if (tx_queue >IGBVF_NO_QUEUE ) {
@@ -979,7 +979,7 @@ static void igbvf_assign_vector(struct igbvf_adapter *adapter, int rx_queue, ivar = ivar &0xFFFF00FF ; ivar |= (msix_vector |E1000_IVAR_VALID ) <<8 ; } - adapter->tx_ring[tx_queue].eims_value =1 << msix_vector; + adapter->tx_ring[tx_queue].eims_value =BIT (msix_vector);array_ew32 (IVAR0 , index, ivar); } }
@@ -1014,8 +1014,8 @@ static void igbvf_configure_msix(struct igbvf_adapter *adapter)ew32 (IVAR_MISC , tmp); - adapter->eims_enable_mask = (1 << (vector)) -1 ; - adapter->eims_other =1 << (vector -1 ); + adapter->eims_enable_mask =BIT (vector) -1 ; + adapter->eims_other =BIT (vector -1 );e1e_flush (); }
@@ -2089,7 +2089,7 @@ static int igbvf_maybe_stop_tx(struct net_device *netdev, int size) }#define IGBVF_MAX_TXD_PWR 16 -#define IGBVF_MAX_DATA_PER_TXD (1 << IGBVF_MAX_TXD_PWR) +#define IGBVF_MAX_DATA_PER_TXD BIT(IGBVF_MAX_TXD_PWR) static inline int igbvf_tx_map_adv(struct igbvf_adapter *adapter, struct igbvf_ring *tx_ring,
drivers/net/ethernet/intel/igbvf/vf.c +1 -1
@@ -266,7 +266,7 @@ static s32 e1000_set_vfta_vf(struct e1000_hw *hw, u16 vid, bool set) msgbuf[1 ] = vid;/* Setting the 8 bit field MSG INFO to true indicates "add" */ if (set) - msgbuf[0 ] |=1 <<E1000_VT_MSGINFO_SHIFT ; + msgbuf[0 ] |=BIT (E1000_VT_MSGINFO_SHIFT ); mbx->ops.write_posted (hw, msgbuf,2 );
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 10/13 igbvf: use BIT() macro instead of shifts
Quoted 30 lines · Jacob Keller
To prevent signed bitshift issues, and improve code readability, use the
BIT()macro.Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/igbvf/defines.h | 2 +- drivers/net/ethernet/intel/igbvf/ethtool.c | 2 +- drivers/net/ethernet/intel/igbvf/igbvf.h | 4 ++-- drivers/net/ethernet/intel/igbvf/netdev.c | 10 +++++----- drivers/net/ethernet/intel/igbvf/vf.c | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-)drivers/net/ethernet/intel/igbvf/defines.h +1
-1@@ -113,7 +113,7 @@#define E1000_RXDCTL_QUEUE_ENABLE 0x02000000/* Enable specific Rx Que */ /* Direct Cache Access (DCA) definitions */ -#define E1000_DCA_TXCTRL_TX_WB_RO_EN (1 << 11)/* Tx Desc writeback RO bit */ +#define E1000_DCA_TXCTRL_TX_WB_RO_EN BIT(11)/* Tx Desc writeback RO bit */ #define E1000_VF_INIT_TIMEOUT 200/* Number of retries to clear RSTI */ drivers/net/ethernet/intel/igbvf/ethtool.c +0
-0
drivers/net/ethernet/intel/igbvf/ethtool.c static void igbvf_get_regs(struct net_device *netdev, · line 158
Quoted 6 lines
drivers/net/ethernet/intel/igbvf/ethtool.c +1
-1@@ -154,7 +154,7 @@ static void igbvf_get_regs(struct net_device *netdev,memset (p,0 ,IGBVF_REGS_LEN *sizeof (u32)); - regs->version = (1 <<24 ) | (adapter->pdev->revision <<16 ) | + regs->version =BIT (24 ) | (adapter->pdev->revision <<16 ) | adapter->pdev->device;
Same complaint as previous patch. Version is 1, 24 is a shift. Lets not lose that by converting it to a bitmask.
Quoted 39 lines
drivers/net/ethernet/intel/igbvf/ethtool.c +0
-0regs_buff[0 ] =er32 (CTRL );drivers/net/ethernet/intel/igbvf/igbvf.h +2
-2@@ -287,8 +287,8 @@ struct igbvf_info { };/* hardware capability, feature, and workaround flags */ -#define IGBVF_FLAG_RX_CSUM_DISABLED (1 << 0) -#define IGBVF_FLAG_RX_LB_VLAN_BSWAP (1 << 1) +#define IGBVF_FLAG_RX_CSUM_DISABLED BIT(0) +#define IGBVF_FLAG_RX_LB_VLAN_BSWAP BIT(1)#define IGBVF_RX_DESC_ADV (R , i) \ (&((((R).desc))[i].rx_desc))#define IGBVF_TX_DESC_ADV (R , i) \drivers/net/ethernet/intel/igbvf/netdev.c +2
-2@@ -964,7 +964,7 @@ static void igbvf_assign_vector(struct igbvf_adapter *adapter, int rx_queue, ivar = ivar &0xFFFFFF00 ; ivar |= msix_vector |E1000_IVAR_VALID ; } - adapter->rx_ring[rx_queue].eims_value =1 << msix_vector; + adapter->rx_ring[rx_queue].eims_value =BIT (msix_vector);array_ew32 (IVAR0 , index, ivar); }if (tx_queue >IGBVF_NO_QUEUE ) {@@ -979,7 +979,7 @@ static void igbvf_assign_vector(struct igbvf_adapter *adapter, int rx_queue, ivar = ivar &0xFFFF00FF ; ivar |= (msix_vector |E1000_IVAR_VALID ) <<8 ; } - adapter->tx_ring[tx_queue].eims_value =1 << msix_vector; + adapter->tx_ring[tx_queue].eims_value =BIT (msix_vector);array_ew32 (IVAR0 , index, ivar); } }
drivers/net/ethernet/intel/igbvf/netdev.c static void igbvf_configure_msix(struct igbvf_adapter *adapter) · line 1020
Quoted 9 lines
drivers/net/ethernet/intel/igbvf/netdev.c +2
-2@@ -1014,8 +1014,8 @@ static void igbvf_configure_msix(struct igbvf_adapter *adapter)ew32 (IVAR_MISC , tmp); - adapter->eims_enable_mask = (1 << (vector)) -1 ; - adapter->eims_other =1 << (vector -1 ); + adapter->eims_enable_mask =BIT (vector) -1 ; + adapter->eims_other =BIT (vector -1 );e1e_flush (); }
You should probably use the GENMASK(vector - 1, 0) for the eims_enable_mask.
drivers/net/ethernet/intel/igbvf/netdev.c static int igbvf_maybe_stop_tx(struct net_device *netdev, int size) · line 2092
Quoted 6 lines
drivers/net/ethernet/intel/igbvf/netdev.c +1
-1@@ -2089,7 +2089,7 @@ static int igbvf_maybe_stop_tx(struct net_device *netdev, int size) }#define IGBVF_MAX_TXD_PWR 16 -#define IGBVF_MAX_DATA_PER_TXD (1 << IGBVF_MAX_TXD_PWR) +#define IGBVF_MAX_DATA_PER_TXD BIT(IGBVF_MAX_TXD_PWR)
Converting this to a bitmask makes it completely unreadable. What this represents is 2 to the power of IGBVF_MAX_TXD_PWR.
Quoted 22 lines
drivers/net/ethernet/intel/igbvf/netdev.c +0
-0static inline int igbvf_tx_map_adv(struct igbvf_adapter *adapter, struct igbvf_ring *tx_ring,drivers/net/ethernet/intel/igbvf/vf.c +1
-2@@ -266,7 +266,7 @@ static s32 e1000_set_vfta_vf(struct e1000_hw *hw, u16 vid, bool set) msgbuf[1 ] = vid;/* Setting the 8 bit field MSG INFO to true indicates "add" */ if (set) - msgbuf[0 ] |=1 <<E1000_VT_MSGINFO_SHIFT ; + msgbuf[0 ] |=BIT (E1000_VT_MSGINFO_SHIFT ); mbx->ops.write_posted (hw, msgbuf,2 ); --2.8.1.102.ga49ec4a
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan at lists.osuosl.org
http://lists.osuosl.org/mailman/listinfo/intel-wired-lan
PATCH 11/13 e1000e: use BIT() macro for bit defines
In reply to Jacob KellerThis prevents signed bitshift issues when the shift would overwrite the signed bit, and prevents making this mistake in the future when copying and modifying code.
--- drivers/net/ethernet/intel/e1000e/80003es2lan.c | 12 +-- drivers/net/ethernet/intel/e1000e/82571.c | 30 +++---- drivers/net/ethernet/intel/e1000e/e1000.h | 100 ++++++++++++------------ drivers/net/ethernet/intel/e1000e/ethtool.c | 40 +++++----- drivers/net/ethernet/intel/e1000e/ich8lan.c | 44 +++++------ drivers/net/ethernet/intel/e1000e/mac.c | 2 +- drivers/net/ethernet/intel/e1000e/netdev.c | 28 +++---- drivers/net/ethernet/intel/e1000e/nvm.c | 2 +- drivers/net/ethernet/intel/e1000e/phy.c | 4 +- drivers/net/ethernet/intel/e1000e/phy.h | 10 +-- 10 files changed, 136 insertions(+), 136 deletions(-)
drivers/net/ethernet/intel/e1000e/80003es2lan.c +6 -6
@@ -121,7 +121,7 @@ static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw)/* EEPROM access above 16k is unsupported */ if (size >14 ) size =14 ; - nvm->word_size =1 << size; + nvm->word_size =BIT (size);return 0 ; }
@@ -845,27 +845,27 @@ static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw)/* Transmit Descriptor Control 0 */ reg =er32 (TXDCTL (0 )); - reg |= (1 <<22 ); + reg |=BIT (22 );ew32 (TXDCTL (0 ), reg);/* Transmit Descriptor Control 1 */ reg =er32 (TXDCTL (1 )); - reg |= (1 <<22 ); + reg |=BIT (22 );ew32 (TXDCTL (1 ), reg);/* Transmit Arbitration Control 0 */ reg =er32 (TARC (0 )); reg &= ~(0xF <<27 );/* 30:27 */ if (hw->phy.media_type != e1000_media_type_copper) - reg &= ~(1 <<20 ); + reg &= ~BIT (20 );ew32 (TARC (0 ), reg);/* Transmit Arbitration Control 1 */ reg =er32 (TARC (1 ));if (er32 (TCTL ) &E1000_TCTL_MULR ) - reg &= ~(1 <<28 ); + reg &= ~BIT (28 );else - reg |= (1 <<28 ); + reg |=BIT (28 );ew32 (TARC (1 ), reg);/* Disable IPv6 extension header parsing because some malformed
drivers/net/ethernet/intel/e1000e/82571.c +15 -15
@@ -185,7 +185,7 @@ static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw)/* EEPROM access above 16k is unsupported */ if (size >14 ) size =14 ; - nvm->word_size =1 << size; + nvm->word_size =BIT (size);break ; }
@@ -1163,12 +1163,12 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)/* Transmit Descriptor Control 0 */ reg =er32 (TXDCTL (0 )); - reg |= (1 <<22 ); + reg |=BIT (22 );ew32 (TXDCTL (0 ), reg);/* Transmit Descriptor Control 1 */ reg =er32 (TXDCTL (1 )); - reg |= (1 <<22 ); + reg |=BIT (22 );ew32 (TXDCTL (1 ), reg);/* Transmit Arbitration Control 0 */
@@ -1177,11 +1177,11 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)switch (hw->mac.type) {case e1000_82571:case e1000_82572: - reg |= (1 <<23 ) | (1 <<24 ) | (1 <<25 ) | (1 <<26 ); + reg |=BIT (23 ) |BIT (24 ) |BIT (25 ) |BIT (26 );break ;case e1000_82574:case e1000_82583: - reg |= (1 <<26 ); + reg |=BIT (26 );break ;default :break ;
@@ -1193,12 +1193,12 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)switch (hw->mac.type) {case e1000_82571:case e1000_82572: - reg &= ~((1 <<29 ) | (1 <<30 )); - reg |= (1 <<22 ) | (1 <<24 ) | (1 <<25 ) | (1 <<26 ); + reg &= ~(BIT (29 ) |BIT (30 )); + reg |=BIT (22 ) |BIT (24 ) |BIT (25 ) |BIT (26 );if (er32 (TCTL ) &E1000_TCTL_MULR ) - reg &= ~(1 <<28 ); + reg &= ~BIT (28 );else - reg |= (1 <<28 ); + reg |=BIT (28 );ew32 (TARC (1 ), reg);break ;default :
@@ -1211,7 +1211,7 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)case e1000_82574:case e1000_82583: reg =er32 (CTRL ); - reg &= ~(1 <<29 ); + reg &= ~BIT (29 );ew32 (CTRL , reg);break ;default :
@@ -1224,8 +1224,8 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)case e1000_82574:case e1000_82583: reg =er32 (CTRL_EXT ); - reg &= ~(1 <<23 ); - reg |= (1 <<22 ); + reg &= ~BIT (23 ); + reg |=BIT (22 );ew32 (CTRL_EXT , reg);break ;default :
@@ -1261,7 +1261,7 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)case e1000_82574:case e1000_82583: reg =er32 (GCR ); - reg |= (1 <<22 ); + reg |=BIT (22 );ew32 (GCR , reg);/* Workaround for hardware errata.
@@ -1308,8 +1308,8 @@ static void e1000_clear_vfta_82571(struct e1000_hw *hw) E1000_VFTA_ENTRY_SHIFT) &E1000_VFTA_ENTRY_MASK ; vfta_bit_in_reg = -1 << (hw->mng_cookie.vlan_id & -E1000_VFTA_ENTRY_BIT_SHIFT_MASK ); +BIT (hw->mng_cookie.vlan_id & +E1000_VFTA_ENTRY_BIT_SHIFT_MASK ); }break ;default :
drivers/net/ethernet/intel/e1000e/e1000.h +50 -50
119 lines not on this page · raw message
drivers/net/ethernet/intel/e1000e/ethtool.c +20 -20
@@ -446,7 +446,7 @@ static void e1000_get_regs(struct net_device *netdev,memset (p,0 ,E1000_REGS_LEN *sizeof (u32)); - regs->version = (1 <<24 ) | (adapter->pdev->revision <<16 ) | + regs->version =BIT (24 ) | (adapter->pdev->revision <<16 ) | adapter->pdev->device; regs_buff[0 ] =er32 (CTRL );
@@ -902,7 +902,7 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data)case e1000_pch2lan:case e1000_pch_lpt:case e1000_pch_spt: - mask |= (1 <<18 ); + mask |=BIT (18 );break ;default :break ;
@@ -921,9 +921,9 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data)/* SHRAH[9] different than the others */ if (i ==10 ) - mask |= (1 <<30 ); + mask |=BIT (30 );else - mask &= ~(1 <<30 ); + mask &= ~BIT (30 ); }if (mac->type == e1000_pch2lan) {/* SHRAH[0,1,2] different than previous */
@@ -931,7 +931,7 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data) mask &=0xFFF4FFFF ;/* SHRAH[3] different than SHRAH[0,1,2] */ if (i ==4 ) - mask |= (1 <<30 ); + mask |=BIT (30 );/* RAR[1-6] owned by management engine - skipping */ if (i >0 ) i +=6 ;
@@ -1026,7 +1026,7 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data)/* Test each interrupt */ for (i =0 ; i <10 ; i++) {/* Interrupt to test */ - mask =1 << i; + mask =BIT (i);if (adapter->flags &FLAG_IS_ICH ) {switch (mask) {
@@ -1394,7 +1394,7 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)case e1000_phy_82579:/* Disable PHY energy detect power down */ e1e_rphy (hw,PHY_REG (0 ,21 ), &phy_reg); -e1e_wphy (hw,PHY_REG (0 ,21 ), phy_reg & ~(1 <<3 )); +e1e_wphy (hw,PHY_REG (0 ,21 ), phy_reg & ~BIT (3 ));/* Disable full chip energy detect */ e1e_rphy (hw,PHY_REG (776 ,18 ), &phy_reg);e1e_wphy (hw,PHY_REG (776 ,18 ), phy_reg |1 );
@@ -1460,7 +1460,7 @@ static int e1000_set_82571_fiber_loopback(struct e1000_adapter *adapter)/* disable autoneg */ ctrl =er32 (TXCW ); - ctrl &= ~(1 <<31 ); + ctrl &= ~BIT (31 );ew32 (TXCW , ctrl); link = (er32 (STATUS ) &E1000_STATUS_LU );
@@ -2290,19 +2290,19 @@ static int e1000e_get_ts_info(struct net_device *netdev,SOF_TIMESTAMPING_RX_HARDWARE | SOF_TIMESTAMPING_RAW_HARDWARE); - info->tx_types = (1 <<HWTSTAMP_TX_OFF ) | (1 <<HWTSTAMP_TX_ON ); + info->tx_types =BIT (HWTSTAMP_TX_OFF ) |BIT (HWTSTAMP_TX_ON ); - info->rx_filters = ((1 <<HWTSTAMP_FILTER_NONE ) | - (1 <<HWTSTAMP_FILTER_PTP_V1_L4_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L4_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L2_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_EVENT ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_ALL )); + info->rx_filters = (BIT (HWTSTAMP_FILTER_NONE ) | +BIT (HWTSTAMP_FILTER_PTP_V1_L4_SYNC ) | +BIT (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ ) | +BIT (HWTSTAMP_FILTER_PTP_V2_L4_SYNC ) | +BIT (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ ) | +BIT (HWTSTAMP_FILTER_PTP_V2_L2_SYNC ) | +BIT (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ ) | +BIT (HWTSTAMP_FILTER_PTP_V2_EVENT ) | +BIT (HWTSTAMP_FILTER_PTP_V2_SYNC ) | +BIT (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ ) | +BIT (HWTSTAMP_FILTER_ALL ));if (adapter->ptp_clock) info->phc_index =ptp_clock_index (adapter->ptp_clock);
drivers/net/ethernet/intel/e1000e/ich8lan.c +22 -22
148 lines not on this page · raw message
drivers/net/ethernet/intel/e1000e/mac.c +1 -1
@@ -346,7 +346,7 @@ void e1000e_update_mc_addr_list_generic(struct e1000_hw *hw, hash_reg = (hash_value >>5 ) & (hw->mac.mta_reg_count -1 ); hash_bit = hash_value &0x1F ; - hw->mac.mta_shadow[hash_reg] |= (1 << hash_bit); + hw->mac.mta_shadow[hash_reg] |=BIT (hash_bit); mc_addr_list += (ETH_ALEN ); }
drivers/net/ethernet/intel/e1000e/netdev.c +14 -14
@@ -317,8 +317,8 @@ static void e1000e_dump(struct e1000_adapter *adapter)else next_desc ="" ; pr_info("T%c[0x%03X] %016llX %016llX %016llX %04X %3X %016llX %p%s\n", - (!(le64_to_cpu(u0->b) & (1 << 29)) ? 'l' : - ((le64_to_cpu(u0->b) & (1 << 20)) ? 'd' : 'c')), + (!(le64_to_cpu(u0->b) & BIT(29)) ? 'l' : + ((le64_to_cpu(u0->b) & BIT(20)) ? 'd' : 'c')), i, (unsigned long long)le64_to_cpu(u0->a), (unsigned long long)le64_to_cpu(u0->b),
@@ -2018,7 +2018,7 @@ static void e1000_configure_msix(struct e1000_adapter *adapter) adapter->eiac_mask |=E1000_IMS_OTHER ;/* Cause Tx interrupts on every write back */ - ivar |= (1 <<31 ); + ivar |=BIT (31 );ew32 (IVAR , ivar);
@@ -2709,7 +2709,7 @@ static int e1000_vlan_rx_add_vid(struct net_device *netdev,if (adapter->flags &FLAG_HAS_HW_VLAN_FILTER ) { index = (vid >>5 ) &0x7F ; vfta =E1000_READ_REG_ARRAY (hw,E1000_VFTA , index); - vfta |= (1 << (vid &0x1F )); + vfta |=BIT ((vid &0x1F )); hw->mac.ops.write_vfta (hw, index, vfta); }
@@ -2737,7 +2737,7 @@ static int e1000_vlan_rx_kill_vid(struct net_device *netdev,if (adapter->flags &FLAG_HAS_HW_VLAN_FILTER ) { index = (vid >>5 ) &0x7F ; vfta =E1000_READ_REG_ARRAY (hw,E1000_VFTA , index); - vfta &= ~(1 << (vid &0x1F )); + vfta &= ~BIT ((vid &0x1F )); hw->mac.ops.write_vfta (hw, index, vfta); }
@@ -2878,7 +2878,7 @@ static void e1000_init_manageability_pt(struct e1000_adapter *adapter)/* Enable this decision filter in MANC2H */ if (mdef) - manc2h |= (1 << i); + manc2h |=BIT (i); j |= mdef; }
@@ -2891,7 +2891,7 @@ static void e1000_init_manageability_pt(struct e1000_adapter *adapter)if (er32 (MDEF (i)) ==0 ) {ew32 (MDEF (i), (E1000_MDEF_PORT_623 |E1000_MDEF_PORT_664 )); - manc2h |= (1 <<1 ); + manc2h |=BIT (1 ); j++;break ; }
@@ -2971,7 +2971,7 @@ static void e1000_configure_tx(struct e1000_adapter *adapter)/* set the speed mode bit, we'll clear it if we're not at * gigabit link later */ -#define SPEED_MODE_BIT (1 << 21) +#define SPEED_MODE_BIT BIT(21) tarc |=SPEED_MODE_BIT ;ew32 (TARC (0 ), tarc); }
@@ -3071,12 +3071,12 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)e1e_rphy (hw,PHY_REG (770 ,26 ), &phy_data); phy_data &=0xfff8 ; - phy_data |= (1 <<2 ); + phy_data |=BIT (2 );e1e_wphy (hw,PHY_REG (770 ,26 ), phy_data);e1e_rphy (hw,22 , &phy_data); phy_data &=0x0fff ; - phy_data |= (1 <<14 ); + phy_data |=BIT (14 );e1e_wphy (hw,0x10 ,0x2823 );e1e_wphy (hw,0x11 ,0x0003 );e1e_wphy (hw,22 , phy_data);
@@ -3503,8 +3503,8 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca) !(er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_ENABLED)) {u32 fextnvm7 =er32 (FEXTNVM7 ); -if (!(fextnvm7 & (1 <<0 ))) { -ew32 (FEXTNVM7 , fextnvm7 | (1 <<0 )); +if (!(fextnvm7 &BIT (0 ))) { +ew32 (FEXTNVM7 , fextnvm7 |BIT (0 ));e1e_flush (); } }
@@ -3828,7 +3828,7 @@ static void e1000_flush_rx_ring(struct e1000_adapter *adapter)/* update thresholds: prefetch threshold to 31, host threshold to 1 * and make sure the granularity is "descriptors" and not "cache lines" */ - rxdctl |= (0x1F | (1 <<8 ) |E1000_RXDCTL_THRESH_UNIT_DESC ); + rxdctl |= (0x1F |BIT (8 ) |E1000_RXDCTL_THRESH_UNIT_DESC );ew32 (RXDCTL (0 ), rxdctl);/* momentarily enable the RX ring for the changes to take effect */
@@ -6850,7 +6850,7 @@ static void e1000_eeprom_checks(struct e1000_adapter *adapter) ret_val =e1000_read_nvm (hw,NVM_INIT_CONTROL2_REG ,1 , &buf);le16_to_cpus (&buf); -if (!ret_val && (!(buf & (1 <<0 )))) { +if (!ret_val && (!(buf &BIT (0 )))) {/* Deep Smart Power Down (DSPD) */ dev_warn (&adapter->pdev->dev,"Warning: detected DSPD enabled in EEPROM\n" );
drivers/net/ethernet/intel/e1000e/nvm.c +1 -1
@@ -67,7 +67,7 @@ static void e1000_shift_out_eec_bits(struct e1000_hw *hw, u16 data, u16 count)u32 eecd =er32 (EECD );u32 mask; - mask =0x01 << (count -1 ); + mask =BIT (count -1 );if (nvm->type == e1000_nvm_eeprom_spi) eecd |=E1000_EECD_DO ;
drivers/net/ethernet/intel/e1000e/phy.c +2 -2
@@ -2894,11 +2894,11 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data,if ((hw->phy.type == e1000_phy_82578) && (hw->phy.revision >=1 ) && (hw->phy.addr ==2 ) && - !(MAX_PHY_REG_ADDRESS & reg) && (data & (1 <<11 ))) { + !(MAX_PHY_REG_ADDRESS & reg) && (data &BIT (11 ))) {u16 data2 =0x7EFF ; ret_val =e1000_access_phy_debug_regs_hv (hw, - (1 <<6 ) |0x3 , +BIT (6 ) |0x3 , &data2, false);if (ret_val) goto out;
drivers/net/ethernet/intel/e1000e/phy.h +5 -5
@@ -104,9 +104,9 @@ s32 e1000_get_cable_length_82577(struct e1000_hw *hw);#define BM_WUC_DATA_OPCODE 0x12#define BM_WUC_ENABLE_PAGE BM_PORT_CTRL_PAGE#define BM_WUC_ENABLE_REG 17 -#define BM_WUC_ENABLE_BIT (1 << 2) -#define BM_WUC_HOST_WU_BIT (1 << 4) -#define BM_WUC_ME_WU_BIT (1 << 5) +#define BM_WUC_ENABLE_BIT BIT(2) +#define BM_WUC_HOST_WU_BIT BIT(4) +#define BM_WUC_ME_WU_BIT BIT(5)#define PHY_UPPER_SHIFT 21#define BM_PHY_REG (page, reg) \
@@ -124,8 +124,8 @@ s32 e1000_get_cable_length_82577(struct e1000_hw *hw);#define I82578_ADDR_REG 29#define I82577_ADDR_REG 16#define I82577_CFG_REG 22 -#define I82577_CFG_ASSERT_CRS_ON_TX (1 << 15) -#define I82577_CFG_ENABLE_DOWNSHIFT (3 << 10)/* auto downshift */ +#define I82577_CFG_ASSERT_CRS_ON_TX BIT(15) +#define I82577_CFG_ENABLE_DOWNSHIFT (3u << 10)/* auto downshift */ #define I82577_CTRL_REG 23/* 82577 specific PHY registers */
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 12/13 e1000e: mark shifted values as unsigned
In reply to Jacob KellerThe E1000_ICH_NVM_SIG_MASK value is shifted, out to the 31st bit, which is the signed bit for signed constants. Mark these values as unsigned to prevent compiler warnings and issues on platforms which a different signed bit implementation.
--- drivers/net/ethernet/intel/e1000e/ich8lan.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/net/ethernet/intel/e1000e/ich8lan.h +4 -4
@@ -73,10 +73,10 @@ (ID_LED_OFF1_ON2 << 4) | \ (ID_LED_DEF1_DEF2)) -#define E1000_ICH_NVM_SIG_WORD 0x13 -#define E1000_ICH_NVM_SIG_MASK 0xC000 -#define E1000_ICH_NVM_VALID_SIG_MASK 0xC0 -#define E1000_ICH_NVM_SIG_VALUE 0x80 +#define E1000_ICH_NVM_SIG_WORD 0x13u +#define E1000_ICH_NVM_SIG_MASK 0xC000u +#define E1000_ICH_NVM_VALID_SIG_MASK 0xC0u +#define E1000_ICH_NVM_SIG_VALUE 0x80u#define E1000_ICH8_LAN_INIT_TIMEOUT 1500
Signature · 1 line
2.8.1.102.ga49ec4a
PATCH 13/13 e1000e: remove unused variable
In reply to Jacob Keller--- drivers/net/ethernet/intel/e1000e/netdev.c | 1 - 1 file changed, 1 deletion(-)
drivers/net/ethernet/intel/e1000e/netdev.c +0 -1
@@ -6956,7 +6956,6 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)u16 eeprom_apme_mask =E1000_EEPROM_APME ;s32 rval =0 ;u32 regval; -s32 ret_val;if (ei->flags2 &FLAG2_DISABLE_ASPM_L0S ) aspm_disable_flag =PCIE_LINK_STATE_L0S ;
Signature · 1 line
2.8.1.102.ga49ec4a
Keller
PATCH 13/13 e1000e: remove unused variable
Quoted 16 lines · Jacob Keller
Signed-off-by Jacob Keller <[email protected]>---
?drivers/net/ethernet/intel/e1000e/netdev.c | 1 -
?1 file changed, 1 deletion(-)drivers/net/ethernet/intel/e1000e/netdev.c +0
-1@@ -6956,7 +6956,6 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ? u16 eeprom_apme_mask = E1000_EEPROM_APME; ? s32 rval = 0; ? u32 regval; -s32 ret_val;
Quoted 3 lines
?
? if (ei->flags2&FLAG2_DISABLE_ASPM_L0S)
?aspm_disable_flag=PCIE_LINK_STATE_L0S;
This last patch in the series was a mistake and shouldn't be applied to the queue. I misread a compiler complaint. Please ignore this submission, the other 12 should be ok.
Thanks,
Jake
cover Fix several GCC6 warnings
In reply to Jacob KellerQuoted 11 lines · Jacob Keller
This patch series fixes several warnings on Intel(R) drivers, including for igb, igbvf, e1000e, ixgbe, ixgbevf, i40e, i40evf and fm10k.
The primary change is to use
BIT()macro where appropriate, and use the unsigned postfix for various other bitshifts. While much of this change doesn't prevent any current warnings, it helps ensure that future additions make use ofBIT()macro or the unsigned postfix and prevent signed bitshift errors in the future. A few places (especially in ixgbe) don't use BIT even though it's technically equivalent for style and understanding the real intent of the code.
Quoted 2 lines
The series also fixes some other warnings, and makes use of GENMASK in a few locations.
So after looking over a few patches I would say you are bit to eager to apply BIT to things, and there are a few places where GENMASK should be used that you were using bit.
Specifically in the cases where we are shifting a value that just happens to be a 1 by some shift I would recommend not using the BIT macro. Such cases are the context descriptor index value or the version number for ethtool. In addition I am not sure it makes much sense to use BIT when we are calculating 2 to the power of a given value. For example PAGE_SIZE is defined at (1 << PAGE_SHIFT), not BIT(PAGE_SHIFT) within the kernel.
You probably need to apply GENMASK in all the cases where we have BIT(x) - 1 being used. You will want to set it up as GENMASK(x - 1, 0).
- Alex
Keller
cover Fix several GCC6 warnings
Quoted 34 lines · Alexander Duyck
Quoted 17 lines · Jacob Keller
This patch series fixes several warnings on Intel(R) drivers, including
for igb, igbvf, e1000e, ixgbe, ixgbevf, i40e, i40evf and fm10k.The primary change is to use
BIT()macro where appropriate, and use the
unsigned postfix for various other bitshifts. While much of this change
doesn't prevent any current warnings, it helps ensure that future additions make use ofBIT()macro or the unsigned postfix and prevent
signed bitshift errors in the future. A few places (especially in ixgbe)
don't use BIT even though it's technically equivalent for style and understanding the real intent of the code.Quoted 3 lines
The series also fixes some other warnings, and makes use of GENMASK in a
few locations.So after looking over a few patches I would say you are bit to eager to apply BIT to things, and there are a few places where GENMASK should be used that you were using bit.
Specifically in the cases where we are shifting a value that just happens to be a 1 by some shift I would recommend not using the BIT macro.??Such cases are the context descriptor index value or the version number for ethtool.??In addition I am not sure it makes much sense to use BIT when we are calculating 2 to the power of a given value.??For example
PAGE_SIZEis defined at (1 <<PAGE_SHIFT), notBIT(PAGE_SHIFT)within the kernel.
Quoted 5 lines
You probably need to apply GENMASK in all the cases where we have BIT(x) - 1 being used.??You will want to set it up as
GENMASK(x - 1, 0).- Alex
Yep. I'll try to clean those up.
Thanks,
Jake