diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2008-04-03 16:13:18 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-04-07 13:19:13 -0400 |
commit | 0971de7f56f809f40edae6fd372745e429e970e9 (patch) | |
tree | 8ae6829060081a81e62193db81278f6aa5365e08 /drivers/scsi/qla2xxx/qla_def.h | |
parent | c6952483b070ec8a4f2450d1116be908fe59edcc (diff) |
[SCSI] qla2xxx: Add FC-transport Asynchronous Event Notification support.
Supported events include LIP, LIP reset, RSCN, link up, and link
down.
To support AEN (and additional forthcoming features), we also
introduce a simple deferred-work construct to manage events which
require a non-atomic sleeping-capable context. This work-list is
processed as part of the driver's standard DPC routine.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_def.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index f70c78b6f364..35c730a3f0da 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -2115,6 +2115,26 @@ struct qla_msix_entry { | |||
2115 | 2115 | ||
2116 | #define WATCH_INTERVAL 1 /* number of seconds */ | 2116 | #define WATCH_INTERVAL 1 /* number of seconds */ |
2117 | 2117 | ||
2118 | /* Work events. */ | ||
2119 | enum qla_work_type { | ||
2120 | QLA_EVT_AEN, | ||
2121 | }; | ||
2122 | |||
2123 | |||
2124 | struct qla_work_evt { | ||
2125 | struct list_head list; | ||
2126 | enum qla_work_type type; | ||
2127 | u32 flags; | ||
2128 | #define QLA_EVT_FLAG_FREE 0x1 | ||
2129 | |||
2130 | union { | ||
2131 | struct { | ||
2132 | enum fc_host_event_code code; | ||
2133 | u32 data; | ||
2134 | } aen; | ||
2135 | } u; | ||
2136 | }; | ||
2137 | |||
2118 | /* | 2138 | /* |
2119 | * Linux Host Adapter structure | 2139 | * Linux Host Adapter structure |
2120 | */ | 2140 | */ |
@@ -2354,6 +2374,8 @@ typedef struct scsi_qla_host { | |||
2354 | uint32_t login_retry_count; | 2374 | uint32_t login_retry_count; |
2355 | int max_q_depth; | 2375 | int max_q_depth; |
2356 | 2376 | ||
2377 | struct list_head work_list; | ||
2378 | |||
2357 | /* Fibre Channel Device List. */ | 2379 | /* Fibre Channel Device List. */ |
2358 | struct list_head fcports; | 2380 | struct list_head fcports; |
2359 | 2381 | ||