lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 753/917] scsi: qla2xxx: edif: Increase ELS payload
    Date
    From: Quinn Tran <qutran@marvell.com>

    [ Upstream commit 0f6d600a26e89d31d8381b324fc970f72579a126 ]

    Currently, firmware limits ELS payload to FC frame size/2112. This patch
    adjusts memory buffer size to be able to handle max ELS payload.

    Link: https://lore.kernel.org/r/20211026115412.27691-11-njavali@marvell.com
    Fixes: 84318a9f01ce ("scsi: qla2xxx: edif: Add send, receive, and accept for auth_els")
    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: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/qla2xxx/qla_edif.c | 2 +-
    drivers/scsi/qla2xxx/qla_edif.h | 3 ++-
    drivers/scsi/qla2xxx/qla_edif_bsg.h | 2 +-
    drivers/scsi/qla2xxx/qla_init.c | 4 ++++
    drivers/scsi/qla2xxx/qla_os.c | 2 +-
    5 files changed, 9 insertions(+), 4 deletions(-)

    diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c
    index 3931bae3222b3..98235df803aef 100644
    --- a/drivers/scsi/qla2xxx/qla_edif.c
    +++ b/drivers/scsi/qla2xxx/qla_edif.c
    @@ -2384,7 +2384,7 @@ void qla24xx_auth_els(scsi_qla_host_t *vha, void **pkt, struct rsp_que **rsp)
    return;
    }

    - if (totlen > MAX_PAYLOAD) {
    + if (totlen > ELS_MAX_PAYLOAD) {
    ql_dbg(ql_dbg_edif, vha, 0x0910d,
    "%s WARNING: verbose ELS frame received (totlen=%x)\n",
    __func__, totlen);
    diff --git a/drivers/scsi/qla2xxx/qla_edif.h b/drivers/scsi/qla2xxx/qla_edif.h
    index 9e8f28d0caa1b..45cf87e337780 100644
    --- a/drivers/scsi/qla2xxx/qla_edif.h
    +++ b/drivers/scsi/qla2xxx/qla_edif.h
    @@ -93,7 +93,6 @@ struct sa_update_28xx {
    };

    #define NUM_ENTRIES 256
    -#define MAX_PAYLOAD 1024
    #define PUR_GET 1

    struct dinfo {
    @@ -128,6 +127,8 @@ struct enode {
    } u;
    };

    +#define RX_ELS_SIZE (roundup(sizeof(struct enode) + ELS_MAX_PAYLOAD, SMP_CACHE_BYTES))
    +
    #define EDIF_SESSION_DOWN(_s) \
    (qla_ini_mode_enabled(_s->vha) && (_s->disc_state == DSC_DELETE_PEND || \
    _s->disc_state == DSC_DELETED || \
    diff --git a/drivers/scsi/qla2xxx/qla_edif_bsg.h b/drivers/scsi/qla2xxx/qla_edif_bsg.h
    index 58b718d35d19a..53026d82ebffe 100644
    --- a/drivers/scsi/qla2xxx/qla_edif_bsg.h
    +++ b/drivers/scsi/qla2xxx/qla_edif_bsg.h
    @@ -8,7 +8,7 @@
    #define __QLA_EDIF_BSG_H

    /* BSG Vendor specific commands */
    -#define ELS_MAX_PAYLOAD 1024
    +#define ELS_MAX_PAYLOAD 2112
    #ifndef WWN_SIZE
    #define WWN_SIZE 8
    #endif
    diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
    index 6da4419bcec16..847a6e5d9cb07 100644
    --- a/drivers/scsi/qla2xxx/qla_init.c
    +++ b/drivers/scsi/qla2xxx/qla_init.c
    @@ -4467,6 +4467,10 @@ qla2x00_init_rings(scsi_qla_host_t *vha)
    (ha->flags.fawwpn_enabled) ? "enabled" : "disabled");
    }

    + /* ELS pass through payload is limit by frame size. */
    + if (ha->flags.edif_enabled)
    + mid_init_cb->init_cb.frame_payload_size = cpu_to_le16(ELS_MAX_PAYLOAD);
    +
    rval = qla2x00_init_firmware(vha, ha->init_cb_size);
    next_check:
    if (rval) {
    diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
    index b5346d9066dc6..8d87cfae9c598 100644
    --- a/drivers/scsi/qla2xxx/qla_os.c
    +++ b/drivers/scsi/qla2xxx/qla_os.c
    @@ -4337,7 +4337,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,

    /* allocate the purex dma pool */
    ha->purex_dma_pool = dma_pool_create(name, &ha->pdev->dev,
    - MAX_PAYLOAD, 8, 0);
    + ELS_MAX_PAYLOAD, 8, 0);

    if (!ha->purex_dma_pool) {
    ql_dbg_pci(ql_dbg_init, ha->pdev, 0x011b,
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 01:38    [W:4.028 / U:0.320 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site