loongarch bug fix for 10.0
-----BEGIN PGP SIGNATURE----- iLMEAAEKAB0WIQS4/x2g0v3LLaCcbCxAov/yOSY+3wUCZ/THrQAKCRBAov/yOSY+ 37asA/0YLOX9BvqG5Qk2cDYJD7ZCTuVsd7bJ0VHGbbf4vuuvmD8ubGeJf1F8cse0 mufip5/DHlzV3gB+G/vavkG/i45mMDlkyFgvuYaEHZiYH/+3S1Np0/iyl3RFpGNz Srua0Flo4PppYRbQ2NG0puvpuhNziTQTMneTm2YiMMBxl4p2OA== =BwNB -----END PGP SIGNATURE----- Merge tag 'pull-loongarch-20250408' of https://github.com/gaosong715/qemu into staging loongarch bug fix for 10.0 # -----BEGIN PGP SIGNATURE----- # # iLMEAAEKAB0WIQS4/x2g0v3LLaCcbCxAov/yOSY+3wUCZ/THrQAKCRBAov/yOSY+ # 37asA/0YLOX9BvqG5Qk2cDYJD7ZCTuVsd7bJ0VHGbbf4vuuvmD8ubGeJf1F8cse0 # mufip5/DHlzV3gB+G/vavkG/i45mMDlkyFgvuYaEHZiYH/+3S1Np0/iyl3RFpGNz # Srua0Flo4PppYRbQ2NG0puvpuhNziTQTMneTm2YiMMBxl4p2OA== # =BwNB # -----END PGP SIGNATURE----- # gpg: Signature made Tue 08 Apr 2025 02:52:29 EDT # gpg: using RSA key B8FF1DA0D2FDCB2DA09C6C2C40A2FFF239263EDF # gpg: Good signature from "Song Gao <m17746591750@163.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: B8FF 1DA0 D2FD CB2D A09C 6C2C 40A2 FFF2 3926 3EDF * tag 'pull-loongarch-20250408' of https://github.com/gaosong715/qemu: hw/loongarch/virt: Replace destination error with error_abort hw/loongarch/virt: Fix cpuslot::cpu set at last in virt_cpu_plug() Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
e5ddbb430c
@ -936,29 +936,15 @@ static void virt_cpu_unplug(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp)
|
||||
{
|
||||
CPUArchId *cpu_slot;
|
||||
Error *err = NULL;
|
||||
LoongArchCPU *cpu = LOONGARCH_CPU(dev);
|
||||
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev);
|
||||
|
||||
/* Notify ipi and extioi irqchip to remove interrupt routing to CPU */
|
||||
hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->ipi), dev, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
|
||||
hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->extioi), dev, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->ipi), dev, &error_abort);
|
||||
hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->extioi), dev, &error_abort);
|
||||
|
||||
/* Notify acpi ged CPU removed */
|
||||
hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->acpi_ged), dev, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->acpi_ged), dev, &error_abort);
|
||||
|
||||
cpu_slot = virt_find_cpu_slot(MACHINE(lvms), cpu->phy_id);
|
||||
cpu_slot->cpu = NULL;
|
||||
@ -971,33 +957,22 @@ static void virt_cpu_plug(HotplugHandler *hotplug_dev,
|
||||
CPUArchId *cpu_slot;
|
||||
LoongArchCPU *cpu = LOONGARCH_CPU(dev);
|
||||
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev);
|
||||
Error *err = NULL;
|
||||
|
||||
cpu_slot = virt_find_cpu_slot(MACHINE(lvms), cpu->phy_id);
|
||||
cpu_slot->cpu = CPU(dev);
|
||||
if (lvms->ipi) {
|
||||
hotplug_handler_plug(HOTPLUG_HANDLER(lvms->ipi), dev, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
hotplug_handler_plug(HOTPLUG_HANDLER(lvms->ipi), dev, &error_abort);
|
||||
}
|
||||
|
||||
if (lvms->extioi) {
|
||||
hotplug_handler_plug(HOTPLUG_HANDLER(lvms->extioi), dev, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
hotplug_handler_plug(HOTPLUG_HANDLER(lvms->extioi), dev, &error_abort);
|
||||
}
|
||||
|
||||
if (lvms->acpi_ged) {
|
||||
hotplug_handler_plug(HOTPLUG_HANDLER(lvms->acpi_ged), dev, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
}
|
||||
hotplug_handler_plug(HOTPLUG_HANDLER(lvms->acpi_ged), dev,
|
||||
&error_abort);
|
||||
}
|
||||
|
||||
cpu_slot = virt_find_cpu_slot(MACHINE(lvms), cpu->phy_id);
|
||||
cpu_slot->cpu = CPU(dev);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user