diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-03-18 09:57:02 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-03-18 09:57:02 +0100 |
commit | 37ba317c9ed19eb126e40bbf563f2711e191a636 (patch) | |
tree | c5865768f341fc0ab41899fe9af9dc5918784cee /drivers/ide/ide-atapi.c | |
parent | 708dc5125309cd33c5daaad3026cc4ae6ef39c8b (diff) | |
parent | ee568b25ee9e160b32d1aef73d8b2ee9c05d34db (diff) | |
download | lwn-37ba317c9ed19eb126e40bbf563f2711e191a636.tar.gz lwn-37ba317c9ed19eb126e40bbf563f2711e191a636.zip |
Merge branches 'sched/cleanups' and 'linus' into sched/core
Diffstat (limited to 'drivers/ide/ide-atapi.c')
-rw-r--r-- | drivers/ide/ide-atapi.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c index e96c01260598..e9d042dba0e0 100644 --- a/drivers/ide/ide-atapi.c +++ b/drivers/ide/ide-atapi.c @@ -140,6 +140,12 @@ static void ide_queue_pc_head(ide_drive_t *drive, struct gendisk *disk, rq->cmd_flags |= REQ_PREEMPT; rq->buffer = (char *)pc; rq->rq_disk = disk; + + if (pc->req_xfer) { + rq->data = pc->buf; + rq->data_len = pc->req_xfer; + } + memcpy(rq->cmd, pc->c, 12); if (drive->media == ide_tape) rq->cmd[13] = REQ_IDETAPE_PC1; @@ -159,6 +165,12 @@ int ide_queue_pc_tail(ide_drive_t *drive, struct gendisk *disk, rq = blk_get_request(drive->queue, READ, __GFP_WAIT); rq->cmd_type = REQ_TYPE_SPECIAL; rq->buffer = (char *)pc; + + if (pc->req_xfer) { + rq->data = pc->buf; + rq->data_len = pc->req_xfer; + } + memcpy(rq->cmd, pc->c, 12); if (drive->media == ide_tape) rq->cmd[13] = REQ_IDETAPE_PC1; |