diff options
author | imp <imp@FreeBSD.org> | 2005-02-06 21:12:22 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2005-02-06 21:12:22 +0000 |
commit | d79055b325d1f166e95f2c546f39abe82cac6de4 (patch) | |
tree | 606f6d8b39812e32fa4f84f7766414c85686746e | |
parent | 434b0e32d37c93824a31a6f3a0356a3e9f705afd (diff) | |
download | FreeBSD-src-d79055b325d1f166e95f2c546f39abe82cac6de4.zip FreeBSD-src-d79055b325d1f166e95f2c546f39abe82cac6de4.tar.gz |
ccs is a size_t. RAY_CCS_INDEX takes ccs and does math on it,
resulting in a size_t due to C's rules of arithmetic. Rather than
bogusly cast the result to a uint8_t, fix the printf format specifier
to have a 'z' modifier which tells the compiler that the sizes really
do match.
It turns out that change 1.75 was incorrect to assume that this
'really' was a 8bit quantity. It isn't. Although the hardware
appears to limit things to < 256, it would be a bug that should be
caught by debug printf it it were. Casting it to uint8_t would have
lost this useful information.
Aslo add 'z' to a nearby debug statement that's never compiled in.
-rw-r--r-- | sys/dev/ray/if_ray.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/ray/if_ray.c b/sys/dev/ray/if_ray.c index 3370401..f4c4848 100644 --- a/sys/dev/ray/if_ray.c +++ b/sys/dev/ray/if_ray.c @@ -3509,12 +3509,12 @@ ray_ccs_free(struct ray_softc *sc, size_t ccs) #if 1 | (RAY_DEBUG & RAY_DBG_CCS) if (!sc->sc_ccsinuse[RAY_CCS_INDEX(ccs)]) - RAY_RECERR(sc, "freeing free ccs 0x%02x", (uint8_t)RAY_CCS_INDEX(ccs)); + RAY_RECERR(sc, "freeing free ccs 0x%02zx", RAY_CCS_INDEX(ccs)); #endif /* RAY_DEBUG & RAY_DBG_CCS */ if (!sc->sc_gone) RAY_CCS_FREE(sc, ccs); sc->sc_ccsinuse[RAY_CCS_INDEX(ccs)] = 0; - RAY_DPRINTF(sc, RAY_DBG_CCS, "freed 0x%02x", RAY_CCS_INDEX(ccs)); + RAY_DPRINTF(sc, RAY_DBG_CCS, "freed 0x%02zx", RAY_CCS_INDEX(ccs)); wakeup(ray_ccs_alloc); } |