mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
Clean up SMP macros and always have IRQs disabled when executing an
'smp_call_function' callback function. Signed-off-by: Keir Fraser <keir@xensource.com>
This commit is contained in:
1 parent
10d0334291
commit
73fc0df663
1 file changed
+16
-15
+16
-15
@@ -60,20 +60,6 @@ extern int on_selected_cpus(
|
||||
int retry,
|
||||
int wait);
|
||||
|
||||
/*
|
||||
* Call a function on all processors
|
||||
*/
|
||||
static inline int on_each_cpu(
|
||||
void (*func) (void *info),
|
||||
void *info,
|
||||
int retry,
|
||||
int wait)
|
||||
{
|
||||
int ret = smp_call_function(func, info, retry, wait);
|
||||
func(info);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Mark the boot cpu "online" so that it can call console drivers in
|
||||
* printk() and can access its per-cpu storage.
|
||||
@@ -91,7 +77,6 @@ void smp_prepare_boot_cpu(void);
|
||||
#define raw_smp_processor_id() 0
|
||||
#define hard_smp_processor_id() 0
|
||||
#define smp_call_function(func,info,retry,wait) ({ do {} while (0); 0; })
|
||||
#define on_each_cpu(func,info,retry,wait) ({ func(info); 0; })
|
||||
#define num_booting_cpus() 1
|
||||
#define smp_prepare_boot_cpu() do {} while (0)
|
||||
|
||||
@@ -103,12 +88,28 @@ static inline int on_selected_cpus(
|
||||
int wait)
|
||||
{
|
||||
if ( cpu_isset(0, selected) )
|
||||
{
|
||||
local_irq_disable();
|
||||
func(info);
|
||||
local_irq_enable();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Call a function on all processors
|
||||
*/
|
||||
static inline int on_each_cpu(
|
||||
void (*func) (void *info),
|
||||
void *info,
|
||||
int retry,
|
||||
int wait)
|
||||
{
|
||||
return on_selected_cpus(cpu_online_map, func, info, retry, wait);
|
||||
}
|
||||
|
||||
#define smp_processor_id() raw_smp_processor_id()
|
||||
|
||||
#endif
|
||||