Skip to content

Commit 770594e

Browse files
isilenceaxboe
authored andcommitted
io_uring/zcrx: warn on freelist violations
The freelist is appropriately sized to always be able to take a free niov, but let's be more defensive and check the invariant with a warning. That should help to catch any double-free issues. Suggested-by: Kai Aizen <[email protected]> Signed-off-by: Pavel Begunkov <[email protected]> Link: https://patch.msgid.link/2f3cea363b04649755e3b6bb9ab66485a95936d5.1776760901.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <[email protected]>
1 parent 4f02cc4 commit 770594e

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

io_uring/zcrx.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,8 @@ static void io_zcrx_return_niov_freelist(struct net_iov *niov)
602602
struct io_zcrx_area *area = io_zcrx_iov_to_area(niov);
603603

604604
guard(spinlock_bh)(&area->freelist_lock);
605+
if (WARN_ON_ONCE(area->free_count >= area->nia.num_niovs))
606+
return;
605607
area->freelist[area->free_count++] = net_iov_idx(niov);
606608
}
607609

0 commit comments

Comments
 (0)