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) |