Hi Loic,

kernel test robot noticed the following build warnings:

[auto build test WARNING on ath/ath-next]
[also build test WARNING on wireless/main wireless-next/main linus/master 
v6.17-rc7 next-20250926]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Loic-Poulain/wifi-ath10k-Support-for-FTM-TLV-test-commands/20250927-041539
base:   https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git ath-next
patch link:    
https://lore.kernel.org/r/20250926201303.194029-1-loic.poulain%40oss.qualcomm.com
patch subject: [PATCH ath-next] wifi: ath10k: Support for FTM TLV test commands
config: x86_64-randconfig-121-20250928 
(https://download.01.org/0day-ci/archive/20250928/[email protected]/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250928/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

sparse warnings: (new ones prefixed by >>)
>> drivers/net/wireless/ath/ath10k/testmode.c:93:23: sparse: sparse: cast to 
>> restricted __le32
>> drivers/net/wireless/ath/ath10k/testmode.c:93:23: sparse: sparse: restricted 
>> __le32 degrades to integer
>> drivers/net/wireless/ath/ath10k/testmode.c:93:23: sparse: sparse: restricted 
>> __le32 degrades to integer
   drivers/net/wireless/ath/ath10k/testmode.c:94:26: sparse: sparse: cast to 
restricted __le32
   drivers/net/wireless/ath/ath10k/testmode.c:94:26: sparse: sparse: restricted 
__le32 degrades to integer
   drivers/net/wireless/ath/ath10k/testmode.c:94:26: sparse: sparse: restricted 
__le32 degrades to integer
>> drivers/net/wireless/ath/ath10k/testmode.c:585:37: sparse: sparse: incorrect 
>> type in assignment (different base types) @@     expected restricted __le32 
>> [usertype] tlv_header @@     got unsigned int [assigned] [usertype] hdr_info 
>> @@
   drivers/net/wireless/ath/ath10k/testmode.c:585:37: sparse:     expected 
restricted __le32 [usertype] tlv_header
   drivers/net/wireless/ath/ath10k/testmode.c:585:37: sparse:     got unsigned 
int [assigned] [usertype] hdr_info
>> drivers/net/wireless/ath/ath10k/testmode.c:586:38: sparse: sparse: incorrect 
>> type in assignment (different base types) @@     expected restricted __le32 
>> [usertype] len @@     got unsigned short [assigned] [usertype] total_bytes @@
   drivers/net/wireless/ath/ath10k/testmode.c:586:38: sparse:     expected 
restricted __le32 [usertype] len
   drivers/net/wireless/ath/ath10k/testmode.c:586:38: sparse:     got unsigned 
short [assigned] [usertype] total_bytes
>> drivers/net/wireless/ath/ath10k/testmode.c:587:41: sparse: sparse: incorrect 
>> type in assignment (different base types) @@     expected restricted __le32 
>> [usertype] msgref @@     got unsigned char [usertype] ftm_msgref @@
   drivers/net/wireless/ath/ath10k/testmode.c:587:41: sparse:     expected 
restricted __le32 [usertype] msgref
   drivers/net/wireless/ath/ath10k/testmode.c:587:41: sparse:     got unsigned 
char [usertype] ftm_msgref
>> drivers/net/wireless/ath/ath10k/testmode.c:590:46: sparse: sparse: incorrect 
>> type in assignment (different base types) @@     expected restricted __le32 
>> [usertype] segmentinfo @@     got unsigned char [assigned] [usertype] 
>> seginfo @@
   drivers/net/wireless/ath/ath10k/testmode.c:590:46: sparse:     expected 
restricted __le32 [usertype] segmentinfo
   drivers/net/wireless/ath/ath10k/testmode.c:590:46: sparse:     got unsigned 
char [assigned] [usertype] seginfo

vim +93 drivers/net/wireless/ath/ath10k/testmode.c

    77  
    78  static void ath10k_tm_event_segmented(struct ath10k *ar, u32 cmd_id, 
struct sk_buff *skb)
    79  {
    80          struct wmi_ftm_cmd *ftm = (struct wmi_ftm_cmd *)skb->data;
    81          u8 total_segments, current_seq;
    82          struct sk_buff *nl_skb;
    83          u8 const *buf_pos;
    84          u16 datalen;
    85          u32 data_pos;
    86          int ret;
    87  
    88          if (skb->len < sizeof(*ftm)) {
    89                  ath10k_warn(ar, "Invalid ftm event length: %d\n", 
skb->len);
    90                  return;
    91          }
    92  
  > 93          current_seq = FIELD_GET(ATH10K_FTM_SEGHDR_CURRENT_SEQ, 
ftm->seg_hdr.segmentinfo);
    94          total_segments = FIELD_GET(ATH10K_FTM_SEGHDR_TOTAL_SEGMENTS,
    95                                     ftm->seg_hdr.segmentinfo);
    96          datalen = skb->len - sizeof(*ftm);
    97          buf_pos = ftm->data;
    98  
    99          if (current_seq == 0) {
   100                  ar->testmode.expected_seq = 0;
   101                  ar->testmode.data_pos = 0;
   102          }
   103  
   104          data_pos = ar->testmode.data_pos;
   105  
   106          if ((data_pos + datalen) > ATH_FTM_EVENT_MAX_BUF_LENGTH) {
   107                  ath10k_warn(ar, "Invalid ftm event length at %u: %u\n",
   108                              data_pos, datalen);
   109                  ret = -EINVAL;
   110                  return;
   111          }
   112  
   113          memcpy(&ar->testmode.eventdata[data_pos], buf_pos, datalen);
   114          data_pos += datalen;
   115  
   116          if (++ar->testmode.expected_seq != total_segments) {
   117                  ar->testmode.data_pos = data_pos;
   118                  ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "partial data 
received %u/%u\n",
   119                             current_seq + 1, total_segments);
   120                  return;
   121          }
   122  
   123          ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "total data length %u\n", 
data_pos);
   124  
   125          nl_skb = cfg80211_testmode_alloc_event_skb(ar->hw->wiphy,
   126                                                     2 * sizeof(u32) + 
data_pos,
   127                                                     GFP_ATOMIC);
   128          if (!nl_skb) {
   129                  ath10k_warn(ar, "failed to allocate skb for testmode 
wmi event\n");
   130                  return;
   131          }
   132  
   133          ret = nla_put_u32(nl_skb, ATH10K_TM_ATTR_CMD, 
ATH10K_TM_CMD_TLV);
   134          if (ret) {
   135                  ath10k_warn(ar, "failed to put testmode wmi event 
attribute: %d\n", ret);
   136                  kfree_skb(nl_skb);
   137                  return;
   138          }
   139  
   140          ret = nla_put_u32(nl_skb, ATH10K_TM_ATTR_WMI_CMDID, cmd_id);
   141          if (ret) {
   142                  ath10k_warn(ar, "failed to put testmode wmi event 
cmd_id: %d\n", ret);
   143                  kfree_skb(nl_skb);
   144                  return;
   145          }
   146  
   147          ret = nla_put(nl_skb, ATH10K_TM_ATTR_DATA, data_pos, 
&ar->testmode.eventdata[0]);
   148          if (ret) {
   149                  ath10k_warn(ar, "failed to copy skb to testmode wmi 
event: %d\n", ret);
   150                  kfree_skb(nl_skb);
   151                  return;
   152          }
   153  
   154          cfg80211_testmode_event(nl_skb, GFP_ATOMIC);
   155  }
   156  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to