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:
Keir Fraser committed 2007-10-11 13:32:41 +01:00
1 parent 10d0334291
commit 73fc0df663
1 file changed
+16 -15
+16 -15
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.