ath10k: fix pointer arithmetic error in trace call
PATCH 1/1 ath10k: fix pointer arithmetic error in trace call
Reading through the commit history, it looks like there is no special need why we must skip the first 4 bytes in this trace call:
trace_ath10k_htt_rx_desc(ar, (void*)rx_desc + sizeof(u32),
hw->rx_desc_ops->rx_desc_size - sizeof(u32));
found in the function ath10k_htt_rx_amsdu_pop in the file htt_rx.c
i think the original author
(who is also the one who added rx_desc tracing capabilities in a0883cf7e75a) just wanted to trace the rx_desc contents, ignoring the fw_rx_desc_base info field
(which is the part being skipped over).
But the trace_ath10k_htt_rx_desc later added
don't care about skipping it, so it may be good
to uniform this call to the others in the file.
But this would change the output of the trace and
thus it may be a problem for tools that rely on it. Therefore I propose until further discussion
to just keep it as it is and just fix the pointer arithmetic bug.
Add missing void* cast to rx descriptor pointer in order to properly skip the initial 4 bytes of the rx descriptor when passing it to trace_ath10k_htt_rx_desc trace function.
This fixes the pointer arithmetic error detected by Dan Carpenter's static analysis tool.
Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00157-QCARMSWPZ-1
--- drivers/net/wireless/ath/ath10k/htt_rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/ath/ath10k/htt_rx.c +1 -1
@@ -429,7 +429,7 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,RX_MSDU_END_INFO0_LAST_MSDU ;/* FIXME: why are we skipping the first part of the rx_desc? */ -trace_ath10k_htt_rx_desc (ar, rx_desc +sizeof (u32), +trace_ath10k_htt_rx_desc (ar, (void *)rx_desc +sizeof (u32), hw->rx_desc_ops->rx_desc_size -sizeof (u32));if (last_msdu)
Signature · 7 lines
2.35.1 _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
+ linux-wireless
Quoted 29 lines · Francesco Magliocca
Reading through the commit history, it looks like there is no special need why we must skip the first 4 bytes in this trace call:
trace_ath10k_htt_rx_desc(ar, (void*)rx_desc + sizeof(u32),
hw->rx_desc_ops->rx_desc_size - sizeof(u32));found in the function
ath10k_htt_rx_amsdu_popin the filehtt_rx.ci think the original author
(who is also the one who addedrx_desctracing capabilities ina0883cf7e75a) just wanted to trace therx_desccontents, ignoring thefw_rx_desc_baseinfo field
(which is the part being skipped over).
But thetrace_ath10k_htt_rx_desclater added
don't care about skipping it, so it may be good
to uniform this call to the others in the file.
But this would change the output of the trace and
thus it may be a problem for tools that rely on it. Therefore I propose until further discussion
to just keep it as it is and just fix the pointer arithmetic bug.Add missing void* cast to rx descriptor pointer in order to properly skip the initial 4 bytes of the rx descriptor when passing it to
trace_ath10k_htt_rx_desctrace function.This fixes the pointer arithmetic error detected by Dan Carpenter's static analysis tool.
Quoted 6 lines
Fixes 6bae9de622d3 ("ath10k: abstract htt_rx_desc structure")Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00157-QCARMSWPZ-1
Please submit v2 and CC also linux-wireless, otherwise patchwork won't see the patch.
Signature · 8 lines
https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k