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