On Mon, Dec 11, 2023 at 08:10:17AM +0100, Juergen Gross wrote:
> When adding locking to tools/libs/evtchn/minios.c a semaphore was
> used. This can result in deadlocks, as the lock is taken inside the
> event handler, which can interrupt an already locked region.

Or maybe the issue was with xenevtchn_unbind() which calls
port_dealloc() which was also trying to get the mutex.

> The fix is rather simple, as Mini-OS is supporting a single vcpu
> only. So instead of the semaphore it is enough to disable interrupts
> when operating on the port list.

Semaphore implementation does that as well, so that's fine, and it works
recursively.

> Fixes: bc4fe94a69d4 ("ools/libs/evtchn: replace assert()s in stubdom with 
> proper locking")
> Signed-off-by: Juergen Gross <jgr...@suse.com>


And osstest is happy with the patch:
http://logs.test-lab.xenproject.org/osstest/logs/184123/
> test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass
> test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass

So overall, patch looks fine to me:
Acked-by: Anthony PERARD <anthony.per...@citrix.com>

Thanks,

-- 
Anthony PERARD

Reply via email to