[PATCH v3 0/2] io_uring: Add KASAN support for alloc caches

From: Breno Leitao
Date: Thu Feb 23 2023 - 11:44:25 EST


This patchset enables KASAN for alloc cache buffers. These buffers are
used by apoll and netmsg code path. These buffers will now be poisoned
when not used, so, if randomly touched, a KASAN warning will pop up.

This patchset moves the alloc_cache from using double linked list to single
linked list, so, we do not need to touch the poisoned node when adding
or deleting a sibling node.

Changes from v1 to v2:
* Get rid of an extra "struct io_wq_work_node" variable in
io_alloc_cache_get() (suggested by Pavel Begunkov)
* Removing assignement during "if" checks (suggested by Pavel Begunkov
and Jens Axboe)
* Do not use network structs if CONFIG_NET is disabled (as reported
by kernel test robot)

Changes from v2 to v3:
* Store elem_size in the io_alloc_cache, so, we don't need to pass
the size when getting the cache element.


Breno Leitao (2):
io_uring: Move from hlist to io_wq_work_node
io_uring: Add KASAN support for alloc_caches

include/linux/io_uring_types.h | 3 ++-
io_uring/alloc_cache.h | 30 ++++++++++++++++++------------
io_uring/io_uring.c | 4 ++--
io_uring/net.h | 5 ++++-
4 files changed, 26 insertions(+), 16 deletions(-)

--
2.30.2