Patch "powerpc: Update cpu_user_features2 in scan_features()" has been added to the 4.5-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
powerpc: Update cpu_user_features2 in scan_features()
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
powerpc-update-cpu_user_features2-in-scan_features.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
beff82374b259d726e2625ec6c518a5f2613f0aeMon Sep 17 00:00:00 2001
From: Anton Blanchard <[email protected]>
Date: Fri, 15 Apr 2016 12:07:24 +1000
Subject: powerpc: Update cpu_user_features2 in scan_features()
From: Anton Blanchard <[email protected]>
commit beff82374b259d726e2625ec6c518a5f2613f0ae upstream.
scan_features() updates cpu_user_features but not cpu_user_features2.
Amongst other things, cpu_user_features2 contains the user TM feature bits which we must keep in sync with the kernel TM feature bit.
--- arch/powerpc/kernel/prom.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)
arch/powerpc/kernel/prom.c +11 -8
@@ -148,23 +148,24 @@ static struct ibm_pa_feature {unsigned long cpu_features;/* CPU_FTR_xxx bit */ unsigned long mmu_features;/* MMU_FTR_xxx bit */ unsigned int cpu_user_ftrs;/* PPC_FEATURE_xxx bit */ +unsigned int cpu_user_ftrs2;/* PPC_FEATURE2_xxx bit */ unsigned char pabyte;/* byte number in ibm,pa-features */ unsigned char pabit;/* bit number (big-endian) */ unsigned char invert;/* if 1, pa bit set => clear feature */ } ibm_pa_features[] __initdata = { - {0, 0, PPC_FEATURE_HAS_MMU, 0, 0, 0}, - {0, 0, PPC_FEATURE_HAS_FPU, 0, 1, 0}, - {CPU_FTR_CTRL, 0, 0, 0, 3, 0}, - {CPU_FTR_NOEXECUTE, 0, 0, 0, 6, 0}, - {CPU_FTR_NODSISRALIGN, 0, 0, 1, 1, 1}, - {0, MMU_FTR_CI_LARGE_PAGE, 0, 1, 2, 0}, - {CPU_FTR_REAL_LE, 0, PPC_FEATURE_TRUE_LE, 5, 0, 0}, + {0, 0, PPC_FEATURE_HAS_MMU, 0, 0, 0, 0}, + {0, 0, PPC_FEATURE_HAS_FPU, 0, 0, 1, 0}, + {CPU_FTR_CTRL, 0, 0, 0, 0, 3, 0}, + {CPU_FTR_NOEXECUTE, 0, 0, 0, 0, 6, 0}, + {CPU_FTR_NODSISRALIGN, 0, 0, 0, 1, 1, 1}, + {0, MMU_FTR_CI_LARGE_PAGE, 0, 0, 1, 2, 0}, + {CPU_FTR_REAL_LE, 0, PPC_FEATURE_TRUE_LE, 0, 5, 0, 0}, /* * If the kernel doesn't support TM (ie. CONFIG_PPC_TRANSACTIONAL_MEM=n), * we don't want to turn on CPU_FTR_TM here, so we use CPU_FTR_TM_COMP * which is 0 if the kernel doesn't support TM. */ - {CPU_FTR_TM_COMP, 0, 0, 22, 0, 0}, + {CPU_FTR_TM_COMP, 0, 0, 0, 22, 0, 0}, }; static void __init scan_features(unsigned long node, const unsigned char *ftrs,
@@ -195,10 +196,12 @@ static void __init scan_features(unsigneif (bit ^ fp->invert) { cur_cpu_spec->cpu_features |= fp->cpu_features; cur_cpu_spec->cpu_user_features |= fp->cpu_user_ftrs; + cur_cpu_spec->cpu_user_features2 |= fp->cpu_user_ftrs2; cur_cpu_spec->mmu_features |= fp->mmu_features; }else { cur_cpu_spec->cpu_features &= ~fp->cpu_features; cur_cpu_spec->cpu_user_features &= ~fp->cpu_user_ftrs; + cur_cpu_spec->cpu_user_features2 &= ~fp->cpu_user_ftrs2; cur_cpu_spec->mmu_features &= ~fp->mmu_features; } }
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/powerpc-scan_features-updates-incorrect-bits-for-real_le.patch queue-4.5/powerpc-update-tm-user-feature-bits-in-scan_features.patch queue-4.5/powerpc-update-cpu_user_features2-in-scan_features.patch