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 06:10:46PM +0200, Dr. Werner Fink wrote:
> 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.

The code is active now:

  speedy:linux # uname -a
  Linux speedy 3.7.10-1.28-desktop #3 SMP PREEMPT Tue May 13 21:22:35 CEST 2014 x86_64 x86_64 x86_64 GNU/Linux
  speedy:linux # grep 16: /proc/interrupts | sed -r 's@ +@ @g'
   16: 68 0 14234 0 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb1, eth1
  speedy:linux # xzgrep 'nobody care' /var/log/messages-* | wc -l
  48
  speedy:linux # dmesg | grep 'nobody care'
  speedy:linux # 
  
the limit of 99900 IRQ is not reached yet. The dmesg shows

  [    0.799326] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
  [    0.799351] ehci_hcd 0000:00:1a.0: setting latency timer to 64
  [    0.799353] ehci_hcd 0000:00:1a.0: EHCI Host Controller
  [    0.799358] ehci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 1
  [    0.799372] ehci_hcd 0000:00:1a.0: debug port 2
  [    0.803248] ehci_hcd 0000:00:1a.0: cache line size of 64 is not supported
  [    0.803259] ehci_hcd 0000:00:1a.0: irq 16, io mem 0xf7e08000
  [    0.808736] ehci_hcd 0000:00:1a.0: USB 2.0 started, EHCI 1.00
  [    0.808760] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
  [    0.808763] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
  [    0.808766] usb usb1: Product: EHCI Host Controller
  [    0.808768] usb usb1: Manufacturer: Linux 3.7.10-1.28-desktop ehci_hcd
  [    0.808770] usb usb1: SerialNumber: 0000:00:1a.0
  [    0.808860] hub 1-0:1.0: USB hub found
  [    0.808863] hub 1-0:1.0: 2 ports detected

  [...]

  [    3.692043] 8139too 0000:04:00.0 eth0: RealTek RTL8139 at 0xffffc900061ea000, 00:00:1c:d9:11:e7, IRQ 16
  [    3.692045] 8139too 0000:04:00.0 eth0: Media type forced to Full Duplex

now it is one hour later:

  /home/werner> grep 16: /proc/interrupts | sed -r 's@ +@ @g'
   16: 68 0 113329 0 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb1, eth1
  /home/werner> dmesg | grep 'nobody care'
  /home/werner> grep nobody /var/log/messages
  /home/werner> 

it works.


Werner

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

Attachment: pgpF0L3jROrbh.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