Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 243653
b: refs/heads/master
c: 148086b
h: refs/heads/master
i:
  243651: 734f815
v: v3
  • Loading branch information
Linus Torvalds committed Apr 4, 2011
1 parent 77db19f commit abc1d33
Show file tree
Hide file tree
Showing 124 changed files with 1,328 additions and 868 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: 3436ae1298cb22d722a6520fc97f112dd767a9e1
refs/heads/master: 148086bb64694cc91624bab2a550d50f800eb4b7
2 changes: 1 addition & 1 deletion trunk/arch/ia64/sn/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ sn_call_force_intr_provider(struct sn_irq_info *sn_irq_info)
pci_provider = sn_pci_provider[sn_irq_info->irq_bridge_type];

/* Don't force an interrupt if the irq has been disabled */
if (!irqd_irq_disabled(sn_irq_info->irq_irq) &&
if (!irqd_irq_disabled(irq_get_irq_data(sn_irq_info->irq_irq)) &&
pci_provider && pci_provider->force_interrupt)
(*pci_provider->force_interrupt)(sn_irq_info);
}
Expand Down
42 changes: 0 additions & 42 deletions trunk/arch/ia64/sn/kernel/sn2/sn_proc_fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,38 +45,6 @@ static int licenseID_open(struct inode *inode, struct file *file)
return single_open(file, licenseID_show, NULL);
}

/*
* Enable forced interrupt by default.
* When set, the sn interrupt handler writes the force interrupt register on
* the bridge chip. The hardware will then send an interrupt message if the
* interrupt line is active. This mimics a level sensitive interrupt.
*/
extern int sn_force_interrupt_flag;

static int sn_force_interrupt_show(struct seq_file *s, void *p)
{
seq_printf(s, "Force interrupt is %s\n",
sn_force_interrupt_flag ? "enabled" : "disabled");
return 0;
}

static ssize_t sn_force_interrupt_write_proc(struct file *file,
const char __user *buffer, size_t count, loff_t *data)
{
char val;

if (copy_from_user(&val, buffer, 1))
return -EFAULT;

sn_force_interrupt_flag = (val == '0') ? 0 : 1;
return count;
}

static int sn_force_interrupt_open(struct inode *inode, struct file *file)
{
return single_open(file, sn_force_interrupt_show, NULL);
}

static int coherence_id_show(struct seq_file *s, void *p)
{
seq_printf(s, "%d\n", partition_coherence_id());
Expand Down Expand Up @@ -114,14 +82,6 @@ static const struct file_operations proc_license_id_fops = {
.release = single_release,
};

static const struct file_operations proc_sn_force_intr_fops = {
.open = sn_force_interrupt_open,
.read = seq_read,
.write = sn_force_interrupt_write_proc,
.llseek = seq_lseek,
.release = single_release,
};

static const struct file_operations proc_coherence_id_fops = {
.open = coherence_id_open,
.read = seq_read,
Expand Down Expand Up @@ -149,8 +109,6 @@ void register_sn_procfs(void)
proc_create("system_serial_number", 0444, sgi_proc_dir,
&proc_system_sn_fops);
proc_create("licenseID", 0444, sgi_proc_dir, &proc_license_id_fops);
proc_create("sn_force_interrupt", 0644, sgi_proc_dir,
&proc_sn_force_intr_fops);
proc_create("coherence_id", 0444, sgi_proc_dir,
&proc_coherence_id_fops);
proc_create("sn_topology", 0444, sgi_proc_dir, &proc_sn_topo_fops);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/include/asm/machdep.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ struct smp_ops_t {
int (*probe)(void);
void (*kick_cpu)(int nr);
void (*setup_cpu)(int nr);
void (*bringup_done)(void);
void (*take_timebase)(void);
void (*give_timebase)(void);
int (*cpu_enable)(unsigned int nr);
int (*cpu_disable)(void);
void (*cpu_die)(unsigned int nr);
int (*cpu_bootable)(unsigned int nr);
Expand Down Expand Up @@ -267,7 +267,6 @@ struct machdep_calls {

extern void e500_idle(void);
extern void power4_idle(void);
extern void power4_cpu_offline_powersave(void);
extern void ppc6xx_idle(void);
extern void book3e_idle(void);

Expand Down
5 changes: 3 additions & 2 deletions trunk/arch/powerpc/include/asm/smp.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,16 @@ extern void cpu_die(void);

extern void smp_send_debugger_break(int cpu);
extern void smp_message_recv(int);
extern void start_secondary_resume(void);

DECLARE_PER_CPU(unsigned int, cpu_pvr);

#ifdef CONFIG_HOTPLUG_CPU
extern void fixup_irqs(const struct cpumask *map);
extern void migrate_irqs(void);
int generic_cpu_disable(void);
int generic_cpu_enable(unsigned int cpu);
void generic_cpu_die(unsigned int cpu);
void generic_mach_cpu_die(void);
void generic_set_cpu_dead(unsigned int cpu);
#endif

#ifdef CONFIG_PPC64
Expand Down
9 changes: 9 additions & 0 deletions trunk/arch/powerpc/kernel/head_32.S
Original file line number Diff line number Diff line change
Expand Up @@ -890,6 +890,15 @@ __secondary_start:
mtspr SPRN_SRR1,r4
SYNC
RFI

_GLOBAL(start_secondary_resume)
/* Reset stack */
rlwinm r1,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
addi r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
li r3,0
std r3,0(r1) /* Zero the stack frame pointer */
bl start_secondary
b .
#endif /* CONFIG_SMP */

#ifdef CONFIG_KVM_BOOK3S_HANDLER
Expand Down
7 changes: 7 additions & 0 deletions trunk/arch/powerpc/kernel/head_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,13 @@ _GLOBAL(pmac_secondary_start)
add r13,r13,r4 /* for this processor. */
mtspr SPRN_SPRG_PACA,r13 /* Save vaddr of paca in an SPRG*/

/* Mark interrupts soft and hard disabled (they might be enabled
* in the PACA when doing hotplug)
*/
li r0,0
stb r0,PACASOFTIRQEN(r13)
stb r0,PACAHARDIRQEN(r13)

/* Create a temp kernel stack for use before relocation is on. */
ld r1,PACAEMERGSP(r13)
subi r1,r1,STACK_FRAME_OVERHEAD
Expand Down
21 changes: 0 additions & 21 deletions trunk/arch/powerpc/kernel/idle_power4.S
Original file line number Diff line number Diff line change
Expand Up @@ -53,24 +53,3 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
isync
b 1b

_GLOBAL(power4_cpu_offline_powersave)
/* Go to NAP now */
mfmsr r7
rldicl r0,r7,48,1
rotldi r0,r0,16
mtmsrd r0,1 /* hard-disable interrupts */
li r0,1
li r6,0
stb r0,PACAHARDIRQEN(r13) /* we'll hard-enable shortly */
stb r6,PACASOFTIRQEN(r13) /* soft-disable irqs */
BEGIN_FTR_SECTION
DSSALL
sync
END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
ori r7,r7,MSR_EE
oris r7,r7,MSR_POW@h
sync
isync
mtmsrd r7
isync
blr
3 changes: 2 additions & 1 deletion trunk/arch/powerpc/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,12 +246,13 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
}

#ifdef CONFIG_HOTPLUG_CPU
void fixup_irqs(const struct cpumask *map)
void migrate_irqs(void)
{
struct irq_desc *desc;
unsigned int irq;
static int warned;
cpumask_var_t mask;
const struct cpumask *map = cpu_online_mask;

alloc_cpumask_var(&mask, GFP_KERNEL);

Expand Down
Loading

0 comments on commit abc1d33

Please sign in to comment.