Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 28663
b: refs/heads/master
c: 81bbbe9
h: refs/heads/master
i:
  28661: f3365e2
  28659: 7af9f09
  28655: 5bb5c45
v: v3
  • Loading branch information
Haren Myneni authored and Paul Mackerras committed Apr 22, 2006
1 parent 20ef63c commit d5cc303
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 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: d6c1a9081080c6c4658acf2a06d851feb2855933
refs/heads/master: 81bbbe92949b069c101e13d3acbd4bc7d088cb79
23 changes: 13 additions & 10 deletions trunk/arch/powerpc/platforms/pseries/xics.c
Original file line number Diff line number Diff line change
Expand Up @@ -641,23 +641,26 @@ void xics_teardown_cpu(int secondary)
ops->cppr_info(cpu, 0x00);
iosync();

/* Clear IPI */
ops->qirr_info(cpu, 0xff);

/*
* we need to EOI the IPI if we got here from kexec down IPI
*
* probably need to check all the other interrupts too
* should we be flagging idle loop instead?
* or creating some task to be scheduled?
*/
ops->xirr_info_set(cpu, XICS_IPI);

/*
* Some machines need to have at least one cpu in the GIQ,
* so leave the master cpu in the group.
*/
if (secondary) {
/*
* we need to EOI the IPI if we got here from kexec down IPI
*
* probably need to check all the other interrupts too
* should we be flagging idle loop instead?
* or creating some task to be scheduled?
*/
ops->xirr_info_set(cpu, XICS_IPI);
if (secondary)
rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE,
(1UL << interrupt_server_size) - 1 -
default_distrib_server, 0);
}
}

#ifdef CONFIG_HOTPLUG_CPU
Expand Down

0 comments on commit d5cc303

Please sign in to comment.