)]}'
{
  "log": [
    {
      "commit": "1557d33007f63dd96e5d15f33af389378e5f2e54",
      "tree": "06d05722b2ba5d2a67532f779fa8a88efe3c88f1",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "c656ae95d1c5c8ed5763356263ace2d03087efec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6: (43 commits)\n  security/tomoyo: Remove now unnecessary handling of security_sysctl.\n  security/tomoyo: Add a special case to handle accesses through the internal proc mount.\n  sysctl: Drop \u0026 in front of every proc_handler.\n  sysctl: Remove CTL_NONE and CTL_UNNUMBERED\n  sysctl: kill dead ctl_handler definitions.\n  sysctl: Remove the last of the generic binary sysctl support\n  sysctl net: Remove unused binary sysctl code\n  sysctl security/tomoyo: Don\u0027t look at ctl_name\n  sysctl arm: Remove binary sysctl support\n  sysctl x86: Remove dead binary sysctl support\n  sysctl sh: Remove dead binary sysctl support\n  sysctl powerpc: Remove dead binary sysctl support\n  sysctl ia64: Remove dead binary sysctl support\n  sysctl s390: Remove dead sysctl binary support\n  sysctl frv: Remove dead binary sysctl support\n  sysctl mips/lasat: Remove dead binary sysctl support\n  sysctl drivers: Remove dead binary sysctl support\n  sysctl crypto: Remove dead binary sysctl support\n  sysctl security/keys: Remove dead binary sysctl support\n  sysctl kernel: Remove binary sysctl logic\n  ...\n"
    },
    {
      "commit": "897e81bea1fcfcd2c5cdb720c9efdb25da9ff374",
      "tree": "92cf33ed2c35c1ece633f09365702f1c8e24d415",
      "parents": [
        "c3fa27d1367fac63ac8533d6f20ea851d0d70a10",
        "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (35 commits)\n  sched, cputime: Introduce thread_group_times()\n  sched, cputime: Cleanups related to task_times()\n  Revert \"sched, x86: Optimize branch hint in __switch_to()\"\n  sched: Fix isolcpus boot option\n  sched: Revert 498657a478c60be092208422fefa9c7b248729c2\n  sched, time: Define nsecs_to_jiffies()\n  sched: Remove task_{u,s,g}time()\n  sched: Introduce task_times() to replace task_{u,s}time() pair\n  sched: Limit the number of scheduler debug messages\n  sched.c: Call debug_show_all_locks() when dumping all tasks\n  sched, x86: Optimize branch hint in __switch_to()\n  sched: Optimize branch hint in context_switch()\n  sched: Optimize branch hint in pick_next_task_fair()\n  sched_feat_write(): Update ppos instead of file-\u003ef_pos\n  sched: Sched_rt_periodic_timer vs cpu hotplug\n  sched, kvm: Fix race condition involving sched_in_preempt_notifers\n  sched: More generic WAKE_AFFINE vs select_idle_sibling()\n  sched: Cleanup select_task_rq_fair()\n  sched: Fix granularity of task_u/stime()\n  sched: Fix/add missing update_rq_clock() calls\n  ...\n"
    },
    {
      "commit": "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239",
      "tree": "6102662a9594d51155bee11666fe8517fcbe6039",
      "parents": [
        "d99ca3b977fc5a93141304f571475c2af9e6c1c5"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Dec 02 17:28:07 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 17:32:40 2009 +0100"
      },
      "message": "sched, cputime: Introduce thread_group_times()\n\nThis is a real fix for problem of utime/stime values decreasing\ndescribed in the thread:\n\n   http://lkml.org/lkml/2009/11/3/522\n\nNow cputime is accounted in the following way:\n\n - {u,s}time in task_struct are increased every time when the thread\n   is interrupted by a tick (timer interrupt).\n\n - When a thread exits, its {u,s}time are added to signal-\u003e{u,s}time,\n   after adjusted by task_times().\n\n - When all threads in a thread_group exits, accumulated {u,s}time\n   (and also c{u,s}time) in signal struct are added to c{u,s}time\n   in signal struct of the group\u0027s parent.\n\nSo {u,s}time in task struct are \"raw\" tick count, while\n{u,s}time and c{u,s}time in signal struct are \"adjusted\" values.\n\nAnd accounted values are used by:\n\n - task_times(), to get cputime of a thread:\n   This function returns adjusted values that originates from raw\n   {u,s}time and scaled by sum_exec_runtime that accounted by CFS.\n\n - thread_group_cputime(), to get cputime of a thread group:\n   This function returns sum of all {u,s}time of living threads in\n   the group, plus {u,s}time in the signal struct that is sum of\n   adjusted cputimes of all exited threads belonged to the group.\n\nThe problem is the return value of thread_group_cputime(),\nbecause it is mixed sum of \"raw\" value and \"adjusted\" value:\n\n  group\u0027s {u,s}time \u003d foreach(thread){{u,s}time} + exited({u,s}time)\n\nThis misbehavior can break {u,s}time monotonicity.\nAssume that if there is a thread that have raw values greater\nthan adjusted values (e.g. interrupted by 1000Hz ticks 50 times\nbut only runs 45ms) and if it exits, cputime will decrease (e.g.\n-5ms).\n\nTo fix this, we could do:\n\n  group\u0027s {u,s}time \u003d foreach(t){task_times(t)} + exited({u,s}time)\n\nBut task_times() contains hard divisions, so applying it for\nevery thread should be avoided.\n\nThis patch fixes the above problem in the following way:\n\n - Modify thread\u0027s exit (\u003d __exit_signal()) not to use task_times().\n   It means {u,s}time in signal struct accumulates raw values instead\n   of adjusted values.  As the result it makes thread_group_cputime()\n   to return pure sum of \"raw\" values.\n\n - Introduce a new function thread_group_times(*task, *utime, *stime)\n   that converts \"raw\" values of thread_group_cputime() to \"adjusted\"\n   values, in same calculation procedure as task_times().\n\n - Modify group\u0027s exit (\u003d wait_task_zombie()) to use this introduced\n   thread_group_times().  It make c{u,s}time in signal struct to\n   have adjusted values like before this patch.\n\n - Replace some thread_group_cputime() by thread_group_times().\n   This replacements are only applied where conveys the \"adjusted\"\n   cputime to users, and where already uses task_times() near by it.\n   (i.e. sys_times(), getrusage(), and /proc/\u003cPID\u003e/stat.)\n\nThis patch have a positive side effect:\n\n - Before this patch, if a group contains many short-life threads\n   (e.g. runs 0.9ms and not interrupted by ticks), the group\u0027s\n   cputime could be invisible since thread\u0027s cputime was accumulated\n   after adjusted: imagine adjustment function as adj(ticks, runtime),\n     {adj(0, 0.9) + adj(0, 0.9) + ....} \u003d {0 + 0 + ....} \u003d 0.\n   After this patch it will not happen because the adjustment is\n   applied after accumulated.\n\nv2:\n - remove if()s, put new variables into signal_struct.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nLKML-Reference: \u003c4B162517.8040909@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d5b7c78e975302a1bab28263266c39ecb71acad4",
      "tree": "47d9a18b2e81b3f93faf89b548b50beff29dd4fe",
      "parents": [
        "d180c5bccec02612256fd8076ff3c1fac3429553"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:49:05 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:20 2009 +0100"
      },
      "message": "sched: Remove task_{u,s,g}time()\n\nNow all task_{u,s}time() pairs are replaced by task_times().\nAnd task_gtime() is too simple to be an inline function.\n\nCleanup them all.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16D1.70902@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d180c5bccec02612256fd8076ff3c1fac3429553",
      "tree": "1ef4a45c81531645640380965916c68bbe7f6abb",
      "parents": [
        "16bc67edeb49b531940b2ba6c183780a1b5c472d"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:48:30 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:19 2009 +0100"
      },
      "message": "sched: Introduce task_times() to replace task_{u,s}time() pair\n\nFunctions task_{u,s}time() are called in pair in almost all\ncases.  However task_stime() is implemented to call task_utime()\nfrom its inside, so such paired calls run task_utime() twice.\n\nIt means we do heavy divisions (div_u64 + do_div) twice to get\nutime and stime which can be obtained at same time by one set\nof divisions.\n\nThis patch introduces a function task_times(*tsk, *utime,\n*stime) to retrieve utime and stime at once in better, optimized\nway.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16AE.906@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "16bc67edeb49b531940b2ba6c183780a1b5c472d",
      "tree": "71b4bc48e47e54f2c0b3126d8f81d2f31b707ea8",
      "parents": [
        "f6630114d9198aa959ac95c131334c020038f253",
        "047106adcc85e3023da210143a6ab8a55df9e0fc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:42 2009 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: Pick up fixes that did not make it into .32.0\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ebd4eba761b624a6a6c9189335adeddcb1fa0e0",
      "tree": "8b5b5fc3514df3edf8bf6436636bf813c1f51e8c",
      "parents": [
        "6ad696d2cf535772dff659298ec7e7260e344595"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Nov 17 14:06:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "procfs: fix /proc/\u003cpid\u003e/stat stack pointer for kernel threads\n\nFix a small issue for the stack pointer in /proc/\u003cpid\u003e/stat.  In case of a\nkernel thread the value of the printed stack pointer should be 0.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: 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": "bb9074ff58fe745e4f244f76209241909c82ec9c",
      "tree": "cf6be00ab88b1e315f6b74a896a370440f677599",
      "parents": [
        "4739a9748e1bd7459f22f7e94e7d85710ca83954",
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 17 01:01:34 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 17 01:01:34 2009 -0800"
      },
      "message": "Merge commit \u0027v2.6.32-rc7\u0027\n\nResolve the conflict between v2.6.32-rc7 where dn_def_dev_handler\ngets a small bug fix and the sysctl tree where I am removing all\nsysctl strategy routines.\n"
    },
    {
      "commit": "29f12ca32122db98481150be09d35bd72b68045e",
      "tree": "df2bbe3d67451a6c51a5056a40cd8dfa09dd5b29",
      "parents": [
        "15f3c476589c8778b0c10f1fb5160f9107c69556"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Nov 11 14:26:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:57 2009 -0800"
      },
      "message": "pidns: fix a leak in /proc dentries and inodes with pid namespaces.\n\nDaniel Lezcano reported a leak in \u0027struct pid\u0027 and \u0027struct pid_namespace\u0027\nthat is discussed in:\n\n\thttp://lkml.org/lkml/2009/10/2/159.\n\nTo summarize the thread, when container-init is terminated, it sets the\nPF_EXITING flag, zaps other processes in the container and waits to reap\nthem.  As a part of reaping, the container-init should flush any /proc\ndentries associated with the processes.  But because the container-init is\nitself exiting and the following PF_EXITING check, the dentries are not\nflushed, resulting in leak in /proc inodes and dentries.\n\nThis fix reverts the commit 7766755a2f249e7e0 (\"Fix /proc dcache deadlock\nin do_exit\") which introduced the check for PF_EXITING.  At the time of\nthe commit, shrink_dcache_parent() flushed dentries from other filesystems\nalso and could have caused a deadlock which the commit fixed.  But as\npointed out by Eric Biederman, after commit 0feae5c47aabdde59,\nshrink_dcache_parent() no longer affects other filesystems.  So reverting\nthe commit is now safe.\n\nAs pointed out by Jan Kara, the leak is not as critical since the\nunclaimed space will be reclaimed under memory pressure or by:\n\n\techo 3 \u003e /proc/sys/vm/drop_caches\n\nBut since this check is no longer required, its best to remove it.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nReported-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Andrea Arcangeli \u003candrea@cpushare.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.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": "2315ffa0a9f789c588c7139effa7404a387d8685",
      "tree": "756d32f0ab8b67e9d45a1e4399c9ee6080909e70",
      "parents": [
        "6fce56ec91b502ba6fcbbc2a6d25a8c2c7f77934"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Apr 03 03:18:02 2009 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 11 00:53:43 2009 -0800"
      },
      "message": "sysctl: Don\u0027t look at ctl_name and strategy in the generic code\n\nThe ctl_name and strategy fields are unused, now that sys_sysctl\nis a compatibility wrapper around /proc/sys.  No longer looking\nat them in the generic code is effectively what we are doing\nnow and provides the guarantee that during further cleanups\nwe can just remove references to those fields and everything\nwill work ok.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "370c28def65b3a5765192753a164403619b41d01",
      "tree": "cb77542b92402cdd3aec14d01597fe04bd19b44b",
      "parents": [
        "92f7ba70eecf4da8264a767b181cc2090f62d4ad"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Oct 26 16:49:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 29 07:39:25 2009 -0700"
      },
      "message": "hwpoison: fix/proc/meminfo alignment\n\nGiven such a long name, the kB count in /proc/meminfo\u0027s HardwareCorrupted\nline is being shown too far right (it does align with x86_64\u0027s VmallocChunk\nabove, but I hope nobody will ever have that much corrupted!).  Align it.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce0e7b28fb75cb003cfc8d0238613aaf1c55e797",
      "tree": "e70bec2040045b68876d85036756bc046b5d2742",
      "parents": [
        "0b9e31e9264f1bad89856afb96da1688292f13b4"
      ],
      "author": {
        "name": "Ryota Ozaki",
        "email": "ozaki.ryota@gmail.com",
        "time": "Sat Oct 24 01:20:10 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 25 17:31:30 2009 +0100"
      },
      "message": "sched, cpuacct: Fix niced guest time accounting\n\nCPU time of a guest is always accounted in \u0027user\u0027 time\nwithout concern for the nice value of its counterpart\nprocess although the guest is scheduled under the nice\nvalue.\n\nThis patch fixes the defect and accounts cpu time of\na niced guest in \u0027nice\u0027 time as same as a niced process.\n\nAnd also the patch adds \u0027guest_nice\u0027 to cpuacct. The\nvalue provides niced guest cpu time which is like \u0027nice\u0027\nto \u0027user\u0027.\n\nThe original discussions can be found here:\n\n  http://www.mail-archive.com/kvm@vger.kernel.org/msg23982.html\n  http://www.mail-archive.com/kvm@vger.kernel.org/msg23860.html\n\nSigned-off-by: Ryota Ozaki \u003cozaki.ryota@gmail.com\u003e\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1256314810-7897-1-git-send-email-ozaki.ryota@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b9e31e9264f1bad89856afb96da1688292f13b4",
      "tree": "7a9e9b6456dce993efeed8734de0a15a1f16ae94",
      "parents": [
        "cf82ff7ea7695b0e82ba07bc5e9f1bd03a74e1aa",
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 25 17:30:53 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 25 17:30:53 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nConflicts:\n\tfs/proc/array.c\n\nMerge reason: resolve conflict and queue up dependent patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "253fb02d62571e5455eedc9e39b9d660e86a40f0",
      "tree": "f52fc8f0d792148d43e4e38ed48dc3666ef50b75",
      "parents": [
        "7823da36ce8e42d66941887eb922768d259763f2"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Oct 07 16:32:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 08 07:36:39 2009 -0700"
      },
      "message": "pagemap: export KPF_HWPOISON\n\nThis flag indicates a hardware detected memory corruption on the page.\nAny future access of the page data may bring down the machine.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4055e97318809638a57fbe1746b93bc7a90ef0d3",
      "tree": "8dedb30f4e9f2da35447a88d7a906427e48eb310",
      "parents": [
        "3700c155af56b54adfc737ba3164a41de2c59d41"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Wed Oct 07 16:32:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 08 07:36:38 2009 -0700"
      },
      "message": "fs: includecheck fix: proc, kcore.c\n\nfix the following \u0027make includecheck\u0027 warning:\n\n  fs/proc/kcore.c: linux/mm.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@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": "c44972f1782124f945ec8bea8a78f30f1a3538bd",
      "tree": "f804afc972b794100547383b5ca8e1936a91c3aa",
      "parents": [
        "b9b9df62e7fd6b5f099c24bc867100ab86e1da5a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Sep 24 14:47:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 17:11:24 2009 -0700"
      },
      "message": "procfs: disable per-task stack usage on NOMMU\n\nIt needs walk_page_range().\n\nReported-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nTested-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ca263cdf8cf74d0f1c6f48d07d556de92e3bec9",
      "tree": "409ed34476208f714e0d4c529a642d8fd21feaa5",
      "parents": [
        "a6b49cb210f878709bdc0bddc16a853f18790d02",
        "96830a57de1197519b62af6a4c9ceea556c18c3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:04:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:04:24 2009 -0700"
      },
      "message": "Merge branch \u0027cputime\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027cputime\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [PATCH] Fix idle time field in /proc/uptime\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96830a57de1197519b62af6a4c9ceea556c18c3d",
      "tree": "fc92ae39a4d06e3fb2970e9fc5f6e7a46abf1df0",
      "parents": [
        "94a8d5caba74211ec76dac80fc6e2d5c391530df"
      ],
      "author": {
        "name": "Michael Abbott",
        "email": "michael.abbott@diamond.ac.uk",
        "time": "Thu Sep 24 10:15:19 2009 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Sep 24 10:16:24 2009 +0200"
      },
      "message": "[PATCH] Fix idle time field in /proc/uptime\n\nGit commit 79741dd changes idle cputime accounting, but unfortunately\nthe /proc/uptime file hasn\u0027t caught up.  Here the idle time calculation\nfrom /proc/stat is copied over.\n\nSigned-off-by: Michael Abbott \u003cmichael.abbott@diamond.ac.uk\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "0d4c36a9b6ab6b15851f60956d901a3c53574ea8",
      "tree": "08ca4041ee0a3748835b34227868427b7a82467f",
      "parents": [
        "678ad5d8aaf8925cb8465f84e1e47d9b1284666a"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "/proc/kcore: update stat.st_size after memory hotplug\n\nAfter memory hotplug (or other events in future), kcore size can be\nmodified.\n\nTo update inode-\u003ei_size, we have to know inode/dentry but we can\u0027t get it\nfrom inside /proc directly.  But considerinyg memory hotplug, kcore image\nis updated only when it\u0027s opened.  Then, updating inode-\u003ei_size at open()\nis enough.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-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": "678ad5d8aaf8925cb8465f84e1e47d9b1284666a",
      "tree": "638189ae49da8da3dff9ba2f422f16a734b9388c",
      "parents": [
        "90396f96b7da0e2305ffe0266d22b6f8221f28ba"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "/proc/kcore: fix stat.st_size\n\nPresently the size of /proc/kcore which can be read by \u0027ls -l\u0027 is 0.  But\nit\u0027s not the correct value.\n\nOn x86-64, ls -l shows\n ... root root 140737486266368 2009-09-17 10:29 /proc/kcore\nThen, 7FFFFFFE02000. This comes from vmalloc area\u0027s size.\n(*) This shows \"core\" size, not  memory size.\n\nThis patch shows the size by updating \"size\" field in struct\nproc_dir_entry.  Later, lookup routine will create inode and fill\ninode-\u003ei_size based on this value.  Then, this has a problem.\n\n - Once inode is cached, inode-\u003ei_size will never be updated.\n\nThen, this patch is not memory-hotplug-aware.\n\nTo update inode-\u003ei_size, we have to know dentry or inode.\nBut there is no way to lookup them by inside kernel. Hmmm....\nNext patch will try it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-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": "90396f96b7da0e2305ffe0266d22b6f8221f28ba",
      "tree": "8e609c30ef66e6f4753346043c1f31bf2855cedc",
      "parents": [
        "81ac3ad9061dd9cd490ee92f0c5316a14d77ce18"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "kcore: more fixes for init\n\nproc_kcore_init() doesn\u0027t check NULL case.  fix it and remove unnecessary\ncomments.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-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": "81ac3ad9061dd9cd490ee92f0c5316a14d77ce18",
      "tree": "1787b8c307b5e70e2763c4e7c0767c2b7e108dc4",
      "parents": [
        "26562c59fa9111ae3ea7b78045889662aac9e5ac"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "kcore: register module area in generic way\n\nSome archs define MODULED_VADDR/MODULES_END which is not in VMALLOC area.\nThis is handled only in x86-64.  This patch make it more generic.  And we\ncan use vread/vwrite to access the area.  Fix it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: 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": "26562c59fa9111ae3ea7b78045889662aac9e5ac",
      "tree": "fe231752dcc4db5967bd798dbd9749a516678e18",
      "parents": [
        "3089aa1b0c07fb7c48f9829c619f50198307789d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: register vmemmap range\n\nBenjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e pointed out that vmemmap\nrange is not included in KCORE_RAM, KCORE_VMALLOC ....\n\nThis adds KCORE_VMEMMAP if SPARSEMEM_VMEMMAP is used.  By this, vmemmap\ncan be readable via /proc/kcore\n\nBecause it\u0027s not vmalloc area, vread/vwrite cannot be used.  But the range\nis static against the memory layout, this patch handles vmemmap area by\nthe same scheme with physical memory.\n\nThis patch assumes SPARSEMEM_VMEMMAP range is not in VMALLOC range.  It\u0027s\ncorrect now.\n\n[akpm@linux-foundation.org: fix typo]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: 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": "3089aa1b0c07fb7c48f9829c619f50198307789d",
      "tree": "63677c773c559458ba301bd448ecce6e007b6742",
      "parents": [
        "908eedc6168bd92e89f90d89fa389065a36358fa"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: use registerd physmem information\n\nFor /proc/kcore, each arch registers its memory range by kclist_add().\nIn usual,\n\n\t- range of physical memory\n\t- range of vmalloc area\n\t- text, etc...\n\nare registered but \"range of physical memory\" has some troubles.  It\ndoesn\u0027t updated at memory hotplug and it tend to include unnecessary\nmemory holes.  Now, /proc/iomem (kernel/resource.c) includes required\nphysical memory range information and it\u0027s properly updated at memory\nhotplug.  Then, it\u0027s good to avoid using its own code(duplicating\ninformation) and to rebuild kclist for physical memory based on\n/proc/iomem.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9492587cf35d370db33ef4b38375dfb35a105b61",
      "tree": "59daaf91e847d3c5cd6f542626da75db5814b06d",
      "parents": [
        "a0614da88b67ffa3dbcc0d40b817e682c7c4a0ee"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: register text area in generic way\n\nSome 64bit arch has special segment for mapping kernel text.  It should be\nentried to /proc/kcore in addtion to direct-linear-map, vmalloc area.\nThis patch unifies KCORE_TEXT entry scattered under x86 and ia64.\n\nI\u0027m not familiar with other archs (mips has its own even after this patch)\nbut range of [_stext ..._end) is a valid area of text and it\u0027s not in\ndirect-map area, defining CONFIG_ARCH_PROC_KCORE_TEXT is only a necessary\nthing to do.\n\nNote: I left mips as it is now.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: 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": "a0614da88b67ffa3dbcc0d40b817e682c7c4a0ee",
      "tree": "ae4ca3a8553592af41f7c2cc1a64912d934f6baf",
      "parents": [
        "c30bb2a25fcfde6157e6154a32c14686fb0bedbe"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: register vmalloc area in generic way\n\nFor /proc/kcore, vmalloc areas are registered per arch.  But, all of them\nregisters same range of [VMALLOC_START...VMALLOC_END) This patch unifies\nthem.  By this.  archs which have no kclist_add() hooks can see vmalloc\narea correctly.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: 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": "c30bb2a25fcfde6157e6154a32c14686fb0bedbe",
      "tree": "afa4811d46e5f9035a035b2c8c864bbb6c5af049",
      "parents": [
        "2ef43ec772551e975a6ea7cf22b59c84955aadf9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: add kclist types\n\nPresently, kclist_add() only eats start address and size as its arguments.\nConsidering to make kclist dynamically reconfigulable, it\u0027s necessary to\nknow which kclists are for System RAM and which are not.\n\nThis patch add kclist types as\n  KCORE_RAM\n  KCORE_VMALLOC\n  KCORE_TEXT\n  KCORE_OTHER\n\nThis \"type\" is used in a patch following this for detecting KCORE_RAM.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: 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": "2ef43ec772551e975a6ea7cf22b59c84955aadf9",
      "tree": "9560c13bcc6deb3ee00a60f93730b248029e69bb",
      "parents": [
        "d899bf7b55f503ba7d3d07ed27c3a37e270fa7db"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: use usual list for kclist\n\nThis patchset is for /proc/kcore.  With this,\n\n - many per-arch hooks are removed.\n\n - /proc/kcore will know really valid physical memory area.\n\n - /proc/kcore will be aware of memory hotplug.\n\n - /proc/kcore will be architecture independent i.e.\n   if an arch supports CONFIG_MMU, it can use /proc/kcore.\n   (if the arch uses usual memory layout.)\n\nThis patch:\n\n/proc/kcore uses its own list handling codes. It\u0027s better to use\ngeneric list codes.\n\nNo changes in logic. just clean up.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: 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": "d899bf7b55f503ba7d3d07ed27c3a37e270fa7db",
      "tree": "32a5ee7816b2f0cb3261dcca8102b9cafe9251bd",
      "parents": [
        "cba8aafe1e07dfc8bae5ba78be8e02883bd34d31"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Sep 22 16:45:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "procfs: provide stack information for threads\n\nA patch to give a better overview of the userland application stack usage,\nespecially for embedded linux.\n\nCurrently you are only able to dump the main process/thread stack usage\nwhich is showed in /proc/pid/status by the \"VmStk\" Value.  But you get no\ninformation about the consumed stack memory of the the threads.\n\nThere is an enhancement in the /proc/\u003cpid\u003e/{task/*,}/*maps and which marks\nthe vm mapping where the thread stack pointer reside with \"[thread stack\nxxxxxxxx]\".  xxxxxxxx is the maximum size of stack.  This is a value\ninformation, because libpthread doesn\u0027t set the start of the stack to the\ntop of the mapped area, depending of the pthread usage.\n\nA sample output of /proc/\u003cpid\u003e/task/\u003ctid\u003e/maps looks like:\n\n08048000-08049000 r-xp 00000000 03:00 8312       /opt/z\n08049000-0804a000 rw-p 00001000 03:00 8312       /opt/z\n0804a000-0806b000 rw-p 00000000 00:00 0          [heap]\na7d12000-a7d13000 ---p 00000000 00:00 0\na7d13000-a7f13000 rw-p 00000000 00:00 0          [thread stack: 001ff4b4]\na7f13000-a7f14000 ---p 00000000 00:00 0\na7f14000-a7f36000 rw-p 00000000 00:00 0\na7f36000-a8069000 r-xp 00000000 03:00 4222       /lib/libc.so.6\na8069000-a806b000 r--p 00133000 03:00 4222       /lib/libc.so.6\na806b000-a806c000 rw-p 00135000 03:00 4222       /lib/libc.so.6\na806c000-a806f000 rw-p 00000000 00:00 0\na806f000-a8083000 r-xp 00000000 03:00 14462      /lib/libpthread.so.0\na8083000-a8084000 r--p 00013000 03:00 14462      /lib/libpthread.so.0\na8084000-a8085000 rw-p 00014000 03:00 14462      /lib/libpthread.so.0\na8085000-a8088000 rw-p 00000000 00:00 0\na8088000-a80a4000 r-xp 00000000 03:00 8317       /lib/ld-linux.so.2\na80a4000-a80a5000 r--p 0001b000 03:00 8317       /lib/ld-linux.so.2\na80a5000-a80a6000 rw-p 0001c000 03:00 8317       /lib/ld-linux.so.2\nafaf5000-afb0a000 rw-p 00000000 00:00 0          [stack]\nffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]\n\nAlso there is a new entry \"stack usage\" in /proc/\u003cpid\u003e/{task/*,}/status\nwhich will you give the current stack usage in kb.\n\nA sample output of /proc/self/status looks like:\n\nName:\tcat\nState:\tR (running)\nTgid:\t507\nPid:\t507\n.\n.\n.\nCapBnd:\tfffffffffffffeff\nvoluntary_ctxt_switches:\t0\nnonvoluntary_ctxt_switches:\t0\nStack usage:\t12 kB\n\nI also fixed stack base address in /proc/\u003cpid\u003e/{task/*,}/stat to the base\naddress of the associated thread stack and not the one of the main\nprocess.  This makes more sense.\n\n[akpm@linux-foundation.org: fs/proc/array.c now needs walk_page_range()]\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: 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": "cba8aafe1e07dfc8bae5ba78be8e02883bd34d31",
      "tree": "473586963e635921613db5e4ae8ac339ae497a18",
      "parents": [
        "fb92a4b068be96799da3748c11cbd69760e44d7b"
      ],
      "author": {
        "name": "Vincent Li",
        "email": "macli@brc.ubc.ca",
        "time": "Tue Sep 22 16:45:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:40 2009 -0700"
      },
      "message": "fs/proc/base.c: fix proc_fault_inject_write() input sanity check\n\nRemove obfuscated zero-length input check and return -EINVAL instead of\n-EIO error to make the error message clear to user.  Add whitespace\nstripping.  No functionality changes.\n\nThe old code:\n\necho  1  \u003e /proc/pid/make-it-fail (ok)\necho 1foo \u003e /proc/pid/make-it-fail (-bash: echo: write error: Input/output error)\n\nThe new code:\n\necho  1  \u003e /proc/pid/make-it-fail (ok)\necho 1foo \u003e /proc/pid/make-it-fail (-bash: echo: write error: Invalid argument)\n\nThis patch is conservative in changes to not breaking existing\nscripts/applications.\n\nSigned-off-by: Vincent Li \u003cmacli@brc.ubc.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb92a4b068be96799da3748c11cbd69760e44d7b",
      "tree": "da10040b94e5a0b83de42008c369aa7c3242c333",
      "parents": [
        "acef82b873b6899d80e639317228f2104dae79a2"
      ],
      "author": {
        "name": "Vincent Li",
        "email": "macli@brc.ubc.ca",
        "time": "Tue Sep 22 16:45:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:40 2009 -0700"
      },
      "message": "fs/proc/task_mmu.c v1: fix clear_refs_write() input sanity check\n\nAndrew Morton pointed out similar string hacking and obfuscated check for\nzero-length input at the end of the function, David Rientjes suggested to\nuse strict_strtol to replace simple_strtol, this patch cover above\nsuggestions, add removing of leading and trailing whitespace from user\ninput.  It does not change function behavious.\n\nSigned-off-by: Vincent Li \u003cmacli@brc.ubc.ca\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Amerigo Wang \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": "acef82b873b6899d80e639317228f2104dae79a2",
      "tree": "840a9cdb4629f5be3f10d8f507e6785e447d8500",
      "parents": [
        "9b4d1cbef8f41aff2b3e4ca31f566c071fe601de"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Sep 22 16:45:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:40 2009 -0700"
      },
      "message": "kcore: fix /proc/kcore\u0027s stat.st_size\n\nIn 9063c61fd5cbd (\"x86, 64-bit: Clean up user address masking\") Linus\nfixed the wrong size of /proc/kcore problem.\n\nBut its size still looks insane, since it never equals the size of\nphysical memory.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Tao Ma \u003ctao.ma@oracle.com\u003e\nCc: \u003cmtk.manpages@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b4d1cbef8f41aff2b3e4ca31f566c071fe601de",
      "tree": "fc64d537b5142646d917ad928e3fb1df4caf4655",
      "parents": [
        "cff4edb591c153a779a27a3fd8e7bc1217f2f6b8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Sep 22 16:45:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:40 2009 -0700"
      },
      "message": "proc_flush_task: flush /proc/tid/task/pid when a sub-thread exits\n\nThe exiting sub-thread flushes /proc/pid only, but this doesn\u0027t buy too\nmuch: ps and friends mostly use /proc/tid/task/pid.\n\nRemove \"if (thread_group_leader())\" checks from proc_flush_task() path,\nthis means we always remove /proc/tid/task/pid dentry on exit, and this\nactually matches the comment above proc_flush_task().\n\nThe test-case:\n\n\tstatic void* tfunc(void *arg)\n\t{\n\t\tchar name[256];\n\n\t\tsprintf(name, \"/proc/%d/task/%ld/status\", getpid(), gettid());\n\t\tclose(open(name, O_RDONLY));\n\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t t;\n\n\t\tfor (;;) {\n\t\t\tif (!pthread_create(\u0026t, NULL, \u0026tfunc, NULL))\n\t\t\t\tpthread_join(t, NULL);\n\t\t}\n\t}\n\nslabtop shows that pid/proc_inode_cache/etc grow quickly and\n\"indefinitely\" until the task is killed or shrink_slab() is called, not\ngood.  And the main thread needs a lot of time to exit.\n\nThe same can happen if something like \"ps -efL\" runs continuously, while\nsome application spawns short-living threads.\n\nReported-by: \"James M. Leddy\" \u003cjleddy@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dominic Duval \u003cdduval@redhat.com\u003e\nCc: Frank Hirtz \u003cfhirtz@redhat.com\u003e\nCc: \"Fuller, Johnray\" \u003cJohnray.Fuller@gs.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Paul Batkowski \u003cpbatkowski@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cff4edb591c153a779a27a3fd8e7bc1217f2f6b8",
      "tree": "664f2a20cd0ae38ef06a2f8cc59e5ffca13e5d8b",
      "parents": [
        "27f6cb160b71b342b7a47d28a4b6c422ea74ccd1"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Tue Sep 22 16:45:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:40 2009 -0700"
      },
      "message": "proc: fix reported unit for RLIMIT_CPU\n\n/proc/$pid/limits should show RLIMIT_CPU as seconds, which is the unit\nused in kernel/posix-cpu-timers.c:\n\n        unsigned long psecs \u003d cputime_to_secs(ptime);\n        ...\n        if (psecs \u003e\u003d sig-\u003erlim[RLIMIT_CPU].rlim_max) {\n                ...\n                __group_send_sig_info(SIGKILL, SEND_SIG_PRIV, tsk);\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d863b89688e5811cd9e5bd0082cb38abe03adf3",
      "tree": "6041584a854fc70cd497843f134e2cf983741230",
      "parents": [
        "8c5cd6f3a1721085652da204d454af4f8b92eda2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:03:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "oom: fix oom_adjust_write() input sanity check\n\nAndrew Morton pointed out oom_adjust_write() has very strange EIO\nand new line handling. this patch fixes it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "495789a51a91cb8c015d8d77fecbac1caf20b186",
      "tree": "ac2a71ed40ed84f5673326aa6bf7f278b54d989a",
      "parents": [
        "28b83c5193e7ab951e402252278f2cc79dc4d298"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:03:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "oom: make oom_score to per-process value\n\noom-killer kills a process, not task.  Then oom_score should be calculated\nas per-process too.  it makes consistency more and makes speed up\nselect_bad_process().\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "28b83c5193e7ab951e402252278f2cc79dc4d298",
      "tree": "10080e8d3957c2a03f8419ab44c9ecb0ffcdaee0",
      "parents": [
        "f168e1b6390e2d79cf57e48e6ae6d9b0a9e2851a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:03:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "oom: move oom_adj value from task_struct to signal_struct\n\nCurrently, OOM logic callflow is here.\n\n    __out_of_memory()\n        select_bad_process()            for each task\n            badness()                   calculate badness of one task\n                oom_kill_process()      search child\n                    oom_kill_task()     kill target task and mm shared tasks with it\n\nexample, process-A have two thread, thread-A and thread-B and it have very\nfat memory and each thread have following oom_adj and oom_score.\n\n     thread-A: oom_adj \u003d OOM_DISABLE, oom_score \u003d 0\n     thread-B: oom_adj \u003d 0,           oom_score \u003d very-high\n\nThen, select_bad_process() select thread-B, but oom_kill_task() refuse\nkill the task because thread-A have OOM_DISABLE.  Thus __out_of_memory()\ncall select_bad_process() again.  but select_bad_process() select the same\ntask.  It mean kernel fall in livelock.\n\nThe fact is, select_bad_process() must select killable task.  otherwise\nOOM logic go into livelock.\n\nAnd root cause is, oom_adj shouldn\u0027t be per-thread value.  it should be\nper-process value because OOM-killer kill a process, not thread.  Thus\nThis patch moves oomkilladj (now more appropriately named oom_adj) from\nstruct task_struct to struct signal_struct.  it naturally prevent\nselect_bad_process() choose wrong task.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "73d7c33e81aed92ac185950a20407c1a2ea65a83",
      "tree": "e178b87c69034a6487db9bdfbf7ffc932056002f",
      "parents": [
        "d0107eb07320b5d37c0f8a9f015534caebb28a48"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Sep 21 17:02:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:34 2009 -0700"
      },
      "message": "kcore: /proc/kcore should use vread\n\n/proc/kcore has its own routine to access vmallc area.  It can be replaced\nwith vread().  And by this, /proc/kcore can do safe access to vmalloc\narea.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Mike Smith \u003cscgtrp@gmail.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": "398499d5f3613c47f2143b8c54a04efb5d7a6da9",
      "tree": "0b337ca1d0e20caa2295c159d5c0deadf362e4a0",
      "parents": [
        "7103ad323b1ae32bedc3267402117e2f8b45e48d"
      ],
      "author": {
        "name": "Moussa A. Ba",
        "email": "moussa.a.ba@gmail.com",
        "time": "Mon Sep 21 17:02:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:33 2009 -0700"
      },
      "message": "pagemap clear_refs: modify to specify anon or mapped vma clearing\n\nThe patch makes the clear_refs more versatile in adding the option to\nselect anonymous pages or file backed pages for clearing.  This addition\nhas a measurable impact on user space application performance as it\ndecreases the number of pagewalks in scenarios where one is only\ninterested in a specific type of page (anonymous or file mapped).\n\nThe patch adds anonymous and file backed filters to the clear_refs interface.\n\necho 1 \u003e /proc/PID/clear_refs resets the bits on all pages\necho 2 \u003e /proc/PID/clear_refs resets the bits on anonymous pages only\necho 3 \u003e /proc/PID/clear_refs resets the bits on file backed pages only\n\nAny other value is ignored\n\nSigned-off-by: Moussa A. Ba \u003cmoussa.a.ba@gmail.com\u003e\nSigned-off-by: Jared E. Hulbert \u003cjaredeh@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a840895147b12de5cdd633c600b38686840ee53",
      "tree": "a266a69a39decb4ec0364ac331f0ab19b6f09f06",
      "parents": [
        "21333b2b66b805a360641568588e5a0bb06d9d1f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:02:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:31 2009 -0700"
      },
      "message": "ksm: identify PageKsm pages\n\nKSM will need to identify its kernel merged pages unambiguously, and\n/proc/kpageflags will probably like to do so too.\n\nSince KSM will only be substituting anonymous pages, statistics are best\npreserved by making a PageKsm page a special PageAnon page: one with no\nanon_vma.\n\nBut KSM then needs its own page_add_ksm_rmap() - keep it in ksm.h near\nPageKsm; and do_wp_page() must COW them, unlike singly mapped PageAnons.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@redhat.com\u003e\nSigned-off-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Avi Kivity \u003cavi@redhat.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": "4b02108ac1b3354a22b0d83c684797692efdc395",
      "tree": "9f65d6e8e35ddce940e7b9da6305cf5a19e5904e",
      "parents": [
        "c6a7f5728a1db45d30df55a01adc130b4ab0327c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:01:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:27 2009 -0700"
      },
      "message": "mm: oom analysis: add shmem vmstat\n\nRecently we encountered OOM problems due to memory use of the GEM cache.\nGenerally a large amuont of Shmem/Tmpfs pages tend to create a memory\nshortage problem.\n\nWe often use the following calculation to determine the amount of shmem\npages:\n\nshmem \u003d NR_ACTIVE_ANON + NR_INACTIVE_ANON - NR_ANON_PAGES\n\nhowever the expression does not consider isolated and mlocked pages.\n\nThis patch adds explicit accounting for pages used by shmem and tmpfs.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6a7f5728a1db45d30df55a01adc130b4ab0327c",
      "tree": "36649bc6ebb959841a5097c699968722cfd99c4d",
      "parents": [
        "71de1ccbe1fb40203edd3beb473f8580d917d2ca"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:01:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:27 2009 -0700"
      },
      "message": "mm: oom analysis: Show kernel stack usage in /proc/meminfo and OOM log output\n\nThe amount of memory allocated to kernel stacks can become significant and\ncause OOM conditions.  However, we do not display the amount of memory\nconsumed by stacks.\n\nAdd code to display the amount of memory used for stacks in /proc/meminfo.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d01d4827858cdc2e1c437c87ab65ec0a00fd40f8",
      "tree": "433ed8bfdf144887129e9b0ea625c99780bedfd6",
      "parents": [
        "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Sep 21 11:06:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 11:37:27 2009 +0200"
      },
      "message": "sched: Always show Cpus_allowed field in /proc/\u003cpid\u003e/status\n\nThe Cpus_allowed fields in /proc/\u003cpid\u003e/status is currently only\nshown in case of CONFIG_CPUSETS. However their contents are also\nuseful for the !CONFIG_CPUSETS case.\n\nSo change the current behaviour and always show these fields.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090921090627.GD4649@osiris.boeblingen.de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6a46079cf57a7f7758e8b926980a4f852f89b34d",
      "tree": "efd72e830201370d6273bd436dda5a3c4cd6ed9b",
      "parents": [
        "4db96cf077aa938b11fe7ac79ecc9b29ec00fbab"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:15 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:15 2009 +0200"
      },
      "message": "HWPOISON: The high level memory error handler in the VM v7\n\nAdd the high level memory handler that poisons pages\nthat got corrupted by hardware (typically by a two bit flip in a DIMM\nor a cache) on the Linux level. The goal is to prevent everyone\nfrom accessing these pages in the future.\n\nThis done at the VM level by marking a page hwpoisoned\nand doing the appropriate action based on the type of page\nit is.\n\nThe code that does this is portable and lives in mm/memory-failure.c\n\nTo quote the overview comment:\n\nHigh level machine check handler. Handles pages reported by the\nhardware as being corrupted usually due to a 2bit ECC memory or cache\nfailure.\n\nThis focuses on pages detected as corrupted in the background.\nWhen the current CPU tries to consume corruption the currently\nrunning process can just be killed directly instead. This implies\nthat if the error cannot be handled for some reason it\u0027s safe to\njust ignore it because no corruption has been consumed yet. Instead\nwhen that happens another machine check will happen.\n\nHandles page cache pages in various states. The tricky part\nhere is that we can access any page asynchronous to other VM\nusers, because memory failures could happen anytime and anywhere,\npossibly violating some of their assumptions. This is why this code\nhas to be extremely careful. Generally it tries to use normal locking\nrules, as in get the standard locks, even if that means the\nerror handling takes potentially a long time.\n\nSome of the operations here are somewhat inefficient and have non\nlinear algorithmic complexity, because the data structures have not\nbeen optimized for this case. This is in particular the case\nfor the mapping from a vma to a process. Since this case is expected\nto be rare we hope we can get away with this.\n\nThere are in principle two strategies to kill processes on poison:\n- just unmap the data and wait for an actual reference before\nkilling\n- kill as soon as corruption is detected.\nBoth have advantages and disadvantages and should be used\nin different situations. Right now both are implemented and can\nbe switched with a new sysctl vm.memory_failure_early_kill\nThe default is early kill.\n\nThe patch does some rmap data structure walking on its own to collect\nprocesses to kill. This is unusual because normally all rmap data structure\nknowledge is in rmap.c only. I put it here for now to keep\neverything together and rmap knowledge has been seeping out anyways\n\nIncludes contributions from Johannes Weiner, Chris Mason, Fengguang Wu,\nNick Piggin (who did a lot of great work) and others.\n\nCc: npiggin@suse.de\nCc: riel@redhat.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\n"
    },
    {
      "commit": "0753ba01e126020bf0f8150934903b48935b697d",
      "tree": "fbfd7e2d0abbe724a8c5e0e17fb9af522ed2e097",
      "parents": [
        "89a4eb4b66e8f4d395e14a14d262dac4d6ca52f0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 18 14:11:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 16:31:13 2009 -0700"
      },
      "message": "mm: revert \"oom: move oom_adj value\"\n\nThe commit 2ff05b2b (oom: move oom_adj value) moveed the oom_adj value to\nthe mm_struct.  It was a very good first step for sanitize OOM.\n\nHowever Paul Menage reported the commit makes regression to his job\nscheduler.  Current OOM logic can kill OOM_DISABLED process.\n\nWhy? His program has the code of similar to the following.\n\n\t...\n\tset_oom_adj(OOM_DISABLE); /* The job scheduler never killed by oom */\n\t...\n\tif (vfork() \u003d\u003d 0) {\n\t\tset_oom_adj(0); /* Invoked child can be killed */\n\t\texecve(\"foo-bar-cmd\");\n\t}\n\t....\n\nvfork() parent and child are shared the same mm_struct.  then above\nset_oom_adj(0) doesn\u0027t only change oom_adj for vfork() child, it\u0027s also\nchange oom_adj for vfork() parent.  Then, vfork() parent (job scheduler)\nlost OOM immune and it was killed.\n\nActually, fork-setting-exec idiom is very frequently used in userland program.\nWe must not break this assumption.\n\nThen, this patch revert commit 2ff05b2b and related commit.\n\nReverted commit list\n---------------------\n- commit 2ff05b2b4e (oom: move oom_adj value from task_struct to mm_struct)\n- commit 4d8b9135c3 (oom: avoid unnecessary mm locking and scanning for OOM_DISABLE)\n- commit 8123681022 (oom: only oom kill exiting tasks with attached memory)\n- commit 933b787b57 (mm: copy over oom_adj value at fork time)\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "704b836cbf19e885f8366bccb2e4b0474346c02d",
      "tree": "d0513d3ef70e1b875cd7786f94150ba2428b6a88",
      "parents": [
        "00f89d218523b9bf6b522349c039d5ac80aa536d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 10 03:27:40 2009 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 10 20:49:26 2009 +1000"
      },
      "message": "mm_for_maps: take -\u003ecred_guard_mutex to fix the race with exec\n\nThe problem is minor, but without -\u003ecred_guard_mutex held we can race\nwith exec() and get the new -\u003emm but check old creds.\n\nNow we do not need to re-check task-\u003emm after ptrace_may_access(), it\ncan\u0027t be changed to the new mm under us.\n\nStrictly speaking, this also fixes another very minor problem. Unless\nsecurity check fails or the task exits mm_for_maps() should never\nreturn NULL, the caller should get either old or new -\u003emm.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "00f89d218523b9bf6b522349c039d5ac80aa536d",
      "tree": "cde7a8bde2798e4fb3ae28756f6cedd4db9191cc",
      "parents": [
        "13f0feafa6b8aead57a2a328e2fca6a5828bf286"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 10 03:27:38 2009 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 10 20:48:32 2009 +1000"
      },
      "message": "mm_for_maps: shift down_read(mmap_sem) to the caller\n\nmm_for_maps() takes -\u003emmap_sem after security checks, this looks\nstrange and obfuscates the locking rules. Move this lock to its\nsingle caller, m_start().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "13f0feafa6b8aead57a2a328e2fca6a5828bf286",
      "tree": "fb396118339319406daf7f6782782eaef31b3b53",
      "parents": [
        "f4b9a988685da6386d7f9a72df3098bcc3270526"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jun 23 21:25:32 2009 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 10 20:47:42 2009 +1000"
      },
      "message": "mm_for_maps: simplify, use ptrace_may_access()\n\nIt would be nice to kill __ptrace_may_access(). It requires task_lock(),\nbut this lock is only needed to read mm-\u003eflags in the middle.\n\nConvert mm_for_maps() to use ptrace_may_access(), this also simplifies\nthe code a little bit.\n\nAlso, we do not need to take -\u003emmap_sem in advance. In fact I think\nmm_for_maps() should not play with -\u003emmap_sem at all, the caller should\ntake this lock.\n\nWith or without this patch, without -\u003ecred_guard_mutex held we can race\nwith exec() and get the new -\u003emm but check old creds.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2f6d311080c36e30a5fa87adca550dc6b51dbfdc",
      "tree": "7ee0a11c33b538cb978848aeb7d46bb16df129b9",
      "parents": [
        "bcac2b1b7d67f4e7c001b755409fafb37cb0d888"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Wed Jun 17 16:26:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "proc: vmcore - use kzalloc in get_new_element()\n\nInstead of kmalloc+memset better use straight kzalloc\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@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": "bcac2b1b7d67f4e7c001b755409fafb37cb0d888",
      "tree": "5b69b8e5f1321a602a522b49f676bca54c0cb565",
      "parents": [
        "3fe4a975d662f11037cb710f8b4b158a3e38f9c0"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Wed Jun 17 16:25:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "procfs: remove sparse errors in proc_devtree.c\n\nCHECK   fs/proc/proc_devtree.c\nfs/proc/proc_devtree.c:197:14: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:203:34: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:210:14: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:223:26: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:226:14: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: 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": "d3d64df21d3d0de675a0d3ffa7c10514f3644b30",
      "tree": "7ea3c79d8adb2c0282327f9ce63208978857eb07",
      "parents": [
        "9d9b8fb0e5ebf4b0398e579f6061d4451fea3242"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Wed Jun 17 16:25:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "proc: export statistics for softirq to /proc\n\nExport statistics for softirq in /proc/softirqs and /proc/stat.\n\n1. /proc/softirqs\nImplement /proc/softirqs which shows the number of softirq\nfor each CPU like /proc/interrupts.\n\n2. /proc/stat\nAdd the \"softirq\" line to /proc/stat.\nThis line shows the number of softirq for all cpu.\nThe first column is the total of all softirqs and\neach subsequent column is the total for particular softirq.\n\n[kosaki.motohiro@jp.fujitsu.com: remove redundant for_each_possible_cpu() loop]\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nReviewed-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ff05b2b4eac2e63d345fc731ea151a060247f53",
      "tree": "1840bc2d3b381eca5d39869499339b0fcc6eabbf",
      "parents": [
        "c9e444103b5e7a5a3519f9913f59767f92e33baf"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jun 16 15:32:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:43 2009 -0700"
      },
      "message": "oom: move oom_adj value from task_struct to mm_struct\n\nThe per-task oom_adj value is a characteristic of its mm more than the\ntask itself since it\u0027s not possible to oom kill any thread that shares the\nmm.  If a task were to be killed while attached to an mm that could not be\nfreed because another thread were set to OOM_DISABLE, it would have\nneedlessly been terminated since there is no potential for future memory\nfreeing.\n\nThis patch moves oomkilladj (now more appropriately named oom_adj) from\nstruct task_struct to struct mm_struct.  This requires task_lock() on a\ntask to check its oom_adj value to protect against exec, but it\u0027s already\nnecessary to take the lock when dereferencing the mm to find the total VM\nsize for the badness heuristic.\n\nThis fixes a livelock if the oom killer chooses a task and another thread\nsharing the same memory has an oom_adj value of OOM_DISABLE.  This occurs\nbecause oom_kill_task() repeatedly returns 1 and refuses to kill the\nchosen task while select_bad_process() will repeatedly choose the same\ntask during the next retry.\n\nTaking task_lock() in select_bad_process() to check for OOM_DISABLE and in\noom_kill_task() to check for threads sharing the same memory will be\nremoved in the next patch in this series where it will no longer be\nnecessary.\n\nWriting to /proc/pid/oom_adj for a kthread will now return -EINVAL since\nthese threads are immune from oom killing already.  They simply report an\noom_adj value of OOM_DISABLE.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6837765963f1723e80ca97b1fae660f3a60d77df",
      "tree": "a9a6ed4b7e3bf188966da78b04bf39298f24375a",
      "parents": [
        "bce7394a3ef82b8477952fbab838e4a6e8cb47d2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jun 16 15:32:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:42 2009 -0700"
      },
      "message": "mm: remove CONFIG_UNEVICTABLE_LRU config option\n\nCurrently, nobody wants to turn UNEVICTABLE_LRU off.  Thus this\nconfigurability is unnecessary.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "177975495914efb372f7edee28ba9a0fdb754149",
      "tree": "d26a09871ee7b250a5c96e323cc4d5245e35eeff",
      "parents": [
        "ed7ce0f1022942301776f93159c981b09382ddea"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:38 2009 -0700"
      },
      "message": "proc: export more page flags in /proc/kpageflags\n\nExport all page flags faithfully in /proc/kpageflags.\n\n\t11. KPF_MMAP\t\t(pseudo flag) memory mapped page\n\t12. KPF_ANON\t\t(pseudo flag) memory mapped page (anonymous)\n\t13. KPF_SWAPCACHE\tpage is in swap cache\n\t14. KPF_SWAPBACKED\tpage is swap/RAM backed\n\t15. KPF_COMPOUND_HEAD\t(*)\n\t16. KPF_COMPOUND_TAIL\t(*)\n\t17. KPF_HUGE\t\thugeTLB pages\n\t18. KPF_UNEVICTABLE\tpage is in the unevictable LRU list\n\t19. KPF_HWPOISON(TBD)\thardware detected corruption\n\t20. KPF_NOPAGE\t\t(pseudo flag) no page frame at the address\n\t32-39.\t\t\tmore obscure flags for kernel developers\n\n\t(*) For compound pages, exporting _both_ head/tail info enables\n\t    users to tell where a compound page starts/ends, and its order.\n\nThe accompanying page-types tool will handle the details like decoupling\noverloaded flags and hiding obscure flags to normal users.\n\nThanks to KOSAKI and Andi for their valuable recommendations!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: 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": "ed7ce0f1022942301776f93159c981b09382ddea",
      "tree": "d81e98a13f6a10e6c258aa0f2bec990da40c5ac2",
      "parents": [
        "20a0307c0396c2edb651401d2f2db193dda2f3c9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "proc: kpagecount/kpageflags code cleanup\n\nMove increments of pfn/out to bottom of the loop.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: 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": "20a0307c0396c2edb651401d2f2db193dda2f3c9",
      "tree": "408fde4bf84223757f5dd150e401e8d9d9df5d36",
      "parents": [
        "a1dd268cf6306565a31a48deff8bf4f6b4b105f7"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "mm: introduce PageHuge() for testing huge/gigantic pages\n\nA series of patches to enhance the /proc/pagemap interface and to add a\nuserspace executable which can be used to present the pagemap data.\n\nExport 10 more flags to end users (and more for kernel developers):\n\n        11. KPF_MMAP            (pseudo flag) memory mapped page\n        12. KPF_ANON            (pseudo flag) memory mapped page (anonymous)\n        13. KPF_SWAPCACHE       page is in swap cache\n        14. KPF_SWAPBACKED      page is swap/RAM backed\n        15. KPF_COMPOUND_HEAD   (*)\n        16. KPF_COMPOUND_TAIL   (*)\n        17. KPF_HUGE\t\thugeTLB pages\n        18. KPF_UNEVICTABLE     page is in the unevictable LRU list\n        19. KPF_HWPOISON        hardware detected corruption\n        20. KPF_NOPAGE          (pseudo flag) no page frame at the address\n\n        (*) For compound pages, exporting _both_ head/tail info enables\n            users to tell where a compound page starts/ends, and its order.\n\na simple demo of the page-types tool\n\n# ./page-types -h\npage-types [options]\n            -r|--raw                  Raw mode, for kernel developers\n            -a|--addr    addr-spec    Walk a range of pages\n            -b|--bits    bits-spec    Walk pages with specified bits\n            -l|--list                 Show page details in ranges\n            -L|--list-each            Show page details one by one\n            -N|--no-summary           Don\u0027t show summay info\n            -h|--help                 Show this usage message\naddr-spec:\n            N                         one page at offset N (unit: pages)\n            N+M                       pages range from N to N+M-1\n            N,M                       pages range from N to M-1\n            N,                        pages range from N to end\n            ,M                        pages range from 0 to M\nbits-spec:\n            bit1,bit2                 (flags \u0026 (bit1|bit2)) !\u003d 0\n            bit1,bit2\u003dbit1            (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            bit1,~bit2                (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            \u003dbit1,bit2                flags \u003d\u003d (bit1|bit2)\nbit-names:\n          locked              error         referenced           uptodate\n           dirty                lru             active               slab\n       writeback            reclaim              buddy               mmap\n       anonymous          swapcache         swapbacked      compound_head\n   compound_tail               huge        unevictable           hwpoison\n          nopage           reserved(r)         mlocked(r)    mappedtodisk(r)\n         private(r)       private_2(r)   owner_private(r)            arch(r)\n        uncached(r)       readahead(o)       slob_free(o)     slub_frozen(o)\n      slub_debug(o)\n                                   (r) raw mode bits  (o) overloaded bits\n\n# ./page-types\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          487369     1903  _________________________________\n0x0000000000000014               5        0  __R_D____________________________  referenced,dirty\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000000000024              34        0  __R__l___________________________  referenced,lru\n0x0000000000000028            3838       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              48        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x000000000000002c            6478       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x0000000000000040            8344       32  ______A__________________________  active\n0x0000000000000060               1        0  _____lA__________________________  lru,active\n0x0000000000000068             348        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x000000000000006c             988        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             503        1  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              30        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types -r\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          468002     1828  _________________________________\n0x0000000100000000           19102       74  _____________________r___________  reserved\n0x0000000000008000              41        0  _______________H_________________  compound_head\n0x0000000000010000             188        0  ________________T________________  compound_tail\n0x0000000000008014               1        0  __R_D__________H_________________  referenced,dirty,compound_head\n0x0000000000010014               4        0  __R_D___________T________________  referenced,dirty,compound_tail\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000800000024              34        0  __R__l__________________P________  referenced,lru,private\n0x0000000000000028            3794       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              46        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x0000000400000028              44        0  ___U_l_________________d_________  uptodate,lru,mappedtodisk\n0x0001000400000028               2        0  ___U_l_________________d_____I___  uptodate,lru,mappedtodisk,readahead\n0x000000000000002c            6434       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x000000040000002c              14        0  __RU_l_________________d_________  referenced,uptodate,lru,mappedtodisk\n0x000000080000002c              30        0  __RU_l__________________P________  referenced,uptodate,lru,private\n0x0000000800000040            8124       31  ______A_________________P________  active,private\n0x0000000000000040             219        0  ______A__________________________  active\n0x0000000800000060               1        0  _____lA_________________P________  lru,active,private\n0x0000000000000068             322        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x0000000400000068              13        0  ___U_lA________________d_________  uptodate,lru,active,mappedtodisk\n0x0000000800000068              12        0  ___U_lA_________________P________  uptodate,lru,active,private\n0x000000000000006c             977        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x000000040000006c               5        0  __RU_lA________________d_________  referenced,uptodate,lru,active,mappedtodisk\n0x000000080000006c               3        0  __RU_lA_________________P________  referenced,uptodate,lru,active,private\n0x0000000c0000006c               3        0  __RU_lA________________dP________  referenced,uptodate,lru,active,mappedtodisk,private\n0x0000000c00000068               1        0  ___U_lA________________dP________  uptodate,lru,active,mappedtodisk,private\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             538        2  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005008               2        0  ___U________a_b__________________  uptodate,anonymous,swapbacked\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x000000000000580c               1        0  __RU_______Ma_b__________________  referenced,uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              29        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types --raw --list --no-summary --bits reserved\noffset  count   flags\n0       15      _____________________r___________\n31      4       _____________________r___________\n159     97      _____________________r___________\n4096    2067    _____________________r___________\n6752    2390    _____________________r___________\n9355    3       _____________________r___________\n9728    14526   _____________________r___________\n\nThis patch:\n\nIntroduce PageHuge(), which identifies huge/gigantic pages by their\ndedicated compound destructor functions.\n\nAlso move prep_compound_gigantic_page() to hugetlb.c and make\n__free_pages_ok() non-static.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: 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": "3174c21b74b56c6a53fddd41a30fd6f757a32bd0",
      "tree": "2fc978162ecc591e3005afd820663c7c869999de",
      "parents": [
        "1c755af4df75996b0dd4b7e6cacaf9d57a6ef2ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 13:19:18 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "Move junk from proc_fs.h to fs/proc/internal.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73fbad283cfbbcf02939bdbda31fc4a30e729cca",
      "tree": "7c89fe13e1b4a2c7f2d60f4ea6eaf69c14bccab7",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "35f2c2f6f6ae13ef23c4f68e6d3073753077ca43"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "99e97b860e14c64760855198e91d1166697131a7",
      "tree": "fadc8368c3f784bff92fba82d983e7861559cf9d",
      "parents": [
        "82782ca77d1bfb32b0334cce40a25b91bd8ec016",
        "f04d82b7e0c63d0251f9952a537a4bc4d73aa1a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 15:32:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 15:32:59 2009 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: fix typo in sched-rt-group.txt file\n  ftrace: fix typo about map of kernel priority in ftrace.txt file.\n  sched: properly define the sched_group::cpumask and sched_domain::span fields\n  sched, timers: cleanup avenrun users\n  sched, timers: move calc_load() to scheduler\n  sched: Don\u0027t export sched_mc_power_savings on multi-socket single core system\n  sched: emit thread info flags with stack trace\n  sched: rt: document the risk of small values in the bandwidth settings\n  sched: Replace first_cpu() with cpumask_first() in ILB nomination code\n  sched: remove extra call overhead for schedule()\n  sched: use group_first_cpu() instead of cpumask_first(sched_group_cpus())\n  wait: don\u0027t use __wake_up_common()\n  sched: Nominate a power-efficient ilb in select_nohz_balancer()\n  sched: Nominate idle load balancer from a semi-idle package.\n  sched: remove redundant hierarchy walk in check_preempt_wakeup\n"
    },
    {
      "commit": "0b4ec6e4e01d98e55ae325a41304cccd87fa4c0f",
      "tree": "1e075fdf4aaf0c5c003564b3f3414bb4a92ef2ed",
      "parents": [
        "04288f42033607099cebf5ca15ce8dcec3a9688b",
        "3af968e066d593bc4dacc021715f3e95ddf0996f"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Jun 09 09:27:53 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Jun 09 09:27:53 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "bd6daba909d8484bd2ccf6017db4028d7a420927",
      "tree": "e5c5fa2ddb9b3658a24c15ca4050c71f68dc634f",
      "parents": [
        "b2e1feaf0af6b8a826b86748a19ddc2013ab7dbd"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 28 14:34:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 29 08:40:02 2009 -0700"
      },
      "message": "procfs: make errno values consistent when open pident vs exit(2) race occurs\n\nproc_pident_instantiate() has following call flow.\n\nproc_pident_lookup()\n  proc_pident_instantiate()\n    proc_pid_make_inode()\n\nAnd, proc_pident_lookup() has following error handling.\n\n\tconst struct pid_entry *p, *last;\n\terror \u003d ERR_PTR(-ENOENT);\n\tif (!task)\n\t\tgoto out_no_task;\n\nThen, proc_pident_instantiate should return ENOENT too when racing against\nexit(2) occur.\n\nEINAL has two bad reason.\n  - it implies caller is wrong. bad the race isn\u0027t caller\u0027s mistake.\n  - man 2 open don\u0027t explain EINVAL. user often don\u0027t handle it.\n\nNote: Other proc_pid_make_inode() caller already use ENOENT properly.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c9e703c618106f5383226fbb1f526cb11034f8a",
      "tree": "87d7548001ea82f655fede0640466fc16aabcdf7",
      "parents": [
        "6470c077cae12227318f40f3e6d756caadcce4b0",
        "5805977e63a36ad56594a623f3bd2bebcb7db233"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 22 18:40:59 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 22 18:40:59 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/exec.c\n\nRemoved IMA changes (the IMA checks are now performed via may_open()).\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2d02494f5a90f2e4b3c4c6acc85ec94674cdc431",
      "tree": "8032438de5b55282976583b111d02d9379ff3966",
      "parents": [
        "dce48a84adf1806676319f6f480e30a6daa012f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 02 20:08:52 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 15 15:32:45 2009 +0200"
      },
      "message": "sched, timers: cleanup avenrun users\n\navenrun is an rough estimate so we don\u0027t have to worry about\nconsistency of the three avenrun values. Remove the xtime lock\ndependency and provide a function to scale the values. Cleanup the\nusers.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "107db7c7dd137aeb7361b8c2606ac936c0be58ff",
      "tree": "7e8e024bbed52ac111a0b2ac878da1a95752c28b",
      "parents": [
        "5e751e992f3fb08ba35e1ca8095ec8fbf9eda523"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri May 08 13:55:27 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon May 11 08:15:39 2009 +1000"
      },
      "message": "CRED: Guard the setprocattr security hook against ptrace\n\nGuard the setprocattr security hook against ptrace by taking the target task\u0027s\ncred_guard_mutex around it.  The problem is that setprocattr() may otherwise\nnote the lack of a debugger, and then perform an action on that basis whilst\nletting a debugger attach between the two points.  Holding cred_guard_mutex\nacross the test and the action prevents ptrace_attach() from doing that.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6f5bbff9a1b7d6864a495763448a363bbfa96324",
      "tree": "0067dca46f40def1c55541c34c262e06aeb8c4c8",
      "parents": [
        "74dbbdd7fdc11763f4698d2f3e684cf4446951e6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 06 01:34:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:40 2009 -0400"
      },
      "message": "Convert obvious places to deactivate_locked_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f83ce3e6b02d5e48b3a43b001390e2b58820389d",
      "tree": "71c57abf4f9d259f5bfa22deaf724db85738f862",
      "parents": [
        "7fdf523067666b0eaff330f362401ee50ce187c4"
      ],
      "author": {
        "name": "Jake Edge",
        "email": "jake@lwn.net",
        "time": "Mon May 04 12:51:14 2009 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 04 15:14:23 2009 -0700"
      },
      "message": "proc: avoid information leaks to non-privileged processes\n\nBy using the same test as is used for /proc/pid/maps and /proc/pid/smaps,\nonly allow processes that can ptrace() a given process to see information\nthat might be used to bypass address space layout randomization (ASLR).\nThese include eip, esp, wchan, and start_stack in /proc/pid/stat as well\nas the non-symbolic output from /proc/pid/wchan.\n\nASLR can be bypassed by sampling eip as shown by the proof-of-concept\ncode at http://code.google.com/p/fuzzyaslr/ As part of a presentation\n(http://www.cr0.org/paper/to-jt-linux-alsr-leak.pdf) esp and wchan were\nalso noted as possibly usable information leaks as well.  The\nstart_stack address also leaks potentially useful information.\n\nCc: Stable Team \u003cstable@kernel.org\u003e\nSigned-off-by: Jake Edge \u003cjake@lwn.net\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00a62ce91e554198ef28234c91c36f850f5a3bc9",
      "tree": "367ef134219deef91903c3fa0eb108c13658f2c7",
      "parents": [
        "0763ed2355198cdef2f6a2098e9d52eb1fe4365d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 30 15:08:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 15:36:10 2009 -0700"
      },
      "message": "mm: fix Committed_AS underflow on large NR_CPUS environment\n\nThe Committed_AS field can underflow in certain situations:\n\n\u003e         # while true; do cat /proc/meminfo  | grep _AS; sleep 1; done | uniq -c\n\u003e               1 Committed_AS: 18446744073709323392 kB\n\u003e              11 Committed_AS: 18446744073709455488 kB\n\u003e               6 Committed_AS:    35136 kB\n\u003e               5 Committed_AS: 18446744073709454400 kB\n\u003e               7 Committed_AS:    35904 kB\n\u003e               3 Committed_AS: 18446744073709453248 kB\n\u003e               2 Committed_AS:    34752 kB\n\u003e               9 Committed_AS: 18446744073709453248 kB\n\u003e               8 Committed_AS:    34752 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               7 Committed_AS: 18446744073709454080 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               5 Committed_AS: 18446744073709454080 kB\n\u003e               6 Committed_AS: 18446744073709320960 kB\n\nBecause NR_CPUS can be greater than 1000 and meminfo_proc_show() does\nnot check for underflow.\n\nBut NR_CPUS proportional isn\u0027t good calculation.  In general,\npossibility of lock contention is proportional to the number of online\ncpus, not theorical maximum cpus (NR_CPUS).\n\nThe current kernel has generic percpu-counter stuff.  using it is right\nway.  it makes code simplify and percpu_counter_read_positive() don\u0027t\nmake underflow issue.\n\nReported-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[All kernel versions]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0816178638c15ce5472d39d771a96860dff4141a",
      "tree": "9db0c3d2192286e818e6f6827fda3602b7d5a466",
      "parents": [
        "b827e496c893de0c0f142abfaeb8730a2fd6b37f"
      ],
      "author": {
        "name": "Vitaly Mayatskikh",
        "email": "v.mayatskih@gmail.com",
        "time": "Thu Apr 30 15:08:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 15:36:09 2009 -0700"
      },
      "message": "pagemap: require aligned-length, non-null reads of /proc/pid/pagemap\n\nThe intention of commit aae8679b0ebcaa92f99c1c3cb0cd651594a43915\n(\"pagemap: fix bug in add_to_pagemap, require aligned-length reads of\n/proc/pid/pagemap\") was to force reads of /proc/pid/pagemap to be a\nmultiple of 8 bytes, but now it allows to read 0 bytes, which actually\nputs some data to user\u0027s buffer.  According to POSIX, if count is zero,\nread() should return zero and has no other results.\n\nSigned-off-by: Vitaly Mayatskikh \u003cv.mayatskih@gmail.com\u003e\nCc: Thomas Tuttle \u003cttuttle@google.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.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": "e1c805309d19c69d4ebeac38724076fa86feacdf",
      "tree": "73886783aac7c489a29f3e5eec56cbc2371a12dd",
      "parents": [
        "b1ad171efa089ae26aba750d747d8149a4f860d5"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Apr 23 13:58:08 2009 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Apr 23 13:58:17 2009 +0200"
      },
      "message": "[S390] /proc/stat idle field for idle cpus\n\nThe cpu idle field in the output of /proc/stat is too small for cpus\nthat have been idle for more than a tick. Add the architecture hook\narch_idle_time that allows to add the not accounted idle time of a\nsleeping cpu without waking the cpu.\n\nThe s390 implementation of arch_idle_time uses the already existing\ns390_idle_data per_cpu variable to find the sleep time of a neighboring\nidle cpu.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "31b07093c44a7a442394d44423e21d783f5523b8",
      "tree": "8569f8450dd2e7560a36a751faeee8d402c031ca",
      "parents": [
        "1af3557abdef34ee036a6de4cb79e24468544b8d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 09 13:57:59 2009 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Apr 16 16:17:10 2009 -0700"
      },
      "message": "proc: mounts_poll() make consistent to mdstat_poll\n\nIn recently sysfs_poll discussion, Neil Brown pointed out /proc/mounts\nalso should be fixed.\n\nSUSv3 says \"Regular files shall always poll TRUE for reading and\nwriting\".  see\nhttp://www.opengroup.org/onlinepubs/009695399/functions/poll.html\n\nThen, mounts_poll()\u0027s default should be \"POLLIN | POLLRDNORM\".  it mean\nalways readable.\n\nIn addition, event trigger should use \"POLLERR | POLLPRI\" instead\nPOLLERR.  it makes consistent to mdstat_poll() and sysfs_poll(). and,\nselect(2) can handle POLLPRI easily.\n\n\nReported-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4c967291fc875a53de7126d256ad5e48f42a6521",
      "tree": "390d62b0f5f448b055b5102da79f39bf7627e8a4",
      "parents": [
        "2b3fffefea993a94c386b2d96de2d09469c343d1"
      ],
      "author": {
        "name": "Nobuhiro Iwamatsu",
        "email": "iwamatsu.nobuhiro@renesas.com",
        "time": "Tue Apr 07 21:21:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 08 10:21:44 2009 -0700"
      },
      "message": "nommu: fix typo vma-\u003epg_off to vma-\u003evm_pgoff\n\n6260a4b0521a41189b2c2a8119096c1e21dbdf2c (\"/proc/pid/maps: don\u0027t show\npgoff of pure ANON VMAs\" had a typo.\n\nfs/proc/task_nommu.c:138: error: \u0027struct vm_area_struct\u0027 has no member named \u0027pg_off\u0027\ndistcc[21484] ERROR: compile fs/proc/task_nommu.c on sprygo/32 failed\n\nSigned-off-by: Nobuhiro Iwamatsu \u003ciwamatsu.nobuhiro@renesas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6260a4b0521a41189b2c2a8119096c1e21dbdf2c",
      "tree": "90e3c16cfde493503292b128fc3e275d58ccb037",
      "parents": [
        "fafd688e4c0c34da0f3de909881117d374e4c7af"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Apr 06 19:00:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:03 2009 -0700"
      },
      "message": "/proc/pid/maps: don\u0027t show pgoff of pure ANON VMAs\n\nRecently, it\u0027s argued that what proc/pid/maps shows is ugly when a 32bit\nbinary runs on 64bit host.\n\n/proc/pid/maps outputs vma\u0027s pgoff member but vma-\u003epgoff is of no use\ninformation is the vma is for ANON.  With this patch, /proc/pid/maps shows\njust 0 if no file backing store.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[kamezawa.hiroyu@jp.fujitsu.com: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nReported-by: Ying Han \u003cyinghan@google.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "8fe74cf053de7ad2124a894996f84fa890a81093",
      "tree": "77dcd8fbf33ce53a3821942233962fb28c6f2848",
      "parents": [
        "c2eb2fa6d2b6fe122d3479ec5b28d978418b2698",
        "ced117c73edc917e96dea7cca98c91383f0792f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Remove two unneeded exports and make two symbols static in fs/mpage.c\n  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n  Trim includes of fdtable.h\n  Don\u0027t crap into descriptor table in binfmt_som\n  Trim includes in binfmt_elf\n  Don\u0027t mess with descriptor table in load_elf_binary()\n  Get rid of indirect include of fs_struct.h\n  New helper - current_umask()\n  check_unsafe_exec() doesn\u0027t care about signal handlers sharing\n  New locking/refcounting for fs_struct\n  Take fs_struct handling to new file (fs/fs_struct.c)\n  Get rid of bumping fs_struct refcount in pivot_root(2)\n  Kill unsharing fs_struct in __set_personality()\n"
    },
    {
      "commit": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f043a81ebe84be3576667f04fdda481609e3816",
      "tree": "c54a9ac4a1dc79bd5f2f7ec3ead5aa48802ff7a3",
      "parents": [
        "140716934f67a9b28c3f7032c07c20c746d97a31"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:19:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:10 2009 -0700"
      },
      "message": "proc tty: remove struct tty_operations::read_proc\n\nstruct tty_operations::proc_fops took it\u0027s place and there is one less\ncreate_proc_read_entry() user now!\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae149b6bec64a09373ba20fce75f8aa6b14b78fd",
      "tree": "5e2f1fdfc223b76ab798c87fd25bcff8d5f92eeb",
      "parents": [
        "15f7176eb1cccec0a332541285ee752b935c1c85"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:19:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:08 2009 -0700"
      },
      "message": "proc tty: add struct tty_operations::proc_fops\n\nUsed for gradual switch of TTY drivers from using -\u003eread_proc which helps\nwith gradual switch from -\u003eread_proc for the whole tree.\n\nAs side effect, fix possible race condition when -\u003edata initialized after\nPDE is hooked into proc tree.\n\n-\u003eproc_fops takes precedence over -\u003eread_proc.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ad4e53bd5406ee214ddc5a41f03f779b8b2d526",
      "tree": "b3dab5140284b3edf02bf2b13f74bfddb25aa62a",
      "parents": [
        "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:50:06 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:27 2009 -0400"
      },
      "message": "Get rid of indirect include of fs_struct.h\n\nDon\u0027t pull it in sched.h; very few files actually need it and those\ncan include directly.  sched.h itself only needs forward declaration\nof struct fs_struct;\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "498052bba55ecaff58db6a1436b0e25bfd75a7ff",
      "tree": "bd3644ac60737e3733995a203acebd70cfd1b21b",
      "parents": [
        "3e93cd671813e204c258f1e6c797959920cf7772"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 30 07:20:30 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "New locking/refcounting for fs_struct\n\n* all changes of current-\u003efs are done under task_lock and write_lock of\n  old fs-\u003elock\n* refcount is not atomic anymore (same protection)\n* its decrements are done when removing reference from current; at the\n  same time we decide whether to free it.\n* put_fs_struct() is gone\n* new field - -\u003ein_exec.  Set by check_unsafe_exec() if we are trying to do\n  execve() and only subthreads share fs_struct.  Cleared when finishing exec\n  (success and failure alike).  Makes CLONE_FS fail with -EAGAIN if set.\n* check_unsafe_exec() may fail with -EAGAIN if another execve() from subthread\n  is in progress.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a9caa3de249a6c43bc9c6aec87881f09276677e3",
      "tree": "900831b12af9b3cd4743d4ae5ed5a457f8125edb",
      "parents": [
        "99b76233803beab302123d243eea9e41149804f3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 20 17:07:22 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:58 2009 +0400"
      },
      "message": "Revert \"proc: revert /proc/uptime to -\u003eread_proc hook\"\n\nThis reverts commit 6c87df37dcb9c6c33923707fa5191e0a65874d60.\n\nproc files implemented through seq_file do pread(2) now.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "99b76233803beab302123d243eea9e41149804f3",
      "tree": "398178210fe66845ccd6fa4258ba762a87e023ad",
      "parents": [
        "3dec7f59c370c7b58184d63293c3dc984d475840"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Mar 25 22:48:06 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:44 2009 +0400"
      },
      "message": "proc 2/2: remove struct proc_dir_entry::owner\n\nSetting -\u003eowner as done currently (pde-\u003eowner \u003d THIS_MODULE) is racy\nas correctly noted at bug #12454. Someone can lookup entry with NULL\n-\u003eowner, thus not pinning enything, and release it later resulting\nin module refcount underflow.\n\nWe can keep -\u003eowner and supply it at registration time like -\u003eproc_fops\nand -\u003edata.\n\nBut this leaves -\u003eowner as easy-manipulative field (just one C assignment)\nand somebody will forget to unpin previous/pin current module when\nswitching -\u003eowner. -\u003eproc_fops is declared as \"const\" which should give\nsome thoughts.\n\n-\u003eread_proc/-\u003ewrite_proc were just fixed to not require -\u003eowner for\nprotection.\n\nrmmod\u0027ed directories will be empty and return \".\" and \"..\" -- no harm.\nAnd directories with tricky enough readdir and lookup shouldn\u0027t be modular.\nWe definitely don\u0027t want such modular code.\n\nRemoving -\u003eowner will also make PDE smaller.\n\nSo, let\u0027s nuke it.\n\nKudos to Jeff Layton for reminding about this, let\u0027s say, oversight.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12454\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "3dec7f59c370c7b58184d63293c3dc984d475840",
      "tree": "54df7ab53c1f625179e2b69c78b782b5a867363e",
      "parents": [
        "09729a9919fdaf137995b0f19cbd401e22229cac"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 20 17:04:33 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:27 2009 +0400"
      },
      "message": "proc 1/2: do PDE usecounting even for -\u003eread_proc, -\u003ewrite_proc\n\nstruct proc_dir_entry::owner is going to be removed. Now it\u0027s only necessary\nto protect PDEs which are using -\u003eread_proc, -\u003ewrite_proc hooks.\n\nHowever, -\u003eowner assignments are racy and make it very easy for someone to switch\n-\u003eowner on live PDE (as some subsystems do) without fixing refcounts and so on.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12454\n\nSo, -\u003eowner is on death row.\n\nProxy file operations exist already (proc_file_operations), just bump usecount\nwhen necessary.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "09729a9919fdaf137995b0f19cbd401e22229cac",
      "tree": "54b187f7fade4f4669f37935f019b6f8c23b5df4",
      "parents": [
        "1681bc30f272dd2fe347b90468791b05c7044f03"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Fri Feb 20 16:56:45 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:22 2009 +0400"
      },
      "message": "proc: fix sparse warnings in pagemap_read()\n\nfs/proc/task_mmu.c:696:12: warning: cast removes address space of expression\nfs/proc/task_mmu.c:696:9: warning: incorrect type in assignment (different address spaces)\nfs/proc/task_mmu.c:696:9:    expected unsigned long long [noderef] [usertype] \u003casn:1\u003e*out\nfs/proc/task_mmu.c:696:9:    got unsigned long long [usertype] *\u003cnoident\u003e\nfs/proc/task_mmu.c:697:12: warning: cast removes address space of expression\nfs/proc/task_mmu.c:697:9: warning: incorrect type in assignment (different address spaces)\nfs/proc/task_mmu.c:697:9:    expected unsigned long long [noderef] [usertype] \u003casn:1\u003e*end\nfs/proc/task_mmu.c:697:9:    got unsigned long long [usertype] *\u003cnoident\u003e\nfs/proc/task_mmu.c:723:12: warning: cast removes address space of expression\nfs/proc/task_mmu.c:723:26: error: subtraction of different types can\u0027t work (different address spaces)\nfs/proc/task_mmu.c:725:24: error: subtraction of different types can\u0027t work (different address spaces)\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "1681bc30f272dd2fe347b90468791b05c7044f03",
      "tree": "72a37dcde9c2536594d3eab4deca8997d34d39d5",
      "parents": [
        "e1c502482853f84606928f5a2f2eb6da1993cda1"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 13 13:53:48 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:13:12 2009 +0400"
      },
      "message": "proc: move fs/proc/inode-alloc.txt comment into a source file\n\nso that people will realize that it exists and can update it as needed.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "973c32bebf0cadf3a17c50255ff17477fcffaec8",
      "tree": "c07f910dbb72566059343700265a66bb285fd3ec",
      "parents": [
        "ee6921f7d82c765011b1df146cbc1103720ab33b"
      ],
      "author": {
        "name": "Uwe Kleine-Koenig",
        "email": "Uwe.Kleine-Koenig@digi.com",
        "time": "Mon Jan 12 23:35:47 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:21:57 2009 +0200"
      },
      "message": "trivial: fix typo \"kernal\" -\u003e \"kernel\"\n\nSigned-off-by: Uwe Kleine-Koenig \u003cUwe.Kleine-Koenig@digi.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7c2c7d993044cddc5010f6f429b100c63bc7dffb",
      "tree": "b92a6daf7c11f9a53de6fed07512fe02cd5b4a68",
      "parents": [
        "e426b64c412aaa3e9eb3e4b261dc5be0d5a83e78"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Mar 28 23:21:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 17:30:00 2009 -0700"
      },
      "message": "fix setuid sometimes wouldn\u0027t\n\ncheck_unsafe_exec() also notes whether the fs_struct is being\nshared by more threads than will get killed by the exec, and if so\nsets LSM_UNSAFE_SHARE to make bprm_set_creds() careful about euid.\nBut /proc/\u003cpid\u003e/cwd and /proc/\u003cpid\u003e/root lookups make transient\nuse of get_fs_struct(), which also raises that sharing count.\n\nThis might occasionally cause a setuid program not to change euid,\nin the same way as happened with files-\u003ecount (check_unsafe_exec\nalso looks at sighand-\u003ecount, but /proc doesn\u0027t raise that one).\n\nWe\u0027d prefer exec not to unshare fs_struct: so fix this in procfs,\nreplacing get_fs_struct() by get_fs_path(), which does path_get\nwhile still holding task_lock, instead of raising fs-\u003ecount.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: stable@kernel.org\n___\n\n fs/proc/base.c |   50 +++++++++++++++--------------------------------\n 1 file changed, 16 insertions(+), 34 deletions(-)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3ec947c85ec339884b30ef6a08133e9311fdae1",
      "tree": "c3cc5859a6b6d8986547405b6c5bd11bc8916114",
      "parents": [
        "585d3bc06f4ca57f975a5a1f698f65a45ea66225"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Mar 04 12:06:34 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "vfs: simple_set_mnt() should return void\n\nsimple_set_mnt() is defined as returning \u0027int\u0027 but always returns 0.\nCallers assume simple_set_mnt() never fails and don\u0027t properly cleanup if\nit were to _ever_ fail.  For instance, get_sb_single() and get_sb_nodev()\nshould:\n\n        up_write(sb-\u003es_unmount);\n        deactivate_super(sb);\n\nif simple_set_mnt() fails.\n\nSince simple_set_mnt() never fails, would be cleaner if it did not\nreturn anything.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d72f71eb0edd629c95715aa7305b0259d3581e34",
      "tree": "f7f96de5c94ffae797b9b8e41939c8bdeb0ecb81",
      "parents": [
        "5a3fd05a9bb2f104020fbfc4551ad4aaed4660a4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 20 05:58:47 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:01 2009 -0400"
      },
      "message": "constify dentry_operations: procfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ee568b25ee9e160b32d1aef73d8b2ee9c05d34db",
      "tree": "a29f070d82e6f787570213161c4c46c16ca6ef8a",
      "parents": [
        "30390880debce4a68fd23e87a787f27609e4bf4a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 17 10:02:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 17 10:02:35 2009 -0700"
      },
      "message": "Avoid 64-bit \"switch()\" statements on 32-bit architectures\n\nCommit ee6f779b9e0851e2f7da292a9f58e0095edf615a (\"filp-\u003ef_pos not\ncorrectly updated in proc_task_readdir\") changed the proc code to use\nfilp-\u003ef_pos directly, rather than through a temporary variable.  In the\nprocess, that caused the operations to be done on the full 64 bits, even\nthough the offset is never that big.\n\nThat\u0027s all fine and dandy per se, but for some unfathomable reason gcc\ngenerates absolutely horrid code when using 64-bit values in switch()\nstatements.  To the point of actually calling out to gcc helper\nfunctions like __cmpdi2 rather than just doing the trivial comparisons\ndirectly the way gcc does for normal compares.  At which point we get\nlink failures, because we really don\u0027t want to support that kind of\ncrazy code.\n\nFix this by just casting the f_pos value to \"unsigned long\", which\nis plenty big enough for /proc, and avoids the gcc code generation issue.\n\nReported-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Zhang Le \u003cr0bertz@gentoo.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee6f779b9e0851e2f7da292a9f58e0095edf615a",
      "tree": "71aa57da0fea292c50b12d9ef73373fcd940162e",
      "parents": [
        "5bee17f18b595937e6beafeee5197868a3f74a06"
      ],
      "author": {
        "name": "Zhang Le",
        "email": "r0bertz@gentoo.org",
        "time": "Mon Mar 16 14:44:31 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 16 07:51:33 2009 -0700"
      },
      "message": "filp-\u003ef_pos not correctly updated in proc_task_readdir\n\nfilp-\u003ef_pos only get updated at the end of the function. Thus d_off of those\ndirents who are in the middle will be 0, and this will cause a problem in\nglibc\u0027s readdir implementation, specifically endless loop. Because when overflow\noccurs, f_pos will be set to next dirent to read, however it will be 0, unless\nthe next one is the last one. So it will start over again and again.\n\nThere is a sample program in man 2 gendents. This is the output of the program\nrunning on a multithread program\u0027s task dir before this patch is applied:\n\n  $ ./a.out /proc/3807/task\n  --------------- nread\u003d128 ---------------\n  i-node#  file type  d_reclen  d_off   d_name\n    506442  directory    16          1  .\n    506441  directory    16          0  ..\n    506443  directory    16          0  3807\n    506444  directory    16          0  3809\n    506445  directory    16          0  3812\n    506446  directory    16          0  3861\n    506447  directory    16          0  3862\n    506448  directory    16          8  3863\n\nThis is the output after this patch is applied\n\n  $ ./a.out /proc/3807/task\n  --------------- nread\u003d128 ---------------\n  i-node#  file type  d_reclen  d_off   d_name\n    506442  directory    16          1  .\n    506441  directory    16          2  ..\n    506443  directory    16          3  3807\n    506444  directory    16          4  3809\n    506445  directory    16          5  3812\n    506446  directory    16          6  3861\n    506447  directory    16          7  3862\n    506448  directory    16          8  3863\n\nSigned-off-by: Zhang Le \u003cr0bertz@gentoo.org\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad3bdefe877afb47480418fdb05ecd42842de65e",
      "tree": "9124ed674d39d86160349d84e4112a7c54120c2b",
      "parents": [
        "16b71fdf97599f1b1b7f38418ee9922d9f117396"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Mar 11 09:00:04 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 11 07:43:33 2009 -0700"
      },
      "message": "proc: fix kflags to uflags copying in /proc/kpageflags\n\nFix kpf_copy_bit(src,dst) to be kpf_copy_bit(dst,src) to match the\nactual call patterns, e.g. kpf_copy_bit(kflags, KPF_LOCKED, PG_locked).\n\nThis misplacement of src/dst only affected reporting of PG_writeback,\nPG_reclaim and PG_buddy. For others kflags\u003d\u003duflags so not affected.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e07a4b9217d1e97d2f3a62b6b070efdc61212110",
      "tree": "8fb1450f8dd1140693f84092ba25eedf3359ccb9",
      "parents": [
        "f7e603ad8f78cd3b59e33fa72707da0cbabdf699"
      ],
      "author": {
        "name": "Helge Bahmann",
        "email": "helge.bahmann@secunet.com",
        "time": "Fri Feb 20 16:24:12 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Feb 24 21:17:58 2009 +0300"
      },
      "message": "proc: fix PG_locked reporting in /proc/kpageflags\n\nExpr always evaluates to zero.\n\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "cac711211a039ae2e2dc6322ffb3c2279d093bf1",
      "tree": "a910c047f30616462bb8312b86b0caff8a56fa85",
      "parents": [
        "226485e9a91ee89c941d8cb7714f85644a8071d0"
      ],
      "author": {
        "name": "Krzysztof Sachanowicz",
        "email": "analyzer1@gmail.com",
        "time": "Mon Feb 23 22:21:55 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 23 18:25:32 2009 -0800"
      },
      "message": "proc: proc_get_inode should de_put when inode already initialized\n\nde_get is called before every proc_get_inode, but corresponding de_put is\ncalled only when dropping last reference to an inode. This might cause\nsomething like\nremove_proc_entry: /proc/stats busy, count\u003d14496\nto be printed to the syslog.\n\nThe fix is to call de_put in case of an already initialized inode in\nproc_get_inode.\n\nSigned-off-by: Krzysztof Sachanowicz \u003canalyzer1@gmail.com\u003e\nTested-by: Marcin Pilipczuk \u003cmarcin.pilipczuk@gmail.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c40f6f8bbc4cbd2902671aacd587400ddca62627",
      "tree": "a991e5521e10943f4457fb7f494e00aec75cc7df",
      "parents": [
        "1a7d0f0bec4be078ce2cfb11538c0f4ffbbed8e5",
        "cb6ff208076b5f434db1b8c983429269d719cef5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu:\n  NOMMU: Support XIP on initramfs\n  NOMMU: Teach kobjsize() about VMA regions.\n  FLAT: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  FDPIC: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  NOMMU: Improve procfs output using per-MM VMAs\n  NOMMU: Make mmap allocation page trimming behaviour configurable.\n  NOMMU: Make VMAs per MM as for MMU-mode linux\n  NOMMU: Delete askedalloc and realalloc variables\n  NOMMU: Rename ARM\u0027s struct vm_region\n  NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area()\n"
    },
    {
      "commit": "921d58c0e6992f74d3a48180604a298f115d2dee",
      "tree": "db3128a5957a0ff95d2bce1166d61050b1b3e494",
      "parents": [
        "4037014e3fb71e998189374e19ca141c59d15323"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Wed Jan 07 18:09:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:14 2009 -0800"
      },
      "message": "vmcore: remove saved_max_pfn check\n\nRemove the saved_max_pfn check from the /proc/vmcore function\nread_from_oldmem().  No need to verify, we should be able to just trust\nthat \"elfcorehdr\u003d\" is correctly passed to the crash kernel on the kernel\ncommand line like we do with other parameters.\n\nThe read_from_oldmem() function in fs/proc/vmcore.c is quite similar to\nread_from_oldmem() in drivers/char/mem.c, but only in the latter it makes\nsense to use saved_max_pfn.  For oldmem it is used to determine when to\nstop reading.  For vmcore we already have the elf header info pointing out\nthe physical memory regions, no need to pass the end-of- old-memory twice.\n\nRemoving the saved_max_pfn check from vmcore makes it possible for\narchitectures to skip oldmem but still support crash dump through vmcore -\nwithout the need for the old saved_max_pfn cruft.\n\nArchitectures that want to play safe can do the saved_max_pfn check in\ncopy_oldmem_page().  Not sure why anyone would want to do that, but that\u0027s\neven safer than today - the saved_max_pfn check in vmcore removed by this\npatch only checks the first page.\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\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": "38f714795b7cf4103c54152200ca66b524f8ed6e",
      "tree": "9378b4a9f8e862e3faa63b3874fc8917d4aad2ea",
      "parents": [
        "dd8632a12e500a684478fea0951f380478d56fed"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Improve procfs output using per-MM VMAs\n\nImprove procfs output using per-MM VMAs for process memory accounting.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "8feae13110d60cc6287afabc2887366b0eb226c2",
      "tree": "b3188986faab70e753e00ea8670a11ba8ec844c0",
      "parents": [
        "41836382ebb415d68d3ebc4525e78e871fe58baf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make VMAs per MM as for MMU-mode linux\n\nMake VMAs per mm_struct as for MMU-mode linux.  This solves two problems:\n\n (1) In SYSV SHM where nattch for a segment does not reflect the number of\n     shmat\u0027s (and forks) done.\n\n (2) In mmap() where the VMA\u0027s vm_mm is set to point to the parent mm by an\n     exec\u0027ing process when VM_EXECUTABLE is specified, regardless of the fact\n     that a VMA might be shared and already have its vm_mm assigned to another\n     process or a dead process.\n\nA new struct (vm_region) is introduced to track a mapped region and to remember\nthe circumstances under which it may be shared and the vm_list_struct structure\nis discarded as it\u0027s no longer required.\n\nThis patch makes the following additional changes:\n\n (1) Regions are now allocated with alloc_pages() rather than kmalloc() and\n     with no recourse to __GFP_COMP, so the pages are not composite.  Instead,\n     each page has a reference on it held by the region.  Anything else that is\n     interested in such a page will have to get a reference on it to retain it.\n     When the pages are released due to unmapping, each page is passed to\n     put_page() and will be freed when the page usage count reaches zero.\n\n (2) Excess pages are trimmed after an allocation as the allocation must be\n     made as a power-of-2 quantity of pages.\n\n (3) VMAs are added to the parent MM\u0027s R/B tree and mmap lists.  As an MM may\n     end up with overlapping VMAs within the tree, the VMA struct address is\n     appended to the sort key.\n\n (4) Non-anonymous VMAs are now added to the backing inode\u0027s prio list.\n\n (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of\n     the backing region.  The VMA and region structs will be split if\n     necessary.\n\n (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory\n     segment instead of all the attachments at that addresss.  Multiple\n     shmat()\u0027s return the same address under NOMMU-mode instead of different\n     virtual addresses as under MMU-mode.\n\n (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.\n\n (8) /proc/maps is now the global list of mapped regions, and may list bits\n     that aren\u0027t actually mapped anywhere.\n\n (9) /proc/meminfo gains a line (tagged \"MmapCopy\") that indicates the amount\n     of RAM currently allocated by mmap to hold mappable regions that can\u0027t be\n     mapped directly.  These are copies of the backing device or file if not\n     anonymous.\n\nThese changes make NOMMU mode more similar to MMU mode.  The downside is that\nNOMMU mode requires some extra memory to track things over NOMMU without this\npatch (VMAs are no longer shared, and there are now region structs).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    }
  ],
  "next": "a0c9f240a992c4c2b6ac40324ece27475cf3b71a"
}
