changeset 10936:e52b5709a64a

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
author allan <Allan.Ou@Sun.COM>
date Tue, 03 Nov 2009 10:54:17 +0800
parents fb2b65d50333
children b6ce4b1e9e41
files usr/src/uts/common/io/comstar/port/fct/fct.c usr/src/uts/common/io/comstar/port/qlt/qlt.c usr/src/uts/common/io/comstar/port/qlt/qlt_open.h usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c usr/src/uts/common/sys/fct.h usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h
diffstat 6 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/comstar/port/fct/fct.c	Mon Nov 02 17:07:53 2009 -0800
+++ b/usr/src/uts/common/io/comstar/port/fct/fct.c	Tue Nov 03 10:54:17 2009 +0800
@@ -1118,6 +1118,12 @@
 	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);
 
--- a/usr/src/uts/common/io/comstar/port/qlt/qlt.c	Mon Nov 02 17:07:53 2009 -0800
+++ b/usr/src/uts/common/io/comstar/port/qlt/qlt.c	Tue Nov 03 10:54:17 2009 +0800
@@ -1093,6 +1093,7 @@
 	 * 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);
--- a/usr/src/uts/common/io/comstar/port/qlt/qlt_open.h	Mon Nov 02 17:07:53 2009 -0800
+++ b/usr/src/uts/common/io/comstar/port/qlt/qlt_open.h	Tue Nov 03 10:54:17 2009 +0800
@@ -45,7 +45,7 @@
 #endif
 
 #ifndef QLT_VERSION
-#define	QLT_VERSION	"20090922-1.02"
+#define	QLT_VERSION	"20090922-1.02a"
 #endif
 
 #ifndef	QLT_NAME
--- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c	Mon Nov 02 17:07:53 2009 -0800
+++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_fct.c	Tue Nov 03 10:54:17 2009 +0800
@@ -1230,6 +1230,7 @@
 
 	/* 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 */
 
--- a/usr/src/uts/common/sys/fct.h	Mon Nov 02 17:07:53 2009 -0800
+++ b/usr/src/uts/common/sys/fct.h	Tue Nov 03 10:54:17 2009 +0800
@@ -197,6 +197,8 @@
 			    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 @@
 	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;
 
 /*
--- a/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h	Mon Nov 02 17:07:53 2009 -0800
+++ b/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_version.h	Tue Nov 03 10:54:17 2009 +0800
@@ -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 "." \