lkml.org 
[lkml]   [2021]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 006/663] scsi: qla2xxx: Fix mailbox Ch erroneous error
    Date
    From: Quinn Tran <qutran@marvell.com>

    commit 044c218b04503858ca4e17f61899c8baa0ae9ba1 upstream.

    Mailbox Ch/dump ram extend expects mb register 10 to be set. If not
    set/clear, firmware can pick up garbage from previous invocation of this
    mailbox. Example: mctp dump can set mb10. On subsequent flash read which
    use mailbox cmd Ch, mb10 can retain previous value.

    Link: https://lore.kernel.org/r/20210111093134.1206-6-njavali@marvell.com
    Cc: stable@vger.kernel.org
    Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
    Signed-off-by: Quinn Tran <qutran@marvell.com>
    Signed-off-by: Nilesh Javali <njavali@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/scsi/qla2xxx/qla_dbg.c | 1 +
    drivers/scsi/qla2xxx/qla_mbx.c | 3 ++-
    2 files changed, 3 insertions(+), 1 deletion(-)

    --- a/drivers/scsi/qla2xxx/qla_dbg.c
    +++ b/drivers/scsi/qla2xxx/qla_dbg.c
    @@ -202,6 +202,7 @@ qla24xx_dump_ram(struct qla_hw_data *ha,
    wrt_reg_word(&reg->mailbox0, MBC_DUMP_RISC_RAM_EXTENDED);
    wrt_reg_word(&reg->mailbox1, LSW(addr));
    wrt_reg_word(&reg->mailbox8, MSW(addr));
    + wrt_reg_word(&reg->mailbox10, 0);

    wrt_reg_word(&reg->mailbox2, MSW(LSD(dump_dma)));
    wrt_reg_word(&reg->mailbox3, LSW(LSD(dump_dma)));
    --- a/drivers/scsi/qla2xxx/qla_mbx.c
    +++ b/drivers/scsi/qla2xxx/qla_mbx.c
    @@ -4277,7 +4277,8 @@ qla2x00_dump_ram(scsi_qla_host_t *vha, d
    if (MSW(addr) || IS_FWI2_CAPABLE(vha->hw)) {
    mcp->mb[0] = MBC_DUMP_RISC_RAM_EXTENDED;
    mcp->mb[8] = MSW(addr);
    - mcp->out_mb = MBX_8|MBX_0;
    + mcp->mb[10] = 0;
    + mcp->out_mb = MBX_10|MBX_8|MBX_0;
    } else {
    mcp->mb[0] = MBC_DUMP_RISC_RAM;
    mcp->out_mb = MBX_0;

    \
     
     \ /
      Last update: 2021-03-02 04:10    [W:4.019 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site