summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorSukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>2010-01-18 09:39:57 -0800
committerSukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>2010-01-18 09:39:57 -0800
commitbce54adf407df0723facaef4e2147ed69b922786 (patch)
tree1a982055c9c90aa5884610e01809d5fe61dbcf5d /usr/src
parent634e26ec75c89095090605284938356a3145f2b8 (diff)
downloadillumos-joyent-bce54adf407df0723facaef4e2147ed69b922786.tar.gz
6911936 Memory leaks in the emlxs 2.50 driver for FCoE adapters
6914995 VPorts fail to reconnect to the FCoE switch after a port disconnect/connect on the physical port 6915003 System panic in the emlxs 2.50 driver when a mailbox timeout occurs on the FCoE adapter 6916658 Default values for fct parameters not getting set properly in the emlxs driver
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_clock.c4
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c111
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_mbox.c16
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c65
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_solaris.c4
-rw-r--r--usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_config.h12
-rw-r--r--usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_fc.h4
-rw-r--r--usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_os.h4
-rw-r--r--usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h14
9 files changed, 117 insertions, 117 deletions
diff --git a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_clock.c b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_clock.c
index da3bd95b70..95b19d70dc 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_clock.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_clock.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -499,8 +499,6 @@ emlxs_timer_check_pkts(emlxs_hba_t *hba, uint8_t *flag)
sbp = hba->fc_table[iotag];
if (sbp && (sbp != STALE_PACKET) &&
(sbp->pkt_flags & PACKET_IN_CHIPQ) &&
- !(sbp->pkt_flags & (PACKET_IN_FLUSH |
- PACKET_XRI_CLOSED)) &&
(hba->timer_tics >= sbp->ticks)) {
rc = emlxs_pkt_chip_timeout(sbp->iocbq.port,
sbp, &abort, flag);
diff --git a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c
index dd04d0b08a..1556746b9c 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -862,22 +862,32 @@ emlxs_init_fct_bufpool(emlxs_hba_t *hba, char **arrayp, uint32_t cnt)
bzero((uint8_t *)port->dmem_bucket, sizeof (port->dmem_bucket));
bck = 0;
+
+ if (!cnt || !arrayp) {
+ goto done;
+ }
+
for (i = 0; i < cnt; i++) {
datap = (uint8_t *)arrayp[i];
- if (datap == 0)
+ if (datap == 0) {
break;
+ }
- while (*datap == ' ') /* Skip spaces */
+ while (*datap == ' ') { /* Skip spaces */
datap++;
+ }
size = emlxs_str_atoi(datap);
- while ((*datap != ':') && (*datap != 0))
+ while ((*datap != ':') && (*datap != 0)) {
datap++;
- if (*datap == ':') /* Skip past delimeter */
+ }
+ if (*datap == ':') { /* Skip past delimeter */
datap++;
- while (*datap == ' ') /* Skip spaces */
+ }
+ while (*datap == ' ') { /* Skip spaces */
datap++;
+ }
nbufs = emlxs_str_atoi(datap);
@@ -923,74 +933,64 @@ emlxs_init_fct_bufpool(emlxs_hba_t *hba, char **arrayp, uint32_t cnt)
break;
}
}
-}
+
+done:
+ /* If no entries found then use defaults */
+ if (bck == 0) {
+ port->dmem_bucket[0].dmem_buf_size = 512;
+ port->dmem_bucket[0].dmem_nbufs = FCT_BUF_COUNT_512;
+ port->dmem_bucket[1].dmem_buf_size = 8192;
+ port->dmem_bucket[1].dmem_nbufs = FCT_BUF_COUNT_8K;
+ port->dmem_bucket[2].dmem_buf_size = 65536;
+ port->dmem_bucket[2].dmem_nbufs = FCT_BUF_COUNT_64K;
+ port->dmem_bucket[3].dmem_buf_size = 131072;
+ port->dmem_bucket[3].dmem_nbufs = FCT_BUF_COUNT_128K;
+ }
+
+} /* emlxs_init_fct_bufpool() */
static void
emlxs_fct_cfg_init(emlxs_hba_t *hba)
{
+#ifdef FCT_IO_TRACE
emlxs_port_t *port = &PPORT;
+ emlxs_config_t *cfg = &CFG;
+#endif /* FCT_IO_TRACE */
char **arrayp;
uint32_t cnt;
char buf[32];
- int status;
+ uint32_t rval;
- bzero((void *)buf, 32);
+ /* Check for the per adapter setting */
+ (void) sprintf(buf, "%s%d-fct-bufpool", DRIVER_NAME, hba->ddiinst);
cnt = 0;
arrayp = NULL;
-
- (void) sprintf(buf, "emlxs%d-fct-bufpool", ddi_get_instance(hba->dip));
- status = ddi_prop_lookup_string_array(DDI_DEV_T_ANY, hba->dip,
+ rval = ddi_prop_lookup_string_array(DDI_DEV_T_ANY, hba->dip,
(DDI_PROP_DONTPASS), buf, &arrayp, &cnt);
- if ((status == DDI_PROP_SUCCESS) && cnt && arrayp) {
- emlxs_init_fct_bufpool(hba, arrayp, cnt);
- } else {
- status = ddi_prop_lookup_string_array(DDI_DEV_T_ANY, hba->dip,
+ if ((rval != DDI_PROP_SUCCESS) || !cnt || !arrayp) {
+ /* Check for the global setting */
+ cnt = 0;
+ arrayp = NULL;
+ rval =
+ ddi_prop_lookup_string_array(DDI_DEV_T_ANY, hba->dip,
(DDI_PROP_DONTPASS), "fct-bufpool", &arrayp, &cnt);
- if ((status == DDI_PROP_SUCCESS) && cnt && arrayp) {
- emlxs_init_fct_bufpool(hba, arrayp, cnt);
- } else {
- bzero((uint8_t *)port->dmem_bucket,
- sizeof (port->dmem_bucket));
- port->dmem_bucket[0].dmem_buf_size = 512;
- port->dmem_bucket[0].dmem_nbufs = FCT_BUF_COUNT_512;
- port->dmem_bucket[1].dmem_buf_size = (2 * 65536);
- port->dmem_bucket[1].dmem_nbufs = FCT_BUF_COUNT_128K;
- }
- }
-
- bzero((void *)buf, 32);
- cnt = 0;
-
- /*
- * 0 means use HBA throttle for target queue depth,
- * non-0 value is the actual target queue depth,
- * default is EMLXS_FCT_DFLT_QDEPTH.
- */
- (void) sprintf(buf, "emlxs%d-fct-queue-depth",
- ddi_get_instance(hba->dip));
- cnt = ddi_prop_get_int(DDI_DEV_T_ANY, hba->dip,
- (DDI_PROP_DONTPASS), buf, EMLXS_FCT_DFLT_QDEPTH);
-
- if ((cnt == DDI_PROP_NOT_FOUND) || (cnt == EMLXS_FCT_DFLT_QDEPTH)) {
- cnt = ddi_prop_get_int(DDI_DEV_T_ANY, hba->dip,
- (DDI_PROP_DONTPASS), "fct-queue-depth",
- EMLXS_FCT_DFLT_QDEPTH);
-
- if (cnt == DDI_PROP_NOT_FOUND) {
- cnt = EMLXS_FCT_DFLT_QDEPTH;
+ if ((rval != DDI_PROP_SUCCESS) || !cnt || !arrayp) {
+ cnt = 0;
+ arrayp = NULL;
}
}
- port->fct_queue_depth = cnt;
+ emlxs_init_fct_bufpool(hba, arrayp, cnt);
#ifdef FCT_IO_TRACE
port->iotrace_cnt = 1024;
port->iotrace_index = 0;
- if (cnt)
- port->iotrace_cnt = (2 * cnt);
+ if (cfg[CFG_FCT_QDEPTH].current) {
+ port->iotrace_cnt = (2 * cfg[CFG_FCT_QDEPTH].current);
+ }
port->iotrace =
kmem_zalloc(port->iotrace_cnt * sizeof (emlxs_iotrace_t),
KM_SLEEP);
@@ -1005,6 +1005,7 @@ emlxs_fct_cfg_init(emlxs_hba_t *hba)
"FCT_ABORT_SUCCESS:%lx FCT_SUCCESS:%lx", FCT_ABORT_SUCCESS,
FCT_SUCCESS);
#endif /* FCT_IO_TRACE */
+
return;
} /* emlxs_fct_cfg_init() */
@@ -1368,9 +1369,9 @@ emlxs_fct_bind_port(emlxs_port_t *port)
fct_port->port_pp = port->port_provider;
fct_port->port_max_logins = hba->max_nodes;
- if ((port->fct_queue_depth) &&
- (port->fct_queue_depth < hba->io_throttle)) {
- fct_port->port_max_xchges = port->fct_queue_depth;
+ if (cfg[CFG_FCT_QDEPTH].current &&
+ (cfg[CFG_FCT_QDEPTH].current < hba->io_throttle)) {
+ fct_port->port_max_xchges = cfg[CFG_FCT_QDEPTH].current;
} else {
fct_port->port_max_xchges = hba->io_throttle;
}
@@ -3918,7 +3919,7 @@ emlxs_fct_abort_pkt_comp(fc_packet_t *pkt)
iocb = &iocbq->iocb;
EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_fct_detail_msg,
- "emlxs_fct_handle_abort: %p: xri=%x status=%x", iocb->ULPCONTEXT,
+ "emlxs_fct_abort_pkt_comp: %p: xri=%x status=%x", iocb->ULPCONTEXT,
iocb->ULPCOMMAND, iocb->ULPSTATUS);
#endif /* FCT_API_TRACE */
diff --git a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_mbox.c b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_mbox.c
index 204515c70a..f23103cb4a 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_mbox.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_mbox.c
@@ -3641,13 +3641,17 @@ emlxs_cmpl_unreg_vpi(void *arg1, MAILBOXQ *mbq)
{
emlxs_hba_t *hba = (emlxs_hba_t *)arg1;
emlxs_port_t *vport;
- MAILBOX *mb;
+ MAILBOX4 *mb4;
+ uint16_t vpi;
- mb = (MAILBOX *)mbq;
- if (mb->mbxStatus == MBX_SUCCESS) {
- vport = &VPORT(mb->un.varUnregVpi.vpi);
- vport->flag &= ~EMLXS_PORT_INIT_VPI_CMPL;
- vport->flag &= ~EMLXS_PORT_REG_VPI_CMPL;
+ if (hba->sli_mode == EMLXS_HBA_SLI4_MODE) {
+ mb4 = (MAILBOX4 *)mbq->mbox;
+ if (mb4->mbxStatus == MBX_SUCCESS) {
+ vpi = mb4->un.varUnRegVPI4.index - hba->vpi_base;
+ vport = &VPORT(vpi);
+ vport->flag &= ~EMLXS_PORT_INIT_VPI_CMPL;
+ vport->flag &= ~EMLXS_PORT_REG_VPI_CMPL;
+ }
}
return (0);
diff --git a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c
index 0bc4936b3c..a2c3248f92 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -172,7 +172,6 @@ emlxs_sli4_online(emlxs_hba_t *hba)
MAILBOXQ *mbq = NULL;
MAILBOX4 *mb = NULL;
MATCHMAP *mp = NULL;
- MATCHMAP *mp1 = NULL;
uint32_t i;
uint32_t j;
uint32_t rval = 0;
@@ -810,30 +809,6 @@ emlxs_data_dump(hba, "XRIp", (uint32_t *)hba->sli.sli4.XRIp, 18, 0);
/* Get and save the current firmware version (based on sli_mode) */
emlxs_decode_firmware_rev(hba, vpd);
- /*
- * Setup and issue mailbox RUN BIU DIAG command Setup test buffers
- */
- if (((mp = (MATCHMAP *)emlxs_mem_get(hba, MEM_BUF, 1)) == 0) ||
- ((mp1 = (MATCHMAP *)emlxs_mem_get(hba, MEM_BUF, 1)) == 0)) {
- EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_init_failed_msg,
- "Unable to allocate diag buffers.");
-
- rval = ENOMEM;
- goto failed3;
- }
-
- bcopy((caddr_t)&emlxs_diag_pattern[0], (caddr_t)mp->virt,
- MEM_ELSBUF_SIZE);
- EMLXS_MPDATA_SYNC(mp->dma_handle, 0, MEM_ELSBUF_SIZE,
- DDI_DMA_SYNC_FORDEV);
-
- bzero(mp1->virt, MEM_ELSBUF_SIZE);
- EMLXS_MPDATA_SYNC(mp1->dma_handle, 0, MEM_ELSBUF_SIZE,
- DDI_DMA_SYNC_FORDEV);
-
-
- (void) emlxs_mem_put(hba, MEM_BUF, (uint8_t *)mp);
- mp = NULL;
EMLXS_STATE_CHANGE(hba, FC_INIT_INITLINK);
@@ -1005,6 +980,11 @@ emlxs_data_dump(hba, "XRIp", (uint32_t *)hba->sli.sli4.XRIp, 18, 0);
* The leadvile driver will now handle the FLOGI at the driver level
*/
+ if (mbq) {
+ (void) kmem_free((uint8_t *)mbq, sizeof (MAILBOXQ));
+ mbq = NULL;
+ mb = NULL;
+ }
return (0);
failed3:
@@ -1015,10 +995,6 @@ failed3:
mp = NULL;
}
- if (mp1) {
- (void) emlxs_mem_put(hba, MEM_BUF, (uint8_t *)mp1);
- mp1 = NULL;
- }
if (hba->intr_flags & EMLXS_MSI_ADDED) {
(void) EMLXS_INTR_REMOVE(hba);
@@ -1075,7 +1051,6 @@ emlxs_sli4_offline(emlxs_hba_t *hba)
mutex_exit(&EMLXS_PORT_LOCK);
}
-
/* Shutdown the adapter interface */
emlxs_sli4_hba_kill(hba);
@@ -2325,7 +2300,6 @@ emlxs_sli4_issue_mbox_cmd(emlxs_hba_t *hba, MAILBOXQ *mbq, int32_t flag,
mb4 = (MAILBOX4 *)mbq;
mb = (MAILBOX *)mbq;
-
mb->mbxStatus = MBX_SUCCESS;
rc = MBX_SUCCESS;
@@ -2379,8 +2353,11 @@ emlxs_sli4_issue_mbox_cmd(emlxs_hba_t *hba, MAILBOXQ *mbq, int32_t flag,
}
}
- /* Check for hardware error */
- if (hba->flag & FC_HARDWARE_ERROR) {
+ /* Check for hardware error ; special case SLI_CONFIG */
+ if ((hba->flag & FC_HARDWARE_ERROR) &&
+ ! ((mb4->mbxCommand == MBX_SLI_CONFIG) &&
+ (mb4->un.varSLIConfig.be.un_hdr.hdr_req.opcode ==
+ COMMON_OPCODE_RESET))) {
mb->mbxStatus = MBX_HARDWARE_ERROR;
mutex_exit(&EMLXS_PORT_LOCK);
@@ -3680,10 +3657,13 @@ done:
} /* emlxs_sli4_process_mbox_event() */
+/*ARGSUSED*/
static void
emlxs_CQE_to_IOCB(emlxs_hba_t *hba, CQE_CmplWQ_t *cqe, emlxs_buf_t *sbp)
{
+#ifdef SLI4_FASTPATH_DEBUG
emlxs_port_t *port = &PPORT;
+#endif
IOCBQ *iocbq;
IOCB *iocb;
emlxs_wqe_t *wqe;
@@ -3752,6 +3732,11 @@ emlxs_CQE_to_IOCB(emlxs_hba_t *hba, CQE_CmplWQ_t *cqe, emlxs_buf_t *sbp)
static void
emlxs_sli4_hba_flush_chipq(emlxs_hba_t *hba)
{
+#ifdef SFCT_SUPPORT
+#ifdef FCT_IO_TRACE
+ emlxs_port_t *port = &PPORT;
+#endif /* FCT_IO_TRACE */
+#endif /* SFCT_SUPPORT */
CHANNEL *cp;
emlxs_buf_t *sbp;
IOCBQ *iocbq;
@@ -3961,7 +3946,9 @@ static void
emlxs_sli4_process_release_wqe(emlxs_hba_t *hba, CQ_DESC_t *cq,
CQE_RelWQ_t *cqe)
{
+#ifdef SLI4_FASTPATH_DEBUG
emlxs_port_t *port = &PPORT;
+#endif
WQ_DESC_t *wq;
CHANNEL *cp;
uint32_t i;
@@ -4844,7 +4831,9 @@ emlxs_sli4_process_cq(emlxs_hba_t *hba, CQ_DESC_t *cq)
static void
emlxs_sli4_process_eq(emlxs_hba_t *hba, EQ_DESC_t *eq)
{
+#ifdef SLI4_FASTPATH_DEBUG
emlxs_port_t *port = &PPORT;
+#endif
uint32_t eqdb;
uint32_t *ptr;
CHANNEL *cp;
@@ -4932,7 +4921,9 @@ static uint32_t
emlxs_sli4_msi_intr(char *arg1, char *arg2)
{
emlxs_hba_t *hba = (emlxs_hba_t *)arg1;
+#ifdef SLI4_FASTPATH_DEBUG
emlxs_port_t *port = &PPORT;
+#endif
uint16_t msgid;
int rc;
@@ -4959,7 +4950,7 @@ emlxs_sli4_msi_intr(char *arg1, char *arg2)
mutex_enter(&EMLXS_PORT_LOCK);
- if (hba->flag & FC_OFFLINE_MODE) {
+ if ((hba->state == FC_KILLED) || (hba->flag & FC_OFFLINE_MODE)) {
mutex_exit(&EMLXS_PORT_LOCK);
mutex_exit(&EMLXS_INTR_LOCK(msgid));
return (DDI_INTR_UNCLAIMED);
@@ -4981,7 +4972,9 @@ static int
emlxs_sli4_intx_intr(char *arg)
{
emlxs_hba_t *hba = (emlxs_hba_t *)arg;
+#ifdef SLI4_FASTPATH_DEBUG
emlxs_port_t *port = &PPORT;
+#endif
#ifdef SLI4_FASTPATH_DEBUG
EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_sli_detail_msg,
@@ -4990,7 +4983,7 @@ emlxs_sli4_intx_intr(char *arg)
mutex_enter(&EMLXS_PORT_LOCK);
- if (hba->flag & FC_OFFLINE_MODE) {
+ if ((hba->state == FC_KILLED) || (hba->flag & FC_OFFLINE_MODE)) {
mutex_exit(&EMLXS_PORT_LOCK);
return (DDI_INTR_UNCLAIMED);
}
diff --git a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_solaris.c b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_solaris.c
index 66c4c645c6..a68d878b78 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_solaris.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_solaris.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -2852,7 +2852,7 @@ emlxs_ub_alloc(opaque_t fca_port_handle, uint64_t tokens[], uint32_t size,
err = "IS8802_SNAP";
if (cfg[CFG_NETWORK_ON].current == 0) {
- EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_attach_msg,
+ EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_sfs_debug_msg,
"ub_alloc failed: IP support is disabled.");
return (FC_FAILURE);
diff --git a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_config.h b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_config.h
index 581490fa7d..b9d5f98215 100644
--- a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_config.h
+++ b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_config.h
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -116,6 +116,7 @@ typedef enum emlxs_cfg_parm
#ifdef SFCT_SUPPORT
CFG_TARGET_MODE, /* target-mode */
+ CFG_FCT_QDEPTH, /* fct-queue-depth */
#endif /* SFCT_SUPPORT */
CFG_NUM_WQ, /* num-wq (hidden) */
CFG_PERSIST_LINKDOWN, /* persist-linkdown */
@@ -487,8 +488,15 @@ emlxs_config_t emlxs_cfg[] = {
#else
0, 1, 0, 0,
#endif /* SFCT_ENABLED */
- PARM_BOOLEAN,
+ 0,
"Enables target mode support in driver. [0=Disabled, 1=Enabled]"},
+
+ /* CFG_FCT_QDEPTH */
+ {"fct-queue-depth",
+ 0, 4096, 0, 0,
+ PARM_BOOLEAN,
+ "Queue depth of target mode port. "
+ "[0=max determined by type of HBA]"},
#endif /* SFCT_SUPPORT */
/* CFG_NUM_WQ */
diff --git a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_fc.h b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_fc.h
index 51a0b89938..e7af756d57 100644
--- a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_fc.h
+++ b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_fc.h
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -1071,8 +1071,6 @@ typedef struct emlxs_port
#define FCT_DMEM_MAX_BUF_SEGMENT 8388608 /* 8M */
struct emlxs_fct_dmem_bucket dmem_bucket[FCT_MAX_BUCKETS];
- int fct_queue_depth;
-#define EMLXS_FCT_DFLT_QDEPTH 64
char cfd_name[24];
stmf_port_provider_t *port_provider;
diff --git a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_os.h b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_os.h
index d846254d95..9584a732c8 100644
--- a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_os.h
+++ b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_os.h
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -54,8 +54,6 @@ extern "C" {
#define SAN_DIAG_SUPPORT /* 2.40 driver */
#define FMA_SUPPORT /* 2.40 driver */
-#define SLI4_FASTPATH_DEBUG
-
/* #define IDLE_TIMER Not yet - untested */
/*
diff --git a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h
index a8579afff5..19c339c772 100644
--- a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h
+++ b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Emulex. All rights reserved.
+ * Copyright 2010 Emulex. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,12 +31,12 @@
extern "C" {
#endif
-#define EMLXS_VERSION "2.50n"
-#define EMLXS_DATE_MINUTE "00" /* 00-59 */
-#define EMLXS_DATE_HOUR "16" /* 00-23 */
-#define EMLXS_DATE_DAY "14" /* 00-31 */
-#define EMLXS_DATE_MONTH "12" /* 01-12 */
-#define EMLXS_DATE_YEAR "2009" /* YYYY */
+#define EMLXS_VERSION "2.50o"
+#define EMLXS_DATE_MINUTE "45" /* 00-59 */
+#define EMLXS_DATE_HOUR "09" /* 00-23 */
+#define EMLXS_DATE_DAY "08" /* 00-31 */
+#define EMLXS_DATE_MONTH "01" /* 01-12 */
+#define EMLXS_DATE_YEAR "2010" /* YYYY */
#define EMLXS_REVISION EMLXS_DATE_YEAR "." EMLXS_DATE_MONTH "." \
EMLXS_DATE_DAY "." EMLXS_DATE_HOUR "." \