aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_mbx.c
diff options
context:
space:
mode:
authorAnirban Chakraborty <anirban.chakraborty@qlogic.com>2008-11-06 13:40:19 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-12-29 12:24:15 -0500
commit7b867cf76fbcc8d77867cbec6f509f71dce8a98f (patch)
treeef5fcc1e21701ed1baa1b131c7c29f29cd41d5d6 /drivers/scsi/qla2xxx/qla_mbx.c
parenta9b589d90e3d7748dae459031c2d912cd9e83c88 (diff)
[SCSI] qla2xxx: Refactor qla data structures
Following changes have been made to the qla2xxx FC driver in preparation for the multi- queue and future SR IOV hardware. 1. scsi_qla_host structure has been changed to contain scsi host specific data only. 2. A new structure, qla_hw_data is created to contain HBA specific hardware data. 3. Request and response IO specific data strucures are created. 4. The global list of fcports for the hba is not maintained anymore, instead a fcport list is construted on per scsi_qla_host. Signed-of-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c759
1 files changed, 392 insertions, 367 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 3402746ec128..bc52aa01a49e 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -29,7 +29,7 @@
29 * Kernel context. 29 * Kernel context.
30 */ 30 */
31static int 31static int
32qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp) 32qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
33{ 33{
34 int rval; 34 int rval;
35 unsigned long flags = 0; 35 unsigned long flags = 0;
@@ -42,15 +42,16 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
42 uint32_t cnt; 42 uint32_t cnt;
43 uint32_t mboxes; 43 uint32_t mboxes;
44 unsigned long wait_time; 44 unsigned long wait_time;
45 scsi_qla_host_t *ha = to_qla_parent(pvha); 45 struct qla_hw_data *ha = vha->hw;
46 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
46 47
47 reg = ha->iobase; 48 reg = ha->iobase;
48 io_lock_on = ha->flags.init_done; 49 io_lock_on = base_vha->flags.init_done;
49 50
50 rval = QLA_SUCCESS; 51 rval = QLA_SUCCESS;
51 abort_active = test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags); 52 abort_active = test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags);
52 53
53 DEBUG11(printk("%s(%ld): entered.\n", __func__, pvha->host_no)); 54 DEBUG11(printk("%s(%ld): entered.\n", __func__, base_vha->host_no));
54 55
55 /* 56 /*
56 * Wait for active mailbox commands to finish by waiting at most tov 57 * Wait for active mailbox commands to finish by waiting at most tov
@@ -62,7 +63,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
62 mcp->tov * HZ)) { 63 mcp->tov * HZ)) {
63 /* Timeout occurred. Return error. */ 64 /* Timeout occurred. Return error. */
64 DEBUG2_3_11(printk("%s(%ld): cmd access timeout. " 65 DEBUG2_3_11(printk("%s(%ld): cmd access timeout. "
65 "Exiting.\n", __func__, ha->host_no)); 66 "Exiting.\n", __func__, base_vha->host_no));
66 return QLA_FUNCTION_TIMEOUT; 67 return QLA_FUNCTION_TIMEOUT;
67 } 68 }
68 } 69 }
@@ -72,7 +73,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
72 ha->mcp = mcp; 73 ha->mcp = mcp;
73 74
74 DEBUG11(printk("scsi(%ld): prepare to issue mbox cmd=0x%x.\n", 75 DEBUG11(printk("scsi(%ld): prepare to issue mbox cmd=0x%x.\n",
75 ha->host_no, mcp->mb[0])); 76 base_vha->host_no, mcp->mb[0]));
76 77
77 spin_lock_irqsave(&ha->hardware_lock, flags); 78 spin_lock_irqsave(&ha->hardware_lock, flags);
78 79
@@ -100,15 +101,16 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
100 101
101#if defined(QL_DEBUG_LEVEL_1) 102#if defined(QL_DEBUG_LEVEL_1)
102 printk("%s(%ld): Loaded MBX registers (displayed in bytes) = \n", 103 printk("%s(%ld): Loaded MBX registers (displayed in bytes) = \n",
103 __func__, ha->host_no); 104 __func__, base_vha->host_no);
104 qla2x00_dump_buffer((uint8_t *)mcp->mb, 16); 105 qla2x00_dump_buffer((uint8_t *)mcp->mb, 16);
105 printk("\n"); 106 printk("\n");
106 qla2x00_dump_buffer(((uint8_t *)mcp->mb + 0x10), 16); 107 qla2x00_dump_buffer(((uint8_t *)mcp->mb + 0x10), 16);
107 printk("\n"); 108 printk("\n");
108 qla2x00_dump_buffer(((uint8_t *)mcp->mb + 0x20), 8); 109 qla2x00_dump_buffer(((uint8_t *)mcp->mb + 0x20), 8);
109 printk("\n"); 110 printk("\n");
110 printk("%s(%ld): I/O address = %p.\n", __func__, ha->host_no, optr); 111 printk("%s(%ld): I/O address = %p.\n", __func__, base_vha->host_no,
111 qla2x00_dump_regs(ha); 112 optr);
113 qla2x00_dump_regs(base_vha);
112#endif 114#endif
113 115
114 /* Issue set host interrupt command to send cmd out. */ 116 /* Issue set host interrupt command to send cmd out. */
@@ -117,7 +119,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
117 119
118 /* Unlock mbx registers and wait for interrupt */ 120 /* Unlock mbx registers and wait for interrupt */
119 DEBUG11(printk("%s(%ld): going to unlock irq & waiting for interrupt. " 121 DEBUG11(printk("%s(%ld): going to unlock irq & waiting for interrupt. "
120 "jiffies=%lx.\n", __func__, ha->host_no, jiffies)); 122 "jiffies=%lx.\n", __func__, base_vha->host_no, jiffies));
121 123
122 /* Wait for mbx cmd completion until timeout */ 124 /* Wait for mbx cmd completion until timeout */
123 125
@@ -137,7 +139,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
137 139
138 } else { 140 } else {
139 DEBUG3_11(printk("%s(%ld): cmd=%x POLLING MODE.\n", __func__, 141 DEBUG3_11(printk("%s(%ld): cmd=%x POLLING MODE.\n", __func__,
140 ha->host_no, command)); 142 base_vha->host_no, command));
141 143
142 if (IS_FWI2_CAPABLE(ha)) 144 if (IS_FWI2_CAPABLE(ha))
143 WRT_REG_DWORD(&reg->isp24.hccr, HCCRX_SET_HOST_INT); 145 WRT_REG_DWORD(&reg->isp24.hccr, HCCRX_SET_HOST_INT);
@@ -151,7 +153,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
151 break; 153 break;
152 154
153 /* Check for pending interrupts. */ 155 /* Check for pending interrupts. */
154 qla2x00_poll(ha); 156 qla2x00_poll(ha->rsp);
155 157
156 if (command != MBC_LOAD_RISC_RAM_EXTENDED && 158 if (command != MBC_LOAD_RISC_RAM_EXTENDED &&
157 !ha->flags.mbox_int) 159 !ha->flags.mbox_int)
@@ -164,7 +166,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
164 uint16_t *iptr2; 166 uint16_t *iptr2;
165 167
166 DEBUG3_11(printk("%s(%ld): cmd %x completed.\n", __func__, 168 DEBUG3_11(printk("%s(%ld): cmd %x completed.\n", __func__,
167 ha->host_no, command)); 169 base_vha->host_no, command));
168 170
169 /* Got interrupt. Clear the flag. */ 171 /* Got interrupt. Clear the flag. */
170 ha->flags.mbox_int = 0; 172 ha->flags.mbox_int = 0;
@@ -200,12 +202,12 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
200 ictrl = RD_REG_WORD(&reg->isp.ictrl); 202 ictrl = RD_REG_WORD(&reg->isp.ictrl);
201 } 203 }
202 printk("%s(%ld): **** MB Command Timeout for cmd %x ****\n", 204 printk("%s(%ld): **** MB Command Timeout for cmd %x ****\n",
203 __func__, ha->host_no, command); 205 __func__, base_vha->host_no, command);
204 printk("%s(%ld): icontrol=%x jiffies=%lx\n", __func__, 206 printk("%s(%ld): icontrol=%x jiffies=%lx\n", __func__,
205 ha->host_no, ictrl, jiffies); 207 base_vha->host_no, ictrl, jiffies);
206 printk("%s(%ld): *** mailbox[0] = 0x%x ***\n", __func__, 208 printk("%s(%ld): *** mailbox[0] = 0x%x ***\n", __func__,
207 ha->host_no, mb0); 209 base_vha->host_no, mb0);
208 qla2x00_dump_regs(ha); 210 qla2x00_dump_regs(base_vha);
209#endif 211#endif
210 212
211 rval = QLA_FUNCTION_TIMEOUT; 213 rval = QLA_FUNCTION_TIMEOUT;
@@ -218,10 +220,10 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
218 220
219 if (abort_active || !io_lock_on) { 221 if (abort_active || !io_lock_on) {
220 DEBUG11(printk("%s(%ld): checking for additional resp " 222 DEBUG11(printk("%s(%ld): checking for additional resp "
221 "interrupt.\n", __func__, ha->host_no)); 223 "interrupt.\n", __func__, base_vha->host_no));
222 224
223 /* polling mode for non isp_abort commands. */ 225 /* polling mode for non isp_abort commands. */
224 qla2x00_poll(ha); 226 qla2x00_poll(ha->rsp);
225 } 227 }
226 228
227 if (rval == QLA_FUNCTION_TIMEOUT && 229 if (rval == QLA_FUNCTION_TIMEOUT &&
@@ -229,35 +231,37 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
229 if (!io_lock_on || (mcp->flags & IOCTL_CMD)) { 231 if (!io_lock_on || (mcp->flags & IOCTL_CMD)) {
230 /* not in dpc. schedule it for dpc to take over. */ 232 /* not in dpc. schedule it for dpc to take over. */
231 DEBUG(printk("%s(%ld): timeout schedule " 233 DEBUG(printk("%s(%ld): timeout schedule "
232 "isp_abort_needed.\n", __func__, ha->host_no)); 234 "isp_abort_needed.\n", __func__,
235 base_vha->host_no));
233 DEBUG2_3_11(printk("%s(%ld): timeout schedule " 236 DEBUG2_3_11(printk("%s(%ld): timeout schedule "
234 "isp_abort_needed.\n", __func__, ha->host_no)); 237 "isp_abort_needed.\n", __func__,
238 base_vha->host_no));
235 qla_printk(KERN_WARNING, ha, 239 qla_printk(KERN_WARNING, ha,
236 "Mailbox command timeout occurred. Scheduling ISP " 240 "Mailbox command timeout occurred. Scheduling ISP "
237 "abort.\n"); 241 "abort.\n");
238 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 242 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags);
239 qla2xxx_wake_dpc(ha); 243 qla2xxx_wake_dpc(vha);
240 } else if (!abort_active) { 244 } else if (!abort_active) {
241 /* call abort directly since we are in the DPC thread */ 245 /* call abort directly since we are in the DPC thread */
242 DEBUG(printk("%s(%ld): timeout calling abort_isp\n", 246 DEBUG(printk("%s(%ld): timeout calling abort_isp\n",
243 __func__, ha->host_no)); 247 __func__, base_vha->host_no));
244 DEBUG2_3_11(printk("%s(%ld): timeout calling " 248 DEBUG2_3_11(printk("%s(%ld): timeout calling "
245 "abort_isp\n", __func__, ha->host_no)); 249 "abort_isp\n", __func__, base_vha->host_no));
246 qla_printk(KERN_WARNING, ha, 250 qla_printk(KERN_WARNING, ha,
247 "Mailbox command timeout occurred. Issuing ISP " 251 "Mailbox command timeout occurred. Issuing ISP "
248 "abort.\n"); 252 "abort.\n");
249 253
250 set_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags); 254 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags);
251 clear_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 255 clear_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags);
252 if (qla2x00_abort_isp(ha)) { 256 if (qla2x00_abort_isp(base_vha)) {
253 /* Failed. retry later. */ 257 /* Failed. retry later. */
254 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 258 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags);
255 } 259 }
256 clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags); 260 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags);
257 DEBUG(printk("%s(%ld): finished abort_isp\n", __func__, 261 DEBUG(printk("%s(%ld): finished abort_isp\n", __func__,
258 ha->host_no)); 262 base_vha->host_no));
259 DEBUG2_3_11(printk("%s(%ld): finished abort_isp\n", 263 DEBUG2_3_11(printk("%s(%ld): finished abort_isp\n",
260 __func__, ha->host_no)); 264 __func__, base_vha->host_no));
261 } 265 }
262 } 266 }
263 267
@@ -267,24 +271,26 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
267 271
268 if (rval) { 272 if (rval) {
269 DEBUG2_3_11(printk("%s(%ld): **** FAILED. mbx0=%x, mbx1=%x, " 273 DEBUG2_3_11(printk("%s(%ld): **** FAILED. mbx0=%x, mbx1=%x, "
270 "mbx2=%x, cmd=%x ****\n", __func__, ha->host_no, 274 "mbx2=%x, cmd=%x ****\n", __func__, base_vha->host_no,
271 mcp->mb[0], mcp->mb[1], mcp->mb[2], command)); 275 mcp->mb[0], mcp->mb[1], mcp->mb[2], command));
272 } else { 276 } else {
273 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 277 DEBUG11(printk("%s(%ld): done.\n", __func__,
278 base_vha->host_no));
274 } 279 }
275 280
276 return rval; 281 return rval;
277} 282}
278 283
279int 284int
280qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t risc_addr, 285qla2x00_load_ram(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t risc_addr,
281 uint32_t risc_code_size) 286 uint32_t risc_code_size)
282{ 287{
283 int rval; 288 int rval;
289 struct qla_hw_data *ha = vha->hw;
284 mbx_cmd_t mc; 290 mbx_cmd_t mc;
285 mbx_cmd_t *mcp = &mc; 291 mbx_cmd_t *mcp = &mc;
286 292
287 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 293 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
288 294
289 if (MSW(risc_addr) || IS_FWI2_CAPABLE(ha)) { 295 if (MSW(risc_addr) || IS_FWI2_CAPABLE(ha)) {
290 mcp->mb[0] = MBC_LOAD_RISC_RAM_EXTENDED; 296 mcp->mb[0] = MBC_LOAD_RISC_RAM_EXTENDED;
@@ -312,13 +318,13 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t risc_addr,
312 mcp->in_mb = MBX_0; 318 mcp->in_mb = MBX_0;
313 mcp->tov = MBX_TOV_SECONDS; 319 mcp->tov = MBX_TOV_SECONDS;
314 mcp->flags = 0; 320 mcp->flags = 0;
315 rval = qla2x00_mailbox_command(ha, mcp); 321 rval = qla2x00_mailbox_command(vha, mcp);
316 322
317 if (rval != QLA_SUCCESS) { 323 if (rval != QLA_SUCCESS) {
318 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__, 324 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__,
319 ha->host_no, rval, mcp->mb[0])); 325 vha->host_no, rval, mcp->mb[0]));
320 } else { 326 } else {
321 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 327 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
322 } 328 }
323 329
324 return rval; 330 return rval;
@@ -340,13 +346,14 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t risc_addr,
340 * Kernel context. 346 * Kernel context.
341 */ 347 */
342int 348int
343qla2x00_execute_fw(scsi_qla_host_t *ha, uint32_t risc_addr) 349qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr)
344{ 350{
345 int rval; 351 int rval;
352 struct qla_hw_data *ha = vha->hw;
346 mbx_cmd_t mc; 353 mbx_cmd_t mc;
347 mbx_cmd_t *mcp = &mc; 354 mbx_cmd_t *mcp = &mc;
348 355
349 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 356 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
350 357
351 mcp->mb[0] = MBC_EXECUTE_FIRMWARE; 358 mcp->mb[0] = MBC_EXECUTE_FIRMWARE;
352 mcp->out_mb = MBX_0; 359 mcp->out_mb = MBX_0;
@@ -369,18 +376,18 @@ qla2x00_execute_fw(scsi_qla_host_t *ha, uint32_t risc_addr)
369 376
370 mcp->tov = MBX_TOV_SECONDS; 377 mcp->tov = MBX_TOV_SECONDS;
371 mcp->flags = 0; 378 mcp->flags = 0;
372 rval = qla2x00_mailbox_command(ha, mcp); 379 rval = qla2x00_mailbox_command(vha, mcp);
373 380
374 if (rval != QLA_SUCCESS) { 381 if (rval != QLA_SUCCESS) {
375 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__, 382 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__,
376 ha->host_no, rval, mcp->mb[0])); 383 vha->host_no, rval, mcp->mb[0]));
377 } else { 384 } else {
378 if (IS_FWI2_CAPABLE(ha)) { 385 if (IS_FWI2_CAPABLE(ha)) {
379 DEBUG11(printk("%s(%ld): done exchanges=%x.\n", 386 DEBUG11(printk("%s(%ld): done exchanges=%x.\n",
380 __func__, ha->host_no, mcp->mb[1])); 387 __func__, vha->host_no, mcp->mb[1]));
381 } else { 388 } else {
382 DEBUG11(printk("%s(%ld): done.\n", __func__, 389 DEBUG11(printk("%s(%ld): done.\n", __func__,
383 ha->host_no)); 390 vha->host_no));
384 } 391 }
385 } 392 }
386 393
@@ -404,28 +411,28 @@ qla2x00_execute_fw(scsi_qla_host_t *ha, uint32_t risc_addr)
404 * Kernel context. 411 * Kernel context.
405 */ 412 */
406void 413void
407qla2x00_get_fw_version(scsi_qla_host_t *ha, uint16_t *major, uint16_t *minor, 414qla2x00_get_fw_version(scsi_qla_host_t *vha, uint16_t *major, uint16_t *minor,
408 uint16_t *subminor, uint16_t *attributes, uint32_t *memory) 415 uint16_t *subminor, uint16_t *attributes, uint32_t *memory)
409{ 416{
410 int rval; 417 int rval;
411 mbx_cmd_t mc; 418 mbx_cmd_t mc;
412 mbx_cmd_t *mcp = &mc; 419 mbx_cmd_t *mcp = &mc;
413 420
414 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 421 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
415 422
416 mcp->mb[0] = MBC_GET_FIRMWARE_VERSION; 423 mcp->mb[0] = MBC_GET_FIRMWARE_VERSION;
417 mcp->out_mb = MBX_0; 424 mcp->out_mb = MBX_0;
418 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; 425 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
419 mcp->flags = 0; 426 mcp->flags = 0;
420 mcp->tov = MBX_TOV_SECONDS; 427 mcp->tov = MBX_TOV_SECONDS;
421 rval = qla2x00_mailbox_command(ha, mcp); 428 rval = qla2x00_mailbox_command(vha, mcp);
422 429
423 /* Return mailbox data. */ 430 /* Return mailbox data. */
424 *major = mcp->mb[1]; 431 *major = mcp->mb[1];
425 *minor = mcp->mb[2]; 432 *minor = mcp->mb[2];
426 *subminor = mcp->mb[3]; 433 *subminor = mcp->mb[3];
427 *attributes = mcp->mb[6]; 434 *attributes = mcp->mb[6];
428 if (IS_QLA2100(ha) || IS_QLA2200(ha)) 435 if (IS_QLA2100(vha->hw) || IS_QLA2200(vha->hw))
429 *memory = 0x1FFFF; /* Defaults to 128KB. */ 436 *memory = 0x1FFFF; /* Defaults to 128KB. */
430 else 437 else
431 *memory = (mcp->mb[5] << 16) | mcp->mb[4]; 438 *memory = (mcp->mb[5] << 16) | mcp->mb[4];
@@ -433,10 +440,10 @@ qla2x00_get_fw_version(scsi_qla_host_t *ha, uint16_t *major, uint16_t *minor,
433 if (rval != QLA_SUCCESS) { 440 if (rval != QLA_SUCCESS) {
434 /*EMPTY*/ 441 /*EMPTY*/
435 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 442 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
436 ha->host_no, rval)); 443 vha->host_no, rval));
437 } else { 444 } else {
438 /*EMPTY*/ 445 /*EMPTY*/
439 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 446 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
440 } 447 }
441} 448}
442 449
@@ -455,32 +462,32 @@ qla2x00_get_fw_version(scsi_qla_host_t *ha, uint16_t *major, uint16_t *minor,
455 * Kernel context. 462 * Kernel context.
456 */ 463 */
457int 464int
458qla2x00_get_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts) 465qla2x00_get_fw_options(scsi_qla_host_t *vha, uint16_t *fwopts)
459{ 466{
460 int rval; 467 int rval;
461 mbx_cmd_t mc; 468 mbx_cmd_t mc;
462 mbx_cmd_t *mcp = &mc; 469 mbx_cmd_t *mcp = &mc;
463 470
464 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 471 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
465 472
466 mcp->mb[0] = MBC_GET_FIRMWARE_OPTION; 473 mcp->mb[0] = MBC_GET_FIRMWARE_OPTION;
467 mcp->out_mb = MBX_0; 474 mcp->out_mb = MBX_0;
468 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0; 475 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0;
469 mcp->tov = MBX_TOV_SECONDS; 476 mcp->tov = MBX_TOV_SECONDS;
470 mcp->flags = 0; 477 mcp->flags = 0;
471 rval = qla2x00_mailbox_command(ha, mcp); 478 rval = qla2x00_mailbox_command(vha, mcp);
472 479
473 if (rval != QLA_SUCCESS) { 480 if (rval != QLA_SUCCESS) {
474 /*EMPTY*/ 481 /*EMPTY*/
475 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 482 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
476 ha->host_no, rval)); 483 vha->host_no, rval));
477 } else { 484 } else {
478 fwopts[0] = mcp->mb[0]; 485 fwopts[0] = mcp->mb[0];
479 fwopts[1] = mcp->mb[1]; 486 fwopts[1] = mcp->mb[1];
480 fwopts[2] = mcp->mb[2]; 487 fwopts[2] = mcp->mb[2];
481 fwopts[3] = mcp->mb[3]; 488 fwopts[3] = mcp->mb[3];
482 489
483 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 490 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
484 } 491 }
485 492
486 return rval; 493 return rval;
@@ -502,13 +509,13 @@ qla2x00_get_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts)
502 * Kernel context. 509 * Kernel context.
503 */ 510 */
504int 511int
505qla2x00_set_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts) 512qla2x00_set_fw_options(scsi_qla_host_t *vha, uint16_t *fwopts)
506{ 513{
507 int rval; 514 int rval;
508 mbx_cmd_t mc; 515 mbx_cmd_t mc;
509 mbx_cmd_t *mcp = &mc; 516 mbx_cmd_t *mcp = &mc;
510 517
511 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 518 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
512 519
513 mcp->mb[0] = MBC_SET_FIRMWARE_OPTION; 520 mcp->mb[0] = MBC_SET_FIRMWARE_OPTION;
514 mcp->mb[1] = fwopts[1]; 521 mcp->mb[1] = fwopts[1];
@@ -516,7 +523,7 @@ qla2x00_set_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts)
516 mcp->mb[3] = fwopts[3]; 523 mcp->mb[3] = fwopts[3];
517 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 524 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
518 mcp->in_mb = MBX_0; 525 mcp->in_mb = MBX_0;
519 if (IS_FWI2_CAPABLE(ha)) { 526 if (IS_FWI2_CAPABLE(vha->hw)) {
520 mcp->in_mb |= MBX_1; 527 mcp->in_mb |= MBX_1;
521 } else { 528 } else {
522 mcp->mb[10] = fwopts[10]; 529 mcp->mb[10] = fwopts[10];
@@ -526,17 +533,17 @@ qla2x00_set_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts)
526 } 533 }
527 mcp->tov = MBX_TOV_SECONDS; 534 mcp->tov = MBX_TOV_SECONDS;
528 mcp->flags = 0; 535 mcp->flags = 0;
529 rval = qla2x00_mailbox_command(ha, mcp); 536 rval = qla2x00_mailbox_command(vha, mcp);
530 537
531 fwopts[0] = mcp->mb[0]; 538 fwopts[0] = mcp->mb[0];
532 539
533 if (rval != QLA_SUCCESS) { 540 if (rval != QLA_SUCCESS) {
534 /*EMPTY*/ 541 /*EMPTY*/
535 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x/%x).\n", __func__, 542 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x/%x).\n", __func__,
536 ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 543 vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
537 } else { 544 } else {
538 /*EMPTY*/ 545 /*EMPTY*/
539 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 546 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
540 } 547 }
541 548
542 return rval; 549 return rval;
@@ -558,13 +565,14 @@ qla2x00_set_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts)
558 * Kernel context. 565 * Kernel context.
559 */ 566 */
560int 567int
561qla2x00_mbx_reg_test(scsi_qla_host_t *ha) 568qla2x00_mbx_reg_test(scsi_qla_host_t *vha)
562{ 569{
563 int rval; 570 int rval;
571 struct qla_hw_data *ha = vha->hw;
564 mbx_cmd_t mc; 572 mbx_cmd_t mc;
565 mbx_cmd_t *mcp = &mc; 573 mbx_cmd_t *mcp = &mc;
566 574
567 DEBUG11(printk("qla2x00_mbx_reg_test(%ld): entered.\n", ha->host_no)); 575 DEBUG11(printk("qla2x00_mbx_reg_test(%ld): entered.\n", vha->host_no));
568 576
569 mcp->mb[0] = MBC_MAILBOX_REGISTER_TEST; 577 mcp->mb[0] = MBC_MAILBOX_REGISTER_TEST;
570 mcp->mb[1] = 0xAAAA; 578 mcp->mb[1] = 0xAAAA;
@@ -578,7 +586,7 @@ qla2x00_mbx_reg_test(scsi_qla_host_t *ha)
578 mcp->in_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; 586 mcp->in_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
579 mcp->tov = MBX_TOV_SECONDS; 587 mcp->tov = MBX_TOV_SECONDS;
580 mcp->flags = 0; 588 mcp->flags = 0;
581 rval = qla2x00_mailbox_command(ha, mcp); 589 rval = qla2x00_mailbox_command(vha, mcp);
582 590
583 if (rval == QLA_SUCCESS) { 591 if (rval == QLA_SUCCESS) {
584 if (mcp->mb[1] != 0xAAAA || mcp->mb[2] != 0x5555 || 592 if (mcp->mb[1] != 0xAAAA || mcp->mb[2] != 0x5555 ||
@@ -591,7 +599,7 @@ qla2x00_mbx_reg_test(scsi_qla_host_t *ha)
591 struct device_reg_24xx __iomem *reg = 599 struct device_reg_24xx __iomem *reg =
592 &ha->iobase->isp24; 600 &ha->iobase->isp24;
593 601
594 qla2xxx_hw_event_log(ha, HW_EVENT_ISP_ERR, 0, 602 qla2xxx_hw_event_log(vha, HW_EVENT_ISP_ERR, 0,
595 LSW(RD_REG_DWORD(&reg->hccr)), 603 LSW(RD_REG_DWORD(&reg->hccr)),
596 LSW(RD_REG_DWORD(&reg->istatus))); 604 LSW(RD_REG_DWORD(&reg->istatus)));
597 } 605 }
@@ -600,11 +608,11 @@ qla2x00_mbx_reg_test(scsi_qla_host_t *ha)
600 if (rval != QLA_SUCCESS) { 608 if (rval != QLA_SUCCESS) {
601 /*EMPTY*/ 609 /*EMPTY*/
602 DEBUG2_3_11(printk("qla2x00_mbx_reg_test(%ld): failed=%x.\n", 610 DEBUG2_3_11(printk("qla2x00_mbx_reg_test(%ld): failed=%x.\n",
603 ha->host_no, rval)); 611 vha->host_no, rval));
604 } else { 612 } else {
605 /*EMPTY*/ 613 /*EMPTY*/
606 DEBUG11(printk("qla2x00_mbx_reg_test(%ld): done.\n", 614 DEBUG11(printk("qla2x00_mbx_reg_test(%ld): done.\n",
607 ha->host_no)); 615 vha->host_no));
608 } 616 }
609 617
610 return rval; 618 return rval;
@@ -626,18 +634,18 @@ qla2x00_mbx_reg_test(scsi_qla_host_t *ha)
626 * Kernel context. 634 * Kernel context.
627 */ 635 */
628int 636int
629qla2x00_verify_checksum(scsi_qla_host_t *ha, uint32_t risc_addr) 637qla2x00_verify_checksum(scsi_qla_host_t *vha, uint32_t risc_addr)
630{ 638{
631 int rval; 639 int rval;
632 mbx_cmd_t mc; 640 mbx_cmd_t mc;
633 mbx_cmd_t *mcp = &mc; 641 mbx_cmd_t *mcp = &mc;
634 642
635 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 643 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
636 644
637 mcp->mb[0] = MBC_VERIFY_CHECKSUM; 645 mcp->mb[0] = MBC_VERIFY_CHECKSUM;
638 mcp->out_mb = MBX_0; 646 mcp->out_mb = MBX_0;
639 mcp->in_mb = MBX_0; 647 mcp->in_mb = MBX_0;
640 if (IS_FWI2_CAPABLE(ha)) { 648 if (IS_FWI2_CAPABLE(vha->hw)) {
641 mcp->mb[1] = MSW(risc_addr); 649 mcp->mb[1] = MSW(risc_addr);
642 mcp->mb[2] = LSW(risc_addr); 650 mcp->mb[2] = LSW(risc_addr);
643 mcp->out_mb |= MBX_2|MBX_1; 651 mcp->out_mb |= MBX_2|MBX_1;
@@ -650,14 +658,14 @@ qla2x00_verify_checksum(scsi_qla_host_t *ha, uint32_t risc_addr)
650 658
651 mcp->tov = MBX_TOV_SECONDS; 659 mcp->tov = MBX_TOV_SECONDS;
652 mcp->flags = 0; 660 mcp->flags = 0;
653 rval = qla2x00_mailbox_command(ha, mcp); 661 rval = qla2x00_mailbox_command(vha, mcp);
654 662
655 if (rval != QLA_SUCCESS) { 663 if (rval != QLA_SUCCESS) {
656 DEBUG2_3_11(printk("%s(%ld): failed=%x chk sum=%x.\n", __func__, 664 DEBUG2_3_11(printk("%s(%ld): failed=%x chk sum=%x.\n", __func__,
657 ha->host_no, rval, IS_FWI2_CAPABLE(ha) ? 665 vha->host_no, rval, IS_FWI2_CAPABLE(vha->hw) ?
658 (mcp->mb[2] << 16) | mcp->mb[1]: mcp->mb[1])); 666 (mcp->mb[2] << 16) | mcp->mb[1]: mcp->mb[1]));
659 } else { 667 } else {
660 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 668 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
661 } 669 }
662 670
663 return rval; 671 return rval;
@@ -682,7 +690,7 @@ qla2x00_verify_checksum(scsi_qla_host_t *ha, uint32_t risc_addr)
682 * Kernel context. 690 * Kernel context.
683 */ 691 */
684static int 692static int
685qla2x00_issue_iocb_timeout(scsi_qla_host_t *ha, void *buffer, 693qla2x00_issue_iocb_timeout(scsi_qla_host_t *vha, void *buffer,
686 dma_addr_t phys_addr, size_t size, uint32_t tov) 694 dma_addr_t phys_addr, size_t size, uint32_t tov)
687{ 695{
688 int rval; 696 int rval;
@@ -699,30 +707,30 @@ qla2x00_issue_iocb_timeout(scsi_qla_host_t *ha, void *buffer,
699 mcp->in_mb = MBX_2|MBX_0; 707 mcp->in_mb = MBX_2|MBX_0;
700 mcp->tov = tov; 708 mcp->tov = tov;
701 mcp->flags = 0; 709 mcp->flags = 0;
702 rval = qla2x00_mailbox_command(ha, mcp); 710 rval = qla2x00_mailbox_command(vha, mcp);
703 711
704 if (rval != QLA_SUCCESS) { 712 if (rval != QLA_SUCCESS) {
705 /*EMPTY*/ 713 /*EMPTY*/
706 DEBUG(printk("qla2x00_issue_iocb(%ld): failed rval 0x%x\n", 714 DEBUG(printk("qla2x00_issue_iocb(%ld): failed rval 0x%x\n",
707 ha->host_no, rval)); 715 vha->host_no, rval));
708 DEBUG2(printk("qla2x00_issue_iocb(%ld): failed rval 0x%x\n", 716 DEBUG2(printk("qla2x00_issue_iocb(%ld): failed rval 0x%x\n",
709 ha->host_no, rval)); 717 vha->host_no, rval));
710 } else { 718 } else {
711 sts_entry_t *sts_entry = (sts_entry_t *) buffer; 719 sts_entry_t *sts_entry = (sts_entry_t *) buffer;
712 720
713 /* Mask reserved bits. */ 721 /* Mask reserved bits. */
714 sts_entry->entry_status &= 722 sts_entry->entry_status &=
715 IS_FWI2_CAPABLE(ha) ? RF_MASK_24XX :RF_MASK; 723 IS_FWI2_CAPABLE(vha->hw) ? RF_MASK_24XX : RF_MASK;
716 } 724 }
717 725
718 return rval; 726 return rval;
719} 727}
720 728
721int 729int
722qla2x00_issue_iocb(scsi_qla_host_t *ha, void *buffer, dma_addr_t phys_addr, 730qla2x00_issue_iocb(scsi_qla_host_t *vha, void *buffer, dma_addr_t phys_addr,
723 size_t size) 731 size_t size)
724{ 732{
725 return qla2x00_issue_iocb_timeout(ha, buffer, phys_addr, size, 733 return qla2x00_issue_iocb_timeout(vha, buffer, phys_addr, size,
726 MBX_TOV_SECONDS); 734 MBX_TOV_SECONDS);
727} 735}
728 736
@@ -741,7 +749,7 @@ qla2x00_issue_iocb(scsi_qla_host_t *ha, void *buffer, dma_addr_t phys_addr,
741 * Kernel context. 749 * Kernel context.
742 */ 750 */
743int 751int
744qla2x00_abort_command(scsi_qla_host_t *ha, srb_t *sp) 752qla2x00_abort_command(scsi_qla_host_t *vha, srb_t *sp)
745{ 753{
746 unsigned long flags = 0; 754 unsigned long flags = 0;
747 fc_port_t *fcport; 755 fc_port_t *fcport;
@@ -749,14 +757,16 @@ qla2x00_abort_command(scsi_qla_host_t *ha, srb_t *sp)
749 uint32_t handle; 757 uint32_t handle;
750 mbx_cmd_t mc; 758 mbx_cmd_t mc;
751 mbx_cmd_t *mcp = &mc; 759 mbx_cmd_t *mcp = &mc;
760 struct qla_hw_data *ha = vha->hw;
761 struct req_que *req = ha->req;
752 762
753 DEBUG11(printk("qla2x00_abort_command(%ld): entered.\n", ha->host_no)); 763 DEBUG11(printk("qla2x00_abort_command(%ld): entered.\n", vha->host_no));
754 764
755 fcport = sp->fcport; 765 fcport = sp->fcport;
756 766
757 spin_lock_irqsave(&ha->hardware_lock, flags); 767 spin_lock_irqsave(&ha->hardware_lock, flags);
758 for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) { 768 for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) {
759 if (ha->outstanding_cmds[handle] == sp) 769 if (req->outstanding_cmds[handle] == sp)
760 break; 770 break;
761 } 771 }
762 spin_unlock_irqrestore(&ha->hardware_lock, flags); 772 spin_unlock_irqrestore(&ha->hardware_lock, flags);
@@ -778,14 +788,14 @@ qla2x00_abort_command(scsi_qla_host_t *ha, srb_t *sp)
778 mcp->in_mb = MBX_0; 788 mcp->in_mb = MBX_0;
779 mcp->tov = MBX_TOV_SECONDS; 789 mcp->tov = MBX_TOV_SECONDS;
780 mcp->flags = 0; 790 mcp->flags = 0;
781 rval = qla2x00_mailbox_command(ha, mcp); 791 rval = qla2x00_mailbox_command(vha, mcp);
782 792
783 if (rval != QLA_SUCCESS) { 793 if (rval != QLA_SUCCESS) {
784 DEBUG2_3_11(printk("qla2x00_abort_command(%ld): failed=%x.\n", 794 DEBUG2_3_11(printk("qla2x00_abort_command(%ld): failed=%x.\n",
785 ha->host_no, rval)); 795 vha->host_no, rval));
786 } else { 796 } else {
787 DEBUG11(printk("qla2x00_abort_command(%ld): done.\n", 797 DEBUG11(printk("qla2x00_abort_command(%ld): done.\n",
788 ha->host_no)); 798 vha->host_no));
789 } 799 }
790 800
791 return rval; 801 return rval;
@@ -797,40 +807,40 @@ qla2x00_abort_target(struct fc_port *fcport, unsigned int l)
797 int rval, rval2; 807 int rval, rval2;
798 mbx_cmd_t mc; 808 mbx_cmd_t mc;
799 mbx_cmd_t *mcp = &mc; 809 mbx_cmd_t *mcp = &mc;
800 scsi_qla_host_t *ha; 810 scsi_qla_host_t *vha;
801 811
802 DEBUG11(printk("%s(%ld): entered.\n", __func__, fcport->ha->host_no)); 812 DEBUG11(printk("%s(%ld): entered.\n", __func__, fcport->vha->host_no));
803 813
804 l = l; 814 l = l;
805 ha = fcport->ha; 815 vha = fcport->vha;
806 mcp->mb[0] = MBC_ABORT_TARGET; 816 mcp->mb[0] = MBC_ABORT_TARGET;
807 mcp->out_mb = MBX_9|MBX_2|MBX_1|MBX_0; 817 mcp->out_mb = MBX_9|MBX_2|MBX_1|MBX_0;
808 if (HAS_EXTENDED_IDS(ha)) { 818 if (HAS_EXTENDED_IDS(vha->hw)) {
809 mcp->mb[1] = fcport->loop_id; 819 mcp->mb[1] = fcport->loop_id;
810 mcp->mb[10] = 0; 820 mcp->mb[10] = 0;
811 mcp->out_mb |= MBX_10; 821 mcp->out_mb |= MBX_10;
812 } else { 822 } else {
813 mcp->mb[1] = fcport->loop_id << 8; 823 mcp->mb[1] = fcport->loop_id << 8;
814 } 824 }
815 mcp->mb[2] = ha->loop_reset_delay; 825 mcp->mb[2] = vha->hw->loop_reset_delay;
816 mcp->mb[9] = ha->vp_idx; 826 mcp->mb[9] = vha->vp_idx;
817 827
818 mcp->in_mb = MBX_0; 828 mcp->in_mb = MBX_0;
819 mcp->tov = MBX_TOV_SECONDS; 829 mcp->tov = MBX_TOV_SECONDS;
820 mcp->flags = 0; 830 mcp->flags = 0;
821 rval = qla2x00_mailbox_command(ha, mcp); 831 rval = qla2x00_mailbox_command(vha, mcp);
822 if (rval != QLA_SUCCESS) { 832 if (rval != QLA_SUCCESS) {
823 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 833 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
824 ha->host_no, rval)); 834 vha->host_no, rval));
825 } 835 }
826 836
827 /* Issue marker IOCB. */ 837 /* Issue marker IOCB. */
828 rval2 = qla2x00_marker(ha, fcport->loop_id, 0, MK_SYNC_ID); 838 rval2 = qla2x00_marker(vha, fcport->loop_id, 0, MK_SYNC_ID);
829 if (rval2 != QLA_SUCCESS) { 839 if (rval2 != QLA_SUCCESS) {
830 DEBUG2_3_11(printk("%s(%ld): failed to issue Marker IOCB " 840 DEBUG2_3_11(printk("%s(%ld): failed to issue Marker IOCB "
831 "(%x).\n", __func__, ha->host_no, rval2)); 841 "(%x).\n", __func__, vha->host_no, rval2));
832 } else { 842 } else {
833 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 843 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
834 } 844 }
835 845
836 return rval; 846 return rval;
@@ -842,37 +852,37 @@ qla2x00_lun_reset(struct fc_port *fcport, unsigned int l)
842 int rval, rval2; 852 int rval, rval2;
843 mbx_cmd_t mc; 853 mbx_cmd_t mc;
844 mbx_cmd_t *mcp = &mc; 854 mbx_cmd_t *mcp = &mc;
845 scsi_qla_host_t *ha; 855 scsi_qla_host_t *vha;
846 856
847 DEBUG11(printk("%s(%ld): entered.\n", __func__, fcport->ha->host_no)); 857 DEBUG11(printk("%s(%ld): entered.\n", __func__, fcport->vha->host_no));
848 858
849 ha = fcport->ha; 859 vha = fcport->vha;
850 mcp->mb[0] = MBC_LUN_RESET; 860 mcp->mb[0] = MBC_LUN_RESET;
851 mcp->out_mb = MBX_9|MBX_3|MBX_2|MBX_1|MBX_0; 861 mcp->out_mb = MBX_9|MBX_3|MBX_2|MBX_1|MBX_0;
852 if (HAS_EXTENDED_IDS(ha)) 862 if (HAS_EXTENDED_IDS(vha->hw))
853 mcp->mb[1] = fcport->loop_id; 863 mcp->mb[1] = fcport->loop_id;
854 else 864 else
855 mcp->mb[1] = fcport->loop_id << 8; 865 mcp->mb[1] = fcport->loop_id << 8;
856 mcp->mb[2] = l; 866 mcp->mb[2] = l;
857 mcp->mb[3] = 0; 867 mcp->mb[3] = 0;
858 mcp->mb[9] = ha->vp_idx; 868 mcp->mb[9] = vha->vp_idx;
859 869
860 mcp->in_mb = MBX_0; 870 mcp->in_mb = MBX_0;
861 mcp->tov = MBX_TOV_SECONDS; 871 mcp->tov = MBX_TOV_SECONDS;
862 mcp->flags = 0; 872 mcp->flags = 0;
863 rval = qla2x00_mailbox_command(ha, mcp); 873 rval = qla2x00_mailbox_command(vha, mcp);
864 if (rval != QLA_SUCCESS) { 874 if (rval != QLA_SUCCESS) {
865 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 875 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
866 ha->host_no, rval)); 876 vha->host_no, rval));
867 } 877 }
868 878
869 /* Issue marker IOCB. */ 879 /* Issue marker IOCB. */
870 rval2 = qla2x00_marker(ha, fcport->loop_id, l, MK_SYNC_ID_LUN); 880 rval2 = qla2x00_marker(vha, fcport->loop_id, l, MK_SYNC_ID_LUN);
871 if (rval2 != QLA_SUCCESS) { 881 if (rval2 != QLA_SUCCESS) {
872 DEBUG2_3_11(printk("%s(%ld): failed to issue Marker IOCB " 882 DEBUG2_3_11(printk("%s(%ld): failed to issue Marker IOCB "
873 "(%x).\n", __func__, ha->host_no, rval2)); 883 "(%x).\n", __func__, vha->host_no, rval2));
874 } else { 884 } else {
875 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 885 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
876 } 886 }
877 887
878 return rval; 888 return rval;
@@ -899,7 +909,7 @@ qla2x00_lun_reset(struct fc_port *fcport, unsigned int l)
899 * Kernel context. 909 * Kernel context.
900 */ 910 */
901int 911int
902qla2x00_get_adapter_id(scsi_qla_host_t *ha, uint16_t *id, uint8_t *al_pa, 912qla2x00_get_adapter_id(scsi_qla_host_t *vha, uint16_t *id, uint8_t *al_pa,
903 uint8_t *area, uint8_t *domain, uint16_t *top, uint16_t *sw_cap) 913 uint8_t *area, uint8_t *domain, uint16_t *top, uint16_t *sw_cap)
904{ 914{
905 int rval; 915 int rval;
@@ -907,15 +917,15 @@ qla2x00_get_adapter_id(scsi_qla_host_t *ha, uint16_t *id, uint8_t *al_pa,
907 mbx_cmd_t *mcp = &mc; 917 mbx_cmd_t *mcp = &mc;
908 918
909 DEBUG11(printk("qla2x00_get_adapter_id(%ld): entered.\n", 919 DEBUG11(printk("qla2x00_get_adapter_id(%ld): entered.\n",
910 ha->host_no)); 920 vha->host_no));
911 921
912 mcp->mb[0] = MBC_GET_ADAPTER_LOOP_ID; 922 mcp->mb[0] = MBC_GET_ADAPTER_LOOP_ID;
913 mcp->mb[9] = ha->vp_idx; 923 mcp->mb[9] = vha->vp_idx;
914 mcp->out_mb = MBX_9|MBX_0; 924 mcp->out_mb = MBX_9|MBX_0;
915 mcp->in_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; 925 mcp->in_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
916 mcp->tov = MBX_TOV_SECONDS; 926 mcp->tov = MBX_TOV_SECONDS;
917 mcp->flags = 0; 927 mcp->flags = 0;
918 rval = qla2x00_mailbox_command(ha, mcp); 928 rval = qla2x00_mailbox_command(vha, mcp);
919 if (mcp->mb[0] == MBS_COMMAND_ERROR) 929 if (mcp->mb[0] == MBS_COMMAND_ERROR)
920 rval = QLA_COMMAND_ERROR; 930 rval = QLA_COMMAND_ERROR;
921 else if (mcp->mb[0] == MBS_INVALID_COMMAND) 931 else if (mcp->mb[0] == MBS_INVALID_COMMAND)
@@ -932,11 +942,11 @@ qla2x00_get_adapter_id(scsi_qla_host_t *ha, uint16_t *id, uint8_t *al_pa,
932 if (rval != QLA_SUCCESS) { 942 if (rval != QLA_SUCCESS) {
933 /*EMPTY*/ 943 /*EMPTY*/
934 DEBUG2_3_11(printk("qla2x00_get_adapter_id(%ld): failed=%x.\n", 944 DEBUG2_3_11(printk("qla2x00_get_adapter_id(%ld): failed=%x.\n",
935 ha->host_no, rval)); 945 vha->host_no, rval));
936 } else { 946 } else {
937 /*EMPTY*/ 947 /*EMPTY*/
938 DEBUG11(printk("qla2x00_get_adapter_id(%ld): done.\n", 948 DEBUG11(printk("qla2x00_get_adapter_id(%ld): done.\n",
939 ha->host_no)); 949 vha->host_no));
940 } 950 }
941 951
942 return rval; 952 return rval;
@@ -958,7 +968,7 @@ qla2x00_get_adapter_id(scsi_qla_host_t *ha, uint16_t *id, uint8_t *al_pa,
958 * Kernel context. 968 * Kernel context.
959 */ 969 */
960int 970int
961qla2x00_get_retry_cnt(scsi_qla_host_t *ha, uint8_t *retry_cnt, uint8_t *tov, 971qla2x00_get_retry_cnt(scsi_qla_host_t *vha, uint8_t *retry_cnt, uint8_t *tov,
962 uint16_t *r_a_tov) 972 uint16_t *r_a_tov)
963{ 973{
964 int rval; 974 int rval;
@@ -967,19 +977,19 @@ qla2x00_get_retry_cnt(scsi_qla_host_t *ha, uint8_t *retry_cnt, uint8_t *tov,
967 mbx_cmd_t *mcp = &mc; 977 mbx_cmd_t *mcp = &mc;
968 978
969 DEBUG11(printk("qla2x00_get_retry_cnt(%ld): entered.\n", 979 DEBUG11(printk("qla2x00_get_retry_cnt(%ld): entered.\n",
970 ha->host_no)); 980 vha->host_no));
971 981
972 mcp->mb[0] = MBC_GET_RETRY_COUNT; 982 mcp->mb[0] = MBC_GET_RETRY_COUNT;
973 mcp->out_mb = MBX_0; 983 mcp->out_mb = MBX_0;
974 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0; 984 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0;
975 mcp->tov = MBX_TOV_SECONDS; 985 mcp->tov = MBX_TOV_SECONDS;
976 mcp->flags = 0; 986 mcp->flags = 0;
977 rval = qla2x00_mailbox_command(ha, mcp); 987 rval = qla2x00_mailbox_command(vha, mcp);
978 988
979 if (rval != QLA_SUCCESS) { 989 if (rval != QLA_SUCCESS) {
980 /*EMPTY*/ 990 /*EMPTY*/
981 DEBUG2_3_11(printk("qla2x00_get_retry_cnt(%ld): failed = %x.\n", 991 DEBUG2_3_11(printk("qla2x00_get_retry_cnt(%ld): failed = %x.\n",
982 ha->host_no, mcp->mb[0])); 992 vha->host_no, mcp->mb[0]));
983 } else { 993 } else {
984 /* Convert returned data and check our values. */ 994 /* Convert returned data and check our values. */
985 *r_a_tov = mcp->mb[3] / 2; 995 *r_a_tov = mcp->mb[3] / 2;
@@ -991,7 +1001,7 @@ qla2x00_get_retry_cnt(scsi_qla_host_t *ha, uint8_t *retry_cnt, uint8_t *tov,
991 } 1001 }
992 1002
993 DEBUG11(printk("qla2x00_get_retry_cnt(%ld): done. mb3=%d " 1003 DEBUG11(printk("qla2x00_get_retry_cnt(%ld): done. mb3=%d "
994 "ratov=%d.\n", ha->host_no, mcp->mb[3], ratov)); 1004 "ratov=%d.\n", vha->host_no, mcp->mb[3], ratov));
995 } 1005 }
996 1006
997 return rval; 1007 return rval;
@@ -1015,14 +1025,15 @@ qla2x00_get_retry_cnt(scsi_qla_host_t *ha, uint8_t *retry_cnt, uint8_t *tov,
1015 * Kernel context. 1025 * Kernel context.
1016 */ 1026 */
1017int 1027int
1018qla2x00_init_firmware(scsi_qla_host_t *ha, uint16_t size) 1028qla2x00_init_firmware(scsi_qla_host_t *vha, uint16_t size)
1019{ 1029{
1020 int rval; 1030 int rval;
1021 mbx_cmd_t mc; 1031 mbx_cmd_t mc;
1022 mbx_cmd_t *mcp = &mc; 1032 mbx_cmd_t *mcp = &mc;
1033 struct qla_hw_data *ha = vha->hw;
1023 1034
1024 DEBUG11(printk("qla2x00_init_firmware(%ld): entered.\n", 1035 DEBUG11(printk("qla2x00_init_firmware(%ld): entered.\n",
1025 ha->host_no)); 1036 vha->host_no));
1026 1037
1027 if (ha->flags.npiv_supported) 1038 if (ha->flags.npiv_supported)
1028 mcp->mb[0] = MBC_MID_INITIALIZE_FIRMWARE; 1039 mcp->mb[0] = MBC_MID_INITIALIZE_FIRMWARE;
@@ -1040,17 +1051,17 @@ qla2x00_init_firmware(scsi_qla_host_t *ha, uint16_t size)
1040 mcp->buf_size = size; 1051 mcp->buf_size = size;
1041 mcp->flags = MBX_DMA_OUT; 1052 mcp->flags = MBX_DMA_OUT;
1042 mcp->tov = MBX_TOV_SECONDS; 1053 mcp->tov = MBX_TOV_SECONDS;
1043 rval = qla2x00_mailbox_command(ha, mcp); 1054 rval = qla2x00_mailbox_command(vha, mcp);
1044 1055
1045 if (rval != QLA_SUCCESS) { 1056 if (rval != QLA_SUCCESS) {
1046 /*EMPTY*/ 1057 /*EMPTY*/
1047 DEBUG2_3_11(printk("qla2x00_init_firmware(%ld): failed=%x " 1058 DEBUG2_3_11(printk("qla2x00_init_firmware(%ld): failed=%x "
1048 "mb0=%x.\n", 1059 "mb0=%x.\n",
1049 ha->host_no, rval, mcp->mb[0])); 1060 vha->host_no, rval, mcp->mb[0]));
1050 } else { 1061 } else {
1051 /*EMPTY*/ 1062 /*EMPTY*/
1052 DEBUG11(printk("qla2x00_init_firmware(%ld): done.\n", 1063 DEBUG11(printk("qla2x00_init_firmware(%ld): done.\n",
1053 ha->host_no)); 1064 vha->host_no));
1054 } 1065 }
1055 1066
1056 return rval; 1067 return rval;
@@ -1073,7 +1084,7 @@ qla2x00_init_firmware(scsi_qla_host_t *ha, uint16_t size)
1073 * Kernel context. 1084 * Kernel context.
1074 */ 1085 */
1075int 1086int
1076qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt) 1087qla2x00_get_port_database(scsi_qla_host_t *vha, fc_port_t *fcport, uint8_t opt)
1077{ 1088{
1078 int rval; 1089 int rval;
1079 mbx_cmd_t mc; 1090 mbx_cmd_t mc;
@@ -1081,14 +1092,15 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
1081 port_database_t *pd; 1092 port_database_t *pd;
1082 struct port_database_24xx *pd24; 1093 struct port_database_24xx *pd24;
1083 dma_addr_t pd_dma; 1094 dma_addr_t pd_dma;
1095 struct qla_hw_data *ha = vha->hw;
1084 1096
1085 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 1097 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
1086 1098
1087 pd24 = NULL; 1099 pd24 = NULL;
1088 pd = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &pd_dma); 1100 pd = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &pd_dma);
1089 if (pd == NULL) { 1101 if (pd == NULL) {
1090 DEBUG2_3(printk("%s(%ld): failed to allocate Port Database " 1102 DEBUG2_3(printk("%s(%ld): failed to allocate Port Database "
1091 "structure.\n", __func__, ha->host_no)); 1103 "structure.\n", __func__, vha->host_no));
1092 return QLA_MEMORY_ALLOC_FAILED; 1104 return QLA_MEMORY_ALLOC_FAILED;
1093 } 1105 }
1094 memset(pd, 0, max(PORT_DATABASE_SIZE, PORT_DATABASE_24XX_SIZE)); 1106 memset(pd, 0, max(PORT_DATABASE_SIZE, PORT_DATABASE_24XX_SIZE));
@@ -1100,7 +1112,7 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
1100 mcp->mb[3] = LSW(pd_dma); 1112 mcp->mb[3] = LSW(pd_dma);
1101 mcp->mb[6] = MSW(MSD(pd_dma)); 1113 mcp->mb[6] = MSW(MSD(pd_dma));
1102 mcp->mb[7] = LSW(MSD(pd_dma)); 1114 mcp->mb[7] = LSW(MSD(pd_dma));
1103 mcp->mb[9] = ha->vp_idx; 1115 mcp->mb[9] = vha->vp_idx;
1104 mcp->out_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; 1116 mcp->out_mb = MBX_9|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0;
1105 mcp->in_mb = MBX_0; 1117 mcp->in_mb = MBX_0;
1106 if (IS_FWI2_CAPABLE(ha)) { 1118 if (IS_FWI2_CAPABLE(ha)) {
@@ -1120,7 +1132,7 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
1120 PORT_DATABASE_24XX_SIZE : PORT_DATABASE_SIZE; 1132 PORT_DATABASE_24XX_SIZE : PORT_DATABASE_SIZE;
1121 mcp->flags = MBX_DMA_IN; 1133 mcp->flags = MBX_DMA_IN;
1122 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); 1134 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2);
1123 rval = qla2x00_mailbox_command(ha, mcp); 1135 rval = qla2x00_mailbox_command(vha, mcp);
1124 if (rval != QLA_SUCCESS) 1136 if (rval != QLA_SUCCESS)
1125 goto gpd_error_out; 1137 goto gpd_error_out;
1126 1138
@@ -1132,7 +1144,7 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
1132 pd24->last_login_state != PDS_PRLI_COMPLETE) { 1144 pd24->last_login_state != PDS_PRLI_COMPLETE) {
1133 DEBUG2(printk("%s(%ld): Unable to verify " 1145 DEBUG2(printk("%s(%ld): Unable to verify "
1134 "login-state (%x/%x) for loop_id %x\n", 1146 "login-state (%x/%x) for loop_id %x\n",
1135 __func__, ha->host_no, 1147 __func__, vha->host_no,
1136 pd24->current_login_state, 1148 pd24->current_login_state,
1137 pd24->last_login_state, fcport->loop_id)); 1149 pd24->last_login_state, fcport->loop_id));
1138 rval = QLA_FUNCTION_FAILED; 1150 rval = QLA_FUNCTION_FAILED;
@@ -1192,9 +1204,9 @@ gpd_error_out:
1192 1204
1193 if (rval != QLA_SUCCESS) { 1205 if (rval != QLA_SUCCESS) {
1194 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n", 1206 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n",
1195 __func__, ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 1207 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
1196 } else { 1208 } else {
1197 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 1209 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
1198 } 1210 }
1199 1211
1200 return rval; 1212 return rval;
@@ -1217,21 +1229,21 @@ gpd_error_out:
1217 * Kernel context. 1229 * Kernel context.
1218 */ 1230 */
1219int 1231int
1220qla2x00_get_firmware_state(scsi_qla_host_t *ha, uint16_t *states) 1232qla2x00_get_firmware_state(scsi_qla_host_t *vha, uint16_t *states)
1221{ 1233{
1222 int rval; 1234 int rval;
1223 mbx_cmd_t mc; 1235 mbx_cmd_t mc;
1224 mbx_cmd_t *mcp = &mc; 1236 mbx_cmd_t *mcp = &mc;
1225 1237
1226 DEBUG11(printk("qla2x00_get_firmware_state(%ld): entered.\n", 1238 DEBUG11(printk("qla2x00_get_firmware_state(%ld): entered.\n",
1227 ha->host_no)); 1239 vha->host_no));
1228 1240
1229 mcp->mb[0] = MBC_GET_FIRMWARE_STATE; 1241 mcp->mb[0] = MBC_GET_FIRMWARE_STATE;
1230 mcp->out_mb = MBX_0; 1242 mcp->out_mb = MBX_0;
1231 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1243 mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0;
1232 mcp->tov = MBX_TOV_SECONDS; 1244 mcp->tov = MBX_TOV_SECONDS;
1233 mcp->flags = 0; 1245 mcp->flags = 0;
1234 rval = qla2x00_mailbox_command(ha, mcp); 1246 rval = qla2x00_mailbox_command(vha, mcp);
1235 1247
1236 /* Return firmware states. */ 1248 /* Return firmware states. */
1237 states[0] = mcp->mb[1]; 1249 states[0] = mcp->mb[1];
@@ -1241,11 +1253,11 @@ qla2x00_get_firmware_state(scsi_qla_host_t *ha, uint16_t *states)
1241 if (rval != QLA_SUCCESS) { 1253 if (rval != QLA_SUCCESS) {
1242 /*EMPTY*/ 1254 /*EMPTY*/
1243 DEBUG2_3_11(printk("qla2x00_get_firmware_state(%ld): " 1255 DEBUG2_3_11(printk("qla2x00_get_firmware_state(%ld): "
1244 "failed=%x.\n", ha->host_no, rval)); 1256 "failed=%x.\n", vha->host_no, rval));
1245 } else { 1257 } else {
1246 /*EMPTY*/ 1258 /*EMPTY*/
1247 DEBUG11(printk("qla2x00_get_firmware_state(%ld): done.\n", 1259 DEBUG11(printk("qla2x00_get_firmware_state(%ld): done.\n",
1248 ha->host_no)); 1260 vha->host_no));
1249 } 1261 }
1250 1262
1251 return rval; 1263 return rval;
@@ -1270,7 +1282,7 @@ qla2x00_get_firmware_state(scsi_qla_host_t *ha, uint16_t *states)
1270 * Kernel context. 1282 * Kernel context.
1271 */ 1283 */
1272int 1284int
1273qla2x00_get_port_name(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t *name, 1285qla2x00_get_port_name(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t *name,
1274 uint8_t opt) 1286 uint8_t opt)
1275{ 1287{
1276 int rval; 1288 int rval;
@@ -1278,12 +1290,12 @@ qla2x00_get_port_name(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t *name,
1278 mbx_cmd_t *mcp = &mc; 1290 mbx_cmd_t *mcp = &mc;
1279 1291
1280 DEBUG11(printk("qla2x00_get_port_name(%ld): entered.\n", 1292 DEBUG11(printk("qla2x00_get_port_name(%ld): entered.\n",
1281 ha->host_no)); 1293 vha->host_no));
1282 1294
1283 mcp->mb[0] = MBC_GET_PORT_NAME; 1295 mcp->mb[0] = MBC_GET_PORT_NAME;
1284 mcp->mb[9] = ha->vp_idx; 1296 mcp->mb[9] = vha->vp_idx;
1285 mcp->out_mb = MBX_9|MBX_1|MBX_0; 1297 mcp->out_mb = MBX_9|MBX_1|MBX_0;
1286 if (HAS_EXTENDED_IDS(ha)) { 1298 if (HAS_EXTENDED_IDS(vha->hw)) {
1287 mcp->mb[1] = loop_id; 1299 mcp->mb[1] = loop_id;
1288 mcp->mb[10] = opt; 1300 mcp->mb[10] = opt;
1289 mcp->out_mb |= MBX_10; 1301 mcp->out_mb |= MBX_10;
@@ -1294,12 +1306,12 @@ qla2x00_get_port_name(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t *name,
1294 mcp->in_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; 1306 mcp->in_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
1295 mcp->tov = MBX_TOV_SECONDS; 1307 mcp->tov = MBX_TOV_SECONDS;
1296 mcp->flags = 0; 1308 mcp->flags = 0;
1297 rval = qla2x00_mailbox_command(ha, mcp); 1309 rval = qla2x00_mailbox_command(vha, mcp);
1298 1310
1299 if (rval != QLA_SUCCESS) { 1311 if (rval != QLA_SUCCESS) {
1300 /*EMPTY*/ 1312 /*EMPTY*/
1301 DEBUG2_3_11(printk("qla2x00_get_port_name(%ld): failed=%x.\n", 1313 DEBUG2_3_11(printk("qla2x00_get_port_name(%ld): failed=%x.\n",
1302 ha->host_no, rval)); 1314 vha->host_no, rval));
1303 } else { 1315 } else {
1304 if (name != NULL) { 1316 if (name != NULL) {
1305 /* This function returns name in big endian. */ 1317 /* This function returns name in big endian. */
@@ -1314,7 +1326,7 @@ qla2x00_get_port_name(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t *name,
1314 } 1326 }
1315 1327
1316 DEBUG11(printk("qla2x00_get_port_name(%ld): done.\n", 1328 DEBUG11(printk("qla2x00_get_port_name(%ld): done.\n",
1317 ha->host_no)); 1329 vha->host_no));
1318 } 1330 }
1319 1331
1320 return rval; 1332 return rval;
@@ -1336,45 +1348,45 @@ qla2x00_get_port_name(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t *name,
1336 * Kernel context. 1348 * Kernel context.
1337 */ 1349 */
1338int 1350int
1339qla2x00_lip_reset(scsi_qla_host_t *ha) 1351qla2x00_lip_reset(scsi_qla_host_t *vha)
1340{ 1352{
1341 int rval; 1353 int rval;
1342 mbx_cmd_t mc; 1354 mbx_cmd_t mc;
1343 mbx_cmd_t *mcp = &mc; 1355 mbx_cmd_t *mcp = &mc;
1344 1356
1345 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 1357 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
1346 1358
1347 if (IS_FWI2_CAPABLE(ha)) { 1359 if (IS_FWI2_CAPABLE(vha->hw)) {
1348 mcp->mb[0] = MBC_LIP_FULL_LOGIN; 1360 mcp->mb[0] = MBC_LIP_FULL_LOGIN;
1349 mcp->mb[1] = BIT_6; 1361 mcp->mb[1] = BIT_6;
1350 mcp->mb[2] = 0; 1362 mcp->mb[2] = 0;
1351 mcp->mb[3] = ha->loop_reset_delay; 1363 mcp->mb[3] = vha->hw->loop_reset_delay;
1352 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1364 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
1353 } else { 1365 } else {
1354 mcp->mb[0] = MBC_LIP_RESET; 1366 mcp->mb[0] = MBC_LIP_RESET;
1355 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1367 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
1356 if (HAS_EXTENDED_IDS(ha)) { 1368 if (HAS_EXTENDED_IDS(vha->hw)) {
1357 mcp->mb[1] = 0x00ff; 1369 mcp->mb[1] = 0x00ff;
1358 mcp->mb[10] = 0; 1370 mcp->mb[10] = 0;
1359 mcp->out_mb |= MBX_10; 1371 mcp->out_mb |= MBX_10;
1360 } else { 1372 } else {
1361 mcp->mb[1] = 0xff00; 1373 mcp->mb[1] = 0xff00;
1362 } 1374 }
1363 mcp->mb[2] = ha->loop_reset_delay; 1375 mcp->mb[2] = vha->hw->loop_reset_delay;
1364 mcp->mb[3] = 0; 1376 mcp->mb[3] = 0;
1365 } 1377 }
1366 mcp->in_mb = MBX_0; 1378 mcp->in_mb = MBX_0;
1367 mcp->tov = MBX_TOV_SECONDS; 1379 mcp->tov = MBX_TOV_SECONDS;
1368 mcp->flags = 0; 1380 mcp->flags = 0;
1369 rval = qla2x00_mailbox_command(ha, mcp); 1381 rval = qla2x00_mailbox_command(vha, mcp);
1370 1382
1371 if (rval != QLA_SUCCESS) { 1383 if (rval != QLA_SUCCESS) {
1372 /*EMPTY*/ 1384 /*EMPTY*/
1373 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", 1385 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n",
1374 __func__, ha->host_no, rval)); 1386 __func__, vha->host_no, rval));
1375 } else { 1387 } else {
1376 /*EMPTY*/ 1388 /*EMPTY*/
1377 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 1389 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
1378 } 1390 }
1379 1391
1380 return rval; 1392 return rval;
@@ -1399,7 +1411,7 @@ qla2x00_lip_reset(scsi_qla_host_t *ha)
1399 * Kernel context. 1411 * Kernel context.
1400 */ 1412 */
1401int 1413int
1402qla2x00_send_sns(scsi_qla_host_t *ha, dma_addr_t sns_phys_address, 1414qla2x00_send_sns(scsi_qla_host_t *vha, dma_addr_t sns_phys_address,
1403 uint16_t cmd_size, size_t buf_size) 1415 uint16_t cmd_size, size_t buf_size)
1404{ 1416{
1405 int rval; 1417 int rval;
@@ -1407,10 +1419,11 @@ qla2x00_send_sns(scsi_qla_host_t *ha, dma_addr_t sns_phys_address,
1407 mbx_cmd_t *mcp = &mc; 1419 mbx_cmd_t *mcp = &mc;
1408 1420
1409 DEBUG11(printk("qla2x00_send_sns(%ld): entered.\n", 1421 DEBUG11(printk("qla2x00_send_sns(%ld): entered.\n",
1410 ha->host_no)); 1422 vha->host_no));
1411 1423
1412 DEBUG11(printk("qla2x00_send_sns: retry cnt=%d ratov=%d total " 1424 DEBUG11(printk("qla2x00_send_sns: retry cnt=%d ratov=%d total "
1413 "tov=%d.\n", ha->retry_count, ha->login_timeout, mcp->tov)); 1425 "tov=%d.\n", vha->hw->retry_count, vha->hw->login_timeout,
1426 mcp->tov));
1414 1427
1415 mcp->mb[0] = MBC_SEND_SNS_COMMAND; 1428 mcp->mb[0] = MBC_SEND_SNS_COMMAND;
1416 mcp->mb[1] = cmd_size; 1429 mcp->mb[1] = cmd_size;
@@ -1422,25 +1435,25 @@ qla2x00_send_sns(scsi_qla_host_t *ha, dma_addr_t sns_phys_address,
1422 mcp->in_mb = MBX_0|MBX_1; 1435 mcp->in_mb = MBX_0|MBX_1;
1423 mcp->buf_size = buf_size; 1436 mcp->buf_size = buf_size;
1424 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN; 1437 mcp->flags = MBX_DMA_OUT|MBX_DMA_IN;
1425 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); 1438 mcp->tov = (vha->hw->login_timeout * 2) + (vha->hw->login_timeout / 2);
1426 rval = qla2x00_mailbox_command(ha, mcp); 1439 rval = qla2x00_mailbox_command(vha, mcp);
1427 1440
1428 if (rval != QLA_SUCCESS) { 1441 if (rval != QLA_SUCCESS) {
1429 /*EMPTY*/ 1442 /*EMPTY*/
1430 DEBUG(printk("qla2x00_send_sns(%ld): failed=%x mb[0]=%x " 1443 DEBUG(printk("qla2x00_send_sns(%ld): failed=%x mb[0]=%x "
1431 "mb[1]=%x.\n", ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 1444 "mb[1]=%x.\n", vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
1432 DEBUG2_3_11(printk("qla2x00_send_sns(%ld): failed=%x mb[0]=%x " 1445 DEBUG2_3_11(printk("qla2x00_send_sns(%ld): failed=%x mb[0]=%x "
1433 "mb[1]=%x.\n", ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 1446 "mb[1]=%x.\n", vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
1434 } else { 1447 } else {
1435 /*EMPTY*/ 1448 /*EMPTY*/
1436 DEBUG11(printk("qla2x00_send_sns(%ld): done.\n", ha->host_no)); 1449 DEBUG11(printk("qla2x00_send_sns(%ld): done.\n", vha->host_no));
1437 } 1450 }
1438 1451
1439 return rval; 1452 return rval;
1440} 1453}
1441 1454
1442int 1455int
1443qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, 1456qla24xx_login_fabric(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
1444 uint8_t area, uint8_t al_pa, uint16_t *mb, uint8_t opt) 1457 uint8_t area, uint8_t al_pa, uint16_t *mb, uint8_t opt)
1445{ 1458{
1446 int rval; 1459 int rval;
@@ -1448,13 +1461,14 @@ qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1448 struct logio_entry_24xx *lg; 1461 struct logio_entry_24xx *lg;
1449 dma_addr_t lg_dma; 1462 dma_addr_t lg_dma;
1450 uint32_t iop[2]; 1463 uint32_t iop[2];
1464 struct qla_hw_data *ha = vha->hw;
1451 1465
1452 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 1466 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
1453 1467
1454 lg = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &lg_dma); 1468 lg = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &lg_dma);
1455 if (lg == NULL) { 1469 if (lg == NULL) {
1456 DEBUG2_3(printk("%s(%ld): failed to allocate Login IOCB.\n", 1470 DEBUG2_3(printk("%s(%ld): failed to allocate Login IOCB.\n",
1457 __func__, ha->host_no)); 1471 __func__, vha->host_no));
1458 return QLA_MEMORY_ALLOC_FAILED; 1472 return QLA_MEMORY_ALLOC_FAILED;
1459 } 1473 }
1460 memset(lg, 0, sizeof(struct logio_entry_24xx)); 1474 memset(lg, 0, sizeof(struct logio_entry_24xx));
@@ -1470,14 +1484,14 @@ qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1470 lg->port_id[0] = al_pa; 1484 lg->port_id[0] = al_pa;
1471 lg->port_id[1] = area; 1485 lg->port_id[1] = area;
1472 lg->port_id[2] = domain; 1486 lg->port_id[2] = domain;
1473 lg->vp_index = ha->vp_idx; 1487 lg->vp_index = vha->vp_idx;
1474 rval = qla2x00_issue_iocb(ha, lg, lg_dma, 0); 1488 rval = qla2x00_issue_iocb(vha, lg, lg_dma, 0);
1475 if (rval != QLA_SUCCESS) { 1489 if (rval != QLA_SUCCESS) {
1476 DEBUG2_3_11(printk("%s(%ld): failed to issue Login IOCB " 1490 DEBUG2_3_11(printk("%s(%ld): failed to issue Login IOCB "
1477 "(%x).\n", __func__, ha->host_no, rval)); 1491 "(%x).\n", __func__, vha->host_no, rval));
1478 } else if (lg->entry_status != 0) { 1492 } else if (lg->entry_status != 0) {
1479 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 1493 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
1480 "-- error status (%x).\n", __func__, ha->host_no, 1494 "-- error status (%x).\n", __func__, vha->host_no,
1481 lg->entry_status)); 1495 lg->entry_status));
1482 rval = QLA_FUNCTION_FAILED; 1496 rval = QLA_FUNCTION_FAILED;
1483 } else if (lg->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) { 1497 } else if (lg->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) {
@@ -1486,7 +1500,7 @@ qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1486 1500
1487 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 1501 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
1488 "-- completion status (%x) ioparam=%x/%x.\n", __func__, 1502 "-- completion status (%x) ioparam=%x/%x.\n", __func__,
1489 ha->host_no, le16_to_cpu(lg->comp_status), iop[0], 1503 vha->host_no, le16_to_cpu(lg->comp_status), iop[0],
1490 iop[1])); 1504 iop[1]));
1491 1505
1492 switch (iop[0]) { 1506 switch (iop[0]) {
@@ -1515,7 +1529,7 @@ qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1515 break; 1529 break;
1516 } 1530 }
1517 } else { 1531 } else {
1518 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 1532 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
1519 1533
1520 iop[0] = le32_to_cpu(lg->io_parameter[0]); 1534 iop[0] = le32_to_cpu(lg->io_parameter[0]);
1521 1535
@@ -1562,14 +1576,15 @@ qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1562 * Kernel context. 1576 * Kernel context.
1563 */ 1577 */
1564int 1578int
1565qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, 1579qla2x00_login_fabric(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
1566 uint8_t area, uint8_t al_pa, uint16_t *mb, uint8_t opt) 1580 uint8_t area, uint8_t al_pa, uint16_t *mb, uint8_t opt)
1567{ 1581{
1568 int rval; 1582 int rval;
1569 mbx_cmd_t mc; 1583 mbx_cmd_t mc;
1570 mbx_cmd_t *mcp = &mc; 1584 mbx_cmd_t *mcp = &mc;
1585 struct qla_hw_data *ha = vha->hw;
1571 1586
1572 DEBUG11(printk("qla2x00_login_fabric(%ld): entered.\n", ha->host_no)); 1587 DEBUG11(printk("qla2x00_login_fabric(%ld): entered.\n", vha->host_no));
1573 1588
1574 mcp->mb[0] = MBC_LOGIN_FABRIC_PORT; 1589 mcp->mb[0] = MBC_LOGIN_FABRIC_PORT;
1575 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1590 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
@@ -1586,7 +1601,7 @@ qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1586 mcp->in_mb = MBX_7|MBX_6|MBX_2|MBX_1|MBX_0; 1601 mcp->in_mb = MBX_7|MBX_6|MBX_2|MBX_1|MBX_0;
1587 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); 1602 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2);
1588 mcp->flags = 0; 1603 mcp->flags = 0;
1589 rval = qla2x00_mailbox_command(ha, mcp); 1604 rval = qla2x00_mailbox_command(vha, mcp);
1590 1605
1591 /* Return mailbox statuses. */ 1606 /* Return mailbox statuses. */
1592 if (mb != NULL) { 1607 if (mb != NULL) {
@@ -1613,12 +1628,12 @@ qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1613 1628
1614 /*EMPTY*/ 1629 /*EMPTY*/
1615 DEBUG2_3_11(printk("qla2x00_login_fabric(%ld): failed=%x " 1630 DEBUG2_3_11(printk("qla2x00_login_fabric(%ld): failed=%x "
1616 "mb[0]=%x mb[1]=%x mb[2]=%x.\n", ha->host_no, rval, 1631 "mb[0]=%x mb[1]=%x mb[2]=%x.\n", vha->host_no, rval,
1617 mcp->mb[0], mcp->mb[1], mcp->mb[2])); 1632 mcp->mb[0], mcp->mb[1], mcp->mb[2]));
1618 } else { 1633 } else {
1619 /*EMPTY*/ 1634 /*EMPTY*/
1620 DEBUG11(printk("qla2x00_login_fabric(%ld): done.\n", 1635 DEBUG11(printk("qla2x00_login_fabric(%ld): done.\n",
1621 ha->host_no)); 1636 vha->host_no));
1622 } 1637 }
1623 1638
1624 return rval; 1639 return rval;
@@ -1641,19 +1656,20 @@ qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1641 * 1656 *
1642 */ 1657 */
1643int 1658int
1644qla2x00_login_local_device(scsi_qla_host_t *ha, fc_port_t *fcport, 1659qla2x00_login_local_device(scsi_qla_host_t *vha, fc_port_t *fcport,
1645 uint16_t *mb_ret, uint8_t opt) 1660 uint16_t *mb_ret, uint8_t opt)
1646{ 1661{
1647 int rval; 1662 int rval;
1648 mbx_cmd_t mc; 1663 mbx_cmd_t mc;
1649 mbx_cmd_t *mcp = &mc; 1664 mbx_cmd_t *mcp = &mc;
1665 struct qla_hw_data *ha = vha->hw;
1650 1666
1651 if (IS_FWI2_CAPABLE(ha)) 1667 if (IS_FWI2_CAPABLE(ha))
1652 return qla24xx_login_fabric(ha, fcport->loop_id, 1668 return qla24xx_login_fabric(vha, fcport->loop_id,
1653 fcport->d_id.b.domain, fcport->d_id.b.area, 1669 fcport->d_id.b.domain, fcport->d_id.b.area,
1654 fcport->d_id.b.al_pa, mb_ret, opt); 1670 fcport->d_id.b.al_pa, mb_ret, opt);
1655 1671
1656 DEBUG3(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 1672 DEBUG3(printk("%s(%ld): entered.\n", __func__, vha->host_no));
1657 1673
1658 mcp->mb[0] = MBC_LOGIN_LOOP_PORT; 1674 mcp->mb[0] = MBC_LOGIN_LOOP_PORT;
1659 if (HAS_EXTENDED_IDS(ha)) 1675 if (HAS_EXTENDED_IDS(ha))
@@ -1665,7 +1681,7 @@ qla2x00_login_local_device(scsi_qla_host_t *ha, fc_port_t *fcport,
1665 mcp->in_mb = MBX_7|MBX_6|MBX_1|MBX_0; 1681 mcp->in_mb = MBX_7|MBX_6|MBX_1|MBX_0;
1666 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); 1682 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2);
1667 mcp->flags = 0; 1683 mcp->flags = 0;
1668 rval = qla2x00_mailbox_command(ha, mcp); 1684 rval = qla2x00_mailbox_command(vha, mcp);
1669 1685
1670 /* Return mailbox statuses. */ 1686 /* Return mailbox statuses. */
1671 if (mb_ret != NULL) { 1687 if (mb_ret != NULL) {
@@ -1686,33 +1702,34 @@ qla2x00_login_local_device(scsi_qla_host_t *ha, fc_port_t *fcport,
1686 rval = QLA_SUCCESS; 1702 rval = QLA_SUCCESS;
1687 1703
1688 DEBUG(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x " 1704 DEBUG(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x "
1689 "mb[6]=%x mb[7]=%x.\n", __func__, ha->host_no, rval, 1705 "mb[6]=%x mb[7]=%x.\n", __func__, vha->host_no, rval,
1690 mcp->mb[0], mcp->mb[1], mcp->mb[6], mcp->mb[7])); 1706 mcp->mb[0], mcp->mb[1], mcp->mb[6], mcp->mb[7]));
1691 DEBUG2_3(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x " 1707 DEBUG2_3(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x "
1692 "mb[6]=%x mb[7]=%x.\n", __func__, ha->host_no, rval, 1708 "mb[6]=%x mb[7]=%x.\n", __func__, vha->host_no, rval,
1693 mcp->mb[0], mcp->mb[1], mcp->mb[6], mcp->mb[7])); 1709 mcp->mb[0], mcp->mb[1], mcp->mb[6], mcp->mb[7]));
1694 } else { 1710 } else {
1695 /*EMPTY*/ 1711 /*EMPTY*/
1696 DEBUG3(printk("%s(%ld): done.\n", __func__, ha->host_no)); 1712 DEBUG3(printk("%s(%ld): done.\n", __func__, vha->host_no));
1697 } 1713 }
1698 1714
1699 return (rval); 1715 return (rval);
1700} 1716}
1701 1717
1702int 1718int
1703qla24xx_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, 1719qla24xx_fabric_logout(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
1704 uint8_t area, uint8_t al_pa) 1720 uint8_t area, uint8_t al_pa)
1705{ 1721{
1706 int rval; 1722 int rval;
1707 struct logio_entry_24xx *lg; 1723 struct logio_entry_24xx *lg;
1708 dma_addr_t lg_dma; 1724 dma_addr_t lg_dma;
1725 struct qla_hw_data *ha = vha->hw;
1709 1726
1710 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 1727 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
1711 1728
1712 lg = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &lg_dma); 1729 lg = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &lg_dma);
1713 if (lg == NULL) { 1730 if (lg == NULL) {
1714 DEBUG2_3(printk("%s(%ld): failed to allocate Logout IOCB.\n", 1731 DEBUG2_3(printk("%s(%ld): failed to allocate Logout IOCB.\n",
1715 __func__, ha->host_no)); 1732 __func__, vha->host_no));
1716 return QLA_MEMORY_ALLOC_FAILED; 1733 return QLA_MEMORY_ALLOC_FAILED;
1717 } 1734 }
1718 memset(lg, 0, sizeof(struct logio_entry_24xx)); 1735 memset(lg, 0, sizeof(struct logio_entry_24xx));
@@ -1725,25 +1742,25 @@ qla24xx_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1725 lg->port_id[0] = al_pa; 1742 lg->port_id[0] = al_pa;
1726 lg->port_id[1] = area; 1743 lg->port_id[1] = area;
1727 lg->port_id[2] = domain; 1744 lg->port_id[2] = domain;
1728 lg->vp_index = ha->vp_idx; 1745 lg->vp_index = vha->vp_idx;
1729 rval = qla2x00_issue_iocb(ha, lg, lg_dma, 0); 1746 rval = qla2x00_issue_iocb(vha, lg, lg_dma, 0);
1730 if (rval != QLA_SUCCESS) { 1747 if (rval != QLA_SUCCESS) {
1731 DEBUG2_3_11(printk("%s(%ld): failed to issue Logout IOCB " 1748 DEBUG2_3_11(printk("%s(%ld): failed to issue Logout IOCB "
1732 "(%x).\n", __func__, ha->host_no, rval)); 1749 "(%x).\n", __func__, vha->host_no, rval));
1733 } else if (lg->entry_status != 0) { 1750 } else if (lg->entry_status != 0) {
1734 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 1751 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
1735 "-- error status (%x).\n", __func__, ha->host_no, 1752 "-- error status (%x).\n", __func__, vha->host_no,
1736 lg->entry_status)); 1753 lg->entry_status));
1737 rval = QLA_FUNCTION_FAILED; 1754 rval = QLA_FUNCTION_FAILED;
1738 } else if (lg->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) { 1755 } else if (lg->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) {
1739 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 1756 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
1740 "-- completion status (%x) ioparam=%x/%x.\n", __func__, 1757 "-- completion status (%x) ioparam=%x/%x.\n", __func__,
1741 ha->host_no, le16_to_cpu(lg->comp_status), 1758 vha->host_no, le16_to_cpu(lg->comp_status),
1742 le32_to_cpu(lg->io_parameter[0]), 1759 le32_to_cpu(lg->io_parameter[0]),
1743 le32_to_cpu(lg->io_parameter[1]))); 1760 le32_to_cpu(lg->io_parameter[1])));
1744 } else { 1761 } else {
1745 /*EMPTY*/ 1762 /*EMPTY*/
1746 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 1763 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
1747 } 1764 }
1748 1765
1749 dma_pool_free(ha->s_dma_pool, lg, lg_dma); 1766 dma_pool_free(ha->s_dma_pool, lg, lg_dma);
@@ -1768,7 +1785,7 @@ qla24xx_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1768 * Kernel context. 1785 * Kernel context.
1769 */ 1786 */
1770int 1787int
1771qla2x00_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, 1788qla2x00_fabric_logout(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t domain,
1772 uint8_t area, uint8_t al_pa) 1789 uint8_t area, uint8_t al_pa)
1773{ 1790{
1774 int rval; 1791 int rval;
@@ -1776,11 +1793,11 @@ qla2x00_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1776 mbx_cmd_t *mcp = &mc; 1793 mbx_cmd_t *mcp = &mc;
1777 1794
1778 DEBUG11(printk("qla2x00_fabric_logout(%ld): entered.\n", 1795 DEBUG11(printk("qla2x00_fabric_logout(%ld): entered.\n",
1779 ha->host_no)); 1796 vha->host_no));
1780 1797
1781 mcp->mb[0] = MBC_LOGOUT_FABRIC_PORT; 1798 mcp->mb[0] = MBC_LOGOUT_FABRIC_PORT;
1782 mcp->out_mb = MBX_1|MBX_0; 1799 mcp->out_mb = MBX_1|MBX_0;
1783 if (HAS_EXTENDED_IDS(ha)) { 1800 if (HAS_EXTENDED_IDS(vha->hw)) {
1784 mcp->mb[1] = loop_id; 1801 mcp->mb[1] = loop_id;
1785 mcp->mb[10] = 0; 1802 mcp->mb[10] = 0;
1786 mcp->out_mb |= MBX_10; 1803 mcp->out_mb |= MBX_10;
@@ -1791,16 +1808,16 @@ qla2x00_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1791 mcp->in_mb = MBX_1|MBX_0; 1808 mcp->in_mb = MBX_1|MBX_0;
1792 mcp->tov = MBX_TOV_SECONDS; 1809 mcp->tov = MBX_TOV_SECONDS;
1793 mcp->flags = 0; 1810 mcp->flags = 0;
1794 rval = qla2x00_mailbox_command(ha, mcp); 1811 rval = qla2x00_mailbox_command(vha, mcp);
1795 1812
1796 if (rval != QLA_SUCCESS) { 1813 if (rval != QLA_SUCCESS) {
1797 /*EMPTY*/ 1814 /*EMPTY*/
1798 DEBUG2_3_11(printk("qla2x00_fabric_logout(%ld): failed=%x " 1815 DEBUG2_3_11(printk("qla2x00_fabric_logout(%ld): failed=%x "
1799 "mbx1=%x.\n", ha->host_no, rval, mcp->mb[1])); 1816 "mbx1=%x.\n", vha->host_no, rval, mcp->mb[1]));
1800 } else { 1817 } else {
1801 /*EMPTY*/ 1818 /*EMPTY*/
1802 DEBUG11(printk("qla2x00_fabric_logout(%ld): done.\n", 1819 DEBUG11(printk("qla2x00_fabric_logout(%ld): done.\n",
1803 ha->host_no)); 1820 vha->host_no));
1804 } 1821 }
1805 1822
1806 return rval; 1823 return rval;
@@ -1822,33 +1839,33 @@ qla2x00_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1822 * Kernel context. 1839 * Kernel context.
1823 */ 1840 */
1824int 1841int
1825qla2x00_full_login_lip(scsi_qla_host_t *ha) 1842qla2x00_full_login_lip(scsi_qla_host_t *vha)
1826{ 1843{
1827 int rval; 1844 int rval;
1828 mbx_cmd_t mc; 1845 mbx_cmd_t mc;
1829 mbx_cmd_t *mcp = &mc; 1846 mbx_cmd_t *mcp = &mc;
1830 1847
1831 DEBUG11(printk("qla2x00_full_login_lip(%ld): entered.\n", 1848 DEBUG11(printk("qla2x00_full_login_lip(%ld): entered.\n",
1832 ha->host_no)); 1849 vha->host_no));
1833 1850
1834 mcp->mb[0] = MBC_LIP_FULL_LOGIN; 1851 mcp->mb[0] = MBC_LIP_FULL_LOGIN;
1835 mcp->mb[1] = IS_FWI2_CAPABLE(ha) ? BIT_3: 0; 1852 mcp->mb[1] = IS_FWI2_CAPABLE(vha->hw) ? BIT_3 : 0;
1836 mcp->mb[2] = 0; 1853 mcp->mb[2] = 0;
1837 mcp->mb[3] = 0; 1854 mcp->mb[3] = 0;
1838 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1855 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
1839 mcp->in_mb = MBX_0; 1856 mcp->in_mb = MBX_0;
1840 mcp->tov = MBX_TOV_SECONDS; 1857 mcp->tov = MBX_TOV_SECONDS;
1841 mcp->flags = 0; 1858 mcp->flags = 0;
1842 rval = qla2x00_mailbox_command(ha, mcp); 1859 rval = qla2x00_mailbox_command(vha, mcp);
1843 1860
1844 if (rval != QLA_SUCCESS) { 1861 if (rval != QLA_SUCCESS) {
1845 /*EMPTY*/ 1862 /*EMPTY*/
1846 DEBUG2_3_11(printk("qla2x00_full_login_lip(%ld): failed=%x.\n", 1863 DEBUG2_3_11(printk("qla2x00_full_login_lip(%ld): failed=%x.\n",
1847 ha->host_no, rval)); 1864 vha->host_no, rval));
1848 } else { 1865 } else {
1849 /*EMPTY*/ 1866 /*EMPTY*/
1850 DEBUG11(printk("qla2x00_full_login_lip(%ld): done.\n", 1867 DEBUG11(printk("qla2x00_full_login_lip(%ld): done.\n",
1851 ha->host_no)); 1868 vha->host_no));
1852 } 1869 }
1853 1870
1854 return rval; 1871 return rval;
@@ -1867,7 +1884,7 @@ qla2x00_full_login_lip(scsi_qla_host_t *ha)
1867 * Kernel context. 1884 * Kernel context.
1868 */ 1885 */
1869int 1886int
1870qla2x00_get_id_list(scsi_qla_host_t *ha, void *id_list, dma_addr_t id_list_dma, 1887qla2x00_get_id_list(scsi_qla_host_t *vha, void *id_list, dma_addr_t id_list_dma,
1871 uint16_t *entries) 1888 uint16_t *entries)
1872{ 1889{
1873 int rval; 1890 int rval;
@@ -1875,20 +1892,20 @@ qla2x00_get_id_list(scsi_qla_host_t *ha, void *id_list, dma_addr_t id_list_dma,
1875 mbx_cmd_t *mcp = &mc; 1892 mbx_cmd_t *mcp = &mc;
1876 1893
1877 DEBUG11(printk("qla2x00_get_id_list(%ld): entered.\n", 1894 DEBUG11(printk("qla2x00_get_id_list(%ld): entered.\n",
1878 ha->host_no)); 1895 vha->host_no));
1879 1896
1880 if (id_list == NULL) 1897 if (id_list == NULL)
1881 return QLA_FUNCTION_FAILED; 1898 return QLA_FUNCTION_FAILED;
1882 1899
1883 mcp->mb[0] = MBC_GET_ID_LIST; 1900 mcp->mb[0] = MBC_GET_ID_LIST;
1884 mcp->out_mb = MBX_0; 1901 mcp->out_mb = MBX_0;
1885 if (IS_FWI2_CAPABLE(ha)) { 1902 if (IS_FWI2_CAPABLE(vha->hw)) {
1886 mcp->mb[2] = MSW(id_list_dma); 1903 mcp->mb[2] = MSW(id_list_dma);
1887 mcp->mb[3] = LSW(id_list_dma); 1904 mcp->mb[3] = LSW(id_list_dma);
1888 mcp->mb[6] = MSW(MSD(id_list_dma)); 1905 mcp->mb[6] = MSW(MSD(id_list_dma));
1889 mcp->mb[7] = LSW(MSD(id_list_dma)); 1906 mcp->mb[7] = LSW(MSD(id_list_dma));
1890 mcp->mb[8] = 0; 1907 mcp->mb[8] = 0;
1891 mcp->mb[9] = ha->vp_idx; 1908 mcp->mb[9] = vha->vp_idx;
1892 mcp->out_mb |= MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2; 1909 mcp->out_mb |= MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2;
1893 } else { 1910 } else {
1894 mcp->mb[1] = MSW(id_list_dma); 1911 mcp->mb[1] = MSW(id_list_dma);
@@ -1900,16 +1917,16 @@ qla2x00_get_id_list(scsi_qla_host_t *ha, void *id_list, dma_addr_t id_list_dma,
1900 mcp->in_mb = MBX_1|MBX_0; 1917 mcp->in_mb = MBX_1|MBX_0;
1901 mcp->tov = MBX_TOV_SECONDS; 1918 mcp->tov = MBX_TOV_SECONDS;
1902 mcp->flags = 0; 1919 mcp->flags = 0;
1903 rval = qla2x00_mailbox_command(ha, mcp); 1920 rval = qla2x00_mailbox_command(vha, mcp);
1904 1921
1905 if (rval != QLA_SUCCESS) { 1922 if (rval != QLA_SUCCESS) {
1906 /*EMPTY*/ 1923 /*EMPTY*/
1907 DEBUG2_3_11(printk("qla2x00_get_id_list(%ld): failed=%x.\n", 1924 DEBUG2_3_11(printk("qla2x00_get_id_list(%ld): failed=%x.\n",
1908 ha->host_no, rval)); 1925 vha->host_no, rval));
1909 } else { 1926 } else {
1910 *entries = mcp->mb[1]; 1927 *entries = mcp->mb[1];
1911 DEBUG11(printk("qla2x00_get_id_list(%ld): done.\n", 1928 DEBUG11(printk("qla2x00_get_id_list(%ld): done.\n",
1912 ha->host_no)); 1929 vha->host_no));
1913 } 1930 }
1914 1931
1915 return rval; 1932 return rval;
@@ -1929,7 +1946,7 @@ qla2x00_get_id_list(scsi_qla_host_t *ha, void *id_list, dma_addr_t id_list_dma,
1929 * Kernel context. 1946 * Kernel context.
1930 */ 1947 */
1931int 1948int
1932qla2x00_get_resource_cnts(scsi_qla_host_t *ha, uint16_t *cur_xchg_cnt, 1949qla2x00_get_resource_cnts(scsi_qla_host_t *vha, uint16_t *cur_xchg_cnt,
1933 uint16_t *orig_xchg_cnt, uint16_t *cur_iocb_cnt, 1950 uint16_t *orig_xchg_cnt, uint16_t *cur_iocb_cnt,
1934 uint16_t *orig_iocb_cnt, uint16_t *max_npiv_vports) 1951 uint16_t *orig_iocb_cnt, uint16_t *max_npiv_vports)
1935{ 1952{
@@ -1937,22 +1954,22 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *ha, uint16_t *cur_xchg_cnt,
1937 mbx_cmd_t mc; 1954 mbx_cmd_t mc;
1938 mbx_cmd_t *mcp = &mc; 1955 mbx_cmd_t *mcp = &mc;
1939 1956
1940 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 1957 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
1941 1958
1942 mcp->mb[0] = MBC_GET_RESOURCE_COUNTS; 1959 mcp->mb[0] = MBC_GET_RESOURCE_COUNTS;
1943 mcp->out_mb = MBX_0; 1960 mcp->out_mb = MBX_0;
1944 mcp->in_mb = MBX_11|MBX_10|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; 1961 mcp->in_mb = MBX_11|MBX_10|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
1945 mcp->tov = MBX_TOV_SECONDS; 1962 mcp->tov = MBX_TOV_SECONDS;
1946 mcp->flags = 0; 1963 mcp->flags = 0;
1947 rval = qla2x00_mailbox_command(ha, mcp); 1964 rval = qla2x00_mailbox_command(vha, mcp);
1948 1965
1949 if (rval != QLA_SUCCESS) { 1966 if (rval != QLA_SUCCESS) {
1950 /*EMPTY*/ 1967 /*EMPTY*/
1951 DEBUG2_3_11(printk("%s(%ld): failed = %x.\n", __func__, 1968 DEBUG2_3_11(printk("%s(%ld): failed = %x.\n", __func__,
1952 ha->host_no, mcp->mb[0])); 1969 vha->host_no, mcp->mb[0]));
1953 } else { 1970 } else {
1954 DEBUG11(printk("%s(%ld): done. mb1=%x mb2=%x mb3=%x mb6=%x " 1971 DEBUG11(printk("%s(%ld): done. mb1=%x mb2=%x mb3=%x mb6=%x "
1955 "mb7=%x mb10=%x mb11=%x.\n", __func__, ha->host_no, 1972 "mb7=%x mb10=%x mb11=%x.\n", __func__, vha->host_no,
1956 mcp->mb[1], mcp->mb[2], mcp->mb[3], mcp->mb[6], mcp->mb[7], 1973 mcp->mb[1], mcp->mb[2], mcp->mb[3], mcp->mb[6], mcp->mb[7],
1957 mcp->mb[10], mcp->mb[11])); 1974 mcp->mb[10], mcp->mb[11]));
1958 1975
@@ -1964,7 +1981,7 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *ha, uint16_t *cur_xchg_cnt,
1964 *cur_iocb_cnt = mcp->mb[7]; 1981 *cur_iocb_cnt = mcp->mb[7];
1965 if (orig_iocb_cnt) 1982 if (orig_iocb_cnt)
1966 *orig_iocb_cnt = mcp->mb[10]; 1983 *orig_iocb_cnt = mcp->mb[10];
1967 if (ha->flags.npiv_supported && max_npiv_vports) 1984 if (vha->hw->flags.npiv_supported && max_npiv_vports)
1968 *max_npiv_vports = mcp->mb[11]; 1985 *max_npiv_vports = mcp->mb[11];
1969 } 1986 }
1970 1987
@@ -1987,18 +2004,19 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *ha, uint16_t *cur_xchg_cnt,
1987 * Kernel context. 2004 * Kernel context.
1988 */ 2005 */
1989int 2006int
1990qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map) 2007qla2x00_get_fcal_position_map(scsi_qla_host_t *vha, char *pos_map)
1991{ 2008{
1992 int rval; 2009 int rval;
1993 mbx_cmd_t mc; 2010 mbx_cmd_t mc;
1994 mbx_cmd_t *mcp = &mc; 2011 mbx_cmd_t *mcp = &mc;
1995 char *pmap; 2012 char *pmap;
1996 dma_addr_t pmap_dma; 2013 dma_addr_t pmap_dma;
2014 struct qla_hw_data *ha = vha->hw;
1997 2015
1998 pmap = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &pmap_dma); 2016 pmap = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &pmap_dma);
1999 if (pmap == NULL) { 2017 if (pmap == NULL) {
2000 DEBUG2_3_11(printk("%s(%ld): **** Mem Alloc Failed ****", 2018 DEBUG2_3_11(printk("%s(%ld): **** Mem Alloc Failed ****",
2001 __func__, ha->host_no)); 2019 __func__, vha->host_no));
2002 return QLA_MEMORY_ALLOC_FAILED; 2020 return QLA_MEMORY_ALLOC_FAILED;
2003 } 2021 }
2004 memset(pmap, 0, FCAL_MAP_SIZE); 2022 memset(pmap, 0, FCAL_MAP_SIZE);
@@ -2013,11 +2031,11 @@ qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map)
2013 mcp->buf_size = FCAL_MAP_SIZE; 2031 mcp->buf_size = FCAL_MAP_SIZE;
2014 mcp->flags = MBX_DMA_IN; 2032 mcp->flags = MBX_DMA_IN;
2015 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2); 2033 mcp->tov = (ha->login_timeout * 2) + (ha->login_timeout / 2);
2016 rval = qla2x00_mailbox_command(ha, mcp); 2034 rval = qla2x00_mailbox_command(vha, mcp);
2017 2035
2018 if (rval == QLA_SUCCESS) { 2036 if (rval == QLA_SUCCESS) {
2019 DEBUG11(printk("%s(%ld): (mb0=%x/mb1=%x) FC/AL Position Map " 2037 DEBUG11(printk("%s(%ld): (mb0=%x/mb1=%x) FC/AL Position Map "
2020 "size (%x)\n", __func__, ha->host_no, mcp->mb[0], 2038 "size (%x)\n", __func__, vha->host_no, mcp->mb[0],
2021 mcp->mb[1], (unsigned)pmap[0])); 2039 mcp->mb[1], (unsigned)pmap[0]));
2022 DEBUG11(qla2x00_dump_buffer(pmap, pmap[0] + 1)); 2040 DEBUG11(qla2x00_dump_buffer(pmap, pmap[0] + 1));
2023 2041
@@ -2028,9 +2046,9 @@ qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map)
2028 2046
2029 if (rval != QLA_SUCCESS) { 2047 if (rval != QLA_SUCCESS) {
2030 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 2048 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
2031 ha->host_no, rval)); 2049 vha->host_no, rval));
2032 } else { 2050 } else {
2033 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2051 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2034 } 2052 }
2035 2053
2036 return rval; 2054 return rval;
@@ -2051,15 +2069,16 @@ qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map)
2051 * BIT_1 = mailbox error. 2069 * BIT_1 = mailbox error.
2052 */ 2070 */
2053int 2071int
2054qla2x00_get_link_status(scsi_qla_host_t *ha, uint16_t loop_id, 2072qla2x00_get_link_status(scsi_qla_host_t *vha, uint16_t loop_id,
2055 struct link_statistics *stats, dma_addr_t stats_dma) 2073 struct link_statistics *stats, dma_addr_t stats_dma)
2056{ 2074{
2057 int rval; 2075 int rval;
2058 mbx_cmd_t mc; 2076 mbx_cmd_t mc;
2059 mbx_cmd_t *mcp = &mc; 2077 mbx_cmd_t *mcp = &mc;
2060 uint32_t *siter, *diter, dwords; 2078 uint32_t *siter, *diter, dwords;
2079 struct qla_hw_data *ha = vha->hw;
2061 2080
2062 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2081 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2063 2082
2064 mcp->mb[0] = MBC_GET_LINK_STATUS; 2083 mcp->mb[0] = MBC_GET_LINK_STATUS;
2065 mcp->mb[2] = MSW(stats_dma); 2084 mcp->mb[2] = MSW(stats_dma);
@@ -2084,12 +2103,12 @@ qla2x00_get_link_status(scsi_qla_host_t *ha, uint16_t loop_id,
2084 } 2103 }
2085 mcp->tov = MBX_TOV_SECONDS; 2104 mcp->tov = MBX_TOV_SECONDS;
2086 mcp->flags = IOCTL_CMD; 2105 mcp->flags = IOCTL_CMD;
2087 rval = qla2x00_mailbox_command(ha, mcp); 2106 rval = qla2x00_mailbox_command(vha, mcp);
2088 2107
2089 if (rval == QLA_SUCCESS) { 2108 if (rval == QLA_SUCCESS) {
2090 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) { 2109 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) {
2091 DEBUG2_3_11(printk("%s(%ld): cmd failed. mbx0=%x.\n", 2110 DEBUG2_3_11(printk("%s(%ld): cmd failed. mbx0=%x.\n",
2092 __func__, ha->host_no, mcp->mb[0])); 2111 __func__, vha->host_no, mcp->mb[0]));
2093 rval = QLA_FUNCTION_FAILED; 2112 rval = QLA_FUNCTION_FAILED;
2094 } else { 2113 } else {
2095 /* Copy over data -- firmware data is LE. */ 2114 /* Copy over data -- firmware data is LE. */
@@ -2101,14 +2120,14 @@ qla2x00_get_link_status(scsi_qla_host_t *ha, uint16_t loop_id,
2101 } else { 2120 } else {
2102 /* Failed. */ 2121 /* Failed. */
2103 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 2122 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
2104 ha->host_no, rval)); 2123 vha->host_no, rval));
2105 } 2124 }
2106 2125
2107 return rval; 2126 return rval;
2108} 2127}
2109 2128
2110int 2129int
2111qla24xx_get_isp_stats(scsi_qla_host_t *ha, struct link_statistics *stats, 2130qla24xx_get_isp_stats(scsi_qla_host_t *vha, struct link_statistics *stats,
2112 dma_addr_t stats_dma) 2131 dma_addr_t stats_dma)
2113{ 2132{
2114 int rval; 2133 int rval;
@@ -2116,7 +2135,7 @@ qla24xx_get_isp_stats(scsi_qla_host_t *ha, struct link_statistics *stats,
2116 mbx_cmd_t *mcp = &mc; 2135 mbx_cmd_t *mcp = &mc;
2117 uint32_t *siter, *diter, dwords; 2136 uint32_t *siter, *diter, dwords;
2118 2137
2119 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2138 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2120 2139
2121 mcp->mb[0] = MBC_GET_LINK_PRIV_STATS; 2140 mcp->mb[0] = MBC_GET_LINK_PRIV_STATS;
2122 mcp->mb[2] = MSW(stats_dma); 2141 mcp->mb[2] = MSW(stats_dma);
@@ -2124,18 +2143,18 @@ qla24xx_get_isp_stats(scsi_qla_host_t *ha, struct link_statistics *stats,
2124 mcp->mb[6] = MSW(MSD(stats_dma)); 2143 mcp->mb[6] = MSW(MSD(stats_dma));
2125 mcp->mb[7] = LSW(MSD(stats_dma)); 2144 mcp->mb[7] = LSW(MSD(stats_dma));
2126 mcp->mb[8] = sizeof(struct link_statistics) / 4; 2145 mcp->mb[8] = sizeof(struct link_statistics) / 4;
2127 mcp->mb[9] = ha->vp_idx; 2146 mcp->mb[9] = vha->vp_idx;
2128 mcp->mb[10] = 0; 2147 mcp->mb[10] = 0;
2129 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; 2148 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_0;
2130 mcp->in_mb = MBX_2|MBX_1|MBX_0; 2149 mcp->in_mb = MBX_2|MBX_1|MBX_0;
2131 mcp->tov = MBX_TOV_SECONDS; 2150 mcp->tov = MBX_TOV_SECONDS;
2132 mcp->flags = IOCTL_CMD; 2151 mcp->flags = IOCTL_CMD;
2133 rval = qla2x00_mailbox_command(ha, mcp); 2152 rval = qla2x00_mailbox_command(vha, mcp);
2134 2153
2135 if (rval == QLA_SUCCESS) { 2154 if (rval == QLA_SUCCESS) {
2136 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) { 2155 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) {
2137 DEBUG2_3_11(printk("%s(%ld): cmd failed. mbx0=%x.\n", 2156 DEBUG2_3_11(printk("%s(%ld): cmd failed. mbx0=%x.\n",
2138 __func__, ha->host_no, mcp->mb[0])); 2157 __func__, vha->host_no, mcp->mb[0]));
2139 rval = QLA_FUNCTION_FAILED; 2158 rval = QLA_FUNCTION_FAILED;
2140 } else { 2159 } else {
2141 /* Copy over data -- firmware data is LE. */ 2160 /* Copy over data -- firmware data is LE. */
@@ -2147,14 +2166,14 @@ qla24xx_get_isp_stats(scsi_qla_host_t *ha, struct link_statistics *stats,
2147 } else { 2166 } else {
2148 /* Failed. */ 2167 /* Failed. */
2149 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 2168 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
2150 ha->host_no, rval)); 2169 vha->host_no, rval));
2151 } 2170 }
2152 2171
2153 return rval; 2172 return rval;
2154} 2173}
2155 2174
2156int 2175int
2157qla24xx_abort_command(scsi_qla_host_t *ha, srb_t *sp) 2176qla24xx_abort_command(scsi_qla_host_t *vha, srb_t *sp)
2158{ 2177{
2159 int rval; 2178 int rval;
2160 fc_port_t *fcport; 2179 fc_port_t *fcport;
@@ -2163,18 +2182,19 @@ qla24xx_abort_command(scsi_qla_host_t *ha, srb_t *sp)
2163 struct abort_entry_24xx *abt; 2182 struct abort_entry_24xx *abt;
2164 dma_addr_t abt_dma; 2183 dma_addr_t abt_dma;
2165 uint32_t handle; 2184 uint32_t handle;
2166 scsi_qla_host_t *pha = to_qla_parent(ha); 2185 struct qla_hw_data *ha = vha->hw;
2186 struct req_que *req = ha->req;
2167 2187
2168 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2188 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2169 2189
2170 fcport = sp->fcport; 2190 fcport = sp->fcport;
2171 2191
2172 spin_lock_irqsave(&pha->hardware_lock, flags); 2192 spin_lock_irqsave(&ha->hardware_lock, flags);
2173 for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) { 2193 for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) {
2174 if (pha->outstanding_cmds[handle] == sp) 2194 if (req->outstanding_cmds[handle] == sp)
2175 break; 2195 break;
2176 } 2196 }
2177 spin_unlock_irqrestore(&pha->hardware_lock, flags); 2197 spin_unlock_irqrestore(&ha->hardware_lock, flags);
2178 if (handle == MAX_OUTSTANDING_COMMANDS) { 2198 if (handle == MAX_OUTSTANDING_COMMANDS) {
2179 /* Command not found. */ 2199 /* Command not found. */
2180 return QLA_FUNCTION_FAILED; 2200 return QLA_FUNCTION_FAILED;
@@ -2183,7 +2203,7 @@ qla24xx_abort_command(scsi_qla_host_t *ha, srb_t *sp)
2183 abt = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &abt_dma); 2203 abt = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &abt_dma);
2184 if (abt == NULL) { 2204 if (abt == NULL) {
2185 DEBUG2_3(printk("%s(%ld): failed to allocate Abort IOCB.\n", 2205 DEBUG2_3(printk("%s(%ld): failed to allocate Abort IOCB.\n",
2186 __func__, ha->host_no)); 2206 __func__, vha->host_no));
2187 return QLA_MEMORY_ALLOC_FAILED; 2207 return QLA_MEMORY_ALLOC_FAILED;
2188 } 2208 }
2189 memset(abt, 0, sizeof(struct abort_entry_24xx)); 2209 memset(abt, 0, sizeof(struct abort_entry_24xx));
@@ -2196,22 +2216,22 @@ qla24xx_abort_command(scsi_qla_host_t *ha, srb_t *sp)
2196 abt->port_id[1] = fcport->d_id.b.area; 2216 abt->port_id[1] = fcport->d_id.b.area;
2197 abt->port_id[2] = fcport->d_id.b.domain; 2217 abt->port_id[2] = fcport->d_id.b.domain;
2198 abt->vp_index = fcport->vp_idx; 2218 abt->vp_index = fcport->vp_idx;
2199 rval = qla2x00_issue_iocb(ha, abt, abt_dma, 0); 2219 rval = qla2x00_issue_iocb(vha, abt, abt_dma, 0);
2200 if (rval != QLA_SUCCESS) { 2220 if (rval != QLA_SUCCESS) {
2201 DEBUG2_3_11(printk("%s(%ld): failed to issue IOCB (%x).\n", 2221 DEBUG2_3_11(printk("%s(%ld): failed to issue IOCB (%x).\n",
2202 __func__, ha->host_no, rval)); 2222 __func__, vha->host_no, rval));
2203 } else if (abt->entry_status != 0) { 2223 } else if (abt->entry_status != 0) {
2204 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2224 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2205 "-- error status (%x).\n", __func__, ha->host_no, 2225 "-- error status (%x).\n", __func__, vha->host_no,
2206 abt->entry_status)); 2226 abt->entry_status));
2207 rval = QLA_FUNCTION_FAILED; 2227 rval = QLA_FUNCTION_FAILED;
2208 } else if (abt->nport_handle != __constant_cpu_to_le16(0)) { 2228 } else if (abt->nport_handle != __constant_cpu_to_le16(0)) {
2209 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2229 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2210 "-- completion status (%x).\n", __func__, ha->host_no, 2230 "-- completion status (%x).\n", __func__, vha->host_no,
2211 le16_to_cpu(abt->nport_handle))); 2231 le16_to_cpu(abt->nport_handle)));
2212 rval = QLA_FUNCTION_FAILED; 2232 rval = QLA_FUNCTION_FAILED;
2213 } else { 2233 } else {
2214 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2234 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2215 } 2235 }
2216 2236
2217 dma_pool_free(ha->s_dma_pool, abt, abt_dma); 2237 dma_pool_free(ha->s_dma_pool, abt, abt_dma);
@@ -2233,16 +2253,17 @@ __qla24xx_issue_tmf(char *name, uint32_t type, struct fc_port *fcport,
2233 int rval, rval2; 2253 int rval, rval2;
2234 struct tsk_mgmt_cmd *tsk; 2254 struct tsk_mgmt_cmd *tsk;
2235 dma_addr_t tsk_dma; 2255 dma_addr_t tsk_dma;
2236 scsi_qla_host_t *ha, *pha; 2256 scsi_qla_host_t *vha;
2257 struct qla_hw_data *ha;
2237 2258
2238 DEBUG11(printk("%s(%ld): entered.\n", __func__, fcport->ha->host_no)); 2259 DEBUG11(printk("%s(%ld): entered.\n", __func__, fcport->ha->host_no));
2239 2260
2240 ha = fcport->ha; 2261 vha = fcport->vha;
2241 pha = to_qla_parent(ha); 2262 ha = vha->hw;
2242 tsk = dma_pool_alloc(pha->s_dma_pool, GFP_KERNEL, &tsk_dma); 2263 tsk = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &tsk_dma);
2243 if (tsk == NULL) { 2264 if (tsk == NULL) {
2244 DEBUG2_3(printk("%s(%ld): failed to allocate Task Management " 2265 DEBUG2_3(printk("%s(%ld): failed to allocate Task Management "
2245 "IOCB.\n", __func__, ha->host_no)); 2266 "IOCB.\n", __func__, vha->host_no));
2246 return QLA_MEMORY_ALLOC_FAILED; 2267 return QLA_MEMORY_ALLOC_FAILED;
2247 } 2268 }
2248 memset(tsk, 0, sizeof(struct tsk_mgmt_cmd)); 2269 memset(tsk, 0, sizeof(struct tsk_mgmt_cmd));
@@ -2262,34 +2283,34 @@ __qla24xx_issue_tmf(char *name, uint32_t type, struct fc_port *fcport,
2262 sizeof(tsk->p.tsk.lun)); 2283 sizeof(tsk->p.tsk.lun));
2263 } 2284 }
2264 2285
2265 rval = qla2x00_issue_iocb(ha, tsk, tsk_dma, 0); 2286 rval = qla2x00_issue_iocb(vha, tsk, tsk_dma, 0);
2266 if (rval != QLA_SUCCESS) { 2287 if (rval != QLA_SUCCESS) {
2267 DEBUG2_3_11(printk("%s(%ld): failed to issue %s Reset IOCB " 2288 DEBUG2_3_11(printk("%s(%ld): failed to issue %s Reset IOCB "
2268 "(%x).\n", __func__, ha->host_no, name, rval)); 2289 "(%x).\n", __func__, vha->host_no, name, rval));
2269 } else if (tsk->p.sts.entry_status != 0) { 2290 } else if (tsk->p.sts.entry_status != 0) {
2270 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2291 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2271 "-- error status (%x).\n", __func__, ha->host_no, 2292 "-- error status (%x).\n", __func__, vha->host_no,
2272 tsk->p.sts.entry_status)); 2293 tsk->p.sts.entry_status));
2273 rval = QLA_FUNCTION_FAILED; 2294 rval = QLA_FUNCTION_FAILED;
2274 } else if (tsk->p.sts.comp_status != 2295 } else if (tsk->p.sts.comp_status !=
2275 __constant_cpu_to_le16(CS_COMPLETE)) { 2296 __constant_cpu_to_le16(CS_COMPLETE)) {
2276 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2297 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2277 "-- completion status (%x).\n", __func__, 2298 "-- completion status (%x).\n", __func__,
2278 ha->host_no, le16_to_cpu(tsk->p.sts.comp_status))); 2299 vha->host_no, le16_to_cpu(tsk->p.sts.comp_status)));
2279 rval = QLA_FUNCTION_FAILED; 2300 rval = QLA_FUNCTION_FAILED;
2280 } 2301 }
2281 2302
2282 /* Issue marker IOCB. */ 2303 /* Issue marker IOCB. */
2283 rval2 = qla2x00_marker(ha, fcport->loop_id, l, 2304 rval2 = qla2x00_marker(vha, fcport->loop_id, l,
2284 type == TCF_LUN_RESET ? MK_SYNC_ID_LUN: MK_SYNC_ID); 2305 type == TCF_LUN_RESET ? MK_SYNC_ID_LUN: MK_SYNC_ID);
2285 if (rval2 != QLA_SUCCESS) { 2306 if (rval2 != QLA_SUCCESS) {
2286 DEBUG2_3_11(printk("%s(%ld): failed to issue Marker IOCB " 2307 DEBUG2_3_11(printk("%s(%ld): failed to issue Marker IOCB "
2287 "(%x).\n", __func__, ha->host_no, rval2)); 2308 "(%x).\n", __func__, vha->host_no, rval2));
2288 } else { 2309 } else {
2289 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2310 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2290 } 2311 }
2291 2312
2292 dma_pool_free(pha->s_dma_pool, tsk, tsk_dma); 2313 dma_pool_free(ha->s_dma_pool, tsk, tsk_dma);
2293 2314
2294 return rval; 2315 return rval;
2295} 2316}
@@ -2307,29 +2328,30 @@ qla24xx_lun_reset(struct fc_port *fcport, unsigned int l)
2307} 2328}
2308 2329
2309int 2330int
2310qla2x00_system_error(scsi_qla_host_t *ha) 2331qla2x00_system_error(scsi_qla_host_t *vha)
2311{ 2332{
2312 int rval; 2333 int rval;
2313 mbx_cmd_t mc; 2334 mbx_cmd_t mc;
2314 mbx_cmd_t *mcp = &mc; 2335 mbx_cmd_t *mcp = &mc;
2336 struct qla_hw_data *ha = vha->hw;
2315 2337
2316 if (!IS_QLA23XX(ha) && !IS_FWI2_CAPABLE(ha)) 2338 if (!IS_QLA23XX(ha) && !IS_FWI2_CAPABLE(ha))
2317 return QLA_FUNCTION_FAILED; 2339 return QLA_FUNCTION_FAILED;
2318 2340
2319 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2341 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2320 2342
2321 mcp->mb[0] = MBC_GEN_SYSTEM_ERROR; 2343 mcp->mb[0] = MBC_GEN_SYSTEM_ERROR;
2322 mcp->out_mb = MBX_0; 2344 mcp->out_mb = MBX_0;
2323 mcp->in_mb = MBX_0; 2345 mcp->in_mb = MBX_0;
2324 mcp->tov = 5; 2346 mcp->tov = 5;
2325 mcp->flags = 0; 2347 mcp->flags = 0;
2326 rval = qla2x00_mailbox_command(ha, mcp); 2348 rval = qla2x00_mailbox_command(vha, mcp);
2327 2349
2328 if (rval != QLA_SUCCESS) { 2350 if (rval != QLA_SUCCESS) {
2329 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 2351 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
2330 ha->host_no, rval)); 2352 vha->host_no, rval));
2331 } else { 2353 } else {
2332 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2354 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2333 } 2355 }
2334 2356
2335 return rval; 2357 return rval;
@@ -2342,14 +2364,14 @@ qla2x00_system_error(scsi_qla_host_t *ha)
2342 * Returns 2364 * Returns
2343 */ 2365 */
2344int 2366int
2345qla2x00_set_serdes_params(scsi_qla_host_t *ha, uint16_t sw_em_1g, 2367qla2x00_set_serdes_params(scsi_qla_host_t *vha, uint16_t sw_em_1g,
2346 uint16_t sw_em_2g, uint16_t sw_em_4g) 2368 uint16_t sw_em_2g, uint16_t sw_em_4g)
2347{ 2369{
2348 int rval; 2370 int rval;
2349 mbx_cmd_t mc; 2371 mbx_cmd_t mc;
2350 mbx_cmd_t *mcp = &mc; 2372 mbx_cmd_t *mcp = &mc;
2351 2373
2352 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2374 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2353 2375
2354 mcp->mb[0] = MBC_SERDES_PARAMS; 2376 mcp->mb[0] = MBC_SERDES_PARAMS;
2355 mcp->mb[1] = BIT_0; 2377 mcp->mb[1] = BIT_0;
@@ -2360,61 +2382,61 @@ qla2x00_set_serdes_params(scsi_qla_host_t *ha, uint16_t sw_em_1g,
2360 mcp->in_mb = MBX_0; 2382 mcp->in_mb = MBX_0;
2361 mcp->tov = MBX_TOV_SECONDS; 2383 mcp->tov = MBX_TOV_SECONDS;
2362 mcp->flags = 0; 2384 mcp->flags = 0;
2363 rval = qla2x00_mailbox_command(ha, mcp); 2385 rval = qla2x00_mailbox_command(vha, mcp);
2364 2386
2365 if (rval != QLA_SUCCESS) { 2387 if (rval != QLA_SUCCESS) {
2366 /*EMPTY*/ 2388 /*EMPTY*/
2367 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x).\n", __func__, 2389 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x).\n", __func__,
2368 ha->host_no, rval, mcp->mb[0])); 2390 vha->host_no, rval, mcp->mb[0]));
2369 } else { 2391 } else {
2370 /*EMPTY*/ 2392 /*EMPTY*/
2371 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2393 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2372 } 2394 }
2373 2395
2374 return rval; 2396 return rval;
2375} 2397}
2376 2398
2377int 2399int
2378qla2x00_stop_firmware(scsi_qla_host_t *ha) 2400qla2x00_stop_firmware(scsi_qla_host_t *vha)
2379{ 2401{
2380 int rval; 2402 int rval;
2381 mbx_cmd_t mc; 2403 mbx_cmd_t mc;
2382 mbx_cmd_t *mcp = &mc; 2404 mbx_cmd_t *mcp = &mc;
2383 2405
2384 if (!IS_FWI2_CAPABLE(ha)) 2406 if (!IS_FWI2_CAPABLE(vha->hw))
2385 return QLA_FUNCTION_FAILED; 2407 return QLA_FUNCTION_FAILED;
2386 2408
2387 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2409 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2388 2410
2389 mcp->mb[0] = MBC_STOP_FIRMWARE; 2411 mcp->mb[0] = MBC_STOP_FIRMWARE;
2390 mcp->out_mb = MBX_0; 2412 mcp->out_mb = MBX_0;
2391 mcp->in_mb = MBX_0; 2413 mcp->in_mb = MBX_0;
2392 mcp->tov = 5; 2414 mcp->tov = 5;
2393 mcp->flags = 0; 2415 mcp->flags = 0;
2394 rval = qla2x00_mailbox_command(ha, mcp); 2416 rval = qla2x00_mailbox_command(vha, mcp);
2395 2417
2396 if (rval != QLA_SUCCESS) { 2418 if (rval != QLA_SUCCESS) {
2397 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 2419 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
2398 ha->host_no, rval)); 2420 vha->host_no, rval));
2399 } else { 2421 } else {
2400 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2422 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2401 } 2423 }
2402 2424
2403 return rval; 2425 return rval;
2404} 2426}
2405 2427
2406int 2428int
2407qla2x00_enable_eft_trace(scsi_qla_host_t *ha, dma_addr_t eft_dma, 2429qla2x00_enable_eft_trace(scsi_qla_host_t *vha, dma_addr_t eft_dma,
2408 uint16_t buffers) 2430 uint16_t buffers)
2409{ 2431{
2410 int rval; 2432 int rval;
2411 mbx_cmd_t mc; 2433 mbx_cmd_t mc;
2412 mbx_cmd_t *mcp = &mc; 2434 mbx_cmd_t *mcp = &mc;
2413 2435
2414 if (!IS_FWI2_CAPABLE(ha)) 2436 if (!IS_FWI2_CAPABLE(vha->hw))
2415 return QLA_FUNCTION_FAILED; 2437 return QLA_FUNCTION_FAILED;
2416 2438
2417 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2439 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2418 2440
2419 mcp->mb[0] = MBC_TRACE_CONTROL; 2441 mcp->mb[0] = MBC_TRACE_CONTROL;
2420 mcp->mb[1] = TC_EFT_ENABLE; 2442 mcp->mb[1] = TC_EFT_ENABLE;
@@ -2428,28 +2450,28 @@ qla2x00_enable_eft_trace(scsi_qla_host_t *ha, dma_addr_t eft_dma,
2428 mcp->in_mb = MBX_1|MBX_0; 2450 mcp->in_mb = MBX_1|MBX_0;
2429 mcp->tov = MBX_TOV_SECONDS; 2451 mcp->tov = MBX_TOV_SECONDS;
2430 mcp->flags = 0; 2452 mcp->flags = 0;
2431 rval = qla2x00_mailbox_command(ha, mcp); 2453 rval = qla2x00_mailbox_command(vha, mcp);
2432 if (rval != QLA_SUCCESS) { 2454 if (rval != QLA_SUCCESS) {
2433 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n", 2455 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n",
2434 __func__, ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 2456 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
2435 } else { 2457 } else {
2436 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2458 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2437 } 2459 }
2438 2460
2439 return rval; 2461 return rval;
2440} 2462}
2441 2463
2442int 2464int
2443qla2x00_disable_eft_trace(scsi_qla_host_t *ha) 2465qla2x00_disable_eft_trace(scsi_qla_host_t *vha)
2444{ 2466{
2445 int rval; 2467 int rval;
2446 mbx_cmd_t mc; 2468 mbx_cmd_t mc;
2447 mbx_cmd_t *mcp = &mc; 2469 mbx_cmd_t *mcp = &mc;
2448 2470
2449 if (!IS_FWI2_CAPABLE(ha)) 2471 if (!IS_FWI2_CAPABLE(vha->hw))
2450 return QLA_FUNCTION_FAILED; 2472 return QLA_FUNCTION_FAILED;
2451 2473
2452 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2474 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2453 2475
2454 mcp->mb[0] = MBC_TRACE_CONTROL; 2476 mcp->mb[0] = MBC_TRACE_CONTROL;
2455 mcp->mb[1] = TC_EFT_DISABLE; 2477 mcp->mb[1] = TC_EFT_DISABLE;
@@ -2457,29 +2479,29 @@ qla2x00_disable_eft_trace(scsi_qla_host_t *ha)
2457 mcp->in_mb = MBX_1|MBX_0; 2479 mcp->in_mb = MBX_1|MBX_0;
2458 mcp->tov = MBX_TOV_SECONDS; 2480 mcp->tov = MBX_TOV_SECONDS;
2459 mcp->flags = 0; 2481 mcp->flags = 0;
2460 rval = qla2x00_mailbox_command(ha, mcp); 2482 rval = qla2x00_mailbox_command(vha, mcp);
2461 if (rval != QLA_SUCCESS) { 2483 if (rval != QLA_SUCCESS) {
2462 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n", 2484 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n",
2463 __func__, ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 2485 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
2464 } else { 2486 } else {
2465 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2487 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2466 } 2488 }
2467 2489
2468 return rval; 2490 return rval;
2469} 2491}
2470 2492
2471int 2493int
2472qla2x00_enable_fce_trace(scsi_qla_host_t *ha, dma_addr_t fce_dma, 2494qla2x00_enable_fce_trace(scsi_qla_host_t *vha, dma_addr_t fce_dma,
2473 uint16_t buffers, uint16_t *mb, uint32_t *dwords) 2495 uint16_t buffers, uint16_t *mb, uint32_t *dwords)
2474{ 2496{
2475 int rval; 2497 int rval;
2476 mbx_cmd_t mc; 2498 mbx_cmd_t mc;
2477 mbx_cmd_t *mcp = &mc; 2499 mbx_cmd_t *mcp = &mc;
2478 2500
2479 if (!IS_QLA25XX(ha)) 2501 if (!IS_QLA25XX(vha->hw))
2480 return QLA_FUNCTION_FAILED; 2502 return QLA_FUNCTION_FAILED;
2481 2503
2482 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2504 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2483 2505
2484 mcp->mb[0] = MBC_TRACE_CONTROL; 2506 mcp->mb[0] = MBC_TRACE_CONTROL;
2485 mcp->mb[1] = TC_FCE_ENABLE; 2507 mcp->mb[1] = TC_FCE_ENABLE;
@@ -2497,12 +2519,12 @@ qla2x00_enable_fce_trace(scsi_qla_host_t *ha, dma_addr_t fce_dma,
2497 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; 2519 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
2498 mcp->tov = MBX_TOV_SECONDS; 2520 mcp->tov = MBX_TOV_SECONDS;
2499 mcp->flags = 0; 2521 mcp->flags = 0;
2500 rval = qla2x00_mailbox_command(ha, mcp); 2522 rval = qla2x00_mailbox_command(vha, mcp);
2501 if (rval != QLA_SUCCESS) { 2523 if (rval != QLA_SUCCESS) {
2502 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n", 2524 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n",
2503 __func__, ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 2525 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
2504 } else { 2526 } else {
2505 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2527 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2506 2528
2507 if (mb) 2529 if (mb)
2508 memcpy(mb, mcp->mb, 8 * sizeof(*mb)); 2530 memcpy(mb, mcp->mb, 8 * sizeof(*mb));
@@ -2514,16 +2536,16 @@ qla2x00_enable_fce_trace(scsi_qla_host_t *ha, dma_addr_t fce_dma,
2514} 2536}
2515 2537
2516int 2538int
2517qla2x00_disable_fce_trace(scsi_qla_host_t *ha, uint64_t *wr, uint64_t *rd) 2539qla2x00_disable_fce_trace(scsi_qla_host_t *vha, uint64_t *wr, uint64_t *rd)
2518{ 2540{
2519 int rval; 2541 int rval;
2520 mbx_cmd_t mc; 2542 mbx_cmd_t mc;
2521 mbx_cmd_t *mcp = &mc; 2543 mbx_cmd_t *mcp = &mc;
2522 2544
2523 if (!IS_FWI2_CAPABLE(ha)) 2545 if (!IS_FWI2_CAPABLE(vha->hw))
2524 return QLA_FUNCTION_FAILED; 2546 return QLA_FUNCTION_FAILED;
2525 2547
2526 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2548 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2527 2549
2528 mcp->mb[0] = MBC_TRACE_CONTROL; 2550 mcp->mb[0] = MBC_TRACE_CONTROL;
2529 mcp->mb[1] = TC_FCE_DISABLE; 2551 mcp->mb[1] = TC_FCE_DISABLE;
@@ -2533,12 +2555,12 @@ qla2x00_disable_fce_trace(scsi_qla_host_t *ha, uint64_t *wr, uint64_t *rd)
2533 MBX_1|MBX_0; 2555 MBX_1|MBX_0;
2534 mcp->tov = MBX_TOV_SECONDS; 2556 mcp->tov = MBX_TOV_SECONDS;
2535 mcp->flags = 0; 2557 mcp->flags = 0;
2536 rval = qla2x00_mailbox_command(ha, mcp); 2558 rval = qla2x00_mailbox_command(vha, mcp);
2537 if (rval != QLA_SUCCESS) { 2559 if (rval != QLA_SUCCESS) {
2538 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n", 2560 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n",
2539 __func__, ha->host_no, rval, mcp->mb[0], mcp->mb[1])); 2561 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
2540 } else { 2562 } else {
2541 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2563 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2542 2564
2543 if (wr) 2565 if (wr)
2544 *wr = (uint64_t) mcp->mb[5] << 48 | 2566 *wr = (uint64_t) mcp->mb[5] << 48 |
@@ -2556,17 +2578,17 @@ qla2x00_disable_fce_trace(scsi_qla_host_t *ha, uint64_t *wr, uint64_t *rd)
2556} 2578}
2557 2579
2558int 2580int
2559qla2x00_read_sfp(scsi_qla_host_t *ha, dma_addr_t sfp_dma, uint16_t addr, 2581qla2x00_read_sfp(scsi_qla_host_t *vha, dma_addr_t sfp_dma, uint16_t addr,
2560 uint16_t off, uint16_t count) 2582 uint16_t off, uint16_t count)
2561{ 2583{
2562 int rval; 2584 int rval;
2563 mbx_cmd_t mc; 2585 mbx_cmd_t mc;
2564 mbx_cmd_t *mcp = &mc; 2586 mbx_cmd_t *mcp = &mc;
2565 2587
2566 if (!IS_FWI2_CAPABLE(ha)) 2588 if (!IS_FWI2_CAPABLE(vha->hw))
2567 return QLA_FUNCTION_FAILED; 2589 return QLA_FUNCTION_FAILED;
2568 2590
2569 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2591 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2570 2592
2571 mcp->mb[0] = MBC_READ_SFP; 2593 mcp->mb[0] = MBC_READ_SFP;
2572 mcp->mb[1] = addr; 2594 mcp->mb[1] = addr;
@@ -2581,30 +2603,30 @@ qla2x00_read_sfp(scsi_qla_host_t *ha, dma_addr_t sfp_dma, uint16_t addr,
2581 mcp->in_mb = MBX_0; 2603 mcp->in_mb = MBX_0;
2582 mcp->tov = MBX_TOV_SECONDS; 2604 mcp->tov = MBX_TOV_SECONDS;
2583 mcp->flags = 0; 2605 mcp->flags = 0;
2584 rval = qla2x00_mailbox_command(ha, mcp); 2606 rval = qla2x00_mailbox_command(vha, mcp);
2585 2607
2586 if (rval != QLA_SUCCESS) { 2608 if (rval != QLA_SUCCESS) {
2587 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x).\n", __func__, 2609 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x).\n", __func__,
2588 ha->host_no, rval, mcp->mb[0])); 2610 vha->host_no, rval, mcp->mb[0]));
2589 } else { 2611 } else {
2590 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2612 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2591 } 2613 }
2592 2614
2593 return rval; 2615 return rval;
2594} 2616}
2595 2617
2596int 2618int
2597qla2x00_set_idma_speed(scsi_qla_host_t *ha, uint16_t loop_id, 2619qla2x00_set_idma_speed(scsi_qla_host_t *vha, uint16_t loop_id,
2598 uint16_t port_speed, uint16_t *mb) 2620 uint16_t port_speed, uint16_t *mb)
2599{ 2621{
2600 int rval; 2622 int rval;
2601 mbx_cmd_t mc; 2623 mbx_cmd_t mc;
2602 mbx_cmd_t *mcp = &mc; 2624 mbx_cmd_t *mcp = &mc;
2603 2625
2604 if (!IS_IIDMA_CAPABLE(ha)) 2626 if (!IS_IIDMA_CAPABLE(vha->hw))
2605 return QLA_FUNCTION_FAILED; 2627 return QLA_FUNCTION_FAILED;
2606 2628
2607 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2629 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2608 2630
2609 mcp->mb[0] = MBC_PORT_PARAMS; 2631 mcp->mb[0] = MBC_PORT_PARAMS;
2610 mcp->mb[1] = loop_id; 2632 mcp->mb[1] = loop_id;
@@ -2615,7 +2637,7 @@ qla2x00_set_idma_speed(scsi_qla_host_t *ha, uint16_t loop_id,
2615 mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_1|MBX_0; 2637 mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_1|MBX_0;
2616 mcp->tov = MBX_TOV_SECONDS; 2638 mcp->tov = MBX_TOV_SECONDS;
2617 mcp->flags = 0; 2639 mcp->flags = 0;
2618 rval = qla2x00_mailbox_command(ha, mcp); 2640 rval = qla2x00_mailbox_command(vha, mcp);
2619 2641
2620 /* Return mailbox statuses. */ 2642 /* Return mailbox statuses. */
2621 if (mb != NULL) { 2643 if (mb != NULL) {
@@ -2628,28 +2650,29 @@ qla2x00_set_idma_speed(scsi_qla_host_t *ha, uint16_t loop_id,
2628 2650
2629 if (rval != QLA_SUCCESS) { 2651 if (rval != QLA_SUCCESS) {
2630 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__, 2652 DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
2631 ha->host_no, rval)); 2653 vha->host_no, rval));
2632 } else { 2654 } else {
2633 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2655 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2634 } 2656 }
2635 2657
2636 return rval; 2658 return rval;
2637} 2659}
2638 2660
2639void 2661void
2640qla24xx_report_id_acquisition(scsi_qla_host_t *ha, 2662qla24xx_report_id_acquisition(scsi_qla_host_t *vha,
2641 struct vp_rpt_id_entry_24xx *rptid_entry) 2663 struct vp_rpt_id_entry_24xx *rptid_entry)
2642{ 2664{
2643 uint8_t vp_idx; 2665 uint8_t vp_idx;
2644 uint16_t stat = le16_to_cpu(rptid_entry->vp_idx); 2666 uint16_t stat = le16_to_cpu(rptid_entry->vp_idx);
2645 scsi_qla_host_t *vha; 2667 struct qla_hw_data *ha = vha->hw;
2668 scsi_qla_host_t *vp;
2646 2669
2647 if (rptid_entry->entry_status != 0) 2670 if (rptid_entry->entry_status != 0)
2648 return; 2671 return;
2649 2672
2650 if (rptid_entry->format == 0) { 2673 if (rptid_entry->format == 0) {
2651 DEBUG15(printk("%s:format 0 : scsi(%ld) number of VPs setup %d," 2674 DEBUG15(printk("%s:format 0 : scsi(%ld) number of VPs setup %d,"
2652 " number of VPs acquired %d\n", __func__, ha->host_no, 2675 " number of VPs acquired %d\n", __func__, vha->host_no,
2653 MSB(rptid_entry->vp_count), LSB(rptid_entry->vp_count))); 2676 MSB(rptid_entry->vp_count), LSB(rptid_entry->vp_count)));
2654 DEBUG15(printk("%s primary port id %02x%02x%02x\n", __func__, 2677 DEBUG15(printk("%s primary port id %02x%02x%02x\n", __func__,
2655 rptid_entry->port_id[2], rptid_entry->port_id[1], 2678 rptid_entry->port_id[2], rptid_entry->port_id[1],
@@ -2658,7 +2681,7 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *ha,
2658 vp_idx = LSB(stat); 2681 vp_idx = LSB(stat);
2659 DEBUG15(printk("%s:format 1: scsi(%ld): VP[%d] enabled " 2682 DEBUG15(printk("%s:format 1: scsi(%ld): VP[%d] enabled "
2660 "- status %d - " 2683 "- status %d - "
2661 "with port id %02x%02x%02x\n",__func__,ha->host_no, 2684 "with port id %02x%02x%02x\n", __func__, vha->host_no,
2662 vp_idx, MSB(stat), 2685 vp_idx, MSB(stat),
2663 rptid_entry->port_id[2], rptid_entry->port_id[1], 2686 rptid_entry->port_id[2], rptid_entry->port_id[1],
2664 rptid_entry->port_id[0])); 2687 rptid_entry->port_id[0]));
@@ -2668,25 +2691,24 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *ha,
2668 if (MSB(stat) == 1) 2691 if (MSB(stat) == 1)
2669 return; 2692 return;
2670 2693
2671 list_for_each_entry(vha, &ha->vp_list, vp_list) 2694 list_for_each_entry(vp, &ha->vp_list, list)
2672 if (vp_idx == vha->vp_idx) 2695 if (vp_idx == vp->vp_idx)
2673 break; 2696 break;
2674 2697 if (!vp)
2675 if (!vha)
2676 return; 2698 return;
2677 2699
2678 vha->d_id.b.domain = rptid_entry->port_id[2]; 2700 vp->d_id.b.domain = rptid_entry->port_id[2];
2679 vha->d_id.b.area = rptid_entry->port_id[1]; 2701 vp->d_id.b.area = rptid_entry->port_id[1];
2680 vha->d_id.b.al_pa = rptid_entry->port_id[0]; 2702 vp->d_id.b.al_pa = rptid_entry->port_id[0];
2681 2703
2682 /* 2704 /*
2683 * Cannot configure here as we are still sitting on the 2705 * Cannot configure here as we are still sitting on the
2684 * response queue. Handle it in dpc context. 2706 * response queue. Handle it in dpc context.
2685 */ 2707 */
2686 set_bit(VP_IDX_ACQUIRED, &vha->vp_flags); 2708 set_bit(VP_IDX_ACQUIRED, &vp->vp_flags);
2687 set_bit(VP_DPC_NEEDED, &ha->dpc_flags); 2709 set_bit(VP_DPC_NEEDED, &vha->dpc_flags);
2688 2710
2689 qla2xxx_wake_dpc(ha); 2711 qla2xxx_wake_dpc(vha);
2690 } 2712 }
2691} 2713}
2692 2714
@@ -2709,15 +2731,15 @@ qla24xx_modify_vp_config(scsi_qla_host_t *vha)
2709 int rval; 2731 int rval;
2710 struct vp_config_entry_24xx *vpmod; 2732 struct vp_config_entry_24xx *vpmod;
2711 dma_addr_t vpmod_dma; 2733 dma_addr_t vpmod_dma;
2712 scsi_qla_host_t *pha; 2734 struct qla_hw_data *ha = vha->hw;
2735 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
2713 2736
2714 /* This can be called by the parent */ 2737 /* This can be called by the parent */
2715 pha = to_qla_parent(vha);
2716 2738
2717 vpmod = dma_pool_alloc(pha->s_dma_pool, GFP_KERNEL, &vpmod_dma); 2739 vpmod = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &vpmod_dma);
2718 if (!vpmod) { 2740 if (!vpmod) {
2719 DEBUG2_3(printk("%s(%ld): failed to allocate Modify VP " 2741 DEBUG2_3(printk("%s(%ld): failed to allocate Modify VP "
2720 "IOCB.\n", __func__, pha->host_no)); 2742 "IOCB.\n", __func__, vha->host_no));
2721 return QLA_MEMORY_ALLOC_FAILED; 2743 return QLA_MEMORY_ALLOC_FAILED;
2722 } 2744 }
2723 2745
@@ -2732,26 +2754,27 @@ qla24xx_modify_vp_config(scsi_qla_host_t *vha)
2732 memcpy(vpmod->port_name_idx1, vha->port_name, WWN_SIZE); 2754 memcpy(vpmod->port_name_idx1, vha->port_name, WWN_SIZE);
2733 vpmod->entry_count = 1; 2755 vpmod->entry_count = 1;
2734 2756
2735 rval = qla2x00_issue_iocb(pha, vpmod, vpmod_dma, 0); 2757 rval = qla2x00_issue_iocb(base_vha, vpmod, vpmod_dma, 0);
2736 if (rval != QLA_SUCCESS) { 2758 if (rval != QLA_SUCCESS) {
2737 DEBUG2_3_11(printk("%s(%ld): failed to issue VP config IOCB" 2759 DEBUG2_3_11(printk("%s(%ld): failed to issue VP config IOCB"
2738 "(%x).\n", __func__, pha->host_no, rval)); 2760 "(%x).\n", __func__, base_vha->host_no, rval));
2739 } else if (vpmod->comp_status != 0) { 2761 } else if (vpmod->comp_status != 0) {
2740 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2762 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2741 "-- error status (%x).\n", __func__, pha->host_no, 2763 "-- error status (%x).\n", __func__, base_vha->host_no,
2742 vpmod->comp_status)); 2764 vpmod->comp_status));
2743 rval = QLA_FUNCTION_FAILED; 2765 rval = QLA_FUNCTION_FAILED;
2744 } else if (vpmod->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) { 2766 } else if (vpmod->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) {
2745 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2767 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2746 "-- completion status (%x).\n", __func__, pha->host_no, 2768 "-- completion status (%x).\n", __func__, base_vha->host_no,
2747 le16_to_cpu(vpmod->comp_status))); 2769 le16_to_cpu(vpmod->comp_status)));
2748 rval = QLA_FUNCTION_FAILED; 2770 rval = QLA_FUNCTION_FAILED;
2749 } else { 2771 } else {
2750 /* EMPTY */ 2772 /* EMPTY */
2751 DEBUG11(printk("%s(%ld): done.\n", __func__, pha->host_no)); 2773 DEBUG11(printk("%s(%ld): done.\n", __func__,
2774 base_vha->host_no));
2752 fc_vport_set_state(vha->fc_vport, FC_VPORT_INITIALIZING); 2775 fc_vport_set_state(vha->fc_vport, FC_VPORT_INITIALIZING);
2753 } 2776 }
2754 dma_pool_free(pha->s_dma_pool, vpmod, vpmod_dma); 2777 dma_pool_free(ha->s_dma_pool, vpmod, vpmod_dma);
2755 2778
2756 return rval; 2779 return rval;
2757} 2780}
@@ -2778,11 +2801,12 @@ qla24xx_control_vp(scsi_qla_host_t *vha, int cmd)
2778 int map, pos; 2801 int map, pos;
2779 struct vp_ctrl_entry_24xx *vce; 2802 struct vp_ctrl_entry_24xx *vce;
2780 dma_addr_t vce_dma; 2803 dma_addr_t vce_dma;
2781 scsi_qla_host_t *ha = vha->parent; 2804 struct qla_hw_data *ha = vha->hw;
2782 int vp_index = vha->vp_idx; 2805 int vp_index = vha->vp_idx;
2806 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
2783 2807
2784 DEBUG11(printk("%s(%ld): entered. Enabling index %d\n", __func__, 2808 DEBUG11(printk("%s(%ld): entered. Enabling index %d\n", __func__,
2785 ha->host_no, vp_index)); 2809 vha->host_no, vp_index));
2786 2810
2787 if (vp_index == 0 || vp_index >= ha->max_npiv_vports) 2811 if (vp_index == 0 || vp_index >= ha->max_npiv_vports)
2788 return QLA_PARAMETER_ERROR; 2812 return QLA_PARAMETER_ERROR;
@@ -2791,7 +2815,7 @@ qla24xx_control_vp(scsi_qla_host_t *vha, int cmd)
2791 if (!vce) { 2815 if (!vce) {
2792 DEBUG2_3(printk("%s(%ld): " 2816 DEBUG2_3(printk("%s(%ld): "
2793 "failed to allocate VP Control IOCB.\n", __func__, 2817 "failed to allocate VP Control IOCB.\n", __func__,
2794 ha->host_no)); 2818 base_vha->host_no));
2795 return QLA_MEMORY_ALLOC_FAILED; 2819 return QLA_MEMORY_ALLOC_FAILED;
2796 } 2820 }
2797 memset(vce, 0, sizeof(struct vp_ctrl_entry_24xx)); 2821 memset(vce, 0, sizeof(struct vp_ctrl_entry_24xx));
@@ -2810,30 +2834,30 @@ qla24xx_control_vp(scsi_qla_host_t *vha, int cmd)
2810 vce->vp_idx_map[map] |= 1 << pos; 2834 vce->vp_idx_map[map] |= 1 << pos;
2811 mutex_unlock(&ha->vport_lock); 2835 mutex_unlock(&ha->vport_lock);
2812 2836
2813 rval = qla2x00_issue_iocb(ha, vce, vce_dma, 0); 2837 rval = qla2x00_issue_iocb(base_vha, vce, vce_dma, 0);
2814 if (rval != QLA_SUCCESS) { 2838 if (rval != QLA_SUCCESS) {
2815 DEBUG2_3_11(printk("%s(%ld): failed to issue VP control IOCB" 2839 DEBUG2_3_11(printk("%s(%ld): failed to issue VP control IOCB"
2816 "(%x).\n", __func__, ha->host_no, rval)); 2840 "(%x).\n", __func__, base_vha->host_no, rval));
2817 printk("%s(%ld): failed to issue VP control IOCB" 2841 printk("%s(%ld): failed to issue VP control IOCB"
2818 "(%x).\n", __func__, ha->host_no, rval); 2842 "(%x).\n", __func__, base_vha->host_no, rval);
2819 } else if (vce->entry_status != 0) { 2843 } else if (vce->entry_status != 0) {
2820 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2844 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2821 "-- error status (%x).\n", __func__, ha->host_no, 2845 "-- error status (%x).\n", __func__, base_vha->host_no,
2822 vce->entry_status)); 2846 vce->entry_status));
2823 printk("%s(%ld): failed to complete IOCB " 2847 printk("%s(%ld): failed to complete IOCB "
2824 "-- error status (%x).\n", __func__, ha->host_no, 2848 "-- error status (%x).\n", __func__, base_vha->host_no,
2825 vce->entry_status); 2849 vce->entry_status);
2826 rval = QLA_FUNCTION_FAILED; 2850 rval = QLA_FUNCTION_FAILED;
2827 } else if (vce->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) { 2851 } else if (vce->comp_status != __constant_cpu_to_le16(CS_COMPLETE)) {
2828 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB " 2852 DEBUG2_3_11(printk("%s(%ld): failed to complete IOCB "
2829 "-- completion status (%x).\n", __func__, ha->host_no, 2853 "-- completion status (%x).\n", __func__, base_vha->host_no,
2830 le16_to_cpu(vce->comp_status))); 2854 le16_to_cpu(vce->comp_status)));
2831 printk("%s(%ld): failed to complete IOCB " 2855 printk("%s(%ld): failed to complete IOCB "
2832 "-- completion status (%x).\n", __func__, ha->host_no, 2856 "-- completion status (%x).\n", __func__, base_vha->host_no,
2833 le16_to_cpu(vce->comp_status)); 2857 le16_to_cpu(vce->comp_status));
2834 rval = QLA_FUNCTION_FAILED; 2858 rval = QLA_FUNCTION_FAILED;
2835 } else { 2859 } else {
2836 DEBUG2(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2860 DEBUG2(printk("%s(%ld): done.\n", __func__, base_vha->host_no));
2837 } 2861 }
2838 2862
2839 dma_pool_free(ha->s_dma_pool, vce, vce_dma); 2863 dma_pool_free(ha->s_dma_pool, vce, vce_dma);
@@ -2863,7 +2887,7 @@ qla24xx_control_vp(scsi_qla_host_t *vha, int cmd)
2863 */ 2887 */
2864 2888
2865int 2889int
2866qla2x00_send_change_request(scsi_qla_host_t *ha, uint16_t format, 2890qla2x00_send_change_request(scsi_qla_host_t *vha, uint16_t format,
2867 uint16_t vp_idx) 2891 uint16_t vp_idx)
2868{ 2892{
2869 int rval; 2893 int rval;
@@ -2884,7 +2908,7 @@ qla2x00_send_change_request(scsi_qla_host_t *ha, uint16_t format,
2884 mcp->in_mb = MBX_0|MBX_1; 2908 mcp->in_mb = MBX_0|MBX_1;
2885 mcp->tov = MBX_TOV_SECONDS; 2909 mcp->tov = MBX_TOV_SECONDS;
2886 mcp->flags = 0; 2910 mcp->flags = 0;
2887 rval = qla2x00_mailbox_command(ha, mcp); 2911 rval = qla2x00_mailbox_command(vha, mcp);
2888 2912
2889 if (rval == QLA_SUCCESS) { 2913 if (rval == QLA_SUCCESS) {
2890 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) { 2914 if (mcp->mb[0] != MBS_COMMAND_COMPLETE) {
@@ -2897,16 +2921,16 @@ qla2x00_send_change_request(scsi_qla_host_t *ha, uint16_t format,
2897} 2921}
2898 2922
2899int 2923int
2900qla2x00_dump_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t addr, 2924qla2x00_dump_ram(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t addr,
2901 uint32_t size) 2925 uint32_t size)
2902{ 2926{
2903 int rval; 2927 int rval;
2904 mbx_cmd_t mc; 2928 mbx_cmd_t mc;
2905 mbx_cmd_t *mcp = &mc; 2929 mbx_cmd_t *mcp = &mc;
2906 2930
2907 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2931 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2908 2932
2909 if (MSW(addr) || IS_FWI2_CAPABLE(ha)) { 2933 if (MSW(addr) || IS_FWI2_CAPABLE(vha->hw)) {
2910 mcp->mb[0] = MBC_DUMP_RISC_RAM_EXTENDED; 2934 mcp->mb[0] = MBC_DUMP_RISC_RAM_EXTENDED;
2911 mcp->mb[8] = MSW(addr); 2935 mcp->mb[8] = MSW(addr);
2912 mcp->out_mb = MBX_8|MBX_0; 2936 mcp->out_mb = MBX_8|MBX_0;
@@ -2920,7 +2944,7 @@ qla2x00_dump_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t addr,
2920 mcp->mb[6] = MSW(MSD(req_dma)); 2944 mcp->mb[6] = MSW(MSD(req_dma));
2921 mcp->mb[7] = LSW(MSD(req_dma)); 2945 mcp->mb[7] = LSW(MSD(req_dma));
2922 mcp->out_mb |= MBX_7|MBX_6|MBX_3|MBX_2|MBX_1; 2946 mcp->out_mb |= MBX_7|MBX_6|MBX_3|MBX_2|MBX_1;
2923 if (IS_FWI2_CAPABLE(ha)) { 2947 if (IS_FWI2_CAPABLE(vha->hw)) {
2924 mcp->mb[4] = MSW(size); 2948 mcp->mb[4] = MSW(size);
2925 mcp->mb[5] = LSW(size); 2949 mcp->mb[5] = LSW(size);
2926 mcp->out_mb |= MBX_5|MBX_4; 2950 mcp->out_mb |= MBX_5|MBX_4;
@@ -2932,13 +2956,13 @@ qla2x00_dump_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t addr,
2932 mcp->in_mb = MBX_0; 2956 mcp->in_mb = MBX_0;
2933 mcp->tov = MBX_TOV_SECONDS; 2957 mcp->tov = MBX_TOV_SECONDS;
2934 mcp->flags = 0; 2958 mcp->flags = 0;
2935 rval = qla2x00_mailbox_command(ha, mcp); 2959 rval = qla2x00_mailbox_command(vha, mcp);
2936 2960
2937 if (rval != QLA_SUCCESS) { 2961 if (rval != QLA_SUCCESS) {
2938 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__, 2962 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n", __func__,
2939 ha->host_no, rval, mcp->mb[0])); 2963 vha->host_no, rval, mcp->mb[0]));
2940 } else { 2964 } else {
2941 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); 2965 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
2942 } 2966 }
2943 2967
2944 return rval; 2968 return rval;
@@ -2954,20 +2978,21 @@ struct cs84xx_mgmt_cmd {
2954}; 2978};
2955 2979
2956int 2980int
2957qla84xx_verify_chip(struct scsi_qla_host *ha, uint16_t *status) 2981qla84xx_verify_chip(struct scsi_qla_host *vha, uint16_t *status)
2958{ 2982{
2959 int rval, retry; 2983 int rval, retry;
2960 struct cs84xx_mgmt_cmd *mn; 2984 struct cs84xx_mgmt_cmd *mn;
2961 dma_addr_t mn_dma; 2985 dma_addr_t mn_dma;
2962 uint16_t options; 2986 uint16_t options;
2963 unsigned long flags; 2987 unsigned long flags;
2988 struct qla_hw_data *ha = vha->hw;
2964 2989
2965 DEBUG16(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 2990 DEBUG16(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2966 2991
2967 mn = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &mn_dma); 2992 mn = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &mn_dma);
2968 if (mn == NULL) { 2993 if (mn == NULL) {
2969 DEBUG2_3(printk("%s(%ld): failed to allocate Verify ISP84XX " 2994 DEBUG2_3(printk("%s(%ld): failed to allocate Verify ISP84XX "
2970 "IOCB.\n", __func__, ha->host_no)); 2995 "IOCB.\n", __func__, vha->host_no));
2971 return QLA_MEMORY_ALLOC_FAILED; 2996 return QLA_MEMORY_ALLOC_FAILED;
2972 } 2997 }
2973 2998
@@ -2986,19 +3011,19 @@ qla84xx_verify_chip(struct scsi_qla_host *ha, uint16_t *status)
2986 mn->p.req.options = cpu_to_le16(options); 3011 mn->p.req.options = cpu_to_le16(options);
2987 3012
2988 DEBUG16(printk("%s(%ld): Dump of Verify Request.\n", __func__, 3013 DEBUG16(printk("%s(%ld): Dump of Verify Request.\n", __func__,
2989 ha->host_no)); 3014 vha->host_no));
2990 DEBUG16(qla2x00_dump_buffer((uint8_t *)mn, 3015 DEBUG16(qla2x00_dump_buffer((uint8_t *)mn,
2991 sizeof(*mn))); 3016 sizeof(*mn)));
2992 3017
2993 rval = qla2x00_issue_iocb_timeout(ha, mn, mn_dma, 0, 120); 3018 rval = qla2x00_issue_iocb_timeout(vha, mn, mn_dma, 0, 120);
2994 if (rval != QLA_SUCCESS) { 3019 if (rval != QLA_SUCCESS) {
2995 DEBUG2_16(printk("%s(%ld): failed to issue Verify " 3020 DEBUG2_16(printk("%s(%ld): failed to issue Verify "
2996 "IOCB (%x).\n", __func__, ha->host_no, rval)); 3021 "IOCB (%x).\n", __func__, vha->host_no, rval));
2997 goto verify_done; 3022 goto verify_done;
2998 } 3023 }
2999 3024
3000 DEBUG16(printk("%s(%ld): Dump of Verify Response.\n", __func__, 3025 DEBUG16(printk("%s(%ld): Dump of Verify Response.\n", __func__,
3001 ha->host_no)); 3026 vha->host_no));
3002 DEBUG16(qla2x00_dump_buffer((uint8_t *)mn, 3027 DEBUG16(qla2x00_dump_buffer((uint8_t *)mn,
3003 sizeof(*mn))); 3028 sizeof(*mn)));
3004 3029
@@ -3006,21 +3031,21 @@ qla84xx_verify_chip(struct scsi_qla_host *ha, uint16_t *status)
3006 status[1] = status[0] == CS_VCS_CHIP_FAILURE ? 3031 status[1] = status[0] == CS_VCS_CHIP_FAILURE ?
3007 le16_to_cpu(mn->p.rsp.failure_code) : 0; 3032 le16_to_cpu(mn->p.rsp.failure_code) : 0;
3008 DEBUG2_16(printk("%s(%ld): cs=%x fc=%x\n", __func__, 3033 DEBUG2_16(printk("%s(%ld): cs=%x fc=%x\n", __func__,
3009 ha->host_no, status[0], status[1])); 3034 vha->host_no, status[0], status[1]));
3010 3035
3011 if (status[0] != CS_COMPLETE) { 3036 if (status[0] != CS_COMPLETE) {
3012 rval = QLA_FUNCTION_FAILED; 3037 rval = QLA_FUNCTION_FAILED;
3013 if (!(options & VCO_DONT_UPDATE_FW)) { 3038 if (!(options & VCO_DONT_UPDATE_FW)) {
3014 DEBUG2_16(printk("%s(%ld): Firmware update " 3039 DEBUG2_16(printk("%s(%ld): Firmware update "
3015 "failed. Retrying without update " 3040 "failed. Retrying without update "
3016 "firmware.\n", __func__, ha->host_no)); 3041 "firmware.\n", __func__, vha->host_no));
3017 options |= VCO_DONT_UPDATE_FW; 3042 options |= VCO_DONT_UPDATE_FW;
3018 options &= ~VCO_FORCE_UPDATE; 3043 options &= ~VCO_FORCE_UPDATE;
3019 retry = 1; 3044 retry = 1;
3020 } 3045 }
3021 } else { 3046 } else {
3022 DEBUG2_16(printk("%s(%ld): firmware updated to %x.\n", 3047 DEBUG2_16(printk("%s(%ld): firmware updated to %x.\n",
3023 __func__, ha->host_no, 3048 __func__, vha->host_no,
3024 le32_to_cpu(mn->p.rsp.fw_ver))); 3049 le32_to_cpu(mn->p.rsp.fw_ver)));
3025 3050
3026 /* NOTE: we only update OP firmware. */ 3051 /* NOTE: we only update OP firmware. */
@@ -3037,9 +3062,9 @@ verify_done:
3037 3062
3038 if (rval != QLA_SUCCESS) { 3063 if (rval != QLA_SUCCESS) {
3039 DEBUG2_16(printk("%s(%ld): failed=%x.\n", __func__, 3064 DEBUG2_16(printk("%s(%ld): failed=%x.\n", __func__,
3040 ha->host_no, rval)); 3065 vha->host_no, rval));
3041 } else { 3066 } else {
3042 DEBUG16(printk("%s(%ld): done.\n", __func__, ha->host_no)); 3067 DEBUG16(printk("%s(%ld): done.\n", __func__, vha->host_no));
3043 } 3068 }
3044 3069
3045 return rval; 3070 return rval;