[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 gmane.linux.network
Message-ID <18c88903de19db1f.df50d089680ca23.c305d6e51002e357@desktop.casa.g02.org>
Hello Netdev Team,

We hit a reproducible hard deadlock (AB-BA circular lock inversion) during e=
arly boot on EL10 / RHEL 10 kernels when running Google Cloud Platform VMs w=
ith 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_mu=
tex.
2. Thread B (gve_service_task worker): Holds service_task_mutex, and calls r=
eset recovery which attempts to acquire rtnl_lock.

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

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

Best regards,

R=C3=A9nich Bon =C4=86iri=C4=87
Principal Infrastructure Architect
[email protected] | [email protected]