A deadlock occurs when `nwfilterBindingCreateXML` and `nwfilterConnectListAllNWFilters` acquire locks in an inconsistent order. This affects both incoming migrations and VM startups (`virsh start`), where `nwfilterBindingCreateXML` needs `updateLock`, while `nwfilter-list` first acquires `driverMutex` and then locks individual filters. This patch resolves the deadlock by ensuring `nwfilterBindingCreateXML` acquires `driverMutex` before `updateLock`, following the locking pattern used by other functions like `undefine` `nwfilterStateReload`. Added the use of `driverMutex` in `nwfilterBindingDelete` to maintain consistent locking order, as suggested. Fixes: https://gitlab.com/libvirt/libvirt/-/issues/680 Dion Bosschieter (1): nwfilter: Fix deadlock between nwfilter-list and VM startup/migration src/nwfilter/nwfilter_driver.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) -- 2.39.3 (Apple Git-146)