• Gavin Shan's avatar
    KVM: arm64: Add helper vgic_write_guest_lock() · a23eaf93
    Gavin Shan authored
    Currently, the unknown no-running-vcpu sites are reported when a
    dirty page is tracked by mark_page_dirty_in_slot(). Until now, the
    only known no-running-vcpu site is saving vgic/its tables through
    KVM_DEV_ARM_{VGIC_GRP_CTRL, ITS_SAVE_TABLES} command on KVM device
    "kvm-arm-vgic-its". Unfortunately, there are more unknown sites to
    be handled and no-running-vcpu context will be allowed in these
    sites: (1) KVM_DEV_ARM_{VGIC_GRP_CTRL, ITS_RESTORE_TABLES} command
    on KVM device "kvm-arm-vgic-its" to restore vgic/its tables. The
    vgic3 LPI pending status could be restored. (2) Save vgic3 pending
    table through KVM_DEV_ARM_{VGIC_GRP_CTRL, VGIC_SAVE_PENDING_TABLES}
    command on KVM device "kvm-arm-vgic-v3".
    
    In order to handle those unknown cases, we need a unified helper
    vgic_write_guest_lock(). struct vgic_dist::save_its_tables_in_progress
    is also renamed to struct vgic_dist::save_tables_in_progress.
    
    No functional change intended.
    Suggested-by: default avatarOliver Upton <oliver.upton@linux.dev>
    Signed-off-by: default avatarGavin Shan <gshan@redhat.com>
    Reviewed-by: default avatarOliver Upton <oliver.upton@linux.dev>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230126235451.469087-3-gshan@redhat.com
    a23eaf93
vgic-its.c 72 KB