[PATCH v8 00/10] s390/vfio_ccw fixes
From: Eric Farman
Date: Mon Jul 27 2026 - 21:41:55 EST
This series addresses some pre-existing issues found in the
s390 vfio_ccw (DASD passthrough) driver.
Patches 1-6 are identical to v6/v7.
Patches 7-10 are a continued attempt to improve access to private->cp,
as the results from v7 showed minor problems compared to previous iterations.
v1: https://lore.kernel.org/r/20260714232208.1683788-1-farman@xxxxxxxxxxxxx/
v2: https://lore.kernel.org/r/20260720201931.976660-1-farman@xxxxxxxxxxxxx/
v3: https://lore.kernel.org/r/20260723174751.1180334-1-farman@xxxxxxxxxxxxx/
v4: https://lore.kernel.org/r/20260725152705.3958100-1-farman@xxxxxxxxxxxxx/
v5: https://lore.kernel.org/r/20260726040129.2946151-1-farman@xxxxxxxxxxxxx/
v6: https://lore.kernel.org/r/20260726172153.1818056-1-farman@xxxxxxxxxxxxx/
v7: https://lore.kernel.org/r/20260727192230.2715207-1-farman@xxxxxxxxxxxxx/
v7->v8:
- [FA] Applied r-b to patch 10 (thank you!)
- [MR] Cleanup commit message on patch 8 (leftover from an earlier version)
- [MR/sashiko] Move cancel_work_sync() calls prior to the crw list cleanup in
vfio_ccw_mdev_release_dev (really only crw_work needs to be moved, but to
keep it tidy..)
- [MR] Call flush_work(notoper_work) in vfio_ccw_mdev_close_dev,
to ensure a queued cp is released if pending, rather than arbitrarily
cancelled and orphaned. Remove the cleanup from _release_dev, because
any open device will take a trip through _close_dev first to be cleaned
up, and any closed device will not be able to queue any CP's without
first being opened
Eric Farman (10):
s390/vfio_ccw: free all memory if cp_init() fails
s390/vfio_ccw: limit the number of channel program segments
s390/vfio_ccw: fix out of bounds check on CCW array
s390/vfio_ccw: ensure first IDAW remains constant
s390/vfio_ccw: calculate idal length based on idaw type
s390/vfio_ccw: ensure index for read/write regions are within range
s390/vfio_ccw: cancel existing workqueues
s390/vfio_ccw: move cp cleanup out of not operational
s390/vfio_ccw: selectively expand io_mutex
s390/vfio_ccw: implement a crw lock
drivers/s390/cio/vfio_ccw_async.c | 16 +++++++
drivers/s390/cio/vfio_ccw_chp.c | 31 ++++++++++--
drivers/s390/cio/vfio_ccw_cp.c | 74 +++++++++++++++++++++--------
drivers/s390/cio/vfio_ccw_cp.h | 10 ++++
drivers/s390/cio/vfio_ccw_drv.c | 21 +++++++-
drivers/s390/cio/vfio_ccw_fsm.c | 8 +++-
drivers/s390/cio/vfio_ccw_ops.c | 30 ++++++++++--
drivers/s390/cio/vfio_ccw_private.h | 10 +++-
8 files changed, 167 insertions(+), 33 deletions(-)
--
2.53.0