[PATCH v5] NAK
Baichuan Qi
zghbqbc at gmail.com
Wed Nov 27 22:09:31 PST 2024
Thanks for your reply
The reason I submit this patch is that the current
`ath11k_ce_rx_post_pipe()` NULL pointer check does not ensure
that `dest_ring` is NON-NULL. And it is not clear to show the
filtering of tx ce pipes
> This does not really fix any real issue. Please check ath11k_ce_alloc_pipe()
> where initialization would fail if anyone of pipe->dest_ring and
> pipe->status_ring allocation fails for ce pipe used for Rx.
When the driver is running normally, the results of the
following three are equal:
---
(pipe->dest_ring || pipe->status_ring) // current code
(pipe->dest_ring && pipe->status_ring)
(pipe->dest_ring)
---
However, when some errors occur and `dest_ring` is abnormal,
the OR operation cannot guarantee that the pointer is NON-NULL.
> This will always fail as the caller loops through all the supported ce pipes
> and ce pipes used for Tx will not have either dest_ring or status_ring.
> Please ensure the patch is tested properly.
I tested [PATCH v5] and indeed the wrong return value will lead
to wrong results when the pointer is null.
Please refer to [PATCH v4].
Link: https://lore.kernel.org/ath11k/20241127114310.26085-1-zghbqbc@gmail.com/
Although it does not return an error code, it can ensure that
when an unknown error occurs and causes the status of
`dest_ring` and `status_ring` to be different, the subsequent
code will not access the null pointer, which will only
cause the driver to fall into loops.
Thanks for you read.
Thanks
Baichuan Qi
More information about the ath11k
mailing list