mmc: need to zero sglist on init
authorJens Axboe <jens.axboe@oracle.com>
Thu, 4 Oct 2007 18:11:30 +0000 (20:11 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 16 Oct 2007 09:24:45 +0000 (11:24 +0200)
Otherwise we could have junk in the sg fields, fooling
the sg chaining into thinking ->page is valid.

Acked-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
drivers/mmc/card/queue.c

index b0abc7d928051274f5168fe4d1e85fcbabc31b9b..a5d0354bbbda808e45cdd9594f6c45e75f2e7022 100644 (file)
@@ -153,14 +153,14 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
                        blk_queue_max_hw_segments(mq->queue, bouncesz / 512);
                        blk_queue_max_segment_size(mq->queue, bouncesz);
 
-                       mq->sg = kmalloc(sizeof(struct scatterlist),
+                       mq->sg = kzalloc(sizeof(struct scatterlist),
                                GFP_KERNEL);
                        if (!mq->sg) {
                                ret = -ENOMEM;
                                goto cleanup_queue;
                        }
 
-                       mq->bounce_sg = kmalloc(sizeof(struct scatterlist) *
+                       mq->bounce_sg = kzalloc(sizeof(struct scatterlist) *
                                bouncesz / 512, GFP_KERNEL);
                        if (!mq->bounce_sg) {
                                ret = -ENOMEM;
@@ -177,7 +177,7 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
                blk_queue_max_hw_segments(mq->queue, host->max_hw_segs);
                blk_queue_max_segment_size(mq->queue, host->max_seg_size);
 
-               mq->sg = kmalloc(sizeof(struct scatterlist) *
+               mq->sg = kzalloc(sizeof(struct scatterlist) *
                        host->max_phys_segs, GFP_KERNEL);
                if (!mq->sg) {
                        ret = -ENOMEM;