• Andre Przywara's avatar
    KVM: arm/arm64: vgic-new: Add userland access to VGIC dist registers · 7d450e28
    Andre Przywara authored
    Userland may want to save and restore the state of the in-kernel VGIC,
    so we provide the code which takes a userland request and translate
    that into calls to our MMIO framework.
    
    From Christoffer:
    When accessing the VGIC state from userspace we really don't want a VCPU
    to be messing with the state at the same time, and the API specifies
    that we should return -EBUSY if any VCPUs are running.
    Check and prevent VCPUs from running by grabbing their mutexes, one by
    one, and error out if we fail.
    (Note: This could potentially be simplified to just do a simple check
    and see if any VCPUs are running, and return -EBUSY then, without
    enforcing the locking throughout the duration of the uaccess, if we
    think that taking/releasing all these mutexes for every single GIC
    register access is too heavyweight.)
    Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
    Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
    7d450e28
vgic-kvm-device.c 9.55 KB