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
