X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=io_uring%2Fkbuf.h;h=3d0cb6b8c1ed2210d0fef27d1b9706f1508ca2d9;hb=refs%2Fheads%2Faccepted%2Ftizen_unified;hp=d14345ef61fc8de071da1f0e54a7ac8d24ee1dd0;hpb=1b66c114d161a457897d269420c74620c032135c;p=platform%2Fkernel%2Flinux-rpi.git diff --git a/io_uring/kbuf.h b/io_uring/kbuf.h index d14345e..3d0cb6b 100644 --- a/io_uring/kbuf.h +++ b/io_uring/kbuf.h @@ -15,6 +15,7 @@ struct io_buffer_list { struct page **buf_pages; struct io_uring_buf_ring *buf_ring; }; + struct rcu_head rcu; }; __u16 bgid; @@ -28,6 +29,8 @@ struct io_buffer_list { __u8 is_mapped; /* ring mapped provided buffers, but mmap'ed by application */ __u8 is_mmap; + /* bl is visible from an RCU point of view for lookup */ + __u8 is_ready; }; struct io_buffer { @@ -51,6 +54,8 @@ int io_provide_buffers(struct io_kiocb *req, unsigned int issue_flags); int io_register_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg); int io_unregister_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg); +void io_kbuf_mmap_list_free(struct io_ring_ctx *ctx); + unsigned int __io_put_kbuf(struct io_kiocb *req, unsigned issue_flags); void io_kbuf_recycle_legacy(struct io_kiocb *req, unsigned issue_flags);