From 217bc2e4685050dddce9bdd2557b64f6b8c16622 Mon Sep 17 00:00:00 2001
From: Kienan Stewart <kstewart@efficios.com>
Date: Mon, 25 Mar 2024 10:53:46 -0400
Subject: [PATCH 4/4] Fix: dev_base_lock removed in linux 6.9-rc1

See upstream commit:

    commit 1b3ef46cb7f2618cc0b507393220a69810f6da12
    Author: Eric Dumazet <edumazet@google.com>
    Date:   Tue Feb 13 06:32:45 2024 +0000

        net: remove dev_base_lock

        dev_base_lock is not needed anymore, all remaining users also hold RTNL.

Upstream-Status: Backport [52eb2ee9 Fix: dev_base_lock removed in linux 6.9-rc1]

Change-Id: I6b07e6eed07fd398302ca14d23162ed24d74df15
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
---
 src/lttng-statedump-impl.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Index: lttng-modules-2.13.12/src/lttng-statedump-impl.c
===================================================================
--- lttng-modules-2.13.12.orig/src/lttng-statedump-impl.c
+++ lttng-modules-2.13.12/src/lttng-statedump-impl.c
@@ -392,6 +392,20 @@ void lttng_enumerate_device(struct lttng
 	}
 }
 
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
+static
+int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
+{
+	struct net_device *dev;
+
+	rtnl_lock();
+	for_each_netdev(&init_net, dev)
+		lttng_enumerate_device(session, dev);
+	rtnl_unlock();
+
+	return 0;
+}
+#else
 static
 int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
 {
@@ -404,6 +418,7 @@ int lttng_enumerate_network_ip_interface
 
 	return 0;
 }
+#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0)) */
 #else /* CONFIG_INET */
 static inline
 int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
