On 10/13/2025 7:42 PM, Sean Christopherson wrote:
On Mon, Oct 13, 2025, Naman Jain wrote:
+static int mshv_vtl_ioctl_return_to_lower_vtl(void)
+{
+       preempt_disable();
+       for (;;) {
+               u32 cancel;
+               unsigned long irq_flags;
+               struct hv_vp_assist_page *hvp;
+               int ret;
+
+               local_irq_save(irq_flags);
+               cancel = READ_ONCE(mshv_vtl_this_run()->cancel);
+               if (cancel)
+                       current_thread_info()->flags |= _TIF_SIGPENDING;

There's no need to force SIGPENDING, this code can return directly if cancel is
set[1].  And then you can wait to disable IRQs until after handling pending 
work,
and thus avoid having to immediately re-enable IRQs[2].

[1] https://lore.kernel.org/all/[email protected]
[2] https://lore.kernel.org/all/[email protected]


Thank you for reviewing and sharing your inputs. I will incorporate
these changes in the next version.

Regards,
Naman

Reply via email to