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

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