sparc64: propagate the calling convention changes down to __csum_partial_copy_...()

... and rename them into csum_and_copy_...() - the wrappers become pointless.
[braino fixed]

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2020-07-19 18:31:07 -04:00
parent 2a5d2bd159
commit fdf8bee96f
6 changed files with 11 additions and 46 deletions

View File

@ -3,6 +3,7 @@
#define ___ASM_SPARC_CHECKSUM_H
#define _HAVE_ARCH_CSUM_AND_COPY
#define _HAVE_ARCH_COPY_AND_CSUM_FROM_USER
#define HAVE_CSUM_COPY_USER
#if defined(__sparc__) && defined(__arch64__)
#include <asm/checksum_64.h>
#else

View File

@ -67,8 +67,6 @@ csum_and_copy_from_user(const void __user *src, void *dst, int len)
return csum_partial_copy_nocheck((__force void *)src, dst, len);
}
#define HAVE_CSUM_COPY_USER
static inline __wsum
csum_and_copy_to_user(const void *src, void __user *dst, int len)
{

View File

@ -38,44 +38,9 @@ __wsum csum_partial(const void * buff, int len, __wsum sum);
* here even more important to align src and dst on a 32-bit (or even
* better 64-bit) boundary
*/
__wsum __csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum);
static inline __wsum csum_partial_copy_nocheck(const void *src, void *dst, int len)
{
return __csum_partial_copy_nocheck(src, dst, len, 0);
}
long __csum_partial_copy_from_user(const void __user *src,
void *dst, int len,
__wsum sum);
static inline __wsum
csum_and_copy_from_user(const void __user *src,
void *dst, int len)
{
long ret = __csum_partial_copy_from_user(src, dst, len, ~0U);
if (ret < 0)
return 0;
return (__force __wsum) ret;
}
/*
* Copy and checksum to user
*/
#define HAVE_CSUM_COPY_USER
long __csum_partial_copy_to_user(const void *src,
void __user *dst, int len,
__wsum sum);
static inline __wsum
csum_and_copy_to_user(const void *src,
void __user *dst, int len)
{
long ret = __csum_partial_copy_to_user(src, dst, len, ~0U);
if (ret < 0)
return 0;
return (__force __wsum) ret;
}
__wsum csum_partial_copy_nocheck(const void *src, void *dst, int len);
__wsum csum_and_copy_from_user(const void __user *src, void *dst, int len);
__wsum csum_and_copy_to_user(const void *src, void __user *dst, int len);
/* ihl is always 5 or greater, almost always is 5, and iph is word aligned
* the majority of the time.

View File

@ -33,7 +33,7 @@
#endif
#ifndef FUNC_NAME
#define FUNC_NAME __csum_partial_copy_nocheck
#define FUNC_NAME csum_partial_copy_nocheck
#endif
.register %g2, #scratch
@ -68,9 +68,10 @@
.globl FUNC_NAME
.type FUNC_NAME,#function
EXPORT_SYMBOL(FUNC_NAME)
FUNC_NAME: /* %o0=src, %o1=dst, %o2=len, %o3=sum */
FUNC_NAME: /* %o0=src, %o1=dst, %o2=len */
LOAD(prefetch, %o0 + 0x000, #n_reads)
xor %o0, %o1, %g1
mov 1, %o3
clr %o4
andcc %g1, 0x3, %g0
bne,pn %icc, 95f

View File

@ -9,14 +9,14 @@
.section .fixup, "ax"; \
.align 4; \
99: retl; \
mov -1, %o0; \
mov 0, %o0; \
.section __ex_table,"a";\
.align 4; \
.word 98b, 99b; \
.text; \
.align 4;
#define FUNC_NAME __csum_partial_copy_from_user
#define FUNC_NAME csum_and_copy_from_user
#define LOAD(type,addr,dest) type##a [addr] %asi, dest
#include "csum_copy.S"

View File

@ -9,14 +9,14 @@
.section .fixup,"ax"; \
.align 4; \
99: retl; \
mov -1, %o0; \
mov 0, %o0; \
.section __ex_table,"a";\
.align 4; \
.word 98b, 99b; \
.text; \
.align 4;
#define FUNC_NAME __csum_partial_copy_to_user
#define FUNC_NAME csum_and_copy_to_user
#define STORE(type,src,addr) type##a src, [addr] %asi
#include "csum_copy.S"