Skip to content

Commit

Permalink
Typedef SMP call function pointer
Browse files Browse the repository at this point in the history
Typedef the pointer to the function to be called by smp_call_function() and
friends:

	typedef void (*smp_call_func_t)(void *info);

as it is used in a fair number of places.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-arch@vger.kernel.org
  • Loading branch information
David Howells committed Oct 27, 2010
1 parent 3b950de commit 3a5f65d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
19 changes: 10 additions & 9 deletions include/linux/smp.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@

extern void cpu_idle(void);

typedef void (*smp_call_func_t)(void *info);
struct call_single_data {
struct list_head list;
void (*func) (void *info);
smp_call_func_t func;
void *info;
u16 flags;
u16 priv;
Expand All @@ -24,8 +25,8 @@ struct call_single_data {
/* total number of cpus in this system (may exceed NR_CPUS) */
extern unsigned int total_cpus;

int smp_call_function_single(int cpuid, void (*func) (void *info), void *info,
int wait);
int smp_call_function_single(int cpuid, smp_call_func_t func, void *info,
int wait);

#ifdef CONFIG_SMP

Expand Down Expand Up @@ -69,15 +70,15 @@ extern void smp_cpus_done(unsigned int max_cpus);
/*
* Call a function on all other processors
*/
int smp_call_function(void(*func)(void *info), void *info, int wait);
int smp_call_function(smp_call_func_t func, void *info, int wait);
void smp_call_function_many(const struct cpumask *mask,
void (*func)(void *info), void *info, bool wait);
smp_call_func_t func, void *info, bool wait);

void __smp_call_function_single(int cpuid, struct call_single_data *data,
int wait);

int smp_call_function_any(const struct cpumask *mask,
void (*func)(void *info), void *info, int wait);
smp_call_func_t func, void *info, int wait);

/*
* Generic and arch helpers
Expand All @@ -94,7 +95,7 @@ void ipi_call_unlock_irq(void);
/*
* Call a function on all processors
*/
int on_each_cpu(void (*func) (void *info), void *info, int wait);
int on_each_cpu(smp_call_func_t func, void *info, int wait);

#define MSG_ALL_BUT_SELF 0x8000 /* Assume <32768 CPU's */
#define MSG_ALL 0x8001
Expand Down Expand Up @@ -122,7 +123,7 @@ static inline void smp_send_stop(void) { }
* These macros fold the SMP functionality into a single CPU system
*/
#define raw_smp_processor_id() 0
static inline int up_smp_call_function(void (*func)(void *), void *info)
static inline int up_smp_call_function(smp_call_func_t func, void *info)
{
return 0;
}
Expand All @@ -143,7 +144,7 @@ static inline void smp_send_reschedule(int cpu) { }
static inline void init_call_single_data(void) { }

static inline int
smp_call_function_any(const struct cpumask *mask, void (*func)(void *info),
smp_call_function_any(const struct cpumask *mask, smp_call_func_t func,
void *info, int wait)
{
return smp_call_function_single(0, func, info, wait);
Expand Down
8 changes: 4 additions & 4 deletions kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_single_data, csd_data);
*
* Returns 0 on success, else a negative status code.
*/
int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
int smp_call_function_single(int cpu, smp_call_func_t func, void *info,
int wait)
{
struct call_single_data d = {
Expand Down Expand Up @@ -336,7 +336,7 @@ EXPORT_SYMBOL(smp_call_function_single);
* 3) any other online cpu in @mask
*/
int smp_call_function_any(const struct cpumask *mask,
void (*func)(void *info), void *info, int wait)
smp_call_func_t func, void *info, int wait)
{
unsigned int cpu;
const struct cpumask *nodemask;
Expand Down Expand Up @@ -416,7 +416,7 @@ void __smp_call_function_single(int cpu, struct call_single_data *data,
* must be disabled when calling this function.
*/
void smp_call_function_many(const struct cpumask *mask,
void (*func)(void *), void *info, bool wait)
smp_call_func_t func, void *info, bool wait)
{
struct call_function_data *data;
unsigned long flags;
Expand Down Expand Up @@ -500,7 +500,7 @@ EXPORT_SYMBOL(smp_call_function_many);
* You must not call this function with disabled interrupts or from a
* hardware interrupt handler or from a bottom half handler.
*/
int smp_call_function(void (*func)(void *), void *info, int wait)
int smp_call_function(smp_call_func_t func, void *info, int wait)
{
preempt_disable();
smp_call_function_many(cpu_online_mask, func, info, wait);
Expand Down

0 comments on commit 3a5f65d

Please sign in to comment.