Commit 29be02eb authored by Al Viro's avatar Al Viro
Browse files

m68k: switch to RAW_COPY_USER



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 7cefa5a0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ config M68K
	select MODULES_USE_ELF_RELA
	select OLD_SIGSUSPEND3
	select OLD_SIGACTION
	select ARCH_HAS_RAW_COPY_USER

config RWSEM_GENERIC_SPINLOCK
	bool
+13 −18
Original line number Diff line number Diff line
@@ -356,28 +356,23 @@ __constant_copy_to_user(void __user *to, const void *from, unsigned long n)
	return res;
}

#define __copy_from_user(to, from, n)		\
(__builtin_constant_p(n) ?			\
 __constant_copy_from_user(to, from, n) :	\
 __generic_copy_from_user(to, from, n))

#define __copy_to_user(to, from, n)		\
(__builtin_constant_p(n) ?			\
 __constant_copy_to_user(to, from, n) :		\
 __generic_copy_to_user(to, from, n))

#define __copy_to_user_inatomic		__copy_to_user
#define __copy_from_user_inatomic	__copy_from_user
static inline unsigned long
raw_copy_from_user(void *to, const void __user *from, unsigned long n)
{
	if (__builtin_constant_p(n))
		return __constant_copy_from_user(to, from, n);
	return __generic_copy_from_user(to, from, n);
}

static inline unsigned long
copy_from_user(void *to, const void __user *from, unsigned long n)
raw_copy_to_user(void __user *to, const void *from, unsigned long n)
{
	unsigned long res = __copy_from_user_inatomic(to, from, n);
	if (unlikely(res))
		memset(to + (n - res), 0, res);
	return res;
	if (__builtin_constant_p(n))
		return __constant_copy_to_user(to, from, n);
	return __generic_copy_to_user(to, from, n);
}
#define copy_to_user(to, from, n)	__copy_to_user(to, from, n)
#define INLINE_COPY_FROM_USER
#define INLINE_COPY_TO_USER

#define user_addr_max() \
	(uaccess_kernel() ? ~0UL : TASK_SIZE)
+14 −6
Original line number Diff line number Diff line
@@ -101,13 +101,21 @@ extern int __get_user_bad(void);
		 : "=d" (x)					\
		 : "m" (*__ptr(ptr)))

#define copy_from_user(to, from, n)		(memcpy(to, from, n), 0)
#define copy_to_user(to, from, n)		(memcpy(to, from, n), 0)
static inline unsigned long
raw_copy_from_user(void *to, const void __user *from, unsigned long n)
{
	memcpy(to, (__force const void *)from, n);
	return 0;
}

#define __copy_from_user(to, from, n) copy_from_user(to, from, n)
#define __copy_to_user(to, from, n) copy_to_user(to, from, n)
#define __copy_to_user_inatomic __copy_to_user
#define __copy_from_user_inatomic __copy_from_user
static inline unsigned long
raw_copy_to_user(void __user *to, const void *from, unsigned long n)
{
	memcpy((__force void *)to, from, n);
	return 0;
}
#define INLINE_COPY_FROM_USER
#define INLINE_COPY_TO_USER

/*
 * Copy a null terminated string from userspace.