From: Ben Hutchings <b...@decadent.org.uk>
Date: Sun, 04 Apr 2010 17:33:29 +0100

> The driver attempts to select an IRQ for the NIC automatically by
> testing which of the supported IRQs are available and then probing
> each available IRQ with probe_irq_{on,off}().  There are obvious race
> conditions here, besides which:
> 1. The test for availability is done by passing a NULL handler, which
>    now always returns -EINVAL, thus the device cannot be opened:
>    <http://bugs.debian.org/566522>
> 2. probe_irq_off() will report only the first ISA IRQ handled,
>    potentially leading to a false negative.
> 
> There was another bug that meant it ignored all error codes from
> request_irq() except -EBUSY, so it would 'succeed' despite this
> (possibly causing conflicts with other ISA devices).  This was fixed
> by ab08999d6029bb2c79c16be5405d63d2bedbdfea 'WARNING: some
> request_irq() failures ignored in el2_open()', which exposed bug 1.
> 
> This patch:
> 1. Replaces the use of probe_irq_{on,off}() with a real interrupt handler
> 2. Adds a delay before checking the interrupt-seen flag
> 3. Disables interrupts on all failure paths
> 4. Distinguishes error codes from the second request_irq() call,
>    consistently with the first
> 
> Compile-tested only.
> 
> Signed-off-by: Ben Hutchings <b...@decadent.org.uk>

This looks logically fine, but I'm tossing this into net-next-2.6
because of the limited tester space for this driver.

Thanks Ben.



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100407.205618.201234628.da...@davemloft.net

Reply via email to