Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f735b5ee authored by Jens Axboe's avatar Jens Axboe
Browse files

bounce: don't rely on a zeroed bio_vec list



__blk_queue_bounce() relies on a zeroed bio_vec list, since it looks
up arbitrary indexes in the allocated bio. The block layer only
guarentees that added entries are valid, so clear memory after alloc.

Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent a0ea8622
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -198,8 +198,13 @@ static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
		/*
		 * irk, bounce it
		 */
		if (!bio)
			bio = bio_alloc(GFP_NOIO, (*bio_orig)->bi_vcnt);
		if (!bio) {
			unsigned int cnt = (*bio_orig)->bi_vcnt;

			bio = bio_alloc(GFP_NOIO, cnt);
			memset(bio->bi_io_vec, 0, cnt * sizeof(struct bio_vec));
		}
			

		to = bio->bi_io_vec + i;