diff options
| -rw-r--r-- | arch/sparc64/kernel/irq.c | 27 |
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); | ||
| 653 | out: | 652 | out: |
| 654 | bp->flags &= ~IBF_INPROGRESS; | 653 | bp->flags &= ~IBF_INPROGRESS; |
| 655 | } | 654 | } |
