On 01/18/2011 22:56, Peter Jeremy wrote:
On 2011-Jan-18 15:23:16 +0000, John Baldwin<j...@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

_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to