diff options
Diffstat (limited to 'drivers/scsi/sd.c')
| -rw-r--r-- | drivers/scsi/sd.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 24fe68522716..a028ab3322a9 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1312,6 +1312,7 @@ static int sd_init_command(struct scsi_cmnd *cmd)  static void sd_uninit_command(struct scsi_cmnd *SCpnt)  {  	struct request *rq = SCpnt->request; +	u8 *cmnd;  	if (SCpnt->flags & SCMD_ZONE_WRITE_LOCK)  		sd_zbc_write_unlock_zone(SCpnt); @@ -1320,9 +1321,10 @@ static void sd_uninit_command(struct scsi_cmnd *SCpnt)  		__free_page(rq->special_vec.bv_page);  	if (SCpnt->cmnd != scsi_req(rq)->cmd) { -		mempool_free(SCpnt->cmnd, sd_cdb_pool); +		cmnd = SCpnt->cmnd;  		SCpnt->cmnd = NULL;  		SCpnt->cmd_len = 0; +		mempool_free(cmnd, sd_cdb_pool);  	}  } |