summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallan <Allan.Ou@Sun.COM>2009-11-03 10:54:17 +0800
committerallan <Allan.Ou@Sun.COM>2009-11-03 10:54:17 +0800
commit162fafd3d0764eb6022fe01ce970de8775eda209 (patch)
tree5c44230a1bfeeffebecf62e99cde6f766f93f558
parent1dbc1fed8be6e82e676ff3f124628dc470058bfb (diff)
downloadillumos-joyent-162fafd3d0764eb6022fe01ce970de8775eda209.tar.gz
6893489 COMSTER - provide MODDRV for properly handling interface changes
6893502 COMSTAR - qlt should provide MODDRV revision control for fct interface 6893493 COMSTAR - emlxs should provide MODDRV revision control for fct interface
-rw-r--r--usr/src/uts/common/io/comstar/port/fct/fct.c6
-rw-r--r--usr/src/uts/common/io/comstar/port/qlt/qlt.c1
-rw-r--r--usr/src/uts/common/io/comstar/port/qlt/qlt_open.h2
-rw-r--r--usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c1
-rw-r--r--usr/src/uts/common/sys/fct.h3
-rw-r--r--usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h6
6 files changed, 15 insertions, 4 deletions
diff --git a/usr/src/uts/common/io/comstar/port/fct/fct.c b/usr/src/uts/common/io/comstar/port/fct/fct.c
index 1a5cd95cf2..577499e183 100644
--- a/usr/src/uts/common/io/comstar/port/fct/fct.c
+++ b/usr/src/uts/common/io/comstar/port/fct/fct.c
@@ -1118,6 +1118,12 @@ fct_register_local_port(fct_local_port_t *port)
char taskq_name[24];
iport = (fct_i_local_port_t *)port->port_fct_private;
+ if (port->port_fca_version != FCT_FCA_MODREV_1) {
+ cmn_err(CE_WARN,
+ "fct: %s driver version mismatch",
+ port->port_default_alias);
+ return (FCT_FAILURE);
+ }
if (port->port_default_alias) {
int l = strlen(port->port_default_alias);
diff --git a/usr/src/uts/common/io/comstar/port/qlt/qlt.c b/usr/src/uts/common/io/comstar/port/qlt/qlt.c
index c631a053e8..ae1ed80a0b 100644
--- a/usr/src/uts/common/io/comstar/port/qlt/qlt.c
+++ b/usr/src/uts/common/io/comstar/port/qlt/qlt.c
@@ -1093,6 +1093,7 @@ qlt_port_start(caddr_t arg)
* state struct.
*/
port->port_fca_private = qlt;
+ port->port_fca_version = FCT_FCA_MODREV_1;
port->port_fca_abort_timeout = 5 * 1000; /* 5 seconds */
bcopy(qlt->nvram->node_name, port->port_nwwn, 8);
bcopy(qlt->nvram->port_name, port->port_pwwn, 8);
diff --git a/usr/src/uts/common/io/comstar/port/qlt/qlt_open.h b/usr/src/uts/common/io/comstar/port/qlt/qlt_open.h
index 0672acb2f0..4876e85d21 100644
--- a/usr/src/uts/common/io/comstar/port/qlt/qlt_open.h
+++ b/usr/src/uts/common/io/comstar/port/qlt/qlt_open.h
@@ -45,7 +45,7 @@ extern "C" {
#endif
#ifndef QLT_VERSION
-#define QLT_VERSION "20090922-1.02"
+#define QLT_VERSION "20090922-1.02a"
#endif
#ifndef QLT_NAME
diff --git a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c
index a3fd47a9b1..f3025c0271 100644
--- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c
+++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c
@@ -1230,6 +1230,7 @@ emlxs_fct_bind_port(emlxs_port_t *port)
/* Intialize */
fct_port = port->fct_port;
+ fct_port->port_fca_version = FCT_FCA_MODREV_1;
fct_port->port_fca_private = port;
fct_port->port_fca_abort_timeout = 30 * 1000; /* 30 seconds */
diff --git a/usr/src/uts/common/sys/fct.h b/usr/src/uts/common/sys/fct.h
index aecfb30bf9..3aceee25f4 100644
--- a/usr/src/uts/common/sys/fct.h
+++ b/usr/src/uts/common/sys/fct.h
@@ -197,6 +197,8 @@ typedef struct fct_dbuf_store {
stmf_data_buf_t *dbuf);
} fct_dbuf_store_t;
+#define FCT_FCA_MODREV_1 1
+
typedef struct fct_local_port {
void *port_fct_private;
void *port_fca_private;
@@ -247,6 +249,7 @@ typedef struct fct_local_port {
fct_status_t (*port_info)(uint32_t cmd,
struct fct_local_port *port, void *arg, uint8_t *buf,
uint32_t *bufsizep);
+ int port_fca_version;
} fct_local_port_t;
/*
diff --git a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h
index 7a4ec60f6b..0e1a4c6efc 100644
--- a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h
+++ b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h
@@ -32,11 +32,11 @@
extern "C" {
#endif
-#define EMLXS_VERSION "2.40s"
+#define EMLXS_VERSION "2.40t"
#define EMLXS_DATE_MINUTE "15" /* 00-59 */
#define EMLXS_DATE_HOUR "10" /* 00-23 */
-#define EMLXS_DATE_DAY "17" /* 00-31 */
-#define EMLXS_DATE_MONTH "07" /* 01-12 */
+#define EMLXS_DATE_DAY "23" /* 00-31 */
+#define EMLXS_DATE_MONTH "10" /* 01-12 */
#define EMLXS_DATE_YEAR "2009" /* YYYY */
#define EMLXS_REVISION EMLXS_DATE_YEAR "." EMLXS_DATE_MONTH "." \