• Cornelia Huck's avatar
    virtio/s390: implement virtio-ccw revision 2 correctly · 182f709c
    Cornelia Huck authored
    CCW_CMD_READ_STATUS was introduced with revision 2 of virtio-ccw,
    and drivers should only rely on it being implemented when they
    negotiated at least that revision with the device.
    
    However, virtio_ccw_get_status() issued READ_STATUS for any
    device operating at least at revision 1. If the device accepts
    READ_STATUS regardless of the negotiated revision (which some
    implementations like QEMU do, even though the spec currently does
    not allow it), everything works as intended. While a device
    rejecting the command should also be handled gracefully, we will
    not be able to see any changes the device makes to the status,
    such as setting NEEDS_RESET or setting the status to zero after
    a completed reset.
    
    We negotiated the revision to at most 1, as we never bumped the
    maximum revision; let's do that now and properly send READ_STATUS
    only if we are operating at least at revision 2.
    
    Cc: stable@vger.kernel.org
    Fixes: 7d3ce5ab ("virtio/s390: support READ_STATUS command for virtio-ccw")
    Reviewed-by: default avatarHalil Pasic <pasic@linux.ibm.com>
    Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    Link: https://lore.kernel.org/r/20210216110645.1087321-1-cohuck@redhat.comSigned-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    182f709c
virtio_ccw.c 37.8 KB