Message ID | 20200902072548.11491-7-njavali@marvell.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | qla2xxx misc features and bug fixes | expand |
> On Sep 2, 2020, at 2:25 AM, Nilesh Javali <njavali@marvell.com> wrote: > > From: Quinn Tran <qutran@marvell.com> > > Memory size calculation for Extended Login use in hardware > offload was truncated when the setting was set with higher > value. > I see code change makes sense but commit message does not. Does following makes sense? Memory size calculations for Extended Login used in hardware Offload got truncated. Fix this by changing definition of exlogin_size to use uint32_t. > Signed-off-by: Quinn Tran <qutran@marvell.com> > Signed-off-by: Nilesh Javali <njavali@marvell.com> > --- > drivers/scsi/qla2xxx/qla_def.h | 2 +- > drivers/scsi/qla2xxx/qla_mbx.c | 7 ++++--- > drivers/scsi/qla2xxx/qla_os.c | 5 +++-- > 3 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h > index 074d8753cfc3..ad4a0ba7203c 100644 > --- a/drivers/scsi/qla2xxx/qla_def.h > +++ b/drivers/scsi/qla2xxx/qla_def.h > @@ -4216,7 +4216,7 @@ struct qla_hw_data { > /* Extended Logins */ > void *exlogin_buf; > dma_addr_t exlogin_buf_dma; > - int exlogin_size; > + uint32_t exlogin_size; > > #define ENABLE_EXCHANGE_OFFLD BIT_2 > > diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c > index 989327868dd8..ab7dbbc99c22 100644 > --- a/drivers/scsi/qla2xxx/qla_mbx.c > +++ b/drivers/scsi/qla2xxx/qla_mbx.c > @@ -845,7 +845,7 @@ qla_get_exlogin_status(scsi_qla_host_t *vha, uint16_t *buf_sz, > * Context: > * Kernel context. > */ > -#define CONFIG_XLOGINS_MEM 0x3 > +#define CONFIG_XLOGINS_MEM 0x9 > int > qla_set_exlogin_mem_cfg(scsi_qla_host_t *vha, dma_addr_t phys_addr) > { > @@ -872,8 +872,9 @@ qla_set_exlogin_mem_cfg(scsi_qla_host_t *vha, dma_addr_t phys_addr) > mcp->flags = 0; > rval = qla2x00_mailbox_command(vha, mcp); > if (rval != QLA_SUCCESS) { > - /*EMPTY*/ > - ql_dbg(ql_dbg_mbx, vha, 0x111b, "Failed=%x.\n", rval); > + ql_dbg(ql_dbg_mbx, vha, 0x111b, > + "EXlogin Failed=%x. MB0=%x MB11=%x\n", > + rval, mcp->mb[0], mcp->mb[11]); > } else { > ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x118c, > "Done %s.\n", __func__); > diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c > index 74e6a04850c0..31bfc0c088b7 100644 > --- a/drivers/scsi/qla2xxx/qla_os.c > +++ b/drivers/scsi/qla2xxx/qla_os.c > @@ -4379,11 +4379,12 @@ int > qla2x00_set_exlogins_buffer(scsi_qla_host_t *vha) > { > int rval; > - uint16_t size, max_cnt, temp; > + uint16_t size, max_cnt; > + uint32_t temp; > struct qla_hw_data *ha = vha->hw; > > /* Return if we don't need to alloacate any extended logins */ > - if (!ql2xexlogins) > + if (ql2xexlogins <= MAX_FIBRE_DEVICES_2400) > return QLA_SUCCESS; > > if (!IS_EXLOGIN_OFFLD_CAPABLE(ha)) > -- > 2.19.0.rc0 > Small nit for commit message, Otherwise Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> -- Himanshu Madhani Oracle Linux Engineering
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 074d8753cfc3..ad4a0ba7203c 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -4216,7 +4216,7 @@ struct qla_hw_data { /* Extended Logins */ void *exlogin_buf; dma_addr_t exlogin_buf_dma; - int exlogin_size; + uint32_t exlogin_size; #define ENABLE_EXCHANGE_OFFLD BIT_2 diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 989327868dd8..ab7dbbc99c22 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -845,7 +845,7 @@ qla_get_exlogin_status(scsi_qla_host_t *vha, uint16_t *buf_sz, * Context: * Kernel context. */ -#define CONFIG_XLOGINS_MEM 0x3 +#define CONFIG_XLOGINS_MEM 0x9 int qla_set_exlogin_mem_cfg(scsi_qla_host_t *vha, dma_addr_t phys_addr) { @@ -872,8 +872,9 @@ qla_set_exlogin_mem_cfg(scsi_qla_host_t *vha, dma_addr_t phys_addr) mcp->flags = 0; rval = qla2x00_mailbox_command(vha, mcp); if (rval != QLA_SUCCESS) { - /*EMPTY*/ - ql_dbg(ql_dbg_mbx, vha, 0x111b, "Failed=%x.\n", rval); + ql_dbg(ql_dbg_mbx, vha, 0x111b, + "EXlogin Failed=%x. MB0=%x MB11=%x\n", + rval, mcp->mb[0], mcp->mb[11]); } else { ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x118c, "Done %s.\n", __func__); diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 74e6a04850c0..31bfc0c088b7 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -4379,11 +4379,12 @@ int qla2x00_set_exlogins_buffer(scsi_qla_host_t *vha) { int rval; - uint16_t size, max_cnt, temp; + uint16_t size, max_cnt; + uint32_t temp; struct qla_hw_data *ha = vha->hw; /* Return if we don't need to alloacate any extended logins */ - if (!ql2xexlogins) + if (ql2xexlogins <= MAX_FIBRE_DEVICES_2400) return QLA_SUCCESS; if (!IS_EXLOGIN_OFFLD_CAPABLE(ha))