]> err.no Git - linux-2.6/blobdiff - drivers/scsi/lpfc/lpfc.h
Merge branch 'linux-next' of git://git.infradead.org/~dedekind/ubi-2.6
[linux-2.6] / drivers / scsi / lpfc / lpfc.h
index ec0b0f6e5e1a950ea9f4436b4888f184471f9af0..e0e018d12653e654144db69d3a309a51f0114c0d 100644 (file)
@@ -33,6 +33,7 @@ struct lpfc_sli2_slim;
 #define LPFC_MAX_SG_SEG_CNT    256     /* sg element count per scsi cmnd */
 #define LPFC_IOCB_LIST_CNT     2250    /* list of IOCBs for fast-path usage. */
 #define LPFC_Q_RAMP_UP_INTERVAL 120     /* lun q_depth ramp up interval */
+#define LPFC_VNAME_LEN         100     /* vport symbolic name length */
 
 /*
  * Following time intervals are used of adjusting SCSI device
@@ -59,6 +60,9 @@ struct lpfc_sli2_slim;
 
 #define MAX_HBAEVT     32
 
+/* lpfc wait event data ready flag */
+#define LPFC_DATA_READY                (1<<0)
+
 enum lpfc_polling_flags {
        ENABLE_FCP_RING_POLLING = 0x1,
        DISABLE_FCP_RING_INT    = 0x2
@@ -425,9 +429,6 @@ struct lpfc_hba {
 
        uint16_t pci_cfg_value;
 
-       uint8_t work_found;
-#define LPFC_MAX_WORKER_ITERATION  4
-
        uint8_t fc_linkspeed;   /* Link speed after last READ_LA */
 
        uint32_t fc_eventTag;   /* event tag for link attention */
@@ -489,8 +490,9 @@ struct lpfc_hba {
        uint32_t              work_hs;      /* HS stored in case of ERRAT */
        uint32_t              work_status[2]; /* Extra status from SLIM */
 
-       wait_queue_head_t    *work_wait;
+       wait_queue_head_t    work_waitq;
        struct task_struct   *worker_thread;
+       long data_flags;
 
        uint32_t hbq_in_use;            /* HBQs in use flag */
        struct list_head hbqbuf_in_list;  /* in-fly hbq buffer list */
@@ -637,6 +639,17 @@ lpfc_is_link_up(struct lpfc_hba *phba)
                phba->link_state == LPFC_HBA_READY;
 }
 
+static inline void
+lpfc_worker_wake_up(struct lpfc_hba *phba)
+{
+       /* Set the lpfc data pending flag */
+       set_bit(LPFC_DATA_READY, &phba->data_flags);
+
+       /* Wake up worker thread */
+       wake_up(&phba->work_waitq);
+       return;
+}
+
 #define FC_REG_DUMP_EVENT              0x10    /* Register for Dump events */
 #define FC_REG_TEMPERATURE_EVENT       0x20    /* Register for temperature
                                                   event */