USB interrupt handler routine

From: Keith Packard
Date: Thu Dec 11 2008 - 23:35:54 EST


We recently made a patch in the Intel DRM driver:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b60678a75d44fa9d5969f79781bd856ad5858609

This switches from non-MSI to MSI-mode.

It "should" have had no effect, but our concern is that what we're
really seeing is interrupt sharing troubles. We've had several people
say that they got an interrupt flood when plugging in a USB stick or
external disk. Switching the graphics driver to MSI mode "cures" the
bug, but that sure seems like a work-around rather than a bug fix to me.

When our driver is active, it can generate a lot of interrupts,
potentially thousands per second. Is it possible that the UHCI or EHCI
drivers could get confused if checking for interrupt status this often?

Eric noted that the USB driver appears to not check and ACK interrupt
status unconditionally, preferring to check the software state
beforehand. I'm wondering if this may open up a potential race between
hardware state change and ISR bit setting.

--
keith.packard@xxxxxxxxx

Attachment: signature.asc
Description: This is a digitally signed message part