diff options
author | Nicolas Pitre <nico@org.rmk.(none)> | 2005-05-05 18:24:45 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-05-05 18:24:45 -0400 |
commit | 4b0e07a5566a4e3f141e52c1f17e683e4a5bba91 (patch) | |
tree | 4a2f67e6cb6ea665c6d45529a5b7c61ac255663d /arch/arm/mm/Kconfig | |
parent | f7e68bbf405a45d6e7c5b8fc384ff1ba20dd7aa4 (diff) |
[PATCH] ARM: 2663/1: straightify TLS register emulation a bit more
Patch from Nicolas Pitre
This better express things, and should cover RMK's weird SMP toys.
Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/Kconfig')
-rw-r--r-- | arch/arm/mm/Kconfig | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 27892e34b060..c4fc6be629de 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -410,17 +410,23 @@ 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_32v6) && (CPU_32v5 || CPU_32v4 || CPU_32v3) | ||
416 | help | ||
417 | We might be running on an ARMv6+ processor which should have the TLS | ||
418 | register but for some reason we can't use it, or maybe an SMP system | ||
419 | using a pre-ARMv6 processor (there are apparently a few prototypes | ||
420 | like that in existence) and therefore access to that register must | ||
421 | be emulated. | ||
422 | |||
413 | config HAS_TLS_REG | 423 | config HAS_TLS_REG |
414 | bool | 424 | bool |
415 | depends on CPU_32v6 && !CPU_32v5 && !CPU_32v4 && !CPU_32v3 | 425 | depends on CPU_32v6 |
416 | default y | 426 | default y if !TLS_REG_EMUL |
417 | help | 427 | help |
418 | This selects support for the CP15 thread register. | 428 | This selects support for the CP15 thread register. |
419 | It is defined to be available on ARMv6 or later. However | 429 | It is defined to be available on ARMv6 or later. If a particular |
420 | if the kernel is configured to support multiple CPUs including | 430 | ARMv6 or later CPU doesn't support it then it must omc;ide "select |
421 | a pre-ARMv6 processors, or if a given ARMv6 processor doesn't | 431 | TLS_REG_EMUL" along with its other caracteristics. |
422 | implement the thread register for some reason, then access to | ||
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 | 432 | ||