Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jan 2011 12:20:09 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Peter Jeremy <peterjeremy@acm.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, John Baldwin <jhb@FreeBSD.org>
Subject:   Re: svn commit: r217538 - in head/sys/dev: buslogic cs
Message-ID:  <4D373969.1040301@bsdimp.com>
In-Reply-To: <20110119055635.GA90983@server.vk2pj.dyndns.org>
References:  <201101181523.p0IFNGeB042079@svn.freebsd.org> <20110119055635.GA90983@server.vk2pj.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/18/2011 22:56, Peter Jeremy wrote:
> On 2011-Jan-18 15:23:16 +0000, John Baldwin<jhb@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D373969.1040301>