diff options
Diffstat (limited to 'drivers/ide/ide-disk.c')
-rw-r--r-- | drivers/ide/ide-disk.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 8e08d083fce9..5f49a4ae9dd8 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
@@ -198,8 +198,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq, | |||
198 | } | 198 | } |
199 | 199 | ||
200 | memset(&task, 0, sizeof(task)); | 200 | memset(&task, 0, sizeof(task)); |
201 | task.tf_flags = IDE_TFLAG_NO_SELECT_MASK; /* FIXME? */ | 201 | task.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE; |
202 | task.tf_flags |= (IDE_TFLAG_TF | IDE_TFLAG_DEVICE); | ||
203 | 202 | ||
204 | if (drive->select.b.lba) { | 203 | if (drive->select.b.lba) { |
205 | if (lba48) { | 204 | if (lba48) { |
@@ -617,7 +616,8 @@ static void idedisk_prepare_flush(struct request_queue *q, struct request *rq) | |||
617 | */ | 616 | */ |
618 | static int set_multcount(ide_drive_t *drive, int arg) | 617 | static int set_multcount(ide_drive_t *drive, int arg) |
619 | { | 618 | { |
620 | struct request rq; | 619 | struct request *rq; |
620 | int error; | ||
621 | 621 | ||
622 | if (arg < 0 || arg > drive->id->max_multsect) | 622 | if (arg < 0 || arg > drive->id->max_multsect) |
623 | return -EINVAL; | 623 | return -EINVAL; |
@@ -625,12 +625,13 @@ static int set_multcount(ide_drive_t *drive, int arg) | |||
625 | if (drive->special.b.set_multmode) | 625 | if (drive->special.b.set_multmode) |
626 | return -EBUSY; | 626 | return -EBUSY; |
627 | 627 | ||
628 | ide_init_drive_cmd(&rq); | 628 | rq = blk_get_request(drive->queue, READ, __GFP_WAIT); |
629 | rq.cmd_type = REQ_TYPE_ATA_TASKFILE; | 629 | rq->cmd_type = REQ_TYPE_ATA_TASKFILE; |
630 | 630 | ||
631 | drive->mult_req = arg; | 631 | drive->mult_req = arg; |
632 | drive->special.b.set_multmode = 1; | 632 | drive->special.b.set_multmode = 1; |
633 | (void)ide_do_drive_cmd(drive, &rq, ide_wait); | 633 | error = blk_execute_rq(drive->queue, NULL, rq, 0); |
634 | blk_put_request(rq); | ||
634 | 635 | ||
635 | return (drive->mult_count == arg) ? 0 : -EIO; | 636 | return (drive->mult_count == arg) ? 0 : -EIO; |
636 | } | 637 | } |