)]}'
{
  "log": [
    {
      "commit": "5a5e4c2eca0307deeb438c97dbdc608663515c0a",
      "tree": "324a5204b4fb315b5a7f9dda0739b6524e93a55b",
      "parents": [
        "63d37a84ab6004c235314ffd7a76c5eb28c2fae0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 30 01:49:38 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 30 21:04:55 2012 -0400"
      },
      "message": "binfmt_elf: switch elf_map() to vm_mmap/vm_munmap\n\nNo reason to hold -\u003emmap_sem over the sequence\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "ebc887b278944fc478ab31a4be8ba0cae5fe4f48",
      "tree": "47dc4e0d9e876ade642ebe08fe8641075faab6ae",
      "parents": [
        "e1c972b681bf118fcedb9fe2ed7a73de983aa5ef"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 18:36:10 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 15 14:59:25 2012 -0700"
      },
      "message": "userns: Convert binary formats to use kuid/kgid where appropriate\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "6be5ceb02e98eaf6cfc4f8b12a896d04023f340d",
      "tree": "f34de1392300bbf63549f4eeb20f7606d6f7b1f9",
      "parents": [
        "a46ef99d80817a167477ed1c8b4d90ee0c2e726f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:13:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:29:13 2012 -0700"
      },
      "message": "VM: add \"vm_mmap()\" helper function\n\nThis continues the theme started with vm_brk() and vm_munmap():\nvm_mmap() does the same thing as do_mmap(), but additionally does the\nrequired VM locking.\n\nThis uninlines (and rewrites it to be clearer) do_mmap(), which sadly\nduplicates it in mm/mmap.c and mm/nommu.c.  But that way we don\u0027t have\nto export our internal do_mmap_pgoff() function.\n\nSome day we hopefully don\u0027t have to export do_mmap() either, if all\nmodular users can become the simpler vm_mmap() instead.  We\u0027re actually\nvery close to that already, with the notable exception of the (broken)\nuse in i810, and a couple of stragglers in binfmt_elf.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4eb1ff61b323d6141614e5458a1f53c7046ff8e",
      "tree": "7a0251509c169b0df1a6bf4bc47c5bca709e06da",
      "parents": [
        "3b422e9c2c020a1137349c614da7f9c9761a0922"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 15:35:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:28:17 2012 -0700"
      },
      "message": "VM: add \"vm_brk()\" helper function\n\nIt does the same thing as \"do_brk()\", except it handles the VM locking\ntoo.\n\nIt turns out that all external callers want that anyway, so we can make\ndo_brk() static to just mm/mmap.c while at it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a591afc01d9e48affbacb365558a31e53c85af45",
      "tree": "9bb91f4eb94ec69fc4706c4944788ec5f3586063",
      "parents": [
        "820d41cf0cd0e94a5661e093821e2e5c6b36a9d8",
        "31796ac4e8f0e88f5c10f1ad6dab8f19bebe44a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "message": "Merge branch \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x32 support for x86-64 from Ingo Molnar:\n \"This tree introduces the X32 binary format and execution mode for x86:\n  32-bit data space binaries using 64-bit instructions and 64-bit kernel\n  syscalls.\n\n  This allows applications whose working set fits into a 32 bits address\n  space to make use of 64-bit instructions while using a 32-bit address\n  space with shorter pointers, more compressed data structures, etc.\"\n\nFix up trivial context conflicts in arch/x86/{Kconfig,vdso/vma.c}\n\n* \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)\n  x32: Fix alignment fail in struct compat_siginfo\n  x32: Fix stupid ia32/x32 inversion in the siginfo format\n  x32: Add ptrace for x32\n  x32: Switch to a 64-bit clock_t\n  x32: Provide separate is_ia32_task() and is_x32_task() predicates\n  x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls\n  x86/x32: Fix the binutils auto-detect\n  x32: Warn and disable rather than error if binutils too old\n  x32: Only clear TIF_X32 flag once\n  x32: Make sure TS_COMPAT is cleared for x32 tasks\n  fs: Remove missed -\u003efds_bits from cessation use of fd_set structs internally\n  fs: Fix close_on_exec pointer in alloc_fdtable\n  x32: Drop non-__vdso weak symbols from the x32 VDSO\n  x32: Fix coding style violations in the x32 VDSO code\n  x32: Add x32 VDSO support\n  x32: Allow x32 to be configured\n  x32: If configured, add x32 system calls to system call tables\n  x32: Handle process creation\n  x32: Signal-related system calls\n  x86: Add #ifdef CONFIG_COMPAT to \u003casm/sys_ia32.h\u003e\n  ...\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae",
      "tree": "c109d45d3fb8ccad461cfe6d9a4aa4d6005b38e1",
      "parents": [
        "49a7f04a4b9d45cd794741ce3d5d66524b37bdd0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Add #includes needed to permit the removal of asm/system.h\n\nasm/system.h is a cause of circular dependency problems because it contains\ncommonly used primitive stuff like barrier definitions and uncommonly used\nstuff like switch_to() that might require MMU definitions.\n\nasm/system.h has been disintegrated by this point on all arches into the\nfollowing common segments:\n\n (1) asm/barrier.h\n\n     Moved memory barrier definitions here.\n\n (2) asm/cmpxchg.h\n\n     Moved xchg() and cmpxchg() here.  #included in asm/atomic.h.\n\n (3) asm/bug.h\n\n     Moved die() and similar here.\n\n (4) asm/exec.h\n\n     Moved arch_align_stack() here.\n\n (5) asm/elf.h\n\n     Moved AT_VECTOR_SIZE_ARCH here.\n\n (6) asm/switch_to.h\n\n     Moved switch_to() here.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "accb61fe7bb0f5c2a4102239e4981650f9048519",
      "tree": "5e7120b80944d9719684b94e0c419761ba2d59e1",
      "parents": [
        "909af768e88867016f427264ae39d27a57b6a8ed"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n\nSince we no longer need the VM_ALWAYSDUMP flag, let\u0027s use the freed bit\nfor \u0027VM_NODUMP\u0027 flag.  The idea is is to add a new madvise() flag:\nMADV_DONTDUMP, which can be set by applications to specifically request\nmemory regions which should not dump core.\n\nThe specific application I have in mind is qemu: we can add a flag there\nthat wouldn\u0027t dump all of guest memory when qemu dumps core.  This flag\nmight also be useful for security sensitive apps that want to absolutely\nmake sure that parts of memory are not dumped.  To clear the flag use:\nMADV_DODUMP.\n\n[akpm@linux-foundation.org: s/MADV_NODUMP/MADV_DONTDUMP/, s/MADV_CLEAR_NODUMP/MADV_DODUMP/, per Roland]\n[akpm@linux-foundation.org: fix up the architectures which broke]\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "909af768e88867016f427264ae39d27a57b6a8ed",
      "tree": "5068b4d98e4bedecde89d9113dc7ef8c69633f45",
      "parents": [
        "1cc684ab75123efe7ff446eb821d44375ba8fa30"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: remove VM_ALWAYSDUMP flag\n\nThe motivation for this patchset was that I was looking at a way for a\nqemu-kvm process, to exclude the guest memory from its core dump, which\ncan be quite large.  There are already a number of filter flags in\n/proc/\u003cpid\u003e/coredump_filter, however, these allow one to specify \u0027types\u0027\nof kernel memory, not specific address ranges (which is needed in this\ncase).\n\nSince there are no more vma flags available, the first patch eliminates\nthe need for the \u0027VM_ALWAYSDUMP\u0027 flag.  The flag is used internally by\nthe kernel to mark vdso and vsyscall pages.  However, it is simple\nenough to check if a vma covers a vdso or vsyscall page without the need\nfor this flag.\n\nThe second patch then replaces the \u0027VM_ALWAYSDUMP\u0027 flag with a new\n\u0027VM_NODUMP\u0027 flag, which can be set by userspace using new madvise flags:\n\u0027MADV_DONTDUMP\u0027, and unset via \u0027MADV_DODUMP\u0027.  The core dump filters\ncontinue to work the same as before unless \u0027MADV_DONTDUMP\u0027 is set on the\nregion.\n\nThe qemu code which implements this features is at:\n\n  http://people.redhat.com/~jbaron/qemu-dump/qemu-dump.patch\n\nIn my testing the qemu core dump shrunk from 383MB -\u003e 13MB with this\npatch.\n\nI also believe that the \u0027MADV_DONTDUMP\u0027 flag might be useful for\nsecurity sensitive apps, which might want to select which areas are\ndumped.\n\nThis patch:\n\nThe VM_ALWAYSDUMP flag is currently used by the coredump code to\nindicate that a vma is part of a vsyscall or vdso section.  However, we\ncan determine if a vma is in one these sections by checking it against\nthe gate_vma and checking for a non-NULL return value from\narch_vma_name().  Thus, freeing a valuable vma bit.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19e5109fef2c368ab3f8a5157270f87f4a7c0326",
      "tree": "31142f922de19cedfe45f0caa660a6d58674d8cc",
      "parents": [
        "e59cc473cc603d562f2c80c12c943ef2a8cde6b2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 23 22:29:17 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:51 2012 -0400"
      },
      "message": "take removal of PF_FORKNOEXEC to flush_old_exec()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8fc3dc5a3a17aa2b353886422bd89420619af211",
      "tree": "74a3290ad9621ff1c225b772df2c529c8feb5f43",
      "parents": [
        "54bf586e1f51018ba7624c851e7aa14cee0548d2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 17 03:05:16 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:46 2012 -0400"
      },
      "message": "__register_binfmt() made void\n\nJust don\u0027t pass NULL to it - nobody does, anyway.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c8e252586f8d5de906385d8cf6385fee289a825e",
      "tree": "11bf3ac4f0d0b3961fcf1c98ee5cd1824ebd5614",
      "parents": [
        "1f033c1a6ec1a6815e9c4507d83eb20161163c37"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Mar 02 10:43:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 02 11:38:15 2012 -0800"
      },
      "message": "regset: Prevent null pointer reference on readonly regsets\n\nThe regset common infrastructure assumed that regsets would always\nhave .get and .set methods, but not necessarily .active methods.\nUnfortunately people have since written regsets without .set methods.\n\nRather than putting in stub functions everywhere, handle regsets with\nnull .get or .set methods explicitly.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0953f65d5db728df0fdc3d510a71fd811a3be758",
      "tree": "2f1c0f221a31da94f4b8565db12b945822af98b4",
      "parents": [
        "4ee5c0d05ce9b4e48e586a1ee168f166d191ddda"
      ],
      "author": {
        "name": "H. J. Lu",
        "email": "hjl.tools@gmail.com",
        "time": "Tue Feb 14 13:34:52 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Feb 20 12:48:48 2012 -0800"
      },
      "message": "elf: Allow core dump-related fields to be overridden\n\nAllow some core dump-related fields to be overridden.  This allows\ncore dumps to work correctly for x32.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "e39f560239984c3098237ad94c9449b1494163f8",
      "tree": "c86d9f84a3cb706813919ec7472fb75207bc9c8c",
      "parents": [
        "5742332dea5560d6c449b007d9539dbdc8ee531b"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney.cavm@gmail.com",
        "time": "Tue Jan 10 15:10:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "fs: binfmt_elf: create Kconfig variable for PIE randomization\n\nRandomization of PIE load address is hard coded in binfmt_elf.c for X86\nand ARM.  Create a new Kconfig variable\n(CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE) for this and use it instead.  Thus\narchitecture specific policy is pushed out of the generic binfmt_elf.c and\ninto the architecture Kconfig files.\n\nX86 and ARM Kconfigs are modified to select the new variable so there is\nno change in behavior.  A follow on patch will select it for MIPS too.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3defbe5c337dbc6da911f8cc49ae3cc3b49b453",
      "tree": "0971645887ef2848ad4f7bc86d2204aacb748de9",
      "parents": [
        "b35a35b556f5e6b7993ad0baf20173e75c09ce8c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Nov 02 13:37:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:58 2011 -0700"
      },
      "message": "binfmt_elf: fix PIE execution with randomization disabled\n\nThe case of address space randomization being disabled in runtime through\nrandomize_va_space sysctl is not treated properly in load_elf_binary(),\nresulting in SIGKILL coming at exec() time for certain PIE-linked binaries\nin case the randomization has been disabled at runtime prior to calling\nexec().\n\nHandle the randomize_va_space \u003d\u003d 0 case the same way as if we were not\nsupporting .text randomization at all.\n\nBased on original patch by H.J. Lu and Josh Boyer.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: H.J. Lu \u003chongjiu.lu@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nTested-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nAcked-by: Nicolas Pitre \u003cnicolas.pitre@linaro.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b5d783c94c328d406e801566f161adcfb018dda",
      "tree": "e7d27b987e0670099af28db0d6bfcdac33236046",
      "parents": [
        "78f32a9b479e9b9f1ce2bf620a7602c1cdbc4c8e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 12:49:47 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:10 2011 -0400"
      },
      "message": "consolidate BINPRM_FLAGS_ENFORCE_NONDUMP handling\n\nnew helper: would_dump(bprm, file).  Checks if we are allowed to\nread the file and if we are not - sets ENFORCE_NODUMP.  Exported,\nused in places that previously open-coded the same logics.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4471a675dfc7ca676c165079e91c712b09dc9ce4",
      "tree": "9746321a818cefbb2aa97d8ac4d44c4a6ae84f5a",
      "parents": [
        "5de1743e2434fcb24e3d944a20130029b8fe867a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Apr 14 15:22:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 16:06:55 2011 -0700"
      },
      "message": "brk: COMPAT_BRK: fix detection of randomized brk\n\n5520e89 (\"brk: fix min_brk lower bound computation for COMPAT_BRK\")\ntried to get the whole logic of brk randomization for legacy\n(libc5-based) applications finally right.\n\nIt turns out that the way to detect whether brk has actually been\nrandomized in the end or not introduced by that patch still doesn\u0027t work\nfor those binaries, as reported by Geert:\n\n: /sbin/init from my old m68k ramdisk exists prematurely.\n:\n: Before the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80006000\n:\n: After the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80005c8e\n:\n: Old libc5 considers brk() to have failed if the return value is not\n: identical to the requested value.\n\nI don\u0027t like it, but currently see no better option than a bit flag in\ntask_struct to catch the CONFIG_COMPAT_BRK \u0026\u0026 randomize_va_space \u003d\u003d 2\ncase.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nTested-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b81a618dcd3ea99de292dbe624f41ca68f464376",
      "tree": "c5fbe44f944da9d7dc0c224116be77094d379c8a",
      "parents": [
        "2f284c846331fa44be1300a3c2c3e85800268a00",
        "a9712bc12c40c172e393f85a9b2ba8db4bf59509"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 20:51:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 20:51:42 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  deal with races in /proc/*/{syscall,stack,personality}\n  proc: enable writing to /proc/pid/mem\n  proc: make check_mem_permission() return an mm_struct on success\n  proc: hold cred_guard_mutex in check_mem_permission()\n  proc: disable mem_write after exec\n  mm: implement access_remote_vm\n  mm: factor out main logic of access_process_vm\n  mm: use mm_struct to resolve gate vma\u0027s in __get_user_pages\n  mm: arch: rename in_gate_area_no_task to in_gate_area_no_mm\n  mm: arch: make in_gate_area take an mm_struct instead of a task_struct\n  mm: arch: make get_gate_vma take an mm_struct instead of a task_struct\n  x86: mark associated mm when running a task in 32 bit compatibility mode\n  x86: add context tag to mark mm when running a task in 32-bit compatibility mode\n  auxv: require the target to be tracable (or yourself)\n  close race in /proc/*/environ\n  report errors in /proc/*/*map* sanely\n  pagemap: close races with suid execve\n  make sessionid permissions in /proc/*/task/* match those in /proc/*\n  fix leaks in path_lookupat()\n\nFix up trivial conflicts in fs/proc/base.c\n"
    },
    {
      "commit": "31db58b3ab432f72ea76be58b12e6ffaf627d5db",
      "tree": "c88b742e1f2c52045d5abc6d35d7492ebdf64541",
      "parents": [
        "375906f8765e131a4a159b1ffebf78c15db7b3bf"
      ],
      "author": {
        "name": "Stephen Wilson",
        "email": "wilsons@start.ca",
        "time": "Sun Mar 13 15:49:15 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 23 16:36:54 2011 -0400"
      },
      "message": "mm: arch: make get_gate_vma take an mm_struct instead of a task_struct\n\nMorally, the presence of a gate vma is more an attribute of a particular mm than\na particular task.  Moreover, dropping the dependency on task_struct will help\nmake both existing and future operations on mm\u0027s more flexible and convenient.\n\nSigned-off-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nReviewed-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a530a6f23f7dca336311ef60c9ca26f3dc63688",
      "tree": "d8d010c7c1fb56d8db0da2213c9aa4b7da32e911",
      "parents": [
        "f4d93ad74c18143abd3067ca3c8ffba7d00addf4"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Tue Mar 22 16:34:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:15 2011 -0700"
      },
      "message": "binfmt_elf: quiet GCC-4.6 \u0027set but not used\u0027 warning in load_elf_binary()\n\nWith GCC-4.6 we get warnings about things being \u0027set but not used\u0027.\n\nIn load_elf_binary() this can happen with reloc_func_desc if ELF_PLAT_INIT\nis defined, but doesn\u0027t use the reloc_func_desc argument.\n\nQuiet the warning/error by marking reloc_func_desc as __maybe_unused.\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f670d0ecda73b7438eec9ed108680bc5f5362ad8",
      "tree": "02b355fa1925c392a4dac7aeaa0958b5272881c2",
      "parents": [
        "52bd19f7691b2ea6433aef0ef94c08c57efd7e79"
      ],
      "author": {
        "name": "Mikael Pettersson",
        "email": "mikpe@it.uu.se",
        "time": "Wed Jan 12 17:00:02 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:12 2011 -0800"
      },
      "message": "binfmt_elf: cleanups\n\nThis cleans up a few bits in binfmt_elf.c and binfmts.h:\n\n- the hasvdso field in struct linux_binfmt is unused, so remove it and\n  the only initialization of it\n\n- the elf_map CPP symbol is not defined anywhere in the kernel, so\n  remove an unnecessary #ifndef elf_map\n\n- reduce excessive indentation in elf_format\u0027s initializer\n\n- add missing spaces, remove extraneous spaces\n\nNo functional changes, but tested on x86 (32 and 64 bit), powerpc (32 and\n64 bit), sparc64, arm, and alpha.\n\nSigned-off-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4eab08d6050ad04d960738f589724204fd1064c",
      "tree": "8dbe00cf2c207fc2e448eaee8a763bad01e39551",
      "parents": [
        "01723a9566f9e9ce4c75e5c4c9f6dc20600871a7"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@fluxnic.net",
        "time": "Fri Aug 20 21:14:46 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Fri Oct 08 10:02:53 2010 +0100"
      },
      "message": "ARM: 6342/1: fix ASLR of PIE executables\n\nSince commits 990cb8acf2 and cc92c28b2d, it is possible to have full\naddress space layout randomization (ASLR) on ARM.  Except that one small\nchange was missing for ASLR of PIE executables.\n\nSigned-off-by: Nicolas Pitre \u003cnicolas.pitre@linaro.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "30736a4d43f4af7f1a7836d6a266be17082195c4",
      "tree": "54e388cdaf4795bdb7651be03c50bba67eb0b43a",
      "parents": [
        "8d9032bbe4671dc481261ccd4e161cd96e54b118"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Fri Mar 05 13:44:12 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "coredump: pass mm-\u003eflags as a coredump parameter for consistency\n\nPass mm-\u003eflags as a coredump parameter for consistency.\n\n ---\n1787         if (mm-\u003ecore_state || !get_dumpable(mm)) {  \u003c- (1)\n1788                 up_write(\u0026mm-\u003emmap_sem);\n1789                 put_cred(cred);\n1790                 goto fail;\n1791         }\n1792\n[...]\n1798         if (get_dumpable(mm) \u003d\u003d 2) {    /* Setuid core dump mode */ \u003c-(2)\n1799                 flag \u003d O_EXCL;          /* Stop rewrite attacks */\n1800                 cred-\u003efsuid \u003d 0;        /* Dump root private */\n1801         }\n ---\n\nSince dumpable bits are not protected by lock, there is a chance to change\nthese bits between (1) and (2).\n\nTo solve this issue, this patch copies mm-\u003eflags to\ncoredump_params.mm_flags at the beginning of do_coredump() and uses it\ninstead of get_dumpable() while dumping core.\n\nThis copy is also passed to binfmt-\u003ecore_dump, since elf*_core_dump() uses\ndump_filter bits in mm-\u003eflags.\n\n[akpm@linux-foundation.org: fix merge]\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d9032bbe4671dc481261ccd4e161cd96e54b118",
      "tree": "a31d22f488f7d6789259da68c53cb2727a925fa8",
      "parents": [
        "93eb211e6c9ff6054fcf9c5b9e344d8d9ad29175"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "elf coredump: add extended numbering support\n\nThe current ELF dumper implementation can produce broken corefiles if\nprogram headers exceed 65535.  This number is determined by the number of\nvmas which the process have.  In particular, some extreme programs may use\nmore than 65535 vmas.  (If you google max_map_count, you can find some\nusers facing this problem.) This kind of program never be able to generate\ncorrect coredumps.\n\nThis patch implements ``extended numbering\u0027\u0027 that uses sh_info field of\nthe first section header instead of e_phnum field in order to represent\nupto 4294967295 vmas.\n\nThis is supported by\nAMD64-ABI(http://www.x86-64.org/documentation.html) and\nSolaris(http://docs.sun.com/app/docs/doc/817-1984/).\nOf course, we are preparing patches for gdb and binutils.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93eb211e6c9ff6054fcf9c5b9e344d8d9ad29175",
      "tree": "424990890a34e626df8e2c68f4952d4d4734b63b",
      "parents": [
        "1fcccbac89f5bbc5e41aa72086960059fce372da"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "elf coredump: make offset calculation process and writing process explicit\n\nBy the next patch, elf_core_dump() and elf_fdpic_core_dump() will support\nextended numbering and so will produce the corefiles with section header\ntable in a special case.\n\nThe problem is the process of writing a file header offset of the section\nheader table into e_shoff field of the ELF header.  ELF header is\npositioned at the beginning of the corefile, while section header at the\nend.  So, we need to take which of the following ways:\n\n 1. Seek backward to retry writing operation for ELF header\n    after writing process for a whole part\n\n 2. Make offset calculation process and writing process\n    totally sequential\n\nThe clause 1.  is not always possible: one cannot assume that file system\nsupports seek function.  Consider the no_llseek case.\n\nTherefore, this patch adopts the clause 2.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fcccbac89f5bbc5e41aa72086960059fce372da",
      "tree": "9e42ee69f0216e612e5bd4338d6203dbad2d002f",
      "parents": [
        "088e7af73a962fcc8883b7a6392544d8342553d6"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:45 2010 -0800"
      },
      "message": "elf coredump: replace ELF_CORE_EXTRA_* macros by functions\n\nelf_core_dump() and elf_fdpic_core_dump() use #ifdef and the corresponding\nmacro for hiding _multiline_ logics in functions.  This patch removes\n#ifdef and replaces ELF_CORE_EXTRA_* by corresponding functions.  For\narchitectures not implemeonting ELF_CORE_EXTRA_*, we use weak functions in\norder to reduce a range of modification.\n\nThis cleanup is for my next patches, but I think this cleanup itself is\nworth doing regardless of my firnal purpose.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "088e7af73a962fcc8883b7a6392544d8342553d6",
      "tree": "5dce5b991cad1071522b464bd83943a1b6e885b2",
      "parents": [
        "05f47fda9fc5b17bfab189e9d54228025befc996"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:06 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:45 2010 -0800"
      },
      "message": "coredump: move dump_write() and dump_seek() into a header file\n\nMy next patch will replace ELF_CORE_EXTRA_* macros by functions, putting\nthem into other newly created *.c files.  Then, each files will contain\ndump_write(), where each pair of binfmt_*.c and elfcore.c should be the\nsame.  So, this patch moves them into a header file with dump_seek().\nAlso, the patch deletes confusing DUMP_WRITE macros in each files.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "221af7f87b97431e3ee21ce4b0e77d5411cf1549",
      "tree": "480126aada06d87c09cb62e7c8fa292572438c18",
      "parents": [
        "64a028a6de08545a2c94f302bc7694bf48aee5b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 28 22:14:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 29 08:22:01 2010 -0800"
      },
      "message": "Split \u0027flush_old_exec\u0027 into two functions\n\n\u0027flush_old_exec()\u0027 is the point of no return when doing an execve(), and\nit is pretty badly misnamed.  It doesn\u0027t just flush the old executable\nenvironment, it also starts up the new one.\n\nWhich is very inconvenient for things like setting up the new\npersonality, because we want the new personality to affect the starting\nof the new environment, but at the same time we do _not_ want the new\npersonality to take effect if flushing the old one fails.\n\nAs a result, the x86-64 \u002732-bit\u0027 personality is actually done using this\ninsane \"I\u0027m going to change the ABI, but I haven\u0027t done it yet\" bit\n(TIF_ABI_PENDING), with SET_PERSONALITY() not actually setting the\npersonality, but just the \"pending\" bit, so that \"flush_thread()\" can do\nthe actual personality magic.\n\nThis patch in no way changes any of that insanity, but it does split the\n\u0027flush_old_exec()\u0027 function up into a preparatory part that can fail\n(still called flush_old_exec()), and a new part that will actually set\nup the new exec environment (setup_new_exec()).  All callers are changed\nto trivially comply with the new world order.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6151dfea21496d43dbaba32cfcd9c9f404769bc",
      "tree": "092b73a1cd7edbd0e04fe2076ed678447446aa70",
      "parents": [
        "9cd80bbb07fcd6d4d037fad4297496d3b132ac6b"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Thu Dec 17 15:27:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 15:45:31 2009 -0800"
      },
      "message": "mm: introduce coredump parameter structure\n\nIntroduce coredump parameter data structure (struct coredump_params) to\nsimplify binfmt-\u003ecore_dump() arguments.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "698ba7b5a3a7be772922340fade365c675b8243f",
      "tree": "3e251d4ee8cbd8489d75e7570b2d821395021d59",
      "parents": [
        "d1da96aada79fd1d29ae4e3157120d1ce1e77594"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Dec 15 16:47:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:12 2009 -0800"
      },
      "message": "elf: kill USE_ELF_CORE_DUMP\n\nCurrently all architectures but microblaze unconditionally define\nUSE_ELF_CORE_DUMP.  The microblaze omission seems like an error to me, so\nlet\u0027s kill this ifdef and make sure we are the same everywhere.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Michal Simek \u003cmichal.simek@petalogix.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0cf062d0ffa33d491e2695b0d298ccf9cbb58d3d",
      "tree": "f936d4c0a9ee6c15f76266d5d0b9cbdec3cafc8c",
      "parents": [
        "d9588725e52650e82989707f8fd2feb67ad2dc8e"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Wed Sep 23 15:57:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "elf: clean up fill_note_info()\n\nIntroduce a helper function elf_note_info_init() to help fill_note_info()\nto do initializations, also fix the potential memory leaks.\n\n[akpm@linux-foundation.org: remove NUM_NOTES]\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3e8fccd06d27773186a0094371daf2d84c79469",
      "tree": "46e652e6ac3588a26c6d3e38ea10274eb3fc2ea8",
      "parents": [
        "1c3aff1ceec2cc86810e2690e67873ff0c505862"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: add get_dump_page\n\nIn preparation for the next patch, add a simple get_dump_page(addr)\ninterface for the CONFIG_ELF_CORE dumpers to use, instead of calling\nget_user_pages() directly.  They\u0027re not interested in errors: they\njust want to use holes as much as possible, to save space and make\nsure that the data is aligned where the headers said it would be.\n\nOh, and don\u0027t use that horrid DUMP_SEEK(off) macro!\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "752015d1b0683a8c623ebfe4c62893413e9b30d3",
      "tree": "1ad20299d64fd85678ae9714f88d8683ed335da1",
      "parents": [
        "74fca6a42863ffacaf7ba6f1936a9f228950f657"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Sep 08 19:49:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 20:03:47 2009 -0700"
      },
      "message": "binfmt_elf: fix PT_INTERP bss handling\n\nIn fs/binfmt_elf.c, load_elf_interp() calls padzero() for .bss even if\nthe PT_LOAD has no PROT_WRITE and no .bss.  This generates EFAULT.\n\nHere is a small test case.  (Yes, there are other, useful PT_INTERP\nwhich have only .text and no .data/.bss.)\n\n\t----- ptinterp.S\n\t_start: .globl _start\n\t\t nop\n\t\t int3\n\t-----\n\t$ gcc -m32 -nostartfiles -nostdlib -o ptinterp ptinterp.S\n\t$ gcc -m32 -Wl,--dynamic-linker\u003dptinterp -o hello hello.c\n\t$ ./hello\n\tSegmentation fault  # during execve() itself\n\n\tAfter applying the patch:\n\t$ ./hello\n\tTrace trap  # user-mode execution after execve() finishes\n\nIf the ELF headers are actually self-inconsistent, then dying is fine.\nBut having no PROT_WRITE segment is perfectly normal and correct if\nthere is no segment with p_memsz \u003e p_filesz (i.e. bss).  John Reiser\nsuggested checking for PROT_WRITE in the bss logic.  I think it makes\nmost sense to simply apply the bss logic only when there is bss.\n\nThis patch looks less trivial than it is due to some reindentation.\nIt just moves the \"if (last_bss \u003e elf_bss) {\" test up to include the\npartial-page bss logic as well as the more-pages bss logic.\n\nReported-by: John Reiser \u003cjreiser@bitwagon.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2dbe12557d85d81f4527879499f55681c3cca4f",
      "tree": "ced6a9800ecd9ee06a5c84fbdbb313e8ee1f44d1",
      "parents": [
        "2027bd9f9290ede1664d5fa18b3fbd6c5f7401d3"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Wed Jul 01 01:06:26 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 01 11:14:28 2009 -0700"
      },
      "message": "elf: fix one check-after-use\n\nCheck before use it.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "341c87bf346f57748230628c5ad6ee69219250e8",
      "tree": "93937b91c3680127e38a310d5679b9ca84067b04",
      "parents": [
        "b1cfebc9231a69d46d66982a2c856ba41ef6d6b9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 30 11:41:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:55:59 2009 -0700"
      },
      "message": "elf: limit max map count to safe value\n\nWith ELF, at generating coredump, some more headers other than used\nvmas are added.\n\nWhen max_map_count \u003d\u003d 65536, a core generated by following kinds of\ncode can be unreadable because the number of ELF\u0027s program header is\nwritten in 16bit in Ehdr (please see elf.h) and the number overflows.\n\n\u003d\u003d\n\t... \u003d mmap(); (munmap, mprotect, etc...)\n\tif (failed)\n\t\tabort();\n\u003d\u003d\n\nThis can happen in mmap/munmap/mprotect/etc...which calls split_vma().\n\nI think 65536 is not safe as _default_ and reduce it to 65530 is good\nfor avoiding unexpected corrupted core.\n\nAnyway, max_map_count can be enlarged by sysctl if a user is brave..\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b34fc5880a2dcc7e5ed9837ef8d6bae051ab266",
      "tree": "477b9a29135cc7b8815ce7ce19201bce371c56a1",
      "parents": [
        "72a1de39f89325a834a8c70b2a0d8f71d919f640"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "elf_core_dump: use rcu_read_lock() to access -\u003ereal_parent\n\nIn theory it is not safe to dereference -\u003eparent/real_parent without\ntasklist or rcu lock, we can race with re-parenting.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0f35dde6e748fa1a3f5d8e23a200ad1d5a4a749",
      "tree": "3357c777b6a0afe68e73fc5014bcba243e7e629e",
      "parents": [
        "e7b9b550f53e81ea38e71d322d6f95730df058a2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 16:34:09 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:27 2009 -0400"
      },
      "message": "Trim includes in binfmt_elf\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7b9b550f53e81ea38e71d322d6f95730df058a2",
      "tree": "2df697e6757a4af427c1aeb05ba0af5cd8f738ca",
      "parents": [
        "5ad4e53bd5406ee214ddc5a41f03f779b8b2d526"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 16:31:16 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:27 2009 -0400"
      },
      "message": "Don\u0027t mess with descriptor table in load_elf_binary()\n\n... since we don\u0027t tell anyone which descriptor does the file get.\nWe used to, but only in case of ELF binary with a.out loader and\nthat stuff has been gone for a while.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "92dc07b1f988e8c237a38e23be660b9b8533e6fd",
      "tree": "4a689fbb465d7302b105678152170d8665f56ae7",
      "parents": [
        "6cec50838ed04a9833fb5549f698d3756bbe7e72"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Feb 06 17:34:07 2009 -0800"
      },
      "committer": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Feb 06 17:34:07 2009 -0800"
      },
      "message": "elf core dump: fix get_user use\n\nThe elf_core_dump() code does its work with set_fs(KERNEL_DS) in force,\nso vma_dump_size() needs to switch back with set_fs(USER_DS) to safely\nuse get_user() for a normal user-space address.\n\nChecking for VM_READ optimizes out the case where get_user() would fail\nanyway.  The vm_file check here was already superfluous given the control\nflow earlier in the function, so that is a cleanup/optimization unrelated\nto other changes but an obvious and trivial one.\n\nReported-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "f06295b44c296c8fb08823a3118468ae343b60f2",
      "tree": "cf50932653af81aae1dc33bbf18ba7d8a94f5223",
      "parents": [
        "a6684999f7c6bddd75cf9755ad7ff44435f72fff"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Wed Jan 07 18:08:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:12 2009 -0800"
      },
      "message": "ELF: implement AT_RANDOM for glibc PRNG seeding\n\nWhile discussing[1] the need for glibc to have access to random bytes\nduring program load, it seems that an earlier attempt to implement\nAT_RANDOM got stalled.  This implements a random 16 byte string, available\nto every ELF program via a new auxv AT_RANDOM vector.\n\n[1] http://sourceware.org/ml/libc-alpha/2008-10/msg00006.html\n\nUlrich said:\n\nglibc needs right after startup a bit of random data for internal\nprotections (stack canary etc).  What is now in upstream glibc is that we\nalways unconditionally open /dev/urandom, read some data, and use it.  For\nevery process startup.  That\u0027s slow.\n\n...\n\nThe solution is to provide a limited amount of random data to the\nstarting process in the aux vector.  I suggested 16 bytes and this is\nwhat the patch implements.  If we need only 16 bytes or less we use the\ndata directly.  If we need more we\u0027ll use the 16 bytes to see a PRNG.\nThis avoids the costly /dev/urandom use and it allows the kernel to use\nthe most adequate source of random data for this purpose.  It might not\nbe the same pool as that for /dev/urandom.\n\nConcerns were expressed about the depletion of the randomness pool.  But\nthis patch doesn\u0027t make the situation worse, it doesn\u0027t deplete entropy\nmore than happens now.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1db2a5c11e495366bff35cf7445d494703f7febe",
      "tree": "3347dd1cab0a2a96a4333524298a62132eb22336",
      "parents": [
        "a39b863342b8aba52390092be95db58f6ed56061",
        "cef7125def4dd104769f400c941199614da0aca1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:33:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:33:21 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (85 commits)\n  [S390] provide documentation for hvc_iucv kernel parameter.\n  [S390] convert ctcm printks to dev_xxx and pr_xxx macros.\n  [S390] convert zfcp printks to pr_xxx macros.\n  [S390] convert vmlogrdr printks to pr_xxx macros.\n  [S390] convert zfcp dumper printks to pr_xxx macros.\n  [S390] convert cpu related printks to pr_xxx macros.\n  [S390] convert qeth printks to dev_xxx and pr_xxx macros.\n  [S390] convert sclp printks to pr_xxx macros.\n  [S390] convert iucv printks to dev_xxx and pr_xxx macros.\n  [S390] convert ap_bus printks to pr_xxx macros.\n  [S390] convert dcssblk and extmem printks messages to pr_xxx macros.\n  [S390] convert monwriter printks to pr_xxx macros.\n  [S390] convert s390 debug feature printks to pr_xxx macros.\n  [S390] convert monreader printks to pr_xxx macros.\n  [S390] convert appldata printks to pr_xxx macros.\n  [S390] convert setup printks to pr_xxx macros.\n  [S390] convert hypfs printks to pr_xxx macros.\n  [S390] convert time printks to pr_xxx macros.\n  [S390] convert cpacf printks to pr_xxx macros.\n  [S390] convert cio printks to pr_xxx macros.\n  ...\n"
    },
    {
      "commit": "fc5243d98ac2575ad14a974b3c097e9ba874c03d",
      "tree": "014f2b61180433799a438e1e2022636f0b8c6a7b",
      "parents": [
        "a114a9d69d1362546b9dda651028acb311ddb7af"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 25 13:38:35 2008 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 25 13:38:54 2008 +0100"
      },
      "message": "[S390] arch_setup_additional_pages arguments\n\narch_setup_additional_pages currently gets two arguments, the binary\nformat descripton and an indication if the process uses an executable\nstack or not. The second argument is not used by anybody, it could\nbe removed without replacement.\n\nWhat actually does make sense is to pass an indication if the process\nuses the elf interpreter or not. The glibc code will not use anything\nfrom the vdso if the process does not use the dynamic linker, so for\nstatically linked binaries the architecture backend can choose not\nto map the vdso.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "a6f76f23d297f70e2a6b3ec607f7aeeea9e37e8d",
      "tree": "8f95617996d0974507f176163459212a7def8b9a",
      "parents": [
        "d84f4f992cbd76e8f39c488cf0c5d123843923b1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:24 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:24 2008 +1100"
      },
      "message": "CRED: Make execve() take advantage of copy-on-write credentials\n\nMake execve() take advantage of copy-on-write credentials, allowing it to set\nup the credentials in advance, and then commit the whole lot after the point\nof no return.\n\nThis patch and the preceding patches have been tested with the LTP SELinux\ntestsuite.\n\nThis patch makes several logical sets of alteration:\n\n (1) execve().\n\n     The credential bits from struct linux_binprm are, for the most part,\n     replaced with a single credentials pointer (bprm-\u003ecred).  This means that\n     all the creds can be calculated in advance and then applied at the point\n     of no return with no possibility of failure.\n\n     I would like to replace bprm-\u003ecap_effective with:\n\n\tcap_isclear(bprm-\u003ecap_effective)\n\n     but this seems impossible due to special behaviour for processes of pid 1\n     (they always retain their parent\u0027s capability masks where normally they\u0027d\n     be changed - see cap_bprm_set_creds()).\n\n     The following sequence of events now happens:\n\n     (a) At the start of do_execve, the current task\u0027s cred_exec_mutex is\n     \t locked to prevent PTRACE_ATTACH from obsoleting the calculation of\n     \t creds that we make.\n\n     (a) prepare_exec_creds() is then called to make a copy of the current\n     \t task\u0027s credentials and prepare it.  This copy is then assigned to\n     \t bprm-\u003ecred.\n\n  \t This renders security_bprm_alloc() and security_bprm_free()\n     \t unnecessary, and so they\u0027ve been removed.\n\n     (b) The determination of unsafe execution is now performed immediately\n     \t after (a) rather than later on in the code.  The result is stored in\n     \t bprm-\u003eunsafe for future reference.\n\n     (c) prepare_binprm() is called, possibly multiple times.\n\n     \t (i) This applies the result of set[ug]id binaries to the new creds\n     \t     attached to bprm-\u003ecred.  Personality bit clearance is recorded,\n     \t     but now deferred on the basis that the exec procedure may yet\n     \t     fail.\n\n         (ii) This then calls the new security_bprm_set_creds().  This should\n\t     calculate the new LSM and capability credentials into *bprm-\u003ecred.\n\n\t     This folds together security_bprm_set() and parts of\n\t     security_bprm_apply_creds() (these two have been removed).\n\t     Anything that might fail must be done at this point.\n\n         (iii) bprm-\u003ecred_prepared is set to 1.\n\n\t     bprm-\u003ecred_prepared is 0 on the first pass of the security\n\t     calculations, and 1 on all subsequent passes.  This allows SELinux\n\t     in (ii) to base its calculations only on the initial script and\n\t     not on the interpreter.\n\n     (d) flush_old_exec() is called to commit the task to execution.  This\n     \t performs the following steps with regard to credentials:\n\n\t (i) Clear pdeath_signal and set dumpable on certain circumstances that\n\t     may not be covered by commit_creds().\n\n         (ii) Clear any bits in current-\u003epersonality that were deferred from\n             (c.i).\n\n     (e) install_exec_creds() [compute_creds() as was] is called to install the\n     \t new credentials.  This performs the following steps with regard to\n     \t credentials:\n\n         (i) Calls security_bprm_committing_creds() to apply any security\n             requirements, such as flushing unauthorised files in SELinux, that\n             must be done before the credentials are changed.\n\n\t     This is made up of bits of security_bprm_apply_creds() and\n\t     security_bprm_post_apply_creds(), both of which have been removed.\n\t     This function is not allowed to fail; anything that might fail\n\t     must have been done in (c.ii).\n\n         (ii) Calls commit_creds() to apply the new credentials in a single\n             assignment (more or less).  Possibly pdeath_signal and dumpable\n             should be part of struct creds.\n\n\t (iii) Unlocks the task\u0027s cred_replace_mutex, thus allowing\n\t     PTRACE_ATTACH to take place.\n\n         (iv) Clears The bprm-\u003ecred pointer as the credentials it was holding\n             are now immutable.\n\n         (v) Calls security_bprm_committed_creds() to apply any security\n             alterations that must be done after the creds have been changed.\n             SELinux uses this to flush signals and signal handlers.\n\n     (f) If an error occurs before (d.i), bprm_free() will call abort_creds()\n     \t to destroy the proposed new credentials and will then unlock\n     \t cred_replace_mutex.  No changes to the credentials will have been\n     \t made.\n\n (2) LSM interface.\n\n     A number of functions have been changed, added or removed:\n\n     (*) security_bprm_alloc(), -\u003ebprm_alloc_security()\n     (*) security_bprm_free(), -\u003ebprm_free_security()\n\n     \t Removed in favour of preparing new credentials and modifying those.\n\n     (*) security_bprm_apply_creds(), -\u003ebprm_apply_creds()\n     (*) security_bprm_post_apply_creds(), -\u003ebprm_post_apply_creds()\n\n     \t Removed; split between security_bprm_set_creds(),\n     \t security_bprm_committing_creds() and security_bprm_committed_creds().\n\n     (*) security_bprm_set(), -\u003ebprm_set_security()\n\n     \t Removed; folded into security_bprm_set_creds().\n\n     (*) security_bprm_set_creds(), -\u003ebprm_set_creds()\n\n     \t New.  The new credentials in bprm-\u003ecreds should be checked and set up\n     \t as appropriate.  bprm-\u003ecred_prepared is 0 on the first call, 1 on the\n     \t second and subsequent calls.\n\n     (*) security_bprm_committing_creds(), -\u003ebprm_committing_creds()\n     (*) security_bprm_committed_creds(), -\u003ebprm_committed_creds()\n\n     \t New.  Apply the security effects of the new credentials.  This\n     \t includes closing unauthorised files in SELinux.  This function may not\n     \t fail.  When the former is called, the creds haven\u0027t yet been applied\n     \t to the process; when the latter is called, they have.\n\n \t The former may access bprm-\u003ecred, the latter may not.\n\n (3) SELinux.\n\n     SELinux has a number of changes, in addition to those to support the LSM\n     interface changes mentioned above:\n\n     (a) The bprm_security_struct struct has been removed in favour of using\n     \t the credentials-under-construction approach.\n\n     (c) flush_unauthorized_files() now takes a cred pointer and passes it on\n     \t to inode_has_perm(), file_has_perm() and dentry_open().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c69e8d9c01db2adc503464993c358901c9af9de4",
      "tree": "bed94aaa9aeb7a7834d1c880f72b62a11a752c78",
      "parents": [
        "86a264abe542cfececb4df129bc45a0338d8cdb9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "message": "CRED: Use RCU to access another task\u0027s creds and to release a task\u0027s own creds\n\nUse RCU to access another task\u0027s creds and to release a task\u0027s own creds.\nThis means that it will be possible for the credentials of a task to be\nreplaced without another task (a) requiring a full lock to read them, and (b)\nseeing deallocated memory.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "86a264abe542cfececb4df129bc45a0338d8cdb9",
      "tree": "30152f04ba847f311028d5ca697f864c16c7ebb3",
      "parents": [
        "f1752eec6145c97163dbce62d17cf5d928e28a27"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "message": "CRED: Wrap current-\u003ecred and a few other accessors\n\nWrap current-\u003ecred and a few other accessors to hide their actual\nimplementation.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b6dff3ec5e116e3af6f537d4caedcad6b9e5082a",
      "tree": "9e76f972eb7ce9b84e0146c8e4126a3f86acb428",
      "parents": [
        "15a2460ed0af7538ca8e6c610fe607a2cd9da142"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "message": "CRED: Separate task security context from task_struct\n\nSeparate the task security context from task_struct.  At this point, the\nsecurity data is temporarily embedded in the task_struct with two pointers\npointing to it.\n\nNote that the Alpha arch is altered as it refers to (E)UID and (E)GID in\nentry.S via asm-offsets.\n\nWith comment fixes Signed-off-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "99ebcf8285df28f32fd2d1c19a7166e70f00309c",
      "tree": "caf45f39a77026b2fae2413c145067a1e5164701",
      "parents": [
        "72558dde738b06cc01e16b3247a9659ca739e22d",
        "c465a76af658b443075d6efee1c3131257643020"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:19:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:19:56 2008 -0700"
      },
      "message": "Merge branch \u0027v28-timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027v28-timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (36 commits)\n  fix documentation of sysrq-q really\n  Fix documentation of sysrq-q\n  timer_list: add base address to clock base\n  timer_list: print cpu number of clockevents device\n  timer_list: print real timer address\n  NOHZ: restart tick device from irq_enter()\n  NOHZ: split tick_nohz_restart_sched_tick()\n  NOHZ: unify the nohz function calls in irq_enter()\n  timers: fix itimer/many thread hang, fix\n  timers: fix itimer/many thread hang, v3\n  ntp: improve adjtimex frequency rounding\n  timekeeping: fix rounding problem during clock update\n  ntp: let update_persistent_clock() sleep\n  hrtimer: reorder struct hrtimer to save 8 bytes on 64bit builds\n  posix-timers: lock_timer: make it readable\n  posix-timers: lock_timer: kill the bogus -\u003eit_id check\n  posix-timers: kill -\u003eit_sigev_signo and -\u003eit_sigev_value\n  posix-timers: sys_timer_create: cleanup the error handling\n  posix-timers: move the initialization of timer-\u003esigq from send to create path\n  posix-timers: sys_timer_create: simplify and s/tasklist/rcu/\n  ...\n\nFix trivial conflicts due to sysrq-q description clahes in\nDocumentation/sysrq.txt and drivers/char/sysrq.c\n"
    },
    {
      "commit": "e575f111dc0f27044e170580e7de50985ab3e011",
      "tree": "96021950c36cd6c537a8fc00811f4846767813b8",
      "parents": [
        "d903ef9f38813e7eb268744a7e579e92f411c83a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Sat Oct 18 20:27:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "coredump_filter: add hugepage dumping\n\nPresently hugepage\u0027s vma has a VM_RESERVED flag in order not to be\nswapped.  But a VM_RESERVED vma isn\u0027t core dumped because this flag is\noften used for some kernel vmas (e.g.  vmalloc, sound related).\n\nThus hugepages are never dumped and it can\u0027t be debugged easily.  Many\ndevelopers want hugepages to be included into core-dump.\n\nHowever, We can\u0027t read generic VM_RESERVED area because this area is often\nIO mapping area.  then these area reading may change device state.  it is\ndefinitly undesiable side-effect.\n\nSo adding a hugepage specific bit to the coredump filter is better.  It\nwill be able to hugepage core dumping and doesn\u0027t cause any side-effect to\nany i/o devices.\n\nIn additional, libhugetlb use hugetlb private mapping pages as anonymous\npage.  Then, hugepage private mapping pages should be core dumped by\ndefault.\n\nThen, /proc/[pid]/core_dump_filter has two new bits.\n\n - bit 5 mean hugetlb private mapping pages are dumped or not. (default: yes)\n - bit 6 mean hugetlb shared mapping pages are dumped or not.  (default: no)\n\nI tested by following method.\n\n% ulimit -c unlimited\n% ./crash_hugepage  50\n% ./crash_hugepage  50  -p\n% ls -lh\n% gdb ./crash_hugepage core\n%\n% echo 0x43 \u003e /proc/self/coredump_filter\n% ./crash_hugepage  50\n% ./crash_hugepage  50  -p\n% ls -lh\n% gdb ./crash_hugepage core\n\n#include \u003cstdlib.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/mman.h\u003e\n#include \u003cstring.h\u003e\n\n#include \"hugetlbfs.h\"\n\nint main(int argc, char** argv){\n\tchar* p;\n\tint ch;\n\tint mmap_flags \u003d MAP_SHARED;\n\tint fd;\n\tint nr_pages;\n\n\twhile((ch \u003d getopt(argc, argv, \"p\")) !\u003d -1) {\n\t\tswitch (ch) {\n\t\tcase \u0027p\u0027:\n\t\t\tmmap_flags \u0026\u003d ~MAP_SHARED;\n\t\t\tmmap_flags |\u003d MAP_PRIVATE;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* nothing*/\n\t\t\tbreak;\n\t\t}\n\t}\n\targc -\u003d optind;\n\targv +\u003d optind;\n\n\tif (argc \u003d\u003d 0){\n\t\tprintf(\"need # of pages\\n\");\n\t\texit(1);\n\t}\n\n\tnr_pages \u003d atoi(argv[0]);\n\tif (nr_pages \u003c 2) {\n\t\tprintf(\"nr_pages must \u003e2\\n\");\n\t\texit(1);\n\t}\n\n\tfd \u003d hugetlbfs_unlinked_fd();\n\tp \u003d mmap(NULL, nr_pages * gethugepagesize(),\n\t\t PROT_READ|PROT_WRITE, mmap_flags, fd, 0);\n\n\tsleep(2);\n\n\t*(p + gethugepagesize()) \u003d 1; /* COW */\n\tsleep(2);\n\n\t/* crash! */\n\t*(int*)0 \u003d 1;\n\n\treturn 0;\n}\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Kawai Hidehiro \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c465a76af658b443075d6efee1c3131257643020",
      "tree": "63c28c9fab02dedec7f03cee4a3ef7fe4dc1c072",
      "parents": [
        "2d42244ae71d6c7b0884b5664cf2eda30fb2ae68",
        "1b02469088ac7a13d7e622b618b7410d0f1ce5ec",
        "fb02fbc14d17837b4b7b02dbb36142c16a7bf208",
        "d40e944c25fb4642adb2a4c580a48218a9f3f824",
        "1508487e7f16d992ad23cabd3712563ff912f413",
        "322acf6585f3c4e82ee32a246b0483ca0f6ad3f4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/debug\u0027 into v28-timers-for-linus\n"
    },
    {
      "commit": "0b59268285ca6cdc46191f2995bf632088e3e277",
      "tree": "91f95eeb809c5fe13d0ba5b055e26879f9ec9357",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Oct 16 15:39:57 2008 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Oct 16 15:40:05 2008 +0200"
      },
      "message": "[PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY\n\nThe SET_PERSONALITY macro is always called with a second argument of 0.\nRemove the ibcs argument and the various tests to set the PER_SVR4\npersonality.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f06febc96ba8e0af80bcc3eaec0a109e88275fac",
      "tree": "46dba9432ef25d2eae9434ff2df638c7a268c0f1",
      "parents": [
        "6bfb09a1005193be5c81ebac9f3ef85210142650"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Fri Sep 12 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 14 16:25:35 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang\n\nOverview\n\nThis patch reworks the handling of POSIX CPU timers, including the\nITIMER_PROF, ITIMER_VIRT timers and rlimit handling.  It was put together\nwith the help of Roland McGrath, the owner and original writer of this code.\n\nThe problem we ran into, and the reason for this rework, has to do with using\na profiling timer in a process with a large number of threads.  It appears\nthat the performance of the old implementation of run_posix_cpu_timers() was\nat least O(n*3) (where \"n\" is the number of threads in a process) or worse.\nEverything is fine with an increasing number of threads until the time taken\nfor that routine to run becomes the same as or greater than the tick time, at\nwhich point things degrade rather quickly.\n\nThis patch fixes bug 9906, \"Weird hang with NPTL and SIGPROF.\"\n\nCode Changes\n\nThis rework corrects the implementation of run_posix_cpu_timers() to make it\nrun in constant time for a particular machine.  (Performance may vary between\none machine and another depending upon whether the kernel is built as single-\nor multiprocessor and, in the latter case, depending upon the number of\nrunning processors.)  To do this, at each tick we now update fields in\nsignal_struct as well as task_struct.  The run_posix_cpu_timers() function\nuses those fields to make its decisions.\n\nWe define a new structure, \"task_cputime,\" to contain user, system and\nscheduler times and use these in appropriate places:\n\nstruct task_cputime {\n\tcputime_t utime;\n\tcputime_t stime;\n\tunsigned long long sum_exec_runtime;\n};\n\nThis is included in the structure \"thread_group_cputime,\" which is a new\nsubstructure of signal_struct and which varies for uniprocessor versus\nmultiprocessor kernels.  For uniprocessor kernels, it uses \"task_cputime\" as\na simple substructure, while for multiprocessor kernels it is a pointer:\n\nstruct thread_group_cputime {\n\tstruct task_cputime totals;\n};\n\nstruct thread_group_cputime {\n\tstruct task_cputime *totals;\n};\n\nWe also add a new task_cputime substructure directly to signal_struct, to\ncache the earliest expiration of process-wide timers, and task_cputime also\nreplaces the it_*_expires fields of task_struct (used for earliest expiration\nof thread timers).  The \"thread_group_cputime\" structure contains process-wide\ntimers that are updated via account_user_time() and friends.  In the non-SMP\ncase the structure is a simple aggregator; unfortunately in the SMP case that\nsimplicity was not achievable due to cache-line contention between CPUs (in\none measured case performance was actually _worse_ on a 16-cpu system than\nthe same test on a 4-cpu system, due to this contention).  For SMP, the\nthread_group_cputime counters are maintained as a per-cpu structure allocated\nusing alloc_percpu().  The timer functions update only the timer field in\nthe structure corresponding to the running CPU, obtained using per_cpu_ptr().\n\nWe define a set of inline functions in sched.h that we use to maintain the\nthread_group_cputime structure and hide the differences between UP and SMP\nimplementations from the rest of the kernel.  The thread_group_cputime_init()\nfunction initializes the thread_group_cputime structure for the given task.\nThe thread_group_cputime_alloc() is a no-op for UP; for SMP it calls the\nout-of-line function thread_group_cputime_alloc_smp() to allocate and fill\nin the per-cpu structures and fields.  The thread_group_cputime_free()\nfunction, also a no-op for UP, in SMP frees the per-cpu structures.  The\nthread_group_cputime_clone_thread() function (also a UP no-op) for SMP calls\nthread_group_cputime_alloc() if the per-cpu structures haven\u0027t yet been\nallocated.  The thread_group_cputime() function fills the task_cputime\nstructure it is passed with the contents of the thread_group_cputime fields;\nin UP it\u0027s that simple but in SMP it must also safely check that tsk-\u003esignal\nis non-NULL (if it is it just uses the appropriate fields of task_struct) and,\nif so, sums the per-cpu values for each online CPU.  Finally, the three\nfunctions account_group_user_time(), account_group_system_time() and\naccount_group_exec_runtime() are used by timer functions to update the\nrespective fields of the thread_group_cputime structure.\n\nNon-SMP operation is trivial and will not be mentioned further.\n\nThe per-cpu structure is always allocated when a task creates its first new\nthread, via a call to thread_group_cputime_clone_thread() from copy_signal().\nIt is freed at process exit via a call to thread_group_cputime_free() from\ncleanup_signal().\n\nAll functions that formerly summed utime/stime/sum_sched_runtime values from\nfrom all threads in the thread group now use thread_group_cputime() to\nsnapshot the values in the thread_group_cputime structure or the values in\nthe task structure itself if the per-cpu structure hasn\u0027t been allocated.\n\nFinally, the code in kernel/posix-cpu-timers.c has changed quite a bit.\nThe run_posix_cpu_timers() function has been split into a fast path and a\nslow path; the former safely checks whether there are any expired thread\ntimers and, if not, just returns, while the slow path does the heavy lifting.\nWith the dedicated thread group fields, timers are no longer \"rebalanced\" and\nthe process_timer_rebalance() function and related code has gone away.  All\nsumming loops are gone and all code that used them now uses the\nthread_group_cputime() inline.  When process-wide timers are set, the new\ntask_cputime structure in signal_struct is used to cache the earliest\nexpiration; this is checked in the fast path.\n\nPerformance\n\nThe fix appears not to add significant overhead to existing operations.  It\ngenerally performs the same as the current code except in two cases, one in\nwhich it performs slightly worse (Case 5 below) and one in which it performs\nvery significantly better (Case 2 below).  Overall it\u0027s a wash except in those\ntwo cases.\n\nI\u0027ve since done somewhat more involved testing on a dual-core Opteron system.\n\nCase 1: With no itimer running, for a test with 100,000 threads, the fixed\n\tkernel took 1428.5 seconds, 513 seconds more than the unfixed system,\n\tall of which was spent in the system.  There were twice as many\n\tvoluntary context switches with the fix as without it.\n\nCase 2: With an itimer running at .01 second ticks and 4000 threads (the most\n\tan unmodified kernel can handle), the fixed kernel ran the test in\n\teight percent of the time (5.8 seconds as opposed to 70 seconds) and\n\thad better tick accuracy (.012 seconds per tick as opposed to .023\n\tseconds per tick).\n\nCase 3: A 4000-thread test with an initial timer tick of .01 second and an\n\tinterval of 10,000 seconds (i.e. a timer that ticks only once) had\n\tvery nearly the same performance in both cases:  6.3 seconds elapsed\n\tfor the fixed kernel versus 5.5 seconds for the unfixed kernel.\n\nWith fewer threads (eight in these tests), the Case 1 test ran in essentially\nthe same time on both the modified and unmodified kernels (5.2 seconds versus\n5.8 seconds).  The Case 2 test ran in about the same time as well, 5.9 seconds\nversus 5.4 seconds but again with much better tick accuracy, .013 seconds per\ntick versus .025 seconds per tick for the unmodified kernel.\n\nSince the fix affected the rlimit code, I also tested soft and hard CPU limits.\n\nCase 4: With a hard CPU limit of 20 seconds and eight threads (and an itimer\n\trunning), the modified kernel was very slightly favored in that while\n\tit killed the process in 19.997 seconds of CPU time (5.002 seconds of\n\twall time), only .003 seconds of that was system time, the rest was\n\tuser time.  The unmodified kernel killed the process in 20.001 seconds\n\tof CPU (5.014 seconds of wall time) of which .016 seconds was system\n\ttime.  Really, though, the results were too close to call.  The results\n\twere essentially the same with no itimer running.\n\nCase 5: With a soft limit of 20 seconds and a hard limit of 2000 seconds\n\t(where the hard limit would never be reached) and an itimer running,\n\tthe modified kernel exhibited worse tick accuracy than the unmodified\n\tkernel: .050 seconds/tick versus .028 seconds/tick.  Otherwise,\n\tperformance was almost indistinguishable.  With no itimer running this\n\ttest exhibited virtually identical behavior and times in both cases.\n\nIn times past I did some limited performance testing.  those results are below.\n\nOn a four-cpu Opteron system without this fix, a sixteen-thread test executed\nin 3569.991 seconds, of which user was 3568.435s and system was 1.556s.  On\nthe same system with the fix, user and elapsed time were about the same, but\nsystem time dropped to 0.007 seconds.  Performance with eight, four and one\nthread were comparable.  Interestingly, the timer ticks with the fix seemed\nmore accurate:  The sixteen-thread test with the fix received 149543 ticks\nfor 0.024 seconds per tick, while the same test without the fix received 58720\nfor 0.061 seconds per tick.  Both cases were configured for an interval of\n0.01 seconds.  Again, the other tests were comparable.  Each thread in this\ntest computed the primes up to 25,000,000.\n\nI also did a test with a large number of threads, 100,000 threads, which is\nimpossible without the fix.  In this case each thread computed the primes only\nup to 10,000 (to make the runtime manageable).  System time dominated, at\n1546.968 seconds out of a total 2176.906 seconds (giving a user time of\n629.938s).  It received 147651 ticks for 0.015 seconds per tick, still quite\naccurate.  There is obviously no comparable test without the fix.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6341c393fcc37d58727865f1ee2f65e632e9d4f0",
      "tree": "6e88d928e17f663b225884e81877a7a069d7c514",
      "parents": [
        "88ac2921a71f788ed693bcd44731dd6bc1994640"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: exec\n\nThis moves all the ptrace hooks related to exec into tracehook.h inlines.\n\nThis also lifts the calls for tracing out of the binfmt load_binary hooks\ninto search_binary_handler() after it calls into the binfmt module.  This\nchange has no effect, since all the binfmt modules\u0027 load_binary functions\ndid the call at the end on success, and now search_binary_handler() does\nit immediately after return if successful.  We consolidate the repeated\ncode, and binfmt modules no longer need to import ptrace_notify().\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5047887caf1806f31652210df27fb62a7c43f27d",
      "tree": "4098ead40c1aa7b904167f67cff87a247cfa0b6c",
      "parents": [
        "996abf053eec4d67136be8b911bbaaf989cfb99c",
        "973b7d83ebeb1e34b8bee69208916e5f0e2353c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 11:08:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 11:08:17 2008 -0700"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (34 commits)\n  powerpc: Wireup new syscalls\n  Move update_mmu_cache() declaration from tlbflush.h to pgtable.h\n  powerpc/pseries: Remove kmalloc call in handling writes to lparcfg\n  powerpc/pseries: Update arch vector to indicate support for CMO\n  ibmvfc: Add support for collaborative memory overcommit\n  ibmvscsi: driver enablement for CMO\n  ibmveth: enable driver for CMO\n  ibmveth: Automatically enable larger rx buffer pools for larger mtu\n  powerpc/pseries: Verify CMO memory entitlement updates with virtual I/O\n  powerpc/pseries: vio bus support for CMO\n  powerpc/pseries: iommu enablement for CMO\n  powerpc/pseries: Add CMO paging statistics\n  powerpc/pseries: Add collaborative memory manager\n  powerpc/pseries: Utilities to set firmware page state\n  powerpc/pseries: Enable CMO feature during platform setup\n  powerpc/pseries: Split retrieval of processor entitlement data into a helper routine\n  powerpc/pseries: Add memory entitlement capabilities to /proc/ppc64/lparcfg\n  powerpc/pseries: Split processor entitlement retrieval and gathering to helper routines\n  powerpc/pseries: Remove extraneous error reporting for hcall failures in lparcfg\n  powerpc: Fix compile error with binutils 2.15\n  ...\n\nFixed up conflict in arch/powerpc/platforms/52xx/Kconfig manually.\n"
    },
    {
      "commit": "83914441f94c6f2cd468ca97365f6c34f418706e",
      "tree": "bbeb67d51e277b0caedb52072f3ac83fcf779d5a",
      "parents": [
        "b564daf806d492dd4f7afe9b6c83b8d35d137669"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "coredump: elf_core_dump: use core_state-\u003edumper list\n\nKill the nasty rcu_read_lock() + do_each_thread() loop, use the list\nencoded in mm-\u003ecore_state instead, s/GFP_ATOMIC/GFP_KERNEL/.\n\nThis patch allows futher cleanups in binfmt_elf.c, in particular we can\nkill the parallel info-\u003ethreads list.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24d5288f06ed8b3a368eba967d587cdb012dfdf7",
      "tree": "77844e275f2e3bcdc64427e64633e82f0207476d",
      "parents": [
        "15b9f360c0316c06d37c09b02d85565edbaf9dd3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "coredump: elf_core_dump: skip kernel threads\n\nlinux_binfmt-\u003ecore_dump() runs before the process does exit_aio(), this\nmeans that we can hit the kernel thread which shares the same -\u003emm.\nAfaics, nothing really bad can happen, but perhaps it makes sense to fix\nthis minor bug.\n\nIt is sad we have to iterate over all threads in system and use\nGFP_ATOMIC.  Hopefully we can kill theses ugly do_each_thread()s, but this\nneeds some nontrivial changes in mm_struct and do_coredump.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "483fad1c3fa1060d7e6710e84a065ad514571739",
      "tree": "98c2da31a58c71d1ae9c808bdf232cbbbe060550",
      "parents": [
        "e9f76354ce83a20c7768ad37caa033f6506b4f96"
      ],
      "author": {
        "name": "Nathan Lynch",
        "email": "ntl@pobox.com",
        "time": "Tue Jul 22 04:48:46 2008 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Jul 25 15:44:39 2008 +1000"
      },
      "message": "ELF loader support for auxvec base platform string\n\nSome IBM POWER-based platforms have the ability to run in a\nmode which mostly appears to the OS as a different processor from the\nactual hardware.  For example, a Power6 system may appear to be a\nPower5+, which makes the AT_PLATFORM value \"power5+\".  This means that\nprograms are restricted to the ISA supported by Power5+;\nPower6-specific instructions are treated as illegal.\n\nHowever, some applications (virtual machines, optimized libraries) can\nbenefit from knowledge of the underlying CPU model.  A new aux vector\nentry, AT_BASE_PLATFORM, will denote the actual hardware.  For\nexample, on a Power6 system in Power5+ compatibility mode, AT_PLATFORM\nwill be \"power5+\" and AT_BASE_PLATFORM will be \"power6\".  The idea is\nthat AT_PLATFORM indicates the instruction set supported, while\nAT_BASE_PLATFORM indicates the underlying microarchitecture.\n\nIf the architecture has defined ELF_BASE_PLATFORM, copy that value to\nthe user stack in the same manner as ELF_PLATFORM.\n\nSigned-off-by: Nathan Lynch \u003cntl@pobox.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "651910874633a75f4a726d44e449be0a56b4b2e0",
      "tree": "55adac70473da5618042f65dd652fcec0965732c",
      "parents": [
        "93ded9b8fd42abe2c3607097963d8de6ad9117eb"
      ],
      "author": {
        "name": "John Reiser",
        "email": "jreiser@BitWagon.com",
        "time": "Mon Jul 21 14:21:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 09:59:40 2008 -0700"
      },
      "message": "execve filename: document and export via auxiliary vector\n\nThe Linux kernel puts the filename argument of execve() into the new\naddress space.  Many developers are surprised to learn this.  Those who\nknow and could use it, object \"But it\u0027s not documented.\"\n\nThose who want to use it dislike the expression\n  (char *)(1+ strlen(env[-1+ n_env]) + env[-1+ n_env])\nbecause it requires locating the last original environment variable,\nand assumes that the filename follows the characters.\n\nThis patch documents the insertion of the filename, and makes it easier\nto find by adding a new tag AT_EXECFN in the ElfXX_auxv_t; see \u003celf.h\u003e.\n\nIn many cases readlink(\"/proc/self/exe\",) gives the same answer.  But if\nall the original pages get unmapped, then the kernel erases the symlink\nfor /proc/self/exe.  This can happen when a program decompressor does a\ngood job of cleaning up after uncompressing directly to memory, so that\nthe address space of the target program looks the same as if compression\nhad never happened.  One example is http://upx.sourceforge.net .\n\nOne notable use of the underlying concept (what path containED the\nexecutable) is glibc expanding $ORIGIN in DT_RUNPATH.  In practice for\nthe near term, it may be a good idea for user-mode code to use both\n/proc/self/exe and AT_EXECFN as fall-back methods for each other.\n/proc/self/exe can fail due to unmapping, AT_EXECFN can fail because it\nwon\u0027t be present on non-new systems.  The auxvec or {AT_EXECFN}.d_val\nalso can get overwritten, although in nearly all cases this would be the\nresult of a bug.\n\nThe runtime cost is one NEW_AUX_ENT using two words of stack space.  The\nunderlying value is maintained already as bprm-\u003eexec; setup_arg_pages()\nin fs/exec.c slides it for stack_shift, etc.\n\nSigned-off-by: John Reiser \u003cjreiser@BitWagon.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9e0f5293d4999f93b469af4e70382db800a8204",
      "tree": "67c70046bd1b694bffbeede99fe4715adef88d44",
      "parents": [
        "702773b16e83fcddc41e0019b8214d3c3cecedbe"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Jun 16 12:18:13 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 16 10:20:57 2008 -0700"
      },
      "message": "Remove last traces of a.out support from ELF loader.\n\nIn commit d20894a23708c2af75966534f8e4dedb46d48db2 (\"Remove a.out\ninterpreter support in ELF loader\"), Andi removed support for a.out\ninterpreters from the ELF loader, which was only ever needed for the\ntransition from a.out to ELF.\n\nThis removes the last traces of that support, in particular the\ninclusion of \u003clinux/a.out.h\u003e.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nAcked-by: Peter Korsgaard \u003cjacmet@sunsite.dk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23c4971e3d97de4e1b7961ca6eacee35aa15ce5f",
      "tree": "5bf0df37e7232b5a867074242645a98a217688f0",
      "parents": [
        "08a6fac1c63233c87eec129938022f1a9a4d51f6"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu May 08 21:52:33 2008 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:23:11 2008 -0400"
      },
      "message": "[Patch] fs/binfmt_elf.c: fix wrong return values\n\ncreate_elf_tables() returns 0 on success. But when strnlen_user() \"fails\",\nit returns 0 directly. So this is wrong.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5f719558edf9c84bfbb1f7ad37e84c483282d09f",
      "tree": "acbd9ec7343ad6d7933015c40b0acf378a2d2418",
      "parents": [
        "eceea0b3df05ed262ae32e0c6340cc7a3626632d"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue May 06 12:45:35 2008 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:58 2008 -0400"
      },
      "message": "[Patch] fs/binfmt_elf.c: fix a wrong free\n\nIn kmalloc failing path, we shouldn\u0027t free pointers in \u0027info\u0027,\nbecause the struct \u0027info\u0027 is uninitilized when kmalloc is called.\n\nAnd when kmalloc returns NULL, it\u0027s needless to kfree it.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n\n--\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4220b7fe89f8c0623e09168ab81dd0da2fdadd72",
      "tree": "14ca87136a0503e9c16ded388ce885f2edb7bc5a",
      "parents": [
        "6970c8eff85dd450e7eff69dad710dcf594b1bb8"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Apr 29 01:01:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:16 2008 -0700"
      },
      "message": "elf: fix shadowed variables in fs/binfmt_elf.c\n\nFix these sparse warings:\nfs/binfmt_elf.c:1749:29: warning: symbol \u0027tmp\u0027 shadows an earlier one\nfs/binfmt_elf.c:1734:28: originally declared here\nfs/binfmt_elf.c:2009:26: warning: symbol \u0027vma\u0027 shadows an earlier one\nfs/binfmt_elf.c:1892:24: originally declared here\n\n[akpm@linux-foundation.org: chose better variable name]\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6970c8eff85dd450e7eff69dad710dcf594b1bb8",
      "tree": "1cba97d1f307fbceecbda22ba36e3d565430c3ba",
      "parents": [
        "eb6900fbfa43cb50391b80b38608e25280705693"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Apr 29 01:01:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:16 2008 -0700"
      },
      "message": "BINFMT: fill_elf_header cleanup - use straight memset first\n\nThis patch does simplify fill_elf_header function by setting\nto zero the whole elf header first. So we fillup the fields\nwe really need only.\n\nbefore:\n   text    data     bss     dec     hex filename\n  11735      80       0   11815    2e27 fs/binfmt_elf.o\n\nafter:\n   text    data     bss     dec     hex filename\n  11710      80       0   11790    2e0e fs/binfmt_elf.o\n\nviola, 25 bytes of text is freed\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd8328be874f4190a811c58cd4778ec2c74d2c05",
      "tree": "b44ae8e99ce96a1a4739b04d4d1a23c40ab8b163",
      "parents": [
        "6b335d9c80d7f3c2a3f6545f664ae9007a0f3821"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 22 05:11:59 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 25 09:23:53 2008 -0400"
      },
      "message": "[PATCH] sanitize handling of shared descriptor tables in failing execve()\n\n* unshare_files() can fail; doing it after irreversible actions is wrong\n  and de_thread() is certainly irreversible.\n* since we do it unconditionally anyway, we might as well do it in do_execve()\n  and save ourselves the PITA in binfmt handlers, etc.\n* while we are at it, binfmt_som actually leaked files_struct on failure.\n\nAs a side benefit, unshare_files(), put_files_struct() and reset_files_struct()\nbecome unexported.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d31472b6d4f799a68d877f69b2f843eec5875472",
      "tree": "beda33325687f2bebbdde49e68cad79b5e8242d2",
      "parents": [
        "938a9204e0df070bfbaac71f6403cebed76763ad"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Mar 04 14:28:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:10 2008 -0800"
      },
      "message": "core dump: user_regset writeback\n\nThis makes the user_regset-based core dump code call user_regset writeback\nhooks when available.  This is necessary groundwork to allow IA64 to set\nCORE_DUMP_USE_REGSET.\n\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d20894a23708c2af75966534f8e4dedb46d48db2",
      "tree": "f178118c4f1b1d248d2237f4088d2120e4f42083",
      "parents": [
        "48d13e483c5b450be451f78cc9cb43c0bdd6b7bb"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Feb 08 04:21:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:41 2008 -0800"
      },
      "message": "Remove a.out interpreter support in ELF loader\n\nFollowing the deprecation schedule the a.out ELF interpreter support\nis removed now with this patch. a.out ELF interpreters were an transition\nfeature for moving a.out systems to ELF, but they\u0027re unlikely to be still\nneeded. Pure a.out systems will still work of course. This allows to\nsimplify the hairy ELF loader.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fa3031500ec9b0a7460c8c23751799006ffee74",
      "tree": "2a7e9202b35a39dc8217e95825263c0629e67e35",
      "parents": [
        "b0b933c08bd5fd053bbba8ba6387f543be03d49f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "aout: suppress A.OUT library support if !CONFIG_ARCH_SUPPORTS_AOUT\n\nSuppress A.OUT library support if CONFIG_ARCH_SUPPORTS_AOUT is not set.\n\nNot all architectures support the A.OUT binfmt, so the ELF binfmt should not\nbe permitted to go looking for A.OUT libraries to load in such a case.  Not\nonly that, but under such conditions A.OUT core dumps are not produced either.\n\nTo make this work, this patch also does the following:\n\n (1) Makes the existence of the contents of linux/a.out.h contingent on\n     CONFIG_ARCH_SUPPORTS_AOUT.\n\n (2) Renames dump_thread() to aout_dump_thread() as it\u0027s only called by A.OUT\n     core dumping code.\n\n (3) Moves aout_dump_thread() into asm/a.out-core.h and makes it inline.  This\n     is then included only where needed.  This means that this bit of arch\n     code will be stored in the appropriate A.OUT binfmt module rather than\n     the core kernel.\n\n (4) Drops A.OUT support for Blackfin (according to Mike Frysinger it\u0027s not\n     needed) and FRV.\n\nThis patch depends on the previous patch to move STACK_TOP[_MAX] out of\nasm/a.out.h and into asm/processor.h as they\u0027re required whether or not A.OUT\nformat is available.\n\n[jdike@addtoit.com: uml: re-remove accidentally restored code]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32a932332c8bad842804842eaf9651ad6268e637",
      "tree": "58f187409029f089f788c5c35ad5c200b4a555af",
      "parents": [
        "4cc6028d4040f95cdb590a87db478b42b8be0508"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 06 22:39:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 06 22:39:44 2008 +0100"
      },
      "message": "brk randomization: introduce CONFIG_COMPAT_BRK\n\nbased on similar patch from: Pavel Machek \u003cpavel@ucw.cz\u003e\n\nIntroduce CONFIG_COMPAT_BRK. If disabled then the kernel is free\n(but not obliged to) randomize the brk area.\n\nHeap randomization breaks ancient binaries, so we keep COMPAT_BRK\nenabled by default.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "09c6dd3c9d99b63608dc77dc462d4a5a3785f620",
      "tree": "b7d8e32a11e960eed66b54855f4837805f00142d",
      "parents": [
        "28bc44d7d1d967b8251214dd7a130d523b5ba5ee"
      ],
      "author": {
        "name": "Ohad Ben-Cohen",
        "email": "ohad@bencohen.org",
        "time": "Sun Feb 03 18:05:15 2008 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Feb 03 18:05:15 2008 +0200"
      },
      "message": "fs/binfmt_elf.c: spello fix\n\ns/litle/little\n\nSigned-off-by: Ohad Ben-Cohen \u003cohad@bencohen.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "612a95b4e053b8a06319049191fd2dce9c970189",
      "tree": "0930c9c7b17b7387bc2b6d54bc687a43f3f89f3c",
      "parents": [
        "f8f76481bc2803aea03ff213c7e1405b53f7e488"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "message": "x86: remove iBCS support\n\nibcs2 support has never been supported on 2.6 kernels as far as I know,\nand if it has it must have been an external patch.  Anyways, if anybody\napplies an external patch they could as well readd the ibcs checking\ncode to the ELF loader in the same patch.  But there is no reason to\nkeep this code running in all Linux kernels.  This will save at least\ntwo strcmps each ELF execution.\n\nNo deprecation period because it could not have been used anyway.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4206d3aa1978e44f58bfa4e1c9d8d35cbf19c187",
      "tree": "53de158bec7e6890ce9a5772f3d04f23e9a29803",
      "parents": [
        "3aba481fc94d83ff630d4b7cd2f7447010c4c6df"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:45 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:45 2008 +0100"
      },
      "message": "elf core dump: notes user_regset\n\nThis modifies the ELF core dump code under #ifdef CORE_DUMP_USE_REGSET.\nIt changes nothing when this macro is not defined.  When it\u0027s #define\u0027d\nby some arch header (e.g. asm/elf.h), the arch must support the\nuser_regset (linux/regset.h) interface for reading thread state.\n\nThis provides an alternate version of note segment writing that is based\npurely on the user_regset interfaces.  When CORE_DUMP_USE_REGSET is set,\nthe arch need not define macros such as ELF_CORE_COPY_REGS and ELF_ARCH.\nAll that information is taken from the user_regset data structures.\nThe core dumps come out exactly the same if arch\u0027s definitions for its\nuser_regset details are correct.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3aba481fc94d83ff630d4b7cd2f7447010c4c6df",
      "tree": "f953d24b736fa9404ad1e8e6138c056f0717a297",
      "parents": [
        "bdf88217b70dbb18c4ee27a6c497286e040a6705"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:44 2008 +0100"
      },
      "message": "elf core dump: notes reorg\n\nThis pulls out the code for writing the notes segment of an ELF core dump\ninto separate functions.  This cleanly isolates into one cluster of\nfunctions everything that deals with the note formats and the hooks into\narch code to fill them.  The top-level elf_core_dump function itself now\ndeals purely with the generic ELF format and the memory segments.\n\nThis only moves code around into functions that can be inlined away.\nIt should not change any behavior at all.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bb1ad8205be4cb95e3286d7442596da6fd70409f",
      "tree": "b4804d567e4a01186a88d1c22c871197836f0a55",
      "parents": [
        "cc503c1b43e002e3f1fed70f46d947e2bf349bb6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "message": "x86: PIE executable randomization, checkpatch fixes\n\n#39: FILE: arch/ia64/ia32/binfmt_elf32.c:229:\n+elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused)\n\nWARNING: no space between function name and open parenthesis \u0027(\u0027\n#39: FILE: arch/ia64/ia32/binfmt_elf32.c:229:\n+elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused)\n\nWARNING: line over 80 characters\n#67: FILE: arch/x86/kernel/sys_x86_64.c:80:\n+\t\t\tnew_begin \u003d randomize_range(*begin, *begin + 0x02000000, 0);\n\nERROR: use tabs not spaces\n#110: FILE: arch/x86/kernel/sys_x86_64.c:185:\n+ ^I        mm-\u003ecached_hole_size \u003d 0;$\n\nERROR: use tabs not spaces\n#111: FILE: arch/x86/kernel/sys_x86_64.c:186:\n+ ^I^Imm-\u003efree_area_cache \u003d mm-\u003emmap_base;$\n\nERROR: use tabs not spaces\n#112: FILE: arch/x86/kernel/sys_x86_64.c:187:\n+ ^I}$\n\nERROR: use tabs not spaces\n#141: FILE: arch/x86/kernel/sys_x86_64.c:216:\n+ ^I^I/* remember the largest hole we saw so far */$\n\nERROR: use tabs not spaces\n#142: FILE: arch/x86/kernel/sys_x86_64.c:217:\n+ ^I^Iif (addr + mm-\u003ecached_hole_size \u003c vma-\u003evm_start)$\n\nERROR: use tabs not spaces\n#143: FILE: arch/x86/kernel/sys_x86_64.c:218:\n+ ^I^I        mm-\u003ecached_hole_size \u003d vma-\u003evm_start - addr;$\n\nERROR: use tabs not spaces\n#157: FILE: arch/x86/kernel/sys_x86_64.c:232:\n+  ^Imm-\u003efree_area_cache \u003d TASK_UNMAPPED_BASE;$\n\nERROR: need a space before the open parenthesis \u0027(\u0027\n#291: FILE: arch/x86/mm/mmap_64.c:101:\n+\t} else if(mmap_is_legacy()) {\n\nWARNING: braces {} are not necessary for single statement blocks\n#302: FILE: arch/x86/mm/mmap_64.c:112:\n+\tif (current-\u003eflags \u0026 PF_RANDOMIZE) {\n+\t\tmm-\u003emmap_base +\u003d ((long)rnd) \u003c\u003c PAGE_SHIFT;\n+\t}\n\nWARNING: line over 80 characters\n#314: FILE: fs/binfmt_elf.c:48:\n+static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int, unsigned long);\n\nWARNING: no space between function name and open parenthesis \u0027(\u0027\n#314: FILE: fs/binfmt_elf.c:48:\n+static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int, unsigned long);\n\nWARNING: line over 80 characters\n#429: FILE: fs/binfmt_elf.c:438:\n+\t\t\t\t\t   eppnt, elf_prot, elf_type, total_size);\n\nERROR: need space after that \u0027,\u0027 (ctx:VxV)\n#480: FILE: fs/binfmt_elf.c:939:\n+\t\t\t\telf_prot, elf_flags,0);\n \t\t\t\t                   ^\n\ntotal: 9 errors, 7 warnings, 461 lines checked\nYour patch has style problems, please review.  If any of these errors\nare false positives report them to the maintainer, see\nCHECKPATCH in MAINTAINERS.\n\nPlease run checkpatch prior to sending patches\n\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cc503c1b43e002e3f1fed70f46d947e2bf349bb6",
      "tree": "df0d77b7bccf0148c7b7cdd0363354499b259f99",
      "parents": [
        "82f74e7159749cc511ebf5954a7b9ea6ad634949"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:07 2008 +0100"
      },
      "message": "x86: PIE executable randomization\n\nmain executable of (specially compiled/linked -pie/-fpie) ET_DYN binaries\nonto a random address (in cases in which mmap() is allowed to perform a\nrandomization).\n\nThe code has been extraced from Ingo\u0027s exec-shield patch\nhttp://people.redhat.com/mingo/exec-shield/\n\n[akpm@linux-foundation.org: fix used-uninitialsied warning]\n[kamezawa.hiroyu@jp.fujitsu.com: fixed ia32 ELF on x86_64 handling]\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c1d171a002942ea2d93b4fbd0c9583c56fce0772",
      "tree": "49249c927dc1644e7c92150808269cb474bdd411",
      "parents": [
        "7b83dae7aa31db4f6d6e78c3c6d490a7ac58699c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jan 30 13:30:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:40 2008 +0100"
      },
      "message": "x86: randomize brk\n\nRandomize the location of the heap (brk) for i386 and x86_64.  The range is\nrandomized in the range starting at current brk location up to 0x02000000\noffset for both architectures.  This, together with\npie-executable-randomization.patch and\npie-executable-randomization-fix.patch, should make the address space\nrandomization on i386 and x86_64 complete.\n\nArjan says:\n\nThis is known to break older versions of some emacs variants, whose dumper\ncode assumed that the last variable declared in the program is equal to the\nstart of the dynamically allocated memory region.\n\n(The dumper is the code where emacs effectively dumps core at the end of it\u0027s\ncompilation stage; this coredump is then loaded as the main program during\nnormal use)\n\niirc this was 5 years or so; we found this way back when I was at RH and we\nfirst did the security stuff there (including this brk randomization).  It\nwasn\u0027t all variants of emacs, and it got fixed as a result (I vaguely remember\nthat emacs already had code to deal with it for other archs/oses, just\nifdeffed wrongly).\n\nIt\u0027s a rare and wrong assumption as a general thing, just on x86 it mostly\nhappened to be true (but to be honest, it\u0027ll break too if gcc does\nsomething fancy or if the linker does a non-standard order).  Still its\nsomething we should at least document.\n\nNote 2: afaik it only broke the emacs *build*.  I\u0027m not 100% sure about that\n(it IS 5 years ago) though.\n\n[ akpm@linux-foundation.org: deuglification ]\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "45626bb26a6ecd163e5eeddd14a6137052ec4495",
      "tree": "5c463722a9c82b02cf9a27cb4a4860e8824823af",
      "parents": [
        "e4c6d3c6b14bd20fb8087acd51b29ee54a66ef77"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Mon Jan 07 14:22:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 07 14:55:37 2008 -0800"
      },
      "message": "core dump: real_parent ppid\n\nThe pr_ppid field reported in core dumps should match what\ngetppid() would have returned to that process, regardless of\nwhether a debugger is attached.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b488893a390edfe027bae7a46e9af8083e740668",
      "tree": "c469a7f99ad01005a73011c029eb5e5d15454559",
      "parents": [
        "3eb07c8c8adb6f0572baba844ba2d9e501654316"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: changes to show virtual ids to user\n\nThis is the largest patch in the set. Make all (I hope) the places where\nthe pid is shown to or get from user operate on the virtual pids.\n\nThe idea is:\n - all in-kernel data structures must store either struct pid itself\n   or the pid\u0027s global nr, obtained with pid_nr() call;\n - when seeking the task from kernel code with the stored id one\n   should use find_task_by_pid() call that works with global pids;\n - when showing pid\u0027s numerical value to the user the virtual one\n   should be used, but however when one shows task\u0027s pid outside this\n   task\u0027s namespace the global one is to be used;\n - when getting the pid from userspace one need to consider this as\n   the virtual one and use appropriate task/pid-searching functions.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\n[akpm@linux-foundation.org: yet nuther build fix]\n[akpm@linux-foundation.org: remove unneeded casts]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47afb0f9d794d525a372c8d69902147cc88222a",
      "tree": "7bd67280e2edc1c3b1803d4a93bee794088e9342",
      "parents": [
        "858d72ead4864da0fb0b89b919524125ce998e27"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: round up the API\n\nThe set of functions process_session, task_session, process_group and\ntask_pgrp is confusing, as the names can be mixed with each other when looking\nat the code for a long time.\n\nThe proposals are to\n* equip the functions that return the integer with _nr suffix to\n  represent that fact,\n* and to make all functions work with task (not process) by making\n  the common prefix of the same name.\n\nFor monotony the routines signal_session() and set_signal_session() are\nreplaced with task_session_nr() and set_task_session(), especially since they\nare only used with the explicit task-\u003esignal dereference.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d68c9d6ae8f1fdae7d998158adc5ee106a2f8ce6",
      "tree": "91f1aef562d7769d06453e9a60ef599bcb057ba0",
      "parents": [
        "96358de6bc2ab0bc5e8b44a8f3be4c9bf4a14e4f"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "fbuihuu@gmail.com",
        "time": "Tue Oct 16 23:30:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:01 2007 -0700"
      },
      "message": "Break ELF_PLATFORM and stack pointer randomization dependency\n\nCurrently arch_align_stack() is used by fs/binfmt_elf.c to randomize\nstack pointer inside a page. But this happens only if ELF_PLATFORM\nsymbol is defined.\n\nELF_PLATFORM is normally set if the architecture wants ld.so to load\nimplementation specific libraries for optimization. And currently a\nlot of architectures just yield this symbol to NULL.\n\nThis is the case for MIPS architecture where ELF_PLATFORM is NULL but\narch_align_stack() has been redefined to do stack inside page\nrandomization. So in this case no randomization is actually done.\n\nThis patch breaks this dependency which seems to be useless and allows\nplatforms such MIPS to do the randomization.\n\nSigned-off-by: Franck Bui-Huu \u003cfbuihuu@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f9a58d75bfe82ab2b8ba5b8506dfb190a267834",
      "tree": "791843f8cd609cb626a65c4004009084d87170d4",
      "parents": [
        "f77e34987070a20e4b3e06b868cb39eb73670467"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Tue Oct 16 23:30:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:00 2007 -0700"
      },
      "message": "increase AT_VECTOR_SIZE to terminate saved_auxv properly\n\ninclude/asm-powerpc/elf.h has 6 entries in ARCH_DLINFO.  fs/binfmt_elf.c\nhas 14 unconditional NEW_AUX_ENT entries and 2 conditional NEW_AUX_ENT\nentries.  So in the worst case, saved_auxv does not get an AT_NULL entry at\nthe end.\n\nThe saved_auxv array must be terminated with an AT_NULL entry.  Make the\nsize of mm_struct-\u003esaved_auxv arch dependend, based on the number of\nARCH_DLINFO entries.\n\nSigned-off-by: Olaf Hering \u003colh@suse.de\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82df39738ba9e02c057fa99b7461a56117d36119",
      "tree": "ef4d37689eb31c59e03cc066cb1210a9ddb9f744",
      "parents": [
        "e629a7ddc0188e1bb9e956e698a9bd00c19c9854"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Oct 16 23:27:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:52 2007 -0700"
      },
      "message": "Add MMF_DUMP_ELF_HEADERS\n\nThis adds the MMF_DUMP_ELF_HEADERS option to /proc/pid/coredump_filter.\nThis dumps the first page (only) of a private file mapping if it appears to\nbe a mapping of an ELF file.  Including these pages in the core dump may\ngive sufficient identifying information to associate the original DSO and\nexecutable file images and their debugging information with a core file in\na generic way just from its contents (e.g.  when those binaries were built\nwith ld --build-id).  I expect this to become the default behavior\neventually.  Existing versions of gdb can be confused by the core dumps it\ncreates, so it won\u0027t enabled by default for some time to come.  Soon many\npeople will have systems with a gdb that handle these dumps, so they can\narrange to set the bit at boot and have it inherited system-wide.\n\nThis also cleans up the checking of the MMF_DUMP_* flag bits, which did not\nneed to be using atomic macros.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e9073ed027771bcdee4033eb900a3c09ac90a19",
      "tree": "be445d976b82a8337af87b6e64f1ccfb23222373",
      "parents": [
        "045f902de5a6eb5927c0f092c38be7a381f634f0"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@novell.com",
        "time": "Tue Oct 16 23:26:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "Deprecate a.out ELF interpreters\n\nThe Linux ELF loader is quite complicated and messy code (that could\nprobably need a rewrite, but that\u0027s a different chapter).  One particular\nmessy part in it is the support for non ELF a.out ld.sos.  This was\noriginally added to make transition from a.out to ELF easier because an\na.out ELF ld.so could be still build using an older a.out toolkit.  But by\nnow that should be fully obsolete and removing it would clean up\nbinfmt_elf.c up a bit.\n\nI propose to deprecate this support and remove for 2.6.25.\n\nDrawback is that someone still runs their system with a.out ld.so\nthey would need to update the ld.so when updating to a new kernel.\n\nThis patch just adds an entry to the deprecation file and a printk\nwarning users.\n\n[akpm@linux-foundation.org: better warning message]\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7dc0b22e3c54f1f4730354fef84a20f5944f6c5e",
      "tree": "8b281ed3315699eb0b21f00b5933b6222add5b5a",
      "parents": [
        "8e2b705649e294f43a8cd1ea79e4c594c0bd1d9d"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue Oct 16 23:26:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:50 2007 -0700"
      },
      "message": "core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe\n\nFor some time /proc/sys/kernel/core_pattern has been able to set its output\ndestination as a pipe, allowing a user space helper to receive and\nintellegently process a core.  This infrastructure however has some\nshortcommings which can be enhanced.  Specifically:\n\n1) The coredump code in the kernel should ignore RLIMIT_CORE limitation\n   when core_pattern is a pipe, since file system resources are not being\n   consumed in this case, unless the user application wishes to save the core,\n   at which point the app is restricted by usual file system limits and\n   restrictions.\n\n2) The core_pattern code should be able to parse and pass options to the\n   user space helper as an argv array.  The real core limit of the uid of the\n   crashing proces should also be passable to the user space helper (since it\n   is overridden to zero when called).\n\n3) Some miscellaneous bugs need to be cleaned up (specifically the\n   recognition of a recursive core dump, should the user mode helper itself\n   crash.  Also, the core dump code in the kernel should not wait for the user\n   mode helper to exit, since the same context is responsible for writing to\n   the pipe, and a read of the pipe by the user mode helper will result in a\n   deadlock.\n\nThis patch:\n\nRemove the check of RLIMIT_CORE if core_pattern is a pipe.  In the event that\ncore_pattern is a pipe, the entire core will be fed to the user mode helper.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: \u003cmartin.pitt@ubuntu.com\u003e\nCc: \u003cwwoods@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b20cd80b4ce1674b7abe5ac91db23346118176d",
      "tree": "d00339cce901048489f1ef0eedf23d57b6068234",
      "parents": [
        "eead19115329c5615ba03cbaf1c3fe24c14858a3"
      ],
      "author": {
        "name": "Mark Nelson",
        "email": "markn@au1.ibm.com",
        "time": "Tue Oct 16 23:25:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:44 2007 -0700"
      },
      "message": "x86: replace NT_PRXFPREG with ELF_CORE_XFPREG_TYPE #define\n\nReplace NT_PRXFPREG with ELF_CORE_XFPREG_TYPE in the coredump code which\nallows for more flexibility in the note type for the state of \u0027extended\nfloating point\u0027 implementations in coredumps.  New note types can now be\nadded with an appropriate #define.\n\nThis does #define ELF_CORE_XFPREG_TYPE to be NT_PRXFPREG in all\ncurrent users so there\u0027s are no change in behaviour.\n\nThis will let us use different note types on powerpc for the Altivec/VMX\nstate that some PowerPC cpus have (G4, PPC970, POWER6) and for the SPE\n(signal processing extension) state that some embedded PowerPC cpus from\nFreescale have.\n\nSigned-off-by: Mark Nelson \u003cmarkn@au1.ibm.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "557ed1fa2620dc119adb86b34c614e152a629a80",
      "tree": "d00b31a7f197583c2bd8fffa1fd135fbbb5d6abc",
      "parents": [
        "aadb4bc4a1f9108c1d0fbd121827c936c2ed4217"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "remove ZERO_PAGE\n\nThe commit b5810039a54e5babf428e9a1e89fc1940fabff11 contains the note\n\n  A last caveat: the ZERO_PAGE is now refcounted and managed with rmap\n  (and thus mapcounted and count towards shared rss).  These writes to\n  the struct page could cause excessive cacheline bouncing on big\n  systems.  There are a number of ways this could be addressed if it is\n  an issue.\n\nAnd indeed this cacheline bouncing has shown up on large SGI systems.\nThere was a situation where an Altix system was essentially livelocked\ntearing down ZERO_PAGE pagetables when an HPC app aborted during startup.\nThis situation can be avoided in userspace, but it does highlight the\npotential scalability problem with refcounting ZERO_PAGE, and corner\ncases where it can really hurt (we don\u0027t want the system to livelock!).\n\nThere are several broad ways to fix this problem:\n1. add back some special casing to avoid refcounting ZERO_PAGE\n2. per-node or per-cpu ZERO_PAGES\n3. remove the ZERO_PAGE completely\n\nI will argue for 3. The others should also fix the problem, but they\nresult in more complex code than does 3, with little or no real benefit\nthat I can see.\n\nWhy? Inserting a ZERO_PAGE for anonymous read faults appears to be a\nfalse optimisation: if an application is performance critical, it would\nnot be doing many read faults of new memory, or at least it could be\nexpected to write to that memory soon afterwards. If cache or memory use\nis critical, it should not be working with a significant number of\nZERO_PAGEs anyway (a more compact representation of zeroes should be\nused).\n\nAs a sanity check -- mesuring on my desktop system, there are never many\nmappings to the ZERO_PAGE (eg. 2 or 3), thus memory usage here should not\nincrease much without it.\n\nWhen running a make -j4 kernel compile on my dual core system, there are\nabout 1,000 mappings to the ZERO_PAGE created per second, but about 1,000\nZERO_PAGE COW faults per second (less than 1 ZERO_PAGE mapping per second\nis torn down without being COWed). So removing ZERO_PAGE will save 1,000\npage faults per second when running kbuild, while keeping it only saves\nless than 1 page clearing operation per second. 1 page clear is cheaper\nthan a thousand faults, presumably, so there isn\u0027t an obvious loss.\n\nNeither the logical argument nor these basic tests give a guarantee of no\nregressions. However, this is a reasonable opportunity to try to remove\nthe ZERO_PAGE from the pagefault path. If it is found to cause regressions,\nwe can reintroduce it and just avoid refcounting it.\n\nThe /dev/zero ZERO_PAGE usage and TLB tricks also get nuked.  I don\u0027t see\nmuch use to them except on benchmarks.  All other users of ZERO_PAGE are\nconverted just to use ZERO_PAGE(0) for simplicity. We can look at\nreplacing them all and maybe ripping out ZERO_PAGE completely when we are\nmore satisfied with this solution.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus \"snif\" Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e55014923e65e4ee8e477a1212381cca0125f3aa",
      "tree": "e84c0cab99f6963e644083be123042a0da6cd515",
      "parents": [
        "48cad41f7ee7b8a9a8317a4abbdaf09bc68b4773"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Wed Sep 19 14:38:12 2007 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Sep 19 15:12:19 2007 +1000"
      },
      "message": "[POWERPC] spufs: Cleanup ELF coredump extra notes logic\n\nTo start with, arch_notes_size() etc. is a little too ambiguous a name for\nmy liking, so change the function names to be more explicit.\n\nCalling through macros is ugly, especially with hidden parameters, so don\u0027t\ndo that, call the routines directly.\n\nUse ARCH_HAVE_EXTRA_ELF_NOTES as the only flag, and based on it decide\nwhether we want the extern declarations or the empty versions.\n\nSince we have empty routines, actually use them in the coredump code to\nsave a few #ifdefs.\n\nWe want to change the handling of foffset so that the write routine updates\nfoffset as it goes, instead of using file-\u003ef_pos (so that writing to a pipe\nworks).  So pass foffset to the write routine, and for now just set it to\nfile-\u003ef_pos at the end of writing.\n\nIt should also be possible for the write routine to fail, so change it to\nreturn int and treat a non-zero return as failure.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "d4e3cc387ea1b74c3ad2ef2f6f5c05fd6fc314b8",
      "tree": "b14dde552be76614fe443eccbb15658f651fc36c",
      "parents": [
        "80e27982a66ea8306a704ba8bdf634ed480d4b46"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sat Jul 21 04:37:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 17:49:14 2007 -0700"
      },
      "message": "revert \"PIE randomization\"\n\nThere are reports of this causing userspace failures\n(http://lkml.org/lkml/2007/7/20/421).\n\nRevert.\n\nCc: Jan Kratochvil \u003chonza@jikos.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Ulrich Kunitz \u003ckune@deine-taler.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Bret Towe\" \u003cmagnade@gmail.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1b59e802f846b6b0e057507386068fcc6dff442",
      "tree": "1ad51ffa807774986595e56b6fac3525b6a285ac",
      "parents": [
        "3cb4a0bb1e773e3c41800b33a3f7dab32bd06c64"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "coredump masking: ELF: enable core dump filtering\n\nThis patch enables core dump filtering for ELF-formatted core file.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6a2fea39318e43fee84fa7b0b90d68bed92d2ba",
      "tree": "c9c3619cb2730b5c10c7427b837146bce3d69156",
      "parents": [
        "bdf4c48af20a3b0f01671799ace345e3d49576da"
      ],
      "author": {
        "name": "Ollie Wild",
        "email": "aaw@google.com",
        "time": "Thu Jul 19 01:48:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "mm: variable length argument support\n\nRemove the arg+env limit of MAX_ARG_PAGES by copying the strings directly from\nthe old mm into the new mm.\n\nWe create the new mm before the binfmt code runs, and place the new stack at\nthe very top of the address space.  Once the binfmt code runs and figures out\nwhere the stack should be, we move it downwards.\n\nIt is a bit peculiar in that we have one task with two mm\u0027s, one of which is\ninactive.\n\n[a.p.zijlstra@chello.nl: limit stack size]\nSigned-off-by: Ollie Wild \u003caaw@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\n[bunk@stusta.de: unexport bprm_mm_init]\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d3b573ad9af85b6df104044f6fff05f04349db2",
      "tree": "3cf744f8cb4bd5c4fee92799b0c8daa5bebc52f4",
      "parents": [
        "64d67d21773f1946ddc04aedc201f6c2f3ee1bfb"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sun Jul 15 23:41:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:47 2007 -0700"
      },
      "message": "binfmt_elf warning fix\n\nfs/binfmt_elf.c: In function \u0027load_elf_binary\u0027:\nfs/binfmt_elf.c:1002: warning: \u0027interp_map_addr\u0027 may be used uninitialized in this function\n\nThe compiler (gcc-4.1.0) is correct, but it failed to notice that we didn\u0027t\nuse the resulting value.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60bfba7e85f88fe834e623ead799cf580de20971",
      "tree": "d27468bc99bfbe8dcfa6fa0e8b8599d2a6e6c7de",
      "parents": [
        "f057eac0d7ad967138390a9dd7fd8267e1e39d19"
      ],
      "author": {
        "name": "Jan Kratochvil",
        "email": "honza@jikos.cz",
        "time": "Sun Jul 15 23:40:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:42 2007 -0700"
      },
      "message": "PIE randomization\n\nThis patch is using mmap()\u0027s randomization functionality in such a way that\nit maps the main executable of (specially compiled/linked -pie/-fpie)\nET_DYN binaries onto a random address (in cases in which mmap() is allowed\nto perform a randomization).\n\nOrigin of this patch is in exec-shield\n(http://people.redhat.com/mingo/exec-shield/)\n\n[jkosina@suse.cz: pie randomization: fix BAD_ADDR macro]\nSigned-off-by: Jan Kratochvil \u003chonza@jikos.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef7320edb1dd2cf6c969d1dcef4a9499a42f24da",
      "tree": "de5ea3131e5ff2a150a073434bee94586e8515e3",
      "parents": [
        "7e8767dddf3ad863a7013c334392e09177b48e2c"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Fri Jul 06 02:39:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 06 10:23:43 2007 -0700"
      },
      "message": "Fix elf_core_dump() when writing arch specific notes (spu coredumps)\n\nelf_core_dump() supports dumping arch specific ELF notes, via the #define\nELF_CORE_WRITE_EXTRA_NOTES.  Currently the only user of this is the powerpc\nspu coredump code.\n\nThere is a bug in the handling of foffset WRT the arch notes, which causes\nus to erroneously increment foffset by the size of the arch notes, leaving\na block of zeroes in the file, and causing all subsequent data in the file\nto be at \u003csupposed position\u003e + \u003carch note size\u003e.  eg:\n\n  LOAD  0x050000 0x00100000 0x00000000 0x20000 0x20000 R E 0x10000\n\nTells us we should have a chunk of data at 0x50000.  The truth is the data\nis at 0x90dbc \u003d 0x50000 + 0x40dbc (the size of the arch notes).\n\nThis bug prevents gdb from reading the core file correctly.\n\nThe simplest fix is to simply remember the size of the arch notes, and add\nit to foffset after we\u0027ve written the arch notes.  The only drawback is\nthat if the arch code doesn\u0027t write as many bytes as it said it would, we\nend up with a broken core dump again.  For now I think that\u0027s a reasonable\nrequirement.\n\nTested on a Cell blade, gdb no longer complains about the core file being\nbogus.\n\nWhile I\u0027m here I should point out that the spu coredump code does not work\nif we\u0027re dumping to a pipe - we\u0027ll have to wait for 23 to fix that.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b140f25108a8b11aa4903014814988549838b324",
      "tree": "466b0c1a8056a2307c8219d1dfc5c059c043f07d",
      "parents": [
        "ce0be1273d1473a5a7b57bf0b4995b40c22d6b54"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "alexey@openvz.org",
        "time": "Tue May 08 00:31:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:15 2007 -0700"
      },
      "message": "Invalid return value of execve() resulting in oopses\n\nWhen elf loader fails to map executable (due to memory shortage or because\nbinary is malformed), it can return 0.  Normally, this is invisible because\nprocess is killed with SIGKILL and it never returns to user space.\n\nBut if exec() is called from kernel thread (hotplug, whatever)\nconsequences are more interesting and vary depending on architecture.\n\ni386.   Nothing especially interesting, execve() just returns\n        with \"success\"  :-)\n\nx86_64. Fake zero frame is used on way to caller, RSP/RIP are loaded\n        with zeros, ergo... double fault.\n\nia64.   Similar to i386, but r32...r95 are corrupted. Sometimes it\n        oopses due to return to zero PC, sometimes it sees NaT in\n        rXX and oopses due to NaT consumption.\n\nSigned-off-by: Alexey Kuznetsov \u003calexey@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e80d0d0b64f5c00b0ac7e623d96189309c298ca",
      "tree": "748942edea32fb94fdc74c0aaee06acd3d1bffc5",
      "parents": [
        "b259d74b39595f6ac74c3627b9c3657ac90249a0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue May 08 00:28:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "i386: sched.h inclusion from module.h is baack\n\n  linux/module.h\n  -\u003e linux/elf.h\n     -\u003e asm-i386/elf.h\n        -\u003e linux/utsname.h\n           -\u003e linux/sched.h\n\nNoticeably cut the number of files which are rebuild upon touching sched.h\nand cut down pulled junk from every module.h inclusion.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03221702608c60b470fc86a23bdf4bc30e5bd59f",
      "tree": "ab83782a3ece940838604ac8a44676e9734b6909",
      "parents": [
        "2400ff77e7025bf6ffb71afdcbfbdd9aa47dfc36"
      ],
      "author": {
        "name": "Brian Pomerantz",
        "email": "bapper@piratehaven.org",
        "time": "Sun Apr 01 23:49:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 02 10:06:08 2007 -0700"
      },
      "message": "[PATCH] fix page leak during core dump\n\nWhen the dump cannot occur most likely because of a full file system and\nthe page to be written is the zero page, the call to page_cache_release()\nis missed.\n\nSigned-off-by: Brian Pomerantz \u003cbapper@mvista.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1cabd63262707ad5d6bb730f25b7a2852734595",
      "tree": "e62f7b1ecbc9dd9b37a50f57ac9136460e9019eb",
      "parents": [
        "e29e175b0f40cffc86068156733def14a7a533ab"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Fri Mar 16 13:38:35 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:06 2007 -0700"
      },
      "message": "[PATCH] fix process crash caused by randomisation and 64k pages\n\nThis bug was seen on ppc64, but it could have occurred on any\narchitecture with a page size of 64k or above.  The problem is that in\nfs/binfmt_elf.c:randomize_stack_top() randomizes the stack to within\n0x7ff pages.  On 4k page machines, this is 8MB; on 64k page boxes, this\nis 128MB.\n\nThe problem is that the new binary layout (selected in\narch_pick_mmap_layout) places the mapping segment 128MB or the stack\nrlimit away from the top of the process memory, whichever is larger.  If\nyou chose an rlimit of less than 128MB (most defaults are in the 8Mb\nrange) then you can end up having your entire stack randomized away.\n\nThe fix is to make randomize_stack_top() only steal at most 8MB, which this\npatch does.  However, I have to point out that even with this, your stack\nrlimit might not be exactly what you get if it\u0027s \u003e 128MB, because you\u0027re\nstill losing the random offset of up to 8MB.\n\nThe true fix should be to leave an explicit gap for the randomization plus\na buffer when determining mmap_base, but that would involve fixing all the\narchitectures.\n\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9fbbd4dd17d0712054368e5e939e28b2456bfe1b",
      "tree": "778766e35c52529ed0fc369ce1c3cf9382fc6e16",
      "parents": [
        "120fad72401ebec2a126c16cc48f56c28f3eefe2"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Feb 13 13:26:26 2007 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Tue Feb 13 13:26:26 2007 +0100"
      },
      "message": "[PATCH] x86: Don\u0027t require the vDSO for handling a.out signals\n\nand in other strange binfmts. vDSO is not necessarily mapped there.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "1fb844961818ce94e782acf6a96b92dc2303553b",
      "tree": "f58153e0e6a21ee41761786c632f6261c30a3b8b",
      "parents": [
        "c20086de9319ac406f1e96ad459763c9f9965b18"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@openvz.org",
        "time": "Fri Jan 26 00:57:16 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 13:51:00 2007 -0800"
      },
      "message": "[PATCH] core-dumping unreadable binaries via PT_INTERP\n\nProposed patch to fix #5 in\nhttp://www.isec.pl/vulnerabilities/isec-0017-binfmt_elf.txt\naka\nhttp://cve.mitre.org/cgi-bin/cvename.cgi?name\u003dCVE-2004-1073\n\nTo reproduce, do\n* grab poc at the end of advisory.\n* add line \"eph.p_memsz \u003d 4096;\" after \"eph.p_filesz \u003d 4096;\"\n  where first \"4096\" is something equal to or greater than 4096.\n* ./poc /usr/bin/sudo \u0026\u0026 ls -l\n\nHere I get with 2.6.20-rc5:\n\n -rw------- 1 ad   ad   102400 2007-01-15 19:17 core\n ---s--x--x 2 root root 101820 2007-01-15 19:15 /usr/bin/sudo\n\nCheck for MAY_READ like binfmt_misc.c does.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "f47aef55d9a18945fcdd7fd6bf01121ce973b91b"
}
