)]}'
{
  "log": [
    {
      "commit": "8b21985c91ffb3062bfbd3f2bfbeceb5333afaac",
      "tree": "76648de1b28409def2453fbc92d67f35133a32f3",
      "parents": [
        "edde08f2a8f13a648ab6d26f33e88d0c6146f3d1"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Fri Feb 08 04:19:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "constify tables in kernel/sysctl_check.c\n\nRemains the question whether it is intended that many, perhaps even large,\ntables are compiled in without ever having a chance to get used, i.e.\nwhether there shouldn\u0027t #ifdef CONFIG_xxx get added.\n\n[akpm@linux-foundation.org: fix cut-n-paste error]\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.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": "7ad5b3a505e68cfdc342933d6e0fc0eaa5e0a4f7",
      "tree": "6715ffd8df509d3d53dea581bb97418a21bc7cbc",
      "parents": [
        "fc9b52cd8f5f459b88adcf67c47668425ae31a78"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "kernel: remove fastcall in kernel/*\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eb056764dd806bbe84eb604e45e7470feeaafd8",
      "tree": "97a8fe2123d2c9df2bcb48052ac33d445a00f64c",
      "parents": [
        "cf4fc6cb76e50b01666e28a9f4b2e6fbcbb96d5f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Feb 08 04:19:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "time: fix typo in comments\n\nFix typo in comments.\n\nBTW: I have to fix coding style in arch/ia64/kernel/time.c also, otherwise\ncheckpatch.pl will be complaining.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf4fc6cb76e50b01666e28a9f4b2e6fbcbb96d5f",
      "tree": "ac1e027b7e759822014bd3a72ababd1fa1052198",
      "parents": [
        "0b858e6ff9a38b987a83d22e6f2a2f621c80608d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Feb 08 04:19:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "timekeeping: rename timekeeping_is_continuous to timekeeping_valid_for_hres\n\nFunction timekeeping_is_continuous() no longer checks flag\nCLOCK_IS_CONTINUOUS, and it checks CLOCK_SOURCE_VALID_FOR_HRES now.  So rename\nthe function accordingly.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b858e6ff9a38b987a83d22e6f2a2f621c80608d",
      "tree": "71bea1f83730b25ef1a18d56e9b5e69261b884c4",
      "parents": [
        "818c357802e2791880057fe752dc9ce9e210f772"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Feb 08 04:19:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "clockevent: simplify list operations\n\nlist_for_each_safe() suffices here.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "818c357802e2791880057fe752dc9ce9e210f772",
      "tree": "3694d26a887fea0cb96e843177d3281bc1cc7ef6",
      "parents": [
        "146a505d498c36de98ec161d791dd50beca7f9a3"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Feb 08 04:19:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "clocksource: remove redundant code\n\nFlag CLOCK_SOURCE_WATCHDOG is cleared twice.  Note clocksource_change_rating()\nwon\u0027t do anyting with the cs flag.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "146a505d498c36de98ec161d791dd50beca7f9a3",
      "tree": "f126c55b34488866ff179717f1b2a0c7cdd5df6b",
      "parents": [
        "d5df763b81946a405837b80874516dfc2a8f7ebf"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:19:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "Get rid of the kill_pgrp_info() function\n\nThere\u0027s only one caller left - the kill_pgrp one - so merge these two\nfunctions and forget the kill_pgrp_info one.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5df763b81946a405837b80874516dfc2a8f7ebf",
      "tree": "6fdf06b2cda81d91e8aef03af4d880fc4a6cad72",
      "parents": [
        "56496c1d83dfae0c74e2f43adb45d2d95e16c0d5"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:19:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "Clean up the kill_something_info\n\nThis is the first step (of two) in removing the kill_pgrp_info.\n\nAll the users of this function are in kernel/signal.c, but all they need is to\ncall __kill_pgrp_info() with the tasklist_lock read-locked.\n\nFortunately, one of its users is the kill_something_info(), which already\nneeds this lock in one of its branches, so clean these branches up and call\nthe __kill_pgrp_info() directly.\n\nBased on Oleg\u0027s view of how this function should look.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c5f3e7b43300508fe3947ff3cfff0f86043bb57",
      "tree": "9843b8897ec3357b09f62bb6423cd4753e1d4516",
      "parents": [
        "fea9d175545b38cb3e84569400419eb81bc90fa3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:19:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "Pidns: make full use of xxx_vnr() calls\n\nSome time ago the xxx_vnr() calls (e.g.  pid_vnr or find_task_by_vpid) were\n_all_ converted to operate on the current pid namespace.  After this each call\nlike xxx_nr_ns(foo, current-\u003ensproxy-\u003epid_ns) is nothing but a xxx_vnr(foo)\none.\n\nSwitch all the xxx_nr_ns() callers to use the xxx_vnr() calls where\nappropriate.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fea9d175545b38cb3e84569400419eb81bc90fa3",
      "tree": "0d43fe9ed2ea6104ee8b15a3eb8da081dd08fd35",
      "parents": [
        "46f382d2b69d2221086b823f0dbc8f32c027cac2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "ITIMER_REAL: convert to use struct pid\n\nsignal_struct-\u003etsk points to the -\u003egroup_leader and thus we have the nasty\ncode in de_thread() which has to change it and restart -\u003ereal_timer if the\nleader is changed.\n\nUse \"struct pid *leader_pid\" instead.  This also allows us to kill now\nunneeded send_group_sig_info().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d36174bc2bce0372693a9cfbdef8b2689c9982cb",
      "tree": "cdb327c68844f105a8ac8b732e862f24edc35f24",
      "parents": [
        "f374ada53bd1ca7c16d7607369fccc6769704956"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:28 2008 -0800"
      },
      "message": "uglify kill_pid_info() to fix kill() vs exec() race\n\nkill_pid_info()-\u003epid_task() could be the old leader of the execing process.\nIn that case it is possible that the leader will be released before we take\nsiglock. This means that kill_pid_info() (and thus sys_kill()) can return a\nfalse -ESRCH.\n\nChange the code to retry when lock_task_sighand() fails. The endless loop is\nnot possible, __exit_signal() both clears -\u003esighand and does detach_pid().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\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": "ac9a8e3f0f43d20fc316162e8e5f9186d295ff49",
      "tree": "a6b8d416c38d222773a46c5d84b3d043facbf008",
      "parents": [
        "44c4e1b2581f7273ab14ef30b6430618801c57b1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:28 2008 -0800"
      },
      "message": "sys_getsid: don\u0027t use -\u003ensproxy directly\n\nWith the new semantics of find_vpid() we don\u0027t need to play with -\u003ensproxy\nexplicitely, _vxx() do the right things.\n\nAlso s/tasklist/rcu/.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44c4e1b2581f7273ab14ef30b6430618801c57b1",
      "tree": "9881990d56dd58f0c93991217a999bab145946fa",
      "parents": [
        "161550d74c07303ffa6187ba776f62df5a906a21"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:19:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "pid: Extend/Fix pid_vnr\n\npid_vnr returns the user space pid with respect to the pid namespace the\nstruct pid was allocated in.  What we want before we return a pid to user\nspace is the user space pid with respect to the pid namespace of current.\n\npid_vnr is a very nice optimization but because it isn\u0027t quite what we want\nit is easy to use pid_vnr at times when we aren\u0027t certain the struct pid\nwas allocated in our pid namespace.\n\nCurrently this describes at least tiocgpgrp and tiocgsid in ttyio.c the\nparent process reported in the core dumps and the parent process in\nget_signal_to_deliver.\n\nSo unless the performance impact is huge having an interface that does what\nwe want instead of always what we want should be much more reliable and\nmuch less error prone.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "161550d74c07303ffa6187ba776f62df5a906a21",
      "tree": "c47ece377d76141ba48b3e7ffd2d7dbd31c906e1",
      "parents": [
        "5dee1707dfbfc55eb7569b9ae5abaf932bd4c377"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:19:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "pid: sys_wait... fixes\n\nThis modifies do_wait and eligible child to take a pair of enum pid_type\nand struct pid *pid to precisely specify what set of processes are eligible\nto be waited for, instead of the raw pid_t value from sys_wait4.\n\nThis fixes a bug in sys_waitid where you could not wait for children in\njust process group 1.\n\nThis fixes a pid namespace crossing case in eligible_child.  Allowing us to\nwait for a processes in our current process group even if our current\nprocess group \u003d\u003d 0.\n\nThis allows the no child with this pid case to be optimized.  This allows\nus to optimize the pid membership test in eligible child to be optimized.\n\nThis even closes a theoretical pid wraparound race where in a threaded\nparent if two threads are waiting for the same child and one thread picks\nup the child and the pid numbers wrap around and generate another child\nwith that same pid before the other thread is scheduled (teribly insanely\nunlikely) we could end up waiting on the second child with the same pid#\nand not discover that the specific child we were waiting for has exited.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dee1707dfbfc55eb7569b9ae5abaf932bd4c377",
      "tree": "6e162f61f9645f790aa14cb4146882b918bb0286",
      "parents": [
        "6806aac6d282d58b97763f5e17e2787e62c3b440"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "move the related code from exit_notify() to exit_signals()\n\nThe previous bugfix was not optimal, we shouldn\u0027t care about group stop\nwhen we are the only thread or the group stop is in progress.  In that case\nnothing special is needed, just set PF_EXITING and return.\n\nAlso, take the related \"TIF_SIGPENDING re-targeting\" code from exit_notify().\n\nSo, from the performance POV the only difference is that we don\u0027t trust\n!signal_pending() until we take -\u003esiglock.  But this in fact fixes another\n___pure___ theoretical minor race.  __group_complete_signal() finds the\ntask without PF_EXITING and chooses it as the target for signal_wake_up().\nBut nothing prevents this task from exiting in between without noticing the\npending signal and thus unpredictably delaying the actual delivery.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "6806aac6d282d58b97763f5e17e2787e62c3b440",
      "tree": "4076069a60e054a2d8c31bc2998607668b0a40b0",
      "parents": [
        "d12619b5ff5664623524aef796514d1946ea3b4a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "sys_setsid: remove now unneeded session !\u003d 1 check\n\nEric\u0027s \"fix clone(CLONE_NEWPID)\" eliminated the last reason for this hack.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "d12619b5ff5664623524aef796514d1946ea3b4a",
      "tree": "23140ca0148f9154440d3056e2040d8df468a24b",
      "parents": [
        "430c623121ea88ca80595c99fdc63b7f8a803ae5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "fix group stop with exit race\n\ndo_signal_stop() counts all sub-thread and sets -\u003egroup_stop_count\naccordingly.  Every thread should decrement -\u003egroup_stop_count and stop,\nthe last one should notify the parent.\n\nHowever a sub-thread can exit before it notices the signal_pending(), or it\nmay be somewhere in do_exit() already.  In that case the group stop never\nfinishes properly.\n\nNote: this is a minimal fix, we can add some optimizations later.  Say we\ncan return quickly if thread_group_empty().  Also, we can move some signal\nrelated code from exit_notify() to exit_signals().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "430c623121ea88ca80595c99fdc63b7f8a803ae5",
      "tree": "8ada2d8287d07cabd64cc3614a6a643623046e5c",
      "parents": [
        "297bd42b15daed02453ff59ce6d31216a58b0398"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "start the global /sbin/init with 0,0 special pids\n\nAs Eric pointed out, there is no problem with init starting with sid \u003d\u003d pgid\n\u003d\u003d 0, and this was historical linux behavior changed in 2.6.18.\n\nRemove kernel_init()-\u003e__set_special_pids(), this is unneeded and complicates\nthe rules for sys_setsid().\n\nThis change and the previous change in daemonize() mean that /sbin/init does\nnot need the special \"session !\u003d 1\" hack in sys_setsid() any longer. We can\u0027t\nremove this check yet, we should cleanup copy_process(CLONE_NEWPID) first, so\nupdate the comment only.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "297bd42b15daed02453ff59ce6d31216a58b0398",
      "tree": "4b1fecc6e285c50d55961ed85e013419f5810164",
      "parents": [
        "8520d7c7f8611216e3b270becec95bb35b6899d4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "move daemonized kernel threads into the swapper\u0027s session\n\nDaemonized kernel threads run in the init\u0027s session. This doesn\u0027t match the\nbehaviour of kthread_create()\u0027ed threads, and this is one of the 2 reasons\nwhy we need a special hack in sys_setsid().\n\nNow that set_special_pids() was changed to use struct pid, not pid_t, we can\nuse init_struct_pid and set 0,0 special pids.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8520d7c7f8611216e3b270becec95bb35b6899d4",
      "tree": "77001e6830bb415590067e9d4be24cd8bdd36219",
      "parents": [
        "e4cc0a9c876d4d4eadaef97a2bff4a199946d202"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "teach set_special_pids() to use struct pid\n\nChange set_special_pids() to work with struct pid, not pid_t from global name\nspace. This again speedups and imho cleanups the code, also a preparation for\nthe next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4cc0a9c876d4d4eadaef97a2bff4a199946d202",
      "tree": "e25406d84ce842c54e3ac5438e4bcee32a75a964",
      "parents": [
        "4e021306cff4277764a42065214fc73f2d26be4b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "fix setsid() for sub-namespace /sbin/init\n\nsys_setsid() still deals with pid_t\u0027s from the global namespace. This means\nthat the \"session \u003e 1\" check can\u0027t help for sub-namespace init, setsid() can\u0027t\nsucceed because copy_process(CLONE_NEWPID) populates PIDTYPE_PGID/SID links.\n\nRemove the usage of task_struct-\u003epid and convert the code to use \"struct pid\".\nThis also simplifies and speedups the code, saves one find_pid().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e021306cff4277764a42065214fc73f2d26be4b",
      "tree": "49e2c5b785b887ae47c599b0afd81ba304f9062a",
      "parents": [
        "c543f1ee08ea6c2176dbdc47df0d0f6357c88713"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "sys_setpgid(): simplify pid/ns interaction\n\nsys_setpgid() does unneeded conversions from pid_t to \"struct pid\" and vice\nversa.  Use \"struct pid\" more consistently.  Saves one find_vpid() and\neliminates the explicit usage of -\u003ensproxy-\u003epid_ns.  Imho, cleanups the\ncode.\n\nAlso use the same_thread_group() helper.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: \"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": "c543f1ee08ea6c2176dbdc47df0d0f6357c88713",
      "tree": "ae2d4de96aabbafd3792316d14f40330ec64572d",
      "parents": [
        "3a515e4a62dbf7e4c213740268a5267faa69e5b2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "wait_task_zombie: remove -\u003eexit_state/exit_signal checks for WNOWAIT\n\nThe first \"p-\u003eexit_state !\u003d EXIT_ZOMBIE\" check doesn\u0027t make too much sense.\nThe exit_state was EXIT_ZOMBIE when the function was called, and another\nthread can change it to EXIT_DEAD right after the check.\n\nThe second condition is not possible, detached non-traced threads were already\nfiltered out by eligible_child(), we didn\u0027t drop tasklist since then.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3a515e4a62dbf7e4c213740268a5267faa69e5b2",
      "tree": "51f98e662c80ca5de628f09c5eb24d18f1794f6c",
      "parents": [
        "f2cc3eb133baa2e9dc8efd40f417106b2ee520f3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "wait_task_continued/zombie: don\u0027t use task_pid_nr_ns() lockless\n\nSurprise, the other two wait_task_*() functions also abuse the\ntask_pid_nr_ns() function, and may cause read-after-free or report nr \u003d\u003d 0\nin wait_task_continued().  wait_task_zombie() doesn\u0027t have this problem,\nbut it is still better to cache pid_t rather than call task_pid_nr_ns()\nthree times on the saved pid_namespace.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2cc3eb133baa2e9dc8efd40f417106b2ee520f3",
      "tree": "37b08158ee5296e79a61aad086be36c742825e3b",
      "parents": [
        "96fabbf55ae79826f2e8a86f4066d7e8834315ae"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "do_wait: fix security checks\n\nImho, the current usage of security_task_wait() is not logical.\n\nSuppose we have the single child p, and security_task_wait(p) return\n-EANY.  In that case waitpid(-1) returns this error.  Why? Isn\u0027t it\nbetter to return ECHLD? We don\u0027t really have reapable children.\n\nNow suppose that child was stolen by gdb.  In that case we find this\nchild on -\u003eptrace_children and set flag \u003d 1, but we don\u0027t check that the\nchild was denied.  So, do_wait(..., WNOHANG) returns 0, this doesn\u0027t\nmatch the behaviour above.  Without WNOHANG do_wait() blocks only to\nreturn the error later, when the child will be untraced.  Inho, really\nstrange.\n\nI think eligible_child() should return the error only if the child\u0027s pid\nwas requested explicitly, otherwise we should silently ignore the tasks\nwhich were nacked by security_task_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96fabbf55ae79826f2e8a86f4066d7e8834315ae",
      "tree": "e4b3259a744a1e0c8fa477e3dfba02e4ea1993c8",
      "parents": [
        "1bad95c3bee183719e15eebffef66afc3fb3f8b0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "do_wait: cleanup delay_group_leader() usage\n\neligible_child() \u003d\u003d 2 means delay_group_leader().  With the previous patch\nthis only matters for EXIT_ZOMBIE task, we can move that special check to\nthe only place it is really needed.\n\nAlso, with this patch we don\u0027t skip security_task_wait() for the group\nleaders in a non-empty thread group.  I don\u0027t really understand the exact\nsemantics of security_task_wait(), but imho this change is a bugfix.\n\nAlso rearrange the code a bit to kill an ugly \"check_continued\" backdoor.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1bad95c3bee183719e15eebffef66afc3fb3f8b0",
      "tree": "b875db7096572a69f3906db631708d7e75e22f3f",
      "parents": [
        "20686a309aa98c518adbbd9b57cdbb1804143deb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "wait_task_stopped(): remove unneeded delay_group_leader check\n\nwait_task_stopped() doesn\u0027t need the \"delay_group_leader\" parameter.  If\nthe child is not traced it must be a group leader.  With or without\nsubthreads -\u003egroup_stop_count \u003d\u003d 0 when the whole task is stopped.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Mika Penttila \u003cmika.penttila@kolumbus.fi\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20686a309aa98c518adbbd9b57cdbb1804143deb",
      "tree": "4aac811e67d777d3c0015ca51312aa93b4832d35",
      "parents": [
        "9cbab8100538efdd93aeae6fc37787d986f2f558"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "ptrace_stop: fix racy nonstop_code setting\n\nIf the tracer is gone and we are not going to stop, ptrace_stop() sets\n-\u003eexit_code \u003d nostop_code.  However, the tracer could actually clear the\nexit code before detaching.  In that case get_signal_to_deliver() \"resends\"\nthe signal which was cancelled by the debugger.  For example, it is\npossible that a quick PTRACE_ATTACH + PTRACE_DETACH can leave the tracee in\nSTOPPED state.\n\nChange the behaviour of ptrace_stop().  If the caller is ptrace notify(),\nwe should always clear -\u003eexit_code.  If the caller is\nget_signal_to_deliver(), we should not touch it at all.  To do so, change\nthe nonstop_code parameter to \"bool clear_code\" and change the callers\naccordingly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cbab8100538efdd93aeae6fc37787d986f2f558",
      "tree": "a34cf1b3d6bdb3b2bbede801a9acdb23d35903ff",
      "parents": [
        "ee7c82da830ea860b1f9274f1f0cdf99f206e7c2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "do_wait: factor out \"retval !\u003d 0\" checks\n\nEvery branch if the main \"if\" statement does the same code at the end.  Move\nit down.  Also, fix the indentation.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee7c82da830ea860b1f9274f1f0cdf99f206e7c2",
      "tree": "449477479b25ec73a1c2242723b3fb1c09cd936d",
      "parents": [
        "6405f7f4675884b671bee66678e1c2859bdb0e56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "wait_task_stopped: simplify and fix races with SIGCONT/SIGKILL/untrace\n\nwait_task_stopped() has multiple races with SIGCONT/SIGKILL.  tasklist_lock\ndoes not pin the child in TASK_TRACED/TASK_STOPPED stated, almost all info\nreported (including exit_code) may be wrong.\n\nIn fact, the code under write_lock_irq(tasklist_lock) is not safe.  The child\nmay be PTRACE_DETACH\u0027ed at this time by another subthread, in that case it is\npossible we are no longer its -\u003eparent.\n\nChange wait_task_stopped() to take -\u003esiglock before inspecting the task.  This\nguarantees that the child can\u0027t resume and (for example) clear its\n-\u003eexit_code, so we don\u0027t need to use xchg(\u0026p-\u003eexit_code) and re-check.  The\nonly exception is ptrace_stop() which changes -\u003estate and -\u003eexit_code without\n-\u003esiglock held during abort.  But this can only happen if both the tracer and\nthe tracee are dying (coredump is in progress), we don\u0027t care.\n\nWith this patch wait_task_stopped() doesn\u0027t move the child to the end of\nthe -\u003eparent list on success.  This optimization could be restored, but\nin that case we have to take write_lock(tasklist) and do some nasty\nchecks.\n\nAlso change the do_wait() since we don\u0027t return EAGAIN any longer.\n\n[akpm@linux-foundation.org: fix up after Willy renamed everything]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6405f7f4675884b671bee66678e1c2859bdb0e56",
      "tree": "31f0e42b011de36976f5a50b86aee7132f6b82b4",
      "parents": [
        "c0c0b649d67aa775aa9851de61aade17504be70c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "ptrace_stop: fix the race with ptrace detach+attach\n\nIf the tracer went away (may_ptrace_stop() failed), ptrace_stop() drops\ntasklist and then changes the -\u003estate from TASK_TRACED to TASK_RUNNING.\n\nThis can fool another tracer which attaches to us in between.  Change the\n-\u003estate under tasklist_lock to ensure that ptrace_check_attach() can\u0027t wrongly\nsucceed.  Also, remove the unnecessary mb().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0c0b649d67aa775aa9851de61aade17504be70c",
      "tree": "5902fb53a364155352fcc04e87860d724d8b31fd",
      "parents": [
        "34a1738f7da0b3d28d4b066d03a78f46b8cab68f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "ptrace_check_attach: remove unneeded -\u003esignal !\u003d NULL check\n\nIt is not possible to see the PT_PTRACED task without -\u003esignal/sighand under\ntasklist_lock, release_task() does ptrace_unlink() first.  If the task was\nalready released before, ptrace_attach() can\u0027t succeed and set PT_PTRACED.\nRemove this check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34a1738f7da0b3d28d4b066d03a78f46b8cab68f",
      "tree": "4e7312642adb1aab0ba9fa4f29b4912c9ee035d2",
      "parents": [
        "6b39c7bfbd1436836c0fb34c5b437fda1a7a3dd4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:18:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "kill my_ptrace_child()\n\nNow that my_ptrace_child() is trivial we can use the \"p-\u003eptrace \u0026 PT_PTRACED\"\ninline and simplify the corresponding logic in do_wait: we can\u0027t find the\nchild in TASK_TRACED state without PT_PTRACED flag set, ptrace_untrace()\neither sets TASK_STOPPED or wakes up the tracee.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b39c7bfbd1436836c0fb34c5b437fda1a7a3dd4",
      "tree": "60d3d9719eef3076527fcbf9c3cb362fe0f52d61",
      "parents": [
        "01b8b07a5d77d22e609267dcae74d15e3e9c5f13"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:18:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "kill PT_ATTACHED\n\nSince the patch\n\n\t\"Fix ptrace_attach()/ptrace_traceme()/de_thread() race\"\n\tcommit f5b40e363ad6041a96e3da32281d8faa191597b9\n\nwe set PT_ATTACHED and change child-\u003eparent \"atomically\" wrt task_list lock.\n\nThis means we can remove the checks like \"PT_ATTACHED \u0026\u0026 -\u003eparent !\u003d ptracer\"\nwhich were needed to catch the \"ptrace attach is in progress\" case.  We can\nalso remove the flag itself since nobody else uses it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92dfc9dc7ba63134f721b6e745dbdcfc13ea341b",
      "tree": "aa959d2d5ba1819651888601e4d917b01ddcc88c",
      "parents": [
        "6d7623943c905efae327933bc5ee0b2f78e15f56"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 04:18:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "fix \"modules: make module_address_lookup() safe\"\n\nGet the constness right, avoid nasty cast.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Rusty Russell \u003crusty@rustcorp.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": "6d7623943c905efae327933bc5ee0b2f78e15f56",
      "tree": "e2e4e073bd495970aa487bec94c560dcf31e33b1",
      "parents": [
        "88173507e4fc1e7ecd111b0565e8cba0cb7dae6d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Feb 08 04:18:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "modules: include sections.h to avoid defining linker variables explicitly\n\nmodule.c should not define linker variables on its own. We have an include\nfile for that.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.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": "88173507e4fc1e7ecd111b0565e8cba0cb7dae6d",
      "tree": "ed1a3f61f95b6e253afe8e330a668a12ad56a4e2",
      "parents": [
        "596f56018df3ed7de20f6038f72177b3674ebbd4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Feb 08 04:18:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "Modules: handle symbols that have a zero value\n\nThe module subsystem cannot handle symbols that are zero.  If symbols are\npresent that have a zero value then the module resolver prints out a\nmessage that these symbols are unresolved.\n\n[akinobu.mita@gmail.com: fix __find_symbl() error checks]\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "df5f8314ca30d6a76735748e5ba4ca9809c0f434",
      "tree": "e0a6157b1666a320e69586a81c77a3fe83b36a2a",
      "parents": [
        "a56d3fc74c0178c5f41c48315604d62cff4e746d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: seqfile convert proc_pid_status to properly handle pid namespaces\n\nCurrently we possibly lookup the pid in the wrong pid namespace.  So\nseq_file convert proc_pid_status which ensures the proper pid namespaces is\npassed in.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: s390 build fix]\n[akpm@linux-foundation.org: fix task_name() output]\n[akpm@linux-foundation.org: fix nommu build]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morgan \u003cmorgan@kernel.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.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": "74bd59bb39eb08b4379e2590c5f160748d83f812",
      "tree": "2e0b8e18b0d51f9972239a0322aca313b325a8fa",
      "parents": [
        "aee16ce73c71a241190cef3aaa265f6a3ab8e035"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: cleanup the code managed with PID_NS option\n\nJust like with the user namespaces, move the namespace management code into\nthe separate .c file and mark the (already existing) PID_NS option as \"depend\non NAMESPACES\"\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aee16ce73c71a241190cef3aaa265f6a3ab8e035",
      "tree": "ccfded2678d36af2d4ba9ad106240acf65173b28",
      "parents": [
        "ae5e1b22f17983da929a0d0178896269e19da186"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: cleanup the code managed with the USER_NS option\n\nMake the user_namespace.o compilation depend on this option and move the\ninit_user_ns into user.c file to make the kernel compile and work without the\nnamespaces support.  This make the user namespace code be organized similar to\nother namespaces\u0027.\n\nAlso mask the USER_NS option as \"depend on NAMESPACES\".\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae5e1b22f17983da929a0d0178896269e19da186",
      "tree": "e9937e2060167a430cf90955327d1a5a2e7b2303",
      "parents": [
        "58bfdd6deeec02b73691ea2c951a3c5d743bca63"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: move the IPC namespace under IPC_NS option\n\nCurrently the IPC namespace management code is spread over the ipc/*.c files.\nI moved this code into ipc/namespace.c file which is compiled out when needed.\n\nThe linux/ipc_namespace.h file is used to store the prototypes of the\nfunctions in namespace.c and the stubs for NAMESPACES\u003dn case.  This is done\nso, because the stub for copy_ipc_namespace requires the knowledge of the\nCLONE_NEWIPC flag, which is in sched.h.  But the linux/ipc.h file itself in\nincluded into many many .c files via the sys.h-\u003esem.h sequence so adding the\nsched.h into it will make all these .c depend on sched.h which is not that\ngood.  On the other hand the knowledge about the namespaces stuff is required\nin 4 .c files only.\n\nBesides, this patch compiles out some auxiliary functions from ipc/sem.c,\nmsg.c and shm.c files.  It turned out that moving these functions into\nnamespaces.c is not that easy because they use many other calls and macros\nfrom the original file.  Moving them would make this patch complicated.  On\nthe other hand all these functions can be consolidated, so I will send a\nseparate patch doing this a bit later.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58bfdd6deeec02b73691ea2c951a3c5d743bca63",
      "tree": "8f46771858dee87080b0ed64bc176b25c239f3b1",
      "parents": [
        "c5289a69491f2b597e22d0456b46cc043deedbd8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: move the UTS namespace under UTS_NS option\n\nCurrently all the namespace management code is in the kernel/utsname.c file,\nso just compile it out and make stubs in the appropriate header.\n\nThe init namespace itself is in init/version.c and is in the kernel all the\ntime.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d0c6aa1bb342b9b2c7b123b52ac2f48a4d4d0a",
      "tree": "0c6766dd2add1f08c6153769c655e46ddff82a42",
      "parents": [
        "ac74c00e499ed276a965e5b5600667d5dc04a84a"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Fri Feb 08 04:18:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "hugetlb: add locking for overcommit sysctl\n\nWhen I replaced hugetlb_dynamic_pool with nr_overcommit_hugepages I used\nproc_doulongvec_minmax() directly.  However, hugetlb.c\u0027s locking rules\nrequire that all counter modifications occur under the hugetlb_lock.  Add a\ncallback into the hugetlb code similar to the one for nr_hugepages.  Grab\nthe lock around the manipulation of nr_overcommit_hugepages in\nproc_doulongvec_minmax().\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.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": "f0f1b3364ae7f48084bdf2837fb979ff59622523",
      "tree": "e5ef68c0071f44178cc8d1948b64e216d57422aa",
      "parents": [
        "4383f18b7f94a4d668c5eec68645c75d44556235",
        "b7143156c9ceee1a072c57aac8729d2dec5b3bf1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:58 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (112 commits)\n  ACPI: fix build warning\n  Revert \"cpuidle: build fix for non-x86\"\n  ACPI: update intrd DSDT override console messages\n  ACPI: update DSDT override documentation\n  ACPI: Add \"acpi_no_initrd_override\" kernel parameter\n  ACPI: its a directory not a folder....\n  ACPI: misc cleanups\n  ACPI: add missing prink prefix strings\n  ACPI: cleanup acpi.h\n  ACPICA: fix CONFIG_ACPI_DEBUG_FUNC_TRACE build\n  ACPI: video: Ignore ACPI video devices that aren\u0027t present in hardware\n  ACPI: video: reset brightness on resume\n  ACPI: video: call ACPI notifier chain for ACPI video notifications\n  ACPI: create notifier chain to get hotkey events to graphics driver\n  ACPI: video: delete unused display switch on hotkey event code\n  ACPI: video: create \"brightness_switch_enabled\" modparam\n  cpuidle: Add a poll_idle method\n  ACPI: cpuidle: Support C1 idle time accounting\n  ACPI: enable MWAIT for C1 idle\n  ACPI: idle: Fix acpi_safe_halt usages and interrupt enabling/disabling\n  ...\n"
    },
    {
      "commit": "bba1f603b88f30945ae4c5eccf2a6f5a12b877c5",
      "tree": "ae084f845fa4ede7b2926381419d725b7dd7d5d7",
      "parents": [
        "1e4f2955433231b4b02dc4a9eb5d4d403a8680e1"
      ],
      "author": {
        "name": "Ken\u0027ichi Ohmichi",
        "email": "oomichi@mxs.nes.nec.co.jp",
        "time": "Thu Feb 07 00:15:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "vmcoreinfo: add \"VMCOREINFO_\" to all the call for vmcoreinfo_append_str()\n\nFor readability, all the calls to vmcoreinfo_append_str() are changed to macros\nhaving a prefix \"VMCOREINFO_\".\n\nThis discussion is the following:\nhttp://www.ussg.iu.edu/hypermail/linux/kernel/0709.3/0584.html\n\nSigned-off-by: Ken\u0027ichi Ohmichi \u003coomichi@mxs.nes.nec.co.jp\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\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": "c76f860c44357f560a763d2894e95464cab7b159",
      "tree": "49cc50570ae34b02222cf5a7f1023e5828ae246b",
      "parents": [
        "18a01a3beb9f25a70a51e12e3c1c3d273da10eca"
      ],
      "author": {
        "name": "Ken\u0027ichi Ohmichi",
        "email": "oomichi@mxs.nes.nec.co.jp",
        "time": "Thu Feb 07 00:15:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "vmcoreinfo: rename vmcoreinfo\u0027s macros returning the size\n\nThis patchset is for the vmcoreinfo data.\n\nThe vmcoreinfo data has the minimum debugging information only for dump\nfiltering.  makedumpfile (dump filtering command) gets it to distinguish\nunnecessary pages, and makedumpfile creates a small dumpfile.\n\nThis patch:\n\nVMCOREINFO_SIZE() should be renamed VMCOREINFO_STRUCT_SIZE() since it\u0027s always\nreturning the size of the struct with a given name. This change would allow\nVMCOREINFO_TYPEDEF_SIZE() to simply become VMCOREINFO_SIZE() since it need not\nbe used exclusively for typedefs.\n\nThis discussion is the following:\nhttp://www.ussg.iu.edu/hypermail/linux/kernel/0709.3/0582.html\n\nSigned-off-by: Ken\u0027ichi Ohmichi \u003coomichi@mxs.nes.nec.co.jp\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73507f335f406ff31ceb97b39fa76eaee00f4f26",
      "tree": "0fc2afdd433f883525195c337150140a692a8170",
      "parents": [
        "b450129554213a4d4c5932f8a293646c029e1b0a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:14:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "Handle pid namespaces in cgroups code\n\nThere\u0027s one place that works with task pids - its the \"tasks\" file in cgroups.\n The read/write handlers assume, that the pid values go to/come from the user\nspace and thus it is a virtual pid, i.e.  the pid as it is seen from inside a\nnamespace.\n\nTune the code accordingly.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Paul Menage \u003cmenage@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": "b450129554213a4d4c5932f8a293646c029e1b0a",
      "tree": "fbe569493c0c17936498a6b5660db889b7ee95fd",
      "parents": [
        "c8d9c90c7ece28259436476a016cdecd25dccf2c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:14:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu move tasks in empty cpusets - refinements\n\n- Narrow the scope of callback_mutex in scan_for_empty_cpusets().\n\n- Avoid rewriting the cpus, mems of cpusets except when it is likely that\n  we\u0027ll be changing them.\n\n- Have remove_tasks_in_empty_cpuset() also check for empty mems.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@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": "c8d9c90c7ece28259436476a016cdecd25dccf2c",
      "tree": "660e8ef2dec483afc399f6fdcdd4610d46f6796f",
      "parents": [
        "2df167a300d7b3ab9949bbb02a8f604afd809b92"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:14:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu: move tasks in empty cpusets to parent various other fixes\n\nVarious minor formatting and comment tweaks to Cliff Wickman\u0027s\n[PATCH_3_of_3]_cpusets__update_cpumask_revision.patch\n\nI had had \"iff\", meaning \"if and only if\" in a comment.  However, except for\nancient mathematicians, the abbreviation \"iff\" was a tad too cryptic.  Cliff\nchanged it to \"if\", presumably figuring that the \"iff\" was a typo.  However,\nit was the \"only if\" half of the conjunction that was most interesting.\nReword to emphasis the \"only if\" aspect.\n\nThe locking comment for remove_tasks_in_empty_cpuset() was wrong; it said\ncallback_mutex had to be held on entry.  The opposite is true.\n\nSeveral mentions of attach_task() in comments needed to be\nchanged to cgroup_attach_task().\n\nA comment about notify_on_release was no longer relevant,\nas the line of code it had commented, namely:\n\tset_bit(CS_RELEASED_RESOURCE, \u0026parent-\u003eflags);\nis no longer present in that place in the cpuset.c code.\n\nSimilarly a comment about notify_on_release before the\nscan_for_empty_cpusets() routine was no longer relevant.\n\nRemoved extra parentheses and unnecessary return statement.\n\nRenamed attach_task() to cpuset_attach() in various comments.\n\nRemoved comment about not needing memory migration, as it seems the migration\nis done anyway, via the cpuset_attach() callback from cgroup_attach_task().\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@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": "2df167a300d7b3ab9949bbb02a8f604afd809b92",
      "tree": "786c9f13787b828dcaef38e5f73cb946c5301946",
      "parents": [
        "58f4790b73639d1fa808439fac7f761a4c46e11f"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Feb 07 00:14:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cgroups: update comments in cpuset.c\n\nSome of the comments in kernel/cpuset.c were stale following the\ntransition to control groups; this patch updates them to more closely\nmatch reality.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58f4790b73639d1fa808439fac7f761a4c46e11f",
      "tree": "2c7a9cbee80de78beed07b0915df649d8e843365",
      "parents": [
        "956db3ca0606e78456786ef19fd4dc7a5151a6e1"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cpusets: update_cpumask revision\n\nUse the new function cgroup_scan_tasks() to step through all tasks in a\ncpuset.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.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": "956db3ca0606e78456786ef19fd4dc7a5151a6e1",
      "tree": "0bef3d107df1115ecf76e342f30ecee67a7f3705",
      "parents": [
        "31a7df01fd0cd786f60873a921aecafac148c290"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu: move tasks in empty cpusets to parent\n\nThis patch corrects a situation that occurs when one disables all the cpus in\na cpuset.\n\nCurrently, the disabled (cpu-less) cpuset inherits the cpus of its parent,\nwhich is incorrect because it may then overlap its cpu-exclusive sibling.\n\nTasks of an empty cpuset should be moved to the cpuset which is the parent of\ntheir current cpuset.  Or if the parent cpuset has no cpus, to its parent,\netc.\n\nAnd the empty cpuset should be released (if it is flagged notify_on_release).\n\nDepends on the cgroup_scan_tasks() function (proposed by David Rientjes) to\niterate through all tasks in the cpu-less cpuset.  We are deliberately\navoiding a walk of the tasklist.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.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": "31a7df01fd0cd786f60873a921aecafac148c290",
      "tree": "221f00c864c50e7dc4719cb4de09292040567c55",
      "parents": [
        "dfc05c259e424e4160c66eab728f55cc4b53fd75"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cgroups: mechanism to process each task in a cgroup\n\nProvide cgroup_scan_tasks(), which iterates through every task in a cgroup,\ncalling a test function and a process function for each.  And call the process\nfunction without holding the css_set_lock lock.\n\nThe idea is David Rientjes\u0027, predicting that such a function will make it much\neasier in the future to extend things that require access to each task in a\ncgroup without holding the lock,\n\n[akpm@linux-foundation.org: cleanup]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.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": "4fca88c87b7969c698912e2de9b1b31088c777cb",
      "tree": "6a086aaffb4ec17eadd2f2427c5816a02be6606f",
      "parents": [
        "d2ceb9b7ddedbb2e8e590bc6ce33c854043016f9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add- pre_destroy() handler\n\nAdd a handler \"pre_destroy\" to cgroup_subsys.  It is called before\ncgroup_rmdir() checks all subsys\u0027s refcnt.\n\nI think this is useful for subsys which have some extra refs even if there\nare no tasks in cgroup.  By adding pre_destroy(), the kernel keeps the rule\n\"destroy() against subsystem is called only when refcnt\u003d0.\" and allows css\nref to be used by other objects than tasks.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fef1bdd68c81b71882ccb6f47c70980a03182063",
      "tree": "4cfa5c2c10787a3d54de05ca511db31730a239fd",
      "parents": [
        "4c4a22148909e4c003562ea7ffe0a06e26919e3c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "oom: add sysctl to enable task memory dump\n\nAdds a new sysctl, \u0027oom_dump_tasks\u0027, that enables the kernel to produce a\ndump of all system tasks (excluding kernel threads) when performing an\nOOM-killing.  Information includes pid, uid, tgid, vm size, rss, cpu,\noom_adj score, and name.\n\nThis is helpful for determining why there was an OOM condition and which\nrogue task caused it.\n\nIt is configurable so that large systems, such as those with several\nthousand tasks, do not incur a performance penalty associated with dumping\ndata they may not desire.\n\nIf an OOM was triggered as a result of a memory controller, the tasklist\nshall be filtered to exclude tasks that are not a member of the same\ncgroup.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\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": "0eea10301708c64a6b793894c156e21ddd15eb64",
      "tree": "a0dcbe47d48d35ec0554faa5f86068cfab94ca6e",
      "parents": [
        "66e1707bc34609f626e2e7b4fe7e454c9748bad5"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller improve user interface\n\nChange the interface to use bytes instead of pages.  Page sizes can vary\nacross platforms and configurations.  A new strategy routine has been added\nto the resource counters infrastructure to format the data as desired.\n\nSuggested by David Rientjes, Andrew Morton and Herbert Poetzl\n\nTested on a UML setup with the config for memory control enabled.\n\n[kamezawa.hiroyu@jp.fujitsu.com: possible race fix in res_counter]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-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": "78fb74669e80883323391090e4d26d17fe29488f",
      "tree": "9154b703510415ae87bdae8750c1054e79710c61",
      "parents": [
        "8cdea7c05454260c0d4d83503949c358eb131d17"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: accounting setup\n\nBasic setup routines, the mm_struct has a pointer to the cgroup that\nit belongs to and the the page has a page_cgroup associated with it.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\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": "e552b6617067ab785256dcec5ca29eeea981aacb",
      "tree": "672cccc2e21abfa4dcdc1bdb198e748894bbbbc6",
      "parents": [
        "59bd26582de660d4c9c26125747f1b4a5eb40d1e"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: resource counters\n\nWith fixes from David Rientjes \u003crientjes@google.com\u003e\n\nIntroduce generic structures and routines for resource accounting.\n\nEach resource accounting cgroup is supposed to aggregate it,\ncgroup_subsystem_state and its resource-specific members within.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9685a03c8c3162cfa9ff02d254ea5c848f9facb",
      "tree": "9267e6f5bbccfb4af41a9efeb170e9d29a838d4f",
      "parents": [
        "8dc4f3e17dd5f7e59ce568155ccd8974af879315"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Feb 07 00:13:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "kernel/cgroup.c: make 2 functions static\n\ncgroup_is_releasable() and notify_on_release() should be static,\nnot global inline.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Paul Menage \u003cmenage@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": "8dc4f3e17dd5f7e59ce568155ccd8974af879315",
      "tree": "959b1197fea798c9daae4dd6c9596ab710d41fda",
      "parents": [
        "622d42cac9ed42098aa50c53994f625abfa3d473"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Feb 07 00:13:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "cgroups: move cgroups destroy() callbacks to cgroup_diput()\n\nMove the calls to the cgroup subsystem destroy() methods from\ncgroup_rmdir() to cgroup_diput().  This allows control file reads and\nwrites to access their subsystem state without having to be concerned with\nlocking against cgroup destruction - the control file dentry will keep the\ncgroup and its subsystem state objects alive until the file is closed.\n\nThe documentation is updated to reflect the changed semantics of destroy();\nadditionally the locking comments for destroy() and some other methods were\nclarified and decrustified.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "622d42cac9ed42098aa50c53994f625abfa3d473",
      "tree": "9bb8e2b5e84406609f2bcf04f45c60321511ca1a",
      "parents": [
        "e18f6318e5dab189efd4cb0bbfcbd923cc373e3c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:13:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "cgroup simplify space stripping\n\nSimplify the space stripping code in cgroup file write.\n\n[akpm@linux-foundation.org: s/BUG_ON/BUILD_BUG_ON/]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@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": "e18f6318e5dab189efd4cb0bbfcbd923cc373e3c",
      "tree": "b39152c3a5732c4fc0eba8830e82a0f4afb4d817",
      "parents": [
        "3cdeed2986b09fcc77b4812ca10dbc057e4e5f8c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:13:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:17 2008 -0800"
      },
      "message": "cgroup brace coding style fix\n\nCoding style fix - one line conditionals don\u0027t get braces.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@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": "3cdeed2986b09fcc77b4812ca10dbc057e4e5f8c",
      "tree": "e6d1880751b119358a30385a2a65deaec695f0b5",
      "parents": [
        "8f1466ff0a6e81653e9bb0d9247495bf4e9db7e2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Feb 07 00:13:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:17 2008 -0800"
      },
      "message": "kernel/cgroup.c: remove dead code\n\nThis patch removes dead code spotted by the Coverity checker\n(look at the \"(nbytes \u003e\u003d PATH_MAX)\" check).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Paul Menage \u003cmenage@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": "eccba068915feece2868c502787037e244db3376",
      "tree": "eac7790a497c1a33c167605a81ba62b22057b99c",
      "parents": [
        "4cbc76eadf56399cd11fb736b33c53aec9caab8c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:06 2008 -0800"
      },
      "message": "gfs2: make gfs2_glock.gl_owner_pid be a struct pid *\n\nThe gl_owner_pid field is used to get the lock owning task by its pid, so make\nit in a proper manner, i.e.  by using the struct pid pointer and pid_task()\nfunction.\n\nThe pid_task() becomes exported for the gfs2 module.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@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": "81e242d0efafb319938d511b115088a5c4523c91",
      "tree": "be22aa41db2288fd7999524d719f333c766a367f",
      "parents": [
        "a733a5da97b238e3e3167d3d0aee8fe1e8d04e97",
        "04d94886b47b5133915021dcfb1108a8576f6ea7"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 04:01:53 2008 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 04:01:53 2008 -0500"
      },
      "message": "Merge branches \u0027release\u0027 and \u0027dsdt-override\u0027 into release\n"
    },
    {
      "commit": "23b168d425ca0ca25257ff8205a39f1c2d1b0f27",
      "tree": "db8849f78280ba6441306368ea5838d848123683",
      "parents": [
        "1a3b77ae60f19fa85f4cdc34b6c09efb1a18372c"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Tue Feb 05 19:27:12 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 01:27:17 2008 -0500"
      },
      "message": "PM: documentation cleanups\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "6ed31e92e94830c138fbd470486383380710069a",
      "tree": "76d74ac2cc7637fca6462727b273cf0c14e24da8",
      "parents": [
        "71fc47a9adf8ee89e5c96a47222915c5485ac437"
      ],
      "author": {
        "name": "Éric Piel",
        "email": "Eric.Piel@tremplin-utc.net",
        "time": "Tue Feb 05 00:04:50 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Feb 06 22:07:51 2008 -0500"
      },
      "message": "ACPI: Taint kernel on ACPI table override (format corrected)\n\nWhen an ACPI table is overridden (for now this can happen only for DSDT)\ndisplay a big warning and taint the kernel with flag A.\n\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "f47cd9b553aaada602449204513b5a5b29cba263",
      "tree": "079ddd399b1aa00a8c413ef51f3b8681a19a6e7e",
      "parents": [
        "5beec4aa2ac261b0b4992fb41df40a7ab91e4fad"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Wed Feb 06 01:38:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:11 2008 -0800"
      },
      "message": "kprobes: kretprobe user entry-handler\n\nProvide support to add an optional user defined callback to be run at\nfunction entry of a kretprobe\u0027d function.  Also modify the kprobe smoke\ntests to include an entry-handler during the kretprobe sanity test.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nAcked-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec03d7073971e20a866448d62c992a168201ac82",
      "tree": "16b1954017d97ff8a40ca4ee78fd8f837c710a14",
      "parents": [
        "6ffc787a4492ac627315aaeafdfdc0a5c3028582"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Feb 06 01:38:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:10 2008 -0800"
      },
      "message": "speed up jiffies conversion functions if HZ\u003d\u003dUSER_HZ\n\nAvoid calling do_div(x, 1) in this case.\n\nCc: David Fries \u003cdavid@fries.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ffc787a4492ac627315aaeafdfdc0a5c3028582",
      "tree": "bb557076ead94695cd148c4b7b065d44e77e62a3",
      "parents": [
        "82f560874e88bd1fd8c98a6254d65a1dffab3876"
      ],
      "author": {
        "name": "David Fries",
        "email": "david@fries.net",
        "time": "Wed Feb 06 01:38:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:10 2008 -0800"
      },
      "message": "system timer: fix crash in \u003c100Hz system timer\n\nThe kernel has a divide by zero crash when trying to run the system timer\nless than 100Hz.  The problem is x/(HZ/USER_HZ) and related.  Now\nx*(USER_HZ/HZ) will be used if HZ\u003cUSER_HZ.\n\nI\u0027m running the Linux kernel under qemu and went to run a slower system\ntimer to take less CPU (and battery) on the host.  I found that the kernel\npaniced under emulation because of a divide by zero in three places.  Here\nis the patch.  The base git was updated today 01-05-2008.  I went for a\n20Hz system time by adding config HZ_20 etc to kernel/Kconfig.hz.  With\nthis patch I verified the system timer by looking at /proc/interrupts.\n\n[akpm@linux-foundation.org: partially clean up the macro maze]\nSigned-off-by: David Fries \u003cdavid@fries.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1bf47346d75790ebd2563d909d48046961c7ffd5",
      "tree": "0f478764beb8dc4e0c71c5f3d6a657535579fe3a",
      "parents": [
        "6b2fb3c65844452bb9e8b449d50863d1b36c5dc0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Feb 06 01:37:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:09 2008 -0800"
      },
      "message": "kernel/sys.c: get rid of expensive divides in groups_sort()\n\ngroups_sort() can be quite long if user loads a large gid table.\n\nThis is because GROUP_AT(group_info, some_integer) uses an integer divide.\nSo having to do XXX thousand divides during one syscall can lead to very\nhigh latencies.  (NGROUPS_MAX\u003d65536)\n\nIn the past (25 Mar 2006), an analog problem was found in groups_search()\n(commit d74beb9f33a5f16d2965f11b275e401f225c949d ) and at that time I\nchanged some variables to unsigned int.\n\nI believe that a more generic fix is to make sure NGROUPS_PER_BLOCK is\nunsigned.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b2fb3c65844452bb9e8b449d50863d1b36c5dc0",
      "tree": "2dee8421cd2b679e703b2ae8d7bdfafde7ef6d68",
      "parents": [
        "6c81c32f9616fd6f2795dceae2f70943cb4d8609"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:37:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:08 2008 -0800"
      },
      "message": "idle_regs() must be __cpuinit\n\nFix the following section mismatch with CONFIG_HOTPLUG\u003dn,\nCONFIG_HOTPLUG_CPU\u003dy:\n\nWARNING: vmlinux.o(.text+0x399a6): Section mismatch: reference to .init.text.5:idle_regs (between \u0027fork_idle\u0027 and \u0027get_task_mm\u0027)\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb38a996ebacefe4ce2274de901138505d9cc96b",
      "tree": "7a00d32dbbc9d32436c08d380b4339e2196753f0",
      "parents": [
        "15ae02baf025750cd79ef3929c28f7083a088bd2"
      ],
      "author": {
        "name": "Richard Knutsson",
        "email": "ricknu-0@student.ltu.se",
        "time": "Wed Feb 06 01:37:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:08 2008 -0800"
      },
      "message": "kernel/params.c: remove sparse-warning (different signedness)\n\nFixing:\n  CHECK   kernel/params.c\nkernel/params.c:329:41: warning: incorrect type in argument 8 (different signedness)\nkernel/params.c:329:41:    expected int *num\nkernel/params.c:329:41:    got unsigned int *\n\nSigned-off-by: Richard Knutsson \u003cricknu-0@student.ltu.se\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c6080f74c8d83a83a1e36bce803de15c0633898",
      "tree": "fd017cd3697ca30a169572018e88bf628983509b",
      "parents": [
        "bcf11cbeccd7d981d68567942ba6ec184890bc29"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Wed Feb 06 01:37:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:08 2008 -0800"
      },
      "message": "stopmachine: semaphore to mutex\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a669c2f16d478cb7f4452e5fb8d09320831f4a1",
      "tree": "b13f0aa0aebc51d1795203658053484b7c97b8cb",
      "parents": [
        "941d2380e979dfefb6c824452e9f42be3ef948ee"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Feb 06 01:37:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:07 2008 -0800"
      },
      "message": "Add arch_ptrace_stop\n\nThis adds support to allow asm/ptrace.h to define two new macros,\narch_ptrace_stop_needed and arch_ptrace_stop.  These control special\nmachine-specific actions to be done before a ptrace stop.  The new code\ncompiles away to nothing when the new macros are not defined.  This is the\ncase on all machines to begin with.\n\nOn ia64, these macros will be defined to solve the long-standing issue of\nptrace vs register backing store.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Petr Tesarik \u003cptesarik@suse.cz\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1e096129bff79ae551592539bef19bfb5c9efa1",
      "tree": "a9a2058040b8fcae937f2bfb97fbb50a0a5c103c",
      "parents": [
        "f2df3f65d0b4337cfb5b19eab3ee28b177427c49"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 06 01:37:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:07 2008 -0800"
      },
      "message": "relay: nopage\n\nConvert relay from nopage to fault.\nRemove redundant vma range checks.\nSwitch from OOM to SIGBUS if the resource is not available.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Tom Zanussi \u003czanussi@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cfe015aa424b3c003baba3841a60dd9b5ad319b",
      "tree": "5575e06efcf91018f860f2db43979e8e91aba1c3",
      "parents": [
        "774ed22c21ab95d582dfff38560f11cf290baeb4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Feb 06 01:37:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:06 2008 -0800"
      },
      "message": "get rid of NR_OPEN and introduce a sysctl_nr_open\n\nNR_OPEN (historically set to 1024*1024) actually forbids processes to open\nmore than 1024*1024 handles.\n\nUnfortunatly some production servers hit the not so \u0027ridiculously high\nvalue\u0027 of 1024*1024 file descriptors per process.\n\nChanging NR_OPEN is not considered safe because of vmalloc space potential\nexhaust.\n\nThis patch introduces a new sysctl (/proc/sys/fs/nr_open) wich defaults to\n1024*1024, so that admins can decide to change this limit if their workload\nneeds it.\n\n[akpm@linux-foundation.org: export it for sparc64]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a76fe8e50ee93a9d4a1badb1ec995852a6bcaf1",
      "tree": "57a6a1b8bdb101a1ac5fd54971bfe172de949da0",
      "parents": [
        "f10db6277dfd6dffb80b2182a256d35adb3134bc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Feb 06 01:37:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:04 2008 -0800"
      },
      "message": "do_wait: remove one \"else if\" branch\n\nMinor cleanup. We can remove one \"else if\" branch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eed4a2aba7ff6d8c40d3d55b81f80352765ffcee",
      "tree": "8cfeca1d26aa56ca83210cf3628399333e98c90e",
      "parents": [
        "b3242151906372f30f57feaa43b4cac96a23edb1"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 06 01:37:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:04 2008 -0800"
      },
      "message": "printk.c: use unsigned ints instead of longs for logbuf index\n\nStop using unsigned _longs_ for printk buffer indexes.  Log buffer is way\nsmaller than 2 gigabytes and unsigned ints will work too .  Indeed, they do\nwork nicely on all 32-bit platforms where longs and ints are the same.\n\nWith this patch, we have following size savings on amd64:\n\n   text    data     bss     dec     hex filename\n   5997     313   17736   24046    5dee 2.6.23.1.t64/kernel/printk.o\n   5858     313   17700   23871    5d3f 2.6.23.1.printk.t64/kernel/printk.o\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e2cb1018a8a583b83d56c80f46507da6f3f2b57",
      "tree": "b9cbe718649c8be6e2d54aedcf75244fbe56bddd",
      "parents": [
        "be6c28e62e3a304b74013afab029af2021e1f50d"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Feb 06 01:36:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:03 2008 -0800"
      },
      "message": "time: fix sysfs_show_{available,current}_clocksources() buffer overflow problem\n\nI found that there is a buffer overflow problem in the following code.\n\nVersion:\t2.6.24-rc2,\nFile:\t\tkernel/time/clocksource.c:417-432\n--------------------------------------------------------------------\nstatic ssize_t\nsysfs_show_available_clocksources(struct sys_device *dev, char *buf)\n{\n\tstruct clocksource *src;\n\tchar *curr \u003d buf;\n\n\tspin_lock_irq(\u0026clocksource_lock);\n\tlist_for_each_entry(src, \u0026clocksource_list, list) {\n\t\tcurr +\u003d sprintf(curr, \"%s \", src-\u003ename);\n\t}\n\tspin_unlock_irq(\u0026clocksource_lock);\n\n\tcurr +\u003d sprintf(curr, \"\\n\");\n\n\treturn curr - buf;\n}\n-----------------------------------------------------------------------\n\nsysfs_show_current_clocksources() also has the same problem though in practice\nthe size of current clocksource\u0027s name won\u0027t exceed PAGE_SIZE.\n\nI fix the bug by using snprintf according to the specification of the kernel\n(Version:2.6.24-rc2,File:Documentation/filesystems/sysfs.txt)\n\nFix sysfs_show_available_clocksources() and sysfs_show_current_clocksources()\nbuffer overflow problem with snprintf().\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c166f23cb56a76983ce860739d95c8296e57d6b3",
      "tree": "2160c0a36a673f6eae0996900787d4e9fe256a37",
      "parents": [
        "bb695170d8dff3f22682b6c19df64dc093f58c0a"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:36:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:02 2008 -0800"
      },
      "message": "kernel/notifier.c should #include \u003clinux/reboot.h\u003e\n\nEvery file should include the headers containing the prototypes for its global\nfunctions (in this case {,un}register_reboot_notifier()).\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "bb695170d8dff3f22682b6c19df64dc093f58c0a",
      "tree": "a78249958fe4c0906f5cbcd3501cc409b4f88841",
      "parents": [
        "f17d30a803e8434c4ef381bb5cfa1956ff0201f0"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:36:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:02 2008 -0800"
      },
      "message": "make srcu_readers_active() static\n\nMake the needlessly global srcu_readers_active() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f17d30a803e8434c4ef381bb5cfa1956ff0201f0",
      "tree": "42f71e13e01c0d142a30489031797d3d0ecf1ef9",
      "parents": [
        "a1c9eea9e56a7196c6891f6426b799c4598b38e2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:36:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:02 2008 -0800"
      },
      "message": "kernel/ptrace.c should #include \u003clinux/syscalls.h\u003e\n\nEvery file should include the headers containing the prototypes for its global\nfunctions (in this case sys_ptrace()).\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "a3b81113fb6658629f4ebaabf8dd3067cd341020",
      "tree": "c6823e84d410f18b110ce07726643d7dc841553d",
      "parents": [
        "0a5dcb51770be3cd0202d6b90a07996fb40130b6"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "rgetz@blackfin.uclinux.org",
        "time": "Wed Feb 06 01:36:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:01 2008 -0800"
      },
      "message": "remove support for un-needed _extratext section\n\nWhen passing a zero address to kallsyms_lookup(), the kernel thought it was\na valid kernel address, even if it is not.  This is because is_ksym_addr()\ncalled is_kernel_extratext() and checked against labels that don\u0027t exist on\nmany archs (which default as zero).  Since PPC was the only kernel which\ndefines _extra_text, (in 2005), and no longer needs it, this patch removes\n_extra_text support.\n\nFor some history (provided by Jon):\n http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019734.html\n http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019736.html\n http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019751.html\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jon Loeliger \u003cjdl@freescale.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9ae90ac4bdce769ddb27c2e24c3351a30c3daf8",
      "tree": "220f88576b5c83369892ce13cb180bab6cccba7a",
      "parents": [
        "06b8e878a9bc9301201cffe186eba99c4185f20a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Feb 06 01:36:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:00 2008 -0800"
      },
      "message": "use __set_task_state() for TRACED/STOPPED tasks\n\n1. It is much easier to grep for -\u003estate change if __set_task_state() is used\n   instead of the direct assignment.\n\n2. ptrace_stop() and handle_group_stop() use set_task_state() which adds the\n   unneeded mb() (btw even if we use mb() it is still possible that do_wait()\n   sees the new -\u003estate but not -\u003eexit_code, but this is ok).\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06b8e878a9bc9301201cffe186eba99c4185f20a",
      "tree": "857434ed559cdb001177e81283be6f0b5693a781",
      "parents": [
        "d9afa43532adf8a31b93c4c7601fda3f423d8972"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Wed Feb 06 01:36:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:00 2008 -0800"
      },
      "message": "taskstats scaled time cleanup\n\nThis moves the ability to scale cputime into generic code.  This allows us\nto fix the issue in kernel/timer.c (noticed by Balbir) where we could only\nadd an unscaled value to the scaled utime/stime.\n\nThis adds a cputime_to_scaled function.  As before, the POWERPC version\ndoes the scaling based on the last SPURR/PURR ratio calculated.  The\ngeneric and s390 (only other arch to implement asm/cputime.h) versions are\nboth NOPs.\n\nAlso moves the SPURR and PURR snapshots closer.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f011e2e2df3393c16b0fdc48e855e909b7e021ee",
      "tree": "1ad56011597c739336d7068c8182fd9cfdddad5b",
      "parents": [
        "d82b35186eaa816267f044bd70cc0acb3c7971a3"
      ],
      "author": {
        "name": "Mark Gross",
        "email": "mgross@linux.intel.com",
        "time": "Mon Feb 04 22:30:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:22 2008 -0800"
      },
      "message": "latency.c: use QoS infrastructure\n\nReplace latency.c use with pm_qos_params use.\n\nSigned-off-by: mark gross \u003cmgross@linux.intel.com\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d82b35186eaa816267f044bd70cc0acb3c7971a3",
      "tree": "e8de56c122fd8040086e974895afbb8299045c0f",
      "parents": [
        "4ef7229ffa93695e346d510b871452811509ea65"
      ],
      "author": {
        "name": "Mark Gross",
        "email": "mgross@linux.intel.com",
        "time": "Mon Feb 04 22:30:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:22 2008 -0800"
      },
      "message": "pm qos infrastructure and interface\n\nThe following patch is a generalization of the latency.c implementation done\nby Arjan last year.  It provides infrastructure for more than one parameter,\nand exposes a user mode interface for processes to register pm_qos\nexpectations of processes.\n\nThis interface provides a kernel and user mode interface for registering\nperformance expectations by drivers, subsystems and user space applications on\none of the parameters.\n\nCurrently we have {cpu_dma_latency, network_latency, network_throughput} as\nthe initial set of pm_qos parameters.\n\nThe infrastructure exposes multiple misc device nodes one per implemented\nparameter.  The set of parameters implement is defined by pm_qos_power_init()\nand pm_qos_params.h.  This is done because having the available parameters\nbeing runtime configurable or changeable from a driver was seen as too easy to\nabuse.\n\nFor each parameter a list of performance requirements is maintained along with\nan aggregated target value.  The aggregated target value is updated with\nchanges to the requirement list or elements of the list.  Typically the\naggregated target value is simply the max or min of the requirement values\nheld in the parameter list elements.\n\n\u003eFrom kernel mode the use of this interface is simple:\n\npm_qos_add_requirement(param_id, name, target_value):\n\n  Will insert a named element in the list for that identified PM_QOS\n  parameter with the target value.  Upon change to this list the new target is\n  recomputed and any registered notifiers are called only if the target value\n  is now different.\n\npm_qos_update_requirement(param_id, name, new_target_value):\n\n  Will search the list identified by the param_id for the named list element\n  and then update its target value, calling the notification tree if the\n  aggregated target is changed.  with that name is already registered.\n\npm_qos_remove_requirement(param_id, name):\n\n  Will search the identified list for the named element and remove it, after\n  removal it will update the aggregate target and call the notification tree\n  if the target was changed as a result of removing the named requirement.\n\n\u003eFrom user mode:\n\n  Only processes can register a pm_qos requirement.  To provide for\n  automatic cleanup for process the interface requires the process to register\n  its parameter requirements in the following way:\n\n  To register the default pm_qos target for the specific parameter, the\n  process must open one of /dev/[cpu_dma_latency, network_latency,\n  network_throughput]\n\n  As long as the device node is held open that process has a registered\n  requirement on the parameter.  The name of the requirement is\n  \"process_\u003cPID\u003e\" derived from the current-\u003epid from within the open system\n  call.\n\n  To change the requested target value the process needs to write a s32\n  value to the open device node.  This translates to a\n  pm_qos_update_requirement call.\n\n  To remove the user mode request for a target value simply close the device\n  node.\n\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix build again]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: mark gross \u003cmgross@linux.intel.com\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Adam Belay \u003cabelay@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ef7229ffa93695e346d510b871452811509ea65",
      "tree": "052adef3a8cc1e8d502525f3355e99d5e8d9dcda",
      "parents": [
        "47a460d5a307e639d6c9cdf9bb4857e2f5f3cb76"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 04 22:30:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:22 2008 -0800"
      },
      "message": "make kernel_shutdown_prepare() static\n\nkernel_shutdown_prepare() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47a460d5a307e639d6c9cdf9bb4857e2f5f3cb76",
      "tree": "afdb7f011316551978d301f4a7fcd79f347d8b33",
      "parents": [
        "cbed6c6e0f7a52859fd0207ef3ffcf4bfffdbf95"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 04 22:30:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:22 2008 -0800"
      },
      "message": "kernel/power/disk.c: make code static\n\nresume_file[] and create_image() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b7391de67da515c91f48aa371de77cb6cc5c07e",
      "tree": "22b9f5d9d1c36b374eb5765219aca3c7e1f23486",
      "parents": [
        "46c383cc4530ccc438cb325e92e11eb21dd3d4fc"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Feb 04 22:29:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "capabilities: introduce per-process capability bounding set\n\nThe capability bounding set is a set beyond which capabilities cannot grow.\n Currently cap_bset is per-system.  It can be manipulated through sysctl,\nbut only init can add capabilities.  Root can remove capabilities.  By\ndefault it includes all caps except CAP_SETPCAP.\n\nThis patch makes the bounding set per-process when file capabilities are\nenabled.  It is inherited at fork from parent.  Noone can add elements,\nCAP_SETPCAP is required to remove them.\n\nOne example use of this is to start a safer container.  For instance, until\ndevice namespaces or per-container device whitelists are introduced, it is\nbest to take CAP_MKNOD away from a container.\n\nThe bounding set will not affect pP and pE immediately.  It will only\naffect pP\u0027 and pE\u0027 after subsequent exec()s.  It also does not affect pI,\nand exec() does not constrain pI\u0027.  So to really start a shell with no way\nof regain CAP_MKNOD, you would do\n\n\tprctl(PR_CAPBSET_DROP, CAP_MKNOD);\n\tcap_t cap \u003d cap_get_proc();\n\tcap_value_t caparray[1];\n\tcaparray[0] \u003d CAP_MKNOD;\n\tcap_set_flag(cap, CAP_INHERITABLE, 1, caparray, CAP_DROP);\n\tcap_set_proc(cap);\n\tcap_free(cap);\n\nThe following test program will get and set the bounding\nset (but not pI).  For instance\n\n\t./bset get\n\t\t(lists capabilities in bset)\n\t./bset drop cap_net_raw\n\t\t(starts shell with new bset)\n\t\t(use capset, setuid binary, or binary with\n\t\tfile capabilities to try to increase caps)\n\n************************************************************\ncap_bound.c\n************************************************************\n #include \u003csys/prctl.h\u003e\n #include \u003clinux/capability.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n\n #ifndef PR_CAPBSET_READ\n #define PR_CAPBSET_READ 23\n #endif\n\n #ifndef PR_CAPBSET_DROP\n #define PR_CAPBSET_DROP 24\n #endif\n\nint usage(char *me)\n{\n\tprintf(\"Usage: %s get\\n\", me);\n\tprintf(\"       %s drop \u003ccapability\u003e\\n\", me);\n\treturn 1;\n}\n\n #define numcaps 32\nchar *captable[numcaps] \u003d {\n\t\"cap_chown\",\n\t\"cap_dac_override\",\n\t\"cap_dac_read_search\",\n\t\"cap_fowner\",\n\t\"cap_fsetid\",\n\t\"cap_kill\",\n\t\"cap_setgid\",\n\t\"cap_setuid\",\n\t\"cap_setpcap\",\n\t\"cap_linux_immutable\",\n\t\"cap_net_bind_service\",\n\t\"cap_net_broadcast\",\n\t\"cap_net_admin\",\n\t\"cap_net_raw\",\n\t\"cap_ipc_lock\",\n\t\"cap_ipc_owner\",\n\t\"cap_sys_module\",\n\t\"cap_sys_rawio\",\n\t\"cap_sys_chroot\",\n\t\"cap_sys_ptrace\",\n\t\"cap_sys_pacct\",\n\t\"cap_sys_admin\",\n\t\"cap_sys_boot\",\n\t\"cap_sys_nice\",\n\t\"cap_sys_resource\",\n\t\"cap_sys_time\",\n\t\"cap_sys_tty_config\",\n\t\"cap_mknod\",\n\t\"cap_lease\",\n\t\"cap_audit_write\",\n\t\"cap_audit_control\",\n\t\"cap_setfcap\"\n};\n\nint getbcap(void)\n{\n\tint comma\u003d0;\n\tunsigned long i;\n\tint ret;\n\n\tprintf(\"i know of %d capabilities\\n\", numcaps);\n\tprintf(\"capability bounding set:\");\n\tfor (i\u003d0; i\u003cnumcaps; i++) {\n\t\tret \u003d prctl(PR_CAPBSET_READ, i);\n\t\tif (ret \u003c 0)\n\t\t\tperror(\"prctl\");\n\t\telse if (ret\u003d\u003d1)\n\t\t\tprintf(\"%s%s\", (comma++) ? \", \" : \" \", captable[i]);\n\t}\n\tprintf(\"\\n\");\n\treturn 0;\n}\n\nint capdrop(char *str)\n{\n\tunsigned long i;\n\n\tint found\u003d0;\n\tfor (i\u003d0; i\u003cnumcaps; i++) {\n\t\tif (strcmp(captable[i], str) \u003d\u003d 0) {\n\t\t\tfound\u003d1;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!found)\n\t\treturn 1;\n\tif (prctl(PR_CAPBSET_DROP, i)) {\n\t\tperror(\"prctl\");\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\nint main(int argc, char *argv[])\n{\n\tif (argc\u003c2)\n\t\treturn usage(argv[0]);\n\tif (strcmp(argv[1], \"get\")\u003d\u003d0)\n\t\treturn getbcap();\n\tif (strcmp(argv[1], \"drop\")!\u003d0 || argc\u003c3)\n\t\treturn usage(argv[0]);\n\tif (capdrop(argv[2])) {\n\t\tprintf(\"unknown capability\\n\");\n\t\treturn 1;\n\t}\n\treturn execl(\"/bin/bash\", \"/bin/bash\", NULL);\n}\n************************************************************\n\n[serue@us.ibm.com: fix typo]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003ea\nSigned-off-by: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nTested-by: Jiri Slaby \u003cjirislaby@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": "e338d263a76af78fe8f38a72131188b58fceb591",
      "tree": "f3f046fc6fd66de43de7191830f0daf3bc4ec8eb",
      "parents": [
        "8f6936f4d29aa14e54a2470b954a2e1f96322988"
      ],
      "author": {
        "name": "Andrew Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Feb 04 22:29:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "Add 64-bit capability support to the kernel\n\nThe patch supports legacy (32-bit) capability userspace, and where possible\ntranslates 32-bit capabilities to/from userspace and the VFS to 64-bit\nkernel space capabilities.  If a capability set cannot be compressed into\n32-bits for consumption by user space, the system call fails, with -ERANGE.\n\nFWIW libcap-2.00 supports this change (and earlier capability formats)\n\n http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/\n\n[akpm@linux-foundation.org: coding-syle fixes]\n[akpm@linux-foundation.org: use get_task_comm()]\n[ezk@cs.sunysb.edu: build fix]\n[akpm@linux-foundation.org: do not initialise statics to 0 or NULL]\n[akpm@linux-foundation.org: unused var]\n[serue@us.ibm.com: export __cap_ symbols]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "195cf453d2c3d789cbe80e3735755f860c2fb222",
      "tree": "fad48a8167744b6c091c8ca499bc78b859af8957",
      "parents": [
        "3dfa5721f12c3d5a441448086bee156887daa961"
      ],
      "author": {
        "name": "Bron Gondwana",
        "email": "brong@fastmail.fm",
        "time": "Mon Feb 04 22:29:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "mm/page-writeback: highmem_is_dirtyable option\n\nAdd vm.highmem_is_dirtyable toggle\n\nA 32 bit machine with HIGHMEM64 enabled running DCC has an MMAPed file of\napproximately 2Gb size which contains a hash format that is written\nrandomly by the dbclean process.  On 2.6.16 this process took a few\nminutes.  With lowmem only accounting of dirty ratios, this takes about 12\nhours of 100% disk IO, all random writes.\n\nInclude a toggle in /proc/sys/vm/highmem_is_dirtyable which can be set to 1 to\nadd the highmem back to the total available memory count.\n\n[akpm@linux-foundation.org: Fix the CONFIG_DETECT_SOFTLOCKUP\u003dy build]\nSigned-off-by: Bron Gondwana \u003cbrong@fastmail.fm\u003e\nCc: Ethan Solomita \u003csolo@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e5419734c8719cbc01af959ad9c0844002c0df5",
      "tree": "a075dca3f719946689efa0245464855cbf2a20ce",
      "parents": [
        "9f8f2172537de7af0b0fbd33502d18d52b1339bc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Feb 04 22:29:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "add mm argument to pte/pmd/pud/pgd_free\n\n(with Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e)\n\nThe pgd/pud/pmd/pte page table allocation functions get a mm_struct pointer as\nfirst argument.  The free functions do not get the mm_struct argument.  This\nis 1) asymmetrical and 2) to do mm related page table allocations the mm\nargument is needed on the free function as well.\n\n[kamalesh@linux.vnet.ibm.com: i386 fix]\n[akpm@linux-foundation.org: coding-syle fixes]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f8f2172537de7af0b0fbd33502d18d52b1339bc",
      "tree": "273c86583ed0295059c5526d3bd6927520a20add",
      "parents": [
        "e2848a0efedef4dad52d1334d37f8719cd6268fd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:29:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "Page allocator: clean up pcp draining functions\n\n- Add comments explaing how drain_pages() works.\n\n- Eliminate useless functions\n\n- Rename drain_all_local_pages to drain_all_pages(). It does drain\n  all pages not only those of the local processor.\n\n- Eliminate useless interrupt off / on sequences. drain_pages()\n  disables interrupts on its own. The execution thread is\n  pinned to processor by the caller. So there is no need to\n  disable interrupts.\n\n- Put drain_all_pages() declaration in gfp.h and remove the\n  declarations from suspend.h and from mm/memory_hotplug.c\n\n- Make software suspend call drain_all_pages(). The draining\n  of processor local pages is may not the right approach if\n  software suspend wants to support SMP. If they call drain_all_pages\n  then we can make drain_pages() static.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d672e7ac79b5ec5cdc90e450823441e20464691",
      "tree": "66da3aa0bf7f7ac80376a93f17edbb2246b2df06",
      "parents": [
        "5e05ad7d4e3b11f935998882b5d9c3b257137f1b"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Feb 04 22:27:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "timerfd: new timerfd API\n\nThis is the new timerfd API as it is implemented by the following patch:\n\nint timerfd_create(int clockid, int flags);\nint timerfd_settime(int ufd, int flags,\n\t\t    const struct itimerspec *utmr,\n\t\t    struct itimerspec *otmr);\nint timerfd_gettime(int ufd, struct itimerspec *otmr);\n\nThe timerfd_create() API creates an un-programmed timerfd fd.  The \"clockid\"\nparameter can be either CLOCK_MONOTONIC or CLOCK_REALTIME.\n\nThe timerfd_settime() API give new settings by the timerfd fd, by optionally\nretrieving the previous expiration time (in case the \"otmr\" parameter is not\nNULL).\n\nThe time value specified in \"utmr\" is absolute, if the TFD_TIMER_ABSTIME bit\nis set in the \"flags\" parameter.  Otherwise it\u0027s a relative time.\n\nThe timerfd_gettime() API returns the next expiration time of the timer, or\n{0, 0} if the timerfd has not been set yet.\n\nLike the previous timerfd API implementation, read(2) and poll(2) are\nsupported (with the same interface).  Here\u0027s a simple test program I used to\nexercise the new timerfd APIs:\n\nhttp://www.xmailserver.org/timerfd-test2.c\n\n[akpm@linux-foundation.org: coding-style cleanups]\n[akpm@linux-foundation.org: fix ia64 build]\n[akpm@linux-foundation.org: fix m68k build]\n[akpm@linux-foundation.org: fix mips build]\n[akpm@linux-foundation.org: fix alpha, arm, blackfin, cris, m68k, s390, sparc and sparc64 builds]\n[heiko.carstens@de.ibm.com: fix s390]\n[akpm@linux-foundation.org: fix powerpc build]\n[akpm@linux-foundation.org: fix sparc64 more]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed5d2cac114202fe2978a9cbcab8f5032796d538",
      "tree": "aa9aaea1aa0945bd9159685d1b04897d105a90c9",
      "parents": [
        "f558b7e408026eb3c6afcd0e8fc1f7fe31195a6a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "exec: rework the group exit and fix the race with kill\n\nAs Roland pointed out, we have the very old problem with exec.  de_thread()\nsets SIGNAL_GROUP_EXIT, kills other threads, changes -\u003egroup_leader and then\nclears signal-\u003eflags.  All signals (even fatal ones) sent in this window\n(which is not too small) will be lost.\n\nWith this patch exec doesn\u0027t abuse SIGNAL_GROUP_EXIT.  signal_group_exit(),\nthe new helper, should be used to detect exit_group() or exec() in progress.\nIt can have more users, but this patch does only strictly necessary changes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.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": "f558b7e408026eb3c6afcd0e8fc1f7fe31195a6a",
      "tree": "3473617a87d54b4388c2336303075b1a54e30552",
      "parents": [
        "198466b41d11dd062fb26ee0376080458d7bfcaf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "remove handle_group_stop() in favor of do_signal_stop()\n\nEvery time we set SIGNAL_GROUP_EXIT or clear SIGNAL_STOP_DEQUEUED we also\nreset -\u003egroup_stop_count.\n\nThis means that the SIGNAL_GROUP_EXIT check in handle_group_stop() is not\nneeded, and do_signal_stop() should check SIGNAL_STOP_DEQUEUED only when\n-\u003egroup_stop_count \u003d\u003d 0. With these changes handle_group_stop() becomes the\nsubset of do_signal_stop(), we can kill it and use do_signal_stop() instead.\n\nAlso, a preparation for the next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.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": "198466b41d11dd062fb26ee0376080458d7bfcaf",
      "tree": "ccf725c9a05e13b983e4480fd218280d5e58b47e",
      "parents": [
        "bdff746a3915f109bd13730b6847e33e17e91ed3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "__group_complete_signal(): fix coredump with group stop race\n\nWhen __group_complete_signal() sees sig_kernel_coredump() signal, it starts\nthe group stop, but sets -\u003egroup_exit_task \u003d t in a hope that \"t\" will\nactually dequeue this signal and invoke do_coredump().  However, by the\ntime \"t\" enters get_signal_to_deliver() it is possible that the signal was\nblocked/ignored or we have another pending !SIG_KERNEL_COREDUMP_MASK signal\nwhich will be dequeued first.  This means the task could be stopped but not\nkilled.\n\nRemove this code from __group_complete_signal().  Note also this patch\nremoves the bogus signal_wake_up(t, 1).  This thread can\u0027t be\nSTOPPED/TRACED, note the corresponding check in wants_signal().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.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": "bdff746a3915f109bd13730b6847e33e17e91ed3",
      "tree": "bacc8edf83f06c4366cbb43fa21213e0a346a6f2",
      "parents": [
        "59714d65dfbc86d5cb93adc5bac57a921cc2fa84"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Feb 04 22:27:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "clone: prepare to recycle CLONE_STOPPED\n\nUlrich says that we never used this clone flags and that nothing should be\nusing it.\n\nAs we\u0027re down to only a single bit left in clone\u0027s flags argument, let\u0027s add a\nwarning to check that no userspace is actually using it.  Hopefully we will\nbe able to recycle it.\n\nRoland said:\n\n  CLONE_STOPPED was previously used by some NTPL versions when under\n  thread_db (i.e.  only when being actively debugged by gdb), but not for a\n  long time now, and it never worked reliably when it was used.  Removing it\n  seems fine to me.\n\n[akpm@linux-foundation.org: it looks like CLONE_DETACHED is being used]\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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"
    }
  ],
  "next": "f5bb3a5e9dcdb8435471562b6cada89525cf4df1"
}
