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

Configure Feed

Select the types of activity you want to include in your feed.

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 <kai@snailsploit.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://patch.msgid.link/2f3cea363b04649755e3b6bb9ab66485a95936d5.1776760901.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Pavel Begunkov and committed by
Jens Axboe
770594e7 4f02cc40

+2
+2
io_uring/zcrx.c
··· 602 602 struct io_zcrx_area *area = io_zcrx_iov_to_area(niov); 603 603 604 604 guard(spinlock_bh)(&area->freelist_lock); 605 + if (WARN_ON_ONCE(area->free_count >= area->nia.num_niovs)) 606 + return; 605 607 area->freelist[area->free_count++] = net_iov_idx(niov); 606 608 } 607 609