From 66a63d25c4e6fd89975e79091997dcc70cfb6171 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 9 Feb 2017 14:12:54 +0100
Subject: [PATCH] mac80211: fix build on linux 3.18

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 .../patches/011-backport_strscpy.patch        | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 package/kernel/mac80211/patches/011-backport_strscpy.patch

diff --git a/package/kernel/mac80211/patches/011-backport_strscpy.patch b/package/kernel/mac80211/patches/011-backport_strscpy.patch
new file mode 100644
index 0000000000..c8e26c46f2
--- /dev/null
+++ b/package/kernel/mac80211/patches/011-backport_strscpy.patch
@@ -0,0 +1,43 @@
+--- a/backport-include/linux/string.h
++++ b/backport-include/linux/string.h
+@@ -25,4 +25,8 @@ extern void *memdup_user_nul(const void
+ void memzero_explicit(void *s, size_t count);
+ #endif
+ 
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0))
++ssize_t strscpy(char *dest, const char *src, size_t count);
++#endif
++
+ #endif /* __BACKPORT_LINUX_STRING_H */
+--- a/compat/backport-4.3.c
++++ b/compat/backport-4.3.c
+@@ -57,3 +57,29 @@ void seq_hex_dump(struct seq_file *m, co
+ 	}
+ }
+ EXPORT_SYMBOL_GPL(seq_hex_dump);
++
++ssize_t strscpy(char *dest, const char *src, size_t count)
++{
++	long res = 0;
++
++	if (count == 0)
++		return -E2BIG;
++
++	while (count) {
++		char c;
++
++		c = src[res];
++		dest[res] = c;
++		if (!c)
++			return res;
++		res++;
++		count--;
++	}
++
++	/* Hit buffer length without finding a NUL; force NUL-termination. */
++	if (res)
++		dest[res-1] = '\0';
++
++	return -E2BIG;
++}
++EXPORT_SYMBOL_GPL(strscpy);
-- 
2.30.2