1*412f6555SBibo Mao /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*412f6555SBibo Mao /* 3*412f6555SBibo Mao * LoongArch IPI interrupt KVM support 4*412f6555SBibo Mao * 5*412f6555SBibo Mao * Copyright (C) 2025 Loongson Technology Corporation Limited 6*412f6555SBibo Mao */ 7*412f6555SBibo Mao 8*412f6555SBibo Mao #include "qemu/osdep.h" 9*412f6555SBibo Mao #include "qapi/error.h" 10*412f6555SBibo Mao #include "hw/intc/loongarch_ipi.h" 11*412f6555SBibo Mao #include "system/kvm.h" 12*412f6555SBibo Mao #include "target/loongarch/cpu.h" 13*412f6555SBibo Mao 14*412f6555SBibo Mao void kvm_ipi_realize(DeviceState *dev, Error **errp) 15*412f6555SBibo Mao { 16*412f6555SBibo Mao LoongarchIPIState *lis = LOONGARCH_IPI(dev); 17*412f6555SBibo Mao int ret; 18*412f6555SBibo Mao 19*412f6555SBibo Mao ret = kvm_create_device(kvm_state, KVM_DEV_TYPE_LOONGARCH_IPI, false); 20*412f6555SBibo Mao if (ret < 0) { 21*412f6555SBibo Mao fprintf(stderr, "IPI KVM_CREATE_DEVICE failed: %s\n", 22*412f6555SBibo Mao strerror(-ret)); 23*412f6555SBibo Mao abort(); 24*412f6555SBibo Mao } 25*412f6555SBibo Mao 26*412f6555SBibo Mao lis->dev_fd = ret; 27*412f6555SBibo Mao } 28