lkml.org 
[lkml]   [2018]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 67/96] x86/cpu: Factor out application of forced CPU caps
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Andy Lutomirski <luto@kernel.org>

    commit 8bf1ebca215c262e48c15a4a15f175991776f57f upstream.

    There are multiple call sites that apply forced CPU caps. Factor
    them into a helper.

    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    Reviewed-by: Borislav Petkov <bp@suse.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Matthew Whitehead <tedheadster@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yu-cheng Yu <yu-cheng.yu@intel.com>
    Link: http://lkml.kernel.org/r/623ff7555488122143e4417de09b18be2085ad06.1484705016.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/x86/kernel/cpu/common.c | 20 ++++++++++++--------
    1 file changed, 12 insertions(+), 8 deletions(-)

    --- a/arch/x86/kernel/cpu/common.c
    +++ b/arch/x86/kernel/cpu/common.c
    @@ -706,6 +706,16 @@ void cpu_detect(struct cpuinfo_x86 *c)
    }
    }

    +static void apply_forced_caps(struct cpuinfo_x86 *c)
    +{
    + int i;
    +
    + for (i = 0; i < NCAPINTS; i++) {
    + c->x86_capability[i] &= ~cpu_caps_cleared[i];
    + c->x86_capability[i] |= cpu_caps_set[i];
    + }
    +}
    +
    void get_cpu_cap(struct cpuinfo_x86 *c)
    {
    u32 eax, ebx, ecx, edx;
    @@ -1086,10 +1096,7 @@ static void identify_cpu(struct cpuinfo_
    this_cpu->c_identify(c);

    /* Clear/Set all flags overridden by options, after probe */
    - for (i = 0; i < NCAPINTS; i++) {
    - c->x86_capability[i] &= ~cpu_caps_cleared[i];
    - c->x86_capability[i] |= cpu_caps_set[i];
    - }
    + apply_forced_caps(c);

    #ifdef CONFIG_X86_64
    c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
    @@ -1151,10 +1158,7 @@ static void identify_cpu(struct cpuinfo_
    * Clear/Set all flags overridden by options, need do it
    * before following smp all cpus cap AND.
    */
    - for (i = 0; i < NCAPINTS; i++) {
    - c->x86_capability[i] &= ~cpu_caps_cleared[i];
    - c->x86_capability[i] |= cpu_caps_set[i];
    - }
    + apply_forced_caps(c);

    /*
    * On SMP, boot_cpu_data holds the common feature set between

    \
     
     \ /
      Last update: 2018-01-15 13:47    [W:4.057 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site