X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fide%2Fide-disk.c;h=16f69be820c7bb13da94f253b5e7bb33c831fea5;hb=08cab72f91c8b28ffabfd143119bccdd4a115ad7;hp=274798068a54648c0b504045982a02fda95c0892;hpb=51399a391940e676877c7a791138081f13a0bab7;p=~andy%2Flinux diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 274798068a5..16f69be820c 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);