Skip to content

Commit 01464ea

Browse files
isilenceaxboe
authored andcommitted
io_uring/zcrx: move area reg checks into io_import_area
io_import_area() is responsible for importing memory and parsing io_uring_zcrx_area_reg, so move all area reg structure checks into the function. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent d425f13 commit 01464ea

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

io_uring/zcrx.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
#include "zcrx.h"
2727
#include "rsrc.h"
2828

29+
#define IO_ZCRX_AREA_SUPPORTED_FLAGS (IORING_ZCRX_AREA_DMABUF)
30+
2931
#define IO_DMA_ATTR (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_WEAK_ORDERING)
3032

3133
static inline struct io_zcrx_ifq *io_pp_to_ifq(struct page_pool *pp)
@@ -231,6 +233,13 @@ static int io_import_area(struct io_zcrx_ifq *ifq,
231233
{
232234
int ret;
233235

236+
if (area_reg->flags & ~IO_ZCRX_AREA_SUPPORTED_FLAGS)
237+
return -EINVAL;
238+
if (area_reg->rq_area_token)
239+
return -EINVAL;
240+
if (area_reg->__resv2[0] || area_reg->__resv2[1])
241+
return -EINVAL;
242+
234243
ret = io_validate_user_buf_range(area_reg->addr, area_reg->len);
235244
if (ret)
236245
return ret;
@@ -395,8 +404,6 @@ static void io_zcrx_free_area(struct io_zcrx_area *area)
395404
kfree(area);
396405
}
397406

398-
#define IO_ZCRX_AREA_SUPPORTED_FLAGS (IORING_ZCRX_AREA_DMABUF)
399-
400407
static int io_zcrx_append_area(struct io_zcrx_ifq *ifq,
401408
struct io_zcrx_area *area)
402409
{
@@ -413,13 +420,6 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq,
413420
unsigned nr_iovs;
414421
int i, ret;
415422

416-
if (area_reg->flags & ~IO_ZCRX_AREA_SUPPORTED_FLAGS)
417-
return -EINVAL;
418-
if (area_reg->rq_area_token)
419-
return -EINVAL;
420-
if (area_reg->__resv2[0] || area_reg->__resv2[1])
421-
return -EINVAL;
422-
423423
ret = -ENOMEM;
424424
area = kzalloc(sizeof(*area), GFP_KERNEL);
425425
if (!area)

0 commit comments

Comments
 (0)