Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ddb3b15 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
  parisc: use __ratelimit in unaligned.c
  parisc: Convert to read/update_persistent_clock
  parisc: Simplify param.h by including <asm-generic/param.h>
  parisc: drop unnecessary cast in __ldcw_align() macro
  parisc: add strict copy size checks (v2)
  parisc: remove trailing space in messages
  parisc: ditto sys_accept4
  parisc: wire up sys_recvmmsg
parents 5980bb3e 6ee77658
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -12,4 +12,18 @@ config DEBUG_RODATA
         portion of the kernel code won't be covered by a TLB anymore.
         If in doubt, say "N".

config DEBUG_STRICT_USER_COPY_CHECKS
	bool "Strict copy size checks"
	depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
	---help---
	  Enabling this option turns a certain set of sanity checks for user
	  copy operations into compile time failures.

	  The copy_from_user() etc checks are there to help test if there
	  are sufficient security checks on the length argument of
	  the copy operation, by having gcc prove that the argument is
	  within bounds.

	  If unsure, or if you run an older (pre 4.4) gcc, say N.

endmenu
+1 −22
Original line number Diff line number Diff line
#ifndef _ASMPARISC_PARAM_H
#define _ASMPARISC_PARAM_H

#ifdef __KERNEL__
#define HZ		CONFIG_HZ
#define USER_HZ		100		/* some user API use "ticks" */
#define CLOCKS_PER_SEC	(USER_HZ)	/* like times() */
#endif

#ifndef HZ
#define HZ 100
#endif

#define EXEC_PAGESIZE	4096

#ifndef NOGROUP
#define NOGROUP		(-1)
#endif

#define MAXHOSTNAMELEN	64	/* max length of hostname */

#endif
#include <asm-generic/param.h>
+1 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ static inline void set_eiem(unsigned long val)
   ldcd). */

#define __PA_LDCW_ALIGNMENT	4
#define __ldcw_align(a) ((volatile unsigned int *)a)
#define __ldcw_align(a) (&(a)->slock)
#define __LDCW	"ldcw,co"

#endif /*!CONFIG_PA20*/
+25 −2
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include <asm/page.h>
#include <asm/system.h>
#include <asm/cache.h>
#include <asm/errno.h>
#include <asm-generic/uaccess-unaligned.h>

#define VERIFY_READ 0
@@ -234,13 +235,35 @@ extern long lstrnlen_user(const char __user *,long);

unsigned long copy_to_user(void __user *dst, const void *src, unsigned long len);
#define __copy_to_user copy_to_user
unsigned long copy_from_user(void *dst, const void __user *src, unsigned long len);
#define __copy_from_user copy_from_user
unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long len);
unsigned long copy_in_user(void __user *dst, const void __user *src, unsigned long len);
#define __copy_in_user copy_in_user
#define __copy_to_user_inatomic __copy_to_user
#define __copy_from_user_inatomic __copy_from_user

extern void copy_from_user_overflow(void)
#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
        __compiletime_error("copy_from_user() buffer size is not provably correct")
#else
        __compiletime_warning("copy_from_user() buffer size is not provably correct")
#endif
;

static inline unsigned long __must_check copy_from_user(void *to,
                                          const void __user *from,
                                          unsigned long n)
{
        int sz = __compiletime_object_size(to);
        int ret = -EFAULT;

        if (likely(sz == -1 || !__builtin_constant_p(n) || sz >= n))
                ret = __copy_from_user(to, from, n);
        else
                copy_from_user_overflow();

        return ret;
}

struct pt_regs;
int fixup_exception(struct pt_regs *regs);

+3 −1
Original line number Diff line number Diff line
@@ -811,8 +811,10 @@
#define __NR_pwritev		(__NR_Linux + 316)
#define __NR_rt_tgsigqueueinfo	(__NR_Linux + 317)
#define __NR_perf_event_open	(__NR_Linux + 318)
#define __NR_recvmmsg		(__NR_Linux + 319)
#define __NR_accept4		(__NR_Linux + 320)

#define __NR_Linux_syscalls	(__NR_perf_event_open + 1)
#define __NR_Linux_syscalls	(__NR_accept4 + 1)


#define __IGNORE_select		/* newselect */
Loading