diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2020-02-25 18:07:50 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2020-02-25 18:07:50 +0000 |
commit | 957b1c136865876fb3234b8d06cb7472b0f69127 (patch) | |
tree | 38590c1792849da6ef4f3075ee4242e86c817671 /.gitignore | |
parent | db736e0437aa6fd7c1b7e4599c17f9619ab6b837 (diff) |
hw/intc/arm_gic_kvm: Don't assume kernel can provide a GICv2handle-gicv3-only
In our KVM GICv2 realize function, we try to cope with old kernels
that don't provide the device control API (KVM_CAP_DEVICE_CTRL): we
try to use the device control, and if that fails we fall back to
assuming that the kernel has the old style KVM_CREATE_IRQCHIP and
that it will provide a GICv2.
This doesn't cater for the possibility of a kernel and hardware which
only provide a GICv3, which is very common now. On that setup we
will abort() later on in kvm_arm_pmu_set_irq() when we try to wire up
an interrupt to the GIC we failed to create.
If the kernel advertises KVM_CAP_DEVICE_CTRL we should trust it if it
says it can't create a GICv2, rather than assuming it has one. We
can then produce a more helpful error message including a hint about
the most probable reason for the failure.
If the kernel doesn't advertise KVM_CAP_DEVICE_CTRL then it is truly
ancient by this point but we might as well still fall back to a
KVM_CREATE_IRQCHIP GICv2.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions