only a specific vector and, also, why we check at all inHere is my initial understanding so far based on the code
an interrupt handler.
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.