Commit 4c7ccc3b authored by Paolo Bonzini's avatar Paolo Bonzini

Merge tag 'kvm-s390-next-5.8-1' of...

Merge tag 'kvm-s390-next-5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD

KVM: s390: Cleanups for 5.8

- vsie (nesting) cleanups
- remove unneeded semicolon
parents 9d5272f5 0b545fd1
...@@ -3082,7 +3082,7 @@ static enum hrtimer_restart gisa_vcpu_kicker(struct hrtimer *timer) ...@@ -3082,7 +3082,7 @@ static enum hrtimer_restart gisa_vcpu_kicker(struct hrtimer *timer)
__airqs_kick_single_vcpu(kvm, pending_mask); __airqs_kick_single_vcpu(kvm, pending_mask);
hrtimer_forward_now(timer, ns_to_ktime(gi->expires)); hrtimer_forward_now(timer, ns_to_ktime(gi->expires));
return HRTIMER_RESTART; return HRTIMER_RESTART;
}; }
return HRTIMER_NORESTART; return HRTIMER_NORESTART;
} }
......
...@@ -1000,8 +1000,6 @@ static int do_vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) ...@@ -1000,8 +1000,6 @@ static int do_vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
handle_last_fault(vcpu, vsie_page); handle_last_fault(vcpu, vsie_page);
if (need_resched())
schedule();
if (test_cpu_flag(CIF_MCCK_PENDING)) if (test_cpu_flag(CIF_MCCK_PENDING))
s390_handle_mcck(); s390_handle_mcck();
...@@ -1185,6 +1183,7 @@ static int vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) ...@@ -1185,6 +1183,7 @@ static int vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
kvm_s390_vcpu_has_irq(vcpu, 0) || kvm_s390_vcpu_has_irq(vcpu, 0) ||
kvm_s390_vcpu_sie_inhibited(vcpu)) kvm_s390_vcpu_sie_inhibited(vcpu))
break; break;
cond_resched();
} }
if (rc == -EFAULT) { if (rc == -EFAULT) {
......
...@@ -788,19 +788,19 @@ static inline unsigned long *gmap_table_walk(struct gmap *gmap, ...@@ -788,19 +788,19 @@ static inline unsigned long *gmap_table_walk(struct gmap *gmap,
unsigned long gaddr, int level) unsigned long gaddr, int level)
{ {
const int asce_type = gmap->asce & _ASCE_TYPE_MASK; const int asce_type = gmap->asce & _ASCE_TYPE_MASK;
unsigned long *table; unsigned long *table = gmap->table;
if ((gmap->asce & _ASCE_TYPE_MASK) + 4 < (level * 4))
return NULL;
if (gmap_is_shadow(gmap) && gmap->removed) if (gmap_is_shadow(gmap) && gmap->removed)
return NULL; return NULL;
if (WARN_ON_ONCE(level > (asce_type >> 2) + 1))
return NULL;
if (asce_type != _ASCE_TYPE_REGION1 && if (asce_type != _ASCE_TYPE_REGION1 &&
gaddr & (-1UL << (31 + (asce_type >> 2) * 11))) gaddr & (-1UL << (31 + (asce_type >> 2) * 11)))
return NULL; return NULL;
table = gmap->table; switch (asce_type) {
switch (gmap->asce & _ASCE_TYPE_MASK) {
case _ASCE_TYPE_REGION1: case _ASCE_TYPE_REGION1:
table += (gaddr & _REGION1_INDEX) >> _REGION1_SHIFT; table += (gaddr & _REGION1_INDEX) >> _REGION1_SHIFT;
if (level == 4) if (level == 4)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment