diff options
author | Anirban Chakraborty <anirban.chakraborty@qlogic.com> | 2008-12-09 19:45:39 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-12-29 12:24:33 -0500 |
commit | 73208dfd7ab19f379d73e8a0fbf30f92c203e5e8 (patch) | |
tree | f69be5e89817d17b066ece4dbe04e395339c0754 /drivers/scsi/qla2xxx/qla_inline.h | |
parent | 85b4aa4926a50210b683ac89326e338e7d131211 (diff) |
[SCSI] qla2xxx: add support for multi-queue adapter
Following changes have been made.
1. qla_hw_data structure holds an array for request queue pointers,
and an array for response queue pointers.
2. The base request and response queues are created by default.
3. Additional request and response queues are created at the time of vport
creation. If queue resources are exhausted during vport creation, newly
created vports use the default queue.
4. Requests are sent to the request queue that the vport was assigned
in the beginning.
5. Responses are completed on the response queue with which the request queue
is associated with.
[fixup memcpy argument reversal spotted by davej@redhat.com]
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_inline.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_inline.h | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h index 8ce354720680..507a6e954f5c 100644 --- a/drivers/scsi/qla2xxx/qla_inline.h +++ b/drivers/scsi/qla2xxx/qla_inline.h | |||
@@ -41,32 +41,6 @@ qla2x00_poll(struct rsp_que *rsp) | |||
41 | local_irq_restore(flags); | 41 | local_irq_restore(flags); |
42 | } | 42 | } |
43 | 43 | ||
44 | /** | ||
45 | * qla2x00_issue_marker() - Issue a Marker IOCB if necessary. | ||
46 | * @ha: HA context | ||
47 | * @ha_locked: is function called with the hardware lock | ||
48 | * | ||
49 | * Returns non-zero if a failure occurred, else zero. | ||
50 | */ | ||
51 | static inline int | ||
52 | qla2x00_issue_marker(scsi_qla_host_t *vha, int ha_locked) | ||
53 | { | ||
54 | /* Send marker if required */ | ||
55 | if (vha->marker_needed != 0) { | ||
56 | if (ha_locked) { | ||
57 | if (__qla2x00_marker(vha, 0, 0, MK_SYNC_ALL) != | ||
58 | QLA_SUCCESS) | ||
59 | return (QLA_FUNCTION_FAILED); | ||
60 | } else { | ||
61 | if (qla2x00_marker(vha, 0, 0, MK_SYNC_ALL) != | ||
62 | QLA_SUCCESS) | ||
63 | return (QLA_FUNCTION_FAILED); | ||
64 | } | ||
65 | vha->marker_needed = 0; | ||
66 | } | ||
67 | return (QLA_SUCCESS); | ||
68 | } | ||
69 | |||
70 | static inline uint8_t * | 44 | static inline uint8_t * |
71 | host_to_fcp_swap(uint8_t *fcp, uint32_t bsize) | 45 | host_to_fcp_swap(uint8_t *fcp, uint32_t bsize) |
72 | { | 46 | { |