diff options
author | Jens Axboe <axboe@kernel.dk> | 2017-08-16 09:56:34 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-08-16 09:56:34 -0600 |
commit | 3e09fc802d05695393a48f6c2d888771b80c4301 (patch) | |
tree | 91ca26e7faf70ac11bd6c90cb5058a4e67a0aa49 /drivers/xen | |
parent | 3280d66a6363af0df0441709bc0bc302bd9a2510 (diff) | |
parent | b15bd8cb37598afb2963f7eb9e2de468d2d60a2f (diff) |
Merge branch 'stable/for-jens-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus
Pull xen block changes from Konrad:
Two fixes, both of them spotted by Amazon:
1) Fix in Xen-blkfront caused by the re-write in 4.8 time-frame.
2) Fix in the xen_biovec_phys_mergeable which allowed guest
requests when using NVMe - to slurp up more data than allowed
leading to an XSA (which has been made public today).
Diffstat (limited to 'drivers/xen')
-rw-r--r-- | drivers/xen/biomerge.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/xen/biomerge.c b/drivers/xen/biomerge.c index 4da69dbf7dca..1bdd02a6d6ac 100644 --- a/drivers/xen/biomerge.c +++ b/drivers/xen/biomerge.c @@ -10,8 +10,7 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1, unsigned long bfn1 = pfn_to_bfn(page_to_pfn(vec1->bv_page)); unsigned long bfn2 = pfn_to_bfn(page_to_pfn(vec2->bv_page)); - return __BIOVEC_PHYS_MERGEABLE(vec1, vec2) && - ((bfn1 == bfn2) || ((bfn1+1) == bfn2)); + return bfn1 + PFN_DOWN(vec1->bv_offset + vec1->bv_len) == bfn2; #else /* * XXX: Add support for merging bio_vec when using different page |