scsi: mpt3sas: Fix clear pending bit in ioctl status
When user issues diag register command from application with required size, and if driver unable to allocate the memory, then it will fail the register command. While failing the register command, driver is not currently clearing MPT3_CMD_PENDING bit in ctl_cmds.status variable which was set before trying to allocate the memory. As this bit is set, subsequent register command will be failed with BUSY status even when user wants to register the trace buffer will less memory. Clear MPT3_CMD_PENDING bit in ctl_cmds.status before returning the diag register command with no memory status. Link: https://lore.kernel.org/r/1568379890-18347-4-git-send-email-sreekanth.reddy@broadcom.com Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
4bc50dc1af
commit
782b281883
@ -1591,7 +1591,8 @@ _ctl_diag_register_2(struct MPT3SAS_ADAPTER *ioc,
|
||||
ioc_err(ioc, "%s: failed allocating memory for diag buffers, requested size(%d)\n",
|
||||
__func__, request_data_sz);
|
||||
mpt3sas_base_free_smid(ioc, smid);
|
||||
return -ENOMEM;
|
||||
rc = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
ioc->diag_buffer[buffer_type] = request_data;
|
||||
ioc->diag_buffer_sz[buffer_type] = request_data_sz;
|
||||
|
Loading…
Reference in New Issue
Block a user