Commit 4e0748f5 authored by Markos Chandras's avatar Markos Chandras

MIPS: Use generic checksum functions for MIPS R6

The following instructions have been removed from MIPS R6

ulw, ulh, swl, lwr, lwl, swr.

However, all of them are used in the MIPS specific checksum implementation.
As a result of which, we will use the generic checksum on MIPS R6
Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
parent 98a833c1
...@@ -1034,6 +1034,9 @@ config MIPS_MACHINE ...@@ -1034,6 +1034,9 @@ config MIPS_MACHINE
config NO_IOPORT_MAP config NO_IOPORT_MAP
def_bool n def_bool n
config GENERIC_CSUM
bool
config GENERIC_ISA_DMA config GENERIC_ISA_DMA
bool bool
select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
...@@ -1312,6 +1315,7 @@ config CPU_MIPS32_R6 ...@@ -1312,6 +1315,7 @@ config CPU_MIPS32_R6
select CPU_SUPPORTS_32BIT_KERNEL select CPU_SUPPORTS_32BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select GENERIC_CSUM
select HAVE_KVM select HAVE_KVM
select MIPS_O32_FP64_SUPPORT select MIPS_O32_FP64_SUPPORT
help help
...@@ -1363,6 +1367,7 @@ config CPU_MIPS64_R6 ...@@ -1363,6 +1367,7 @@ config CPU_MIPS64_R6
select CPU_SUPPORTS_64BIT_KERNEL select CPU_SUPPORTS_64BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select GENERIC_CSUM
help help
Choose this option to build a kernel for release 6 or later of the Choose this option to build a kernel for release 6 or later of the
MIPS64 architecture. New MIPS processors, starting with the Warrior MIPS64 architecture. New MIPS processors, starting with the Warrior
......
# MIPS headers # MIPS headers
generic-(CONFIG_GENERIC_CSUM) += checksum.h
generic-y += cputime.h generic-y += cputime.h
generic-y += current.h generic-y += current.h
generic-y += dma-contiguous.h generic-y += dma-contiguous.h
......
...@@ -12,6 +12,10 @@ ...@@ -12,6 +12,10 @@
#ifndef _ASM_CHECKSUM_H #ifndef _ASM_CHECKSUM_H
#define _ASM_CHECKSUM_H #define _ASM_CHECKSUM_H
#ifdef CONFIG_GENERIC_CSUM
#include <asm-generic/checksum.h>
#else
#include <linux/in6.h> #include <linux/in6.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
...@@ -274,5 +278,6 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, ...@@ -274,5 +278,6 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
} }
#include <asm-generic/checksum.h> #include <asm-generic/checksum.h>
#endif /* CONFIG_GENERIC_CSUM */
#endif /* _ASM_CHECKSUM_H */ #endif /* _ASM_CHECKSUM_H */
...@@ -67,11 +67,13 @@ EXPORT_SYMBOL(__strnlen_kernel_asm); ...@@ -67,11 +67,13 @@ EXPORT_SYMBOL(__strnlen_kernel_asm);
EXPORT_SYMBOL(__strnlen_user_nocheck_asm); EXPORT_SYMBOL(__strnlen_user_nocheck_asm);
EXPORT_SYMBOL(__strnlen_user_asm); EXPORT_SYMBOL(__strnlen_user_asm);
#ifndef CONFIG_CPU_MIPSR6
EXPORT_SYMBOL(csum_partial); EXPORT_SYMBOL(csum_partial);
EXPORT_SYMBOL(csum_partial_copy_nocheck); EXPORT_SYMBOL(csum_partial_copy_nocheck);
EXPORT_SYMBOL(__csum_partial_copy_kernel); EXPORT_SYMBOL(__csum_partial_copy_kernel);
EXPORT_SYMBOL(__csum_partial_copy_to_user); EXPORT_SYMBOL(__csum_partial_copy_to_user);
EXPORT_SYMBOL(__csum_partial_copy_from_user); EXPORT_SYMBOL(__csum_partial_copy_from_user);
#endif
EXPORT_SYMBOL(invalid_pte_table); EXPORT_SYMBOL(invalid_pte_table);
#ifdef CONFIG_FUNCTION_TRACER #ifdef CONFIG_FUNCTION_TRACER
......
...@@ -8,6 +8,7 @@ lib-y += bitops.o csum_partial.o delay.o memcpy.o memset.o \ ...@@ -8,6 +8,7 @@ lib-y += bitops.o csum_partial.o delay.o memcpy.o memset.o \
obj-y += iomap.o obj-y += iomap.o
obj-$(CONFIG_PCI) += iomap-pci.o obj-$(CONFIG_PCI) += iomap-pci.o
lib-$(CONFIG_GENERIC_CSUM) := $(filter-out csum_partial.o, $(lib-y))
obj-$(CONFIG_CPU_GENERIC_DUMP_TLB) += dump_tlb.o obj-$(CONFIG_CPU_GENERIC_DUMP_TLB) += dump_tlb.o
obj-$(CONFIG_CPU_R3000) += r3k_dump_tlb.o obj-$(CONFIG_CPU_R3000) += r3k_dump_tlb.o
......
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