448 sizeof(fw->risc_ram) / 2, &nxt);
449
450
451 if (rval == QLA_SUCCESS)
452 rval = qla2xxx_dump_ram(ha, 0x10000, fw->stack_ram,
453 sizeof(fw->stack_ram) / 2, &nxt);
454
455
456 if (rval == QLA_SUCCESS)
457 rval = qla2xxx_dump_ram(ha, 0x11000, fw->data_ram,
458 ha->fw_memory_size - 0x11000 + 1, &nxt);
459
460 if (rval == QLA_SUCCESS)
461 qla2xxx_copy_queues(ha, nxt);
462
463 if (rval != QLA_SUCCESS) {
464 qla_printk(KERN_WARNING, ha,
465 "Failed to dump firmware (%x)!!!\n", rval);
466 ha->fw_dumped = 0;
467
468 } else {
469 qla_printk(KERN_INFO, ha,
470 "Firmware dump saved to temp buffer (%ld/%p).\n",
471 ha->host_no, ha->fw_dump);
472 ha->fw_dumped = 1;
473 }
474
475qla2300_fw_dump_failed:
476 if (!hardware_locked)
477 spin_unlock_irqrestore(&ha->hardware_lock, flags);
478}
479
480
481
482
483
484
485void
486qla2100_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
487{
488 int rval;