linux/include
Caleb Sander Mateos 763ff02ce2 ublk: allow UBLK_IO_(UN)REGISTER_IO_BUF on any task
Currently, UBLK_IO_REGISTER_IO_BUF and UBLK_IO_UNREGISTER_IO_BUF are
only permitted on the ublk_io's daemon task. But this restriction is
unnecessary. ublk_register_io_buf() calls __ublk_check_and_get_req() to
look up the request from the tagset and atomically take a reference on
the request without accessing the ublk_io. ublk_unregister_io_buf()
doesn't use the q_id or tag at all.

So allow these opcodes even on tasks other than io->task.

Handle UBLK_IO_UNREGISTER_IO_BUF before obtaining the ubq and io since
the buffer index being unregistered is not necessarily related to the
specified q_id and tag.

Add a feature flag UBLK_F_BUF_REG_OFF_DAEMON that userspace can use to
determine whether the kernel supports off-daemon buffer registration.

Suggested-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250620151008.3976463-10-csander@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
History 2025-06-30 20:13:42 -06:00
..
acpi Merge branches 'acpi-processor' and 'acpi-cppc' 2025-05-26 18:37:38 +02:00
asm-generic hyperv-next for v6.16 2025-06-03 08:39:20 -07:00
clocksource KVM/arm64 updates for 6.14 2025-01-28 09:01:36 -08:00
crypto Crypto library fix for v6.16-rc4 2025-06-27 17:32:30 -07:00
cxl cxl/features: Remove the inline specifier from to_cxlfs() 2025-05-22 07:39:01 -07:00
drm drm for 6.16-rc1 2025-05-28 09:46:39 -07:00
dt-bindings USB/Thunderbolt changes for 6.16-rc1 2025-06-06 12:45:35 -07:00
hyperv hyperv-next for v6.16 2025-06-03 08:39:20 -07:00
keys rxrpc: Add YFS RxGK (GSSAPI) security class 2025-04-14 17:36:41 -07:00
kunit I've recently moved computers (among other things) so I'm sending this from a 2025-05-30 09:15:40 -07:00
kvm KVM: arm64: Resolve vLPI by host IRQ in vgic_v4_unset_forwarding() 2025-05-30 09:11:29 +01:00
linux block: add scatterlist-less DMA mapping helpers 2025-06-30 15:50:32 -06:00
math-emu powerpc/math-emu: Remove -w build flag and fix warnings 2022-09-05 17:28:25 +10:00
media media: common: Add v4l2_find_nearest_size_conditional() 2025-05-06 13:06:30 +02:00
memory memory: renesas-rpc-if: Add RZ/G3E xSPI support 2025-05-01 12:22:25 +02:00
misc cxl: Remove driver 2025-03-16 22:04:27 +11:00
net Bluetooth: hci_core: Fix use-after-free in vhci_flush() 2025-06-23 10:59:29 -04:00
pcmcia ARM: pxa/sa1100: move I/O space to PCI_IOBASE 2022-05-07 22:56:17 +02:00
ras PCI/ERR: Handle TLP Log in Flit mode 2025-02-21 17:31:45 -06:00
rdma Linux 6.15 2025-05-26 15:33:52 -03:00
rv rv: Reset per-task monitors also for idle tasks 2025-01-23 12:16:04 -05:00
scsi SCSI misc on 20250529 2025-05-29 22:17:52 -07:00
soc - The 3 patch series "hung_task: extend blocking task stacktrace dump to 2025-05-31 19:12:53 -07:00
sound USB/Thunderbolt changes for 6.16-rc1 2025-06-06 12:45:35 -07:00
target scsi: target: core: Constify enabled() in struct target_opcode_descriptor 2025-05-20 22:11:03 -04:00
trace erofs: remove unused trace event erofs_destroy_inode 2025-06-18 13:41:16 +08:00
uapi ublk: allow UBLK_IO_(UN)REGISTER_IO_BUF on any task 2025-06-30 20:13:42 -06:00
ufs Merge branch '6.15/scsi-fixes' into 6.16/scsi-staging 2025-04-28 20:56:57 -04:00
vdso vdso: Address variable shadowing in macros 2025-04-10 11:07:10 +02:00
video fbdev: atyfb: Remove unused PCI vendor ID 2025-05-31 10:24:01 +02:00
xen xen/mcelog: Add __nonstring annotations for unterminated strings 2025-03-14 11:15:16 +01:00
Kbuild drm: ensure drm headers are self-contained and pass kernel-doc 2025-02-12 10:44:43 +02:00