)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "f47aef55d9a18945fcdd7fd6bf01121ce973b91b",
      "tree": "69f5f6c1fd4ae27d18344ae4b33b5c7bd4b18699",
      "parents": [
        "e5b97dde514f9bd43f9e525451d0a863c4fc8a9a"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jan 26 00:56:49 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 13:50:58 2007 -0800"
      },
      "message": "[PATCH] i386 vDSO: use VM_ALWAYSDUMP\n\nThis patch fixes core dumps to include the vDSO vma, which is left out now.\nIt removes the special-case core writing macros, which were not doing the\nright thing for the vDSO vma anyway.  Instead, it uses VM_ALWAYSDUMP in the\nvma; there is no need for the fixmap page to be installed.  It handles the\nCONFIG_COMPAT_VDSO case by making elf_core_dump use the fake vma from\nget_gate_vma after real vmas in the same way the /proc/PID/maps code does.\n\nThis changes core dumps so they no longer include the non-PT_LOAD phdrs from\nthe vDSO.  I made the change to add them in the first place, but in turned out\nthat nothing ever wanted them there since the advent of NT_AUXV.  It\u0027s cleaner\nto leave them out, and just let the phdrs inside the vDSO image speak for\nthemselves.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5b97dde514f9bd43f9e525451d0a863c4fc8a9a",
      "tree": "e1096d4446c5dab878b50b7001cd58ab9ce5fa45",
      "parents": [
        "b6558c4a2378af06f2beca6c8a3304e21d1cf135"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jan 26 00:56:48 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 13:50:58 2007 -0800"
      },
      "message": "[PATCH] Add VM_ALWAYSDUMP\n\nThis patch adds the VM_ALWAYSDUMP flag for vm_flags in vm_area_struct.  This\nprovides a clean explicit way to have a vma always included in core dumps, as\nis needed for vDSO\u0027s.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90cb28e8f76e57751ffe14abd09c2d53a6aea7c8",
      "tree": "a512f783a9dec262fbff98ff608411d1afd87f97",
      "parents": [
        "d0abc451a685a8d8a5b05db660b06199786981b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Jan 06 13:28:21 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Jan 06 13:28:21 2007 -0800"
      },
      "message": "Revert \"[PATCH] binfmt_elf: randomize PIE binaries (2nd try)\"\n\nThis reverts commit 59287c0913cc9a6c75712a775f6c1c1ef418ef3b.\n\nHugh Dickins reports that it causes random failures on x86 with SuSE\n10.2, and points out\n\n  \"Isn\u0027t that randomization, anywhere from 0x10000 to ELF_ET_DYN_BASE,\n   sure to place the ET_DYN from time to time just where the comment\n   says it\u0027s trying to avoid? I assume that somehow results in the error\n   reported.\"\n\n(where the comment in question is the existing comment in the source\ncode about mmap/brk clashes).\n\nSuggested-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Marcus Meissner \u003cmeissner@suse.de\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "937949d9edbf4049bd41af6c9f92c26280584564",
      "tree": "d0a28f503b082f890cfa1f7fe952fda8fc771752",
      "parents": [
        "ef55d53caa055aedee13e77da82740987dd64f2d"
      ],
      "author": {
        "name": "Cedric Le Goater",
        "email": "clg@fr.ibm.com",
        "time": "Fri Dec 08 02:37:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] add process_session() helper routine\n\nReplace occurences of task-\u003esignal-\u003esession by a new process_session() helper\nroutine.\n\nIt will be useful for pid namespaces to abstract the session pid number.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05",
      "tree": "51763269e44eb9bf4d0f8c529577489902850cf9",
      "parents": [
        "b65d34fd465f19fbe2f32f2205a9a06ca7c2bdeb"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] VFS: change struct file to use struct path\n\nThis patch changes struct file to use struct path instead of having\nindependent pointers to struct dentry and struct vfsmount, and converts all\nusers of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.\n\nAdditionally, it adds two #define\u0027s to make the transition easier for users of\nthe f_dentry and f_vfsmnt.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8de61e69c2feb10e5391cca67a3faf1d2bf77ce0",
      "tree": "e16999ca73e4095e2e7112608a57342e816eac70",
      "parents": [
        "045f147f3290395661b56b9231fc4d221e150963"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@cs.washington.edu",
        "time": "Wed Dec 06 20:40:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:44 2006 -0800"
      },
      "message": "[PATCH] fs: remove unused variable\n\nRemoved unused \u0027have_pt_gnu_stack\u0027 variable.\n\nReported by David Binderman \u003cdcb314@hotmail.com\u003e\n\nSigned-off-by: David Rientjes \u003crientjes@cs.washington.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "386d9a7edd9f3492c99124b0a659e9ed7abb30f9",
      "tree": "6b7f05e1b023f12b113845c23af9a3ba263fef99",
      "parents": [
        "651971cb7242e8f6d7ebd153e69bd271cb731223"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "magnus@valinux.co.jp",
        "time": "Wed Dec 06 20:37:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:38 2006 -0800"
      },
      "message": "[PATCH] elf: Always define elf_addr_t in linux/elf.h\n\nDefine elf_addr_t in linux/elf.h.  The size of the type is determined using\nELF_CLASS.  This allows us to remove the defines that today are spread all\nover .c and .h files.\n\nSigned-off-by: Magnus Damm \u003cmagnus@valinux.co.jp\u003e\nCc: Daniel Jacobowitz \u003cdrow@false.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "841d5fb7c75260f76ae682648b28a3dca724940d",
      "tree": "126dd9c646f384674c2cb99080c980fad209278b",
      "parents": [
        "fec1d0115240593b39898289e6e1413ea6e44a84"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Dec 06 20:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:33 2006 -0800"
      },
      "message": "[PATCH] binfmt: fix uaccess handling\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "59287c0913cc9a6c75712a775f6c1c1ef418ef3b",
      "tree": "0f1c12edec9496275e2b2a373a12b1e9e2e91173",
      "parents": [
        "b23984d0a12a4821b2e9712c71550f321eb88bb5"
      ],
      "author": {
        "name": "Marcus Meissner",
        "email": "meissner@suse.de",
        "time": "Wed Dec 06 20:36:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:33 2006 -0800"
      },
      "message": "[PATCH] binfmt_elf: randomize PIE binaries (2nd try)\n\nRandomizes -pie compiled binaries from 64k (0x10000) up to ELF_ET_DYN_BASE.\n\n0 -\u003e 64k is excluded to allow NULL ptr accesses to fail.\n\nSigned-off-by: Marcus Meissner \u003cmeissner@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bf1ab978be2318c5a564de9aa0f1a217b44170d4",
      "tree": "518a971f12a65c8a3ee54d75b6a8c33b68f54664",
      "parents": [
        "9309180f11f0107c9858a61a1ac2b04518a91080"
      ],
      "author": {
        "name": "Dwayne Grant McConnell",
        "email": "decimal@us.ibm.com",
        "time": "Thu Nov 23 00:46:37 2006 +0100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 04 20:40:19 2006 +1100"
      },
      "message": "[POWERPC] coredump: Add SPU elf notes to coredump.\n\nThis patch adds SPU elf notes to the coredump. It creates a separate note\nfor each of /regs, /fpcr, /lslr, /decr, /decr_status, /mem, /signal1,\n/signal1_type, /signal2, /signal2_type, /event_mask, /event_status,\n/mbox_info, /ibox_info, /wbox_info, /dma_info, /proxydma_info, /object-id.\n\nA new macro, ARCH_HAVE_EXTRA_NOTES, was created for architectures to\nspecify they have extra elf core notes.\n\nA new macro, ELF_CORE_EXTRA_NOTES_SIZE, was created so the size of the\nadditional notes could be calculated and added to the notes phdr entry.\n\nA new macro, ELF_CORE_WRITE_EXTRA_NOTES, was created so the new notes\nwould be written after the existing notes.\n\nThe SPU coredump code resides in spufs. Stub functions are provided in the\nkernel which are hooked into the spufs code which does the actual work via\nregister_arch_coredump_calls().\n\nA new set of __spufs_\u003cfile\u003e_read/get() functions was provided to allow the\ncoredump code to read from the spufs files without having to lock the\nSPU context for each file read from.\n\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Dwayne Grant McConnell \u003cdecimal@us.ibm.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd.bergmann@de.ibm.com\u003e\n"
    },
    {
      "commit": "a7a0d86f5aa40a2215e36fe21d7911cf718ba428",
      "tree": "39c07a323bf37f9e81c0b77cc17c9ba639a43d60",
      "parents": [
        "0b269d8462a9f0058afb46eaee56e0732acf16c4"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Fri Oct 13 18:42:07 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 15 11:24:49 2006 -0700"
      },
      "message": "[PATCH] Fix core files so they make sense to gdb...\n\nIt is silly to use non-static variable for writting zeroes to the file.\n\nAnd more seriously, foffset in core dump file dump function was incremented\ntoo much, so some parts of core dump were shifted by size of few phdrs and\nnotes down, so although gdb was able to load that file, it did not make lot\nof sense - in my test case data pages were shifted down by about 900 bytes.\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f14daa19ea36b200d237ad3ac5826ae25360461",
      "tree": "a123fefbb13871de2bc30fff49a4418b48a38732",
      "parents": [
        "12e36b2f41b6cbc67386fcb9c59c32a3e2033905"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Fri Oct 13 04:13:16 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 13 08:13:34 2006 -0700"
      },
      "message": "[PATCH] Get core dump code to work...\n\nThe file based core dump code was broken by pipe changes - a relative\nllseek returns the absolute file position on success, not the relative\none, so dump_seek() always failed when invoked with non-zero current\nposition.\n\nOnly success/failure can be tested with relative lseek, we have to trust\nkernel that on success we\u0027ve got right file offset.  With this fix in\nplace I have finally real core files instead of 1KB fragments...\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\n[ Cleaned it up a bit while here - use SEEK_CUR instead of hardcoding 1 ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d025c9db7f31fc0554ce7fb2dfc78d35a77f3487",
      "tree": "5da0a10cbc4b1a5cd5f04d7af2df334352df3728",
      "parents": [
        "e239ca540594cff00adcce163dc332b27015d8e5"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Sep 30 23:29:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:33 2006 -0700"
      },
      "message": "[PATCH] Support piping into commands in /proc/sys/kernel/core_pattern\n\nUsing the infrastructure created in previous patches implement support to\npipe core dumps into programs.\n\nThis is done by overloading the existing core_pattern sysctl\nwith a new syntax:\n\n|program\n\nWhen the first character of the pattern is a \u0027|\u0027 the kernel will instead\nthreat the rest of the pattern as a command to run.  The core dump will be\nwritten to the standard input of that program instead of to a file.\n\nThis is useful for having automatic core dump analysis without filling up\ndisks.  The program can do some simple analysis and save only a summary of\nthe core dump.\n\nThe core dump proces will run with the privileges and in the name space of\nthe process that caused the core dump.\n\nI also increased the core pattern size to 128 bytes so that longer command\nlines fit.\n\nMost of the changes comes from allowing core dumps without seeks.  They are\nfairly straight forward though.\n\nOne small incompatibility is that if someone had a core pattern previously\nthat started with \u0027|\u0027 they will get suddenly new behaviour.  I think that\u0027s\nunlikely to be a real problem though.\n\nAdditional background:\n\n\u003e Very nice, do you happen to have a program that can accept this kind of\n\u003e input for crash dumps?  I\u0027m guessing that the embedded people will\n\u003e really want this functionality.\n\nI had a cheesy demo/prototype.  Basically it wrote the dump to a file again,\nran gdb on it to get a backtrace and wrote the summary to a shared directory.\nThen there was a simple CGI script to generate a \"top 10\" crashes HTML\nlisting.\n\nUnfortunately this still had the disadvantage to needing full disk space for a\ndump except for deleting it afterwards (in fact it was worse because over the\npipe holes didn\u0027t work so if you have a holey address map it would require\nmore space).\n\nFortunately gdb seems to be happy to handle /proc/pid/fd/xxx input pipes as\ncores (at least it worked with zsh\u0027s \u003d(cat core) syntax), so it would be\nlikely possible to do it without temporary space with a simple wrapper that\ncalls it in the right way.  I ran out of time before doing that though.\n\nThe demo prototype scripts weren\u0027t very good.  If there is really interest I\ncan dig them out (they are currently on a laptop disk on the desk with the\nlaptop itself being in service), but I would recommend to rewrite them for any\nserious application of this and fix the disk space problem.\n\nAlso to be really useful it should probably find a way to automatically fetch\nthe debuginfos (I cheated and just installed them in advance).  If nobody else\ndoes it I can probably do the rewrite myself again at some point.\n\nMy hope at some point was that desktops would support it in their builtin\ncrash reporters, but at least the KDE people I talked too seemed to be happy\nwith their user space only solution.\n\nAlan sayeth:\n\n  I don\u0027t believe that piping as such as neccessarily the right model, but\n  the ability to intercept and processes core dumps from user space is asked\n  for by many enterprise users as well.  They want to know about, capture,\n  analyse and process core dumps, often centrally and in automated form.\n\n[akpm@osdl.org: loff_t !\u003d unsigned long]\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "07f3f05c1e3052b8656129b2a5aca9f888241a34",
      "tree": "3338b004d518a0d2189efdc3fb88e94e1c02c0ce",
      "parents": [
        "65e6f5bc8149165efb9d7bdbd142bb837d5edfeb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 30 20:52:18 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Sep 30 20:52:18 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move extern declarations out of fs/*.c into header files [try #6]\n\nCreate a new header file, fs/internal.h, for common definitions local to the\nsources in the fs/ directory.\n\nMove extern definitions that should be in header files from fs/*.c to\nfs/internal.h or other main header files where they span directories.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "486ccb05fdbb7ca79784fdf0d07d2a86de48cf05",
      "tree": "9f53973acf7080790ec18984a9eb4a1005bb2875",
      "parents": [
        "b22b4cdd53f5e1ee9ef1ef7933ddb77065859d05"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:00:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:14 2006 -0700"
      },
      "message": "[PATCH] elf_core_dump: don\u0027t take tasklist_lock\n\ndo_each_thread() is rcu-safe, and all tasks which use this -\u003emm must sleep\nin wait_for_completion(\u0026mm-\u003ecore_done) at this point, so we can use RCU\nlocks.\n\nAlso, remove unneeded INIT_LIST_HEAD(new) before list_add(new, head).\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b9b8ab65d8eed784b9164d03807cb2bda7b5cd6",
      "tree": "104c7b01768acd7e152cbf66e4868a73804e8af9",
      "parents": [
        "fc09561d6392771a392dea55c287de7e849b6b63"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Fri Sep 29 02:00:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:12 2006 -0700"
      },
      "message": "[PATCH] Fix unserialized task-\u003efiles changing\n\nFixed race on put_files_struct on exec with proc.  Restoring files on\ncurrent on error path may lead to proc having a pointer to already kfree-d\nfiles_struct.\n\n-\u003efiles changing at exit.c and khtread.c are safe as exit_files() makes all\nthings under lock.\n\nFound during OpenVZ stress testing.\n\n[akpm@osdl.org: add export]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b278240839e20fa9384ea430df463b367b90e04e",
      "tree": "f99f0c8cdd4cc7f177cd75440e6bd181cded7fb3",
      "parents": [
        "dd77a4ee0f3981693d4229aa1d57cea9e526ff47",
        "3f75f42d7733e73aca5c78326489efd4189e0111"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 13:07:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 13:07:55 2006 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6\n\n* \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6: (225 commits)\n  [PATCH] Don\u0027t set calgary iommu as default y\n  [PATCH] i386/x86-64: New Intel feature flags\n  [PATCH] x86: Add a cumulative thermal throttle event counter.\n  [PATCH] i386: Make the jiffies compares use the 64bit safe macros.\n  [PATCH] x86: Refactor thermal throttle processing\n  [PATCH] Add 64bit jiffies compares (for use with get_jiffies_64)\n  [PATCH] Fix unwinder warning in traps.c\n  [PATCH] x86: Allow disabling early pci scans with pci\u003dnoearly or disallowing conf1\n  [PATCH] x86: Move direct PCI scanning functions out of line\n  [PATCH] i386/x86-64: Make all early PCI scans dependent on CONFIG_PCI\n  [PATCH] Don\u0027t leak NT bit into next task\n  [PATCH] i386/x86-64: Work around gcc bug with noreturn functions in unwinder\n  [PATCH] Fix some broken white space in ia32_signal.c\n  [PATCH] Initialize argument registers for 32bit signal handlers.\n  [PATCH] Remove all traces of signal number conversion\n  [PATCH] Don\u0027t synchronize time reading on single core AMD systems\n  [PATCH] Remove outdated comment in x86-64 mmconfig code\n  [PATCH] Use string instructions for Core2 copy/clear\n  [PATCH] x86: - restore i8259A eoi status on resume\n  [PATCH] i386: Split multi-line printk in oops output.\n  ...\n"
    },
    {
      "commit": "8d6b5eeea5eb644232cbbbe1c927fdf051e60fa5",
      "tree": "8ddaf9a7f48d8934cd7cc3dcf2784011fe5999ef",
      "parents": [
        "b20c8122a3204496fca8b5343c93b60fe11dad04"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Sep 25 23:32:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:53 2006 -0700"
      },
      "message": "[PATCH] binfmt_elf: consistently use loff_t\n\nAs David Howells \u003cdhowells@redhat.com\u003e points out, binfmt_elf sometimes uses\noff_t, sometimes uses loff_t.  Use loff_t throughout.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c16b63e09d9d03158e0a92e961234e94c4862620",
      "tree": "154c9b5e082bf0633482be6c33c973cc35c602d8",
      "parents": [
        "d5d9ca6d882f7c8d47ef91a701fc042cbebbc334"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Sep 26 10:52:28 2006 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Tue Sep 26 10:52:28 2006 +0200"
      },
      "message": "[PATCH] i386/x86-64: Don\u0027t randomize stack top when no randomization personality is set\n\nBased on patch from Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e, but\nextended.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "b4cac1a0227a6f84be0381cd350a3c8730a4a671",
      "tree": "24bf1aa95d1977161774210bbb9bf697ad0fe5e9",
      "parents": [
        "01bf466e1866feeb7fce0319cbafe0166e29f5e4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Jul 10 04:44:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:22 2006 -0700"
      },
      "message": "[PATCH] FDPIC: Move roundup() into linux/kernel.h\n\nMove the roundup() macro from binfmt_elf.c into linux/kernel.h as it\u0027s\ngenerally useful.\n\n[akpm@osdl.org: nuke all the other implementations]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ce51059be56f63762089412b3ece348067afda85",
      "tree": "b61b838c549a21186488931c76d6c8eb458ff7a7",
      "parents": [
        "9614634fe6a138fd8ae044950700d2af8d203f97"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Mon Jul 03 00:24:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:26:59 2006 -0700"
      },
      "message": "[PATCH] binfmt_elf: fix checks for bad address\n\nFix check for bad address; use macro instead of open-coding two checks.\n\nTaken from RHEL4 kernel update.\n\nFrom: Ernie Petrides \u003cpetrides@redhat.com\u003e\n\n  For background, the BAD_ADDR() macro should return TRUE if the address is\n  TASK_SIZE, because that\u0027s the lowest address that is *not* valid for\n  user-space mappings.  The macro was correct in binfmt_aout.c but was wrong\n  for the \"equal to\" case in binfmt_elf.c.  There were two in-line validations\n  of user-space addresses in binfmt_elf.c, which have been appropriately\n  converted to use the corrected BAD_ADDR() macro in the patch you posted\n  yesterday.  Note that the size checks against TASK_SIZE are okay as coded.\n\n  The additional changes that I propose are below.  These are in the error\n  paths for bad ELF entry addresses once load_elf_binary() has already\n  committed to exec\u0027ing the new image (following the tearing down of the\n  task\u0027s original address space).\n\n  The 1st hunk deals with the interp-side of the outer \"if\".  There were two\n  problems here.  The printk() should be removed because this path can be\n  triggered at will by a bogus interpreter image created and used by a\n  malicious user.  Further, the error code should not be ENOEXEC, because that\n  causes the loop in search_binary_handler() to continue trying other exec\n  handlers (twice, in fact).  But it\u0027s too late for this to work correctly,\n  because the user address space has already been torn down, and an exec()\n  failure cannot be returned to the user code because the code no longer\n  exists.  The only recovery is to force a SIGSEGV, but it\u0027s best to terminate\n  the search loop immediately.  I somewhat arbitrarily chose EINVAL as a\n  fallback error code, but any error returned by load_elf_interp() will\n  override that (but this value will never be seen by user-space).\n\n  The 2nd hunk deals with the non-interp-side of the outer \"if\".  There were\n  two problems here as well.  The SIGSEGV needs to be forced, because a prior\n  sigaction() syscall might have set the associated disposition to SIG_IGN.\n  And the ENOEXEC should be changed to EINVAL as described above.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Ernie Petrides \u003cpetrides@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "785d55708c24c28d7646f3d1fe6c9f82fb714311",
      "tree": "3d843be61c44bded726ecccf16312fd45dff3dd5",
      "parents": [
        "f4e5cc2c44bf760c02875cf48c886c50ec7d2734"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Fri Jun 23 02:05:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:05 2006 -0700"
      },
      "message": "[PATCH] binflt_elf: remove more casts\n\nRemove redundant casts from NEW_AUX_ENT() arguments in fs/binfmt_elf.c\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f4e5cc2c44bf760c02875cf48c886c50ec7d2734",
      "tree": "768df1296b1294c2c84b82f3b0239e5bae3fd5fc",
      "parents": [
        "11420211b8123d0e2f71945ad022e8eec28ebfce"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Fri Jun 23 02:05:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:05 2006 -0700"
      },
      "message": "[PATCH] binfmt_elf: CodingStyle cleanup and remove some pointless casts\n\nDo a CodingStyle cleanup of fs/binfmt_elf.c and also remove some pointless\ncasts of kmalloc() return values in the same file.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c89681ed7d0e4a61d35bdc12c06c6733b718b2cb",
      "tree": "170d7c54d578480ba231dd690243aa21067ca253",
      "parents": [
        "09d967c6f32b35eab15b45862ae16e4f06259d8e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Jun 22 14:47:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:05:57 2006 -0700"
      },
      "message": "[PATCH] remove steal_locks()\n\nThis patch removes the steal_locks() function.\n\nsteal_locks() doesn\u0027t work correctly with any filesystem that does it\u0027s own\nlock management, including NFS, CIFS, etc.\n\nIn addition it has weird semantics on local filesystems in case tasks\nsharing file-descriptor tables are doing POSIX locking operations in\nparallel to execve().\n\nThe steal_locks() function has an effect on applications doing:\n\nclone(CLONE_FILES)\n  /* in child */\n  lock\n  execve\n  lock\n\nPOSIX locks acquired before execve (by \"child\", \"parent\" or any further\ntask sharing files_struct) will after the execve be owned exclusively by\n\"child\".\n\nAccording to Chris Wright some LSB/LTP kind of suite triggers without the\nstealing behavior, but there\u0027s no known real-world application that would\nalso fail.\n\nApps using NPTL are not affected, since all other threads are killed before\nexecve.\n\nApps using LinuxThreads are only affected if they\n\n  - have multiple threads during exec (LinuxThreads doesn\u0027t kill other\n    threads, the app may do it with pthread_kill_other_threads_np())\n  - rely on POSIX locks being inherited across exec\n\nBoth conditions are documented, but not their interaction.\n\nApps using clone() natively are affected if they\n\n  - use clone(CLONE_FILES)\n  - rely on POSIX locks being inherited across exec\n\nThe above scenarios are unlikely, but possible.\n\nIf the patch is vetoed, there\u0027s a plan B, that involves mostly keeping the\nweird stealing semantics, but changing the way lock ownership is handled so\nthat network and local filesystems work consistently.\n\nThat would add more complexity though, so this solution seems to be\npreferred by most people.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "913bd906019514579b3c7ec5ab9c463e89207a57",
      "tree": "8f73c66bf2b30afb2807814d97f9307af0508454",
      "parents": [
        "dca99a38bccceda9e079d4c95abefbd9028605fe"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Mar 25 16:29:09 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:10:52 2006 -0800"
      },
      "message": "[PATCH] x86_64: Increase the variability of the process stack on 64bit architectures\n\n8MB is not really very random, use 1GB (or more with larger page sizes)\ninstead.\n\nAlso use the low bits of the random generator output now instead of\nthrowing them away.\n\nOnly enabled on x86-64 right now. Other architectures need to add\na suitable STACK_RND_MASK\n\nCc: mingo@elte.hu\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55148548124e3e52e8921f1cb0e325111ef9cbb1",
      "tree": "b1a84317305d060b38bc6fcb1ae4006a76f22071",
      "parents": [
        "06842415149371127b91d15774cff95dcccc1845"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Sat Mar 25 03:08:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:01 2006 -0800"
      },
      "message": "[PATCH] remove needless check in binfmt_elf.c\n\nLocal variable i is unsigned int and thus cannot be negative.\n\n(akpm: unsigneds shouldn\u0027t be called `i\u0027.  This value cannot possibly be\nnegative anyway).\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "11b0b5abb2097a63c1081d9b7e825b987b227972",
      "tree": "162c828c8d807a1b30869acbe11682dc9222dc16",
      "parents": [
        "656bde5728b824ca23fcab8bc5800b309ea48d64"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "neukum@fachschaft.cup.uni-muenchen.de",
        "time": "Sat Mar 25 03:08:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:00 2006 -0800"
      },
      "message": "[PATCH] use kzalloc and kcalloc in core fs code\n\nSigned-off-by: Oliver Neukum \u003coliver@neukum.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5342fba5412cead88b61ead07168615dbeba1ee3",
      "tree": "1ec0936cff22284b2226f431033b1a36b27615c7",
      "parents": [
        "f83f2b5fbab4585f4de4523c7879d60e3f85a248"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Sun Feb 26 04:18:28 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 26 09:53:30 2006 -0800"
      },
      "message": "[PATCH] x86_64: Check for bad elf entry address.\n\nFixes a local DOS on Intel systems that lead to an endless\nrecursive fault.  AMD machines don\u0027t seem to be affected.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74da6cd06225da6971943bea6a33f4cb7f6b76a3",
      "tree": "f9ec384242a21b9e2eced6b4588ddfee65192565",
      "parents": [
        "e97a31117c0f96be6637f68b4029609bb1f2cc7c"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Wed Jan 11 01:51:26 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@r063144.stusta.swh.mhn.de",
        "time": "Wed Jan 11 01:51:26 2006 +0100"
      },
      "message": "missing printk loglevel and tiny tiny whitespace change in binfmt_elf()\n\nPatch adds a mising printk loglevel (I think KERN_WARNING is appropriate\nhere) in fs/binfmt_elf.c, and while I was there I made some tiny tiny tiny\nadjustments to whitespacing in the neighborhood.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "792db3af38a55b2079df504b9f5aa57b2dbee48d",
      "tree": "a88af0f8cdda91f4ed8ac8278ca0412abd63d489",
      "parents": [
        "352d768b19408d3c019a3fa09fd5bfed99a55bc6"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Mon Jan 09 20:54:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:02:01 2006 -0800"
      },
      "message": "[PATCH] fs/binfmt_elf: Remove unneeded kmalloc() return value casts\n\nRemove unneeded casts of kmalloc() return value in binfmt_elf.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "708e9a794cf8822b760edaccd9053edb07c34d19",
      "tree": "ae5f0f9d69c082db751554b3f5717eee60d6205c",
      "parents": [
        "e585e47031751f4e393e10ffd922885508b958dd"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:05:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:11 2006 -0800"
      },
      "message": "[PATCH] tiny: Configure ELF core dump support\n\nconfigurable support for ELF core dumps\n\n   text    data     bss     dec     hex filename\n3330172  529036  190556 4049764  3dcb64 vmlinux-baseline\n3325552  528912  190556 4045020  3db8dc vmlinux-no-elf\n\nadd/remove: 0/8 grow/shrink: 0/0 up/down: 0/-4424 (-4424)\nfunction                                     old     new   delta\nfill_note                                     32       -     -32\nmaydump                                       58       -     -58\ndump_seek                                     67       -     -67\nwritenote                                    180       -    -180\nelf_dump_thread_status                       274       -    -274\nfill_psinfo                                  308       -    -308\nfill_prstatus                                466       -    -466\nelf_core_dump                               3039       -   -3039\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dda6ebde96044e9b5f1b14588659b39b4e6c08e7",
      "tree": "c06bba58d2623784c88acc321137c34b7be16335",
      "parents": [
        "cc398c2eae35b13d77b77337136325edc6ca94ca"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Sun Jan 08 01:03:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:58 2006 -0800"
      },
      "message": "[PATCH] Fix handling of ELF segments with zero filesize\n\nmmap() returns -EINVAL if given a zero length, and thus elf_map() in\nbinfmt_elf.c does likewise if it attempts to map a (page-aligned) ELF\nsegment with zero filesize.  Such a situation never arises with the default\nlinker scripts, but there\u0027s nothing inherently wrong with zero-filesize\n(but non-zero memsize) ELF segments.  Custom linker scripts can generate\nthem, and the kernel should be able to map them; this patch makes it so.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f99d49adf527fa6f7a9c42257fa76bca6b8df1e3",
      "tree": "41dddbc336016f9dc9557cdb15300de5e599dac1",
      "parents": [
        "6044ec8882c726e325017bd948aa0cd94ad33abc"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Mon Nov 07 01:01:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] kfree cleanup: fs\n\nThis is the fs/ part of the big kfree cleanup patch.\n\nRemove pointless checks for NULL prior to calling kfree() in fs/.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a92897286485735e3708af357f8bcaf0592bd77a",
      "tree": "698e4623bdc794462c270ee3e5ef549503593f4a",
      "parents": [
        "dfc4f94d2ff95fc92127d3e512c1df7cab274fb8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Oct 30 15:02:08 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] Don\u0027t uselessly export task_struct to userspace in core dumps\n\ntask_struct is an internal structure to the kernel with a lot of good\ninformation, that is probably interesting in core dumps.  However there is\nno way for user space to know what format that information is in making it\nuseless.\n\nI grepped the GDB 6.3 source code and NT_TASKSTRUCT while defined is not\nused anywhere else.  So I would be surprised if anyone notices it is\nmissing.\n\nIn addition exporting kernel pointers to all the interesting kernel data\nstructures sounds like the very definition of an information leak.  I\nhaven\u0027t a clue what someone with evil intentions could do with that\ninformation, but in any attack against the kernel it looks like this is the\nperfect tool for aiming that attack.\n\nSo since NT_TASKSTRUCT is useless as currently defined and is potentially\ndangerous, let\u0027s just not export it.\n\n(akpm: Daniel Jacobowitz \u003cdan@debian.org\u003e \"would be amazed\" if anything was\nusing NT_TASKSTRUCT).\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "404351e67a9facb475abf1492245374a28d13e90",
      "tree": "5ef4e78b399b36a46eda339ad0cd27556fc5b9a2",
      "parents": [
        "fc2acab31be8e869b2d5f6de12f557f6f054f19c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: mm_init set_mm_counters\n\nHow is anon_rss initialized?  In dup_mmap, and by mm_alloc\u0027s memset; but\nthat\u0027s not so good if an mm_counter_t is a special type.  And how is rss\ninitialized?  By set_mm_counter, all over the place.  Come on, we just need to\ninitialize them both at once by set_mm_counter in mm_init (which follows the\nmemcpy when forking).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6de505173e24e76bb33a2595312e0c2b44d49e58",
      "tree": "0d06e061a70b337627b7e83985d736c0b4f50f33",
      "parents": [
        "a0c111c631e7ab4abd68920debd44259160812ef"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 11 08:29:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 11 09:46:54 2005 -0700"
      },
      "message": "[PATCH] binfmt_elf bss padding fix\n\nNir Tzachar \u003ctzachar@cs.bgu.ac.il\u003e points out that if an ELF file specifies a\nzero-length bss at a whacky address, we cannot load that binary because\npadzero() tries to zero out the end of the page at the whacky address, and\nthat may not be writeable.\n\nSee also http://bugzilla.kernel.org/show_bug.cgi?id\u003d5411\n\nSo teach load_elf_binary() to skip the bss settng altogether if the elf file\nhas a zero-length bss segment.\n\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Daniel Jacobowitz \u003cdan@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1363c3cd8603a913a27e2995dccbd70d5312d8e6",
      "tree": "405e7fc1ef44678f3ca0a54c536d0457e6e80f45",
      "parents": [
        "e7c8d5c9955a4d2e88e36b640563f5d6d5aba48a"
      ],
      "author": {
        "name": "Wolfgang Wander",
        "email": "wwc@rentec.com",
        "time": "Tue Jun 21 17:14:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:16 2005 -0700"
      },
      "message": "[PATCH] Avoiding mmap fragmentation\n\nIngo recently introduced a great speedup for allocating new mmaps using the\nfree_area_cache pointer which boosts the specweb SSL benchmark by 4-5% and\ncauses huge performance increases in thread creation.\n\nThe downside of this patch is that it does lead to fragmentation in the\nmmap-ed areas (visible via /proc/self/maps), such that some applications\nthat work fine under 2.4 kernels quickly run out of memory on any 2.6\nkernel.\n\nThe problem is twofold:\n\n  1) the free_area_cache is used to continue a search for memory where\n     the last search ended.  Before the change new areas were always\n     searched from the base address on.\n\n     So now new small areas are cluttering holes of all sizes\n     throughout the whole mmap-able region whereas before small holes\n     tended to close holes near the base leaving holes far from the base\n     large and available for larger requests.\n\n  2) the free_area_cache also is set to the location of the last\n     munmap-ed area so in scenarios where we allocate e.g.  five regions of\n     1K each, then free regions 4 2 3 in this order the next request for 1K\n     will be placed in the position of the old region 3, whereas before we\n     appended it to the still active region 1, placing it at the location\n     of the old region 2.  Before we had 1 free region of 2K, now we only\n     get two free regions of 1K -\u003e fragmentation.\n\nThe patch addresses thes issues by introducing yet another cache descriptor\ncached_hole_size that contains the largest known hole size below the\ncurrent free_area_cache.  If a new request comes in the size is compared\nagainst the cached_hole_size and if the request can be filled with a hole\nbelow free_area_cache the search is started from the base instead.\n\nThe results look promising: Whereas 2.6.12-rc4 fragments quickly and my\n(earlier posted) leakme.c test program terminates after 50000+ iterations\nwith 96 distinct and fragmented maps in /proc/self/maps it performs nicely\n(as expected) with thread creation, Ingo\u0027s test_str02 with 20000 threads\nrequires 0.7s system time.\n\nTaking out Ingo\u0027s patch (un-patch available per request) by basically\ndeleting all mentions of free_area_cache from the kernel and starting the\nsearch for new memory always at the respective bases we observe: leakme\nterminates successfully with 11 distinctive hardly fragmented areas in\n/proc/self/maps but thread creating is gringdingly slow: 30+s(!) system\ntime for Ingo\u0027s test_str02 with 20000 threads.\n\nNow - drumroll ;-) the appended patch works fine with leakme: it ends with\nonly 7 distinct areas in /proc/self/maps and also thread creation seems\nsufficiently fast with 0.71s for 20000 threads.\n\nSigned-off-by: Wolfgang Wander \u003cwwc@rentec.com\u003e\nCredit-to: \"Richard Purdie\" \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e (partly)\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "5db92850d3ab72b830a0fe6e30eaec8462801408"
}
