Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

xsk: discard zero length descriptors in Tx path

Descriptors with zero length are not supported by many NICs. To preserve
uniform behavior discard any zero length desc as invvalid desc.

Signed-off-by: Tirthendu Sarkar <tirthendu.sarkar@intel.com>
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/r/20230719132421.584801-10-maciej.fijalkowski@intel.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Tirthendu Sarkar and committed by
Alexei Starovoitov
07428da9 cf24f5a5

+6
+6
net/xdp/xsk_queue.h
··· 140 140 { 141 141 u64 offset = desc->addr & (pool->chunk_size - 1); 142 142 143 + if (!desc->len) 144 + return false; 145 + 143 146 if (offset + desc->len > pool->chunk_size) 144 147 return false; 145 148 ··· 158 155 struct xdp_desc *desc) 159 156 { 160 157 u64 addr = xp_unaligned_add_offset_to_addr(desc->addr); 158 + 159 + if (!desc->len) 160 + return false; 161 161 162 162 if (desc->len > pool->chunk_size) 163 163 return false;