|
@@ -410,17 +410,23 @@ config CPU_BPREDICT_DISABLE
|
|
|
help
|
|
|
Say Y here to disable branch prediction. If unsure, say N.
|
|
|
|
|
|
+config TLS_REG_EMUL
|
|
|
+ bool
|
|
|
+ default y if (SMP || CPU_32v6) && (CPU_32v5 || CPU_32v4 || CPU_32v3)
|
|
|
+ help
|
|
|
+ We might be running on an ARMv6+ processor which should have the TLS
|
|
|
+ register but for some reason we can't use it, or maybe an SMP system
|
|
|
+ using a pre-ARMv6 processor (there are apparently a few prototypes
|
|
|
+ like that in existence) and therefore access to that register must
|
|
|
+ be emulated.
|
|
|
+
|
|
|
config HAS_TLS_REG
|
|
|
bool
|
|
|
- depends on CPU_32v6 && !CPU_32v5 && !CPU_32v4 && !CPU_32v3
|
|
|
- default y
|
|
|
+ depends on CPU_32v6
|
|
|
+ default y if !TLS_REG_EMUL
|
|
|
help
|
|
|
This selects support for the CP15 thread register.
|
|
|
- It is defined to be available on ARMv6 or later. However
|
|
|
- if the kernel is configured to support multiple CPUs including
|
|
|
- a pre-ARMv6 processors, or if a given ARMv6 processor doesn't
|
|
|
- implement the thread register for some reason, then access to
|
|
|
- this register from user space must be trapped and emulated.
|
|
|
- If user space is relying on the __kuser_get_tls code then
|
|
|
- there should not be any impact.
|
|
|
+ It is defined to be available on ARMv6 or later. If a particular
|
|
|
+ ARMv6 or later CPU doesn't support it then it must omc;ide "select
|
|
|
+ TLS_REG_EMUL" along with its other caracteristics.
|
|
|
|