diff options
| author | Kashyap, Desai <kashyap.desai@lsi.com> | 2009-05-29 16:44:48 +0530 | 
|---|---|---|
| committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-06-09 17:28:30 -0500 | 
| commit | 1ba9ab2eb2c53df52e498779e14cf4e5ea77b0ad (patch) | |
| tree | 494361505cc5556ba4b843714c05d681506a846b /drivers/message/fusion/mptbase.h | |
| parent | 37c60f374a855974c27bd30d5662a8fa5e933792 (diff) | |
[SCSI] mpt fusion: rewrite taskmgmt request and completion routines
1.)	 rewrite taskmanagement request and completion routines, making them
single threaded and using the generic MPT_MGMT struct, deleting
mptscsih_TMHandler, replacing with single request TM handler
mptscsih_IssueTaskMgmt, and killing the watchdog timer functions.
2.) cleanup ioc_reset callback handlers, introducing wrappers for
synchronizing error recovery (mpt_set_taskmgmt_in_progress_flag,
mpt_clear_taskmgmt_in_progress_flag), as the fusion firmware only handles
one task management request at a time
Signed-off-by: Kashyap Desai <kadesai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/message/fusion/mptbase.h')
| -rw-r--r-- | drivers/message/fusion/mptbase.h | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index 4d77256954f9..2129aff294d5 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h @@ -657,8 +657,6 @@ typedef struct _MPT_ADAPTER  	MPT_IOCTL		*ioctl;		/* ioctl data pointer */  	struct proc_dir_entry	*ioc_dentry;  	struct _MPT_ADAPTER	*alt_ioc;	/* ptr to 929 bound adapter port */ -	spinlock_t		 diagLock;	/* diagnostic reset lock */ -	int			 diagPending;  	u32			 biosVersion;	/* BIOS version from IO Unit Page 2 */  	int			 eventTypes;	/* Event logging parameters */  	int			 eventContext;	/* Next event context */ @@ -712,6 +710,10 @@ typedef struct _MPT_ADAPTER  	MPT_MGMT		 sas_mgmt;  	MPT_MGMT		 mptbase_cmds; /* for sending config pages */  	MPT_MGMT		 internal_cmds; +	MPT_MGMT		 taskmgmt_cmds; +	spinlock_t		 taskmgmt_lock; /* diagnostic reset lock */ +	int			 taskmgmt_in_progress; +	u8			 ioc_reset_in_progress;  	struct work_struct	 sas_persist_task;  	struct work_struct	 fc_setup_reset_work; @@ -931,6 +933,8 @@ extern void	 mpt_free_fw_memory(MPT_ADAPTER *ioc);  extern int	 mpt_findImVolumes(MPT_ADAPTER *ioc);  extern int	 mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode);  extern int	 mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t phys_disk); +extern int	 mpt_set_taskmgmt_in_progress_flag(MPT_ADAPTER *ioc); +extern void	 mpt_clear_taskmgmt_in_progress_flag(MPT_ADAPTER *ioc);  extern void     mpt_halt_firmware(MPT_ADAPTER *ioc); | 
