|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 04/21] xen/x86: Clear dependent features when clearing a cpu cap
On Thu, Apr 07, 2016 at 12:57:09PM +0100, Andrew Cooper wrote:
> When clearing a cpu cap, clear all dependent features. This avoids having a
> featureset with intermediate features disabled, but leaf features enabled.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Reviewed-by: Jan Beulich <JBeulich@xxxxxxxx>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> ---
> v3:
> * Style fixes. Use __test_and_set_bit()
> ---
> xen/arch/x86/cpu/common.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index d302272..0942b44 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -53,8 +53,22 @@ static unsigned int cleared_caps[NCAPINTS];
>
> void __init setup_clear_cpu_cap(unsigned int cap)
> {
> + const uint32_t *dfs;
> + unsigned int i;
> +
> + if (__test_and_set_bit(cap, cleared_caps))
> + return;
> +
> __clear_bit(cap, boot_cpu_data.x86_capability);
> - __set_bit(cap, cleared_caps);
> + dfs = lookup_deep_deps(cap);
> +
> + if (!dfs)
> + return;
> +
> + for (i = 0; i < FSCAPINTS; ++i) {
> + cleared_caps[i] |= dfs[i];
> + boot_cpu_data.x86_capability[i] &= ~dfs[i];
> + }
> }
>
> static void default_init(struct cpuinfo_x86 * c)
> --
> 2.1.4
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |