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>master
parent
4f02cc4071
commit
770594e78c
|
|
@ -602,6 +602,8 @@ static void io_zcrx_return_niov_freelist(struct net_iov *niov)
|
|||
struct io_zcrx_area *area = io_zcrx_iov_to_area(niov);
|
||||
|
||||
guard(spinlock_bh)(&area->freelist_lock);
|
||||
if (WARN_ON_ONCE(area->free_count >= area->nia.num_niovs))
|
||||
return;
|
||||
area->freelist[area->free_count++] = net_iov_idx(niov);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue