summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorql147931 <none@none>2008-06-16 23:12:24 -0700
committerql147931 <none@none>2008-06-16 23:12:24 -0700
commit020c47705d28102a8df83a43ddf08e34dde21f22 (patch)
tree20dbc166c8a645fcea3c1f9c31d511551334b5a5
parent987e90dc68863b34c6e37d54acc6ae971386547d (diff)
downloadillumos-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.c2
-rw-r--r--usr/src/uts/common/io/ral/rt2560.c4
-rw-r--r--usr/src/uts/common/io/rtw/rtw.c38
-rw-r--r--usr/src/uts/common/io/rtw/rtwreg.h20
-rw-r--r--usr/src/uts/common/io/rtw/smc93cx6var.h17
-rw-r--r--usr/src/uts/common/io/ural/ural.c2
-rw-r--r--usr/src/uts/common/io/wpi/wpi.c2
-rw-r--r--usr/src/uts/intel/rtw/Makefile12
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