fusion RAID class support
Subsystems (2)
PATCH 1/1 fusion RAID class support
This refreshes the RAID class support to match the current driver. It still only applies the raid class to the 1030 (I suppose it could also be applied now to the SAS raid devices, but I haven't yet looked into that).
James
[PATCH] Add raid_class support to mptspi
This adds basic raid monitoring (via the raid class) to the mptspi driver.
drivers/message/fusion/Kconfig +1 -0
@@ -10,6 +10,7 @@ depends on PCI && SCSI select FUSION select SCSI_SPI_ATTRS + select RAID_ATTRS ---help--- SCSI HOST support for a parallel SCSI host adapters.
drivers/message/fusion/mptbase.h +11 -5
@@ -332,6 +332,8 @@*/ typedef struct _VirtTarget { struct scsi_target *starget; + RaidVolumePage0_t *raidVolume; /* set, if RAID Volume */ + int raidpg0size; u8 tflags; u8 ioc_id; u8 target_id;
@@ -340,7 +342,6 @@u8 maxOffset;/* 0 if async */ u8 maxWidth;/* 0 if narrow, 1 if wide */ u8 negoFlags;/* bit field, see above */ -u8 raidVolume;/* set, if RAID Volume */ u8 type;/* byte 0 of Inquiry data */ u32 num_luns;u32 luns[8 ];/* Max LUNs is 256 */
@@ -894,10 +895,15 @@typedef struct _MPT_LOCAL_REPLY {ConfigPageHeader_t header;int completion; -u8 sense[SCSI_STD_SENSE_BYTES ]; -u8 scsiStatus; -u8 skip; -u32 pad; +union { +struct { +u8 sense[SCSI_STD_SENSE_BYTES ]; +u8 scsiStatus; +u8 skip; +u32 pad; + } s; +u64 r[6 ]; + } u; }MPT_LOCAL_REPLY ;#define MPT_HOST_BUS_UNKNOWN (0xFF)
drivers/message/fusion/mptscsih.c +172 -8
245 lines not on this page · raw message
drivers/message/fusion/mptscsih.h +9 -0
@@ -99,3 +99,12 @@extern int mptscsih_change_queue_depth (struct scsi_device *sdev,int qdepth);extern void mptscsih_timer_expired (unsigned long data);extern int mptscsih_TMHandler (MPT_SCSI_HOST *hd,u8 type,u8 channel,u8 target,u8 lun,int ctx2abort,ulong timeout); +extern int mptscsih_raid_action (MPT_SCSI_HOST *hd,int action,int volume, +int volbus,MpiRaidActionReply_t *pRep, +int repLen); +extern int mptscsih_read_raid_page0 (struct scsi_device *sdev, +struct _CONFIG_PAGE_RAID_VOL_0 *pass_pg0, +int pg0len,int version); +extern struct scsi_device * +mptscsih_find_raid_device (struct _MPT_SCSI_HOST *hd,int physDiskBus, +int physDiskID);
drivers/message/fusion/mptspi.c +149 -55
256 lines not on this page · raw message