projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
75bc37f
)
KVM: s390: vsie: fix < 8k check for the itdba
author
David Hildenbrand
<
[email protected]
>
Wed, 9 May 2018 14:12:17 +0000
(16:12 +0200)
committer
Christian Borntraeger
<
[email protected]
>
Thu, 17 May 2018 10:28:45 +0000
(12:28 +0200)
By missing an "L", we might detect some addresses to be <8k,
although they are not.
e.g. for itdba =
100001fff
!(gpa & ~0x1fffU) -> 1
!(gpa & ~0x1fffUL) -> 0
So we would report a SIE validity intercept although everything is fine.
Fixes: 166ecb3 ("KVM: s390: vsie: support transactional execution")
Reported-by: Dan Carpenter <
[email protected]
>
Reviewed-by: Christian Borntraeger <
[email protected]
>
Reviewed-by: Janosch Frank <
[email protected]
>
Reviewed-by: Cornelia Huck <
[email protected]
>
Signed-off-by: David Hildenbrand <
[email protected]
>
Signed-off-by: Janosch Frank <
[email protected]
>
Cc:
[email protected]
# v4.8+
Signed-off-by: Christian Borntraeger <
[email protected]
>
arch/s390/kvm/vsie.c
patch
|
blob
|
history
diff --git
a/arch/s390/kvm/vsie.c
b/arch/s390/kvm/vsie.c
index 8961e3970901d4b06c87b20f147115b683ad5170..969882b542669be1648093224c0ef802d027a161 100644
(file)
--- a/
arch/s390/kvm/vsie.c
+++ b/
arch/s390/kvm/vsie.c
@@
-578,7
+578,7
@@
static int pin_blocks(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
gpa = READ_ONCE(scb_o->itdba) & ~0xffUL;
if (gpa && (scb_s->ecb & ECB_TE)) {
- if (!(gpa & ~0x1fffU)) {
+ if (!(gpa & ~0x1fffU
L
)) {
rc = set_validity_icpt(scb_s, 0x0080U);
goto unpin;
}