summaryrefslogtreecommitdiff
path: root/usr/src/lib/sun_sas
diff options
context:
space:
mode:
authorxun ni - Sun Microsystems - Beijing China <Xun.Ni@Sun.COM>2010-04-19 11:31:17 +0800
committerxun ni - Sun Microsystems - Beijing China <Xun.Ni@Sun.COM>2010-04-19 11:31:17 +0800
commitf2e8686e6101ad6ab3df43205537e610151b5434 (patch)
tree1a0e61b09d25476c8f2f61481d0da5046b49ca8a /usr/src/lib/sun_sas
parent0870f17b1158eef95a9cbc509c015c6467c7cdec (diff)
downloadillumos-joyent-f2e8686e6101ad6ab3df43205537e610151b5434.tar.gz
6931122 Need SMHBA support for Mptsas driver
6932019 sun_sas lib should ignore the virtual port for mptsas driver
Diffstat (limited to 'usr/src/lib/sun_sas')
-rw-r--r--usr/src/lib/sun_sas/common/devtree_hba_disco.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/usr/src/lib/sun_sas/common/devtree_hba_disco.c b/usr/src/lib/sun_sas/common/devtree_hba_disco.c
index 65b2212598..2ba9ef6e57 100644
--- a/usr/src/lib/sun_sas/common/devtree_hba_disco.c
+++ b/usr/src/lib/sun_sas/common/devtree_hba_disco.c
@@ -20,11 +20,9 @@
*/
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
*/
-
#include <sun_sas.h>
#include <sys/modctl.h>
#include <sys/types.h>
@@ -332,6 +330,14 @@ refresh_hba(di_node_t hbaNode, struct sun_sas_hba *hba_ptr)
}
while (portNode != DI_NODE_NIL) {
+ if (di_prop_lookup_ints(DDI_DEV_T_ANY, portNode,
+ "virtual-port", &propIntData) >= 0) {
+ if (*propIntData) {
+ /* ignore a virtual port. */
+ portNode = di_sibling_node(portNode);
+ continue;
+ }
+ }
if (add_hba_port_info(portNode, hba_ptr, protocol)
== HBA_STATUS_ERROR) {
S_FREE(hba_ptr->first_port);
@@ -540,6 +546,14 @@ devtree_get_one_hba(di_node_t hbaNode)
}
while (portNode != DI_NODE_NIL) {
+ if (di_prop_lookup_ints(DDI_DEV_T_ANY, portNode,
+ "virtual-port", &propIntData) >= 0) {
+ if (*propIntData) {
+ /* ignore a virtual port. */
+ portNode = di_sibling_node(portNode);
+ continue;
+ }
+ }
if (add_hba_port_info(portNode, new_hba, protocol)
== HBA_STATUS_ERROR) {
S_FREE(new_hba->first_port);