]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xen-blkback: only read request operation from shared ring once
authorRoger Pau Monné <roger.pau@citrix.com>
Tue, 3 Nov 2015 16:34:09 +0000 (16:34 +0000)
committerZefan Li <lizefan@huawei.com>
Wed, 26 Oct 2016 15:15:39 +0000 (23:15 +0800)
commita7bc1af57e5a08e579b165df87ba446de0f7b476
treed44da5adcbd3a4ad01cd6f92c0388004e9722ddd
parentf97ed0a98cd26a2fa7249e7bad44e84091e19b17
xen-blkback: only read request operation from shared ring once

commit 1f13d75ccb806260079e0679d55d9253e370ec8a upstream.

A compiler may load a switch statement value multiple times, which could
be bad when the value is in memory shared with the frontend.

When converting a non-native request to a native one, ensure that
src->operation is only loaded once by using READ_ONCE().

This is part of XSA155.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
[lizf: Backported to 3.4:
 - adjust context
 - call ACCESS_ONCE instead of READ_ONCE]
Signed-off-by: Zefan Li <lizefan@huawei.com>
drivers/block/xen-blkback/common.h