diff options
| -rw-r--r-- | arch/arm/kernel/process.c | 4 | ||||
| -rw-r--r-- | arch/cris/arch-v32/kernel/process.c | 8 | ||||
| -rw-r--r-- | arch/cris/include/asm/processor.h | 7 | ||||
| -rw-r--r-- | arch/cris/kernel/process.c | 25 | ||||
| -rw-r--r-- | arch/microblaze/include/asm/processor.h | 2 | ||||
| -rw-r--r-- | arch/microblaze/kernel/process.c | 12 | ||||
| -rw-r--r-- | arch/mn10300/kernel/smp.c | 5 |
7 files changed, 3 insertions, 60 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 047d3e40e470..92884c86189d 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
| @@ -64,16 +64,12 @@ void disable_hlt(void) | |||
| 64 | hlt_counter++; | 64 | hlt_counter++; |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | EXPORT_SYMBOL(disable_hlt); | ||
| 68 | |||
| 69 | void enable_hlt(void) | 67 | void enable_hlt(void) |
| 70 | { | 68 | { |
| 71 | hlt_counter--; | 69 | hlt_counter--; |
| 72 | BUG_ON(hlt_counter < 0); | 70 | BUG_ON(hlt_counter < 0); |
| 73 | } | 71 | } |
| 74 | 72 | ||
| 75 | EXPORT_SYMBOL(enable_hlt); | ||
| 76 | |||
| 77 | static int __init nohlt_setup(char *__unused) | 73 | static int __init nohlt_setup(char *__unused) |
| 78 | { | 74 | { |
| 79 | hlt_counter = 1; | 75 | hlt_counter = 1; |
diff --git a/arch/cris/arch-v32/kernel/process.c b/arch/cris/arch-v32/kernel/process.c index 2b23ef0e4452..4857933d59f4 100644 --- a/arch/cris/arch-v32/kernel/process.c +++ b/arch/cris/arch-v32/kernel/process.c | |||
| @@ -20,16 +20,14 @@ | |||
| 20 | 20 | ||
| 21 | extern void stop_watchdog(void); | 21 | extern void stop_watchdog(void); |
| 22 | 22 | ||
| 23 | extern int cris_hlt_counter; | ||
| 24 | |||
| 25 | /* We use this if we don't have any better idle routine. */ | 23 | /* We use this if we don't have any better idle routine. */ |
| 26 | void default_idle(void) | 24 | void default_idle(void) |
| 27 | { | 25 | { |
| 28 | local_irq_disable(); | 26 | local_irq_disable(); |
| 29 | if (!need_resched() && !cris_hlt_counter) { | 27 | if (!need_resched()) { |
| 30 | /* Halt until exception. */ | 28 | /* Halt until exception. */ |
| 31 | __asm__ volatile("ei \n\t" | 29 | __asm__ volatile("ei \n\t" |
| 32 | "halt "); | 30 | "halt "); |
| 33 | } | 31 | } |
| 34 | local_irq_enable(); | 32 | local_irq_enable(); |
| 35 | } | 33 | } |
diff --git a/arch/cris/include/asm/processor.h b/arch/cris/include/asm/processor.h index 675823f70c0f..c0a29b96b92b 100644 --- a/arch/cris/include/asm/processor.h +++ b/arch/cris/include/asm/processor.h | |||
| @@ -65,13 +65,6 @@ static inline void release_thread(struct task_struct *dead_task) | |||
| 65 | 65 | ||
| 66 | #define cpu_relax() barrier() | 66 | #define cpu_relax() barrier() |
| 67 | 67 | ||
| 68 | /* | ||
| 69 | * disable hlt during certain critical i/o operations | ||
| 70 | */ | ||
| 71 | #define HAVE_DISABLE_HLT | ||
| 72 | void disable_hlt(void); | ||
| 73 | void enable_hlt(void); | ||
| 74 | |||
| 75 | void default_idle(void); | 68 | void default_idle(void); |
| 76 | 69 | ||
| 77 | #endif /* __ASM_CRIS_PROCESSOR_H */ | 70 | #endif /* __ASM_CRIS_PROCESSOR_H */ |
diff --git a/arch/cris/kernel/process.c b/arch/cris/kernel/process.c index 104ff4dd9b98..508c9cdacc7b 100644 --- a/arch/cris/kernel/process.c +++ b/arch/cris/kernel/process.c | |||
| @@ -29,31 +29,6 @@ | |||
| 29 | 29 | ||
| 30 | //#define DEBUG | 30 | //#define DEBUG |
| 31 | 31 | ||
| 32 | /* | ||
| 33 | * The hlt_counter, disable_hlt and enable_hlt is just here as a hook if | ||
| 34 | * there would ever be a halt sequence (for power save when idle) with | ||
| 35 | * some largish delay when halting or resuming *and* a driver that can't | ||
| 36 | * afford that delay. The hlt_counter would then be checked before | ||
| 37 | * executing the halt sequence, and the driver marks the unhaltable | ||
| 38 | * region by enable_hlt/disable_hlt. | ||
| 39 | */ | ||
| 40 | |||
| 41 | int cris_hlt_counter=0; | ||
| 42 | |||
| 43 | void disable_hlt(void) | ||
| 44 | { | ||
| 45 | cris_hlt_counter++; | ||
| 46 | } | ||
| 47 | |||
| 48 | EXPORT_SYMBOL(disable_hlt); | ||
| 49 | |||
| 50 | void enable_hlt(void) | ||
| 51 | { | ||
| 52 | cris_hlt_counter--; | ||
| 53 | } | ||
| 54 | |||
| 55 | EXPORT_SYMBOL(enable_hlt); | ||
| 56 | |||
| 57 | extern void default_idle(void); | 32 | extern void default_idle(void); |
| 58 | 33 | ||
| 59 | void (*pm_power_off)(void); | 34 | void (*pm_power_off)(void); |
diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h index 0759153e8117..f576fe018e5a 100644 --- a/arch/microblaze/include/asm/processor.h +++ b/arch/microblaze/include/asm/processor.h | |||
| @@ -160,8 +160,6 @@ unsigned long get_wchan(struct task_struct *p); | |||
| 160 | # define STACK_TOP TASK_SIZE | 160 | # define STACK_TOP TASK_SIZE |
| 161 | # define STACK_TOP_MAX STACK_TOP | 161 | # define STACK_TOP_MAX STACK_TOP |
| 162 | 162 | ||
| 163 | void disable_hlt(void); | ||
| 164 | void enable_hlt(void); | ||
| 165 | void default_idle(void); | 163 | void default_idle(void); |
| 166 | 164 | ||
| 167 | #ifdef CONFIG_DEBUG_FS | 165 | #ifdef CONFIG_DEBUG_FS |
diff --git a/arch/microblaze/kernel/process.c b/arch/microblaze/kernel/process.c index fa0ea609137c..7c36171771f2 100644 --- a/arch/microblaze/kernel/process.c +++ b/arch/microblaze/kernel/process.c | |||
| @@ -46,18 +46,6 @@ EXPORT_SYMBOL(pm_power_off); | |||
| 46 | 46 | ||
| 47 | static int hlt_counter = 1; | 47 | static int hlt_counter = 1; |
| 48 | 48 | ||
| 49 | void disable_hlt(void) | ||
| 50 | { | ||
| 51 | hlt_counter++; | ||
| 52 | } | ||
| 53 | EXPORT_SYMBOL(disable_hlt); | ||
| 54 | |||
| 55 | void enable_hlt(void) | ||
| 56 | { | ||
| 57 | hlt_counter--; | ||
| 58 | } | ||
| 59 | EXPORT_SYMBOL(enable_hlt); | ||
| 60 | |||
| 61 | static int __init nohlt_setup(char *__unused) | 49 | static int __init nohlt_setup(char *__unused) |
| 62 | { | 50 | { |
| 63 | hlt_counter = 1; | 51 | hlt_counter = 1; |
diff --git a/arch/mn10300/kernel/smp.c b/arch/mn10300/kernel/smp.c index 5d7e152a23b7..eaef5ad8e0ec 100644 --- a/arch/mn10300/kernel/smp.c +++ b/arch/mn10300/kernel/smp.c | |||
| @@ -935,8 +935,6 @@ int __cpu_up(unsigned int cpu, struct task_struct *tidle) | |||
| 935 | int timeout; | 935 | int timeout; |
| 936 | 936 | ||
| 937 | #ifdef CONFIG_HOTPLUG_CPU | 937 | #ifdef CONFIG_HOTPLUG_CPU |
| 938 | if (num_online_cpus() == 1) | ||
| 939 | disable_hlt(); | ||
| 940 | if (sleep_mode[cpu]) | 938 | if (sleep_mode[cpu]) |
| 941 | run_wakeup_cpu(cpu); | 939 | run_wakeup_cpu(cpu); |
| 942 | #endif /* CONFIG_HOTPLUG_CPU */ | 940 | #endif /* CONFIG_HOTPLUG_CPU */ |
| @@ -1003,9 +1001,6 @@ int __cpu_disable(void) | |||
| 1003 | void __cpu_die(unsigned int cpu) | 1001 | void __cpu_die(unsigned int cpu) |
| 1004 | { | 1002 | { |
| 1005 | run_sleep_cpu(cpu); | 1003 | run_sleep_cpu(cpu); |
| 1006 | |||
| 1007 | if (num_online_cpus() == 1) | ||
| 1008 | enable_hlt(); | ||
| 1009 | } | 1004 | } |
| 1010 | 1005 | ||
| 1011 | #ifdef CONFIG_MN10300_CACHE_ENABLED | 1006 | #ifdef CONFIG_MN10300_CACHE_ENABLED |
