diff options
Diffstat (limited to 'drivers/ide/ide-disk.c')
| -rw-r--r-- | drivers/ide/ide-disk.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 274798068a5..ee880382e3b 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c @@ -188,10 +188,9 @@ static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq,  	ledtrig_ide_activity(); -	pr_debug("%s: %sing: block=%llu, sectors=%u, buffer=0x%08lx\n", +	pr_debug("%s: %sing: block=%llu, sectors=%u\n",  		 drive->name, rq_data_dir(rq) == READ ? "read" : "writ", -		 (unsigned long long)block, blk_rq_sectors(rq), -		 (unsigned long)rq->buffer); +		 (unsigned long long)block, blk_rq_sectors(rq));  	if (hwif->rw_disk)  		hwif->rw_disk(drive, rq); @@ -435,7 +434,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);  | 
