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-1878 update emlxs from source provided by Emulex

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fcp.c
          +++ new/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fcp.c
↓ open down ↓ 970 lines elided ↑ open up ↑
 971  971  
 972  972          aff_d_id = aid->aff_d_id & mask;
 973  973  
 974  974  
 975  975          /*
 976  976           * If link is down then this is a hard shutdown and flush
 977  977           * If link not down then this is a soft shutdown and flush
 978  978           * (e.g. RSCN)
 979  979           */
 980  980          if (linkdown) {
      981 +                hba->flag &= ~FC_GPIO_LINK_UP;
      982 +
 981  983                  mutex_enter(&EMLXS_PORT_LOCK);
 982  984  
 983  985                  port->flag &= EMLXS_PORT_LINKDOWN_MASK;
 984  986  
 985  987                  if (port->ulp_statec != FC_STATE_OFFLINE) {
 986  988                          port->ulp_statec = FC_STATE_OFFLINE;
 987  989  
 988  990                          port->prev_did = port->did;
 989  991                          port->did = 0;
 990  992                          port->rdid = 0;
↓ open down ↓ 556 lines elided ↑ open up ↑
1547 1549                  state |= FC_STATE_8GBIT_SPEED;
1548 1550                  break;
1549 1551          case LA_10GHZ_LINK:
1550 1552                  (void) strlcpy(linkspeed, "10Gb", sizeof (linkspeed));
1551 1553                  state |= FC_STATE_10GBIT_SPEED;
1552 1554                  break;
1553 1555          case LA_16GHZ_LINK:
1554 1556                  (void) strlcpy(linkspeed, "16Gb", sizeof (linkspeed));
1555 1557                  state |= FC_STATE_16GBIT_SPEED;
1556 1558                  break;
     1559 +        case LA_32GHZ_LINK:
     1560 +                (void) strlcpy(linkspeed, "32Gb", sizeof (linkspeed));
     1561 +                state |= FC_STATE_32GBIT_SPEED;
     1562 +                break;
1557 1563          default:
1558 1564                  (void) snprintf(linkspeed, sizeof (linkspeed), "unknown(0x%x)",
1559 1565                      hba->linkspeed);
1560 1566                  break;
1561 1567          }
1562 1568  
1563 1569          npiv_linkup = 0;
1564 1570          update = 0;
1565 1571  
1566 1572          if ((hba->state >= FC_LINK_UP) &&
↓ open down ↓ 48 lines elided ↑ open up ↑
1615 1621                                  hba->linkup_wait_flag = FALSE;
1616 1622                                  cv_broadcast(&EMLXS_LINKUP_CV);
1617 1623                          }
1618 1624                          mutex_exit(&EMLXS_LINKUP_LOCK);
1619 1625                  }
1620 1626  
1621 1627                  /* Flush any pending ub buffers */
1622 1628                  emlxs_ub_flush(vport);
1623 1629          }
1624 1630  
     1631 +        hba->flag |= FC_GPIO_LINK_UP;
     1632 +
1625 1633          return;
1626 1634  
1627 1635  } /* emlxs_port_online() */
1628 1636  
1629 1637  
1630 1638  /* SLI3 */
1631 1639  extern void
1632 1640  emlxs_linkdown(emlxs_hba_t *hba)
1633 1641  {
1634 1642          emlxs_port_t *port = &PPORT;
↓ open down ↓ 2807 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX