[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/hvm: Propagate real error information up through hvm_load()
On 19.07.2021 13:14, Andrew Cooper wrote: > hvm_load() is currently a mix of -errno and -1 style error handling, which > aliases -EPERM. This leads to the following confusing diagnostics: > > From userspace: > xc: info: Restoring domain > xc: error: Unable to restore HVM context (1 = Operation not permitted): > Internal error > xc: error: Restore failed (1 = Operation not permitted): Internal error > xc_domain_restore: [1] Restore failed (1 = Operation not permitted) > > From Xen: > (XEN) HVM10.0 restore: inconsistent xsave state (feat=0x2ff accum=0x21f > xcr0=0x7 bv=0x3 err=-22) > (XEN) HVM10 restore: failed to load entry 16/0 > > The actual error was a bad backport, but the -EINVAL got converted to -EPERM > on the way out of the hypercall. > > The overwhelming majority of *_load() handlers already use -errno consistenty. > Fix up the rest to be consistent, and fix a few other errors noticed along the > way. > > * Failures of hvm_load_entry() indicate a truncated record or other bad data > size. Use -ENODATA. But then ... > @@ -421,8 +421,8 @@ static int pit_load(struct domain *d, > hvm_domain_context_t *h) > > if ( hvm_load_entry(PIT, h, &pit->hw) ) > { > - spin_unlock(&pit->lock); > - return 1; > + rc = -ENODEV; > + goto out; > } ... use -ENODATA here as well? Preferably with the adjustment Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> I'll pick this up for backporting once I see it in the tree. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |