summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/pkgdefs/SUNWbge/postinstall2
-rw-r--r--usr/src/uts/common/io/bge/bge.h (renamed from usr/src/uts/common/sys/bge2.h)0
-rw-r--r--usr/src/uts/common/io/bge/bge_atomic.c2
-rw-r--r--usr/src/uts/common/io/bge/bge_chip2.c34
-rw-r--r--usr/src/uts/common/io/bge/bge_hw.h (renamed from usr/src/uts/common/sys/bge_hw2.h)5
-rw-r--r--usr/src/uts/common/io/bge/bge_impl.h (renamed from usr/src/uts/common/sys/bge_impl2.h)15
-rw-r--r--usr/src/uts/common/io/bge/bge_kstats.c13
-rw-r--r--usr/src/uts/common/io/bge/bge_log.c2
-rw-r--r--usr/src/uts/common/io/bge/bge_main2.c44
-rw-r--r--usr/src/uts/common/io/bge/bge_mii.c40
-rw-r--r--usr/src/uts/common/io/bge/bge_ndd.c2
-rw-r--r--usr/src/uts/common/io/bge/bge_recv2.c2
-rw-r--r--usr/src/uts/common/io/bge/bge_send.c2
13 files changed, 92 insertions, 71 deletions
diff --git a/usr/src/pkgdefs/SUNWbge/postinstall b/usr/src/pkgdefs/SUNWbge/postinstall
index 4dee2fbf50..8c544aeff2 100644
--- a/usr/src/pkgdefs/SUNWbge/postinstall
+++ b/usr/src/pkgdefs/SUNWbge/postinstall
@@ -136,6 +136,8 @@ then
"pci108e,1648"
"pci108e,16a7"
"pci108e,16a8"
+ "pci14e4,1600"
+ "pci14e4,1601"
"pci14e4,1644"
"pci14e4,1645"
"pci14e4,1647"
diff --git a/usr/src/uts/common/sys/bge2.h b/usr/src/uts/common/io/bge/bge.h
index 99072e1e98..99072e1e98 100644
--- a/usr/src/uts/common/sys/bge2.h
+++ b/usr/src/uts/common/io/bge/bge.h
diff --git a/usr/src/uts/common/io/bge/bge_atomic.c b/usr/src/uts/common/io/bge/bge_atomic.c
index 4c1af76bbb..bd3393fed8 100644
--- a/usr/src/uts/common/io/bge/bge_atomic.c
+++ b/usr/src/uts/common/io/bge/bge_atomic.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
/*
* Atomically decrement a counter, but only if it will remain
diff --git a/usr/src/uts/common/io/bge/bge_chip2.c b/usr/src/uts/common/io/bge/bge_chip2.c
index 3fc7923493..1cb2129912 100644
--- a/usr/src/uts/common/io/bge/bge_chip2.c
+++ b/usr/src/uts/common/io/bge/bge_chip2.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
#define PIO_ADDR(bgep, offset) ((void *)((caddr_t)(bgep)->io_regs+(offset)))
@@ -1830,6 +1830,8 @@ bge_nvmem_id(bge_t *bgep)
case DEVICE_ID_5789:
case DEVICE_ID_5751:
case DEVICE_ID_5751M:
+ case DEVICE_ID_5752:
+ case DEVICE_ID_5752M:
case DEVICE_ID_5721:
case DEVICE_ID_5714C:
case DEVICE_ID_5714S:
@@ -2130,6 +2132,24 @@ bge_chip_id_init(bge_t *bgep)
dev_ok = B_TRUE;
break;
+ case DEVICE_ID_5752:
+ case DEVICE_ID_5752M:
+ cidp->chip_label = 5752;
+ cidp->mbuf_lo_water_rdma = RDMA_MBUF_LOWAT_5705;
+ cidp->mbuf_lo_water_rmac = MAC_RX_MBUF_LOWAT_5705;
+ cidp->mbuf_hi_water = MBUF_HIWAT_5705;
+ cidp->mbuf_base = bge_mbuf_pool_base_5721;
+ cidp->mbuf_length = bge_mbuf_pool_len_5721;
+ cidp->recv_slots = BGE_RECV_SLOTS_5721;
+ cidp->bge_dma_rwctrl = bge_dma_rwctrl_5721;
+ cidp->rx_rings = BGE_RECV_RINGS_MAX_5705;
+ cidp->tx_rings = BGE_SEND_RINGS_MAX_5705;
+ cidp->pci_type = BGE_PCI_E;
+ cidp->statistic_type = BGE_STAT_REG;
+ cidp->flags |= CHIP_FLAG_NO_JUMBO;
+ dev_ok = B_TRUE;
+ break;
+
case DEVICE_ID_5789:
cidp->chip_label = 5789;
cidp->mbuf_base = bge_mbuf_pool_base_5721;
@@ -2432,6 +2452,7 @@ bge_chip_reset_engine(bge_t *bgep, bge_regno_t regno)
/* Set PCIE max payload size and clear error status. */
if ((bgep->chipid.chip_label == 5721) ||
(bgep->chipid.chip_label == 5751) ||
+ (bgep->chipid.chip_label == 5752) ||
(bgep->chipid.chip_label == 5789)) {
pci_config_put16(bgep->cfg_handle,
PCI_CONF_DEV_CTRL, READ_REQ_SIZE_MAX);
@@ -3022,6 +3043,16 @@ bge_chip_reset(bge_t *bgep, boolean_t enable_dma)
if (bgep->asf_enabled)
bgep->asf_wordswapped = B_FALSE;
#endif
+ /*
+ * NVRAM Corruption Workaround
+ */
+ for (i = 0; i < 600; i++)
+ if (bge_nvmem_acquire(bgep) == 0)
+ break;
+ if (i >= 600)
+ BGE_DEBUG(("%s: fail to acquire nvram lock",
+ bgep->ifname));
+
#ifdef BGE_IPMI_ASF
if (!bgep->asf_enabled) {
#endif
@@ -3041,6 +3072,7 @@ bge_chip_reset(bge_t *bgep, boolean_t enable_dma)
*/
if ((bgep->chipid.chip_label == 5721) ||
(bgep->chipid.chip_label == 5751) ||
+ (bgep->chipid.chip_label == 5752) ||
(bgep->chipid.chip_label == 5789))
bge_reg_set32(bgep, TLP_CONTROL_REG, TLP_DATA_FIFO_PROTECT);
diff --git a/usr/src/uts/common/sys/bge_hw2.h b/usr/src/uts/common/io/bge/bge_hw.h
index 2de73fc811..489788c45f 100644
--- a/usr/src/uts/common/sys/bge_hw2.h
+++ b/usr/src/uts/common/io/bge/bge_hw.h
@@ -74,6 +74,8 @@ extern "C" {
#define DEVICE_ID_5789 0x169d
#define DEVICE_ID_5751 0x1677
#define DEVICE_ID_5751M 0x167d
+#define DEVICE_ID_5752 0x1600
+#define DEVICE_ID_5752M 0x1601
#define DEVICE_ID_5721 0x1659
#define DEVICE_ID_5714C 0x1668
#define DEVICE_ID_5714S 0x1669
@@ -150,6 +152,8 @@ extern "C" {
((bgep->chipid.device == DEVICE_ID_5721) ||\
(bgep->chipid.device == DEVICE_ID_5751) ||\
(bgep->chipid.device == DEVICE_ID_5751M) ||\
+ (bgep->chipid.device == DEVICE_ID_5752) ||\
+ (bgep->chipid.device == DEVICE_ID_5752M) ||\
(bgep->chipid.device == DEVICE_ID_5789))
#define DEVICE_5714_SERIES_CHIPSETS(bgep) \
@@ -243,6 +247,7 @@ extern "C" {
#define MHCR_CHIP_ASIC_REV_5705 (0x3 << 28)
#define MHCR_CHIP_ASIC_REV_5721_5751 (0x4 << 28)
#define MHCR_CHIP_ASIC_REV_5714 (0x5 << 28)
+#define MHCR_CHIP_ASIC_REV_5752 (0x6 << 28)
#define MHCR_CHIP_ASIC_REV_5715 ((uint32_t)0x9 << 28)
diff --git a/usr/src/uts/common/sys/bge_impl2.h b/usr/src/uts/common/io/bge/bge_impl.h
index de89bdbc6b..eb21bdd4bf 100644
--- a/usr/src/uts/common/sys/bge_impl2.h
+++ b/usr/src/uts/common/io/bge/bge_impl.h
@@ -99,14 +99,14 @@ typedef uchar_t ether_addr_t[ETHERADDRL];
*/
extern int secpolicy_net_config(const cred_t *, boolean_t);
extern int drv_priv(cred_t *);
-#pragma weak secpolicy_net_config
-#pragma weak drv_priv
+#pragma weak secpolicy_net_config
+#pragma weak drv_priv
#include <sys/netlb.h> /* originally from cassini */
#include <sys/miiregs.h> /* by fjlite out of intel */
-#include <sys/bge2.h>
-#include <sys/bge_hw2.h>
+#include "bge.h"
+#include "bge_hw.h"
/*
* Compile-time feature switches ...
@@ -1280,9 +1280,10 @@ uint32_t bge_atomic_shl32(uint32_t *sp, uint_t count);
#define BGE_SUSPEND_RESET 2
/* For asf_status */
-#define ASF_STAT_NONE 0
-#define ASF_STAT_STOP 1
-#define ASF_STAT_RUN 2
+#define ASF_STAT_NONE 0
+#define ASF_STAT_STOP 1
+#define ASF_STAT_RUN 2
+#define ASF_STAT_RUN_INIT 3 /* attached but don't plumb */
/* ASF modes for bge_reset() and bge_chip_reset() */
#define ASF_MODE_NONE 0 /* don't launch asf */
diff --git a/usr/src/uts/common/io/bge/bge_kstats.c b/usr/src/uts/common/io/bge/bge_kstats.c
index da910a9061..25fbce0cf1 100644
--- a/usr/src/uts/common/io/bge/bge_kstats.c
+++ b/usr/src/uts/common/io/bge/bge_kstats.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
#define BGE_DBG BGE_DBG_STATS /* debug flag for this code */
@@ -895,9 +895,7 @@ bge_m_stat(void *arg, uint_t stat, uint64_t *val)
bge_t *bgep = arg;
bge_statistics_t *bstp;
- mutex_enter(bgep->genlock);
if (bgep->bge_chip_state == BGE_CHIP_FAULT) {
- mutex_exit(bgep->genlock);
return (EINVAL);
}
@@ -906,7 +904,6 @@ bge_m_stat(void *arg, uint_t stat, uint64_t *val)
* bge optical interface.
*/
if ((bgep->chipid.flags & CHIP_FLAG_SERDES) && ETHER_STAT_ISMII(stat)) {
- mutex_exit(bgep->genlock);
return (ENOTSUP);
}
@@ -967,10 +964,12 @@ bge_m_stat(void *arg, uint_t stat, uint64_t *val)
bge_reg_get32(bgep, STAT_ETHER_JABBERS_REG);
bgep->stat_val.etherStatsUndersizePkts +=
bge_reg_get32(bgep, STAT_ETHER_UNDERSIZE_REG);
+ mutex_enter(bgep->genlock);
if (bge_check_acc_handle(bgep, bgep->io_handle) != DDI_FM_OK) {
ddi_fm_service_impact(bgep->devinfo,
DDI_SERVICE_UNAFFECTED);
}
+ mutex_exit(bgep->genlock);
}
switch (stat) {
@@ -1162,6 +1161,7 @@ bge_m_stat(void *arg, uint_t stat, uint64_t *val)
break;
case ETHER_STAT_XCVR_ID:
+ mutex_enter(bgep->genlock);
*val = bge_mii_get16(bgep, MII_PHYIDH);
*val <<= 16;
*val |= bge_mii_get16(bgep, MII_PHYIDL);
@@ -1169,6 +1169,7 @@ bge_m_stat(void *arg, uint_t stat, uint64_t *val)
ddi_fm_service_impact(bgep->devinfo,
DDI_SERVICE_UNAFFECTED);
}
+ mutex_exit(bgep->genlock);
break;
case ETHER_STAT_XCVR_INUSE:
@@ -1287,7 +1288,7 @@ bge_m_stat(void *arg, uint_t stat, uint64_t *val)
*val = bgep->param_adv_asym_pause &&
bgep->param_lp_asym_pause &&
bgep->param_adv_pause != bgep->param_lp_pause;
- break;
+ break;
case ETHER_STAT_LINK_PAUSE:
*val = bgep->param_link_rx_pause;
@@ -1302,10 +1303,8 @@ bge_m_stat(void *arg, uint_t stat, uint64_t *val)
break;
default:
- mutex_exit(bgep->genlock);
return (ENOTSUP);
}
- mutex_exit(bgep->genlock);
return (0);
}
diff --git a/usr/src/uts/common/io/bge/bge_log.c b/usr/src/uts/common/io/bge/bge_log.c
index a295e5cda8..d1863526c7 100644
--- a/usr/src/uts/common/io/bge/bge_log.c
+++ b/usr/src/uts/common/io/bge/bge_log.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
/*
diff --git a/usr/src/uts/common/io/bge/bge_main2.c b/usr/src/uts/common/io/bge/bge_main2.c
index ebddbd3204..901a908d85 100644
--- a/usr/src/uts/common/io/bge/bge_main2.c
+++ b/usr/src/uts/common/io/bge/bge_main2.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
#include <sys/sdt.h>
/*
@@ -1128,6 +1128,8 @@ bge_m_ioctl(void *arg, queue_t *wq, mblk_t *mp)
case BGE_MII_WRITE:
case BGE_SEE_READ:
case BGE_SEE_WRITE:
+ case BGE_FLASH_READ:
+ case BGE_FLASH_WRITE:
case BGE_DIAG:
case BGE_PEEK:
case BGE_POKE:
@@ -1184,6 +1186,8 @@ bge_m_ioctl(void *arg, queue_t *wq, mblk_t *mp)
case BGE_MII_WRITE:
case BGE_SEE_READ:
case BGE_SEE_WRITE:
+ case BGE_FLASH_READ:
+ case BGE_FLASH_WRITE:
case BGE_DIAG:
case BGE_PEEK:
case BGE_POKE:
@@ -1222,7 +1226,7 @@ bge_m_ioctl(void *arg, queue_t *wq, mblk_t *mp)
status = IOC_INVAL;
}
#ifdef BGE_IPMI_ASF
- if (bge_chip_sync(bgep, B_FALSE) == DDI_FAILURE) {
+ if (bge_chip_sync(bgep, B_TRUE) == DDI_FAILURE) {
#else
if (bge_chip_sync(bgep) == DDI_FAILURE) {
#endif
@@ -2501,16 +2505,16 @@ bge_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd)
goto attach_fail;
}
- bge_log(bgep, "ddi_intr_get_supported_types() returned: %x",
- intr_types);
+ BGE_DEBUG(("%s: ddi_intr_get_supported_types() returned: %x",
+ bgep->ifname, intr_types));
if ((intr_types & DDI_INTR_TYPE_MSI) && bgep->chipid.msi_enabled) {
if (bge_add_intrs(bgep, DDI_INTR_TYPE_MSI) != DDI_SUCCESS) {
bge_error(bgep, "MSI registration failed, "
"trying FIXED interrupt type\n");
} else {
- bge_log(bgep, "Using MSI interrupt type\n");
-
+ BGE_DEBUG(("%s: Using MSI interrupt type",
+ bgep->ifname));
bgep->intr_type = DDI_INTR_TYPE_MSI;
bgep->progress |= PROGRESS_HWINT;
}
@@ -2524,7 +2528,7 @@ bge_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd)
goto attach_fail;
}
- bge_log(bgep, "Using FIXED interrupt type\n");
+ BGE_DEBUG(("%s: Using FIXED interrupt type", bgep->ifname));
bgep->intr_type = DDI_INTR_TYPE_FIXED;
bgep->progress |= PROGRESS_HWINT;
@@ -2583,6 +2587,12 @@ bge_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd)
goto attach_fail;
}
+#ifdef BGE_IPMI_ASF
+ if (bgep->asf_enabled) {
+ bgep->asf_status = ASF_STAT_RUN_INIT;
+ }
+#endif
+
bzero(bgep->mcast_hash, sizeof (bgep->mcast_hash));
bzero(bgep->mcast_refs, sizeof (bgep->mcast_refs));
bgep->promisc = B_FALSE;
@@ -2669,7 +2679,7 @@ bge_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd)
attach_fail:
#ifdef BGE_IPMI_ASF
- bge_unattach(bgep, ASF_MODE_NONE);
+ bge_unattach(bgep, ASF_MODE_SHUTDOWN);
#else
bge_unattach(bgep);
#endif
@@ -2739,10 +2749,13 @@ bge_detach(dev_info_t *devinfo, ddi_detach_cmd_t cmd)
#ifdef BGE_IPMI_ASF
mutex_enter(bgep->genlock);
- if (bgep->asf_enabled && (bgep->asf_status == ASF_STAT_RUN)) {
+ if (bgep->asf_enabled && ((bgep->asf_status == ASF_STAT_RUN) ||
+ (bgep->asf_status == ASF_STAT_RUN_INIT))) {
bge_asf_update_status(bgep);
- bge_asf_stop_timer(bgep);
+ if (bgep->asf_status == ASF_STAT_RUN) {
+ bge_asf_stop_timer(bgep);
+ }
bgep->asf_status = ASF_STAT_STOP;
bge_asf_pre_reset_operations(bgep, BGE_SHUTDOWN_RESET);
@@ -2854,7 +2867,7 @@ bge_add_intrs(bge_t *bgep, int intr_type)
int avail, actual, intr_size, count = 0;
int i, flag, ret;
- bge_log(bgep, "bge_add_intrs: interrupt type 0x%x\n", intr_type);
+ BGE_DEBUG(("bge_add_intrs($%p, 0x%x)", (void *)bgep, intr_type));
/* Get number of interrupts */
ret = ddi_intr_get_nintrs(dip, intr_type, &count);
@@ -2875,8 +2888,8 @@ bge_add_intrs(bge_t *bgep, int intr_type)
}
if (avail < count) {
- bge_log(bgep, "nitrs() returned %d, navail returned %d\n",
- count, avail);
+ BGE_DEBUG(("%s: nintrs() returned %d, navail returned %d",
+ bgep->ifname, count, avail));
}
/*
@@ -2906,7 +2919,8 @@ bge_add_intrs(bge_t *bgep, int intr_type)
}
if (actual < count) {
- bge_log(bgep, "Requested: %d, Received: %d\n", count, actual);
+ BGE_DEBUG(("%s: Requested: %d, Received: %d",
+ bgep->ifname, count, actual));
}
bgep->intr_cnt = actual;
@@ -2970,7 +2984,7 @@ bge_rem_intrs(bge_t *bgep)
{
int i;
- bge_log(bgep, "bge_rem_intrs\n");
+ BGE_DEBUG(("bge_rem_intrs($%p)", (void *)bgep));
/* Call ddi_intr_remove_handler() */
for (i = 0; i < bgep->intr_cnt; i++) {
diff --git a/usr/src/uts/common/io/bge/bge_mii.c b/usr/src/uts/common/io/bge/bge_mii.c
index 0e392fca1f..f53589ef1f 100644
--- a/usr/src/uts/common/io/bge/bge_mii.c
+++ b/usr/src/uts/common/io/bge/bge_mii.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
/*
* Bit test macros, returning boolean_t values
@@ -510,6 +510,7 @@ bge_restart_copper(bge_t *bgep, boolean_t powerdown)
case MHCR_CHIP_ASIC_REV_5704:
case MHCR_CHIP_ASIC_REV_5705:
case MHCR_CHIP_ASIC_REV_5721_5751:
+ case MHCR_CHIP_ASIC_REV_5752:
case MHCR_CHIP_ASIC_REV_5714:
case MHCR_CHIP_ASIC_REV_5715:
reset_ok = bge_phy_reset_and_check(bgep);
@@ -1488,14 +1489,9 @@ bge_phys_update(bge_t *bgep)
* Read the link status and determine whether anything's changed ...
*
* This routine should be called whenever the chip flags a change
- * in the hardware link state, and repeatedly for several seconds
- * afterwards, until we're sure the state has stabilised (sometimes
- * it goes up and down several times during autonegotiation before
- * settling on the proper configuration). This routine applies
- * timing-based heuristics to determine when the state is stable.
+ * in the hardware link state.
*
* This routine returns B_FALSE if the link state has not changed,
- * or if it has changed, but hasn't settled for long enough yet. It
* returns B_TRUE when the change to the new state should be accepted.
* In such a case, the param_* variables give the new hardware state,
* which the caller should use to update link_state etc.
@@ -1507,44 +1503,16 @@ bge_phys_check(bge_t *bgep)
{
int32_t orig_state;
boolean_t recheck;
- boolean_t linkup;
- hrtime_t deltat;
- hrtime_t now;
BGE_TRACE(("bge_phys_check($%p)", (void *)bgep));
ASSERT(mutex_owned(bgep->genlock));
- linkup = bgep->param_link_up;
orig_state = bgep->link_state;
recheck = orig_state == LINK_STATE_UNKNOWN;
recheck = (*bgep->physops->phys_check)(bgep, recheck);
if (!recheck)
return (B_FALSE);
- /*
- * At this point, the check_*_link() function above has detected
- * a change and updated the param_* variables to show what the
- * latest hardware state seems to be -- but it might still be
- * changing.
- *
- * The link_state must now be UNKNOWN, but if it was previously
- * UP, we want to recognise this immediately, whereas in any other
- * case (e.g. DOWN->UP) we don't accept it until a few seconds have
- * elapsed, to give the hardware time to settle.
- */
- now = gethrtime();
- deltat = now - bgep->phys_event_time;
-
- BGE_DEBUG(("bge_phys_check: link was %d/%s now %d/%s",
- orig_state, UPORDOWN(linkup),
- bgep->link_state, UPORDOWN(bgep->param_link_up)));
- BGE_DEBUG(("bge_phys_check: update %lld change %lld "
- "now %lld delta %lld",
- bgep->phys_write_time, bgep->phys_event_time, now, deltat));
-
- if (orig_state == LINK_STATE_UP)
- return (B_TRUE);
- else
- return (deltat > bgep->phys_delta_time);
+ return (B_TRUE);
}
diff --git a/usr/src/uts/common/io/bge/bge_ndd.c b/usr/src/uts/common/io/bge/bge_ndd.c
index e5636c0dff..4aa07abef4 100644
--- a/usr/src/uts/common/io/bge/bge_ndd.c
+++ b/usr/src/uts/common/io/bge/bge_ndd.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
#define BGE_DBG BGE_DBG_NDD /* debug flag for this code */
diff --git a/usr/src/uts/common/io/bge/bge_recv2.c b/usr/src/uts/common/io/bge/bge_recv2.c
index 0aa7074c9f..8126e05b9a 100644
--- a/usr/src/uts/common/io/bge/bge_recv2.c
+++ b/usr/src/uts/common/io/bge/bge_recv2.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
#define U32TOPTR(x) ((void *)(uintptr_t)(uint32_t)(x))
#define PTRTOU32(x) ((uint32_t)(uintptr_t)(void *)(x))
diff --git a/usr/src/uts/common/io/bge/bge_send.c b/usr/src/uts/common/io/bge/bge_send.c
index f44172956d..d872b813c4 100644
--- a/usr/src/uts/common/io/bge/bge_send.c
+++ b/usr/src/uts/common/io/bge/bge_send.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#include "sys/bge_impl2.h"
+#include "bge_impl.h"
/*