Commit 02b8d41c authored by Jens Axboe's avatar Jens Axboe
Browse files

io_uring/rsrc: use kvfree() for the imu cache



Currently anything that requires kvmalloc_flex() for allocations will
not get re-cached, and hence the cache freeing path is correct in that
it always uses kfree() to free the allocated memory. But this seems a
bit fragile as it's something that could get mix should that situation
change, so switch io_free_imu() and io_alloc_cache_free() to use kvfree
as the desctructor.

Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 53262c91
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ static inline void *io_cache_alloc(struct io_alloc_cache *cache, gfp_t gfp)
static inline void io_cache_free(struct io_alloc_cache *cache, void *obj)
{
	if (!io_alloc_cache_put(cache, obj))
		kfree(obj);
		kvfree(obj);
}

#endif
+1 −1
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ bool io_rsrc_cache_init(struct io_ring_ctx *ctx)
void io_rsrc_cache_free(struct io_ring_ctx *ctx)
{
	io_alloc_cache_free(&ctx->node_cache, kfree);
	io_alloc_cache_free(&ctx->imu_cache, kfree);
	io_alloc_cache_free(&ctx->imu_cache, kvfree);
}

static void io_clear_table_tags(struct io_rsrc_data *data)