Print this page
XXXX Nexenta fixes for mpt_sas(7d)

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas_impl.c
          +++ new/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas_impl.c
↓ open down ↓ 274 lines elided ↑ open up ↑
 275  275              direction |
 276  276              MPI2_SGE_FLAGS_END_OF_LIST) << MPI2_SGE_FLAGS_SHIFT);
 277  277          flagslength |= length;
 278  278          ddi_put32(mpt->m_acc_req_frame_hdl, &sge->FlagsLength, flagslength);
 279  279  
 280  280          (void) ddi_dma_sync(mpt->m_dma_req_frame_hdl, 0, 0,
 281  281              DDI_DMA_SYNC_FORDEV);
 282  282          request_desc_low = (cmd->cmd_slot << 16) +
 283  283              MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE;
 284  284          cmd->cmd_rfm = NULL;
 285      -        mpt->m_active->m_slot[cmd->cmd_slot] = cmd;
 286  285          MPTSAS_START_CMD(mpt, request_desc_low, 0);
 287  286          if ((mptsas_check_dma_handle(mpt->m_dma_req_frame_hdl) !=
 288  287              DDI_SUCCESS) ||
 289  288              (mptsas_check_acc_handle(mpt->m_acc_req_frame_hdl) !=
 290  289              DDI_SUCCESS)) {
 291  290                  ddi_fm_service_impact(mpt->m_dip, DDI_SERVICE_UNAFFECTED);
 292  291          }
 293  292  }
 294  293  
 295  294  int
↓ open down ↓ 1021 lines elided ↑ open up ↑
1317 1316              (uint32_t)(flsh_cookie.dmac_laddress >> 32));
1318 1317  
1319 1318          /*
1320 1319           * Start command
1321 1320           */
1322 1321          (void) ddi_dma_sync(mpt->m_dma_req_frame_hdl, 0, 0,
1323 1322              DDI_DMA_SYNC_FORDEV);
1324 1323          request_desc_low = (cmd->cmd_slot << 16) +
1325 1324              MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE;
1326 1325          cmd->cmd_rfm = NULL;
1327      -        mpt->m_active->m_slot[cmd->cmd_slot] = cmd;
1328 1326          MPTSAS_START_CMD(mpt, request_desc_low, 0);
1329 1327  
1330 1328          rvalue = 0;
1331 1329          (void) cv_reltimedwait(&mpt->m_fw_cv, &mpt->m_mutex,
1332 1330              drv_usectohz(60 * MICROSEC), TR_CLOCK_TICK);
1333 1331          if (!(cmd->cmd_flags & CFLAG_FINISHED)) {
1334 1332                  mpt->m_softstate &= ~MPTSAS_SS_MSG_UNIT_RESET;
1335 1333                  if ((mptsas_restart_ioc(mpt)) == DDI_FAILURE) {
1336 1334                          mptsas_log(mpt, CE_WARN, "mptsas_restart_ioc failed");
1337 1335                  }
↓ open down ↓ 1346 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX