diff options
Diffstat (limited to 'include/linux/smp.h')
| -rw-r--r-- | include/linux/smp.h | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/include/linux/smp.h b/include/linux/smp.h index 44153fdf73fc..e2fa3ab4afc5 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h | |||
| @@ -52,23 +52,12 @@ extern void smp_cpus_done(unsigned int max_cpus); | |||
| 52 | /* | 52 | /* |
| 53 | * Call a function on all other processors | 53 | * Call a function on all other processors |
| 54 | */ | 54 | */ |
| 55 | extern int smp_call_function (void (*func) (void *info), void *info, | 55 | int smp_call_function(void(*func)(void *info), void *info, int retry, int wait); |
| 56 | int retry, int wait); | ||
| 57 | 56 | ||
| 58 | /* | 57 | /* |
| 59 | * Call a function on all processors | 58 | * Call a function on all processors |
| 60 | */ | 59 | */ |
| 61 | static inline int on_each_cpu(void (*func) (void *info), void *info, | 60 | int on_each_cpu(void (*func) (void *info), void *info, int retry, int wait); |
| 62 | int retry, int wait) | ||
| 63 | { | ||
| 64 | int ret = 0; | ||
| 65 | |||
| 66 | preempt_disable(); | ||
| 67 | ret = smp_call_function(func, info, retry, wait); | ||
| 68 | func(info); | ||
| 69 | preempt_enable(); | ||
| 70 | return ret; | ||
| 71 | } | ||
| 72 | 61 | ||
| 73 | #define MSG_ALL_BUT_SELF 0x8000 /* Assume <32768 CPU's */ | 62 | #define MSG_ALL_BUT_SELF 0x8000 /* Assume <32768 CPU's */ |
| 74 | #define MSG_ALL 0x8001 | 63 | #define MSG_ALL 0x8001 |
| @@ -93,8 +82,18 @@ void smp_prepare_boot_cpu(void); | |||
| 93 | */ | 82 | */ |
| 94 | #define raw_smp_processor_id() 0 | 83 | #define raw_smp_processor_id() 0 |
| 95 | #define hard_smp_processor_id() 0 | 84 | #define hard_smp_processor_id() 0 |
| 96 | #define smp_call_function(func,info,retry,wait) ({ 0; }) | 85 | static inline int up_smp_call_function(void) |
| 97 | #define on_each_cpu(func,info,retry,wait) ({ func(info); 0; }) | 86 | { |
| 87 | return 0; | ||
| 88 | } | ||
| 89 | #define smp_call_function(func,info,retry,wait) (up_smp_call_function()) | ||
| 90 | #define on_each_cpu(func,info,retry,wait) \ | ||
| 91 | ({ \ | ||
| 92 | local_irq_disable(); \ | ||
| 93 | func(info); \ | ||
| 94 | local_irq_enable(); \ | ||
| 95 | 0; \ | ||
| 96 | }) | ||
| 98 | static inline void smp_send_reschedule(int cpu) { } | 97 | static inline void smp_send_reschedule(int cpu) { } |
| 99 | #define num_booting_cpus() 1 | 98 | #define num_booting_cpus() 1 |
| 100 | #define smp_prepare_boot_cpu() do {} while (0) | 99 | #define smp_prepare_boot_cpu() do {} while (0) |
