Re: ehci-hcd.c causes: irq <number>: nobody cared

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 13, 2014 at 11:59:38AM -0400, Alan Stern wrote:
> 
> What about something like this instead?
> 
>  	masked_status = status & (INTR_MASK | STS_FLR);
>  
>  	/* Shared IRQ? */
>  	if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) {
> +		if (status & STS_RECL) {
> +			ehci_writel(ehci, STS_RECL, &ehci->regs->status);
> +			ehci_readl(ehci, &ehci->regs->status);
> +		}
>  		spin_unlock_irqrestore(&ehci->lock, flags);
>  		return IRQ_NONE;
>  	}
> 
> That should do about the same thing as your change, except for
> returning IRQ_NONE rather than IRQ_HANDLED.

I'll forward this to my home to try it out.  It will take some time
as my wife is also working on this system.  Nevertheless I'm curious
about it.

> However, I don't see why writing the STS_RECL bit should fix anything.  
> It is a ReadOnly bit, after all.  And returning IRQ_HANDLED wouldn't 
> fix anything either; it would merely cause your system to keep on 
> running while an interrupt storm occurred.

That this is a ReadOnly bit is what I've read from the Intel specs http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/ehci-v1-1-addendum.pdf


Werner

-- 
  "Having a smoking section in a restaurant is like having
          a peeing section in a swimming pool." -- Edward Burr

Attachment: pgpPIL1Ym75FT.pgp
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux