Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 125360
b: refs/heads/master
c: bcda016
h: refs/heads/master
v: v3
  • Loading branch information
Mike Travis committed Dec 17, 2008
1 parent 9ac7688 commit a6c36a2
Show file tree
Hide file tree
Showing 17 changed files with 128 additions and 130 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d7b381bb7b1ad69ff008ea063d26e988b686c8de
refs/heads/master: bcda016eddd7a8b374bb371473c821a91ff1d8cc
14 changes: 5 additions & 9 deletions trunk/arch/x86/include/asm/bigsmp/ipi.h
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
#ifndef __ASM_MACH_IPI_H
#define __ASM_MACH_IPI_H

void send_IPI_mask_sequence(const cpumask_t *mask, int vector);
void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);

static inline void send_IPI_mask(const cpumask_t *mask, int vector)
static inline void send_IPI_mask(const struct cpumask *mask, int vector)
{
send_IPI_mask_sequence(mask, vector);
}

static inline void send_IPI_allbutself(int vector)
{
cpumask_t mask = cpu_online_map;
cpu_clear(smp_processor_id(), mask);

if (!cpus_empty(mask))
send_IPI_mask(&mask, vector);
send_IPI_mask_allbutself(cpu_online_mask, vector);
}

static inline void send_IPI_all(int vector)
{
send_IPI_mask(&cpu_online_map, vector);
send_IPI_mask(cpu_online_mask, vector);
}

#endif /* __ASM_MACH_IPI_H */
13 changes: 5 additions & 8 deletions trunk/arch/x86/include/asm/es7000/ipi.h
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
#ifndef __ASM_ES7000_IPI_H
#define __ASM_ES7000_IPI_H

void send_IPI_mask_sequence(const cpumask_t *mask, int vector);
void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);

static inline void send_IPI_mask(const cpumask_t *mask, int vector)
static inline void send_IPI_mask(const struct cpumask *mask, int vector)
{
send_IPI_mask_sequence(mask, vector);
}

static inline void send_IPI_allbutself(int vector)
{
cpumask_t mask = cpu_online_map;
cpu_clear(smp_processor_id(), mask);
if (!cpus_empty(mask))
send_IPI_mask(&mask, vector);
send_IPI_mask_allbutself(cpu_online_mask, vector);
}

static inline void send_IPI_all(int vector)
{
send_IPI_mask(&cpu_online_map, vector);
send_IPI_mask(cpu_online_mask, vector);
}

#endif /* __ASM_ES7000_IPI_H */
11 changes: 6 additions & 5 deletions trunk/arch/x86/include/asm/genapic_32.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ struct genapic {
int (*probe)(void);

int (*apic_id_registered)(void);
const cpumask_t *(*target_cpus)(void);
const struct cpumask *(*target_cpus)(void);
int int_delivery_mode;
int int_dest_mode;
int ESR_DISABLE;
Expand Down Expand Up @@ -57,15 +57,16 @@ struct genapic {

unsigned (*get_apic_id)(unsigned long x);
unsigned long apic_id_mask;
unsigned int (*cpu_mask_to_apicid)(const cpumask_t *cpumask);
unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
const struct cpumask *andmask);
void (*vector_allocation_domain)(int cpu, cpumask_t *retmask);
void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);

#ifdef CONFIG_SMP
/* ipi */
void (*send_IPI_mask)(const cpumask_t *mask, int vector);
void (*send_IPI_mask_allbutself)(const cpumask_t *mask, int vector);
void (*send_IPI_mask)(const struct cpumask *mask, int vector);
void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
int vector);
void (*send_IPI_allbutself)(int vector);
void (*send_IPI_all)(int vector);
#endif
Expand Down
11 changes: 6 additions & 5 deletions trunk/arch/x86/include/asm/genapic_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,18 @@ struct genapic {
u32 int_delivery_mode;
u32 int_dest_mode;
int (*apic_id_registered)(void);
const cpumask_t *(*target_cpus)(void);
void (*vector_allocation_domain)(int cpu, cpumask_t *retmask);
const struct cpumask *(*target_cpus)(void);
void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
void (*init_apic_ldr)(void);
/* ipi */
void (*send_IPI_mask)(const cpumask_t *mask, int vector);
void (*send_IPI_mask_allbutself)(const cpumask_t *mask, int vector);
void (*send_IPI_mask)(const struct cpumask *mask, int vector);
void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
int vector);
void (*send_IPI_allbutself)(int vector);
void (*send_IPI_all)(int vector);
void (*send_IPI_self)(int vector);
/* */
unsigned int (*cpu_mask_to_apicid)(const cpumask_t *cpumask);
unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
const struct cpumask *andmask);
unsigned int (*phys_pkg_id)(int index_msb);
Expand Down
10 changes: 6 additions & 4 deletions trunk/arch/x86/include/asm/ipi.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ static inline void __send_IPI_dest_field(unsigned int mask, int vector,
native_apic_mem_write(APIC_ICR, cfg);
}

static inline void send_IPI_mask_sequence(const cpumask_t *mask, int vector)
static inline void send_IPI_mask_sequence(const struct cpumask *mask,
int vector)
{
unsigned long flags;
unsigned long query_cpu;
Expand All @@ -128,14 +129,15 @@ static inline void send_IPI_mask_sequence(const cpumask_t *mask, int vector)
* - mbligh
*/
local_irq_save(flags);
for_each_cpu_mask_nr(query_cpu, *mask) {
for_each_cpu(query_cpu, mask) {
__send_IPI_dest_field(per_cpu(x86_cpu_to_apicid, query_cpu),
vector, APIC_DEST_PHYSICAL);
}
local_irq_restore(flags);
}

static inline void send_IPI_mask_allbutself(const cpumask_t *mask, int vector)
static inline void send_IPI_mask_allbutself(const struct cpumask *mask,
int vector)
{
unsigned long flags;
unsigned int query_cpu;
Expand All @@ -144,7 +146,7 @@ static inline void send_IPI_mask_allbutself(const cpumask_t *mask, int vector)
/* See Hack comment above */

local_irq_save(flags);
for_each_cpu_mask_nr(query_cpu, *mask)
for_each_cpu(query_cpu, mask)
if (query_cpu != this_cpu)
__send_IPI_dest_field(
per_cpu(x86_cpu_to_apicid, query_cpu),
Expand Down
12 changes: 6 additions & 6 deletions trunk/arch/x86/include/asm/mach-default/mach_apic.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@

#define APIC_DFR_VALUE (APIC_DFR_FLAT)

static inline const cpumask_t *target_cpus(void)
static inline const struct cpumask *target_cpus(void)
{
#ifdef CONFIG_SMP
return &cpu_online_map;
return cpu_online_mask;
#else
return &cpumask_of_cpu(0);
return cpumask_of(0);
#endif
}

Expand Down Expand Up @@ -62,9 +62,9 @@ static inline int apic_id_registered(void)
return physid_isset(read_apic_id(), phys_cpu_present_map);
}

static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
static inline unsigned int cpu_mask_to_apicid(const struct cpumask *cpumask)
{
return cpus_addr(*cpumask)[0];
return cpumask_bits(cpumask)[0];
}

static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask,
Expand Down Expand Up @@ -98,7 +98,7 @@ static inline int apicid_to_node(int logical_apicid)
#endif
}

static inline void vector_allocation_domain(int cpu, cpumask_t *retmask)
static inline void vector_allocation_domain(int cpu, struct cpumask *retmask)
{
/* Careful. Some cpus do not strictly honor the set of cpus
* specified in the interrupt destination when using lowest
Expand Down
12 changes: 6 additions & 6 deletions trunk/arch/x86/include/asm/mach-default/mach_ipi.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
/* Avoid include hell */
#define NMI_VECTOR 0x02

void send_IPI_mask_bitmask(const cpumask_t *mask, int vector);
void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
void send_IPI_mask_bitmask(const struct cpumask *mask, int vector);
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
void __send_IPI_shortcut(unsigned int shortcut, int vector);

extern int no_broadcast;
Expand All @@ -15,25 +15,25 @@ extern int no_broadcast;
#define send_IPI_mask (genapic->send_IPI_mask)
#define send_IPI_mask_allbutself (genapic->send_IPI_mask_allbutself)
#else
static inline void send_IPI_mask(const cpumask_t *mask, int vector)
static inline void send_IPI_mask(const struct cpumask *mask, int vector)
{
send_IPI_mask_bitmask(mask, vector);
}
void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
#endif

static inline void __local_send_IPI_allbutself(int vector)
{
if (no_broadcast || vector == NMI_VECTOR)
send_IPI_mask_allbutself(&cpu_online_map, vector);
send_IPI_mask_allbutself(cpu_online_mask, vector);
else
__send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
}

static inline void __local_send_IPI_all(int vector)
{
if (no_broadcast || vector == NMI_VECTOR)
send_IPI_mask(&cpu_online_map, vector);
send_IPI_mask(cpu_online_mask, vector);
else
__send_IPI_shortcut(APIC_DEST_ALLINC, vector);
}
Expand Down
14 changes: 5 additions & 9 deletions trunk/arch/x86/include/asm/numaq/ipi.h
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
#ifndef __ASM_NUMAQ_IPI_H
#define __ASM_NUMAQ_IPI_H

void send_IPI_mask_sequence(const cpumask_t *mask, int vector);
void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);

static inline void send_IPI_mask(const cpumask_t *mask, int vector)
static inline void send_IPI_mask(const struct cpumask *mask, int vector)
{
send_IPI_mask_sequence(mask, vector);
}

static inline void send_IPI_allbutself(int vector)
{
cpumask_t mask = cpu_online_map;
cpu_clear(smp_processor_id(), mask);

if (!cpus_empty(mask))
send_IPI_mask(&mask, vector);
send_IPI_mask_allbutself(cpu_online_mask, vector);
}

static inline void send_IPI_all(int vector)
{
send_IPI_mask(&cpu_online_map, vector);
send_IPI_mask(cpu_online_mask, vector);
}

#endif /* __ASM_NUMAQ_IPI_H */
4 changes: 2 additions & 2 deletions trunk/arch/x86/include/asm/smp.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct smp_ops {
void (*cpu_die)(unsigned int cpu);
void (*play_dead)(void);

void (*send_call_func_ipi)(const cpumask_t *mask);
void (*send_call_func_ipi)(const struct cpumask *mask);
void (*send_call_func_single_ipi)(int cpu);
};

Expand Down Expand Up @@ -138,7 +138,7 @@ void native_cpu_die(unsigned int cpu);
void native_play_dead(void);
void play_dead_common(void);

void native_send_call_func_ipi(const cpumask_t *mask);
void native_send_call_func_ipi(const struct cpumask *mask);
void native_send_call_func_single_ipi(int cpu);

extern void prefill_possible_map(void);
Expand Down
Loading

0 comments on commit a6c36a2

Please sign in to comment.