Print this page
NEX-16174 scsi error messages should go to system log only
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-3717 mptsas doesn't handle timeouts in mptsas_get_sata_guid()
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
4500 mptsas_hash_traverse() is unsafe, leads to missing devices
Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
Approved by: Albert Lee <trisk@nexenta.com>
backout 4500 mptsas_hash_traverse() is unsafe, leads to missing devices
4500 mptsas_hash_traverse() is unsafe, leads to missing devices
Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
Approved by: Albert Lee <trisk@nexenta.com>
re #6530 mpt_sas crash when more than 1 Initiator involved - ie HA

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas_raid.c
          +++ new/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas_raid.c
↓ open down ↓ 325 lines elided ↑ open up ↑
 326  326          raidvol->m_state = volstate;
 327  327          raidvol->m_statusflags = statusflags;
 328  328          /*
 329  329           * Volume size is not used right now. Set to 0.
 330  330           */
 331  331          raidvol->m_raidsize = 0;
 332  332          raidvol->m_settings = volsetting;
 333  333          raidvol->m_raidlevel = voltype;
 334  334  
 335  335          if (statusflags & MPI2_RAIDVOL0_STATUS_FLAG_QUIESCED) {
 336      -                mptsas_log(mpt, CE_NOTE, "?Volume %d is quiesced\n",
      336 +                mptsas_log(mpt, CE_NOTE, "Volume %d is quiesced",
 337  337                      raidvol->m_raidhandle);
 338  338          }
 339  339  
 340  340          if (statusflags &
 341  341              MPI2_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS) {
 342      -                mptsas_log(mpt, CE_NOTE, "?Volume %d is resyncing\n",
      342 +                mptsas_log(mpt, CE_NOTE, "Volume %d is resyncing",
 343  343                      raidvol->m_raidhandle);
 344  344          }
 345  345  
 346  346          resync_flag = MPI2_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS;
 347  347          switch (volstate) {
 348  348          case MPI2_RAID_VOL_STATE_OPTIMAL:
 349      -                mptsas_log(mpt, CE_NOTE, "?Volume %d is "
 350      -                    "optimal\n", raidvol->m_raidhandle);
      349 +                mptsas_log(mpt, CE_NOTE, "Volume %d is "
      350 +                    "optimal", raidvol->m_raidhandle);
 351  351                  break;
 352  352          case MPI2_RAID_VOL_STATE_DEGRADED:
 353  353                  if ((statusflags & resync_flag) == 0) {
 354  354                          mptsas_log(mpt, CE_WARN, "Volume %d "
 355      -                            "is degraded\n",
      355 +                            "is degraded",
 356  356                              raidvol->m_raidhandle);
 357  357                  }
 358  358                  break;
 359  359          case MPI2_RAID_VOL_STATE_FAILED:
 360  360                  mptsas_log(mpt, CE_WARN, "Volume %d is "
 361      -                    "failed\n", raidvol->m_raidhandle);
      361 +                    "failed", raidvol->m_raidhandle);
 362  362                  break;
 363  363          case MPI2_RAID_VOL_STATE_MISSING:
 364  364                  mptsas_log(mpt, CE_WARN, "Volume %d is "
 365      -                    "missing\n", raidvol->m_raidhandle);
      365 +                    "missing", raidvol->m_raidhandle);
 366  366                  break;
 367  367          default:
 368  368                  break;
 369  369          }
 370  370          numdisks = raidpage->NumPhysDisks;
 371  371          raidvol->m_ndisks = numdisks;
 372  372          for (i = 0; i < numdisks; i++) {
 373  373                  physdisknum = raidpage->PhysDisk[i].PhysDiskNum;
 374  374                  raidvol->m_disknum[i] = physdisknum;
 375  375                  if (mptsas_get_physdisk_settings(mpt, raidvol,
↓ open down ↓ 224 lines elided ↑ open up ↑
 600  600          if (!ir_active) {
 601  601                  return;
 602  602          }
 603  603  
 604  604          /*
 605  605           * If TM slot is already being used (highly unlikely), show message and
 606  606           * don't issue the RAID action.
 607  607           */
 608  608          if (slots->m_slot[MPTSAS_TM_SLOT(mpt)] != NULL) {
 609  609                  mptsas_log(mpt, CE_WARN, "RAID Action slot in use.  Cancelling"
 610      -                    " System Shutdown RAID Action.\n");
      610 +                    " System Shutdown RAID Action.");
 611  611                  return;
 612  612          }
 613  613  
 614  614          /*
 615  615           * Create the cmd and put it in the dedicated TM slot.
 616  616           */
 617  617          cmd = &(mpt->m_event_task_mgmt.m_event_cmd);
 618  618          bzero((caddr_t)cmd, sizeof (*cmd));
 619  619          cmd->cmd_pkt = NULL;
 620  620          cmd->cmd_slot = MPTSAS_TM_SLOT(mpt);
↓ open down ↓ 167 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX