diff options
author | ql147931 <none@none> | 2008-06-16 23:12:24 -0700 |
---|---|---|
committer | ql147931 <none@none> | 2008-06-16 23:12:24 -0700 |
commit | 020c47705d28102a8df83a43ddf08e34dde21f22 (patch) | |
tree | 20dbc166c8a645fcea3c1f9c31d511551334b5a5 | |
parent | 987e90dc68863b34c6e37d54acc6ae971386547d (diff) | |
download | illumos-joyent-020c47705d28102a8df83a43ddf08e34dde21f22.tar.gz |
6677863 rtw scan returns no results on laptop with >= 4GB memory
6708841 rtw needs enable full lint check
6713281 dladm show-dev; dladm show-phys reports incorrect speed
6714772 ral scan returns no results on laptop with >= 4GB memory
-rw-r--r-- | usr/src/uts/common/io/iwk/iwk2.c | 2 | ||||
-rw-r--r-- | usr/src/uts/common/io/ral/rt2560.c | 4 | ||||
-rw-r--r-- | usr/src/uts/common/io/rtw/rtw.c | 38 | ||||
-rw-r--r-- | usr/src/uts/common/io/rtw/rtwreg.h | 20 | ||||
-rw-r--r-- | usr/src/uts/common/io/rtw/smc93cx6var.h | 17 | ||||
-rw-r--r-- | usr/src/uts/common/io/ural/ural.c | 2 | ||||
-rw-r--r-- | usr/src/uts/common/io/wpi/wpi.c | 2 | ||||
-rw-r--r-- | usr/src/uts/intel/rtw/Makefile | 12 |
8 files changed, 51 insertions, 46 deletions
diff --git a/usr/src/uts/common/io/iwk/iwk2.c b/usr/src/uts/common/io/iwk/iwk2.c index 291b817cbe..a7b0418aa1 100644 --- a/usr/src/uts/common/io/iwk/iwk2.c +++ b/usr/src/uts/common/io/iwk/iwk2.c @@ -2547,7 +2547,7 @@ iwk_m_stat(void *arg, uint_t stat, uint64_t *val) case MAC_STAT_IFSPEED: *val = ((ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) ? (rs->ir_rates[in->in_txrate] & IEEE80211_RATE_VAL) - : ic->ic_fixed_rate) * 5000000ull; + : ic->ic_fixed_rate) /2 * 1000000; break; case MAC_STAT_NOXMTBUF: *val = sc->sc_tx_nobuf; diff --git a/usr/src/uts/common/io/ral/rt2560.c b/usr/src/uts/common/io/ral/rt2560.c index 6790f76016..dd699799bc 100644 --- a/usr/src/uts/common/io/ral/rt2560.c +++ b/usr/src/uts/common/io/ral/rt2560.c @@ -139,7 +139,7 @@ static ddi_device_acc_attr_t ral_desc_accattr = { static ddi_dma_attr_t ral_dma_attr = { DMA_ATTR_V0, /* dma_attr version */ 0x0000000000000000ull, /* dma_attr_addr_lo */ - 0xFFFFFFFFFFFFFFFFull, /* dma_attr_addr_hi */ + 0xFFFFFFFF, /* dma_attr_addr_hi */ 0x00000000FFFFFFFFull, /* dma_attr_count_max */ 0x0000000000000001ull, /* dma_attr_align */ 0x00000FFF, /* dma_attr_burstsizes */ @@ -2153,7 +2153,7 @@ rt2560_m_stat(void *arg, uint_t stat, uint64_t *val) case MAC_STAT_IFSPEED: *val = ((ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) ? (rs->ir_rates[ni->in_txrate] & IEEE80211_RATE_VAL) - : ic->ic_fixed_rate) * 5000000ull; + : ic->ic_fixed_rate) / 2 * 1000000; break; case MAC_STAT_NOXMTBUF: *val = sc->sc_tx_nobuf; diff --git a/usr/src/uts/common/io/rtw/rtw.c b/usr/src/uts/common/io/rtw/rtw.c index 1cbe314185..e57629f120 100644 --- a/usr/src/uts/common/io/rtw/rtw.c +++ b/usr/src/uts/common/io/rtw/rtw.c @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -112,7 +112,7 @@ static ddi_device_acc_attr_t rtw_buf_accattr = { static ddi_dma_attr_t dma_attr_desc = { DMA_ATTR_V0, /* dma_attr version */ 0x0000000000000000ull, /* dma_attr_addr_lo */ - 0xFFFFFFFFFFFFFFFFull, /* dma_attr_addr_hi */ + 0xFFFFFFFF, /* dma_attr_addr_hi */ 0x00000000FFFFFFFFull, /* dma_attr_count_max */ 0x100, /* dma_attr_align */ 0xFFFFFFFF, /* dma_attr_burstsizes */ @@ -127,7 +127,7 @@ static ddi_dma_attr_t dma_attr_desc = { static ddi_dma_attr_t dma_attr_rxbuf = { DMA_ATTR_V0, /* dma_attr version */ 0x0000000000000000ull, /* dma_attr_addr_lo */ - 0xFFFFFFFFFFFFFFFFull, /* dma_attr_addr_hi */ + 0xFFFFFFFF, /* dma_attr_addr_hi */ 0x00000000FFFFFFFFull, /* dma_attr_count_max */ (uint32_t)16, /* dma_attr_align */ 0xFFFFFFFF, /* dma_attr_burstsizes */ @@ -142,7 +142,7 @@ static ddi_dma_attr_t dma_attr_rxbuf = { static ddi_dma_attr_t dma_attr_txbuf = { DMA_ATTR_V0, /* dma_attr version */ 0x0000000000000000ull, /* dma_attr_addr_lo */ - 0xFFFFFFFFFFFFFFFFull, /* dma_attr_addr_hi */ + 0xFFFFFFFF, /* dma_attr_addr_hi */ 0x00000000FFFFFFFFull, /* dma_attr_count_max */ (uint32_t)16, /* dma_attr_align */ 0xFFFFFFFF, /* dma_attr_burstsizes */ @@ -200,7 +200,7 @@ static uint32_t rtw_qlen[RTW_NTXPRI] = { RTW_TXQLENBCN }; -static uint32_t rtw_dbg_flags = 0; +uint32_t rtw_dbg_flags = 0; /* * RTW_DEBUG_ATTACH | RTW_DEBUG_TUNE | * RTW_DEBUG_ACCESS | RTW_DEBUG_INIT | RTW_DEBUG_PKTFILT | @@ -1216,7 +1216,8 @@ rtw_dma_free(rtw_softc_t *rsc) } if (rsc->rxbuf_h != NULL) { - kmem_free(rsc->rxbuf_h, sizeof (struct rtw_rxbuf) * RTW_RXQLEN); + kmem_free(rsc->rxbuf_h, + sizeof (struct rtw_rxbuf) * RTW_RXQLEN); rsc->rxbuf_h = NULL; } @@ -1269,7 +1270,8 @@ rtw_dma_init(dev_info_t *devinfo, rtw_softc_t *rsc) sizeof (struct rtw_txbuf), offsetof(struct rtw_txbuf, bf_node)); /* virtual address of the first descriptor */ - rsc->sc_txq[i].txdesc_h = (struct rtw_txdesc *)vtx[i]; + rsc->sc_txq[i].txdesc_h = + (struct rtw_txdesc *)(uintptr_t)vtx[i]; txds = rsc->sc_txq[i].txdesc_h; /* allocate data structures to describe TX DMA buffers */ @@ -1278,8 +1280,8 @@ rtw_dma_init(dev_info_t *devinfo, rtw_softc_t *rsc) rsc->sc_txq[i].txbuf_h = txbf; for (j = 0; j < rtw_qlen[i]; j++, txbf++, txds++) { txbf->txdesc = txds; - txbf->bf_daddr = ptx[i] + ((caddr_t)txds - - (caddr_t)rsc->sc_txq[i].txdesc_h); + txbf->bf_daddr = ptx[i] + ((uintptr_t)txds - + (uintptr_t)rsc->sc_txq[i].txdesc_h); list_insert_tail(&rsc->sc_txq[i].tx_free_list, txbf); /* alloc DMA memory */ @@ -1298,7 +1300,7 @@ rtw_dma_init(dev_info_t *devinfo, rtw_softc_t *rsc) prx = RTW_RING_BASE(phybaseaddr, hd_rx); vrx = (caddr_t)(RTW_RING_BASE(virbaseaddr, hd_rx)); /* virtual address of the first descriptor */ - rsc->rxdesc_h = (struct rtw_rxdesc *)vrx; + rsc->rxdesc_h = (struct rtw_rxdesc *)(uintptr_t)vrx; rxds = rsc->rxdesc_h; /* allocate data structures to describe RX DMA buffers */ @@ -1308,7 +1310,8 @@ rtw_dma_init(dev_info_t *devinfo, rtw_softc_t *rsc) for (j = 0; j < RTW_RXQLEN; j++, rxbf++, rxds++) { rxbf->rxdesc = rxds; - rxbf->bf_daddr = prx + ((caddr_t)rxds - (caddr_t)rsc->rxdesc_h); + rxbf->bf_daddr = + prx + ((uintptr_t)rxds - (uintptr_t)rsc->rxdesc_h); /* alloc DMA memory */ err = rtw_alloc_dma_mem(devinfo, &dma_attr_rxbuf, @@ -2129,7 +2132,7 @@ rtw_assembly_80211(rtw_softc_t *rsc, struct rtw_txbuf *bf, return (-1); } for (; mp != NULL; mp = mp->b_cont) { - mblen = MBLKL(mp); + mblen = (uintptr_t)mp->b_wptr - (uintptr_t)mp->b_rptr; bcopy(mp->b_rptr, mp0->b_wptr, mblen); mp0->b_wptr += mblen; } @@ -2220,7 +2223,7 @@ rtw_assembly_80211(rtw_softc_t *rsc, struct rtw_txbuf *bf, freemsg(mp0); return (-1); } - *(uint16_t *)wh->i_dur = (d0.d_data_dur); + *(uint16_t *)(uintptr_t)wh->i_dur = (d0.d_data_dur); ctl1 = LSHIFT(d0.d_plcp_len, RTW_TXCTL1_LENGTH_MASK) | LSHIFT(d0.d_rts_dur, RTW_TXCTL1_RTSDUR_MASK); @@ -2229,7 +2232,7 @@ rtw_assembly_80211(rtw_softc_t *rsc, struct rtw_txbuf *bf, ctl1 |= RTW_TXCTL1_LENGEXT; RTW_DPRINTF(RTW_DEBUG_XMIT, "%s: duration=%x, ctl1=%x", __func__, - *(uint16_t *)wh->i_dur, ctl1); + *(uint16_t *)(uintptr_t)wh->i_dur, ctl1); if (bf->bf_dma.alength > RTW_TXLEN_LENGTH_MASK) { RTW_DPRINTF(RTW_DEBUG_XMIT, @@ -2839,6 +2842,7 @@ rtw_intr_timeout(rtw_softc_t *rsc) static uint_t rtw_intr(caddr_t arg) { + /* LINTED E_BAD_PTR_CAST_ALIGN */ rtw_softc_t *rsc = (rtw_softc_t *)arg; struct rtw_regs *regs = &rsc->sc_regs; uint16_t isr = 0; @@ -3186,9 +3190,9 @@ rtw_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd) csz = 16; rsc->sc_cachelsz = csz << 2; vendor_id = ddi_get16(rsc->sc_cfg_handle, - (uint16_t *)(rsc->sc_cfg_base + PCI_CONF_VENID)); + (uint16_t *)((uintptr_t)rsc->sc_cfg_base + PCI_CONF_VENID)); device_id = ddi_get16(rsc->sc_cfg_handle, - (uint16_t *)(rsc->sc_cfg_base + PCI_CONF_DEVID)); + (uint16_t *)((uintptr_t)rsc->sc_cfg_base + PCI_CONF_DEVID)); RTW_DPRINTF(RTW_DEBUG_ATTACH, "rtw: rtw_attach(): vendor 0x%x, " "device id 0x%x, cache size %d\n", vendor_id, device_id, csz); @@ -3198,7 +3202,7 @@ rtw_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd) */ command = PCI_COMM_MAE | PCI_COMM_ME; ddi_put16(rsc->sc_cfg_handle, - (uint16_t *)(rsc->sc_cfg_base + PCI_CONF_COMM), command); + (uint16_t *)((uintptr_t)rsc->sc_cfg_base + PCI_CONF_COMM), command); RTW_DPRINTF(RTW_DEBUG_ATTACH, "rtw: rtw_attach(): " "set command reg to 0x%x \n", command); diff --git a/usr/src/uts/common/io/rtw/rtwreg.h b/usr/src/uts/common/io/rtw/rtwreg.h index e5a00a7352..3fa4ee4dee 100644 --- a/usr/src/uts/common/io/rtw/rtwreg.h +++ b/usr/src/uts/common/io/rtw/rtwreg.h @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* @@ -1216,22 +1216,28 @@ struct rtw_rxdesc { #define RTW_RXRSSI_SQ BITS(7, 0) /* Barker code-lock quality */ #define RTW_READ8(regs, ofs) \ - ddi_get8((regs)->r_handle, (uint8_t *)((regs)->r_base + (ofs))) + ddi_get8((regs)->r_handle, \ + (uint8_t *)((regs)->r_base + (ofs))) #define RTW_READ16(regs, ofs) \ - ddi_get16((regs)->r_handle, (uint16_t *)((regs)->r_base + (ofs))) + ddi_get16((regs)->r_handle, \ + (uint16_t *)((uintptr_t)(regs)->r_base + (ofs))) #define RTW_READ(regs, ofs) \ - ddi_get32((regs)->r_handle, (uint32_t *)((regs)->r_base + (ofs))) + ddi_get32((regs)->r_handle, \ + (uint32_t *)((uintptr_t)(regs)->r_base + (ofs))) #define RTW_WRITE8(regs, ofs, val) \ - ddi_put8((regs)->r_handle, (uint8_t *)((regs)->r_base + (ofs)), val) + ddi_put8((regs)->r_handle, \ + (uint8_t *)((regs)->r_base + (ofs)), val) #define RTW_WRITE16(regs, ofs, val) \ - ddi_put16((regs)->r_handle, (uint16_t *)((regs)->r_base + (ofs)), val) + ddi_put16((regs)->r_handle, \ + (uint16_t *)((uintptr_t)(regs)->r_base + (ofs)), val) #define RTW_WRITE(regs, ofs, val) \ - ddi_put32((regs)->r_handle, (uint32_t *)((regs)->r_base + (ofs)), val) + ddi_put32((regs)->r_handle, \ + (uint32_t *)((uintptr_t)(regs)->r_base + (ofs)), val) #define RTW_ISSET(regs, reg, mask) \ (RTW_READ((regs), (reg)) & (mask)) diff --git a/usr/src/uts/common/io/rtw/smc93cx6var.h b/usr/src/uts/common/io/rtw/smc93cx6var.h index 6044a07fb0..4f37f3de78 100644 --- a/usr/src/uts/common/io/rtw/smc93cx6var.h +++ b/usr/src/uts/common/io/rtw/smc93cx6var.h @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -86,30 +86,35 @@ struct seeprom_descriptor { #define SEEPROM_INB(sd) \ (((sd)->sd_regsize == 4) \ - ? ddi_get32((sd)->sd_handle, (uint32_t *)((sd)->sd_base+ \ + ? ddi_get32((sd)->sd_handle, \ + (uint32_t *)((uintptr_t)(sd)->sd_base+ \ (sd)->sd_control_offset)) \ : ddi_get8((sd)->sd_handle, (uint8_t *)((sd)->sd_base+ \ (sd)->sd_control_offset))) #define SEEPROM_OUTB(sd, value) { \ if ((sd)->sd_regsize == 4) \ - ddi_put32((sd)->sd_handle, (uint32_t *)((sd)->sd_base+ \ + ddi_put32((sd)->sd_handle, \ + (uint32_t *)((uintptr_t)(sd)->sd_base+ \ (sd)->sd_control_offset), (value)); \ else \ - ddi_put8((sd)->sd_handle, (uint8_t *)((sd)->sd_base+ \ + ddi_put8((sd)->sd_handle, \ + (uint8_t *)((sd)->sd_base+ \ (sd)->sd_control_offset), (uint8_t)(value)); \ } #define SEEPROM_STATUS_INB(sd) \ (((sd)->sd_regsize == 4) \ - ? ddi_get32((sd)->sd_handle, (uint32_t *)((sd)->sd_base+ \ + ? ddi_get32((sd)->sd_handle, \ + (uint32_t *)((uintptr_t)(sd)->sd_base+ \ (sd)->sd_status_offset)) \ : ddi_get8((sd)->sd_handle, (uint8_t *)((sd)->sd_base+ \ (sd)->sd_status_offset))) #define SEEPROM_DATA_INB(sd) \ (((sd)->sd_regsize == 4) \ - ? ddi_get32((sd)->sd_handle, (uint32_t *)((sd)->sd_base+ \ + ? ddi_get32((sd)->sd_handle, \ + (uint32_t *)((uintptr_t)(sd)->sd_base+ \ (sd)->sd_dataout_offset)) \ : ddi_get8((sd)->sd_handle, (uint8_t *)((sd)->sd_base+ \ (sd)->sd_dataout_offset))) diff --git a/usr/src/uts/common/io/ural/ural.c b/usr/src/uts/common/io/ural/ural.c index 16d55abcad..cdbea7cf23 100644 --- a/usr/src/uts/common/io/ural/ural.c +++ b/usr/src/uts/common/io/ural/ural.c @@ -2077,7 +2077,7 @@ ural_m_stat(void *arg, uint_t stat, uint64_t *val) case MAC_STAT_IFSPEED: *val = ((ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) ? (rs->ir_rates[ni->in_txrate] & IEEE80211_RATE_VAL) - : ic->ic_fixed_rate) * 5000000ull; + : ic->ic_fixed_rate) / 2 * 1000000; break; case MAC_STAT_NOXMTBUF: *val = sc->sc_tx_nobuf; diff --git a/usr/src/uts/common/io/wpi/wpi.c b/usr/src/uts/common/io/wpi/wpi.c index e33efea008..e226fff821 100644 --- a/usr/src/uts/common/io/wpi/wpi.c +++ b/usr/src/uts/common/io/wpi/wpi.c @@ -2235,7 +2235,7 @@ wpi_m_stat(void *arg, uint_t stat, uint64_t *val) case MAC_STAT_IFSPEED: *val = ((ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) ? (rs->ir_rates[in->in_txrate] & IEEE80211_RATE_VAL) - : ic->ic_fixed_rate) * 5000000ull; + : ic->ic_fixed_rate) / 2 * 1000000; break; case MAC_STAT_NOXMTBUF: *val = sc->sc_tx_nobuf; diff --git a/usr/src/uts/intel/rtw/Makefile b/usr/src/uts/intel/rtw/Makefile index cd9a7306c2..1cbf411330 100644 --- a/usr/src/uts/intel/rtw/Makefile +++ b/usr/src/uts/intel/rtw/Makefile @@ -19,7 +19,7 @@ # CDDL HEADER END # # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" @@ -54,16 +54,6 @@ LINT_TARGET = $(MODULE).lint INSTALL_TARGET = $(BINARY) $(ROOTMODULE) # -# Overrides -# - -# -# STREAMS API limitations force us to turn off these lint checks. -# -LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN -LINTTAGS += -erroff=E_PTRDIFF_OVERFLOW - -# # Driver depends on MAC-WIFI & net80211 misc modules # LDFLAGS += -dy -Nmisc/mac -Nmisc/net80211 |