]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
LoongArch: KVM: Disable updating of "num_cpu" and "feature"
authorBibo Mao <maobibo@loongson.cn>
Fri, 27 Jun 2025 10:27:44 +0000 (18:27 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Fri, 27 Jun 2025 10:27:44 +0000 (18:27 +0800)
Property "num_cpu" and "feature" are read-only once eiointc is created,
which are set with KVM_DEV_LOONGARCH_EXTIOI_GRP_CTRL attr group before
device creation.

Attr group KVM_DEV_LOONGARCH_EXTIOI_GRP_SW_STATUS is to update register
and software state for migration and reset usage, property "num_cpu" and
"feature" can not be update again if it is created already.

Here discard write operation with property "num_cpu" and "feature" in
attr group KVM_DEV_LOONGARCH_EXTIOI_GRP_CTRL.

Cc: stable@vger.kernel.org
Fixes: 1ad7efa552fd ("LoongArch: KVM: Add EIOINTC user mode read and write functions")
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kvm/intc/eiointc.c

index 056a75f7d090ee0f8fa46ecd8de9a60cf4ea2be1..a75f865d6fb96c4e32c94444b33085dec3bbd787 100644 (file)
@@ -926,9 +926,15 @@ static int kvm_eiointc_sw_status_access(struct kvm_device *dev,
        data = (void __user *)attr->addr;
        switch (addr) {
        case KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_NUM_CPU:
+               if (is_write)
+                       return ret;
+
                p = &s->num_cpu;
                break;
        case KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_FEATURE:
+               if (is_write)
+                       return ret;
+
                p = &s->features;
                break;
        case KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_STATE: