Skip to content

scsi: bsg: report data copyback failures

Yingjie Wang linux-scsi lkml stable 1 version Applied

Status from this message: Applied to 7.4/scsi-staging, thanks!

Get series with b4
b4 am [email protected]

Versions newest first

  1. v2 Latest2 patches 3 repliesApplied

Changes in v2 from the cover letter

- Split these two error-propagation fixes from the request-release changes following Bart Van Assche's review.
- Rebase onto 734bef548a96 (Merge tag 'net-next-7.4').
- Recheck the synchronous Fixes tag. The SG_IO v4 completion helper already discarded blk_rq_unmap_user() errors when 10e8855b9451 introduced the ioctl path.
- Rerun the focused build and the synchronous and io_uring QEMU tests on the new base and final trees.

Patches in v2 Applied

#Subject and filesSizeRepliesApplied
1/2scsi: bsg: report synchronous data copyback failuresdrivers/scsi/scsi_bsg.c+4 -20 replies
2/2scsi: bsg: report io_uring data copyback failuresdrivers/scsi/scsi_bsg.c+1 -10 replies

Reviews trailers per patch

None of the 2 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchYang XiuweiBart Van Assche
SeriesR-b R-b
1/2
2/2

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 0/2] scsi: bsg: report data copyback failures

The synchronous and io_uring SCSI BSG completion paths discard the return value from blk_rq_unmap_user(). For data-in commands that use a bounce buffer, unmapping copies the completed data back to userspace. A failure during that copyback is then lost, so SG_IO can return success and io_uring can post a CQE with res == 0 despite the copyback failure.

Propagate the unmap result while preserving existing sense-copy error precedence. The two fixes are independent and can be applied separately.

This is v2 of the two error-propagation patches from the six-patch series posted at:

https://lore.kernel.org/r/[email protected]

Changes in v2:

- Split these two error-propagation fixes from the request-release changes following Bart Van Assche's review.
- Rebase onto 734bef548a96 (Merge tag 'net-next-7.4').
- Recheck the synchronous Fixes tag. The SG_IO v4 completion helper already discarded blk_rq_unmap_user() errors when 10e8855b9451 introduced the ioctl path.
- Rerun the focused build and the synchronous and io_uring QEMU tests on the new base and final trees.

Validation on x86_64 used QEMU 8.2.2 and a virtio-scsi disk. On the base tree, ioctl() returned 0 and the io_uring CQE had res == 0 in 20/20 runs despite the copyback failure. With this series applied, ioctl() returned -1 with errno EFAULT in 20/20 runs, and the io_uring CQE had res == -EFAULT in 20/20 runs. Writable controls succeeded in 20/20 runs in both trees, and the guest logs contained no BUG, WARNING, KASAN, UBSAN, or panic diagnostics.

The base and final trees also completed:

make O=<build-dir> -j24 W=1 CONFIG_WERROR= bzImage

The command used CONFIG_WERROR= because the saved configuration enables WERROR and the full W=1 build reports pre-existing warnings in unrelated files. No warning was emitted for drivers/scsi/scsi_bsg.c.

An AI coding assistant was used to inspect the reviewed series, verify the history and call paths, and prepare this reroll. The code and test results are provided for human review.

Yingjie Wang (2):
scsi: bsg: report synchronous data copyback failures
scsi: bsg: report io_uring data copyback failures

 drivers/scsi/scsi_bsg.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

base-commit: 734bef548a96e8774d6eef5dfa2026c6edc4e80b

Signature · 1 line
2.43.0