Skip to contentSkip to conversation

mptsas: zero based port identifier for each expander

PATCH New Eric Moore 1 participant 1 message Jun 29, 2006

Subsystems (2)
lore
Share & tools
lore

Eric Moore

author
#0 lore raw

PATCH 1/1 mptsas: zero based port identifier for each expander

With the "reroll of sas ports" patch, the fusion driver can implement zero based port id's for each expander, instead of per host unique
ids. Pls apply over yesterdays mptsas patch.

drivers/message/fusion/mptbase.h +0 -1
diff -uarN b/drivers/message/fusion/mptbase.h a/drivers/message/fusion/mptbase.h
@@ -644,7 +644,6 @@
 	struct work_struct	 fc_rescan_work;
 	char			 fc_rescan_work_q_name[KOBJ_NAME_LEN];
 	struct workqueue_struct *fc_rescan_work_q;
-	u8		port_serial_number;
 } MPT_ADAPTER;
 
 /*
drivers/message/fusion/mptsas.c +4 -4
diff -uarN b/drivers/message/fusion/mptsas.c a/drivers/message/fusion/mptsas.c
@@ -144,7 +144,7 @@
  * Specific details on ports, wide/narrow
  */
 struct mptsas_portinfo_details{
-	u8	port_id; 	/* port number provided to transport */
+	u32	port_id; 	/* port number provided to transport */
 	u16	num_phys;	/* number of phys belong to this port */
 	u64	phy_bitmask; 	/* TODO, extend support for 255 phys */
 	struct sas_rphy *rphy;	/* transport layer rphy object */
@@ -171,6 +171,7 @@
 	struct list_head list;
 	u16		handle;		/* unique id to address this */
 	u16		num_phys;	/* number of phys */
+	u32		port_serial_number;
 	struct mptsas_phyinfo *phy_info;
 };
 
@@ -493,7 +494,7 @@
 				goto out;
 			port_details->num_phys = 1;
 			port_details->port_info = port_info;
-			port_details->port_id = ioc->port_serial_number++;
+			port_details->port_id = port_info->port_serial_number++;
 			if (phy_info->phy_id < 64 )
 				port_details->phy_bitmask |=
 				    (1 << phy_info->phy_id);
@@ -529,8 +530,7 @@
 					phy_info_cmp->port_details->port_id;
 				port_details->num_phys =
 					phy_info_cmp->port_details->num_phys;
-//				port_info->port_serial_number--;
-				ioc->port_serial_number--;
+				port_info->port_serial_number--;
 				if (!phy_info_cmp->port_details->num_phys)
 					kfree(phy_info_cmp->port_details);
 			} else