From bf3158b62075b39ffe3f450668d3916dcd396e64 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Wed, 11 Nov 2020 19:48:45 +0100
Subject: [PATCH] mac80211: backport the new tasklet API

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 ...-backport-tasklet_setup-from_tasklet.patch | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 package/kernel/mac80211/patches/subsys/073-backports-backport-tasklet_setup-from_tasklet.patch

diff --git a/package/kernel/mac80211/patches/subsys/073-backports-backport-tasklet_setup-from_tasklet.patch b/package/kernel/mac80211/patches/subsys/073-backports-backport-tasklet_setup-from_tasklet.patch
new file mode 100644
index 0000000000..486d10ea58
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/073-backports-backport-tasklet_setup-from_tasklet.patch
@@ -0,0 +1,35 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Wed, 11 Nov 2020 13:34:26 +0100
+Subject: [PATCH] backports: backport tasklet_setup, from_tasklet
+
+Backport the new tasklet API
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/backport-include/linux/interrupt.h
++++ b/backport-include/linux/interrupt.h
+@@ -31,6 +31,23 @@ static inline void backport_hrtimer_star
+ 	hrtimer_start(timer, _time, mode);
+ }
+ #define hrtimer_start LINUX_BACKPORT(hrtimer_start)
++
++#endif
++
++#if LINUX_VERSION_IS_LESS(5,9,0)
++
++static inline void
++tasklet_setup(struct tasklet_struct *t,
++	      void (*callback)(struct tasklet_struct *))
++{
++	void (*cb)(unsigned long data) = (void *)callback;
++
++	tasklet_init(t, cb, (unsigned long)t);
++}
++
++#define from_tasklet(var, callback_tasklet, tasklet_fieldname) \
++	container_of(callback_tasklet, typeof(*var), tasklet_fieldname)
++
+ #endif
+ 
+ #endif /* _BP_LINUX_INTERRUPT_H */
-- 
2.30.2