[PATCH 09/20] headers: add dropreason.h backport for kernels < 6.0

Yi Cong <[email protected]> Wed, 24 Jun 2026 15:38:33 +0800
Newsgroups org.kernel.vger.backports
Message-ID <[email protected]>
From: Yi Cong <[email protected]>

The subsystem-based drop reason infrastructure was introduced in v6.0
and extended in v6.4. Provide enum skb_drop_reason_subsys, struct
drop_reason_list, and no-op stubs for drop_reasons_register_subsys()
and drop_reasons_unregister_subsys() so that mac80211 compiles on
older kernels.

Signed-off-by: Yi Cong <[email protected]>
---
 backport/backport-include/net/dropreason.h | 43 ++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 backport/backport-include/net/dropreason.h

diff --git a/backport/backport-include/net/dropreason.h b/backport/backport-include/net/dropreason.h
new file mode 100644
index 00000000..55b11c13
--- /dev/null
+++ b/backport/backport-include/net/dropreason.h
@@ -0,0 +1,43 @@
+#ifndef __BACKPORT_NET_DROPREASON_H
+#define __BACKPORT_NET_DROPREASON_H
+#include <linux/version.h>
+
+#if LINUX_VERSION_IS_GEQ(6,0,0)
+/* On new kernels, the real header is already available. */
+#include_next <net/dropreason.h>
+#else
+
+#include <net/dropreason-core.h>
+
+/*
+ * Minimal backport of the subsystem-based drop reason infrastructure
+ * that was introduced in kernel 6.0 and extended in 6.4.
+ */
+
+enum skb_drop_reason_subsys {
+	SKB_DROP_REASON_SUBSYS_CORE,
+	SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE,
+	SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR,
+	SKB_DROP_REASON_SUBSYS_NUM
+};
+
+struct drop_reason_list {
+	const char * const *reasons;
+	size_t n_reasons;
+};
+
+/* No-op stubs for registration */
+static inline void
+drop_reasons_register_subsys(enum skb_drop_reason_subsys subsys,
+			     const struct drop_reason_list *list)
+{
+}
+
+static inline void
+drop_reasons_unregister_subsys(enum skb_drop_reason_subsys subsys)
+{
+}
+
+#endif /* < 6.0 */
+
+#endif /* __BACKPORT_NET_DROPREASON_H */
-- 
2.43.0