mirror of https://gitee.com/openkylin/linux.git
scsi: dpt_i2o: rename adpt_i2o_to_scsi() to adpt_i2o_scsi_complete()
Rename the badly named function into adpt_i2o_scsi_complete(), and make it a void function as the return value is never used. This also fixes a potential use-after-free as the return value might be evaluated from the command result after the command has been freed. Link: https://lore.kernel.org/r/20200228075318.91255-2-hare@suse.de Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
9e7bd945b9
commit
22f0ba4a28
|
@ -2173,7 +2173,7 @@ static irqreturn_t adpt_isr(int irq, void *dev_id)
|
||||||
readl(reply + 12) - 1);
|
readl(reply + 12) - 1);
|
||||||
if(cmd != NULL){
|
if(cmd != NULL){
|
||||||
scsi_dma_unmap(cmd);
|
scsi_dma_unmap(cmd);
|
||||||
adpt_i2o_to_scsi(reply, cmd);
|
adpt_i2o_scsi_complete(reply, cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
writel(m, pHba->reply_port);
|
writel(m, pHba->reply_port);
|
||||||
|
@ -2341,7 +2341,7 @@ static s32 adpt_scsi_host_alloc(adpt_hba* pHba, struct scsi_host_template *sht)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd)
|
static void adpt_i2o_scsi_complete(void __iomem *reply, struct scsi_cmnd *cmd)
|
||||||
{
|
{
|
||||||
adpt_hba* pHba;
|
adpt_hba* pHba;
|
||||||
u32 hba_status;
|
u32 hba_status;
|
||||||
|
@ -2459,7 +2459,6 @@ static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd)
|
||||||
if(cmd->scsi_done != NULL){
|
if(cmd->scsi_done != NULL){
|
||||||
cmd->scsi_done(cmd);
|
cmd->scsi_done(cmd);
|
||||||
}
|
}
|
||||||
return cmd->result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -286,7 +286,7 @@ static s32 adpt_i2o_status_get(adpt_hba* pHba);
|
||||||
static s32 adpt_i2o_init_outbound_q(adpt_hba* pHba);
|
static s32 adpt_i2o_init_outbound_q(adpt_hba* pHba);
|
||||||
static s32 adpt_i2o_hrt_get(adpt_hba* pHba);
|
static s32 adpt_i2o_hrt_get(adpt_hba* pHba);
|
||||||
static s32 adpt_scsi_to_i2o(adpt_hba* pHba, struct scsi_cmnd* cmd, struct adpt_device* dptdevice);
|
static s32 adpt_scsi_to_i2o(adpt_hba* pHba, struct scsi_cmnd* cmd, struct adpt_device* dptdevice);
|
||||||
static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd);
|
static void adpt_i2o_scsi_complete(void __iomem *reply, struct scsi_cmnd *cmd);
|
||||||
static s32 adpt_scsi_host_alloc(adpt_hba* pHba,struct scsi_host_template * sht);
|
static s32 adpt_scsi_host_alloc(adpt_hba* pHba,struct scsi_host_template * sht);
|
||||||
static s32 adpt_hba_reset(adpt_hba* pHba);
|
static s32 adpt_hba_reset(adpt_hba* pHba);
|
||||||
static s32 adpt_i2o_reset_hba(adpt_hba* pHba);
|
static s32 adpt_i2o_reset_hba(adpt_hba* pHba);
|
||||||
|
|
Loading…
Reference in New Issue