Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] Fix breakage from irq change
This commit is contained in:
commit
428929a234
|
@ -194,8 +194,11 @@ void fixup_irqs(void)
|
||||||
*/
|
*/
|
||||||
for (irq=0; irq < NR_IRQS; irq++) {
|
for (irq=0; irq < NR_IRQS; irq++) {
|
||||||
if (vectors_in_migration[irq]) {
|
if (vectors_in_migration[irq]) {
|
||||||
|
struct pt_regs *old_regs = set_irq_regs(NULL);
|
||||||
|
|
||||||
vectors_in_migration[irq]=0;
|
vectors_in_migration[irq]=0;
|
||||||
__do_IRQ(irq, NULL);
|
__do_IRQ(irq);
|
||||||
|
set_irq_regs(old_regs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -226,6 +226,8 @@ void ia64_process_pending_intr(void)
|
||||||
*/
|
*/
|
||||||
while (vector != IA64_SPURIOUS_INT_VECTOR) {
|
while (vector != IA64_SPURIOUS_INT_VECTOR) {
|
||||||
if (!IS_RESCHEDULE(vector)) {
|
if (!IS_RESCHEDULE(vector)) {
|
||||||
|
struct pt_regs *old_regs = set_irq_regs(NULL);
|
||||||
|
|
||||||
ia64_setreg(_IA64_REG_CR_TPR, vector);
|
ia64_setreg(_IA64_REG_CR_TPR, vector);
|
||||||
ia64_srlz_d();
|
ia64_srlz_d();
|
||||||
|
|
||||||
|
@ -236,7 +238,8 @@ void ia64_process_pending_intr(void)
|
||||||
* Probably could shared code.
|
* Probably could shared code.
|
||||||
*/
|
*/
|
||||||
vectors_in_migration[local_vector_to_irq(vector)]=0;
|
vectors_in_migration[local_vector_to_irq(vector)]=0;
|
||||||
__do_IRQ(local_vector_to_irq(vector), NULL);
|
__do_IRQ(local_vector_to_irq(vector));
|
||||||
|
set_irq_regs(old_regs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disable interrupts and send EOI
|
* Disable interrupts and send EOI
|
||||||
|
@ -253,7 +256,7 @@ void ia64_process_pending_intr(void)
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs);
|
extern irqreturn_t handle_IPI (int irq, void *dev_id);
|
||||||
|
|
||||||
static struct irqaction ipi_irqaction = {
|
static struct irqaction ipi_irqaction = {
|
||||||
.handler = handle_IPI,
|
.handler = handle_IPI,
|
||||||
|
|
|
@ -36,7 +36,7 @@ extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);
|
||||||
|
|
||||||
#define SN_LB_INT_WAR_INTERVAL 100
|
#define SN_LB_INT_WAR_INTERVAL 100
|
||||||
|
|
||||||
void sn_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
void sn_timer_interrupt(int irq, void *dev_id)
|
||||||
{
|
{
|
||||||
/* LED blinking */
|
/* LED blinking */
|
||||||
if (!pda->hb_count--) {
|
if (!pda->hb_count--) {
|
||||||
|
|
|
@ -674,7 +674,7 @@ static void sn_sal_timer_poll(unsigned long data)
|
||||||
if (!port->sc_port.irq) {
|
if (!port->sc_port.irq) {
|
||||||
spin_lock_irqsave(&port->sc_port.lock, flags);
|
spin_lock_irqsave(&port->sc_port.lock, flags);
|
||||||
if (sn_process_input)
|
if (sn_process_input)
|
||||||
sn_receive_chars(port, NULL, flags);
|
sn_receive_chars(port, flags);
|
||||||
sn_transmit_chars(port, TRANSMIT_RAW);
|
sn_transmit_chars(port, TRANSMIT_RAW);
|
||||||
spin_unlock_irqrestore(&port->sc_port.lock, flags);
|
spin_unlock_irqrestore(&port->sc_port.lock, flags);
|
||||||
mod_timer(&port->sc_timer,
|
mod_timer(&port->sc_timer,
|
||||||
|
|
Loading…
Reference in New Issue