| From b7da2f58d43cbb8469bf8e12a0097748aa062cf0 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 10 May 2023 17:42:58 +0200 |
| Subject: KVM: s390: vsie: fix the length of APCB bitmap |
| |
| From: Pierre Morel <pmorel@linux.ibm.com> |
| |
| [ Upstream commit 246be7d2720ea9a795b576067ecc5e5c7a1e7848 ] |
| |
| bit_and() uses the count of bits as the woking length. |
| Fix the previous implementation and effectively use |
| the right bitmap size. |
| |
| Fixes: 19fd83a64718 ("KVM: s390: vsie: allow CRYCB FORMAT-1") |
| Fixes: 56019f9aca22 ("KVM: s390: vsie: Allow CRYCB FORMAT-2") |
| |
| Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> |
| Reviewed-by: Janosch Frank <frankja@linux.ibm.com> |
| Link: https://lore.kernel.org/kvm/20230511094719.9691-1-pmorel@linux.ibm.com/ |
| Signed-off-by: Janosch Frank <frankja@linux.ibm.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/s390/kvm/vsie.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c |
| index 8d6b765abf29b..0333ee482eb89 100644 |
| --- a/arch/s390/kvm/vsie.c |
| +++ b/arch/s390/kvm/vsie.c |
| @@ -177,7 +177,8 @@ static int setup_apcb00(struct kvm_vcpu *vcpu, unsigned long *apcb_s, |
| sizeof(struct kvm_s390_apcb0))) |
| return -EFAULT; |
| |
| - bitmap_and(apcb_s, apcb_s, apcb_h, sizeof(struct kvm_s390_apcb0)); |
| + bitmap_and(apcb_s, apcb_s, apcb_h, |
| + BITS_PER_BYTE * sizeof(struct kvm_s390_apcb0)); |
| |
| return 0; |
| } |
| @@ -203,7 +204,8 @@ static int setup_apcb11(struct kvm_vcpu *vcpu, unsigned long *apcb_s, |
| sizeof(struct kvm_s390_apcb1))) |
| return -EFAULT; |
| |
| - bitmap_and(apcb_s, apcb_s, apcb_h, sizeof(struct kvm_s390_apcb1)); |
| + bitmap_and(apcb_s, apcb_s, apcb_h, |
| + BITS_PER_BYTE * sizeof(struct kvm_s390_apcb1)); |
| |
| return 0; |
| } |
| -- |
| 2.39.2 |
| |