aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/qla2xxx/qla_listops.h
diff options
context:
space:
mode:
author <andrew.vasquez@qlogic.com>2005-04-17 15:02:26 -0500
committerJames Bottomley <jejb@titanic>2005-04-18 13:46:53 -0500
commitf4f051ebb40e74ad0ba02d2cb3a6c16b0393472b (patch)
treecc5b5267465d833d36037bd717cef9368f6c9472 /drivers/scsi/qla2xxx/qla_listops.h
parentc46f2ffb9e7fce7208c2639790e1ade42e00b146 (diff)
[PATCH] qla2xxx: remove internal queuing...
Remove internal command queuing from the driver. As is, this driver cannot tolerate cable-pulls as I/Os will begin to fail by the upper layers. o Should be used in conjuction with the 11-fc_rport_adds_2.diff patch. o Removes qla_listops.h file -- no longer needed. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_listops.h')
-rw-r--r--drivers/scsi/qla2xxx/qla_listops.h351
1 files changed, 0 insertions, 351 deletions
diff --git a/drivers/scsi/qla2xxx/qla_listops.h b/drivers/scsi/qla2xxx/qla_listops.h
deleted file mode 100644
index 5da034f61af..00000000000
--- a/drivers/scsi/qla2xxx/qla_listops.h
+++ /dev/null
@@ -1,351 +0,0 @@
-/******************************************************************************
- * QLOGIC LINUX SOFTWARE
- *
- * QLogic ISP2x00 device driver for Linux 2.6.x
- * Copyright (C) 2003-2004 QLogic Corporation
- * (www.qlogic.com)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- ******************************************************************************/
-
-/* Management functions for various lists */
-
-/* __add_to_done_queue()
- *
- * Place SRB command on done queue.
- *
- * Input:
- * ha = host pointer
- * sp = srb pointer.
- * Locking:
- * this function assumes the ha->list_lock is already taken
- */
-static inline void
-__add_to_done_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- /*
- if (sp->state != SRB_NO_QUEUE_STATE &&
- sp->state != SRB_ACTIVE_STATE)
- BUG();
- */
-
- /* Place block on done queue */
- sp->cmd->host_scribble = (unsigned char *) NULL;
- sp->state = SRB_DONE_STATE;
- list_add_tail(&sp->list,&ha->done_queue);
- ha->done_q_cnt++;
- sp->ha = ha;
-}
-
-static inline void
-__add_to_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- /*
- if( sp->state != SRB_NO_QUEUE_STATE &&
- sp->state != SRB_ACTIVE_STATE)
- BUG();
- */
-
- /* Place block on retry queue */
- list_add_tail(&sp->list,&ha->retry_queue);
- ha->retry_q_cnt++;
- sp->flags |= SRB_WATCHDOG;
- sp->state = SRB_RETRY_STATE;
- sp->ha = ha;
-}
-
-static inline void
-__add_to_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- /*
- if( sp->state != SRB_NO_QUEUE_STATE &&
- sp->state != SRB_ACTIVE_STATE)
- BUG();
- */
-
- /* Place block on retry queue */
- list_add_tail(&sp->list,&ha->scsi_retry_queue);
- ha->scsi_retry_q_cnt++;
- sp->state = SRB_SCSI_RETRY_STATE;
- sp->ha = ha;
-}
-
-static inline void
-add_to_done_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
- __add_to_done_queue(ha,sp);
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-
-static inline void
-add_to_free_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- mempool_free(sp, ha->srb_mempool);
-}
-
-static inline void
-add_to_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
- __add_to_retry_queue(ha,sp);
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-
-static inline void
-add_to_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
- __add_to_scsi_retry_queue(ha,sp);
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-
-/*
- * __del_from_retry_queue
- * Function used to remove a command block from the
- * watchdog timer queue.
- *
- * Note: Must insure that command is on watchdog
- * list before calling del_from_retry_queue
- * if (sp->flags & SRB_WATCHDOG)
- *
- * Input:
- * ha = adapter block pointer.
- * sp = srb pointer.
- * Locking:
- * this function assumes the list_lock is already taken
- */
-static inline void
-__del_from_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- list_del_init(&sp->list);
-
- sp->flags &= ~(SRB_WATCHDOG | SRB_BUSY);
- sp->state = SRB_NO_QUEUE_STATE;
- ha->retry_q_cnt--;
-}
-
-/*
- * __del_from_scsi_retry_queue
- * Function used to remove a command block from the
- * scsi retry queue.
- *
- * Input:
- * ha = adapter block pointer.
- * sp = srb pointer.
- * Locking:
- * this function assumes the list_lock is already taken
- */
-static inline void
-__del_from_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- list_del_init(&sp->list);
-
- ha->scsi_retry_q_cnt--;
- sp->state = SRB_NO_QUEUE_STATE;
-}
-
-/*
- * del_from_retry_queue
- * Function used to remove a command block from the
- * watchdog timer queue.
- *
- * Note: Must insure that command is on watchdog
- * list before calling del_from_retry_queue
- * if (sp->flags & SRB_WATCHDOG)
- *
- * Input:
- * ha = adapter block pointer.
- * sp = srb pointer.
- * Locking:
- * this function takes and releases the list_lock
- */
-static inline void
-del_from_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- /* if (unlikely(!(sp->flags & SRB_WATCHDOG)))
- BUG();*/
- spin_lock_irqsave(&ha->list_lock, flags);
-
- /* if (unlikely(list_empty(&ha->retry_queue)))
- BUG();*/
-
- __del_from_retry_queue(ha,sp);
-
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-/*
- * del_from_scsi_retry_queue
- * Function used to remove a command block from the
- * scsi retry queue.
- *
- * Input:
- * ha = adapter block pointer.
- * sp = srb pointer.
- * Locking:
- * this function takes and releases the list_lock
- */
-static inline void
-del_from_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
-
- /* if (unlikely(list_empty(&ha->scsi_retry_queue)))
- BUG();*/
-
- __del_from_scsi_retry_queue(ha,sp);
-
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-
-/*
- * __add_to_pending_queue
- * Add the standard SCB job to the bottom of standard SCB commands.
- *
- * Input:
- * COMPLETE!!!
- * q = SCSI LU pointer.
- * sp = srb pointer.
- * SCSI_LU_Q lock must be already obtained.
- */
-static inline int
-__add_to_pending_queue(struct scsi_qla_host *ha, srb_t * sp)
-{
- int empty;
- /*
- if( sp->state != SRB_NO_QUEUE_STATE &&
- sp->state != SRB_FREE_STATE &&
- sp->state != SRB_ACTIVE_STATE)
- BUG();
- */
-
- empty = list_empty(&ha->pending_queue);
- list_add_tail(&sp->list, &ha->pending_queue);
- ha->qthreads++;
- sp->state = SRB_PENDING_STATE;
-
- return (empty);
-}
-
-static inline void
-__add_to_pending_queue_head(struct scsi_qla_host *ha, srb_t * sp)
-{
- /*
- if( sp->state != SRB_NO_QUEUE_STATE &&
- sp->state != SRB_FREE_STATE &&
- sp->state != SRB_ACTIVE_STATE)
- BUG();
- */
-
- list_add(&sp->list, &ha->pending_queue);
- ha->qthreads++;
- sp->state = SRB_PENDING_STATE;
-}
-
-static inline int
-add_to_pending_queue(struct scsi_qla_host *ha, srb_t *sp)
-{
- int empty;
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
- empty = __add_to_pending_queue(ha, sp);
- spin_unlock_irqrestore(&ha->list_lock, flags);
-
- return (empty);
-}
-static inline void
-add_to_pending_queue_head(struct scsi_qla_host *ha, srb_t *sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
- __add_to_pending_queue_head(ha, sp);
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-
-static inline void
-__del_from_pending_queue(struct scsi_qla_host *ha, srb_t *sp)
-{
- list_del_init(&sp->list);
- ha->qthreads--;
- sp->state = SRB_NO_QUEUE_STATE;
-}
-
-/*
- * Failover Stuff.
- */
-static inline void
-__add_to_failover_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- /*
- if( sp->state != SRB_NO_QUEUE_STATE &&
- sp->state != SRB_ACTIVE_STATE)
- BUG();
- */
-
- list_add_tail(&sp->list,&ha->failover_queue);
- ha->failover_cnt++;
- sp->state = SRB_FAILOVER_STATE;
- sp->ha = ha;
-}
-
-static inline void add_to_failover_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
-
- __add_to_failover_queue(ha,sp);
-
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-static inline void __del_from_failover_queue(struct scsi_qla_host * ha, srb_t *
- sp)
-{
- ha->failover_cnt--;
- list_del_init(&sp->list);
- sp->state = SRB_NO_QUEUE_STATE;
-}
-
-static inline void del_from_failover_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
-
- __del_from_failover_queue(ha,sp);
-
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}
-
-static inline void
-del_from_pending_queue(struct scsi_qla_host * ha, srb_t * sp)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&ha->list_lock, flags);
-
- __del_from_pending_queue(ha,sp);
-
- spin_unlock_irqrestore(&ha->list_lock, flags);
-}