Messages in this thread | | | From | <> | Subject | RE: [PATCH RFT] scsi: pm8001: Fix FW crash for maxcpus=1 | Date | Fri, 7 Jan 2022 11:05:17 +0000 |
| |
Hi John,
> On 06/01/2022 13:03, Ajish.Koshy@microchip.com wrote: > >> only a specific vector and, also, why we check at all in an > >> interrupt handler. > > Here is my initial understanding so far based on the code and data > > sheet > > > > 1. Controller has the capability to communicate to the host about > > fatal error condition via configured interrupt vector MSI/MSI-X. > > 2. This capability is achieved by setting two fields > > a. Enable Controller Fatal error notification > > Dowrd 0x1C, Bit[0]. > > 1 - Enable; 0 - Disable > > Code: pm8001_ha->main_cfg_tbl.pm80xx_tbl. > > fatal_err_interrupt = 0x01; > > b. Fatal Error Interrupt Vector Dword 0x1C, bit[15:8] > > This parameter configures which interrupt vector > > is used to notify the host of the fatal error. > > Code: /* Update Fatal error interrupt vector */ > > pm8001_ha->main_cfg_tbl.pm80xx_tbl. > > fatal_err_interrupt |= > > ((pm8001_ha->max_q_num - 1) << 8); > > > > Probably this will be the reason why we check the vector in > > process_oq() for processing controller fatal error > > > > if (vec == (pm8001_ha->max_q_num - 1)) { > > > > Please do let me know if it helped in clarification. > > > > Sounds reasonable. And we only discover the issue for 8008/8009 now as we > have that (pm8001_ha->max_q_num - 1) vector being used for standard IO. > > So let me know of any other issue, otherwise I'll send a v2 with the coding > style fixup.
After going through check_fw_ready(), the change here looks fine.
> > Thanks, > John
| |