summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiao Raymond Li <Xiao.L@Sun.COM>2008-10-23 10:48:10 +0800
committerXiao Raymond Li <Xiao.L@Sun.COM>2008-10-23 10:48:10 +0800
commit1fad2c0e393159d2f49000984db0f9b41536d271 (patch)
treeb8b993d3295cff49e363a9c51bbe41a0022b82dc
parentcc1a9a89a73172cc2db053635fab3b1b91691657 (diff)
downloadillumos-joyent-1fad2c0e393159d2f49000984db0f9b41536d271.tar.gz
6760228 sd driver should pass warlock test
-rw-r--r--usr/src/uts/common/io/cmlb.c3
-rw-r--r--usr/src/uts/common/io/warlock/sd.wlcmd3
-rw-r--r--usr/src/uts/common/sys/cmlb_impl.h1
-rw-r--r--usr/src/uts/common/sys/scsi/impl/transport.h8
-rw-r--r--usr/src/uts/common/sys/scsi/scsi_resource.h11
5 files changed, 18 insertions, 8 deletions
diff --git a/usr/src/uts/common/io/cmlb.c b/usr/src/uts/common/io/cmlb.c
index 227aa65185..d381e38831 100644
--- a/usr/src/uts/common/io/cmlb.c
+++ b/usr/src/uts/common/io/cmlb.c
@@ -3470,8 +3470,6 @@ cmlb_dkio_get_extvtoc(struct cmlb_lun *cl, caddr_t arg, int flag,
#endif
#elif defined(_SUNOS_VTOC_16)
- mutex_exit(CMLB_MUTEX(cl));
-
/*
* The cl_vtoc structure is a "struct dk_vtoc" which is always
* 32-bit to maintain compatibility with existing on-disk
@@ -3479,6 +3477,7 @@ cmlb_dkio_get_extvtoc(struct cmlb_lun *cl, caddr_t arg, int flag,
* it out to extvtoc
*/
vtoc32tovtoc(cl->cl_vtoc, ext_vtoc);
+ mutex_exit(CMLB_MUTEX(cl));
if (ddi_copyout(&ext_vtoc, (void *)arg, sizeof (struct extvtoc), flag))
return (EFAULT);
diff --git a/usr/src/uts/common/io/warlock/sd.wlcmd b/usr/src/uts/common/io/warlock/sd.wlcmd
index 38e02850a3..2ccbfbf002 100644
--- a/usr/src/uts/common/io/warlock/sd.wlcmd
+++ b/usr/src/uts/common/io/warlock/sd.wlcmd
@@ -22,7 +22,6 @@
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#ident "%Z%%M% %I% %E% SMI"
one scsi_device
one __ddi_xbuf_attr
@@ -44,6 +43,8 @@ do
add $ptr target warlock_dummy
done
root scsi_hba_bus_power
+root scsi_hba_fm_init_child
+root sdrunout
add scsi_watch_request::swr_callback targets sd_media_watch_cb sd_mhd_watch_cb
add sd.c:sd_start_cmds/funcp target sd_initpkt_for_buf sd_initpkt_for_uscsi
diff --git a/usr/src/uts/common/sys/cmlb_impl.h b/usr/src/uts/common/sys/cmlb_impl.h
index 8bff3c05ac..797213c52a 100644
--- a/usr/src/uts/common/sys/cmlb_impl.h
+++ b/usr/src/uts/common/sys/cmlb_impl.h
@@ -208,6 +208,7 @@ _NOTE(SCHEME_PROTECTS_DATA("stable data", cmlb_lun::cl_alter_behavior))
_NOTE(SCHEME_PROTECTS_DATA("private data", cmlb_geom))
_NOTE(SCHEME_PROTECTS_DATA("safe sharing", cmlb_lun::cl_f_geometry_is_valid))
+_NOTE(MUTEX_PROTECTS_DATA(cmlb_lun::cl_mutex, cmlb_lun::cl_vtoc))
#define DK_TG_READ(ihdlp, bufaddr, start_block, reqlength, tg_cookie)\
diff --git a/usr/src/uts/common/sys/scsi/impl/transport.h b/usr/src/uts/common/sys/scsi/impl/transport.h
index 23c74392a3..20c6ea3854 100644
--- a/usr/src/uts/common/sys/scsi/impl/transport.h
+++ b/usr/src/uts/common/sys/scsi/impl/transport.h
@@ -26,7 +26,6 @@
#ifndef _SYS_SCSI_IMPL_TRANSPORT_H
#define _SYS_SCSI_IMPL_TRANSPORT_H
-#pragma ident "%Z%%M% %I% %E% SMI"
/*
* Include the loadable module wrapper.
@@ -296,7 +295,12 @@ size_t scsi_hba_tran_size(); /* private */
#ifdef __lock_lint
-_NOTE(SCHEME_PROTECTS_DATA("stable data", scsi_hba_tran::tran_sd))
+_NOTE(SCHEME_PROTECTS_DATA("stable data",
+ scsi_hba_tran::tran_sd
+ scsi_hba_tran::tran_hba_dip
+ scsi_hba_tran::tran_hba_flags
+ scsi_hba_tran::tran_open_flag
+ scsi_hba_tran::tran_pkt_cache_ptr))
/*
* we only modify the dma atributes (like dma_attr_granular) upon
* attach and in response to a setcap. It is also up to the target
diff --git a/usr/src/uts/common/sys/scsi/scsi_resource.h b/usr/src/uts/common/sys/scsi/scsi_resource.h
index d95527e951..b1f801cc99 100644
--- a/usr/src/uts/common/sys/scsi/scsi_resource.h
+++ b/usr/src/uts/common/sys/scsi/scsi_resource.h
@@ -26,7 +26,6 @@
#ifndef _SYS_SCSI_SCSI_RESOURCE_H
#define _SYS_SCSI_SCSI_RESOURCE_H
-#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __lock_lint
#include <note.h>
@@ -93,8 +92,14 @@ struct scsi_pkt_cache_wrapper {
};
#ifdef __lock_lint
-_NOTE(SCHEME_PROTECTS_DATA("unique per packet", \
- scsi_pkt_cache_wrapper::pcw_orig_comp))
+_NOTE(SCHEME_PROTECTS_DATA("unique per packet",
+ scsi_pkt_cache_wrapper::pcw_orig_comp
+ scsi_pkt_cache_wrapper::pcw_bp
+ scsi_pkt_cache_wrapper::pcw_curwin
+ scsi_pkt_cache_wrapper::pcw_flags
+ scsi_pkt_cache_wrapper::pcw_granular
+ scsi_pkt_cache_wrapper::pcw_total_xfer
+ scsi_pkt_cache_wrapper::pcw_totalwin))
#endif
struct buf *scsi_pkt2bp(struct scsi_pkt *);