[ Upstream commit cc5b5d35 ]
In the xdp_umem_assign_dev() path, the xsk code does not
check if a queue for which umem is to be created exists.
It leads to a situation where umem is not assigned to any
Tx/Rx queue of a netdevice, without notifying the stack
about an error. This affects both XDP_SKB and XDP_DRV
modes - in case of XDP_DRV_ZC, queue index is checked by
This patch fixes xsk code, so that in both XDP_SKB and
XDP_DRV mode of AF_XDP, an error is returned when requested
queue index exceedes an existing maximum.
Fixes: c9b47cc1 ("xsk: fix bug when trying to use both copy and zero-copy on one queue id")
Reported-by: Jakub Spizewski <email@example.com>
Signed-off-by: Krzysztof Kazimierczak <firstname.lastname@example.org>
Acked-by: Björn Töpel <email@example.com>
Signed-off-by: Daniel Borkmann <firstname.lastname@example.org>
Signed-off-by: Sasha Levin <email@example.com>