aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64')
-rw-r--r--arch/sparc64/kernel/irq.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index 0fb1738a4f3f..ad134bbc151c 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -633,23 +633,22 @@ static void process_bucket(struct ino_bucket *bp, struct pt_regs *regs)
633 if (!action_mask) 633 if (!action_mask)
634 break; 634 break;
635 } 635 }
636 if (bp->pil != 0) {
637 if (tlb_type == hypervisor) {
638 unsigned int ino = __irq_ino(bp);
639 int err;
640 636
641 err = sun4v_intr_setstate(ino, HV_INTR_STATE_IDLE); 637 if (tlb_type == hypervisor) {
642 if (err != HV_EOK) 638 unsigned int ino = __irq_ino(bp);
643 printk("sun4v_intr_setstate(%x): " 639 int err;
644 "err(%d)\n", ino, err);
645 } else {
646 upa_writel(ICLR_IDLE, bp->iclr);
647 }
648 640
649 /* Test and add entropy */ 641 err = sun4v_intr_setstate(ino, HV_INTR_STATE_IDLE);
650 if (random & SA_SAMPLE_RANDOM) 642 if (err != HV_EOK)
651 add_interrupt_randomness(bp->pil); 643 printk("sun4v_intr_setstate(%x): "
644 "err(%d)\n", ino, err);
645 } else {
646 upa_writel(ICLR_IDLE, bp->iclr);
652 } 647 }
648
649 /* Test and add entropy */
650 if (random & SA_SAMPLE_RANDOM)
651 add_interrupt_randomness(bp->pil);
653out: 652out:
654 bp->flags &= ~IBF_INPROGRESS; 653 bp->flags &= ~IBF_INPROGRESS;
655} 654}