diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h index 83567b9755b4..2ab2d24dcc15 100644 --- a/drivers/scsi/lpfc/lpfc.h +++ b/drivers/scsi/lpfc/lpfc.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************* | 1 | /******************************************************************* |
2 | * This file is part of the Emulex Linux Device Driver for * | 2 | * This file is part of the Emulex Linux Device Driver for * |
3 | * Fibre Channel Host Bus Adapters. * | 3 | * Fibre Channel Host Bus Adapters. * |
4 | * Copyright (C) 2004-2007 Emulex. All rights reserved. * | 4 | * Copyright (C) 2004-2008 Emulex. All rights reserved. * |
5 | * EMULEX and SLI are trademarks of Emulex. * | 5 | * EMULEX and SLI are trademarks of Emulex. * |
6 | * www.emulex.com * | 6 | * www.emulex.com * |
7 | * Portions Copyright (C) 2004-2005 Christoph Hellwig * | 7 | * Portions Copyright (C) 2004-2005 Christoph Hellwig * |
@@ -307,6 +307,7 @@ struct lpfc_vport { | |||
307 | 307 | ||
308 | uint32_t fc_nlp_cnt; /* outstanding NODELIST requests */ | 308 | uint32_t fc_nlp_cnt; /* outstanding NODELIST requests */ |
309 | uint32_t fc_rscn_id_cnt; /* count of RSCNs payloads in list */ | 309 | uint32_t fc_rscn_id_cnt; /* count of RSCNs payloads in list */ |
310 | uint32_t fc_rscn_flush; /* flag use of fc_rscn_id_list */ | ||
310 | struct lpfc_dmabuf *fc_rscn_id_list[FC_MAX_HOLD_RSCN]; | 311 | struct lpfc_dmabuf *fc_rscn_id_list[FC_MAX_HOLD_RSCN]; |
311 | struct lpfc_name fc_nodename; /* fc nodename */ | 312 | struct lpfc_name fc_nodename; /* fc nodename */ |
312 | struct lpfc_name fc_portname; /* fc portname */ | 313 | struct lpfc_name fc_portname; /* fc portname */ |
@@ -392,6 +393,13 @@ enum hba_temp_state { | |||
392 | HBA_OVER_TEMP | 393 | HBA_OVER_TEMP |
393 | }; | 394 | }; |
394 | 395 | ||
396 | enum intr_type_t { | ||
397 | NONE = 0, | ||
398 | INTx, | ||
399 | MSI, | ||
400 | MSIX, | ||
401 | }; | ||
402 | |||
395 | struct lpfc_hba { | 403 | struct lpfc_hba { |
396 | struct lpfc_sli sli; | 404 | struct lpfc_sli sli; |
397 | uint32_t sli_rev; /* SLI2 or SLI3 */ | 405 | uint32_t sli_rev; /* SLI2 or SLI3 */ |
@@ -409,7 +417,7 @@ struct lpfc_hba { | |||
409 | /* This flag is set while issuing */ | 417 | /* This flag is set while issuing */ |
410 | /* INIT_LINK mailbox command */ | 418 | /* INIT_LINK mailbox command */ |
411 | #define LS_NPIV_FAB_SUPPORTED 0x2 /* Fabric supports NPIV */ | 419 | #define LS_NPIV_FAB_SUPPORTED 0x2 /* Fabric supports NPIV */ |
412 | #define LS_IGNORE_ERATT 0x3 /* intr handler should ignore ERATT */ | 420 | #define LS_IGNORE_ERATT 0x4 /* intr handler should ignore ERATT */ |
413 | 421 | ||
414 | struct lpfc_sli2_slim *slim2p; | 422 | struct lpfc_sli2_slim *slim2p; |
415 | struct lpfc_dmabuf hbqslimp; | 423 | struct lpfc_dmabuf hbqslimp; |
@@ -487,6 +495,8 @@ struct lpfc_hba { | |||
487 | wait_queue_head_t *work_wait; | 495 | wait_queue_head_t *work_wait; |
488 | struct task_struct *worker_thread; | 496 | struct task_struct *worker_thread; |
489 | 497 | ||
498 | uint32_t hbq_in_use; /* HBQs in use flag */ | ||
499 | struct list_head hbqbuf_in_list; /* in-fly hbq buffer list */ | ||
490 | uint32_t hbq_count; /* Count of configured HBQs */ | 500 | uint32_t hbq_count; /* Count of configured HBQs */ |
491 | struct hbq_s hbqs[LPFC_MAX_HBQS]; /* local copy of hbq indicies */ | 501 | struct hbq_s hbqs[LPFC_MAX_HBQS]; /* local copy of hbq indicies */ |
492 | 502 | ||
@@ -555,7 +565,8 @@ struct lpfc_hba { | |||
555 | mempool_t *nlp_mem_pool; | 565 | mempool_t *nlp_mem_pool; |
556 | 566 | ||
557 | struct fc_host_statistics link_stats; | 567 | struct fc_host_statistics link_stats; |
558 | uint8_t using_msi; | 568 | enum intr_type_t intr_type; |
569 | struct msix_entry msix_entries[1]; | ||
559 | 570 | ||
560 | struct list_head port_list; | 571 | struct list_head port_list; |
561 | struct lpfc_vport *pport; /* physical lpfc_vport pointer */ | 572 | struct lpfc_vport *pport; /* physical lpfc_vport pointer */ |
@@ -595,6 +606,8 @@ struct lpfc_hba { | |||
595 | unsigned long last_completion_time; | 606 | unsigned long last_completion_time; |
596 | struct timer_list hb_tmofunc; | 607 | struct timer_list hb_tmofunc; |
597 | uint8_t hb_outstanding; | 608 | uint8_t hb_outstanding; |
609 | /* ndlp reference management */ | ||
610 | spinlock_t ndlp_lock; | ||
598 | /* | 611 | /* |
599 | * Following bit will be set for all buffer tags which are not | 612 | * Following bit will be set for all buffer tags which are not |
600 | * associated with any HBQ. | 613 | * associated with any HBQ. |