The ioctl to determine whether KVM_DEV_FLIC_CLEAR_IO_IRQ is present receives the contents of the attribute struct as its payload, rather than a pointer to the payload itself as is convention.
This may result in erroneous errors from the ioctl, which would result in clear_io_supported being false when it otherwise could be used (which is helpful in device recovery). Cc: [email protected] Fixes: 9eccb8622c ("s390x/kvm: add interface for clearing IO irqs") Signed-off-by: Eric Farman <[email protected]> --- hw/intc/s390_flic_kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index f833a3996a..5e6d422fba 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -633,7 +633,7 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error **errp) /* Check clear_io_irq support */ test_attr.group = KVM_DEV_FLIC_CLEAR_IO_IRQ; flic_state->clear_io_supported = !ioctl(flic_state->fd, - KVM_HAS_DEVICE_ATTR, test_attr); + KVM_HAS_DEVICE_ATTR, &test_attr); } static void kvm_s390_flic_reset(DeviceState *dev) -- 2.53.0
