diff options
| -rw-r--r-- | mm/bounce.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mm/bounce.c b/mm/bounce.c index bf0cf7c8387b..e590272fe7a8 100644 --- a/mm/bounce.c +++ b/mm/bounce.c | |||
| @@ -198,8 +198,13 @@ static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig, | |||
| 198 | /* | 198 | /* |
| 199 | * irk, bounce it | 199 | * irk, bounce it |
| 200 | */ | 200 | */ |
| 201 | if (!bio) | 201 | if (!bio) { |
| 202 | bio = bio_alloc(GFP_NOIO, (*bio_orig)->bi_vcnt); | 202 | unsigned int cnt = (*bio_orig)->bi_vcnt; |
| 203 | |||
| 204 | bio = bio_alloc(GFP_NOIO, cnt); | ||
| 205 | memset(bio->bi_io_vec, 0, cnt * sizeof(struct bio_vec)); | ||
| 206 | } | ||
| 207 | |||
| 203 | 208 | ||
| 204 | to = bio->bi_io_vec + i; | 209 | to = bio->bi_io_vec + i; |
| 205 | 210 | ||
