[lvc-project] [PATCH net v3] octeon_ep: Add SKB allocation failures handling in __octep_oq_process_rx()
Paolo Abeni
pabeni at redhat.com
Thu Oct 3 12:50:41 MSK 2024
On 9/30/24 07:33, Aleksandr Mishin wrote:
> build_skb() returns NULL in case of a memory allocation failure so handle
> it inside __octep_oq_process_rx() to avoid NULL pointer dereference.
>
> __octep_oq_process_rx() is called during NAPI polling by the driver. If
> skb allocation fails, keep on pulling packets out of the Rx DMA queue: we
> shouldn't break the polling immediately and thus falsely indicate to the
> octep_napi_poll() that the Rx pressure is going down. As there is no
> associated skb in this case, don't process the packets and don't push them
> up the network stack - they are skipped.
>
> The common code with skb and some index manipulations is extracted to make
> the fix more readable and avoid code duplication. Also helper function is
> implemented to unmmap/flush all the fragment buffers used by the dropped
> packet. 'alloc_failures' counter is incremented to mark the skb allocation
> error in driver statistics.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: 37d79d059606 ("octeon_ep: add Tx/Rx processing and interrupt support")
> Suggested-by: Paolo Abeni <pabeni at redhat.com>
> Suggested-by: Simon Horman <horms at kernel.org>
> Signed-off-by: Aleksandr Mishin <amishin at t-argos.ru>
> ---
> A similar situation is present in the __octep_vf_oq_process_rx() of the
> Octeon VF driver. First we want to try the fix on __octep_oq_process_rx().
>
> Compile tested only.
@Marvel folks: it would be great if you could test this patch and report
here, otherwise this is going to be merged with build test only...
Thanks,
Paolo
More information about the lvc-project
mailing list