Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'io_uring-6.16-20250718' of git://git.kernel.dk/linux

Pull io_uring fixes from Jens Axboe:

- dmabug offset fix for zcrx

- Fix for the POLLERR connect work around handling

* tag 'io_uring-6.16-20250718' of git://git.kernel.dk/linux:
io_uring/poll: fix POLLERR handling
io_uring/zcrx: disallow user selected dmabuf offset and size

+11 -7
+8 -4
io_uring/net.c
··· 1738 1738 int ret; 1739 1739 bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; 1740 1740 1741 - if (unlikely(req->flags & REQ_F_FAIL)) { 1742 - ret = -ECONNRESET; 1743 - goto out; 1741 + if (connect->in_progress) { 1742 + struct poll_table_struct pt = { ._key = EPOLLERR }; 1743 + 1744 + if (vfs_poll(req->file, &pt) & EPOLLERR) 1745 + goto get_sock_err; 1744 1746 } 1745 1747 1746 1748 file_flags = force_nonblock ? O_NONBLOCK : 0; ··· 1767 1765 * which means the previous result is good. For both of these, 1768 1766 * grab the sock_error() and use that for the completion. 1769 1767 */ 1770 - if (ret == -EBADFD || ret == -EISCONN) 1768 + if (ret == -EBADFD || ret == -EISCONN) { 1769 + get_sock_err: 1771 1770 ret = sock_error(sock_from_file(req->file)->sk); 1771 + } 1772 1772 } 1773 1773 if (ret == -ERESTARTSYS) 1774 1774 ret = -EINTR;
-2
io_uring/poll.c
··· 273 273 return IOU_POLL_REISSUE; 274 274 } 275 275 } 276 - if (unlikely(req->cqe.res & EPOLLERR)) 277 - req_set_fail(req); 278 276 if (req->apoll_events & EPOLLONESHOT) 279 277 return IOU_POLL_DONE; 280 278
+3 -1
io_uring/zcrx.c
··· 76 76 int dmabuf_fd = area_reg->dmabuf_fd; 77 77 int i, ret; 78 78 79 + if (off) 80 + return -EINVAL; 79 81 if (WARN_ON_ONCE(!ifq->dev)) 80 82 return -EFAULT; 81 83 if (!IS_ENABLED(CONFIG_DMA_SHARED_BUFFER)) ··· 108 106 for_each_sgtable_dma_sg(mem->sgt, sg, i) 109 107 total_size += sg_dma_len(sg); 110 108 111 - if (total_size < off + len) { 109 + if (total_size != len) { 112 110 ret = -EINVAL; 113 111 goto err; 114 112 }