diff options
Diffstat (limited to 'arch/arm/mm/Kconfig')
-rw-r--r-- | arch/arm/mm/Kconfig | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 27892e34b060..48bac7da8c70 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -410,17 +410,22 @@ config CPU_BPREDICT_DISABLE | |||
410 | help | 410 | help |
411 | Say Y here to disable branch prediction. If unsure, say N. | 411 | Say Y here to disable branch prediction. If unsure, say N. |
412 | 412 | ||
413 | config TLS_REG_EMUL | ||
414 | bool | ||
415 | default y if SMP && (CPU_32v5 || CPU_32v4 || CPU_32v3) | ||
416 | help | ||
417 | An SMP system using a pre-ARMv6 processor (there are apparently | ||
418 | a few prototypes like that in existence) and therefore access to | ||
419 | that required register must be emulated. | ||
420 | |||
413 | config HAS_TLS_REG | 421 | config HAS_TLS_REG |
414 | bool | 422 | bool |
415 | depends on CPU_32v6 && !CPU_32v5 && !CPU_32v4 && !CPU_32v3 | 423 | depends on !TLS_REG_EMUL |
416 | default y | 424 | default y if SMP || CPU_32v7 |
417 | help | 425 | help |
418 | This selects support for the CP15 thread register. | 426 | This selects support for the CP15 thread register. |
419 | It is defined to be available on ARMv6 or later. However | 427 | It is defined to be available on some ARMv6 processors (including |
420 | if the kernel is configured to support multiple CPUs including | 428 | all SMP capable ARMv6's) or later processors. User space may |
421 | a pre-ARMv6 processors, or if a given ARMv6 processor doesn't | 429 | assume directly accessing that register and always obtain the |
422 | implement the thread register for some reason, then access to | 430 | expected value only on ARMv7 and above. |
423 | this register from user space must be trapped and emulated. | ||
424 | If user space is relying on the __kuser_get_tls code then | ||
425 | there should not be any impact. | ||
426 | 431 | ||