diff options
Diffstat (limited to 'arch/arm/mm/Kconfig')
-rw-r--r-- | arch/arm/mm/Kconfig | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 27892e34b060..3fefb43c67f7 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -228,7 +228,6 @@ config CPU_SA1100 | |||
228 | select CPU_CACHE_V4WB | 228 | select CPU_CACHE_V4WB |
229 | select CPU_CACHE_VIVT | 229 | select CPU_CACHE_VIVT |
230 | select CPU_TLB_V4WB | 230 | select CPU_TLB_V4WB |
231 | select CPU_MINICACHE | ||
232 | 231 | ||
233 | # XScale | 232 | # XScale |
234 | config CPU_XSCALE | 233 | config CPU_XSCALE |
@@ -239,7 +238,6 @@ config CPU_XSCALE | |||
239 | select CPU_ABRT_EV5T | 238 | select CPU_ABRT_EV5T |
240 | select CPU_CACHE_VIVT | 239 | select CPU_CACHE_VIVT |
241 | select CPU_TLB_V4WBI | 240 | select CPU_TLB_V4WBI |
242 | select CPU_MINICACHE | ||
243 | 241 | ||
244 | # ARMv6 | 242 | # ARMv6 |
245 | config CPU_V6 | 243 | config CPU_V6 |
@@ -345,11 +343,6 @@ config CPU_TLB_V4WBI | |||
345 | config CPU_TLB_V6 | 343 | config CPU_TLB_V6 |
346 | bool | 344 | bool |
347 | 345 | ||
348 | config CPU_MINICACHE | ||
349 | bool | ||
350 | help | ||
351 | Processor has a minicache. | ||
352 | |||
353 | comment "Processor Features" | 346 | comment "Processor Features" |
354 | 347 | ||
355 | config ARM_THUMB | 348 | config ARM_THUMB |
@@ -410,17 +403,30 @@ config CPU_BPREDICT_DISABLE | |||
410 | help | 403 | help |
411 | Say Y here to disable branch prediction. If unsure, say N. | 404 | Say Y here to disable branch prediction. If unsure, say N. |
412 | 405 | ||
406 | config TLS_REG_EMUL | ||
407 | bool | ||
408 | default y if SMP && (CPU_32v5 || CPU_32v4 || CPU_32v3) | ||
409 | help | ||
410 | An SMP system using a pre-ARMv6 processor (there are apparently | ||
411 | a few prototypes like that in existence) and therefore access to | ||
412 | that required register must be emulated. | ||
413 | |||
413 | config HAS_TLS_REG | 414 | config HAS_TLS_REG |
414 | bool | 415 | bool |
415 | depends on CPU_32v6 && !CPU_32v5 && !CPU_32v4 && !CPU_32v3 | 416 | depends on !TLS_REG_EMUL |
416 | default y | 417 | default y if SMP || CPU_32v7 |
417 | help | 418 | help |
418 | This selects support for the CP15 thread register. | 419 | This selects support for the CP15 thread register. |
419 | It is defined to be available on ARMv6 or later. However | 420 | It is defined to be available on some ARMv6 processors (including |
420 | if the kernel is configured to support multiple CPUs including | 421 | all SMP capable ARMv6's) or later processors. User space may |
421 | a pre-ARMv6 processors, or if a given ARMv6 processor doesn't | 422 | assume directly accessing that register and always obtain the |
422 | implement the thread register for some reason, then access to | 423 | expected value only on ARMv7 and above. |
423 | this register from user space must be trapped and emulated. | 424 | |
424 | If user space is relying on the __kuser_get_tls code then | 425 | config NEEDS_SYSCALL_FOR_CMPXCHG |
425 | there should not be any impact. | 426 | bool |
427 | default y if SMP && (CPU_32v5 || CPU_32v4 || CPU_32v3) | ||
428 | help | ||
429 | SMP on a pre-ARMv6 processor? Well OK then. | ||
430 | Forget about fast user space cmpxchg support. | ||
431 | It is just not possible. | ||
426 | 432 | ||