)]}'
{
  "log": [
    {
      "commit": "5290dd89cc198d101a651fe1756d505297de0f81",
      "tree": "97a024b23bcc6a1523648698f68e9d370744b5ef",
      "parents": [
        "eed315ffb7b4269cb0e420050712e988a1edf580",
        "cd78157180fc8cfca2431bb31327fa763f9210f2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:31:52 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:31:52 2026 -0600"
      },
      "message": "Merge branch \u0027fixes\u0027\n\nSet of fixes, and a test case for one of the issues.\n\n* fixes:\n  liburing.h: avoid OOL round trip in io_uring_peek_cqe() on empty CQ\n  liburing.h: drop acquire ordering on CQ head load in __io_uring_peek_cqe()\n  src/setup: explicitly request 2MB huge pages\n  src/arch: use sysconf() for page size on aarch64/riscv64 libc builds\n  src/setup: account SQ array in rings_size()\n  src/sanitize: check secondary user pointers as well\n  src/sanitize: initialize the handler table at compile time\n  src/queue: io_uring_wait_cqes_min_timeout() should -EINVAL if unsupported\n  liburing.h: don\u0027t return stale CQE pointer with timeout error\n  src/arch: use prlimit64 for the rlimit syscall wrappers\n  src/setup: account SQ array in the rings region in io_uring_alloc_huge()\n  src/setup: restore ring fd and flags init in io_uring_queue_mmap()\n  test/cq-peek-batch-mixed: add peek-batch test for mixed CQE rings\n  src/queue: handle mixed CQEs in io_uring_peek_batch_cqe()\n  src/register: fix mmap leak in io_uring_resize_rings()\n"
    },
    {
      "commit": "cd78157180fc8cfca2431bb31327fa763f9210f2",
      "tree": "97a024b23bcc6a1523648698f68e9d370744b5ef",
      "parents": [
        "a4d619a2869a1b4390c6da4ee7addad968b330e6"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:06:56 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:15:06 2026 -0600"
      },
      "message": "liburing.h: avoid OOL round trip in io_uring_peek_cqe() on empty CQ\n\nWith the CQ empty, io_uring_peek_cqe() called into __io_uring_get_cqe()\njust to do a second full peek and conclude -EAGAIN, costing a function\ncall, a redundant acquire load of the CQ tail, and the get_data setup\non every poll. That\u0027s wasted work for spin-poll style users.\n\nReturn -EAGAIN directly if the peek found nothing and there\u0027s nothing\nthe kernel could flush to the CQ: no IOPOLL completions to reap, no\noverflown CQEs, and no pending task work. Those cases, and a peek that\nconsumed an internal timeout CQE, still take the slow path as before.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a4d619a2869a1b4390c6da4ee7addad968b330e6",
      "tree": "434c43cc60736aa66f26151201ad258cd8b3c190",
      "parents": [
        "37297be2d260de4418a837f44b30fece8f0f6e13"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:06:03 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:14:54 2026 -0600"
      },
      "message": "liburing.h: drop acquire ordering on CQ head load in __io_uring_peek_cqe()\n\nThe CQ head is only ever written by the application itself, so there\u0027s\nno inter-thread ordering to be had from an acquire load - the ordering\nthat protects the CQE contents is the acquire on the tail load, pairing\nwith the kernel publishing CQEs. The double load_acquire serializes the\nhottest CQ path on weakly ordered architectures, and both\nio_uring_cqe_iter_init() and io_uring_cq_ready() already read the head\nwith a plain load.\n\nEffectively a revert of 81cb9479c8c4 (\"smp_load_acquire(ring-\u003ecq.khead)\nin __io_uring_peek_cqe() for consistent dereferencing\")\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "37297be2d260de4418a837f44b30fece8f0f6e13",
      "tree": "01e3f1f475333fbad636231409bdf163eea01ebb",
      "parents": [
        "284b1a8be2ca2ea546204ed2c501414c89bea48f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:37:02 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:14:40 2026 -0600"
      },
      "message": "src/setup: explicitly request 2MB huge pages\n\nThe huge page allocations assume a 2MB huge page size, but a plain\nMAP_HUGETLB mmap uses the system default hugetlb size. On setups where\nthat\u0027s not 2MB (1GB default on x86, 512MB on 64K page arm64), the\nkernel rounds the mapping up to the default size while liburing thinks\nit\u0027s 2MB - and the later munmap of a partial hugetlb VMA fails with\nEINVAL, silently leaking the entire mapping on every ring teardown.\n\nPass MAP_HUGE_2MB so the mapping matches the assumed size.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "284b1a8be2ca2ea546204ed2c501414c89bea48f",
      "tree": "bcc918e8f0aca4d3f6ba07db8e839cd0a9068e5c",
      "parents": [
        "a0d356e8c42cf81d22a06d0787556ba0c1365523"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:36:36 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:14:31 2026 -0600"
      },
      "message": "src/arch: use sysconf() for page size on aarch64/riscv64 libc builds\n\nThe /proc/self/auxv parsing silently falls back to 4096 if /proc isn\u0027t\nmounted (chroots, minimal containers), which yields a wrong page size\non 16K/64K page kernels and hence broken ring size/offset calculations.\nOnly nolibc builds need the manual auxv parsing, use sysconf() when\nbuilding with a libc like the generic arch code does.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a0d356e8c42cf81d22a06d0787556ba0c1365523",
      "tree": "b6fa81a9eacb012257218e81103868566ab91c6a",
      "parents": [
        "835f6979f82c8385190e6bc74b02af443a02eee8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:35:51 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:14:19 2026 -0600"
      },
      "message": "src/setup: account SQ array in rings_size()\n\nrings_size() never accounted the SQ array, which the kernel places at\nthe tail of the rings allocation. As a result, io_uring_mlock_size()\nunder-reported the required memlock memory by sq_entries * 4 (rounded\nup) for entries \u003e\u003d 1024 - and the pre-5.12 kernels it matters for\nalways have the SQ array. io_uring_memory_size() was similarly short\nfor rings setup without IORING_SETUP_NO_SQARRAY.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "835f6979f82c8385190e6bc74b02af443a02eee8",
      "tree": "e0f5583dc3ce7be2f77bd2bc813764ee19cf823f",
      "parents": [
        "107b1498fa79eab005485dd879ae7a9c128c5f7d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:35:34 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:14:12 2026 -0600"
      },
      "message": "src/sanitize: check secondary user pointers as well\n\nSeveral opcodes carry a second (or third) user pointer that was never\nchecked: the newpath/linkpath of RENAMEAT/LINKAT/SYMLINKAT, the\nopen_how of OPENAT2, the value pointer of the xattr ops, the addrlen\npointer of ACCEPT, and the destination address of SEND_ZC - all in\n-\u003eaddr2. Check those too. Also check the full iovec array in\nliburing_sanitize_iovecs() rather than just its first byte.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "107b1498fa79eab005485dd879ae7a9c128c5f7d",
      "tree": "6c0b50655d0454b547a96d7fdc42413889504233",
      "parents": [
        "80f35586d3298866cf8d1008bc6d83c02255bd82"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:34:44 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:13:59 2026 -0600"
      },
      "message": "src/sanitize: initialize the handler table at compile time\n\nThe handler table was filled lazily on first submit with plain stores,\nwith a plain bool guarding initialization. Two threads doing their\nfirst submit on separate rings could race: the flag store may become\nvisible before the table stores, and the second thread would then call\na NULL handler. Make the table const and initialized at compile time,\nwhich also stops both symbols leaking into the global namespace.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "80f35586d3298866cf8d1008bc6d83c02255bd82",
      "tree": "306ba4553258fd1c25ece7eba82b5b9584ea153b",
      "parents": [
        "7e01907b4a9d46da7215269949db66384657e510"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:33:43 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:13:34 2026 -0600"
      },
      "message": "src/queue: io_uring_wait_cqes_min_timeout() should -EINVAL if unsupported\n\nIf the kernel doesn\u0027t support IORING_FEAT_MIN_TIMEOUT, the min wait\ntime was silently dropped and the call degraded into a plain\nio_uring_wait_cqes(). The man page documents -EINVAL for this case,\nand io_uring_submit_and_wait_min_timeout() already returns it.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7e01907b4a9d46da7215269949db66384657e510",
      "tree": "75ac39f8dc98dabc7d08d89121cfb0a6bd6b19f2",
      "parents": [
        "80664fa659531d1f1a7f52fc80e0a69fe99f0845"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:33:27 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:13:11 2026 -0600"
      },
      "message": "liburing.h: don\u0027t return stale CQE pointer with timeout error\n\nOn kernels without IORING_FEAT_EXT_ARG, when the internal timeout CQE\ncompletes with res \u003c 0, io_uring_skip_cqe() sets the error, advances\nthe CQ head past the CQE, and returns false. __io_uring_peek_cqe()\nwould then break out with cqe still pointing at the released slot, and\nthe get_cqe path stored that to *cqe_ptr - handing the application\n-ETIME along with a pointer to a CQE the kernel is free to overwrite.\nThe pre-refactor code cleared the CQE pointer in this case.\n\nFixes: 9cecbdb6092c (\"Add support for IORING_SETUP_CQE_MIXED\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "80664fa659531d1f1a7f52fc80e0a69fe99f0845",
      "tree": "4b658e5f0e7657928339028eb82a4b8e2018be6b",
      "parents": [
        "692585d63b77417d184356c902c6447605eb9a64"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:33:11 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:13:06 2026 -0600"
      },
      "message": "src/arch: use prlimit64 for the rlimit syscall wrappers\n\nThe raw __NR_getrlimit/__NR_setrlimit syscalls use the legacy kernel\nstruct rlimit, which has 32-bit fields on i386 - but liburing is built\nwith -D_FILE_OFFSET_BITS\u003d64, where the userspace struct rlimit carries\n64-bit fields. On i386 nolibc builds, increase_rlimit_nofile() would\nthus read garbage limits and could write garbage back via setrlimit,\nbreaking the EMFILE fallback in io_uring_register_files().\n\nUse __NR_prlimit64, which takes struct rlimit64 on every arch, matching\nthe 64-bit userspace struct.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "692585d63b77417d184356c902c6447605eb9a64",
      "tree": "95d46d1e9ec8bac0ae7f227fadb18575b9b6f80a",
      "parents": [
        "435e6b286e40552f5c07f86a098e410c3670b54e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:32:00 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:12:59 2026 -0600"
      },
      "message": "src/setup: account SQ array in the rings region in io_uring_alloc_huge()\n\nThe SQ array bytes were added to the sqes region, but the kernel places\nthe SQ array at the tail of the rings region for IORING_SETUP_NO_MMAP.\nThat left the rings region budget short by the SQ array size, so for\nsq_entries \u003e\u003d 1024 the kernel would pin (and liburing\u0027s SQ array init\nwould write) beyond the rings budget - and beyond the returned mem_used,\nwhich io_uring_queue_init_mem() callers use to pack multiple rings into\none buffer, silently corrupting the previous ring. Only reachable via\nthe NO_SQARRAY fallback, i.e. kernels that have NO_MMAP but not\nNO_SQARRAY support.\n\nAccount the SQ array in the rings region, matching the kernel layout.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "435e6b286e40552f5c07f86a098e410c3670b54e",
      "tree": "c77cf30c55496fdbdbcecf3e8ef27ba216ccd180",
      "parents": [
        "705bf6828b7174a3acd7fd5f974d3f26cd9ecb38"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:31:42 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:12:52 2026 -0600"
      },
      "message": "src/setup: restore ring fd and flags init in io_uring_queue_mmap()\n\nCommit 6102a6e848b2 dropped the assignment of ring-\u003eflags and the ring\nfds from io_uring_queue_mmap(). It\u0027s an exported and documented API for\napplications that call io_uring_setup(2) themselves, and such users\nended up with a ring that had ring_fd/enter_ring_fd set to 0, where\nio_uring_submit() would target stdin and io_uring_queue_exit() would\nclose fd 0. The internal caller sets the fields up after the call,\nhence liburing itself didn\u0027t notice.\n\nRestore the assignments, and also set -\u003efeatures which is needed for\ncorrect CQE handling these days.\n\nFixes: 6102a6e848b2 (\"setup: add support for IORING_SETUP_NO_MMAP\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "705bf6828b7174a3acd7fd5f974d3f26cd9ecb38",
      "tree": "68d0117a1d0a1d4dc790130a2514aa3d46ee9b9f",
      "parents": [
        "4279ae373ae2c7d87bec24f6389431964ac29f1e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:41:37 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 13:12:45 2026 -0600"
      },
      "message": "test/cq-peek-batch-mixed: add peek-batch test for mixed CQE rings\n\nTest io_uring_peek_batch_cqe() on an IORING_SETUP_CQE_MIXED ring:\nmixed 16b/32b batches must return pointers to CQE starts, and the\nskip entry the kernel posts at ring wrap must stop the batch when\nmid-window and be consumed when at the CQ head.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4279ae373ae2c7d87bec24f6389431964ac29f1e",
      "tree": "b75f33e85d4ea6ae5ceca115b32033a5acde9b6f",
      "parents": [
        "fb2a15dcfb450b8e6cf8b594966c116dcaeeac9a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:31:23 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:31:23 2026 -0600"
      },
      "message": "src/queue: handle mixed CQEs in io_uring_peek_batch_cqe()\n\nThe batch peek returned one pointer per 16b CQ slot. On a ring setup\nwith IORING_SETUP_CQE_MIXED, a 32b CQE occupies two slots, so the batch\nwould return a pointer into the middle of such a CQE, and it would also\nhand skip (filler) entries to the application.\n\nWalk the CQ by actual CQE size for mixed rings, consuming skip entries\nat the head and stopping the batch if one is encountered further in.\nThe returned count is the number of CQEs, so on mixed rings the\napplication must release them by their summed io_uring_cqe_nr() rather\nthan the count.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "fb2a15dcfb450b8e6cf8b594966c116dcaeeac9a",
      "tree": "d58aab773da2f86dd272c36add4a52d7224893b2",
      "parents": [
        "eed315ffb7b4269cb0e420050712e988a1edf580"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:30:58 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 12:30:58 2026 -0600"
      },
      "message": "src/register: fix mmap leak in io_uring_resize_rings()\n\nCommit ee133f073c3c reintroduced a second io_uring_mmap() call into\nring-\u003esq/cq, on top of the probe mapping into the local sq/cq that\ncommit c077e6ada71a added. The probe mappings were then never unmapped,\nleaking a full set of ring mappings on every successful resize. The\nfailure path also called io_uring_queue_exit() internally without\nmarking the ring fd as closed, causing the caller\u0027s subsequent\nio_uring_queue_exit() to double-close the fd.\n\nMap the new rings once, into local structures, and only assign them to\nthe ring once the mapping has succeeded. If the mapping fails, the\nresize has still happened in the kernel and the ring can\u0027t be used for\nIO anymore, but the old mappings remain intact and the application can\ncleanly call io_uring_queue_exit() as usual.\n\nFixes: ee133f073c3c (\"src/register: clean up ring state on failed resize mmap\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "eed315ffb7b4269cb0e420050712e988a1edf580",
      "tree": "19f6b4ff06ec77dcb2c5368e4b5ec736485ed3f6",
      "parents": [
        "7a8cb83f8d48037cc0ed34bdb7d5d26202de1042"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:38:01 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:38:01 2026 -0600"
      },
      "message": "test/min-timeout-wait: tweak max allowed time when having events\n\nIt really should not wait at all, but if we allow 100ms of wait,\nthen a bit of slack outside of 1ms is fine. This can happen on UP\nsystems where we get preempted, for example. Assume up to 5msec\nis totally fine.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7a8cb83f8d48037cc0ed34bdb7d5d26202de1042",
      "tree": "fcf9d1fe47d54583f0b3d5c280b808028bf93a90",
      "parents": [
        "6a31331a081a2c932ea48f9aeb86c24ea3065a99",
        "a3c6bcd5e60e80519391a8a919db25548346a804"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:24:50 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:24:50 2026 -0600"
      },
      "message": "Merge branch \u0027register-zcrx-ctrl-and-query\u0027 of https://github.com/wokron/liburing\n\n* \u0027register-zcrx-ctrl-and-query\u0027 of https://github.com/wokron/liburing:\n  man: add io_uring_register_query.3 man page\n  src/register: add io_uring_register_query() helper\n  man: add io_uring_register_zcrx_ctrl.3 man page\n  src/register: add io_uring_register_zcrx_ctrl() helper\n"
    },
    {
      "commit": "6a31331a081a2c932ea48f9aeb86c24ea3065a99",
      "tree": "da1c0d18bb84edfc186aa03632123ce08e061d1f",
      "parents": [
        "b735b3b52965c5a3427fec96d0921c5e429c1d4f",
        "ee133f073c3c1017ea110659e77e1b92dd49eeea"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:24:23 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:24:23 2026 -0600"
      },
      "message": "Merge branch \u0027fix/register-resize-mmap-cleanup\u0027 of https://github.com/bohmiiidd/liburing\n\n* \u0027fix/register-resize-mmap-cleanup\u0027 of https://github.com/bohmiiidd/liburing:\n  src/register: clean up ring state on failed resize mmap\n"
    },
    {
      "commit": "b735b3b52965c5a3427fec96d0921c5e429c1d4f",
      "tree": "9a4d9c062a099c23c4eb940f3c5baa63f8f67148",
      "parents": [
        "53034ce05011448f72051b402e4be11c077a7fc5",
        "e8b85a24c6b62368bb34eed876e41bfcd1b1f235"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:23:55 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:23:55 2026 -0600"
      },
      "message": "Merge branch \u0027proxy-free-cd1-buckets\u0027 of https://github.com/rootvector2/liburing\n\n* \u0027proxy-free-cd1-buckets\u0027 of https://github.com/rootvector2/liburing:\n  examples/proxy: free cd[1] stat buckets in handle_close\n"
    },
    {
      "commit": "53034ce05011448f72051b402e4be11c077a7fc5",
      "tree": "8772f777a8564d3b69defc7922e8e3f9b45e5ce4",
      "parents": [
        "2e042cfadbbec22f8986e44800ed0421c96cb556",
        "2401be9668c4e51b31543ef5303eb90f5fb531dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:23:20 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:23:20 2026 -0600"
      },
      "message": "Merge branch \u0027link-cp-aligned-iodata\u0027 of https://github.com/rootvector2/liburing\n\n* \u0027link-cp-aligned-iodata\u0027 of https://github.com/rootvector2/liburing:\n  examples/link-cp: avoid misaligned struct io_data access\n"
    },
    {
      "commit": "2e042cfadbbec22f8986e44800ed0421c96cb556",
      "tree": "3a4632779bef1d7c8988edd2264228fd3da26a4c",
      "parents": [
        "c45f10367876ff0bfa6318e6d29c01db27c2e8a0",
        "afff59449d35c4000aecb1e9c690afed784134f8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:21:56 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:21:56 2026 -0600"
      },
      "message": "Merge branch \u0027opcode-supported-negative-op\u0027 of https://github.com/rootvector2/liburing\n\n* \u0027opcode-supported-negative-op\u0027 of https://github.com/rootvector2/liburing:\n  liburing.h: reject negative op in io_uring_opcode_supported\n"
    },
    {
      "commit": "c45f10367876ff0bfa6318e6d29c01db27c2e8a0",
      "tree": "292cd242aa909dcbf4b76c8ea9ee6fb3b1f936ae",
      "parents": [
        "fc9119e36cdf758b70143356a2b9f0f349f832ee",
        "237976bdafba01efb9e05508f0724fbad95b6195"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:21:18 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:21:18 2026 -0600"
      },
      "message": "Merge branch \u0027udp-buffer-shift-size_t\u0027 of https://github.com/rootvector2/liburing\n\n* \u0027udp-buffer-shift-size_t\u0027 of https://github.com/rootvector2/liburing:\n  examples/io_uring-udp: compute buffer size and offset in size_t\n"
    },
    {
      "commit": "fc9119e36cdf758b70143356a2b9f0f349f832ee",
      "tree": "76a2237217a1b6b5e937e1aa0e70849594b0a19d",
      "parents": [
        "e93eebeb6ac869617076090f46fbc22e96f931cb",
        "d9fe09c9cbcbe74bd480ccd3592b925de485c4d1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:20:36 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:20:36 2026 -0600"
      },
      "message": "Merge branch \u0027ucontext-cp-coro-uaf\u0027 of https://github.com/rootvector2/liburing\n\n* \u0027ucontext-cp-coro-uaf\u0027 of https://github.com/rootvector2/liburing:\n  ucontext-cp: don\u0027t free coroutine stack and context in use\n"
    },
    {
      "commit": "e93eebeb6ac869617076090f46fbc22e96f931cb",
      "tree": "626affd6ed3e6b52c359704326fd79ce5978c3a7",
      "parents": [
        "ca5d6a86bde2b40306897f5a4e41c81bb2db7406",
        "8249dbd2ad66acaa475bc4aa86a504cc0a26558d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:20:00 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:20:00 2026 -0600"
      },
      "message": "Merge branch \u0027fix-conn-unreach\u0027 of https://github.com/mannkafai/liburing\n\n* \u0027fix-conn-unreach\u0027 of https://github.com/mannkafai/liburing:\n  test/conn-unreach: Accept -ENOTCONN from shutdown on unconnected socket\n"
    },
    {
      "commit": "ca5d6a86bde2b40306897f5a4e41c81bb2db7406",
      "tree": "8253f21f3a2256c9111ead20daba9b790ec34c1c",
      "parents": [
        "269ad6789bd46b5ec095d7c4141c1acfeef8ea73",
        "864cebd7fad552535d8aef20e455b2b580413d98"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:19:26 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 09:19:26 2026 -0600"
      },
      "message": "Merge branch \u0027fix-fallocate\u0027 of https://github.com/mannkafai/liburing\n\n* \u0027fix-fallocate\u0027 of https://github.com/mannkafai/liburing:\n  test/fallocate: Accept -EOPNOTSUPP as unsupported\n"
    },
    {
      "commit": "269ad6789bd46b5ec095d7c4141c1acfeef8ea73",
      "tree": "e00ce540cd33218c81f5d31c26bdf756c033571e",
      "parents": [
        "a75935ed2f564da260ef13762ccd48315783224b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 08:59:22 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 08:59:22 2026 -0600"
      },
      "message": "test/min-timeout: move ring exit post pipe closing\n\nIf we close the pipes first, the actual exit should be idle and not\ncause any context switch perturbations for subsequent tests.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a75935ed2f564da260ef13762ccd48315783224b",
      "tree": "2a8b22a761a395e21591cbed4209a41070c001ab",
      "parents": [
        "299dbc59471935770eb8cea642760fa7dfb72bfc"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 08:36:22 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jun 09 08:36:22 2026 -0600"
      },
      "message": "test/recv-bundle-buf-len: add truncated bundle buffer test case\n\nTest that the truncation no longer happens, and that a correctly\ntruncated case still works even when the buffer length itself\nisn\u0027t modified.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "299dbc59471935770eb8cea642760fa7dfb72bfc",
      "tree": "e7cea190257489c9301fa9c6d908ba751b00e87d",
      "parents": [
        "e6852bc031d4f1036fd4b3fd40feeac579bbff90",
        "62d781dd71d6defcf29fea96e4b057e7de991c28"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Jun 06 15:39:15 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Jun 06 15:39:15 2026 -0600"
      },
      "message": "Merge branch \u0027min_timeout_fix\u0027 of https://github.com/chrehrhardt/liburing\n\n* \u0027min_timeout_fix\u0027 of https://github.com/chrehrhardt/liburing:\n  test: min-timeout: Call io_uring_queue_exit\n"
    },
    {
      "commit": "e6852bc031d4f1036fd4b3fd40feeac579bbff90",
      "tree": "d86b0dcd12a4acb6c71358b722ac972c2a043740",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Jun 06 09:35:57 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Jun 06 09:35:57 2026 -0600"
      },
      "message": "man/io_uring_prep_recv.3: mention \u0027length\u0027 cap\n\nBy default, receive multishot will keep transferring as much data as\nit can from a socket, when it has been triggered because data is\navailable to transfer. If a lot of sockets are doing receives on the\nring, this can lead to fairness issues. The work-around is to cap the\nreceive side for each receive multishot, which the kernel does support.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "62d781dd71d6defcf29fea96e4b057e7de991c28",
      "tree": "f0034fe4f3e318c9a3b385b1f31e3e5de63c0f37",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "Christian A. Ehrhardt",
        "email": "lk@c--e.de",
        "time": "Sat Jun 06 09:40:44 2026 +0200"
      },
      "committer": {
        "name": "Christian A. Ehrhardt",
        "email": "lk@c--e.de",
        "time": "Sat Jun 06 09:48:04 2026 +0200"
      },
      "message": "test: min-timeout: Call io_uring_queue_exit\n\nCall io_uring_queue_exit after each test to avoid request\ncompletions after the end of the test.\n\nSigned-off-by: Christian A. Ehrhardt \u003clk@c--e.de\u003e\n"
    },
    {
      "commit": "864cebd7fad552535d8aef20e455b2b580413d98",
      "tree": "a45e2d931567e13a6f7132b22796ce045cddfefb",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "KaFai Wan",
        "email": "kafai.wan@linux.dev",
        "time": "Sat Jun 06 15:00:25 2026 +0800"
      },
      "committer": {
        "name": "KaFai Wan",
        "email": "kafai.wan@linux.dev",
        "time": "Sat Jun 06 15:00:25 2026 +0800"
      },
      "message": "test/fallocate: Accept -EOPNOTSUPP as unsupported\n\nWhen fallocate is not supported, return -EOPNOTSUPP instead of -EINVAL.\nTreat both as skip conditions.\n\nSigned-off-by: KaFai Wan \u003ckafai.wan@linux.dev\u003e\n"
    },
    {
      "commit": "8249dbd2ad66acaa475bc4aa86a504cc0a26558d",
      "tree": "152c79391243735aa748d20faaf2f420be5c2f53",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "KaFai Wan",
        "email": "kafai.wan@linux.dev",
        "time": "Sat Jun 06 14:33:03 2026 +0800"
      },
      "committer": {
        "name": "KaFai Wan",
        "email": "kafai.wan@linux.dev",
        "time": "Sat Jun 06 14:33:03 2026 +0800"
      },
      "message": "test/conn-unreach: Accept -ENOTCONN from shutdown on unconnected socket\n\nWhen the host has no route to the unreachable address (e.g., only\nloopback interface is up), connect never completes, and the subsequent\nshutdown(SHUT_RDWR) may return -ENOTCONN from the kernel.\n\nRelax the check to accept both 0 and -ENOTCONN as valid results.\n\nSigned-off-by: KaFai Wan \u003ckafai.wan@linux.dev\u003e\n"
    },
    {
      "commit": "d9fe09c9cbcbe74bd480ccd3592b925de485c4d1",
      "tree": "88fff78939531933e24c702d001495ffe73377f9",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Thu Jun 04 18:42:57 2026 +0530"
      },
      "committer": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Thu Jun 04 18:42:57 2026 +0530"
      },
      "message": "ucontext-cp: don\u0027t free coroutine stack and context in use\n\ncopy_file_wrapper() runs as a makecontext() coroutine on the stack\npointed to by pctx-\u003estack_buf. On completion it freed stack_buf and\npctx, then called swapcontext(\u0026pctx-\u003ectx_fnew, \u0026pctx-\u003ectx_main). That\nswap saves into and loads from the just-freed pctx while still running\non the freed stack, so the final switch back to main is a\nuse-after-free.\n\nDrop the two frees from the coroutine and reclaim stack_buf and pctx\nin main()\u0027s event loop once the coroutine has finished, detected via\nthe completion counter. A coroutine only completes in the event loop,\nsince the setup loop always yields at the first await_readv.\n\nSigned-off-by: rootvector2 \u003cdxbnaveed.k@gmail.com\u003e\n"
    },
    {
      "commit": "237976bdafba01efb9e05508f0724fbad95b6195",
      "tree": "682aff4313033a0a103de8821e1d3afc5ed2cafe",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Tue Jun 02 01:16:26 2026 +0530"
      },
      "committer": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Tue Jun 02 01:16:26 2026 +0530"
      },
      "message": "examples/io_uring-udp: compute buffer size and offset in size_t\n\nbuffer_size() and get_buffer() shift by ctx-\u003ebuf_shift, which comes from\nthe -b option (log2 of the buffer size), but evaluate 1U \u003c\u003c buf_shift and\nidx \u003c\u003c buf_shift in 32-bit before widening to size_t / a pointer. For a\nshift \u003e\u003d 32 that is undefined behavior, and even otherwise the result\ntruncates to 32 bits, so buffer_size() returns a wrong value and\nget_buffer() forms an out-of-range pointer. Building with\n-fsanitize\u003dundefined and running with -b 40 reports\n\n  runtime error: shift exponent 40 is too large for 32-bit type\n\nand buffer_size() returns 256 instead of 2^40. Do both shifts in size_t.\n\nSigned-off-by: rootvector2 \u003cdxbnaveed.k@gmail.com\u003e\n"
    },
    {
      "commit": "afff59449d35c4000aecb1e9c690afed784134f8",
      "tree": "a7cc1020df36bf2e6994fb7f8569a22e470f86d3",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Mon Jun 01 20:02:31 2026 +0530"
      },
      "committer": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Mon Jun 01 20:02:31 2026 +0530"
      },
      "message": "liburing.h: reject negative op in io_uring_opcode_supported\n\nio_uring_opcode_supported() only checks the upper bound (op \u003e last_op)\nbefore indexing p-\u003eops[op]. op is a signed int, so a negative value\nslips past the guard and p-\u003eops[op] is read from before the probe\nallocation. struct io_uring_probe is 16 bytes, so e.g. op \u003d\u003d -3 reads\n8 bytes ahead of the buffer, an out-of-bounds read that ASan flags as\na heap-buffer-overflow.\n\nCheck op \u003c 0 alongside the existing upper-bound test.\n\nSigned-off-by: rootvector2 \u003cdxbnaveed.k@gmail.com\u003e\n"
    },
    {
      "commit": "2401be9668c4e51b31543ef5303eb90f5fb531dd",
      "tree": "25e717e8eeee6c579757a14d25e6bacbf626001e",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Sun May 31 17:55:51 2026 +0530"
      },
      "committer": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Sun May 31 17:55:51 2026 +0530"
      },
      "message": "examples/link-cp: avoid misaligned struct io_data access\n\nqueue_rw_pair() placed struct io_data at ptr + size, so any block size\nnot a multiple of 8 (the partial tail block of a copy) accessed the\nio_data members through a misaligned pointer, which is undefined\nbehavior and faults under -fsanitize\u003dalignment. Allocate the struct\nfirst and point iov_base at data + 1, matching io_uring-cp.c, and free\ndata directly.\n\nSigned-off-by: rootvector2 \u003cdxbnaveed.k@gmail.com\u003e\n"
    },
    {
      "commit": "e8b85a24c6b62368bb34eed876e41bfcd1b1f235",
      "tree": "32c66c2956ca8651d779947da5dd24d2f137572c",
      "parents": [
        "a33a770d8379978660036251e14710c6ee8a3d34"
      ],
      "author": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Sat May 30 00:40:59 2026 +0530"
      },
      "committer": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Sat May 30 00:40:59 2026 +0530"
      },
      "message": "examples/proxy: free cd[1] stat buckets in handle_close\n\nWhen extended stats are enabled (-x), the per-connection setup allocates\nrcv_bucket and snd_bucket for both directions, c-\u003ecd[0] and c-\u003ecd[1].\nhandle_close() only frees the cd[0] pair, so the two cd[1] arrays leak on\nevery connection teardown. Free them too, mirroring the cd[0] cleanup.\n\nSigned-off-by: rootvector2 \u003cdxbnaveed.k@gmail.com\u003e\n"
    },
    {
      "commit": "a33a770d8379978660036251e14710c6ee8a3d34",
      "tree": "169e4e9c2ce3197fc5e64376d1a164fd4403d69c",
      "parents": [
        "63bf649c4ee2935a2200ab823f89fd2a47284530",
        "06161b8f4c4ad4b7ed3e2774dba7585288614e09"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 28 06:43:37 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 28 06:43:37 2026 -0600"
      },
      "message": "Merge branch \u0027ringbuf-read-fname-bound\u0027 of https://github.com/rootvector2/liburing\n\n* \u0027ringbuf-read-fname-bound\u0027 of https://github.com/rootvector2/liburing:\n  test/ringbuf-read: bound strcpy of argv[1] into fname\n"
    },
    {
      "commit": "06161b8f4c4ad4b7ed3e2774dba7585288614e09",
      "tree": "169e4e9c2ce3197fc5e64376d1a164fd4403d69c",
      "parents": [
        "63bf649c4ee2935a2200ab823f89fd2a47284530"
      ],
      "author": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Thu May 28 14:39:47 2026 +0530"
      },
      "committer": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Thu May 28 14:39:47 2026 +0530"
      },
      "message": "test/ringbuf-read: bound strcpy of argv[1] into fname\n\nmain() copies argv[1] into the 80-byte fname[] stack buffer with an\nunbounded strcpy. Passing a path longer than 79 bytes overflows the\nbuffer and clobbers the surrounding frame, e.g.\n\n  $ ./ringbuf-read $(python3 -c \u0027print(\"A\"*256)\u0027)\n\ntriggers a stack-buffer-overflow under -fsanitize\u003daddress. Replace\nthe strcpy with snprintf() bounded by sizeof(fname).\n\nSigned-off-by: rootvector2 \u003cdxbnaveed.k@gmail.com\u003e\n"
    },
    {
      "commit": "63bf649c4ee2935a2200ab823f89fd2a47284530",
      "tree": "e0840a0c4cf39cf2d8778da2c24cd0e32ccac1c0",
      "parents": [
        "40999f52c668b0c32dff712e3dfa1ace6c9e37c4",
        "19903c3d926a5b58f2d6a01411d4cac5bfe5b700"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue May 26 16:31:43 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue May 26 16:31:43 2026 -0600"
      },
      "message": "Merge branch \u0027fix/submit-and-wait-reg-sigsegv\u0027 of https://github.com/XananasX7/liburing\n\n* \u0027fix/submit-and-wait-reg-sigsegv\u0027 of https://github.com/XananasX7/liburing:\n  queue: fix NULL deref in _io_uring_get_cqe() for EXT_ARG_REG path\n"
    },
    {
      "commit": "19903c3d926a5b58f2d6a01411d4cac5bfe5b700",
      "tree": "e0840a0c4cf39cf2d8778da2c24cd0e32ccac1c0",
      "parents": [
        "40999f52c668b0c32dff712e3dfa1ace6c9e37c4"
      ],
      "author": {
        "name": "XananasX",
        "email": "cihbank069@gmail.com",
        "time": "Tue May 26 22:06:19 2026 +0000"
      },
      "committer": {
        "name": "XananasX",
        "email": "cihbank069@gmail.com",
        "time": "Tue May 26 22:06:19 2026 +0000"
      },
      "message": "queue: fix NULL deref in _io_uring_get_cqe() for EXT_ARG_REG path\n\nWhen io_uring_submit_and_wait_reg() is used, data-\u003earg holds a register\noffset cast to void *, not a pointer to io_uring_getevents_arg. If no CQE\nis available on the first pass, the looped \u0026\u0026 has_ts branch dereferences\ndata-\u003earg as a struct pointer, which causes a segfault.\n\nFix this by checking IORING_ENTER_EXT_ARG_REG in get_flags before the\ndereference. For the registered-wait path the kernel handles the timeout,\nso return -ETIME directly without touching data-\u003earg.\n\nFixes #1567.\nSigned-off-by: XananasX \u003ccihbank069@gmail.com\u003e\n"
    },
    {
      "commit": "ee133f073c3c1017ea110659e77e1b92dd49eeea",
      "tree": "9a937e2be06fca6874ef66ec18d99b4809e1732a",
      "parents": [
        "40999f52c668b0c32dff712e3dfa1ace6c9e37c4"
      ],
      "author": {
        "name": "Ahmed Abdelmoemen",
        "email": "ahmedabdelmoumen05@gmail.com",
        "time": "Thu May 14 14:31:44 2026 +0100"
      },
      "committer": {
        "name": "Ahmed Abdelmoemen",
        "email": "ahmedabdelmoumen05@gmail.com",
        "time": "Tue May 19 14:25:32 2026 +0100"
      },
      "message": "src/register: clean up ring state on failed resize mmap\n\nIf io_uring_resize_rings() succeeds in the kernel but the subsequent\nmmap call fails, sq/cq may hold stale or error-encoded pointers such\nas ring_ptr \u003d (void *)-ENOMEM.  A later call to io_uring_queue_exit()\nwould pass these to munmap, resulting in undefined behaviour.\n\nZero out sq and cq before calling io_uring_queue_exit() so that the\ncleanup path is safe regardless of which mappings were established.\n\nFixes: https://github.com/axboe/liburing/issues/1574\nSigned-off-by: Ahmed Abdelmoemen \u003cahmedabdelmoumen05@gmail.com\u003e\n"
    },
    {
      "commit": "a3c6bcd5e60e80519391a8a919db25548346a804",
      "tree": "ace67435504066aa3b22bad73770106cb53c69d3",
      "parents": [
        "e3242e33547926c92617be55aa7a7f23baf6db0d"
      ],
      "author": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Thu Mar 26 14:54:10 2026 +0800"
      },
      "committer": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Tue May 19 20:26:46 2026 +0800"
      },
      "message": "man: add io_uring_register_query.3 man page\n\nAdd documentation for io_uring_register_query() function, which\nprovide a unified interface for querying io_uring capabilities and\nfeature support.\n\nSigned-off-by: Yitang Yang \u003cyi1tang.yang@gmail.com\u003e\n"
    },
    {
      "commit": "e3242e33547926c92617be55aa7a7f23baf6db0d",
      "tree": "022c6a780ab10f88330b0789f33edd79d03a3511",
      "parents": [
        "8af06c9ec5cd0940457b9cf18a4a99e99aa6e93a"
      ],
      "author": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Wed Mar 25 10:49:45 2026 +0800"
      },
      "committer": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Tue May 19 20:26:22 2026 +0800"
      },
      "message": "src/register: add io_uring_register_query() helper\n\nAdd wrapper function for IORING_REGISTER_QUERY. This helper\nmake the query API easier to use from FFI.\n\nSigned-off-by: Yitang Yang \u003cyi1tang.yang@gmail.com\u003e\n"
    },
    {
      "commit": "8af06c9ec5cd0940457b9cf18a4a99e99aa6e93a",
      "tree": "4f7a4b9cc461768eb443de641a178ed79d6ade25",
      "parents": [
        "af80c9fa38fd3210474fbb3d564f83a86f348212"
      ],
      "author": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Thu Mar 26 14:44:12 2026 +0800"
      },
      "committer": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Tue May 19 20:25:42 2026 +0800"
      },
      "message": "man: add io_uring_register_zcrx_ctrl.3 man page\n\nAdd documentation for io_uring_register_zcrx_ctrl() function, which\nprovides control operations for managing zero-copy receive contexts\nthat were previously registered via io_uring_register_ifq().\n\nSigned-off-by: Yitang Yang \u003cyi1tang.yang@gmail.com\u003e\n"
    },
    {
      "commit": "af80c9fa38fd3210474fbb3d564f83a86f348212",
      "tree": "859004c918194eb3491b6801218964c8df9150eb",
      "parents": [
        "9d707e2b7f1f56158921ec7d45fcecbf5eb6222f"
      ],
      "author": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Wed Mar 25 10:35:01 2026 +0800"
      },
      "committer": {
        "name": "Yitang Yang",
        "email": "yi1tang.yang@gmail.com",
        "time": "Tue May 19 20:25:42 2026 +0800"
      },
      "message": "src/register: add io_uring_register_zcrx_ctrl() helper\n\nIORING_REGISTER_ZCRX_CTRL has been synced to liburing without a\nhelper. Add io_uring_register_zcrx_ctrl() to wrap it.\n\nThis helper handles registered ring fd cases via do_register() and\nprovides easier access for FFI bindings.\n\nSigned-off-by: Yitang Yang \u003cyi1tang.yang@gmail.com\u003e\n"
    },
    {
      "commit": "40999f52c668b0c32dff712e3dfa1ace6c9e37c4",
      "tree": "c8f8bcde5c8ee3923d480169ece3fb8c300ef9a7",
      "parents": [
        "9d707e2b7f1f56158921ec7d45fcecbf5eb6222f",
        "6019e550ed3202f0f112bacb4d0cc7d7c2c52ee6"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon May 18 10:05:55 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon May 18 10:05:55 2026 -0600"
      },
      "message": "Merge branch \u0027fix/transactional-ring-resize-remap\u0027 of https://github.com/uwezkhan/liburing\n\n* \u0027fix/transactional-ring-resize-remap\u0027 of https://github.com/uwezkhan/liburing:\n  tests: add regression test for failed mmap remap on resize\n  resize: preserve old ring state on failed mmap remap\n"
    },
    {
      "commit": "6019e550ed3202f0f112bacb4d0cc7d7c2c52ee6",
      "tree": "c8f8bcde5c8ee3923d480169ece3fb8c300ef9a7",
      "parents": [
        "c077e6ada71acb12c90eeb68c3299741c9b1c98b"
      ],
      "author": {
        "name": "uwezkhan06",
        "email": "uwezkhan053@gmail.com",
        "time": "Mon May 18 21:22:41 2026 +0530"
      },
      "committer": {
        "name": "uwezkhan06",
        "email": "uwezkhan053@gmail.com",
        "time": "Mon May 18 21:22:41 2026 +0530"
      },
      "message": "tests: add regression test for failed mmap remap on resize\n\nAdd a regression test resize-mmap-fail.c that simulates an mmap failure\nduring io_uring_resize_rings() by dynamically constraining the virtual\nmemory limits of the process using setrlimit(RLIMIT_AS).\n\nThe test verifies that when the resize\u0027s mmap mapping fails, the original\nring remains valid and fully operational without NULL pointer crashes or\naberrant cleanup side-effects.\n\nSigned-off-by: uwezkhan06 \u003cuwezkhan053@gmail.com\u003e\n"
    },
    {
      "commit": "c077e6ada71acb12c90eeb68c3299741c9b1c98b",
      "tree": "888746f0779e343b44714b3d386a1e4d68dd6fef",
      "parents": [
        "9d707e2b7f1f56158921ec7d45fcecbf5eb6222f"
      ],
      "author": {
        "name": "uwezkhan06",
        "email": "uwezkhan053@gmail.com",
        "time": "Mon May 18 21:22:27 2026 +0530"
      },
      "committer": {
        "name": "uwezkhan06",
        "email": "uwezkhan053@gmail.com",
        "time": "Mon May 18 21:22:27 2026 +0530"
      },
      "message": "resize: preserve old ring state on failed mmap remap\n\nAfter a successful kernel ring resize, io_uring_resize_rings() unmaps\nthe old ring mappings and zeroes the sq/cq structs before attempting\nto create new mappings via io_uring_mmap(). If io_uring_mmap() fails\n(for example, due to ENOMEM or other resource limits):\n\n1. The ring\u0027s sq/cq structs are left completely zeroed/NULL.\n2. Any subsequent ring operation (such as io_uring_submit(),\n   io_uring_wait_cqe(), or io_uring_get_sqe()) will unconditionally\n   attempt to access these NULL pointers, which can crash due to NULL\n   pointer dereferences.\n3. The application is left with a broken/destroyed ring handle and\n   cannot recover or exit cleanly.\n\nFix this by mapping the new rings into temporary structures first. On\nmmap failure, return the error immediately, keeping the active ring\ncompletely untouched and valid in its previous state. On success,\nunmap the old rings and copy the new structures into the ring, ensuring\nproper and safe error recovery semantics.\n\nSigned-off-by: uwezkhan06 \u003cuwezkhan053@gmail.com\u003e\n"
    },
    {
      "commit": "9d707e2b7f1f56158921ec7d45fcecbf5eb6222f",
      "tree": "be12534bd4366283d845af423b3a757a657b8d54",
      "parents": [
        "65ead1fe5f22e42c6585884745bbc99bcaf82a92"
      ],
      "author": {
        "name": "Pavel Begunkov",
        "email": "asml.silence@gmail.com",
        "time": "Fri May 15 11:15:17 2026 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 15 07:13:04 2026 -0600"
      },
      "message": "tests: improve zcrx ro params testing\n\nTest clean up on failed copy_to_user for export does the right thing.\nFor that I put parameters in read-only memory, it\u0027s a second place doing\nthat, so also consolidate it for convinience.\n\nSigned-off-by: Pavel Begunkov \u003casml.silence@gmail.com\u003e\nLink: https://patch.msgid.link/c633c9e2c3cc7a0a07bd9765f86f54b7cc90d876.1778840077.git.asml.silence@gmail.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "65ead1fe5f22e42c6585884745bbc99bcaf82a92",
      "tree": "12cadff011f00e12691b9bfb058a927ed080d250",
      "parents": [
        "52a1c4c105b0b8b61c6ffaf13e73b035f190a06b"
      ],
      "author": {
        "name": "Pavel Begunkov",
        "email": "asml.silence@gmail.com",
        "time": "Thu May 14 17:26:58 2026 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 15 07:12:54 2026 -0600"
      },
      "message": "tests: test abnormal zcrx removal\n\nAdd some tests for dropping zcrx while there are zcrx recv requests in\ndifferent states. It intends to check that zcrx is not leaked and killed\nin the right way.\n\nSigned-off-by: Pavel Begunkov \u003casml.silence@gmail.com\u003e\nLink: https://patch.msgid.link/fe6674d9768120da6054f1ec1057ec3db3c45454.1778775953.git.asml.silence@gmail.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "52a1c4c105b0b8b61c6ffaf13e73b035f190a06b",
      "tree": "020a403fd7b8a38b8994f00345e646cd09b19e0c",
      "parents": [
        "f4b781ed18cda473f76f9535f500f73903a5d5aa"
      ],
      "author": {
        "name": "Pavel Begunkov",
        "email": "asml.silence@gmail.com",
        "time": "Thu May 14 17:26:26 2026 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 15 07:12:46 2026 -0600"
      },
      "message": "tests: improve zcrx export tests\n\nUse the right zcrx id in test_zcrx_invalid_clone(). And fetch the fd\nafter exporting, it\u0027s currently just 0 and is not checked.\n\nSigned-off-by: Pavel Begunkov \u003casml.silence@gmail.com\u003e\nLink: https://patch.msgid.link/df5e866a3c0582ae42538841dc54fffc45004aa9.1778775960.git.asml.silence@gmail.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f4b781ed18cda473f76f9535f500f73903a5d5aa",
      "tree": "b745254dcda431e3db07554ef9b0c26224268109",
      "parents": [
        "ce320c704db8f73272f3ba6a2a8eb70b72479c41"
      ],
      "author": {
        "name": "Shouvik Kar",
        "email": "auxcorelabs@gmail.com",
        "time": "Thu May 14 16:37:51 2026 +0530"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 14 07:23:41 2026 -0600"
      },
      "message": "tests: add cBPF filter tests for IORING_OP_CONNECT\n\nAdd subtests for IORING_OP_CONNECT to test/cbpf_filter.c, exercising\nthe io_connect_bpf_populate() helper added in the companion kernel\npatch (\"io_uring/net: allow filtering on IORING_OP_CONNECT\").\n\nCoverage spans both blacklist and whitelist filters for each\nconnect-specific data field (family, v4 address, v6 address, port),\nplus v4 and v6 subnet matching, and a test for the addr_len guard\nin io_connect_bpf_populate that prevents stale io_async_msghdr\ncache from leaking through to the filter on short connects.\n\nSigned-off-by: Shouvik Kar \u003cauxcorelabs@gmail.com\u003e\nLink: https://patch.msgid.link/20260514110751.1927-1-auxcorelabs@gmail.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "ce320c704db8f73272f3ba6a2a8eb70b72479c41",
      "tree": "b88d0627d64fa6c27bce020e271469d836c6afed",
      "parents": [
        "d6b7e99b89e158c4f0f1ad54905398be669a1103"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon May 11 13:50:15 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon May 11 13:50:15 2026 -0600"
      },
      "message": "test/bind-listen: ensure \u0027ts\u0027 is set before io_uring_wait_cqe_timeout()\n\n\u0027ts\u0027 appears uninitialized, so quite possible it\u0027s random values.\nJust set it to a 1 second timeout. While at it, add error handling\nas well to the return value of io_uring_wait_cqe_timeout().\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d6b7e99b89e158c4f0f1ad54905398be669a1103",
      "tree": "a0eea4c07b5dc6b948b495b3ced22987833977df",
      "parents": [
        "5dfc30a27303af1185e65d10890fdb35117bb3eb",
        "eb8dd984881241bd206b0503a3bc2627f7ad0d09"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 07 11:01:19 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 07 11:01:19 2026 -0600"
      },
      "message": "Merge branch \u0027abs-timer-test\u0027\n\n* abs-timer-test:\n  test: add timens-abs-timer regression test\n"
    },
    {
      "commit": "eb8dd984881241bd206b0503a3bc2627f7ad0d09",
      "tree": "a0eea4c07b5dc6b948b495b3ced22987833977df",
      "parents": [
        "5dfc30a27303af1185e65d10890fdb35117bb3eb"
      ],
      "author": {
        "name": "Maoyi Xie",
        "email": "maoyi.xie@ntu.edu.sg",
        "time": "Wed May 06 21:59:35 2026 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 07 10:43:09 2026 -0600"
      },
      "message": "test: add timens-abs-timer regression test\n\nAdd a regression test that exercises the two ABS timer paths in\nio_uring with the submitter inside a CLONE_NEWTIME time namespace\nthat has a -10s monotonic offset:\n\n  - IORING_OP_TIMEOUT with IORING_TIMEOUT_ABS, parsed via\n    io_parse_user_time() in io_uring/timeout.c.\n  - io_uring_enter with IORING_ENTER_ABS_TIMER, parsed inline in\n    io_cqring_wait() in io_uring/wait.c.\n\nThe test forks once to enter the new userns, sets up uid_map\nand gid_map for unprivileged root, writes the -10s monotonic\noffset to /proc/self/timens_offsets, then forks again. The\ngrandchild is the first process actually inside the new time\nnamespace (unshare(CLONE_NEWTIME) does not move the caller in,\nonly its future children). On both ABS timer paths the\ngrandchild submits an absolute deadline of now + 1s and asserts\nthe call returns after at least 0.9s.\n\nThe test fails on a kernel without commits 9cc6bac1bebf\n(\"io_uring/timeout: honour caller\u0027s time namespace for\nIORING_TIMEOUT_ABS\") and 45d2b37a37ab (\"io_uring/wait: honour\ncaller\u0027s time namespace for IORING_ENTER_ABS_TIMER\"), where\nthe deadline is interpreted in host view and the timer fires\nafter ~1ms.\n\nThe test is skipped if the kernel lacks CLONE_NEWTIME support\nor the caller cannot create an unprivileged user namespace.\n\nSigned-off-by: Maoyi Xie \u003cmaoyi.xie@ntu.edu.sg\u003e\nLink: https://patch.msgid.link/20260506135935.2420124-1-maoyixie.tju@gmail.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "5dfc30a27303af1185e65d10890fdb35117bb3eb",
      "tree": "a7e9dc23338916f72ff97ea2c412bae4ec949bce",
      "parents": [
        "43cd35689130cb8547350cb299bde84d2623c09f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 21:00:39 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 21:00:39 2026 -0600"
      },
      "message": "test/nop-flags: don\u0027t fail on kernels without IORING_SETUP_SUBMIT_ALL\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "43cd35689130cb8547350cb299bde84d2623c09f",
      "tree": "b32b8eb5740d4f297c62620d9094323646a0ee1a",
      "parents": [
        "7a70403e7977bf94611c9dbe6621c48abd0652e6"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 20:58:36 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 20:58:36 2026 -0600"
      },
      "message": "test/io_uring_passthrough: fix incorrect ring setup code\n\nThe test tests for whether or not the ring creation fails, but it\ndoes so incorrectly. This leads to failures on old kernels, where\nthe test should just be skipped.\n\nFixes: b593422fd0d6 (\"test: add io_uring passthrough test\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7a70403e7977bf94611c9dbe6621c48abd0652e6",
      "tree": "26cbbd093fcc21129df2ca50886780185b118cee",
      "parents": [
        "3089bbbbe9676ad2a9627715dfc9109f8b29e8b8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 20:55:38 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 20:55:38 2026 -0600"
      },
      "message": "test/file-alloc-range-hint: skip on old kernels\n\nIf sparse file tables aren\u0027t available, then there\u0027s no allocation\nrange support either. Just skip the test.\n\nFixes: f6e856579df2 (\"test: add regression tests for fixed file table bugs\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3089bbbbe9676ad2a9627715dfc9109f8b29e8b8",
      "tree": "9fc801b6d1abbc76354ea364c858e7cfbd457cce",
      "parents": [
        "8e87a9b092cf1af570b026cc49bd7e30e1752b9c",
        "d473a0d60ca3a3fa8e8ae5b59098a071eba23707"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 16:09:47 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 01 16:09:47 2026 -0600"
      },
      "message": "Merge branch \u0027buf-inc-left\u0027\n\n* buf-inc-left:\n  man: update struct io_uring_buf_reg documentation\n  Add test case for minimum length left for incremental buffers\n"
    },
    {
      "commit": "d473a0d60ca3a3fa8e8ae5b59098a071eba23707",
      "tree": "9fc801b6d1abbc76354ea364c858e7cfbd457cce",
      "parents": [
        "3891a21ffec618a160f026eeb15bb2ad4e2b9202"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 28 09:57:06 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 28 09:57:06 2026 -0600"
      },
      "message": "man: update struct io_uring_buf_reg documentation\n\nWas missing the flags field, and also the newly added \u0027min_left\u0027 field\nthat can be used with incrementally consumed buffers to set a minimum\nnumber of bytes that should be left in a buffer for it to still be\nconsidered valid. If less than \u0027min_left\u0027 is left it\u0027ll be marked as\ndone (IORING_CQE_F_BUF_MORE not set), and the next consumption point\nwill be the next buffer in that group.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3891a21ffec618a160f026eeb15bb2ad4e2b9202",
      "tree": "2c81eb2d1f1593fdf859e72dfd9af1ee1f9f14bf",
      "parents": [
        "8e87a9b092cf1af570b026cc49bd7e30e1752b9c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 28 09:52:03 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 28 09:53:31 2026 -0600"
      },
      "message": "Add test case for minimum length left for incremental buffers\n\nSee the link for more details, but this adds support for the application\nto tell the kernel what the minimum size left in an incrementally\nconsumed buffer should be to consider it valid, rather than just assume\nthat even 1 byte is enough for that.\n\nLink: https://github.com/axboe/liburing/issues/1433\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8e87a9b092cf1af570b026cc49bd7e30e1752b9c",
      "tree": "2922956d2d81b6354f51829a2909026cbf19fbdf",
      "parents": [
        "04b7460ef39014501b6f672e4f19593bb20516b8",
        "4330d09391470154ba4e453d01b1cf2f1f5ef32d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Apr 26 11:31:07 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Apr 26 11:31:07 2026 -0600"
      },
      "message": "Merge branch \u0027bpf-ops-fixes\u0027\n\n* bpf-ops-fixes:\n  .gitignore: add new test build output\n  tests: fix bpf ops build error\n"
    },
    {
      "commit": "4330d09391470154ba4e453d01b1cf2f1f5ef32d",
      "tree": "2922956d2d81b6354f51829a2909026cbf19fbdf",
      "parents": [
        "49f1a2ab7833a3563329fd9a86f58f84875d57e4"
      ],
      "author": {
        "name": "Haiyue Wang",
        "email": "haiyuewa@163.com",
        "time": "Sun Apr 26 19:27:31 2026 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Apr 26 11:17:36 2026 -0600"
      },
      "message": ".gitignore: add new test build output\n\nThese two files are new added build output:\n  test/bpf_cp.tt\n  test/bpf_nops.tt\n\nSigned-off-by: Haiyue Wang \u003chaiyuewa@163.com\u003e\nLink: https://patch.msgid.link/20260426112732.300165-2-haiyuewa@163.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "49f1a2ab7833a3563329fd9a86f58f84875d57e4",
      "tree": "a9c4e2656f5a9c6b361d3dc038cbfb9dd0b9a5e1",
      "parents": [
        "04b7460ef39014501b6f672e4f19593bb20516b8"
      ],
      "author": {
        "name": "Haiyue Wang",
        "email": "haiyuewa@163.com",
        "time": "Sun Apr 26 19:27:30 2026 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Apr 26 11:17:36 2026 -0600"
      },
      "message": "tests: fix bpf ops build error\n\nIf removed the previous install by \u0027rm -rf /usr/include/liburing\u0027, the\ntest build will fail:\n\nmake[1]: Entering directory \u0027/root/linux/liburing/test\u0027\n     CC helpers.o\nmkdir -p output/bpf\n     CC output/bpf/nops.bpf.o\nmkdir -p output/bpf\n     CC output/bpf/cp.bpf.o\nIn file included from /root/linux/liburing/test/bpf-progs/nops.bpf.c:2:\n/root/linux/liburing/test/bpf-progs/../bpf_defs.h:9:10: fatal error: \u0027liburing/io_uring.h\u0027 file not found\n    9 | #include \"liburing/io_uring.h\"\n      |          ^~~~~~~~~~~~~~~~~~~~~\n1 error generated.\nmake[1]: *** [Makefile:387: output/bpf/nops.bpf.o] Error 1\nmake[1]: *** Waiting for unfinished jobs....\nIn file included from /root/linux/liburing/test/bpf-progs/cp.bpf.c:2:\n/root/linux/liburing/test/bpf-progs/../bpf_defs.h:9:10: fatal error: \u0027liburing/io_uring.h\u0027 file not found\n    9 | #include \"liburing/io_uring.h\"\n      |          ^~~~~~~~~~~~~~~~~~~~~\n1 error generated.\nmake[1]: *** [Makefile:387: output/bpf/cp.bpf.o] Error 1\nmake[1]: Leaving directory \u0027/root/linux/liburing/test\u0027\nmake: *** [Makefile:14: all] Error 2\n\nAdd the include option in \u0027CPPFLAGS\u0027 for bpf build.\n\nFixes: fd8a6e66c739 (\"tests: test io_uring bpf ops\")\nSigned-off-by: Haiyue Wang \u003chaiyuewa@163.com\u003e\nLink: https://patch.msgid.link/20260426112732.300165-1-haiyuewa@163.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "04b7460ef39014501b6f672e4f19593bb20516b8",
      "tree": "b258f5e72b4ed1d5c3d3506eccff529a5f758998",
      "parents": [
        "0fbff3ed9be595d810f4c1217b163f0b5cb62d7b",
        "aadabf56d3bebbfbd11e13df3cfc8850ca609a45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Apr 24 09:29:05 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Apr 24 09:29:05 2026 -0600"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/andrew-sayers/liburing\n\n* \u0027master\u0027 of https://github.com/andrew-sayers/liburing:\n  man: Minor language improvements\n  man: Explain transfer size limits in miscellaneous functions\n  man: Explain transfer size limits in send() and recv() functions\n  man: Explain transfer size limits in all write() functions\n  man: Explain transfer size limits in all read() functions\n"
    },
    {
      "commit": "aadabf56d3bebbfbd11e13df3cfc8850ca609a45",
      "tree": "b258f5e72b4ed1d5c3d3506eccff529a5f758998",
      "parents": [
        "d3c0b5f711296ba65edd397d167481795852f4c6"
      ],
      "author": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Apr 23 20:22:45 2026 +0100"
      },
      "committer": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Fri Apr 24 10:19:25 2026 +0100"
      },
      "message": "man: Minor language improvements\n\nSigned-off-by: Andrew Sayers \u003candrew-github.com@pileofstuff.org\u003e\n"
    },
    {
      "commit": "d3c0b5f711296ba65edd397d167481795852f4c6",
      "tree": "96244d402694249c2e839013172a1fc3ef3e2c2c",
      "parents": [
        "4b2bb82c4f6694efc9719c707176fcb454e686ed"
      ],
      "author": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Apr 23 22:03:13 2026 +0100"
      },
      "committer": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Fri Apr 24 10:19:25 2026 +0100"
      },
      "message": "man: Explain transfer size limits in miscellaneous functions\n\nio_uring_buf_ring_add(3) does not transfer data, but people reading that\npage are likely to appreciate a hint about maximum buffer sizes.\n\nA quick test shows splice(3) and tee(3) don\u0027t return much data per call.\nIf a user saw text in io_uring_prep_splice(3) or io_uring_prep_tee(3)\nthat looked just like the other man pages, they would have the right\nto be surprised when they found the functions behaved differently.\nThe man pages for splice and tee don\u0027t mention any particular limits,\nso these man pages just say \"limits as low as 65536 have been observed\" -\nspecific enough to alert the reader, but vague enough not to imply\nundue certainty.\n\nBased on a discussion in https://github.com/axboe/liburing/pull/1570\n\nSigned-off-by: Andrew Sayers \u003candrew-github.com@pileofstuff.org\u003e\n"
    },
    {
      "commit": "4b2bb82c4f6694efc9719c707176fcb454e686ed",
      "tree": "0737a69aa968f28988e3a3e69fac1cb58d16a1f4",
      "parents": [
        "b40f2cbc21bbf3e1ec2e113937d890b0f2881246"
      ],
      "author": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Apr 23 22:00:35 2026 +0100"
      },
      "committer": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Fri Apr 24 10:19:25 2026 +0100"
      },
      "message": "man: Explain transfer size limits in send() and recv() functions\n\nBased on a discussion in https://github.com/axboe/liburing/pull/1570\n\nSigned-off-by: Andrew Sayers \u003candrew-github.com@pileofstuff.org\u003e\n"
    },
    {
      "commit": "b40f2cbc21bbf3e1ec2e113937d890b0f2881246",
      "tree": "e3e1334ac890c94d0ee6929f3eabc9d98c2e9d04",
      "parents": [
        "38df002dd6313de8b29090ade1e4caa0192431f3"
      ],
      "author": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Apr 23 21:46:00 2026 +0100"
      },
      "committer": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Fri Apr 24 10:19:25 2026 +0100"
      },
      "message": "man: Explain transfer size limits in all write() functions\n\nBased on a discussion in https://github.com/axboe/liburing/pull/1570\n\nSigned-off-by: Andrew Sayers \u003candrew-github.com@pileofstuff.org\u003e\n"
    },
    {
      "commit": "38df002dd6313de8b29090ade1e4caa0192431f3",
      "tree": "ee8835ae05ffb9a85ab827c995487bc1b3fae202",
      "parents": [
        "0fbff3ed9be595d810f4c1217b163f0b5cb62d7b"
      ],
      "author": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Apr 23 21:22:34 2026 +0100"
      },
      "committer": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Fri Apr 24 10:19:25 2026 +0100"
      },
      "message": "man: Explain transfer size limits in all read() functions\n\nTweak the discussion text from e65a2a07, and replicate it across all\nread()-based functions.\n\nLinux\u0027s read() function has special limitations, so the text in these\nfunctions should be visibly different to the blurb elsewhere.\nTo achieve that, io_uring_cqe\u0027s result code is only discussed explicitly\nin this commit.\n\nBased on a discussion in https://github.com/axboe/liburing/pull/1570\n\nSigned-off-by: Andrew Sayers \u003candrew-github.com@pileofstuff.org\u003e\n"
    },
    {
      "commit": "0fbff3ed9be595d810f4c1217b163f0b5cb62d7b",
      "tree": "b3e092c2176f967259e261d26ae597f31610e0c7",
      "parents": [
        "457d6b0fc1e0fb29eb48b77bb50c31e9d946cac4",
        "e65a2a07eef8b4b5721427e6bf87d14c6e8a93de"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Apr 23 09:38:28 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Apr 23 09:38:28 2026 -0600"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/andrew-sayers/liburing\n\n* \u0027master\u0027 of https://github.com/andrew-sayers/liburing:\n  man/io_uring_prep_read.3: Explain unsigned input vs. __s32 output\n"
    },
    {
      "commit": "e65a2a07eef8b4b5721427e6bf87d14c6e8a93de",
      "tree": "b3e092c2176f967259e261d26ae597f31610e0c7",
      "parents": [
        "457d6b0fc1e0fb29eb48b77bb50c31e9d946cac4"
      ],
      "author": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Apr 23 15:34:54 2026 +0100"
      },
      "committer": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Apr 23 16:33:33 2026 +0100"
      },
      "message": "man/io_uring_prep_read.3: Explain unsigned input vs. __s32 output\n\nio_uring_prep_read() reads an unsigned number of bytes,\nand for short reads it returns the actual number of bytes read.\nBut the return value is __s32, so not all possible values\ncan be represented.\n\nExplain this doesn\u0027t matter because of limits in the underlying syscall.\n\nSigned-off-by: Andrew Sayers \u003candrew-github.com@pileofstuff.org\u003e\n"
    },
    {
      "commit": "457d6b0fc1e0fb29eb48b77bb50c31e9d946cac4",
      "tree": "91de566c367cefe76424756897f3dd2fe1bfc22b",
      "parents": [
        "f527d9b1d05d01b1003ce597ed20e55d609efc88"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 16:09:50 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 16:09:50 2026 -0600"
      },
      "message": "test/fd-pass: skip on older kernels without DEFER_TASKRUN\n\nFixes: 97c596056b81 (\"test/fd-pass: add DEFER|SINGLE_ISSUER tests\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f527d9b1d05d01b1003ce597ed20e55d609efc88",
      "tree": "7e1ac25009e1afb52dd5c046e05cc6a1ce188971",
      "parents": [
        "e77085d06427e9e0b895c4006a473dc3405b9e78"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 16:07:32 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 16:07:32 2026 -0600"
      },
      "message": "test/iopoll-sync: fix buggy old kernel check\n\nInvalid opcodes generally return -EINVAL. Outside of that, don\u0027t print\nto stderr for running on an older kernel. In fact, don\u0027t print anything\nat all, just return T_EXIT_SKIP which is the correct way to handle older\nkernels.\n\nFixes: ebb6af247953 (\"test: test non-iopoll uring_cmds on IORING_SETUP_IOPOLL rings\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "e77085d06427e9e0b895c4006a473dc3405b9e78",
      "tree": "c779d52a0b7712fdc4d5bbf5bd81c3a53dc254cf",
      "parents": [
        "c107b35c386f7318116acbd4bb247e625a1f5038",
        "bcc86d6a9c79d86cfc3b9f7ec4fdb77c2108f550"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 13:46:53 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 13:46:53 2026 -0600"
      },
      "message": "Merge branch \u0027poll-mshot-wake\u0027\n\nMerge test cases for testing multishot is correctly terminated for\na nested wakeup.\n\n* poll-mshot-wake:\n  test/poll-mshot-wake: ensure multishot is terminated for nested wakes\n"
    },
    {
      "commit": "bcc86d6a9c79d86cfc3b9f7ec4fdb77c2108f550",
      "tree": "c779d52a0b7712fdc4d5bbf5bd81c3a53dc254cf",
      "parents": [
        "c107b35c386f7318116acbd4bb247e625a1f5038"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 13:37:00 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 13:45:12 2026 -0600"
      },
      "message": "test/poll-mshot-wake: ensure multishot is terminated for nested wakes\n\nThis tests for a kernel bug with EPOLL_URING_WAKE, where io_uring\nuses this flag to detect nested wakes. When this happens, io_uring\nwill terminate a multishot request. But the kernel side did not\nfully propagate the flag for that, EPOLLONESHOT, and hence it did\nnot terminate the request. This means that the last CQE posted will\nstill have IORING_CQE_F_MORE set, even though no further CQEs will\nbe posted from this request.\n\nSee:\n\nhttps://lore.kernel.org/io-uring/bc35ebeb-69f8-491c-98bd-b563b8ff6778@kernel.dk/T/#u\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "c107b35c386f7318116acbd4bb247e625a1f5038",
      "tree": "1ad31daf1c5f8e6549bf9bf2105c14301a0be601",
      "parents": [
        "9949c2d45e99e736cc79ae7522a4d227ce1d51f9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 12:58:08 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 12:58:08 2026 -0600"
      },
      "message": "test/large-resize: run SQE_MIXED test last\n\nIt\u0027s the latest added feature in terms of kernel versions, and for\nexample 6.18-stable will return test SKIPPED before this commit\neven though it ran the rest of the tests.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "9949c2d45e99e736cc79ae7522a4d227ce1d51f9",
      "tree": "410b63fa40fef6e58aee7d48cbc110612900cd87",
      "parents": [
        "e2a21addd3315b211503b9a08dd80fcd16cb9adf",
        "e4590f3509c152250484845050cda68b0e869f23"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 09:57:28 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 09:57:28 2026 -0600"
      },
      "message": "Merge branch \u0027large-resize\u0027\n\nMerge large cqe/sqe resizing test to master.\n\n* large-resize:\n  test/large-resize: test resizing with pending large CQEs/SQEs\n"
    },
    {
      "commit": "e4590f3509c152250484845050cda68b0e869f23",
      "tree": "410b63fa40fef6e58aee7d48cbc110612900cd87",
      "parents": [
        "e2a21addd3315b211503b9a08dd80fcd16cb9adf"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 08:37:56 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Apr 21 08:37:56 2026 -0600"
      },
      "message": "test/large-resize: test resizing with pending large CQEs/SQEs\n\nTest SETUP_SQE128 and SETUP_CQE32 with pending entries in the SQ\nand CQ rings during resize, and ensure that everything is copied\ncorrectly.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "e2a21addd3315b211503b9a08dd80fcd16cb9adf",
      "tree": "1243c12a58a27038edf988831784fd1cbcad0540",
      "parents": [
        "4bc9f5048c7fcc1ae7a589ae65d0f11f7aeaf651"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Apr 20 15:31:56 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Apr 20 15:32:42 2026 -0600"
      },
      "message": "test/mshot-shutdown-race: increase stuck timeout\n\nAt the end of the test, this has a tendency to hit as we\u0027re done\nupdating the number of bytes. Just bump it to 5 seconds which\nshould be more than plenty to not time out, while still allowing\na fairly early abort if the kernel is buggy.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4bc9f5048c7fcc1ae7a589ae65d0f11f7aeaf651",
      "tree": "bad1c3c712a5fdabdae4a4f4ee26cb6be5a39e7f",
      "parents": [
        "6dc578df309eb6958e7422ff7395e591c80ea7b9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 15 14:29:42 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 15 14:29:42 2026 -0600"
      },
      "message": "test/zcrx: cast u64 to uintptr_t to silence 32-bit warnings\n\nFixes: d8583c5f8d1b (\"tests: fix zcrx tests\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "6dc578df309eb6958e7422ff7395e591c80ea7b9",
      "tree": "8eafdc8267a4c86f57e75c5d62152586926443bb",
      "parents": [
        "b195ba2723f0850a574424f408841c340436abca"
      ],
      "author": {
        "name": "Pavel Begunkov",
        "email": "asml.silence@gmail.com",
        "time": "Sun Apr 12 15:17:14 2026 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 15 14:12:07 2026 -0600"
      },
      "message": "examples/zcrx: fix just allocated sock struct checks\n\nThe line in process_accept() checking sockfd is a leftover from times\nthere was just one static socket. Now it\u0027s allocated, and we shouldn\u0027t\nbe checking an uninitialised value, which fails the benchmark from time\nto time.\n\nSigned-off-by: Pavel Begunkov \u003casml.silence@gmail.com\u003e\nLink: https://patch.msgid.link/b689b7956262aa53d37c0608c80a007dfa4cd06e.1776002658.git.asml.silence@gmail.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "b195ba2723f0850a574424f408841c340436abca",
      "tree": "ed4e6204716c7e56df690d0568f281259ff1a11e",
      "parents": [
        "d8583c5f8d1bb2eaf226c15e2a1a9da74aef5dcb"
      ],
      "author": {
        "name": "Pavel Begunkov",
        "email": "asml.silence@gmail.com",
        "time": "Sun Apr 12 15:30:04 2026 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 15 14:11:53 2026 -0600"
      },
      "message": "tests: don\u0027t assume tail/head layout in bpf\n\nKeep separate tail and head offsets and don\u0027t assume they\u0027re placed next\nto each other.\n\nSigned-off-by: Pavel Begunkov \u003casml.silence@gmail.com\u003e\nLink: https://patch.msgid.link/6fdc76568f2066bf0d7f0349088883ab29e6cb63.1776004188.git.asml.silence@gmail.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d8583c5f8d1bb2eaf226c15e2a1a9da74aef5dcb",
      "tree": "c634f5fe2acbc2afdf59d727d27e5fbae45ffec0",
      "parents": [
        "533a772b43df83ef22b706659791ea9309f5ca01"
      ],
      "author": {
        "name": "Pavel Begunkov",
        "email": "asml.silence@gmail.com",
        "time": "Sun Apr 12 15:17:31 2026 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 15 14:11:23 2026 -0600"
      },
      "message": "tests: fix zcrx tests\n\nzcrx.c is broken and clearly nobody is running it, do a complete\nrewrite. It covers most of the cases it was supposed to check,\nespecially around invalid parameters, but also adds tests for different\ncontrol commands like rq flush and export. It relies on ZCRX_REG_NODEV\nand doesn\u0027t require real hardware. It can get !NODEV support later, but\nat least it allows to exercise most of paths on any machine.\n\nSigned-off-by: Pavel Begunkov \u003casml.silence@gmail.com\u003e\nLink: https://patch.msgid.link/35996dec32a78ce0c93dff43197b52cadc2696ea.1776003410.git.asml.silence@gmail.com\n[axboe: add linux/mman.h include as requested]\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "533a772b43df83ef22b706659791ea9309f5ca01",
      "tree": "a02d5b798a63ab660e6587bad0bba8ac0da86488",
      "parents": [
        "8d812f87ecb99069d4155eadb5a2cfcdb2cd3d85"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Apr 03 16:30:45 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Apr 03 16:30:45 2026 -0600"
      },
      "message": "test/bpf_cp: use proper SKIP exit code\n\nThis test requires two arguments, copying from one to the other. If\ntwo aren\u0027t given, use T_EXIT_SKIP to signify that the test was simply\nskipped, rather than return success when nothing was done.\n\nFixes: fd8a6e66c739 (\"tests: test io_uring bpf ops\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8d812f87ecb99069d4155eadb5a2cfcdb2cd3d85",
      "tree": "7747ef2cc49a7af397b74565fcc6017823a9be72",
      "parents": [
        "7ba4409545b3468eb907ab204dac330543ac2f0c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Apr 03 16:29:56 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Apr 03 16:29:56 2026 -0600"
      },
      "message": "test/bpf_nops: skip test if argument is given\n\nThe test doesn\u0027t take an argument, hence it should just skip without\ndoing anything if given one.\n\nFixes: fd8a6e66c739 (\"tests: test io_uring bpf ops\")\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7ba4409545b3468eb907ab204dac330543ac2f0c",
      "tree": "e5a01fa3757d2851f48655b89feb664097eb5d42",
      "parents": [
        "05513e166320a255451ecbd0da09574ae4779a9c",
        "4dd113a49dbf3cd61ab6439e39d4e38b490cfe2f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 01 14:24:04 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 01 14:24:04 2026 -0600"
      },
      "message": "Merge branch \u0027fix-recvmsg-validate\u0027 of https://github.com/YooLCD/liburing\n\nThis overflow can never happen, as the kernel will not pass back info\nthis large. But it does improve readability breaking it up, so why not.\n\n* \u0027fix-recvmsg-validate\u0027 of https://github.com/YooLCD/liburing:\n  liburing.h: fix integer overflow in recvmsg_validate and payload_length wraparound\n"
    },
    {
      "commit": "05513e166320a255451ecbd0da09574ae4779a9c",
      "tree": "0d3ad505b17bd34c5d9221457dadbd304dc9be05",
      "parents": [
        "20b3fe67df9bb76badb00a1cb3b35556fd2899d9",
        "2a5081483f2f2f79f9468fc9878640e99fe032f6"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 01 13:38:38 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Apr 01 13:38:38 2026 -0600"
      },
      "message": "Merge branch \u0027td-register-unused-params\u0027 of https://github.com/travisdowns/liburing\n\n* \u0027td-register-unused-params\u0027 of https://github.com/travisdowns/liburing:\n  register: remove spurious __maybe_unused on buf_ring flags\n  register: suppress unused parameter warnings in wait_reg stub\n"
    },
    {
      "commit": "2a5081483f2f2f79f9468fc9878640e99fe032f6",
      "tree": "0d3ad505b17bd34c5d9221457dadbd304dc9be05",
      "parents": [
        "521974ad438c5e51fb38a78cefc5197d990df339"
      ],
      "author": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Wed Apr 01 11:25:54 2026 -0300"
      },
      "committer": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Wed Apr 01 14:38:26 2026 -0300"
      },
      "message": "register: remove spurious __maybe_unused on buf_ring flags\n\nThe flags parameter is used on the next line, so the annotation\nis unnecessary.\n\nSigned-off-by: Travis Downs \u003ctravis.downs@redpanda.com\u003e\n"
    },
    {
      "commit": "521974ad438c5e51fb38a78cefc5197d990df339",
      "tree": "f8bf8262060a81ab36f67915efce786aa3a9c533",
      "parents": [
        "20b3fe67df9bb76badb00a1cb3b35556fd2899d9"
      ],
      "author": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Wed Apr 01 11:25:42 2026 -0300"
      },
      "committer": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Wed Apr 01 14:38:26 2026 -0300"
      },
      "message": "register: suppress unused parameter warnings in wait_reg stub\n\nio_uring_register_wait_reg is a stub returning -EINVAL, so mark\nits parameters __maybe_unused to avoid -Wunused-parameter warnings.\n\nSigned-off-by: Travis Downs \u003ctravis.downs@redpanda.com\u003e\n"
    },
    {
      "commit": "4dd113a49dbf3cd61ab6439e39d4e38b490cfe2f",
      "tree": "e573fac6345240f24c2be41daa383fcac08e7ede",
      "parents": [
        "20b3fe67df9bb76badb00a1cb3b35556fd2899d9"
      ],
      "author": {
        "name": "YooLCD",
        "email": "youichi0929@outlook.jp",
        "time": "Mon Mar 30 19:10:18 2026 +0900"
      },
      "committer": {
        "name": "Yoo_LCD",
        "email": "youichi0929@outlook.jp",
        "time": "Wed Apr 01 15:49:45 2026 +0000"
      },
      "message": "liburing.h: fix integer overflow in recvmsg_validate and payload_length wraparound\n\nSigned-off-by: Youichi Uemura \u003cyouichi0929@outlook.jp\u003e\n"
    },
    {
      "commit": "20b3fe67df9bb76badb00a1cb3b35556fd2899d9",
      "tree": "c555cc01a7ed7f24ce80fa8761bc7cab9ae99d15",
      "parents": [
        "18c41594671ea5f5bde0f1b853a8e5fcf09e7efc",
        "f6927340b6236d7becda78a796e3856a615d9dc9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Mar 26 11:49:47 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Mar 26 11:49:47 2026 -0600"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/andrew-sayers/liburing\n\n* \u0027master\u0027 of https://github.com/andrew-sayers/liburing:\n  Explain -ENOMEM return value from io_uring_queue_init()\n"
    },
    {
      "commit": "f6927340b6236d7becda78a796e3856a615d9dc9",
      "tree": "c555cc01a7ed7f24ce80fa8761bc7cab9ae99d15",
      "parents": [
        "18c41594671ea5f5bde0f1b853a8e5fcf09e7efc"
      ],
      "author": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Mar 26 17:04:22 2026 +0000"
      },
      "committer": {
        "name": "Andrew Sayers",
        "email": "andrew-github.com@pileofstuff.org",
        "time": "Thu Mar 26 17:14:46 2026 +0000"
      },
      "message": "Explain -ENOMEM return value from io_uring_queue_init()\n\nio_uring_queue_init() can return -ENOMEM for reasons that are sensible\nbut not intuitively obvious.  Clarify what\u0027s happening and what the user\nshould do to fix it.\n\nCloses: https://github.com/axboe/liburing/issues/1560\nSigned-off-by: Andrew Sayers \u003candrew-github.com@pileofstuff.org\u003e\n"
    },
    {
      "commit": "18c41594671ea5f5bde0f1b853a8e5fcf09e7efc",
      "tree": "90eafd789e8b4ca0c9352572b797731bb196c79d",
      "parents": [
        "26c54094429be4346a5a786af1d29c0863787907",
        "f795f404c4e9e591bab95dc0c5636fe527fcf373"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Mar 26 06:26:19 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Mar 26 06:26:19 2026 -0600"
      },
      "message": "Merge branch \u0027buf-upgrade\u0027\n\n* buf-upgrade:\n  test/buf-ring-upgrade: test upgrade of buffer group with recycling\n"
    },
    {
      "commit": "26c54094429be4346a5a786af1d29c0863787907",
      "tree": "720b712e266c58a4a388556f56a0e4e4ca672f57",
      "parents": [
        "2c7b9da2031e5176e991f1cd8c5b55ed5b1c7e40",
        "ebbd32ec5ad3c6771942ee11672f1d2133754d1d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Mar 24 13:26:06 2026 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Mar 24 13:26:06 2026 -0600"
      },
      "message": "Merge branch \u0027td-out-of-source-builds\u0027 of https://github.com/travisdowns/liburing\n\n* \u0027td-out-of-source-builds\u0027 of https://github.com/travisdowns/liburing:\n  README: document out-of-source builds\n  ci: add out-of-source build job\n  configure: support out-of-source builds\n"
    },
    {
      "commit": "ebbd32ec5ad3c6771942ee11672f1d2133754d1d",
      "tree": "720b712e266c58a4a388556f56a0e4e4ca672f57",
      "parents": [
        "0f51d60ad050f709e54336ac10c6b757e93b987b"
      ],
      "author": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Tue Mar 24 13:38:37 2026 -0300"
      },
      "committer": {
        "name": "Travis Downs",
        "email": "travis.downs@gmail.com",
        "time": "Tue Mar 24 16:10:48 2026 -0300"
      },
      "message": "README: document out-of-source builds\n\nSigned-off-by: Travis Downs \u003ctravis.downs@redpanda.com\u003e\n"
    },
    {
      "commit": "0f51d60ad050f709e54336ac10c6b757e93b987b",
      "tree": "c8a292efdec6ae93f7c2d5db109fee9889109406",
      "parents": [
        "7ddc675da2e529d80044644852e04249d25cb789"
      ],
      "author": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Tue Mar 24 13:38:34 2026 -0300"
      },
      "committer": {
        "name": "Travis Downs",
        "email": "travis.downs@gmail.com",
        "time": "Tue Mar 24 16:10:48 2026 -0300"
      },
      "message": "ci: add out-of-source build job\n\nTest that out-of-source builds work in CI: configure from a separate\nbuild directory, build, install, link against the installed library,\nand verify nothing leaked into the source tree.\n\nSigned-off-by: Travis Downs \u003ctravis.downs@redpanda.com\u003e\n"
    },
    {
      "commit": "7ddc675da2e529d80044644852e04249d25cb789",
      "tree": "9f40c962e04ce6751feb6f9b81f56e39289eeb58",
      "parents": [
        "2c7b9da2031e5176e991f1cd8c5b55ed5b1c7e40"
      ],
      "author": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Tue Mar 24 13:38:18 2026 -0300"
      },
      "committer": {
        "name": "Travis Downs",
        "email": "travis.downs@redpanda.com",
        "time": "Tue Mar 24 13:41:17 2026 -0300"
      },
      "message": "configure: support out-of-source builds\n\nAdd support for out-of-source builds (e.g., mkdir build \u0026\u0026 cd build \u0026\u0026\n../configure \u0026\u0026 make). This is useful for maintaining parallel build\nconfigurations side-by-side (e.g., debug vs release with unique build\ndir names), and for packaging systems like Bazel that expect the source\ntree to remain clean.\n\nconfigure detects when it is invoked from a directory other than the\nsource root, creates the necessary build subdirectories, and generates\nthin wrapper Makefiles that set $(root) and include the real Makefiles.\n\nAll Makefiles now use $(root) to locate source-tree files (headers,\nlinker maps, scripts, man pages) and VPATH to find source files for\ncompilation. In-source builds continue to work as before with\n$(root) defaulting to \".\" or \"..\".\n\nSigned-off-by: Travis Downs \u003ctravis.downs@redpanda.com\u003e\n"
    }
  ],
  "next": "2c7b9da2031e5176e991f1cd8c5b55ed5b1c7e40"
}
