[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 7/7] amd/pvh: enable ACPI C1E disable quirk on PVH Dom0
On Fri, Nov 02, 2018 at 03:06:58AM -0600, Jan Beulich wrote: > >>> On 30.10.18 at 16:41, <roger.pau@xxxxxxxxxx> wrote: > > --- a/xen/arch/x86/cpu/amd.c > > +++ b/xen/arch/x86/cpu/amd.c > > @@ -44,6 +44,9 @@ integer_param("cpuid_mask_thermal_ecx", > > opt_cpuid_mask_thermal_ecx); > > s8 __read_mostly opt_allow_unsafe; > > boolean_param("allow_unsafe", opt_allow_unsafe); > > > > +/* Signal whether the ACPI C1E quirk is required. */ > > +bool amd_acpi_c1e_quirk; > > __read_mostly > > > --- a/xen/arch/x86/hvm/svm/svm.c > > +++ b/xen/arch/x86/hvm/svm/svm.c > > @@ -1273,6 +1273,24 @@ void svm_host_osvw_init() > > spin_unlock(&osvw_lock); > > } > > > > +static int acpi_c1e_quirk(int dir, unsigned int port, unsigned int bytes, > > + uint32_t *val) > > +{ > > + ASSERT(bytes == 1 && port == acpi_smi_cmd); > > + > > + if ( dir == IOREQ_READ ) > > + { > > + *val = inb(port); > > + return X86EMUL_OKAY; > > + } > > + > > + outb(*val, port); > > + if ( *val == acpi_enable_value ) > > + on_each_cpu(amd_disable_c1e, NULL, 1); > > + > > + return X86EMUL_OKAY; > > +} > > I think you could do with even less logic duplication if instead you > called check_disable_c1e() (then given an amd_ prefix of course) > here. I'd then further consider to do away with > pv_post_outb_hook in a follow-up patch, getting the PV side > closer to the model used here. Using check_disable_c1e incurs in one extra check that's not needed here, since the port will always be acpi_smi_cmd in acpi_c1e_quirk. In any case I agree it's better to use check_disable_c1e so there's slightly less code repetition. > > Not being the maintainer of this code, I'd nevertheless like to also > suggest to use if/else here, making the function get away with > just a single return point. Ack, will resend with the fixes. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |