Skip to content

Commit 547f9a2

Browse files
Eric MooreJames Bottomley
authored andcommitted
[SCSI] mptsas: wide port support
* Wide port support added - using James Bottomley's new SAS wide port API. (There is a known problem in sas transport layer reported yesterday to James. The Kobject dev.bus_ids for end devices are not unique across expanders. I have added a work around in this patch, where I asigning an unique port identifier for every port within the host - this solves the problem, but I expect a fix from James in the sas transport). * Adding target_alloc and target_destroy entry points, and moving code over from the slave entry points. * The renaming of some mptscsih_xxx functions declared in mptsas.c, to mptsas_xxx. * Target Reset moved from slave_destroy to hotplug work thread handling (with regard to device removal). Also inhibit IO to end device while device is being broken down . Talked to James Smart about this at Linux Expo (with questions of how the fc transport handles this). * Cleaning up the kzalloc's, and kfree's Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
1 parent 65c92b0 commit 547f9a2

File tree

3 files changed

+709
-274
lines changed

3 files changed

+709
-274
lines changed

drivers/message/fusion/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333
# For mptfc:
3434
#CFLAGS_mptfc.o += -DMPT_DEBUG_FC
3535

36+
# For mptsas:
37+
#CFLAGS_mptsas.o += -DMPT_DEBUG_SAS
38+
#CFLAGS_mptsas.o += -DMPT_DEBUG_SAS_WIDE
39+
40+
3641
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-} LSI_LOGIC
3742

3843
obj-$(CONFIG_FUSION_SPI) += mptbase.o mptscsih.o mptspi.o

drivers/message/fusion/mptbase.h

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@
7676
#define COPYRIGHT "Copyright (c) 1999-2005 " MODULEAUTHOR
7777
#endif
7878

79-
#define MPT_LINUX_VERSION_COMMON "3.03.10"
80-
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.03.10"
79+
#define MPT_LINUX_VERSION_COMMON "3.04.00"
80+
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.00"
8181
#define WHAT_MAGIC_STRING "@" "(" "#" ")"
8282

8383
#define show_mptmod_ver(s,ver) \
@@ -342,6 +342,7 @@ typedef struct _VirtTarget {
342342
u8 negoFlags; /* bit field, see above */
343343
u8 raidVolume; /* set, if RAID Volume */
344344
u8 type; /* byte 0 of Inquiry data */
345+
u8 deleted; /* target in process of being removed */
345346
u32 num_luns;
346347
u32 luns[8]; /* Max LUNs is 256 */
347348
} VirtTarget;
@@ -633,7 +634,7 @@ typedef struct _MPT_ADAPTER
633634
int sas_index; /* index refrencing */
634635
MPT_SAS_MGMT sas_mgmt;
635636
int num_ports;
636-
struct work_struct mptscsih_persistTask;
637+
struct work_struct sas_persist_task;
637638

638639
struct work_struct fc_setup_reset_work;
639640
struct list_head fc_rports;
@@ -642,6 +643,7 @@ typedef struct _MPT_ADAPTER
642643
struct work_struct fc_rescan_work;
643644
char fc_rescan_work_q_name[KOBJ_NAME_LEN];
644645
struct workqueue_struct *fc_rescan_work_q;
646+
u8 port_serial_number;
645647
} MPT_ADAPTER;
646648

647649
/*
@@ -893,6 +895,13 @@ typedef struct _mpt_sge {
893895
#define DBG_DUMP_REQUEST_FRAME_HDR(mfp)
894896
#endif
895897

898+
// debug sas wide ports
899+
#ifdef MPT_DEBUG_SAS_WIDE
900+
#define dsaswideprintk(x) printk x
901+
#else
902+
#define dsaswideprintk(x)
903+
#endif
904+
896905

897906
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
898907

0 commit comments

Comments
 (0)