summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith M Wesolowski <wesolows@foobazco.org>2013-04-12 00:35:43 +0000
committerKeith M Wesolowski <wesolows@foobazco.org>2013-04-23 18:24:58 +0000
commit59a2f91c88b8ace7906e853b6359d07495d63096 (patch)
tree504192daa1d495f04d659cef9ccae34d054947f8
parent0a073d9c072a82ec2d59f578a3a68c82aca35b5c (diff)
downloadillumos-joyent-59a2f91c88b8ace7906e853b6359d07495d63096.tar.gz
OS-2128 a9ff841f brought in lint libraries, is out of order
OS-2133 panic in mptsas_restart_hba()
-rw-r--r--manifest25
-rw-r--r--usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas.c14
2 files changed, 22 insertions, 17 deletions
diff --git a/manifest b/manifest
index 697710896c..06daed3108 100644
--- a/manifest
+++ b/manifest
@@ -1243,6 +1243,8 @@ f lib/amd64/libzdoor.so.1 0755 root bin
s lib/amd64/libzdoor.so=libzdoor.so.1
f lib/amd64/libzfs.so.1 0755 root bin
s lib/amd64/libzfs.so=libzfs.so.1
+s lib/amd64/libzfs_core.so=../usr/lib/amd64/libzfs_core.so
+s lib/amd64/libzfs_core.so.1=../usr/lib/amd64/libzfs_core.so.1
f lib/amd64/nss_compat.so.1 0755 root bin
f lib/amd64/nss_dns.so.1 0755 root bin
f lib/amd64/nss_files.so.1 0755 root bin
@@ -1437,6 +1439,8 @@ f lib/libzdoor.so.1 0755 root bin
s lib/libzdoor.so=libzdoor.so.1
f lib/libzfs.so.1 0755 root bin
s lib/libzfs.so=libzfs.so.1
+s lib/libzfs_core.so=../usr/lib/libzfs_core.so
+s lib/libzfs_core.so.1=../usr/lib/libzfs_core.so
d lib/mpxio 0755 root bin
f lib/mpxio/stmsboot_util 0555 root bin
f lib/nss_compat.so.1 0755 root bin
@@ -2912,6 +2916,7 @@ f usr/include/libvrrpadm.h 0644 root bin
f usr/include/libvscan.h 0644 root bin
f usr/include/libw.h 0644 root bin
f usr/include/libzfs.h 0644 root bin
+f usr/include/libzfs_core.h 0644 root bin
f usr/include/libzfs_jni_dataset.h 0644 root bin
f usr/include/libzfs_jni_disk.h 0644 root bin
f usr/include/libzfs_jni_diskmgt.h 0644 root bin
@@ -5002,6 +5007,8 @@ s usr/lib/amd64/libzdoor.so.1=../../../lib/amd64/libzdoor.so.1
s usr/lib/amd64/libzdoor.so=../../../lib/amd64/libzdoor.so.1
s usr/lib/amd64/libzfs.so.1=../../../lib/amd64/libzfs.so.1
s usr/lib/amd64/libzfs.so=../../../lib/amd64/libzfs.so.1
+s usr/lib/amd64/libzfs_core.so=libzfs_core.so.1
+f usr/lib/amd64/libzfs_core.so.1 755 root bin
f usr/lib/amd64/libzfs_jni.so.1 0755 root bin
s usr/lib/amd64/libzfs_jni.so=libzfs_jni.so.1
f usr/lib/amd64/libzonecfg.so.1 0755 root bin
@@ -6439,6 +6446,8 @@ s usr/lib/libzdoor.so.1=../../lib/libzdoor.so.1
s usr/lib/libzdoor.so=../../lib/libzdoor.so.1
s usr/lib/libzfs.so.1=../../lib/libzfs.so.1
s usr/lib/libzfs.so=../../lib/libzfs.so.1
+s usr/lib/libzfs_core.so=libzfs_core.so.1
+f usr/lib/libzfs_core.so.1 755 root bin
f usr/lib/libzfs_jni.so.1 0755 root bin
s usr/lib/libzfs_jni.so=libzfs_jni.so.1
f usr/lib/libzonecfg.so.1 0755 root bin
@@ -17515,19 +17524,3 @@ d var/svc/profile 0755 root sys
d var/tmp 1777 root sys
d var/yp 0755 root bin
d var/yp/binding 0755 root bin
-
-f usr/lib/llib-lzfs_core.ln 644 root bin
-f usr/lib/libzfs_core.so.1 755 root bin
-f usr/lib/amd64/llib-lzfs_core.ln 644 root bin
-f usr/lib/amd64/libzfs_core.so.1 755 root bin
-s usr/lib/amd64/libzfs_core.so=libzfs_core.so.1
-s usr/lib/libzfs_core.so=libzfs_core.so.1
-f usr/include/libzfs_core.h 0644 root bin
-f usr/lib/llib-lzfs_core 0644 root bin
-s lib/llib-lzfs_core=../usr/lib/llib-lzfs_core.ln
-s lib/libzfs_core.so=../usr/lib/libzfs_core.so
-s lib/llib-lzfs_core.ln=../usr/lib/llib-lzfs_core.ln
-s lib/libzfs_core.so.1=../usr/lib/libzfs_core.so
-s lib/amd64/libzfs_core.so=../usr/lib/amd64/libzfs_core.so
-s lib/amd64/llib-lzfs_core.ln=../usr/lib/amd64/llib-lzfs_core.ln
-s lib/amd64/libzfs_core.so.1=../usr/lib/amd64/libzfs_core.so.1
diff --git a/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas.c b/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas.c
index 8fb7a5f73e..5d7cb87590 100644
--- a/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas.c
+++ b/usr/src/uts/common/io/scsi/adapters/mpt_sas/mptsas.c
@@ -9966,6 +9966,7 @@ mptsas_watchsubr(mptsas_t *mpt)
int i;
mptsas_cmd_t *cmd;
mptsas_target_t *ptgt = NULL;
+ int restart_needed = 0;
NDBG30(("mptsas_watchsubr: mpt=0x%p", (void *)mpt));
@@ -10035,9 +10036,20 @@ mptsas_watchsubr(mptsas_t *mpt)
(ptgt->m_t_throttle > HOLD_THROTTLE) &&
(ptgt->m_t_ncmds < ptgt->m_t_throttle)) {
mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
- mptsas_restart_hba(mpt);
+ ++restart_needed;
}
+ mutex_exit(&ptgt->m_tgt_intr_mutex);
+ ptgt = (mptsas_target_t *)mptsas_hash_traverse(
+ &mpt->m_active->m_tgttbl, MPTSAS_HASH_NEXT);
+ }
+ if (restart_needed != 0)
+ mptsas_restart_hba(mpt);
+
+ ptgt = (mptsas_target_t *)mptsas_hash_traverse(&mpt->m_active->m_tgttbl,
+ MPTSAS_HASH_FIRST);
+ while (ptgt != NULL) {
+ mutex_enter(&ptgt->m_tgt_intr_mutex);
if ((ptgt->m_t_ncmds > 0) &&
(ptgt->m_timebase)) {