linux-stable/net/xdp
Magnus Karlsson a95a4d9b39 xsk: Do not write NULL in SW ring at allocation failure
For the case when xp_alloc_batch() is used but the batched allocation
cannot be used, there is a slow path that uses the non-batched
xp_alloc(). When it fails to allocate an entry, it returns NULL. The
current code wrote this NULL into the entry of the provided results
array (pointer to the driver SW ring usually) and returned. This might
not be what the driver expects and to make things simpler, just write
successfully allocated xdp_buffs into the SW ring,. The driver might
have information in there that is still important after an allocation
failure.

Note that at this point in time, there are no drivers using
xp_alloc_batch() that could trigger this slow path. But one might get
added.

Fixes: 47e4075df3 ("xsk: Batched buffer allocation for the pool")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220328142123.170157-2-maciej.fijalkowski@intel.com
2022-03-28 19:56:28 -07:00
..
Kconfig
Makefile
xdp_umem.c xsk: Use kvcalloc to support large umems 2021-05-25 13:11:50 +02:00
xdp_umem.h
xsk.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-03-23 10:53:49 -07:00
xsk.h xdp: Add proper __rcu annotations to redirect map entries 2021-06-24 19:41:15 +02:00
xsk_buff_pool.c xsk: Do not write NULL in SW ring at allocation failure 2022-03-28 19:56:28 -07:00
xsk_diag.c
xsk_queue.c
xsk_queue.h i40e: xsk: Move tmp desc array from driver to pool 2022-01-27 17:25:32 +01:00
xskmap.c net: Don't include filter.h from net/sock.h 2021-12-29 08:48:14 -08:00