[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH] powerpc: Clear user CPU feature bits if TM is disable
From: |
Anton Blanchard |
Subject: |
[Qemu-ppc] [PATCH] powerpc: Clear user CPU feature bits if TM is disabled at runtime |
Date: |
Mon, 4 Apr 2016 21:11:12 +1000 |
In check_cpu_pa_features() we check a number of bits in the
ibm,pa-features array and set and clear CPU features based on what
we find. One of these bits is CPU_FTR_TM, the transactional memory
feature bit.
If this does disable TM at runtime, then we need to tell userspace
about it by clearing the user CPU feature bits.
Without this patch userspace processes will think they can execute
TM instructions and get killed when they try.
Signed-off-by: Anton Blanchard <address@hidden>
Cc: address@hidden
---
Michael I've added stable here because I'm seeing this on a number
of distros and would like to get it backported, but I'll leave it up
to you if it should go there.
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index f98be83..98c6c86 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -822,4 +822,18 @@ static int __init disable_hardlockup_detector(void)
return 0;
}
early_initcall(disable_hardlockup_detector);
+
+static int __init update_cpu_user_features(void)
+{
+ /*
+ * Firmware might have disabled TM by clearing the relevant
+ * bit in the ibm,pa-features array. In this case we need to
+ * tell userspace.
+ */
+ if (!cpu_has_feature(CPU_FTR_TM))
+ cur_cpu_spec->cpu_user_features2 &=
~(PPC_FEATURE2_HTM|PPC_FEATURE2_HTM_NOSC);
+
+ return 0;
+}
+early_initcall(update_cpu_user_features);
#endif
- Re: [Qemu-ppc] PR KVM and TM issues, Anton Blanchard, 2016/04/04
- [Qemu-ppc] [PATCH] powerpc: Clear user CPU feature bits if TM is disabled at runtime,
Anton Blanchard <=
- [Qemu-ppc] [PATCH 1/3] powerpc: scan_features() updates incorrect bits, Anton Blanchard, 2016/04/14
- Re: [Qemu-ppc] [1/3] powerpc: scan_features() updates incorrect bits, Michael Ellerman, 2016/04/18
- [Qemu-ppc] [PATCH v2 1/3] powerpc: scan_features() updates incorrect bits for REAL_LE, Michael Ellerman, 2016/04/18
- Re: [Qemu-ppc] [v2, 1/3] powerpc: scan_features() updates incorrect bits for REAL_LE, Michael Ellerman, 2016/04/19