In the Linux kernel, the following vulnerability has been resolved: batman-adv: Avoid double-rtnl_lock ELP metric worker batadv_v_elp_get_throughput() might be called when the RTNL lock is already held. This could be problematic when the work queue item is cancelled via cancel_delayed_work_sync() in batadv_v_elp_iface_disable(). In this case, an rtnl_lock() would cause a deadlock. To avoid this, rtnl_trylock() was used in this function to skip the retrieval of the ethtool information in case the RTNL lock was already held. But for cfg80211 interfaces, batadv_get_real_netdev() was called - which also uses rtnl_lock(). The approach for __ethtool_get_link_ksettings() must also be used instead and the lockless version __batadv_get_real_netdev() has to be called.
https://git.kernel.org/stable/c/fa7b4edfbabdf9235b0ab4bea297fc12b3bec9ca
https://git.kernel.org/stable/c/f3ca45673dab0514a887231de6f3243a699d5bfd
https://git.kernel.org/stable/c/cfc83a3c71517b59c1047db57da31e26a9dc2f33
https://git.kernel.org/stable/c/b7e5d8ddfdf1d6e9e0808d1adf7736a107372d77
https://git.kernel.org/stable/c/77808fe7d03ad0062840b95f431869a8b3d88b24
https://git.kernel.org/stable/c/4c3ae249431b4fcb315d7dfb4c3a13f9e443fd9b
https://git.kernel.org/stable/c/2ab9f2531d37775cd79228c1f5d80e6bd08d11d3
https://git.kernel.org/stable/c/192f40ad8a7dac58dae9199a065dbf7e6e67b75b