diff options
author | James Smart <James.Smart@Emulex.Com> | 2009-11-18 15:39:44 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 13:01:51 -0500 |
commit | 5ffc266ee7a62741ebee89ede15049ec0f02fa75 (patch) | |
tree | 1ffd531c5b95d3e0c2bf0d905d34f497827ff0ee /drivers/scsi/lpfc/lpfc_hw4.h | |
parent | c868595d5686e97183bc1ad85502835d81d7a457 (diff) |
[SCSI] lpfc 8.3.6 : FC Protocol Fixes
FC protocol fixes.
- Fix send sequence logic to handle multi SGL IOCBs.
- Fix FDISC completion always setting VPORT state to failed.
- Ported the fix on reporting of max_vpi to uppper layer.
- Fix incorrect number of Vports allowed to be created.
- Fixed Dead FCoE port after creating vports.
- Added handling of ELS request for Reinstate Recovery Qualifier (RRQ)
- Handle unsolicited CT exchange initiator receiving CT exchange ABTS
- Migrate LUN queue depth ramp up code to scsi mid-layer.
- Made ABTS WQE go to the same WQ as the WQE to be aborted.
- Fix Vport does not rediscover after FCF goes away.
- Fixed lpfc_unreg_vfi failure after devloss timeout.
- Fixed RPI bit leak.
- Fix hbq pointer corruption during target discovery.
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hw4.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hw4.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index 95f8b4e0063d..fa3306386786 100644 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h | |||
@@ -194,6 +194,26 @@ struct lpfc_sli4_flags { | |||
194 | #define lpfc_fip_flag_WORD word0 | 194 | #define lpfc_fip_flag_WORD word0 |
195 | }; | 195 | }; |
196 | 196 | ||
197 | struct sli4_bls_acc { | ||
198 | uint32_t word0_rsvd; /* Word0 must be reserved */ | ||
199 | uint32_t word1; | ||
200 | #define lpfc_abts_orig_SHIFT 0 | ||
201 | #define lpfc_abts_orig_MASK 0x00000001 | ||
202 | #define lpfc_abts_orig_WORD word1 | ||
203 | #define LPFC_ABTS_UNSOL_RSP 1 | ||
204 | #define LPFC_ABTS_UNSOL_INT 0 | ||
205 | uint32_t word2; | ||
206 | #define lpfc_abts_rxid_SHIFT 0 | ||
207 | #define lpfc_abts_rxid_MASK 0x0000FFFF | ||
208 | #define lpfc_abts_rxid_WORD word2 | ||
209 | #define lpfc_abts_oxid_SHIFT 16 | ||
210 | #define lpfc_abts_oxid_MASK 0x0000FFFF | ||
211 | #define lpfc_abts_oxid_WORD word2 | ||
212 | uint32_t word3; | ||
213 | uint32_t word4; | ||
214 | uint32_t word5_rsvd; /* Word5 must be reserved */ | ||
215 | }; | ||
216 | |||
197 | /* event queue entry structure */ | 217 | /* event queue entry structure */ |
198 | struct lpfc_eqe { | 218 | struct lpfc_eqe { |
199 | uint32_t word0; | 219 | uint32_t word0; |
@@ -1980,7 +2000,8 @@ struct lpfc_bmbx_create { | |||
1980 | #define SGL_ALIGN_SZ 64 | 2000 | #define SGL_ALIGN_SZ 64 |
1981 | #define SGL_PAGE_SIZE 4096 | 2001 | #define SGL_PAGE_SIZE 4096 |
1982 | /* align SGL addr on a size boundary - adjust address up */ | 2002 | /* align SGL addr on a size boundary - adjust address up */ |
1983 | #define NO_XRI ((uint16_t)-1) | 2003 | #define NO_XRI ((uint16_t)-1) |
2004 | |||
1984 | struct wqe_common { | 2005 | struct wqe_common { |
1985 | uint32_t word6; | 2006 | uint32_t word6; |
1986 | #define wqe_xri_tag_SHIFT 0 | 2007 | #define wqe_xri_tag_SHIFT 0 |