From 2c62ad1fda41da36baaf3524440aa631c5fb81c6 Mon Sep 17 00:00:00 2001
From: Florian Fainelli <florian@openwrt.org>
Date: Fri, 24 Oct 2014 00:16:10 +0000
Subject: [PATCH] kernel: add a memmove() implementation for MIPS boot
 decompressor

This is required due to 306-mips_mem_functions_performance.patch, just
add a memmove() implementation to satisfy the lzma2 decompressor code.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 43036
---
 .../063-mips_decompressor_memmove.patch       | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 target/linux/generic/patches-3.14/063-mips_decompressor_memmove.patch

diff --git a/target/linux/generic/patches-3.14/063-mips_decompressor_memmove.patch b/target/linux/generic/patches-3.14/063-mips_decompressor_memmove.patch
new file mode 100644
index 0000000000..501e11ab47
--- /dev/null
+++ b/target/linux/generic/patches-3.14/063-mips_decompressor_memmove.patch
@@ -0,0 +1,24 @@
+Index: linux-3.14.16/arch/mips/boot/compressed/string.c
+===================================================================
+--- linux-3.14.16.orig/arch/mips/boot/compressed/string.c	2014-08-07 16:50:59.000000000 -0700
++++ linux-3.14.16/arch/mips/boot/compressed/string.c	2014-10-23 16:42:01.015003995 -0700
+@@ -26,3 +26,19 @@
+ 		ss[i] = c;
+ 	return s;
+ }
++
++void *memmove(void *__dest, __const void *__src, size_t count)
++{
++	unsigned char *d = __dest;
++	const unsigned char *s = __src;
++
++	if (__dest == __src)
++		return __dest;
++
++	if (__dest < __src)
++		return memcpy(__dest, __src, count);
++
++	while (count--)
++		d[count] = s[count];
++	return __dest;
++}
-- 
2.30.2