svn commit: r217538 - in head/sys/dev: buslogic cs
Warner Losh
imp at bsdimp.com
Wed Jan 19 19:23:26 UTC 2011
On 01/18/2011 22:56, Peter Jeremy wrote:
> On 2011-Jan-18 15:23:16 +0000, John Baldwin<jhb at FreeBSD.org> wrote:
>> Log:
>> Remove some always-true comparisons.
> ...
>> --- head/sys/dev/cs/if_cs.c Tue Jan 18 14:58:44 2011 (r217537)
>> +++ head/sys/dev/cs/if_cs.c Tue Jan 18 15:23:16 2011 (r217538)
>> @@ -364,7 +364,7 @@ cs_cs89x0_probe(device_t dev)
>>
>> if (!error&& !(sc->flags& CS_NO_IRQ)) {
>> if (chip_type == CS8900) {
>> - if (irq>= 0 || irq< 16)
>> + if (irq< 16)
>> irq = cs8900_irq2eeint[irq];
>> else
>> irq = 255;
> Irrespective of the signedness or otherwise of "irq", I'm fairly
> certain that '||' should have been '&&' before.
Yes. The old code was clearly wrong when a bogus IRQ was set.
Thankfully this was kinda hard to do and only affected ISA cards that
didn't have the IRQ setup with the DOS utility. Most of the ones I've
seen have this setup, so it isn't surprising this bug lurked here for
that long.
The new code is correct.
Warner
More information about the svn-src-all
mailing list