Signed-off-by: Andrew Morton --- drivers/ide/ide-io.c | 1 - drivers/ide/ide-taskfile.c | 4 ++++ drivers/ide/ide.c | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff -puN drivers/ide/ide-io.c~ide-mm-ide-initialize-rq-cmd_type-in-ide_init_drive_cmd-callers drivers/ide/ide-io.c --- a/drivers/ide/ide-io.c~ide-mm-ide-initialize-rq-cmd_type-in-ide_init_drive_cmd-callers +++ a/drivers/ide/ide-io.c @@ -1671,7 +1671,6 @@ irqreturn_t ide_intr (int irq, void *dev void ide_init_drive_cmd (struct request *rq) { memset(rq, 0, sizeof(*rq)); - rq->cmd_type = REQ_TYPE_ATA_CMD; rq->ref_count = 1; } diff -puN drivers/ide/ide-taskfile.c~ide-mm-ide-initialize-rq-cmd_type-in-ide_init_drive_cmd-callers drivers/ide/ide-taskfile.c --- a/drivers/ide/ide-taskfile.c~ide-mm-ide-initialize-rq-cmd_type-in-ide_init_drive_cmd-callers +++ a/drivers/ide/ide-taskfile.c @@ -759,6 +759,7 @@ int ide_wait_cmd (ide_drive_t *drive, u8 buf = buffer; memset(buf, 0, 4 + SECTOR_WORDS * 4 * sectors); ide_init_drive_cmd(&rq); + rq.cmd_type = REQ_TYPE_ATA_CMD; rq.buffer = buf; *buf++ = cmd; *buf++ = nsect; @@ -778,7 +779,10 @@ int ide_cmd_ioctl (ide_drive_t *drive, u if (NULL == (void *) arg) { struct request rq; + ide_init_drive_cmd(&rq); + rq.cmd_type = REQ_TYPE_ATA_CMD; + return ide_do_drive_cmd(drive, &rq, ide_wait); } diff -puN drivers/ide/ide.c~ide-mm-ide-initialize-rq-cmd_type-in-ide_init_drive_cmd-callers drivers/ide/ide.c --- a/drivers/ide/ide.c~ide-mm-ide-initialize-rq-cmd_type-in-ide_init_drive_cmd-callers +++ a/drivers/ide/ide.c @@ -878,7 +878,10 @@ int set_pio_mode(ide_drive_t *drive, int if (drive->special.b.set_tune) return -EBUSY; + ide_init_drive_cmd(&rq); + rq.cmd_type = REQ_TYPE_ATA_CMD; + drive->tune_req = (u8) arg; drive->special.b.set_tune = 1; (void) ide_do_drive_cmd(drive, &rq, ide_wait); _