Messages in this thread | | | Date | Wed, 12 Oct 2022 20:47:14 +0000 | From | Sean Christopherson <> | Subject | Re: [PATCH v5 11/30] KVM: Add arch hook for reboot event |
| |
On Thu, Sep 22, 2022, isaku.yamahata@intel.com wrote: > From: Isaku Yamahata <isaku.yamahata@intel.com> > > Factor out the logic on reboot event as arch hook. Later kvm/x86 overrides > it. > > Suggested-by: Sean Christopherson <seanjc@google.com> > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com> > ---
...
> @@ -5135,6 +5141,8 @@ static void kvm_del_vm(void) > static int kvm_reboot(struct notifier_block *notifier, unsigned long val, > void *v) > { > + int r; > + > /* > * Some (well, at least mine) BIOSes hang on reboot if > * in vmx root mode. > @@ -5143,8 +5151,14 @@ static int kvm_reboot(struct notifier_block *notifier, unsigned long val, > */ > pr_info("kvm: exiting hardware virtualization\n"); > kvm_rebooting = true; > - on_each_cpu(hardware_disable_nolock, NULL, 1); > - return NOTIFY_OK; > + > + /* This hook is called without cpuhotplug disabled. */ > + cpus_read_lock(); > + mutex_lock(&kvm_lock); > + r = kvm_arch_reboot(val);
Unless there's a valid use case for rejecting/stopping reboot, which I'm pretty sure there isn't, don't allow arch code to return a value. I.e. return NOTIFY_OK unconditionally from kvm_reboot() and drop the return from kvm_arch_reboot().
> + mutex_unlock(&kvm_lock); > + cpus_read_unlock(); > + return r; > } > > static struct notifier_block kvm_reboot_notifier = { > -- > 2.25.1 >
| |