18 Jul, 2007

2 commits

  • Add a proper prototype for proc_nr_files() in include/linux/fs.h

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Huge pages are not movable so are not allocated from ZONE_MOVABLE. However,
    as ZONE_MOVABLE will always have pages that can be migrated or reclaimed, it
    can be used to satisfy hugepage allocations even when the system has been
    running a long time. This allows an administrator to resize the hugepage pool
    at runtime depending on the size of ZONE_MOVABLE.

    This patch adds a new sysctl called hugepages_treat_as_movable. When a
    non-zero value is written to it, future allocations for the huge page pool
    will use ZONE_MOVABLE. Despite huge pages being non-movable, we do not
    introduce additional external fragmentation of note as huge pages are always
    the largest contiguous block we care about.

    [akpm@linux-foundation.org: various fixes]
    Signed-off-by: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     

17 Jul, 2007

4 commits

  • Randy Dunlap noticed that the recent comment clarifications from Andrew
    had somehow gotten duplicated. Quoth Andrew: "hm, that could have been
    some late-night reject-fixing."

    Fix it up.

    Cc: From: Andrew Morton
    Cc: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Hopefully this will help people to understand the new regime.

    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Add the print-fatal-signals=1 boot option and the
    /proc/sys/kernel/print-fatal-signals runtime switch.

    This feature prints some minimal information about userspace segfaults to
    the kernel console. This is useful to find early bootup bugs where
    userspace debugging is very hard.

    Defaults to off.

    [akpm@linux-foundation.org: Don't add new sysctl numbers]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Make zonelist creation policy selectable from sysctl/boot option v6.

    This patch makes NUMA's zonelist (of pgdat) order selectable.
    Available order are Default(automatic)/ Node-based / Zone-based.

    [Default Order]
    The kernel selects Node-based or Zone-based order automatically.

    [Node-based Order]
    This policy treats the locality of memory as the most important parameter.
    Zonelist order is created by each zone's locality. This means lower zones
    (ex. ZONE_DMA) can be used before higher zone (ex. ZONE_NORMAL) exhausion.
    IOW. ZONE_DMA will be in the middle of zonelist.
    current 2.6.21 kernel uses this.

    Pros.
    * A user can expect local memory as much as possible.
    Cons.
    * lower zone will be exhansted before higher zone. This may cause OOM_KILL.

    Maybe suitable if ZONE_DMA is relatively big and you never see OOM_KILL
    because of ZONE_DMA exhaution and you need the best locality.

    (example)
    assume 2 node NUMA. node(0) has ZONE_DMA/ZONE_NORMAL, node(1) has ZONE_NORMAL.

    *node(0)'s memory allocation order:

    node(0)'s NORMAL -> node(0)'s DMA -> node(1)'s NORMAL.

    *node(1)'s memory allocation order:

    node(1)'s NORMAL -> node(0)'s NORMAL -> node(0)'s DMA.

    [Zone-based order]
    This policy treats the zone type as the most important parameter.
    Zonelist order is created by zone-type order. This means lower zone
    never be used bofere higher zone exhaustion.
    IOW. ZONE_DMA will be always at the tail of zonelist.

    Pros.
    * OOM_KILL(bacause of lower zone) occurs only if the whole zones are exhausted.
    Cons.
    * memory locality may not be best.

    (example)
    assume 2 node NUMA. node(0) has ZONE_DMA/ZONE_NORMAL, node(1) has ZONE_NORMAL.

    *node(0)'s memory allocation order:

    node(0)'s NORMAL -> node(1)'s NORMAL -> node(0)'s DMA.

    *node(1)'s memory allocation order:

    node(1)'s NORMAL -> node(0)'s NORMAL -> node(0)'s DMA.

    bootoption "numa_zonelist_order=" and proc/sysctl is supporetd.

    command:
    %echo N > /proc/sys/vm/numa_zonelist_order

    Will rebuild zonelist in Node-based order.

    command:
    %echo Z > /proc/sys/vm/numa_zonelist_order

    Will rebuild zonelist in Zone-based order.

    Thanks to Lee Schermerhorn, he gives me much help and codes.

    [Lee.Schermerhorn@hp.com: add check_highest_zone to build_zonelists_in_zone_order]
    [akpm@linux-foundation.org: build fix]
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Lee Schermerhorn
    Cc: Christoph Lameter
    Cc: Andi Kleen
    Cc: "jesse.barnes@intel.com"
    Signed-off-by: Lee Schermerhorn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

12 Jul, 2007

1 commit

  • Add a new security check on mmap operations to see if the user is attempting
    to mmap to low area of the address space. The amount of space protected is
    indicated by the new proc tunable /proc/sys/vm/mmap_min_addr and defaults to
    0, preserving existing behavior.

    This patch uses a new SELinux security class "memprotect." Policy already
    contains a number of allow rules like a_t self:process * (unconfined_t being
    one of them) which mean that putting this check in the process class (its
    best current fit) would make it useless as all user processes, which we also
    want to protect against, would be allowed. By taking the memprotect name of
    the new class it will also make it possible for us to move some of the other
    memory protect permissions out of 'process' and into the new class next time
    we bump the policy version number (which I also think is a good future idea)

    Acked-by: Stephen Smalley
    Acked-by: Chris Wright
    Signed-off-by: Eric Paris
    Signed-off-by: James Morris

    Eric Paris
     

10 Jul, 2007

1 commit


17 May, 2007

1 commit


10 May, 2007

1 commit


09 May, 2007

1 commit

  • The /proc/pid/ "maps", "smaps", and "numa_maps" files contain sensitive
    information about the memory location and usage of processes. Issues:

    - maps should not be world-readable, especially if programs expect any
    kind of ASLR protection from local attackers.
    - maps cannot just be 0400 because "-D_FORTIFY_SOURCE=2 -O2" makes glibc
    check the maps when %n is in a *printf call, and a setuid(getuid())
    process wouldn't be able to read its own maps file. (For reference
    see http://lkml.org/lkml/2006/1/22/150)
    - a system-wide toggle is needed to allow prior behavior in the case of
    non-root applications that depend on access to the maps contents.

    This change implements a check using "ptrace_may_attach" before allowing
    access to read the maps contents. To control this protection, the new knob
    /proc/sys/kernel/maps_protect has been added, with corresponding updates to
    the procfs documentation.

    [akpm@linux-foundation.org: build fixes]
    [akpm@linux-foundation.org: New sysctl numbers are old hat]
    Signed-off-by: Kees Cook
    Cc: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     

24 Apr, 2007

1 commit

  • The commit 34f5a39899f3f3e815da64f48ddb72942d86c366 restricted reading
    of the tainted value. The attached patch changes this back to a
    write-only check and restores the read behaviour of older versions.

    Signed-off-by: Bastian Blank
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bastian Blank
     

05 Mar, 2007

1 commit


02 Mar, 2007

1 commit

  • /home/bunk/linux/kernel-2.6/linux-2.6.20-mm2/kernel/sysctl.c:1411: error: conflicting types for 'register_sysctl_table'
    /home/bunk/linux/kernel-2.6/linux-2.6.20-mm2/include/linux/sysctl.h:1042: error: previous declaration of 'register_sysctl_table' was here
    make[2]: *** [kernel/sysctl.o] Error 1

    Caused by commit 0b4d414714f0d2f922d39424b0c5c82ad900a381.

    Signed-off-by: Adrian Bunk
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

15 Feb, 2007

11 commits

  • Add a parent entry into the ctl_table so you can walk the list of parents and
    find the entire path to a ctl_table entry.

    Signed-off-by: Eric W. Biederman
    Cc: Stephen Smalley
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • With this change the sysctl inodes can be cached and nothing needs to be done
    when removing a sysctl table.

    For a cost of 2K code we will save about 4K of static tables (when we remove
    de from ctl_table) and 70K in proc_dir_entries that we will not allocate, or
    about half that on a 32bit arch.

    The speed feels about the same, even though we can now cache the sysctl
    dentries :(

    We get the core advantage that we don't need to have a 1 to 1 mapping between
    ctl table entries and proc files. Making it possible to have /proc/sys vary
    depending on the namespace you are in. The currently merged namespaces don't
    have an issue here but the network namespace under /proc/sys/net needs to have
    different directories depending on which network adapters are visible. By
    simply being a cache different directories being visible depending on who you
    are is trivial to implement.

    [akpm@osdl.org: fix uninitialised var]
    [akpm@osdl.org: fix ARM build]
    [bunk@stusta.de: make things static]
    Signed-off-by: Eric W. Biederman
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The current logic to walk through the list of sysctl table headers is slightly
    painful and implement in a way it cannot be used by code outside sysctl.c

    I am in the process of implementing a version of the sysctl proc support that
    instead of using the proc generic non-caching monster, just uses the existing
    sysctl data structure as backing store for building the dcache entries and for
    doing directory reads. To use the existing data structures however I need a
    way to get at them.

    [akpm@osdl.org: warning fix]
    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The semantic effect of insert_at_head is that it would allow new registered
    sysctl entries to override existing sysctl entries of the same name. Which is
    pain for caching and the proc interface never implemented.

    I have done an audit and discovered that none of the current users of
    register_sysctl care as (excpet for directories) they do not register
    duplicate sysctl entries.

    So this patch simply removes the support for overriding existing entries in
    the sys_sysctl interface since no one uses it or cares and it makes future
    enhancments harder.

    Signed-off-by: Eric W. Biederman
    Acked-by: Ralf Baechle
    Acked-by: Martin Schwidefsky
    Cc: Russell King
    Cc: David Howells
    Cc: "Luck, Tony"
    Cc: Ralf Baechle
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Andi Kleen
    Cc: Jens Axboe
    Cc: Corey Minyard
    Cc: Neil Brown
    Cc: "John W. Linville"
    Cc: James Bottomley
    Cc: Jan Kara
    Cc: Trond Myklebust
    Cc: Mark Fasheh
    Cc: David Chinner
    Cc: "David S. Miller"
    Cc: Patrick McHardy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • parse_table has support for calling a strategy routine when descending into a
    directory. To date no one has used this functionality and the /proc/sys
    interface has no analog to it.

    So no one is using this functionality kill it and make the binary sysctl code
    easier to follow.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • There are currently no users in the kernel for CTL_ANY and it only has effect
    on the binary interface which is practically unused.

    So this complicates sysctl lookups for no good reason so just remove it.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • binfmt_misc has a mount point in the middle of the sysctl and that mount point
    is created as a proc_generic directory.

    Doing it that way gets in the way of cleaning up the sysctl proc support as it
    continues the existence of a horrible hack. So instead simply create the
    directory as an ordinary sysctl directory. At least that removes the magic
    special case.

    [akpm@osdl.org: warning fix]
    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • This is just a simple cleanup to keep kernel/sysctl.c from getting to crowded
    with special cases, and by keeping all of the ipc logic to together it makes
    the code a little more readable.

    [gcoady.lk@gmail.com: build fix]
    Signed-off-by: Eric W. Biederman
    Cc: Serge E. Hallyn
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Signed-off-by: Grant Coady
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • This is just a simple cleanup to keep kernel/sysctl.c from getting to crowded
    with special cases, and by keeping all of the utsname logic to together it
    makes the code a little more readable.

    Signed-off-by: Eric W. Biederman
    Cc: Serge E. Hallyn
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

12 Feb, 2007

5 commits

  • If you try to read things like /proc/sys/kernel/osrelease with single-byte
    reads, you get just one byte and then EOF. This is because _proc_do_string()
    assumes that the caller is read()ing into a buffer which is large enough to
    fit the whole string in a single hit.

    Fix.

    Cc: "Eric W. Biederman"
    Cc: Michael Tokarev
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • kernel/sysctl.c:2816: warning: 'sysctl_ipc_data' defined but not used

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Allow taint flags to be set from userspace by writing to
    /proc/sys/kernel/tainted, and add a new taint flag, TAINT_USER, to be used
    when userspace has potentially done something dangerous that might
    compromise the kernel. This will allow support personnel to ask further
    questions about what may have caused the user taint flag to have been set.

    For example, they might examine the logs of the realtime JVM to see if the
    Java program has used the really silly, stupid, dangerous, and
    completely-non-portable direct access to physical memory feature which MUST
    be implemented according to the Real-Time Specification for Java (RTSJ).
    Sigh. What were those silly people at Sun thinking?

    [akpm@osdl.org: build fix]
    [bunk@stusta.de: cleanup]
    Signed-off-by: "Theodore Ts'o"
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Ts'o
     
  • currently it's
    1) if *oldlenp == 0,
    don't writeback anything

    2) if *oldlenp >= table->maxlen,
    don't writeback more than table->maxlen bytes and rewrite *oldlenp
    don't look at underlying type granularity

    3) if 0 < *oldlenp < table->maxlen,
    *cough*
    string sysctls don't writeback more than *oldlenp bytes.
    OK, that's because sizeof(char) == 1

    int sysctls writeback anything in (0, table->maxlen] range
    Though accept integers divisible by sizeof(int) for writing.

    sysctl_jiffies and sysctl_ms_jiffies don't writeback anything but
    sizeof(int), which violates 1) and 2).

    So, make sysctl_jiffies and sysctl_ms_jiffies accept
    a) *oldlenp == 0, not doing writeback
    b) *oldlenp >= sizeof(int), writing one integer.

    -EINVAL still returned for *oldlenp == 1, 2, 3.

    Signed-off-by: Alexey Dobriyan
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Reading /proc/sys/kernel/cap-bound requires CAP_SYS_MODULE. (see
    proc_dointvec_bset in kernel/sysctl.c)

    sysctl appears to drive all over proc reading everything it can get it's
    hands on and is complaining when it is being denied access to read
    cap-bound. Clearly writing to cap-bound should be a sensitive operation
    but requiring CAP_SYS_MODULE to read cap-bound seems a bit to strong. I
    believe the information could with reasonable certainty be obtained by
    looking at a bunch of the output of /proc/pid/status which has very low
    security protection, so at best we are just getting a little obfuscation of
    information.

    Currently SELinux policy has to 'dontaudit' capability checks for
    CAP_SYS_MODULE for things like sysctl which just want to read cap-bound.
    In doing so we also as a byproduct have to hide warnings of potential
    exploits such as if at some time that sysctl actually tried to load a
    module. I wondered if anyone would have a problem opening cap-bound up to
    read from anyone?

    Acked-by: Chris Wright
    Cc: Stephen Smalley
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Paris
     

14 Dec, 2006

1 commit

  • Most distributions enable sysrq support but set it to 0 by default. Add a
    sysrq_always_enabled boot option to always-enable sysrq keys. Useful for
    debugging - without having to modify the disribution's config files (which
    might not be possible if the kernel is on a live CD, etc.).

    Also, while at it, clean up the sysrq interfaces.

    [bunk@stusta.de: make sysrq_always_enabled_setup() static]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

11 Dec, 2006

3 commits

  • Signed-off-by: Alexey Dobriyan
    Cc: Andi Kleen
    Cc: "David S. Miller"
    Cc: David Howells
    Cc: Ralf Baechle
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • kernel.cap-bound uses only OP_SET and OP_AND

    Signed-off-by: Alexey Dobriyan
    Cc: "Eric W. Biederman"
    Cc: Chris Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • When CONFIG_PROC_FS=n and CONFIG_PROC_SYSCTL=n but CONFIG_SYSVIPC=y, we get
    this build error:

    kernel/built-in.o:(.data+0xc38): undefined reference to `proc_ipc_doulongvec_minmax'
    kernel/built-in.o:(.data+0xc88): undefined reference to `proc_ipc_doulongvec_minmax'
    kernel/built-in.o:(.data+0xcd8): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xd28): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xd78): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xdc8): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xe18): undefined reference to `proc_ipc_dointvec'
    make: *** [vmlinux] Error 1

    Signed-off-by: Randy Dunlap
    Acked-by: Eric Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

09 Dec, 2006

5 commits

  • Currently there is a regression and the ipc sysctls don't show up in the
    binary sysctl namespace.

    This patch adds sysctl_ipc_data to read data/write from the appropriate
    namespace and deliver it in the expected manner.

    [akpm@osdl.org: warning fix]
    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • Refactor the ipc sysctl support so that it is simpler, more readable, and
    prepares for fixing the bug with the wrong values being returned in the
    sys_sysctl interface.

    The function proc_do_ipc_string() was misnamed as it never handled strings.
    It's magic of when to work with strings and when to work with longs belonged
    in the sysctl table. I couldn't tell if the code would work if you disabled
    the ipc namespace but it certainly looked like it would have problems.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The problem: When using sys_sysctl we don't read the proper values for the
    variables exported from the uts namespace, nor do we do the proper locking.

    This patch introduces sysctl_uts_string which properly fetches the values and
    does the proper locking.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The binary interface to the namespace sysctls was never implemented resulting
    in some really weird things if you attempted to use sys_sysctl to read your
    hostname for example.

    This patch series simples the code a little and implements the binary sysctl
    interface.

    In testing this patch series I discovered that our 32bit compatibility for the
    binary sysctl interface is imperfect. In particular KERN_SHMMAX and
    KERN_SMMALL are size_t sized quantities and are returned as 8 bytes on to
    32bit binaries using a x86_64 kernel. However this has existing for a long
    time so it is not a new regression with the namespace work.

    Gads the whole sysctl thing needs work before it stops being easy to shoot
    yourself in the foot.

    Looking forward a little bit we need a better way to handle sysctls and
    namespaces as our current technique will not work for the network namespace.
    I think something based on the current overlapping sysctl trees will work but
    the proc side needs to be redone before we can use it.

    This patch:

    Introduce get_uts() and put_uts() (used later) and remove most of the special
    cases for when UTS namespace is compiled in.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • Change all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in
    linux/kernel/.

    Signed-off-by: Josef "Jeff" Sipek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Josef "Jeff" Sipek
     

08 Dec, 2006

1 commit

  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (156 commits)
    [PATCH] x86-64: Export smp_call_function_single
    [PATCH] i386: Clean up smp_tune_scheduling()
    [PATCH] unwinder: move .eh_frame to RODATA
    [PATCH] unwinder: fully support linker generated .eh_frame_hdr section
    [PATCH] x86-64: don't use set_irq_regs()
    [PATCH] x86-64: check vector in setup_ioapic_dest to verify if need setup_IO_APIC_irq
    [PATCH] x86-64: Make ix86 default to HIGHMEM4G instead of NOHIGHMEM
    [PATCH] i386: replace kmalloc+memset with kzalloc
    [PATCH] x86-64: remove remaining pc98 code
    [PATCH] x86-64: remove unused variable
    [PATCH] x86-64: Fix constraints in atomic_add_return()
    [PATCH] x86-64: fix asm constraints in i386 atomic_add_return
    [PATCH] x86-64: Correct documentation for bzImage protocol v2.05
    [PATCH] x86-64: replace kmalloc+memset with kzalloc in MTRR code
    [PATCH] x86-64: Fix numaq build error
    [PATCH] x86-64: include/asm-x86_64/cpufeature.h isn't a userspace header
    [PATCH] unwinder: Add debugging output to the Dwarf2 unwinder
    [PATCH] x86-64: Clarify error message in GART code
    [PATCH] x86-64: Fix interrupt race in idle callback (3rd try)
    [PATCH] x86-64: Remove unwind stack pointer alignment forcing again
    ...

    Fixed conflict in include/linux/uaccess.h manually

    Signed-off-by: Linus Torvalds

    Linus Torvalds