Trying to debug interrupt flood after unbind

Rob Groner rgroner at rtd.com
Tue May 31 16:38:37 EDT 2016


On Tue, 2016-05-31 at 13:14 -0700, Greg KH wrote:
> On Tue, May 31, 2016 at 06:41:24PM +0000, Rob Groner wrote:
> > I am trying to load a driver for an Exar serial chip, but that chip is gobbled
> > up by the 8250 driver on boot.
> 
> Why does the in-kernel driver not support this chip?  Do you have a
> pointer to the Exar source anywhere?

This is kind of an ongoing topic since around December  The in-kernel
driver doesn't support the GPIO on the Exar chip, which frustrates our
customers because our board requires use of the GPIO.  I've been working
with Sudip Mukherjee to add GPIO to the in-kernel driver, but that's
stalled for reasons (he's waiting for someone else to submit something
similar).  In the meantime, I'm just trying to find any workaround for
our customers that doesn't involve a kernel build.

> 
> > So, I use the “unbind” command in /sys/bus/pci/
> > drivers/serial to remove the device from the clutches of 8250.  Based on
> > cobbled together google searches, I use the following to unbind it (assuming
> > the address in /sys/bus/pci/drivers/serial is 0000:04:00.0.
> 
> That's a huge hammer, are you sure that's the best way to do this?  Why
> not just add your device to a blacklist in the 8250 driver?

I know about blacklisting a module, but I've not heard of blacklisting a
device for a particular module.  Is this without having to rebuild the
kernel?  That would be perfectly acceptable.  I'm happy to use smaller
hammers.

> 
> > So, as near as I can tell, when the Exar driver is inserted, an interrupt flood
> > occurs, and the Exar driver (the only interrupt handler on that IRQ) does not
> > respond to any of them.  I put in some debug code and verified that the Exar
> > interrupt handler is called… but the handler just returns with an IRQ_NONE
> > value.
> 
> Sounds like a bug in the Exar driver, why isn't it handling the
> interrupt properly?

Exar is pretty responsive overall, but despite my complete ease at
producing this problem, they've been unable to recreate it, so they just
shrug.  That's why I've put it on myself to try and get whatever info I
can about what is happening and either find the bug in their driver or
be able to point them in the direction.

Rob





More information about the Kernelnewbies mailing list