[PATCH ath-next] wifi: ath10k: Support for FTM TLV test commands
kernel test robot
lkp at intel.com
Sun Sep 28 01:57:17 PDT 2025
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/202509281616.IKHm5zbZ-lkp@intel.com/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/202509281616.IKHm5zbZ-lkp@intel.com/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 <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509281616.IKHm5zbZ-lkp@intel.com/
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
More information about the ath10k
mailing list