Explorar o código

powerpc/mm: Fix missing update of HID register on secondary CPUs

We need to update on secondaries for the selected MMU mode.

Fixes: ad410674f560 ("powerpc/mm: Update the HID bit when switching from radix to hash")
Reported-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Aneesh Kumar K.V %!s(int64=8) %!d(string=hai) anos
pai
achega
cac4a18540
Modificáronse 2 ficheiros con 8 adicións e 0 borrados
  1. 4 0
      arch/powerpc/mm/hash_utils_64.c
  2. 4 0
      arch/powerpc/mm/pgtable-radix.c

+ 4 - 0
arch/powerpc/mm/hash_utils_64.c

@@ -1029,6 +1029,10 @@ void hash__early_init_mmu_secondary(void)
 {
 {
 	/* Initialize hash table for that CPU */
 	/* Initialize hash table for that CPU */
 	if (!firmware_has_feature(FW_FEATURE_LPAR)) {
 	if (!firmware_has_feature(FW_FEATURE_LPAR)) {
+
+		if (cpu_has_feature(CPU_FTR_POWER9_DD1))
+			update_hid_for_hash();
+
 		if (!cpu_has_feature(CPU_FTR_ARCH_300))
 		if (!cpu_has_feature(CPU_FTR_ARCH_300))
 			mtspr(SPRN_SDR1, _SDR1);
 			mtspr(SPRN_SDR1, _SDR1);
 		else
 		else

+ 4 - 0
arch/powerpc/mm/pgtable-radix.c

@@ -388,6 +388,10 @@ void radix__early_init_mmu_secondary(void)
 	 * update partition table control register and UPRT
 	 * update partition table control register and UPRT
 	 */
 	 */
 	if (!firmware_has_feature(FW_FEATURE_LPAR)) {
 	if (!firmware_has_feature(FW_FEATURE_LPAR)) {
+
+		if (cpu_has_feature(CPU_FTR_POWER9_DD1))
+			update_hid_for_radix();
+
 		lpcr = mfspr(SPRN_LPCR);
 		lpcr = mfspr(SPRN_LPCR);
 		mtspr(SPRN_LPCR, lpcr | LPCR_UPRT | LPCR_HR);
 		mtspr(SPRN_LPCR, lpcr | LPCR_UPRT | LPCR_HR);