diff options
Diffstat (limited to 'arch/sparc64/kernel/irq.c')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index c786d2549bce..4d9931d124ab 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -164,6 +164,10 @@ void enable_irq(unsigned int irq) | |||
164 | if (err != HV_EOK) | 164 | if (err != HV_EOK) |
165 | printk("sun4v_intr_setenabled(%x): err(%d)\n", | 165 | printk("sun4v_intr_setenabled(%x): err(%d)\n", |
166 | ino, err); | 166 | ino, err); |
167 | err = sun4v_intr_setstate(ino, HV_INTR_STATE_IDLE); | ||
168 | if (err != HV_EOK) | ||
169 | printk("sun4v_intr_setstate(%x): " | ||
170 | "err(%d)\n", ino, err); | ||
167 | } else { | 171 | } else { |
168 | if (tlb_type == cheetah || tlb_type == cheetah_plus) { | 172 | if (tlb_type == cheetah || tlb_type == cheetah_plus) { |
169 | unsigned long ver; | 173 | unsigned long ver; |
@@ -663,10 +667,11 @@ static void process_bucket(int irq, struct ino_bucket *bp, struct pt_regs *regs) | |||
663 | "err(%d)\n", ino, err); | 667 | "err(%d)\n", ino, err); |
664 | } else { | 668 | } else { |
665 | upa_writel(ICLR_IDLE, bp->iclr); | 669 | upa_writel(ICLR_IDLE, bp->iclr); |
666 | /* Test and add entropy */ | ||
667 | if (random & SA_SAMPLE_RANDOM) | ||
668 | add_interrupt_randomness(irq); | ||
669 | } | 670 | } |
671 | |||
672 | /* Test and add entropy */ | ||
673 | if (random & SA_SAMPLE_RANDOM) | ||
674 | add_interrupt_randomness(irq); | ||
670 | } | 675 | } |
671 | out: | 676 | out: |
672 | bp->flags &= ~IBF_INPROGRESS; | 677 | bp->flags &= ~IBF_INPROGRESS; |