mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-21 12:41:26 +00:00
qla2x00t-32gbit: Fix memory size truncation
Memory size calculations for Extended Login used in hardware offload got truncated. Fix this by changing definition of exlogin_size to use uint32_t. Link: https://lore.kernel.org/r/20200904045128.23631-7-njavali@marvell.com 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> See also upstream commit d38cb849e17a34637b97ce57c550ec70d63dd39a. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9261 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -4242,7 +4242,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
|
||||
|
||||
|
||||
@@ -844,7 +844,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)
|
||||
{
|
||||
@@ -871,8 +871,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__);
|
||||
|
||||
@@ -4426,11 +4426,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))
|
||||
|
||||
Reference in New Issue
Block a user