On Mon, 2026-06-22 at 20:25 -0400, [email protected] wrote:
> From: Zhuoying Cai <[email protected]>
>
> The initial support for virtio-blk-pci IPL devices used a single virt-queue,
> but
> other device types require multiple queues, and for PCI device types this also
> requires a per-queue notification offset.
>
> Add a PCI notify field to the VRing struct so that each queue has a unique
> notify offset as defined in the virtio spec.
>
> Signed-off-by: Zhuoying Cai <[email protected]>
> Signed-off-by: Jared Rossi <[email protected]>
> ---
> pc-bios/s390-ccw/virtio-pci.c | 38 +++++++++++++++++++++--------------
> pc-bios/s390-ccw/virtio-pci.h | 2 +-
> pc-bios/s390-ccw/virtio.c | 3 ++-
> pc-bios/s390-ccw/virtio.h | 1 +
> 4 files changed, 27 insertions(+), 17 deletions(-)
...snip...
> diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
> index a448dc96e2..df04479aa6 100644
> --- a/pc-bios/s390-ccw/virtio.c
> +++ b/pc-bios/s390-ccw/virtio.c
> @@ -114,7 +114,8 @@ bool vring_notify(VRing *vr)
> vr->cookie = virtio_ccw_notify(vdev.schid, vr->id, vr->cookie);
> break;
> case S390_IPL_TYPE_PCI:
> - vr->cookie = virtio_pci_notify(vr->id);
> + vr->cookie = virtio_pci_notify(vr);
> + break;
The addition of this break is an important (and correct) fix, but shouldn't be
tucked into this
change. Please make it its own (preceding) patch, with a Fixes tag against
d72fb5e6b2e.
Besides that, this looks fine.
> default:
> return 1;
> }
> diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h
> index d32a4830ca..75ae5bdbc2 100644
> --- a/pc-bios/s390-ccw/virtio.h
> +++ b/pc-bios/s390-ccw/virtio.h
> @@ -107,6 +107,7 @@ struct VRing {
> VRingUsed *used;
> long cookie;
> int id;
> + uint16_t pci_notify;
> };
> typedef struct VRing VRing;
>