Commit 7a332b0c authored by Anton Blanchard's avatar Anton Blanchard Committed by Benjamin Herrenschmidt

powerpc: Use generic checksum code in little endian

We need to fix some endian issues in our checksum code. For now
just enable the generic checksum routines for little endian builds.
Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 52055d07
...@@ -139,6 +139,9 @@ config PPC ...@@ -139,6 +139,9 @@ config PPC
select OLD_SIGACTION if PPC32 select OLD_SIGACTION if PPC32
select HAVE_DEBUG_STACKOVERFLOW select HAVE_DEBUG_STACKOVERFLOW
config GENERIC_CSUM
def_bool CPU_LITTLE_ENDIAN
config EARLY_PRINTK config EARLY_PRINTK
bool bool
default y default y
......
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
* which always checksum on 4 octet boundaries. ihl is the number * which always checksum on 4 octet boundaries. ihl is the number
* of 32-bit words and is always >= 5. * of 32-bit words and is always >= 5.
*/ */
#ifdef CONFIG_GENERIC_CSUM
#include <asm-generic/checksum.h>
#else
extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl); extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/* /*
...@@ -123,5 +126,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, ...@@ -123,5 +126,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
return sum; return sum;
#endif #endif
} }
#endif
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif #endif
...@@ -79,10 +79,12 @@ EXPORT_SYMBOL(strlen); ...@@ -79,10 +79,12 @@ EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strcmp); EXPORT_SYMBOL(strcmp);
EXPORT_SYMBOL(strncmp); EXPORT_SYMBOL(strncmp);
#ifndef CONFIG_GENERIC_CSUM
EXPORT_SYMBOL(csum_partial); EXPORT_SYMBOL(csum_partial);
EXPORT_SYMBOL(csum_partial_copy_generic); EXPORT_SYMBOL(csum_partial_copy_generic);
EXPORT_SYMBOL(ip_fast_csum); EXPORT_SYMBOL(ip_fast_csum);
EXPORT_SYMBOL(csum_tcpudp_magic); EXPORT_SYMBOL(csum_tcpudp_magic);
#endif
EXPORT_SYMBOL(__copy_tofrom_user); EXPORT_SYMBOL(__copy_tofrom_user);
EXPORT_SYMBOL(__clear_user); EXPORT_SYMBOL(__clear_user);
......
...@@ -10,15 +10,20 @@ CFLAGS_REMOVE_code-patching.o = -pg ...@@ -10,15 +10,20 @@ CFLAGS_REMOVE_code-patching.o = -pg
CFLAGS_REMOVE_feature-fixups.o = -pg CFLAGS_REMOVE_feature-fixups.o = -pg
obj-y := string.o alloc.o \ obj-y := string.o alloc.o \
checksum_$(CONFIG_WORD_SIZE).o crtsavres.o crtsavres.o
obj-$(CONFIG_PPC32) += div64.o copy_32.o obj-$(CONFIG_PPC32) += div64.o copy_32.o
obj-$(CONFIG_HAS_IOMEM) += devres.o obj-$(CONFIG_HAS_IOMEM) += devres.o
obj-$(CONFIG_PPC64) += copypage_64.o copyuser_64.o \ obj-$(CONFIG_PPC64) += copypage_64.o copyuser_64.o \
memcpy_64.o usercopy_64.o mem_64.o string.o \ memcpy_64.o usercopy_64.o mem_64.o string.o \
checksum_wrappers_64.o hweight_64.o \ hweight_64.o \
copyuser_power7.o string_64.o copypage_power7.o \ copyuser_power7.o string_64.o copypage_power7.o \
memcpy_power7.o memcpy_power7.o
ifeq ($(CONFIG_GENERIC_CSUM),)
obj-y += checksum_$(CONFIG_WORD_SIZE).o
obj-$(CONFIG_PPC64) += checksum_wrappers_64.o
endif
obj-$(CONFIG_PPC_EMULATE_SSTEP) += sstep.o ldstfp.o obj-$(CONFIG_PPC_EMULATE_SSTEP) += sstep.o ldstfp.o
ifeq ($(CONFIG_PPC64),y) ifeq ($(CONFIG_PPC64),y)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment