hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/video/fbdev/hyperv_fb.c
....@@ -798,12 +798,18 @@
798798 static int hvfb_on_panic(struct notifier_block *nb,
799799 unsigned long e, void *p)
800800 {
801
+ struct hv_device *hdev;
801802 struct hvfb_par *par;
802803 struct fb_info *info;
803804
804805 par = container_of(nb, struct hvfb_par, hvfb_panic_nb);
805
- par->synchronous_fb = true;
806806 info = par->info;
807
+ hdev = device_to_hv_device(info->device);
808
+
809
+ if (hv_ringbuffer_spinlock_busy(hdev->channel))
810
+ return NOTIFY_DONE;
811
+
812
+ par->synchronous_fb = true;
807813 if (par->need_docopy)
808814 hvfb_docopy(par, 0, dio_fb_size);
809815 synthvid_update(info, 0, 0, INT_MAX, INT_MAX);