Skip to content

Commit 17193ce

Browse files
committed
Merge tag 'kvm-s390-next-6.9-1' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
- Memop selftest rotate fix - SCLP event bits over indication fix - Missing virt_to_phys for the CRYCB fix
2 parents e9a2bba + 00de073 commit 17193ce

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

arch/s390/kvm/interrupt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,7 @@ static int __must_check __deliver_service_ev(struct kvm_vcpu *vcpu)
10311031
return 0;
10321032
}
10331033
ext = fi->srv_signal;
1034-
/* only clear the event bit */
1034+
/* only clear the event bits */
10351035
fi->srv_signal.ext_params &= ~SCCB_EVENT_PENDING;
10361036
clear_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs);
10371037
spin_unlock(&fi->lock);
@@ -1041,7 +1041,7 @@ static int __must_check __deliver_service_ev(struct kvm_vcpu *vcpu)
10411041
trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_SERVICE,
10421042
ext.ext_params, 0);
10431043

1044-
return write_sclp(vcpu, SCCB_EVENT_PENDING);
1044+
return write_sclp(vcpu, ext.ext_params & SCCB_EVENT_PENDING);
10451045
}
10461046

10471047
static int __must_check __deliver_pfault_done(struct kvm_vcpu *vcpu)

arch/s390/kvm/kvm-s390.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3153,7 +3153,7 @@ static int kvm_s390_apxa_installed(void)
31533153
*/
31543154
static void kvm_s390_set_crycb_format(struct kvm *kvm)
31553155
{
3156-
kvm->arch.crypto.crycbd = (__u32)(unsigned long) kvm->arch.crypto.crycb;
3156+
kvm->arch.crypto.crycbd = virt_to_phys(kvm->arch.crypto.crycb);
31573157

31583158
/* Clear the CRYCB format bits - i.e., set format 0 by default */
31593159
kvm->arch.crypto.crycbd &= ~(CRYCB_FORMAT_MASK);

tools/testing/selftests/kvm/s390x/memop.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,8 @@ static __uint128_t rotate(int size, __uint128_t val, int amount)
489489

490490
amount = (amount + bits) % bits;
491491
val = cut_to_size(size, val);
492+
if (!amount)
493+
return val;
492494
return (val << (bits - amount)) | (val >> amount);
493495
}
494496

0 commit comments

Comments
 (0)