On Wed, 25 Mar 2020, 11:21am, Martin Wilck wrote: > On Wed, 2020-03-25 at 18:20 +0100, Martin Wilck wrote: > > Perhaps the (!fw_started) condition should be treated like > > ABORT_ISP_ACTIVE in qla2x00_mailbox_command, i.e. execute only if > > is_rom_cmd() returns true? > > No, this won't be sufficient, as e.g. MBC_IOCB_COMMAND_A64 is in > rom_cmds[], but has been found to hang (this is why I had the hunk in > qla24xx_fabric_logout()). The list of mailbox commands > that must be passed on when the FW is stopped has to be shorter than > rom_cmds[]. > With your patch 2/3, where UNLOADING is set prior to the reset of chip, in place this issue should be largely addressed. Basically, paths that send out request to wire check UNLOADING bit (if any path is missing that, should add the check) before sending it out. Now with UNLOADING set (with your patch 2/3), chip reset, and all outstanding command's completion called (qla2x00_abort_isp_cleanup) I see less chance of anything being sent out. If you see any issue with your patches 1 & 2 (addressing my comments) applied, let me know and we can tackle then. How about that? Regards, -Arun