lkml.org 
[lkml]   [2022]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH RFT] scsi: pm8001: Fix FW crash for maxcpus=1
From
On 2022/01/07 0:32, John Garry wrote:
> 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.

And maybe add comments about the above so that the information does not get lost ?

>
> Thanks,
> John


--
Damien Le Moal
Western Digital Research

\
 
 \ /
  Last update: 2022-01-07 01:00    [W:0.169 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site