diff options
author | Brian King <brking@linux.vnet.ibm.com> | 2015-03-26 12:23:55 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Odin.com> | 2015-04-09 16:44:22 -0400 |
commit | a65e8f128eca1efafeb16039650ae36b25cfd0dc (patch) | |
tree | db537414a94a8811aa1c89083f847e334edd6868 | |
parent | 2796ca5e51737ed0be8ebb6cf73fd56af05da0a7 (diff) |
ipr: Fix possible error path oops during initialization
Fixes a possible oops during adapter initialization in some
memory allocation failure error paths scenarios.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Reviewed-by: Wen Xiong <wenxiong@linux.vnet.ibm.com>
Reviewed-by: Daniel Kreling <kreling@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
-rw-r--r-- | drivers/scsi/ipr.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 200110caae17..7b2768fbe071 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -9060,13 +9060,15 @@ static void ipr_free_cmd_blks(struct ipr_ioa_cfg *ioa_cfg) | |||
9060 | { | 9060 | { |
9061 | int i; | 9061 | int i; |
9062 | 9062 | ||
9063 | for (i = 0; i < IPR_NUM_CMD_BLKS; i++) { | 9063 | if (ioa_cfg->ipr_cmnd_list) { |
9064 | if (ioa_cfg->ipr_cmnd_list[i]) | 9064 | for (i = 0; i < IPR_NUM_CMD_BLKS; i++) { |
9065 | dma_pool_free(ioa_cfg->ipr_cmd_pool, | 9065 | if (ioa_cfg->ipr_cmnd_list[i]) |
9066 | ioa_cfg->ipr_cmnd_list[i], | 9066 | dma_pool_free(ioa_cfg->ipr_cmd_pool, |
9067 | ioa_cfg->ipr_cmnd_list_dma[i]); | 9067 | ioa_cfg->ipr_cmnd_list[i], |
9068 | 9068 | ioa_cfg->ipr_cmnd_list_dma[i]); | |
9069 | ioa_cfg->ipr_cmnd_list[i] = NULL; | 9069 | |
9070 | ioa_cfg->ipr_cmnd_list[i] = NULL; | ||
9071 | } | ||
9070 | } | 9072 | } |
9071 | 9073 | ||
9072 | if (ioa_cfg->ipr_cmd_pool) | 9074 | if (ioa_cfg->ipr_cmd_pool) |