diff options
Diffstat (limited to 'drivers/ide/ide-disk.c')
| -rw-r--r-- | drivers/ide/ide-disk.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 274798068a54..16f69be820c7 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c @@ -435,7 +435,12 @@ static int idedisk_prep_fn(struct request_queue *q, struct request *rq)  	if (!(rq->cmd_flags & REQ_FLUSH))  		return BLKPREP_OK; -	cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); +	if (rq->special) { +		cmd = rq->special; +		memset(cmd, 0, sizeof(*cmd)); +	} else { +		cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); +	}  	/* FIXME: map struct ide_taskfile on rq->cmd[] */  	BUG_ON(cmd == NULL); | 
