On Tue, 18 Jan 2011, John Baldwin wrote:
Log:
Remove some always-true comparisons.
Submitted by: clang via rdivacky
Modified: head/sys/dev/buslogic/bt.c
==============================================================================
--- head/sys/dev/buslogic/bt.c Tue Jan 18 14:58:44 2011 (r217537)
+++ head/sys/dev/buslogic/bt.c Tue Jan 18 15:23:16 2011 (r217538)
@@ -975,7 +975,7 @@ bt_find_probe_range(int ioport, int *por
int
bt_iop_from_bio(isa_compat_io_t bio_index)
{
- if (bio_index >= 0 && bio_index < BT_NUM_ISAPORTS)
+ if (bio_index < BT_NUM_ISAPORTS)
return (bt_board_ports[bio_index]);
return (-1);
}
So, what guarantees that isa_compat_io_t is unsigned and will remain so?
Indexes should be ints, unless you want a sign morass.
Modified: head/sys/dev/cs/if_cs.c
==============================================================================
--- 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;
Here `irq' is declared locally as u_long, so it can easily seen to be
unsigned. u_long is bogus, but is unfortunately required by
bus_get_resource()' API to fetch the initial value of `irq'. The irq
is only checked to be in range and even bus_get_resource()'s return value
are not checked until long after the call.
Bruce
_______________________________________________
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"