block: ensure to split after potentially bouncing a bio (Closes: #809082)
This commit is contained in:
parent
d6b9e3f082
commit
5db0f0e307
|
@ -2,6 +2,7 @@ linux (4.3.3-3) UNRELEASED; urgency=medium
|
|||
|
||||
[ Ben Hutchings ]
|
||||
* [ppc64*] drm: Enable DRM_AST as module (Closes: #808338)
|
||||
* block: ensure to split after potentially bouncing a bio (Closes: #809082)
|
||||
|
||||
[ Salvatore Bonaccorso ]
|
||||
* ovl: fix permission checking for setattr (CVE-2015-8660)
|
||||
|
|
39
debian/patches/bugfix/all/block-ensure-to-split-after-potentially-bouncing-a-b.patch
vendored
Normal file
39
debian/patches/bugfix/all/block-ensure-to-split-after-potentially-bouncing-a-b.patch
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
From: Junichi Nomura <j-nomura@ce.jp.nec.com>
|
||||
Date: Tue, 22 Dec 2015 10:23:44 -0700
|
||||
Subject: block: ensure to split after potentially bouncing a bio
|
||||
Origin: https://git.kernel.org/linus/23688bf4f830a89866fd0ed3501e342a7360fe4f
|
||||
Bug-Debian: https://bugs.debian.org/809082
|
||||
|
||||
blk_queue_bio() does split then bounce, which makes the segment
|
||||
counting based on pages before bouncing and could go wrong. Move
|
||||
the split to after bouncing, like we do for blk-mq, and the we
|
||||
fix the issue of having the bio count for segments be wrong.
|
||||
|
||||
Fixes: 54efd50bfd87 ("block: make generic_make_request handle arbitrarily sized bios")
|
||||
Cc: stable@vger.kernel.org
|
||||
Tested-by: Artem S. Tashkinov <t.artem@lycos.com>
|
||||
Signed-off-by: Jens Axboe <axboe@fb.com>
|
||||
---
|
||||
block/blk-core.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/block/blk-core.c
|
||||
+++ b/block/blk-core.c
|
||||
@@ -1616,8 +1616,6 @@ static void blk_queue_bio(struct request
|
||||
struct request *req;
|
||||
unsigned int request_count = 0;
|
||||
|
||||
- blk_queue_split(q, &bio, q->bio_split);
|
||||
-
|
||||
/*
|
||||
* low level driver can indicate that it wants pages above a
|
||||
* certain limit bounced to low memory (ie for highmem, or even
|
||||
@@ -1625,6 +1623,8 @@ static void blk_queue_bio(struct request
|
||||
*/
|
||||
blk_queue_bounce(q, &bio);
|
||||
|
||||
+ blk_queue_split(q, &bio, q->bio_split);
|
||||
+
|
||||
if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) {
|
||||
bio->bi_error = -EIO;
|
||||
bio_endio(bio);
|
|
@ -106,3 +106,4 @@ bugfix/all/vrf-fix-double-free-and-memory-corruption-on-registe.patch
|
|||
bugfix/all/tipc-fix-kfree_skb-of-uninitialised-pointer.patch
|
||||
debian/armhf-sparc64-force-zone_dma-to-be-enabled.patch
|
||||
bugfix/all/ovl-fix-permission-checking-for-setattr.patch
|
||||
bugfix/all/block-ensure-to-split-after-potentially-bouncing-a-b.patch
|
||||
|
|
Loading…
Reference in New Issue