[PATCH net/gve] gve: fix early boot deadlock between rtnl_lock and service_task_mutex

"Rénich Bon Ćirić" <[email protected]> Tue, 4 Aug 2026 07:18:21 +0000
Newsgroups org.kernel.vger.netdev
Message-ID <18c88903de19db1f.df50d089680ca23.c305d6e51002e357@desktop.casa.g02.org>
Hello Netdev Team,

We hit a reproducible hard deadlock (AB-BA circular lock inversion) during early boot on EL10 / RHEL 10 kernels when running Google Cloud Platform VMs with the gve driver:

1. Thread A (NetworkManager): Holds rtnl_lock during __dev_open -> gve_open -> gve_queues_start -> gve_add_napi, and attempts to acquire service_task_mutex.
2. Thread B (gve_service_task worker): Holds service_task_mutex, and calls reset recovery which attempts to acquire rtnl_lock.

Serial Console Trace:
"INFO: task NetworkManager:856 is blocked on a mutex likely owned by task NetworkManager:856" at RIP: copy_net_ns+0x1a4 / selinux_netlbl_sk_security_free.

- Working Kernels: 6.12.0-246.el10 and 6.12.0-233.el10.
- GitHub Issue #93: https://github.com/GoogleCloudPlatform/compute-virtual-ethernet-linux/issues/93
- Proposed PR #95: https://github.com/GoogleCloudPlatform/compute-virtual-ethernet-linux/pull/95

Best regards,

Rénich Bon Ćirić
Principal Infrastructure Architect
[email protected] | [email protected]