aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_base.h
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2010-04-05 04:48:34 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-04-11 14:41:50 -0400
commit38c2911449b19664e0dc46132a7b4cb249ff5e06 (patch)
treeda6bbf3f397a0f6c443dc9b20d4ccef67aa56204 /drivers/scsi/mpt2sas/mpt2sas_base.h
parent78d4e5a07dca7374dd9db40b3346d727b65eb794 (diff)
[SCSI] mpt2sas: sanity added to remove duplicate port from topology
There are few special cases which needs to be handled deleting old port. CASE1: In topology you need cascaded expanders. Through sysfs just make sure topology is up. Erase the manufacturing image of the cascaded expander and reset the board. In some cases Adapter will receive Exapnder Add event before expander delete. In such a case, driver needs to delete duplicate port before adding new port. CASE2: Enable Device Missing delay of HBA through lsiutils. If expander or end device is hotswapped with different device before DMD timer expires, driver will get device add for new device first and then device deletion event for the original devices will arrive later at DMD timer expires. In this case also driver need to delete duplicate port before adding port for new device. Added new function which will make sure when new port is added, that its not claiming the same phy resources already in use by another port. If it does, then it will delete the other port before adding the new port. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_base.h')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h
index 2616bb1597b0..454a74a3ec50 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.h
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.h
@@ -366,6 +366,7 @@ struct _sas_port {
366 * @phy_id: unique phy id 366 * @phy_id: unique phy id
367 * @handle: device handle for this phy 367 * @handle: device handle for this phy
368 * @attached_handle: device handle for attached device 368 * @attached_handle: device handle for attached device
369 * @phy_belongs_to_port: port has been created for this phy
369 */ 370 */
370struct _sas_phy { 371struct _sas_phy {
371 struct list_head port_siblings; 372 struct list_head port_siblings;
@@ -375,6 +376,7 @@ struct _sas_phy {
375 u8 phy_id; 376 u8 phy_id;
376 u16 handle; 377 u16 handle;
377 u16 attached_handle; 378 u16 attached_handle;
379 u8 phy_belongs_to_port;
378}; 380};
379 381
380/** 382/**