Skip to content

Commit 4bcd9bc

Browse files
committed
Merge tag 'kvm-s390-master-6.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
One small fix for gisa to avoid stalls.
2 parents 4016448 + f87ef57 commit 4bcd9bc

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

arch/s390/kvm/interrupt.c

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -303,11 +303,6 @@ static inline u8 gisa_get_ipm_or_restore_iam(struct kvm_s390_gisa_interrupt *gi)
303303
return 0;
304304
}
305305

306-
static inline int gisa_in_alert_list(struct kvm_s390_gisa *gisa)
307-
{
308-
return READ_ONCE(gisa->next_alert) != (u32)virt_to_phys(gisa);
309-
}
310-
311306
static inline void gisa_set_ipm_gisc(struct kvm_s390_gisa *gisa, u32 gisc)
312307
{
313308
set_bit_inv(IPM_BIT_OFFSET + gisc, (unsigned long *) gisa);
@@ -3216,11 +3211,12 @@ void kvm_s390_gisa_destroy(struct kvm *kvm)
32163211

32173212
if (!gi->origin)
32183213
return;
3219-
if (gi->alert.mask)
3220-
KVM_EVENT(3, "vm 0x%pK has unexpected iam 0x%02x",
3221-
kvm, gi->alert.mask);
3222-
while (gisa_in_alert_list(gi->origin))
3223-
cpu_relax();
3214+
WARN(gi->alert.mask != 0x00,
3215+
"unexpected non zero alert.mask 0x%02x",
3216+
gi->alert.mask);
3217+
gi->alert.mask = 0x00;
3218+
if (gisa_set_iam(gi->origin, gi->alert.mask))
3219+
process_gib_alert_list();
32243220
hrtimer_cancel(&gi->timer);
32253221
gi->origin = NULL;
32263222
VM_EVENT(kvm, 3, "gisa 0x%pK destroyed", gisa);

0 commit comments

Comments
 (0)