Print this page
NEX-8705 Drivers for ATTO Celerity FC-162E Gen 5 and Celerity FC-162P Gen 6 16GB FC cards support
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
NEX-4963 `fcadm force-lip wwn`: Failed to reinitialize the link of Emulex HBA
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Steve Peng <steve.peng@nexenta.com>
NEX-1878 update emlxs from source provided by Emulex

*** 20,29 **** --- 20,30 ---- */ /* * Copyright (c) 2004-2012 Emulex. All rights reserved. * Use is subject to license terms. + * Copyright 2016 Nexenta Systems, Inc. All rights reserved. */ #include <emlxs.h> #ifdef SFCT_SUPPORT
*** 1369,1379 **** { emlxs_port_t *port = (emlxs_port_t *)fct_port->port_fca_private; emlxs_hba_t *hba = HBA; emlxs_vpd_t *vpd = &VPD; ! (void) strncpy(port_attrs->manufacturer, "Emulex", (sizeof (port_attrs->manufacturer)-1)); (void) strncpy(port_attrs->serial_number, vpd->serial_num, (sizeof (port_attrs->serial_number)-1)); (void) strncpy(port_attrs->model, hba->model_info.model, (sizeof (port_attrs->model)-1)); --- 1370,1381 ---- { emlxs_port_t *port = (emlxs_port_t *)fct_port->port_fca_private; emlxs_hba_t *hba = HBA; emlxs_vpd_t *vpd = &VPD; ! (void) strncpy(port_attrs->manufacturer, ! hba->model_info.manufacturer, (sizeof (port_attrs->manufacturer)-1)); (void) strncpy(port_attrs->serial_number, vpd->serial_num, (sizeof (port_attrs->serial_number)-1)); (void) strncpy(port_attrs->model, hba->model_info.model, (sizeof (port_attrs->model)-1));
*** 1466,1475 **** --- 1468,1478 ---- emlxs_fct_ctl(fct_local_port_t *fct_port, int cmd, void *arg) { emlxs_port_t *port = (emlxs_port_t *)fct_port->port_fca_private; emlxs_hba_t *hba = HBA; stmf_change_status_t st; + int32_t rval; st.st_completion_status = FCT_SUCCESS; st.st_additional_info = NULL; switch (cmd) {
*** 1556,1565 **** --- 1559,1569 ---- case FCT_CMD_FORCE_LIP: if (port->mode == MODE_INITIATOR) { EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_fct_detail_msg, "fct_ctl: FCT_CMD_FORCE_LIP."); + *((fct_status_t *)arg) = FCT_FAILURE; break; } if (hba->fw_flag & FW_UPDATE_NEEDED) { EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_fct_detail_msg,
*** 1567,1584 **** "FCT_CMD_RESET"); hba->fw_flag |= FW_UPDATE_KERNEL; /* Reset the adapter */ ! (void) emlxs_reset(port, FC_FCA_RESET); } else { EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_fct_detail_msg, "fct_ctl: FCT_CMD_FORCE_LIP"); /* Reset the link */ ! (void) emlxs_reset(port, FC_FCA_LINK_RESET); } break; } return; --- 1571,1590 ---- "FCT_CMD_RESET"); hba->fw_flag |= FW_UPDATE_KERNEL; /* Reset the adapter */ ! rval = emlxs_reset(port, FC_FCA_RESET); } else { EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_fct_detail_msg, "fct_ctl: FCT_CMD_FORCE_LIP"); /* Reset the link */ ! rval = emlxs_reset(port, FC_FCA_LINK_RESET); } + *((fct_status_t *)arg) = (rval == FC_SUCCESS) ? FCT_SUCCESS: + FCT_FAILURE; break; } return;
*** 2004,2013 **** --- 2010,2022 ---- link->port_speed = PORT_SPEED_10G; break; case LA_16GHZ_LINK: link->port_speed = PORT_SPEED_16G; break; + case LA_32GHZ_LINK: + link->port_speed = PORT_SPEED_32G; + break; default: link->port_speed = PORT_SPEED_UNKNOWN; break; }