e; 788 void *buf_region; 789 unsigned int i; 790 int ret; 791 792 /* allocate pages for the ring structure */ 793 ring_size = flex_array_size(ring, bufs, bl->nr_entries); 794 ring = kzalloc(ring_size, GFP_KERNEL_ACCOUNT); 795 if (!ring) 796 return -ENOMEM; 797 798 ret = io_create_region_multi_buf(ctx, &bl->region, bl->nr_entries, 799 reg->buf_size); 800 if (ret) { 801 kfree(ring); 802 return ret; 803 } 804 805 /* initialize ring buf entries to point to the buffers */ 806 buf_region = bl->region.ptr; 807 for (i = 0; i < bl->nr_entries; i++) { 808 struct io_uring_buf *buf = &ring->bufs[i]; 809 > 810 buf->addr = (u64)buf_region; 811 buf->len = reg->buf_size; 812 buf->bid = i; 813 814 buf_region += reg->buf_size; 815 } 816 ring->tail = bl->nr_entries; 817 818 bl->buf_ring = ring; 819 820 return 0; 821 } 822 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki[PATCH v2 03/25] io_uring/kbuf: add support for kernel-managed buffer ringskernel test robot undefinedJoanne Koong , miklos@szeredi.hu, axboe@kernel.dk undefined undefined undefined undefined undefined undefined undefined undefined undefined undefinedƒ