[kbuild] drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: testing array offset 'sib' after use.

2022-03-14 Thread kernel test robot
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Qi Zhang 
CC: Tony Nguyen 
CC: Dan Nowlin 

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   09688c0166e76ce2fb85e86b9d99be8b0084cdf9
commit: b199dddbd399536d5470e10e6bfd7d0e1b5fb71a ice: Support non word aligned 
input set field
date:   12 months ago
:: branch date: 20 hours ago
:: commit date: 12 months ago
config: riscv-randconfig-m031-20220313 
(https://download.01.org/0day-ci/archive/20220315/202203150004.kashstrx-...@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

New smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: 
testing array offset 'sib' after use.

Old smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:1698 ice_add_rss_cfg_sync() error: we 
previously assumed 'prof' could be null (see line 1680)

vim +/sib +663 drivers/net/ethernet/intel/ice/ice_flow.c

31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  511  
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  512  /**
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  513   * ice_flow_xtract_fld - 
Create an extraction sequence entry for the given field
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  514   * @hw: pointer to the 
HW struct
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  515   * @params: information 
about the flow to be processed
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  516   * @seg: packet segment 
index of the field to be extracted
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  517   * @fld: ID of field to 
be extracted
b199dddbd399536 Qi Zhang  2021-03-09  518   * @match: bit field of 
all fields
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  519   *
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  520   * This function 
determines the protocol ID, offset, and size of the given
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  521   * field. It then 
allocates one or more extraction sequence entries for the
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  522   * given field, and fill 
the entries with protocol ID and offset information.
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  523   */
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  524  static enum ice_status
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  525  
ice_flow_xtract_fld(struct ice_hw *hw, struct ice_flow_prof_params *params,
b199dddbd399536 Qi Zhang  2021-03-09  526   u8 seg, 
enum ice_flow_field fld, u64 match)
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  527  {
b199dddbd399536 Qi Zhang  2021-03-09  528   enum ice_flow_field sib 
= ICE_FLOW_FIELD_IDX_MAX;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  529   enum ice_prot_id 
prot_id = ICE_PROT_ID_INVAL;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  530   u8 fv_words = 
hw->blk[params->blk].es.fvw;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  531   struct 
ice_flow_fld_info *flds;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  532   u16 cnt, ese_bits, i;
b199dddbd399536 Qi Zhang  2021-03-09  533   u16 sib_mask = 0;
b199dddbd399536 Qi Zhang  2021-03-09  534   u16 mask;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  535   u16 off;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  536  
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  537   flds = 
params->prof->segs[seg].fields;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  538  
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  539   switch (fld) {
390bd141808d501 Qi Zhang  2021-03-09  540   case 
ICE_FLOW_FIELD_IDX_ETH_DA:
390bd141808d501 Qi Zhang  2021-03-09  541   case 
ICE_FLOW_FIELD_IDX_ETH_SA:
390bd141808d501 Qi Zhang  2021-03-09  542   case 
ICE_FLOW_FIELD_IDX_S_VLAN:
390bd141808d501 Qi Zhang  2021-03-09  543   case 
ICE_FLOW_FIELD_IDX_C_VLAN:
390bd141808d501 Qi Zhang  2021-03-09  544   prot_id = seg 
== 0 ? ICE_PROT_MAC_OF_OR_S : ICE_PROT_MAC_IL;
390bd141808d501 Qi Zhang  2021-03-09  545   break;
390bd141808d501 Qi Zhang  2021-03-09  546   case 
ICE_FLOW_FIELD_IDX_ETH_TYPE:
390bd141808d501 Qi Zhang  2021-03-09  547   prot_id = seg 
== 0 ? ICE_PROT_ETYPE_OL : ICE_PROT_ETYPE_IL;
390bd141808d501 Qi Zhang  2021-03-09  548   break;
b199dddbd399536 Qi Zhang  2021-03-09  549   case 
ICE_FLOW_FIELD_IDX_IPV4_DSCP:
b199dddbd399536 Qi Zhang  2021-03-09  550   prot_id = seg 
== 0 ? ICE_PROT_IPV4_OF_OR_S : ICE_PROT_IPV4_IL;
b199dddbd399536 Qi Zhang  2021-03-09  551   break;
b199dddbd399536 Qi Zhang  2021-03-09  552   case 
ICE_FLOW_FIELD_IDX_IPV6_DSCP:
b199dddbd399536 Qi Zhang  2021-03-09  553   prot_id 

[kbuild] drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: testing array offset 'sib' after use.

2022-03-13 Thread kernel test robot
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Qi Zhang 
CC: Tony Nguyen 
CC: Dan Nowlin 

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   aad611a868d16cdc16a7d4a764cef955293e47e3
commit: b199dddbd399536d5470e10e6bfd7d0e1b5fb71a ice: Support non word aligned 
input set field
date:   12 months ago
:: branch date: 20 hours ago
:: commit date: 12 months ago
config: riscv-randconfig-m031-20220313 
(https://download.01.org/0day-ci/archive/20220313/202203132208.hielrqyp-...@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

New smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: 
testing array offset 'sib' after use.

Old smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:1698 ice_add_rss_cfg_sync() error: we 
previously assumed 'prof' could be null (see line 1680)

vim +/sib +663 drivers/net/ethernet/intel/ice/ice_flow.c

31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  511  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  512  /**
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  513   * ice_flow_xtract_fld - 
Create an extraction sequence entry for the given field
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  514   * @hw: pointer to the HW 
struct
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  515   * @params: information 
about the flow to be processed
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  516   * @seg: packet segment 
index of the field to be extracted
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  517   * @fld: ID of field to 
be extracted
b199dddbd39953 Qi Zhang  2021-03-09  518   * @match: bit field of 
all fields
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  519   *
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  520   * This function 
determines the protocol ID, offset, and size of the given
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  521   * field. It then 
allocates one or more extraction sequence entries for the
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  522   * given field, and fill 
the entries with protocol ID and offset information.
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  523   */
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  524  static enum ice_status
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  525  
ice_flow_xtract_fld(struct ice_hw *hw, struct ice_flow_prof_params *params,
b199dddbd39953 Qi Zhang  2021-03-09  526u8 seg, 
enum ice_flow_field fld, u64 match)
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  527  {
b199dddbd39953 Qi Zhang  2021-03-09  528enum ice_flow_field sib 
= ICE_FLOW_FIELD_IDX_MAX;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  529enum ice_prot_id 
prot_id = ICE_PROT_ID_INVAL;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  530u8 fv_words = 
hw->blk[params->blk].es.fvw;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  531struct 
ice_flow_fld_info *flds;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  532u16 cnt, ese_bits, i;
b199dddbd39953 Qi Zhang  2021-03-09  533u16 sib_mask = 0;
b199dddbd39953 Qi Zhang  2021-03-09  534u16 mask;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  535u16 off;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  536  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  537flds = 
params->prof->segs[seg].fields;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  538  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  539switch (fld) {
390bd141808d50 Qi Zhang  2021-03-09  540case 
ICE_FLOW_FIELD_IDX_ETH_DA:
390bd141808d50 Qi Zhang  2021-03-09  541case 
ICE_FLOW_FIELD_IDX_ETH_SA:
390bd141808d50 Qi Zhang  2021-03-09  542case 
ICE_FLOW_FIELD_IDX_S_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  543case 
ICE_FLOW_FIELD_IDX_C_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  544prot_id = seg 
== 0 ? ICE_PROT_MAC_OF_OR_S : ICE_PROT_MAC_IL;
390bd141808d50 Qi Zhang  2021-03-09  545break;
390bd141808d50 Qi Zhang  2021-03-09  546case 
ICE_FLOW_FIELD_IDX_ETH_TYPE:
390bd141808d50 Qi Zhang  2021-03-09  547prot_id = seg 
== 0 ? ICE_PROT_ETYPE_OL : ICE_PROT_ETYPE_IL;
390bd141808d50 Qi Zhang  2021-03-09  548break;
b199dddbd39953 Qi Zhang  2021-03-09  549case 
ICE_FLOW_FIELD_IDX_IPV4_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  550prot_id = seg 
== 0 ? ICE_PROT_IPV4_OF_OR_S : ICE_PROT_IPV4_IL;
b199dddbd39953 Qi Zhang  2021-03-09  551break;
b199dddbd39953 Qi Zhang  2021-03-09  552case 
ICE_FLOW_FIELD_IDX_IPV6_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  553prot_id = seg 
== 0 ? ICE_

[kbuild] drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: testing array offset 'sib' after use.

2022-02-25 Thread kernel test robot
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Qi Zhang 
CC: Tony Nguyen 
CC: Dan Nowlin 

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   9137eda53752ef73148e42b0d7640a00f1bc96b1
commit: b199dddbd399536d5470e10e6bfd7d0e1b5fb71a ice: Support non word aligned 
input set field
date:   11 months ago
:: branch date: 7 hours ago
:: commit date: 11 months ago
config: ia64-randconfig-m031-20220220 
(https://download.01.org/0day-ci/archive/20220226/202202261225.lpgudshd-...@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

New smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: 
testing array offset 'sib' after use.

Old smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:1698 ice_add_rss_cfg_sync() error: we 
previously assumed 'prof' could be null (see line 1680)

vim +/sib +663 drivers/net/ethernet/intel/ice/ice_flow.c

31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  511  
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  512  /**
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  513   * ice_flow_xtract_fld - 
Create an extraction sequence entry for the given field
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  514   * @hw: pointer to the 
HW struct
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  515   * @params: information 
about the flow to be processed
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  516   * @seg: packet segment 
index of the field to be extracted
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  517   * @fld: ID of field to 
be extracted
b199dddbd399536 Qi Zhang  2021-03-09  518   * @match: bit field of 
all fields
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  519   *
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  520   * This function 
determines the protocol ID, offset, and size of the given
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  521   * field. It then 
allocates one or more extraction sequence entries for the
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  522   * given field, and fill 
the entries with protocol ID and offset information.
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  523   */
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  524  static enum ice_status
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  525  
ice_flow_xtract_fld(struct ice_hw *hw, struct ice_flow_prof_params *params,
b199dddbd399536 Qi Zhang  2021-03-09  526   u8 seg, 
enum ice_flow_field fld, u64 match)
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  527  {
b199dddbd399536 Qi Zhang  2021-03-09  528   enum ice_flow_field sib 
= ICE_FLOW_FIELD_IDX_MAX;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  529   enum ice_prot_id 
prot_id = ICE_PROT_ID_INVAL;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  530   u8 fv_words = 
hw->blk[params->blk].es.fvw;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  531   struct 
ice_flow_fld_info *flds;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  532   u16 cnt, ese_bits, i;
b199dddbd399536 Qi Zhang  2021-03-09  533   u16 sib_mask = 0;
b199dddbd399536 Qi Zhang  2021-03-09  534   u16 mask;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  535   u16 off;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  536  
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  537   flds = 
params->prof->segs[seg].fields;
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  538  
31ad4e4ee1e4e2e Tony Nguyen   2020-01-17  539   switch (fld) {
390bd141808d501 Qi Zhang  2021-03-09  540   case 
ICE_FLOW_FIELD_IDX_ETH_DA:
390bd141808d501 Qi Zhang  2021-03-09  541   case 
ICE_FLOW_FIELD_IDX_ETH_SA:
390bd141808d501 Qi Zhang  2021-03-09  542   case 
ICE_FLOW_FIELD_IDX_S_VLAN:
390bd141808d501 Qi Zhang  2021-03-09  543   case 
ICE_FLOW_FIELD_IDX_C_VLAN:
390bd141808d501 Qi Zhang  2021-03-09  544   prot_id = seg 
== 0 ? ICE_PROT_MAC_OF_OR_S : ICE_PROT_MAC_IL;
390bd141808d501 Qi Zhang  2021-03-09  545   break;
390bd141808d501 Qi Zhang  2021-03-09  546   case 
ICE_FLOW_FIELD_IDX_ETH_TYPE:
390bd141808d501 Qi Zhang  2021-03-09  547   prot_id = seg 
== 0 ? ICE_PROT_ETYPE_OL : ICE_PROT_ETYPE_IL;
390bd141808d501 Qi Zhang  2021-03-09  548   break;
b199dddbd399536 Qi Zhang  2021-03-09  549   case 
ICE_FLOW_FIELD_IDX_IPV4_DSCP:
b199dddbd399536 Qi Zhang  2021-03-09  550   prot_id = seg 
== 0 ? ICE_PROT_IPV4_OF_OR_S : ICE_PROT_IPV4_IL;
b199dddbd399536 Qi Zhang  2021-03-09  551   break;
b199dddbd399536 Qi Zhang  2021-03-09  552   case 
ICE_FLOW_FIELD_IDX_IPV6_DSCP:
b199dddbd399536 Qi Zhang  2021-03-09  553   prot_id = seg

[kbuild] drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: testing array offset 'sib' after use.

2022-02-24 Thread kernel test robot
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Qi Zhang 
CC: Tony Nguyen 
CC: Dan Nowlin 

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   23d04328444a8fa0ca060c5e532220dac8e8bc26
commit: b199dddbd399536d5470e10e6bfd7d0e1b5fb71a ice: Support non word aligned 
input set field
date:   11 months ago
:: branch date: 26 hours ago
:: commit date: 11 months ago
config: ia64-randconfig-m031-20220220 
(https://download.01.org/0day-ci/archive/20220225/202202250650.h7nrs7ej-...@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

New smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: 
testing array offset 'sib' after use.

Old smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:1698 ice_add_rss_cfg_sync() error: we 
previously assumed 'prof' could be null (see line 1680)

vim +/sib +663 drivers/net/ethernet/intel/ice/ice_flow.c

31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  511  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  512  /**
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  513   * ice_flow_xtract_fld - 
Create an extraction sequence entry for the given field
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  514   * @hw: pointer to the HW 
struct
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  515   * @params: information 
about the flow to be processed
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  516   * @seg: packet segment 
index of the field to be extracted
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  517   * @fld: ID of field to 
be extracted
b199dddbd39953 Qi Zhang  2021-03-09  518   * @match: bit field of 
all fields
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  519   *
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  520   * This function 
determines the protocol ID, offset, and size of the given
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  521   * field. It then 
allocates one or more extraction sequence entries for the
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  522   * given field, and fill 
the entries with protocol ID and offset information.
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  523   */
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  524  static enum ice_status
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  525  
ice_flow_xtract_fld(struct ice_hw *hw, struct ice_flow_prof_params *params,
b199dddbd39953 Qi Zhang  2021-03-09  526u8 seg, 
enum ice_flow_field fld, u64 match)
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  527  {
b199dddbd39953 Qi Zhang  2021-03-09  528enum ice_flow_field sib 
= ICE_FLOW_FIELD_IDX_MAX;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  529enum ice_prot_id 
prot_id = ICE_PROT_ID_INVAL;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  530u8 fv_words = 
hw->blk[params->blk].es.fvw;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  531struct 
ice_flow_fld_info *flds;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  532u16 cnt, ese_bits, i;
b199dddbd39953 Qi Zhang  2021-03-09  533u16 sib_mask = 0;
b199dddbd39953 Qi Zhang  2021-03-09  534u16 mask;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  535u16 off;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  536  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  537flds = 
params->prof->segs[seg].fields;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  538  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  539switch (fld) {
390bd141808d50 Qi Zhang  2021-03-09  540case 
ICE_FLOW_FIELD_IDX_ETH_DA:
390bd141808d50 Qi Zhang  2021-03-09  541case 
ICE_FLOW_FIELD_IDX_ETH_SA:
390bd141808d50 Qi Zhang  2021-03-09  542case 
ICE_FLOW_FIELD_IDX_S_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  543case 
ICE_FLOW_FIELD_IDX_C_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  544prot_id = seg 
== 0 ? ICE_PROT_MAC_OF_OR_S : ICE_PROT_MAC_IL;
390bd141808d50 Qi Zhang  2021-03-09  545break;
390bd141808d50 Qi Zhang  2021-03-09  546case 
ICE_FLOW_FIELD_IDX_ETH_TYPE:
390bd141808d50 Qi Zhang  2021-03-09  547prot_id = seg 
== 0 ? ICE_PROT_ETYPE_OL : ICE_PROT_ETYPE_IL;
390bd141808d50 Qi Zhang  2021-03-09  548break;
b199dddbd39953 Qi Zhang  2021-03-09  549case 
ICE_FLOW_FIELD_IDX_IPV4_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  550prot_id = seg 
== 0 ? ICE_PROT_IPV4_OF_OR_S : ICE_PROT_IPV4_IL;
b199dddbd39953 Qi Zhang  2021-03-09  551break;
b199dddbd39953 Qi Zhang  2021-03-09  552case 
ICE_FLOW_FIELD_IDX_IPV6_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  553prot_id = seg 
== 0 ? ICE_PROT

[kbuild] drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: testing array offset 'sib' after use.

2022-02-22 Thread kernel test robot
CC: kbuild-...@lists.01.org
CC: linux-ker...@vger.kernel.org
TO: Qi Zhang 
CC: Tony Nguyen 
CC: Dan Nowlin 

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   038101e6b2cd5c55f888f85db42ea2ad3aecb4b6
commit: b199dddbd399536d5470e10e6bfd7d0e1b5fb71a ice: Support non word aligned 
input set field
date:   11 months ago
:: branch date: 26 hours ago
:: commit date: 11 months ago
config: ia64-randconfig-m031-20220220 
(https://download.01.org/0day-ci/archive/20220223/202202230223.zedcp365-...@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

New smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: 
testing array offset 'sib' after use.

Old smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:1698 ice_add_rss_cfg_sync() error: we 
previously assumed 'prof' could be null (see line 1680)

vim +/sib +663 drivers/net/ethernet/intel/ice/ice_flow.c

31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  511  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  512  /**
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  513   * ice_flow_xtract_fld - 
Create an extraction sequence entry for the given field
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  514   * @hw: pointer to the HW 
struct
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  515   * @params: information 
about the flow to be processed
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  516   * @seg: packet segment 
index of the field to be extracted
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  517   * @fld: ID of field to 
be extracted
b199dddbd39953 Qi Zhang  2021-03-09  518   * @match: bit field of 
all fields
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  519   *
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  520   * This function 
determines the protocol ID, offset, and size of the given
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  521   * field. It then 
allocates one or more extraction sequence entries for the
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  522   * given field, and fill 
the entries with protocol ID and offset information.
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  523   */
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  524  static enum ice_status
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  525  
ice_flow_xtract_fld(struct ice_hw *hw, struct ice_flow_prof_params *params,
b199dddbd39953 Qi Zhang  2021-03-09  526u8 seg, 
enum ice_flow_field fld, u64 match)
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  527  {
b199dddbd39953 Qi Zhang  2021-03-09  528enum ice_flow_field sib 
= ICE_FLOW_FIELD_IDX_MAX;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  529enum ice_prot_id 
prot_id = ICE_PROT_ID_INVAL;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  530u8 fv_words = 
hw->blk[params->blk].es.fvw;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  531struct 
ice_flow_fld_info *flds;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  532u16 cnt, ese_bits, i;
b199dddbd39953 Qi Zhang  2021-03-09  533u16 sib_mask = 0;
b199dddbd39953 Qi Zhang  2021-03-09  534u16 mask;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  535u16 off;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  536  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  537flds = 
params->prof->segs[seg].fields;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  538  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  539switch (fld) {
390bd141808d50 Qi Zhang  2021-03-09  540case 
ICE_FLOW_FIELD_IDX_ETH_DA:
390bd141808d50 Qi Zhang  2021-03-09  541case 
ICE_FLOW_FIELD_IDX_ETH_SA:
390bd141808d50 Qi Zhang  2021-03-09  542case 
ICE_FLOW_FIELD_IDX_S_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  543case 
ICE_FLOW_FIELD_IDX_C_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  544prot_id = seg 
== 0 ? ICE_PROT_MAC_OF_OR_S : ICE_PROT_MAC_IL;
390bd141808d50 Qi Zhang  2021-03-09  545break;
390bd141808d50 Qi Zhang  2021-03-09  546case 
ICE_FLOW_FIELD_IDX_ETH_TYPE:
390bd141808d50 Qi Zhang  2021-03-09  547prot_id = seg 
== 0 ? ICE_PROT_ETYPE_OL : ICE_PROT_ETYPE_IL;
390bd141808d50 Qi Zhang  2021-03-09  548break;
b199dddbd39953 Qi Zhang  2021-03-09  549case 
ICE_FLOW_FIELD_IDX_IPV4_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  550prot_id = seg 
== 0 ? ICE_PROT_IPV4_OF_OR_S : ICE_PROT_IPV4_IL;
b199dddbd39953 Qi Zhang  2021-03-09  551break;
b199dddbd39953 Qi Zhang  2021-03-09  552case 
ICE_FLOW_FIELD_IDX_IPV6_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  553prot_id = seg 
== 0 ? ICE_PROT_IPV6_OF_OR_S : ICE_

[kbuild] drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: testing array offset 'sib' after use.

2022-02-20 Thread kernel test robot
CC: kbuild-...@lists.01.org
CC: linux-ker...@vger.kernel.org
TO: Qi Zhang 
CC: Tony Nguyen 
CC: Dan Nowlin 

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   77478077349f14c78e30faeac358cf1187c0f0c1
commit: b199dddbd399536d5470e10e6bfd7d0e1b5fb71a ice: Support non word aligned 
input set field
date:   11 months ago
:: branch date: 3 hours ago
:: commit date: 11 months ago
config: ia64-randconfig-m031-20220220 
(https://download.01.org/0day-ci/archive/20220221/202202210600.1bgzxghc-...@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

New smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:663 ice_flow_xtract_fld() error: 
testing array offset 'sib' after use.

Old smatch warnings:
drivers/net/ethernet/intel/ice/ice_flow.c:1698 ice_add_rss_cfg_sync() error: we 
previously assumed 'prof' could be null (see line 1680)

vim +/sib +663 drivers/net/ethernet/intel/ice/ice_flow.c

31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  511  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  512  /**
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  513   * ice_flow_xtract_fld - 
Create an extraction sequence entry for the given field
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  514   * @hw: pointer to the HW 
struct
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  515   * @params: information 
about the flow to be processed
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  516   * @seg: packet segment 
index of the field to be extracted
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  517   * @fld: ID of field to 
be extracted
b199dddbd39953 Qi Zhang  2021-03-09  518   * @match: bit field of 
all fields
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  519   *
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  520   * This function 
determines the protocol ID, offset, and size of the given
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  521   * field. It then 
allocates one or more extraction sequence entries for the
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  522   * given field, and fill 
the entries with protocol ID and offset information.
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  523   */
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  524  static enum ice_status
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  525  
ice_flow_xtract_fld(struct ice_hw *hw, struct ice_flow_prof_params *params,
b199dddbd39953 Qi Zhang  2021-03-09  526u8 seg, 
enum ice_flow_field fld, u64 match)
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  527  {
b199dddbd39953 Qi Zhang  2021-03-09  528enum ice_flow_field sib 
= ICE_FLOW_FIELD_IDX_MAX;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  529enum ice_prot_id 
prot_id = ICE_PROT_ID_INVAL;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  530u8 fv_words = 
hw->blk[params->blk].es.fvw;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  531struct 
ice_flow_fld_info *flds;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  532u16 cnt, ese_bits, i;
b199dddbd39953 Qi Zhang  2021-03-09  533u16 sib_mask = 0;
b199dddbd39953 Qi Zhang  2021-03-09  534u16 mask;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  535u16 off;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  536  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  537flds = 
params->prof->segs[seg].fields;
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  538  
31ad4e4ee1e4e2 Tony Nguyen   2020-01-17  539switch (fld) {
390bd141808d50 Qi Zhang  2021-03-09  540case 
ICE_FLOW_FIELD_IDX_ETH_DA:
390bd141808d50 Qi Zhang  2021-03-09  541case 
ICE_FLOW_FIELD_IDX_ETH_SA:
390bd141808d50 Qi Zhang  2021-03-09  542case 
ICE_FLOW_FIELD_IDX_S_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  543case 
ICE_FLOW_FIELD_IDX_C_VLAN:
390bd141808d50 Qi Zhang  2021-03-09  544prot_id = seg 
== 0 ? ICE_PROT_MAC_OF_OR_S : ICE_PROT_MAC_IL;
390bd141808d50 Qi Zhang  2021-03-09  545break;
390bd141808d50 Qi Zhang  2021-03-09  546case 
ICE_FLOW_FIELD_IDX_ETH_TYPE:
390bd141808d50 Qi Zhang  2021-03-09  547prot_id = seg 
== 0 ? ICE_PROT_ETYPE_OL : ICE_PROT_ETYPE_IL;
390bd141808d50 Qi Zhang  2021-03-09  548break;
b199dddbd39953 Qi Zhang  2021-03-09  549case 
ICE_FLOW_FIELD_IDX_IPV4_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  550prot_id = seg 
== 0 ? ICE_PROT_IPV4_OF_OR_S : ICE_PROT_IPV4_IL;
b199dddbd39953 Qi Zhang  2021-03-09  551break;
b199dddbd39953 Qi Zhang  2021-03-09  552case 
ICE_FLOW_FIELD_IDX_IPV6_DSCP:
b199dddbd39953 Qi Zhang  2021-03-09  553prot_id = seg 
== 0 ? ICE_PROT_IPV6_OF_OR_S : ICE_P