diff options
Diffstat (limited to 'sys/dev/usb/wlan/if_run.c')
-rw-r--r-- | sys/dev/usb/wlan/if_run.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/sys/dev/usb/wlan/if_run.c b/sys/dev/usb/wlan/if_run.c index 44bb12b..ddb7395 100644 --- a/sys/dev/usb/wlan/if_run.c +++ b/sys/dev/usb/wlan/if_run.c @@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$"); #include <dev/usb/wlan/if_runreg.h> #include <dev/usb/wlan/if_runvar.h> -#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) +#define N(_a) ((int)(sizeof((_a)) / sizeof((_a)[0]))) #ifdef USB_DEBUG #define RUN_DEBUG @@ -658,7 +658,7 @@ run_attach(device_t self) sc->rf_rev == RT2860_RF_2850 || sc->rf_rev == RT3070_RF_3052) { /* set supported .11a rates */ - for (i = 14; i < nitems(rt2860_rf2850); i++) { + for (i = 14; i < N(rt2860_rf2850); i++) { uint8_t chan = rt2860_rf2850[i].chan; ic->ic_channels[ic->ic_nchans].ic_freq = ieee80211_ieee2mhz(chan, IEEE80211_CHAN_A); @@ -2574,8 +2574,8 @@ run_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error) DPRINTFN(15, "rx done, actlen=%d\n", xferlen); - if (xferlen < sizeof (uint32_t) + - sizeof (struct rt2860_rxwi) + sizeof (struct rt2870_rxd)) { + if (xferlen < (int)(sizeof(uint32_t) + + sizeof(struct rt2860_rxwi) + sizeof(struct rt2870_rxd))) { DPRINTF("xfer too short %d\n", xferlen); goto tr_setup; } @@ -2640,11 +2640,12 @@ tr_setup: for(;;) { dmalen = le32toh(*mtod(m, uint32_t *)) & 0xffff; - if ((dmalen == 0) || ((dmalen & 3) != 0)) { + if ((dmalen >= (uint32_t)-8) || (dmalen == 0) || + ((dmalen & 3) != 0)) { DPRINTF("bad DMA length %u\n", dmalen); break; } - if ((dmalen + 8) > xferlen) { + if ((dmalen + 8) > (uint32_t)xferlen) { DPRINTF("bad DMA length %u > %d\n", dmalen + 8, xferlen); break; @@ -4306,7 +4307,7 @@ run_bbp_init(struct run_softc *sc) return (ETIMEDOUT); /* initialize BBP registers to default values */ - for (i = 0; i < nitems(rt2860_def_bbp); i++) { + for (i = 0; i < N(rt2860_def_bbp); i++) { run_bbp_write(sc, rt2860_def_bbp[i].reg, rt2860_def_bbp[i].val); } @@ -4341,12 +4342,12 @@ run_rt3070_rf_init(struct run_softc *sc) /* initialize RF registers to default value */ if (sc->mac_ver == 0x3572) { - for (i = 0; i < nitems(rt3572_def_rf); i++) { + for (i = 0; i < N(rt3572_def_rf); i++) { run_rt3070_rf_write(sc, rt3572_def_rf[i].reg, rt3572_def_rf[i].val); } } else { - for (i = 0; i < nitems(rt3070_def_rf); i++) { + for (i = 0; i < N(rt3070_def_rf); i++) { run_rt3070_rf_write(sc, rt3070_def_rf[i].reg, rt3070_def_rf[i].val); } @@ -4729,7 +4730,7 @@ run_init_locked(struct run_softc *sc) run_write(sc, RT2860_TX_PWR_CFG(ridx), sc->txpow20mhz[ridx]); } - for (i = 0; i < nitems(rt2870_def_mac); i++) + for (i = 0; i < N(rt2870_def_mac); i++) run_write(sc, rt2870_def_mac[i].reg, rt2870_def_mac[i].val); run_write(sc, RT2860_WMM_AIFSN_CFG, 0x00002273); run_write(sc, RT2860_WMM_CWMIN_CFG, 0x00002344); @@ -4949,9 +4950,9 @@ static device_method_t run_methods[] = { }; static driver_t run_driver = { - "run", - run_methods, - sizeof(struct run_softc) + .name = "run", + .methods = run_methods, + .size = sizeof(struct run_softc) }; static devclass_t run_devclass; |