Last autumn, Jason Gunthorpe proposed some rework of vfio-ccw [1], to better fit with the new mdev API (thank you!). Part of that series was pulled for kernel 5.16 [2], but the complexities of the remaining patches got them hung up behind other work. I dusted off that work a couple weeks ago (see v1), but am going to split that further with the goal of this part to clean up the existing device lifecycle and FSM used by vfio-ccw. The remaining work runs into conflicts with other work (notably [2]), so I'd like to propose this first group without that hangup. This makes the behavior/usage of the FSM state a lot more consistent than it is today. This is all internal to vfio-ccw, with the exception of removal of mdev_uuid from include/linux/mdev.h in patch 1. @Kirti, I can drop that hunk if that's a concern for you. One potential conflict still exists on patch 6, with [3]. v1->v2: - Rebased to v5.19-rc2 - Patch 1: Remove mdev.h from vfio_ccw_fsm.c - Patch 4: Earlier patches removed meaningful users of private->mdev, leaving this as a very simple cleanup - [JG,MR] Added r-b's (Thank You!) - [MR] Patch 1: Update commit message - [MR] Patch 2: Add comment regarding interrupt types changing FSM state - [MR] Patch 5: Drop Fixes tag - [JG] Drop patch for clearing drvdata on mdev remove - [EF] Defer items to later series - The "if !private" patch, and JG's associated comment on patch 7; entire process requires further investigation - The vfio-mdev rework patches (to [2]) - The "tie vfio_ccw_private to mdev lifecycle" patches v1: https://lore.kernel.org/r/20220602171948.2790690-1-farman@xxxxxxxxxxxxx/ Footnotes: [1] https://lore.kernel.org/r/0-v3-57c1502c62fd+2190-ccw_mdev_jgg@xxxxxxxxxx/ [2] https://lore.kernel.org/r/20220603063328.3715-1-hch@xxxxxx/ [3] https://lore.kernel.org/r/165471414407.203056.474032786990662279.stgit@omen/ Cc: Kirti Wankhede <kwankhede@xxxxxxxxxx> Eric Farman (9): vfio/ccw: Fix FSM state if mdev probe fails vfio/ccw: Do not change FSM state in subchannel event vfio/ccw: Remove private->mdev vfio/ccw: Pass enum to FSM event jumptable vfio/ccw: Flatten MDEV device (un)register vfio/ccw: Create an OPEN FSM Event vfio/ccw: Create a CLOSE FSM event vfio/ccw: Refactor vfio_ccw_mdev_reset vfio/ccw: Move FSM open/close to MDEV open/close Michael Kawano (1): vfio/ccw: Remove UUID from s390 debug log drivers/s390/cio/vfio_ccw_async.c | 1 - drivers/s390/cio/vfio_ccw_drv.c | 59 ++++++------------- drivers/s390/cio/vfio_ccw_fsm.c | 89 ++++++++++++++++++++++++----- drivers/s390/cio/vfio_ccw_ops.c | 77 ++++++++----------------- drivers/s390/cio/vfio_ccw_private.h | 9 +-- include/linux/mdev.h | 5 -- 6 files changed, 117 insertions(+), 123 deletions(-) -- 2.32.0