diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-09-09 06:34:15 -0400 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-11-07 04:04:31 -0500 |
commit | 7d0857a54aedbd47b3de503933d65ce462970bd6 (patch) | |
tree | bb58cf17cbe9e22baae90cb299caf118e51aaa04 /arch/arc | |
parent | 57e26e57454fae4f1d15c2e9fa965b7a8046ab34 (diff) |
ARC: [SMP] Disallow RTSC
RTSC is strictly incore and must not be allowed in SMP configs
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc')
-rw-r--r-- | arch/arc/Kconfig | 6 | ||||
-rw-r--r-- | arch/arc/kernel/time.c | 7 |
2 files changed, 5 insertions, 8 deletions
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index fb4177e48260..5ede5460c806 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig | |||
@@ -136,9 +136,6 @@ if SMP | |||
136 | config ARC_HAS_COH_CACHES | 136 | config ARC_HAS_COH_CACHES |
137 | def_bool n | 137 | def_bool n |
138 | 138 | ||
139 | config ARC_HAS_COH_RTSC | ||
140 | def_bool n | ||
141 | |||
142 | config ARC_HAS_REENTRANT_IRQ_LV2 | 139 | config ARC_HAS_REENTRANT_IRQ_LV2 |
143 | def_bool n | 140 | def_bool n |
144 | 141 | ||
@@ -332,8 +329,7 @@ config ARC_HAS_RTSC | |||
332 | bool "Insn: RTSC (64-bit r/o cycle counter)" | 329 | bool "Insn: RTSC (64-bit r/o cycle counter)" |
333 | default y | 330 | default y |
334 | depends on ARC_CPU_REL_4_10 | 331 | depends on ARC_CPU_REL_4_10 |
335 | # if SMP, enable RTSC only if counter is coherent across cores | 332 | depends on !SMP |
336 | depends on !SMP || ARC_HAS_COH_RTSC | ||
337 | 333 | ||
338 | endmenu # "ARC CPU Configuration" | 334 | endmenu # "ARC CPU Configuration" |
339 | 335 | ||
diff --git a/arch/arc/kernel/time.c b/arch/arc/kernel/time.c index 0a9b6b289c4f..e5f3a837fb35 100644 --- a/arch/arc/kernel/time.c +++ b/arch/arc/kernel/time.c | |||
@@ -63,9 +63,10 @@ | |||
63 | 63 | ||
64 | int arc_counter_setup(void) | 64 | int arc_counter_setup(void) |
65 | { | 65 | { |
66 | /* RTSC insn taps into cpu clk, needs no setup */ | 66 | /* |
67 | 67 | * For SMP this needs to be 0. However Kconfig glue doesn't | |
68 | /* For SMP, only allowed if cross-core-sync, hence usable as cs */ | 68 | * enable this option for SMP configs |
69 | */ | ||
69 | return 1; | 70 | return 1; |
70 | } | 71 | } |
71 | 72 | ||