Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge

+3 -18
+3 -18
arch/powerpc/platforms/pseries/xics.c
··· 48 .set_affinity = xics_set_affinity 49 }; 50 51 - static struct hw_interrupt_type xics_8259_pic = { 52 - .typename = " XICS/8259", 53 - .ack = xics_mask_and_ack_irq, 54 - }; 55 - 56 /* This is used to map real irq numbers to virtual */ 57 static struct radix_tree_root irq_map = RADIX_TREE_INIT(GFP_ATOMIC); 58 ··· 362 /* for sanity, this had better be < NR_IRQS - 16 */ 363 if (vec == xics_irq_8259_cascade_real) { 364 irq = i8259_irq(regs); 365 - if (irq == -1) { 366 - /* Spurious cascaded interrupt. Still must ack xics */ 367 - xics_end_irq(irq_offset_up(xics_irq_8259_cascade)); 368 - 369 - irq = -1; 370 - } 371 } else if (vec == XICS_IRQ_SPURIOUS) { 372 irq = -1; 373 } else { ··· 532 xics_irq_8259_cascade_real = *ireg; 533 xics_irq_8259_cascade 534 = virt_irq_create_mapping(xics_irq_8259_cascade_real); 535 of_node_put(np); 536 } 537 ··· 556 #endif /* CONFIG_SMP */ 557 } 558 559 - xics_8259_pic.enable = i8259_pic.enable; 560 - xics_8259_pic.disable = i8259_pic.disable; 561 - xics_8259_pic.end = i8259_pic.end; 562 - for (i = 0; i < 16; ++i) 563 - get_irq_desc(i)->handler = &xics_8259_pic; 564 - for (; i < NR_IRQS; ++i) 565 get_irq_desc(i)->handler = &xics_pic; 566 567 xics_setup_cpu(); ··· 576 no_action, 0, "8259 cascade", NULL)) 577 printk(KERN_ERR "xics_setup_i8259: couldn't get 8259 " 578 "cascade\n"); 579 - i8259_init(0, 0); 580 } 581 return 0; 582 }
··· 48 .set_affinity = xics_set_affinity 49 }; 50 51 /* This is used to map real irq numbers to virtual */ 52 static struct radix_tree_root irq_map = RADIX_TREE_INIT(GFP_ATOMIC); 53 ··· 367 /* for sanity, this had better be < NR_IRQS - 16 */ 368 if (vec == xics_irq_8259_cascade_real) { 369 irq = i8259_irq(regs); 370 + xics_end_irq(irq_offset_up(xics_irq_8259_cascade)); 371 } else if (vec == XICS_IRQ_SPURIOUS) { 372 irq = -1; 373 } else { ··· 542 xics_irq_8259_cascade_real = *ireg; 543 xics_irq_8259_cascade 544 = virt_irq_create_mapping(xics_irq_8259_cascade_real); 545 + i8259_init(0, 0); 546 of_node_put(np); 547 } 548 ··· 565 #endif /* CONFIG_SMP */ 566 } 567 568 + for (i = irq_offset_value(); i < NR_IRQS; ++i) 569 get_irq_desc(i)->handler = &xics_pic; 570 571 xics_setup_cpu(); ··· 590 no_action, 0, "8259 cascade", NULL)) 591 printk(KERN_ERR "xics_setup_i8259: couldn't get 8259 " 592 "cascade\n"); 593 } 594 return 0; 595 }