)]}'
{
  "log": [
    {
      "commit": "79a6cdeb7eb54e3d2d4bb9fc5f0231b057882a87",
      "tree": "2a80342946cf206002ce5dcf32f097320f64fdd1",
      "parents": [
        "c9d221f86e43d9fb16260fe18a8cd6767f36c8a5"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed May 26 14:43:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "cpuhotplug: do not need cpu_hotplug_begin() when CONFIG_HOTPLUG_CPU\u003dn\n\nSince when CONFIG_HOTPLUG_CPU\u003dn, get_online_cpus() do nothing, so we don\u0027t\nneed cpu_hotplug_begin() either.\n\nThis patch moves cpu_hotplug_begin()/cpu_hotplug_done() into the code\nblock of CONFIG_HOTPLUG_CPU\u003dy.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80b5184cc537718122e036afe7e62d202b70d077",
      "tree": "d4e2b400f0e951156d64d546fd563fa5a8ab02d3",
      "parents": [
        "ad84bb5b98bf81deae97e3bcd814675d6b4e6f72"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "kernel/: convert cpu notifier to return encapsulate errno value\n\nBy the previous modification, the cpu notifier can return encapsulate\nerrno value.  This converts the cpu notifiers for kernel/*.c\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@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": "e6bde73b07edeb703d4c89c1daabc09c303de11f",
      "tree": "9b60a3fc2ce002b26e46611357cb5529795e7ac5",
      "parents": [
        "e9fb7631ebcdc9467cbb736337546a42f7b7f28e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "cpu-hotplug: return better errno on cpu hotplug failure\n\nCurrently, onlining or offlining a CPU failure by one of the cpu notifiers\nerror always cause -EINVAL error.  (i.e.  writing 0 or 1 to\n/sys/devices/system/cpu/cpuX/online gets EINVAL)\n\nTo get better error reporting rather than always getting -EINVAL, This\nchanges cpu_notify() to return -errno value with notifier_to_errno() and\nfix the callers.  Now that cpu notifiers can return encapsulate errno\nvalue.\n\nCurrently, all cpu hotplug notifiers return NOTIFY_OK, NOTIFY_BAD, or\nNOTIFY_DONE.  So cpu_notify() can returns 0 or -EPERM with this change for\nnow.\n\n(notifier_to_errno(NOTIFY_OK) \u003d\u003d 0, notifier_to_errno(NOTIFY_DONE) \u003d\u003d 0,\nnotifier_to_errno(NOTIFY_BAD) \u003d\u003d -EPERM)\n\nForthcoming patches convert several cpu notifiers to return encapsulate\nerrno value with notifier_from_errno().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.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": "e9fb7631ebcdc9467cbb736337546a42f7b7f28e",
      "tree": "1887c2a8dc858d966c3b0bd63d9026908e5eb572",
      "parents": [
        "36e15263aa5dcf3b72f1f88437e69497782b7ab8"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "cpu-hotplug: introduce cpu_notify(), __cpu_notify(), cpu_notify_nofail()\n\nNo functional change.  These are just wrappers of\nraw_cpu_notifier_call_chain.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.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": "b3ac022cb9dc5883505a88b159d1b240ad1ef405",
      "tree": "bffa035303cbe3c5bde048ac3d3154fb57059e2d",
      "parents": [
        "dd98acf74762764fbc4382a1d9a244f11a2658cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc: turn signal_struct-\u003ecount into \"int nr_threads\"\n\nNo functional changes, just s/atomic_t count/int nr_threads/.\n\nWith the recent changes this counter has a single user, get_nr_threads()\nAnd, none of its callers need the really accurate number of threads, not\nto mention each caller obviously races with fork/exit.  It is only used to\nreport this value to the user-space, except first_tid() uses it to avoid\nthe unnecessary while_each_thread() loop in the unlikely case.\n\nIt is a bit sad we need a word in struct signal_struct for this, perhaps\nwe can change get_nr_threads() to approximate the number of threads using\nsignal-\u003elive and kill -\u003enr_threads later.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5089a9768041206c76fac299ccd82a528c24c254",
      "tree": "88c7951ab137bc04db3ca02ef8bfeef2536472e2",
      "parents": [
        "7e49827cc937a742ae02078b483e3eb78f791a2a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc_sched_show_task(): use get_nr_threads()\n\nTrivial, use get_nr_threads() helper to read signal-\u003ecount which we are\ngoing to change.\n\nLike other callers, proc_sched_show_task() doesn\u0027t need the exactly\nprecise nr_threads.\n\nDavid said:\n\n: Note that get_nr_threads() isn\u0027t completely equivalent (it can return 0\n: where proc_sched_show_task() will display a 1).  But I don\u0027t think this\n: should be a problem.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\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": "6e1be45aa6ba6a36c0312f65ecf311135c73001d",
      "tree": "3ea540e0ee249259e40e26c38215981b466075ad",
      "parents": [
        "97101eb41d0d3c97543878ce40e0b8a8b2747ed7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "check_unshare_flags: kill the bogus CLONE_SIGHAND/sig-\u003ecount check\n\ncheck_unshare_flags(CLONE_SIGHAND) adds CLONE_THREAD to *flags_ptr if the\ntask is multithreaded to ensure unshare_thread() will fail.\n\nNot only this is a bit strange way to return the error, this is absolutely\nmeaningless.  If signal-\u003ecount \u003e 1 then sighand-\u003ecount must be also \u003e 1,\nand unshare_sighand() will fail anyway.\n\nIn fact, all CLONE_THREAD/SIGHAND/VM checks inside sys_unshare() do not\nlook right.  Fortunately this code doesn\u0027t really work anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "97101eb41d0d3c97543878ce40e0b8a8b2747ed7",
      "tree": "d33299c8d4787d3b578ea432fdaceb965a2acd97",
      "parents": [
        "a705be6b5e8b05f2ae51536ec709de921960326c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: move taskstats_tgid_free() from __exit_signal() to free_signal_struct()\n\nMove taskstats_tgid_free() from __exit_signal() to free_signal_struct().\n\nThis way signal-\u003estats never points to nowhere and we can read -\u003estats\nlockless.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "a705be6b5e8b05f2ae51536ec709de921960326c",
      "tree": "a4d71651807dabe2dc48bd36cf2e954d7ef967a8",
      "parents": [
        "d40e48e02f3785b9342ee4eb3d7cc9f12981b7f5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "kill the obsolete thread_group_cputime_free() helper\n\nKill the empty thread_group_cputime_free() helper.  It was needed to free\nthe per-cpu data which we no longer have.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "d40e48e02f3785b9342ee4eb3d7cc9f12981b7f5",
      "tree": "05f900ae17f4727c0e8b8c2c84d41b1cee7c13b0",
      "parents": [
        "b7b8ff6373d4b910af081f76888395e6df53249d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: __exit_signal: use thread_group_leader() consistently\n\nCleanup:\n\n- Add the boolean, group_dead \u003d thread_group_leader(), for clarity.\n\n- Do not test/set sig \u003d\u003d NULL to detect the all-dead case, use this\n  boolean.\n\n- Pass this boolen to __unhash_process() and use it instead of another\n  thread_group_leader() call which needs -\u003egroup_leader.\n\n  This can be considered as microoptimization, but hopefully this also\n  allows us do do other cleanups later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "b7b8ff6373d4b910af081f76888395e6df53249d",
      "tree": "128a1b2cf026fb8b9791eaefb6f79f872999a5c6",
      "parents": [
        "4ada856fb0ee62f6fe3aac3de726deac0640d929"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "signals: kill the awful task_rq_unlock_wait() hack\n\nNow that task-\u003esignal can\u0027t go away we can revert the horrible hack added\nby ad474caca3e2a0550b7ce0706527ad5ab389a4d4 (\"fix for\naccount_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under\nrq-\u003elock\").\n\nAnd we can do more cleanups sched_stats.h/posix-cpu-timers.c later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\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": "4ada856fb0ee62f6fe3aac3de726deac0640d929",
      "tree": "8dd3efbc19f6e1f1dac2ff7afdcd9658fb08b814",
      "parents": [
        "ea6d290ca34c4fd91b7348338c0cc7bdeff94a35"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "signals: clear signal-\u003etty when the last thread exits\n\nWhen the last thread exits signal-\u003etty is freed, but the pointer is not\ncleared and points to nowhere.\n\nThis is OK.  Nobody should use signal-\u003etty lockless, and it is no longer\npossible to take -\u003esiglock.  However this looks wrong even if correct, and\nthe nice OOPS is better than subtle and hard to find bugs.\n\nChange __exit_signal() to clear signal-\u003etty under -\u003esiglock.\n\nNote: __exit_signal() needs more cleanups.  It should not check \"sig !\u003d\nNULL\" to detect the all-dead case and we have the same issues with\nsignal-\u003estats.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\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": "ea6d290ca34c4fd91b7348338c0cc7bdeff94a35",
      "tree": "6e9bd367650d9233c5b6cf1059845f17cb1bc460",
      "parents": [
        "4dec2a91fd7e8815d730afbfdcf085cbf53433ac"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "signals: make task_struct-\u003esignal immutable/refcountable\n\nWe have a lot of problems with accessing task_struct-\u003esignal, it can\n\"disappear\" at any moment.  Even current can\u0027t use its -\u003esignal safely\nafter exit_notify().  -\u003esiglock helps, but it is not convenient, not\nalways possible, and sometimes it makes sense to use task-\u003esignal even\nafter this task has already dead.\n\nThis patch adds the reference counter, sigcnt, into signal_struct.  This\nreference is owned by task_struct and it is dropped in\n__put_task_struct().  Perhaps it makes sense to export\nget/put_signal_struct() later, but currently I don\u0027t see the immediate\nreason.\n\nRename __cleanup_signal() to free_signal_struct() and unexport it.  With\nthe previous changes it does nothing except kmem_cache_free().\n\nChange __exit_signal() to not clear/free -\u003esignal, it will be freed when\nthe last reference to any thread in the thread group goes away.\n\nNote:\n\t- when the last thead exits signal-\u003etty can point to nowhere, see\n\t  the next patch.\n\n\t- with or without this patch signal_struct-\u003ecount should go away,\n\t  or at least it should be \"int nr_threads\" for fs/proc. This will\n\t  be addressed later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\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": "4dec2a91fd7e8815d730afbfdcf085cbf53433ac",
      "tree": "cd33cc793abf532d4ca212d09c1e8d3154a8b530",
      "parents": [
        "ffdf91856c812646aa276711fa7e3ad80b00764a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "fork/exit: move tty_kref_put() outside of __cleanup_signal()\n\ntty_kref_put() has two callsites in copy_process() paths,\n\n\t1. if copy_process() suceeds it is called before we copy\n\t   signal-\u003etty from parent\n\n\t2. otherwise it is called from __cleanup_signal() under\n\t   bad_fork_cleanup_signal: label\n\nIn both cases tty_kref_put() is not right and unneeded because we don\u0027t\nhave the balancing tty_kref_get().  Fortunately, this is harmless because\nthis can only happen without CLONE_THREAD, and in this case signal-\u003etty\nmust be NULL.\n\nRemove tty_kref_put() from copy_process() and __cleanup_signal(), and\nchange another caller of __cleanup_signal(), __exit_signal(), to call\ntty_kref_put() by hand.\n\nI hope this change makes sense by itself, but it is also needed to make\n-\u003esignal refcountable.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Alan Cox \u003calan@linux.intel.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d30fda355188272430d3865db2ff9e24b4135ae3",
      "tree": "a763bd24dac66b8d287304bd1cabab859ddf9ae1",
      "parents": [
        "4a5999429739844367d0f77a65efdd7db8202779"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "posix-cpu-timers: avoid \"task-\u003esignal !\u003d NULL\" checks\n\nPreparation to make task-\u003esignal immutable, no functional changes.\n\nposix-cpu-timers.c checks task-\u003esignal !\u003d NULL to ensure this task is\nalive and didn\u0027t pass __exit_signal().  This is correct but we are going\nto change the lifetime rules for -\u003esignal and never reset this pointer.\n\nChange the code to check -\u003esighand instead, it doesn\u0027t matter which\npointer we check under tasklist, they both are cleared simultaneously.\n\nAs Roland pointed out, some of these changes are not strictly needed and\nprobably it makes sense to revert them later, when -\u003esignal will be pinned\nto task_struct.  But this patch tries to ensure the subsequent changes in\nfork/exit can\u0027t make any visible impact on posix cpu timers.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\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": "4a5999429739844367d0f77a65efdd7db8202779",
      "tree": "fff1158fa43466b30294a7db2c4629ca14973770",
      "parents": [
        "d344193a05da89c97e965da2c5cbf687d7385eae"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: avoid sig-\u003ecount in __exit_signal() to detect the group-dead case\n\nChange __exit_signal() to check thread_group_leader() instead of\natomic_dec_and_test(\u0026sig-\u003ecount).  This must be equivalent, the group\nleader must be released only after all other threads have exited and\npassed __exit_signal().\n\nHenceforth sig-\u003ecount is not actually used, except in fs/proc for\nget_nr_threads/etc.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "d344193a05da89c97e965da2c5cbf687d7385eae",
      "tree": "6267b68c31c4547f1749acd35d2a5bfaff919839",
      "parents": [
        "09faef11df8c559a23e2405d123cb2683733a79a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: avoid sig-\u003ecount in de_thread/__exit_signal synchronization\n\nde_thread() and __exit_signal() use signal_struct-\u003ecount/notify_count for\nsynchronization.  We can simplify the code and use -\u003enotify_count only.\nInstead of comparing these two counters, we can change de_thread() to set\n-\u003enotify_count \u003d nr_of_sub_threads, then change __exit_signal() to\ndec-and-test this counter and notify group_exit_task.\n\nNote that __exit_signal() checks \"notify_count \u003e 0\" just for symmetry with\nexit_notify(), we could just check it is !\u003d 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "09faef11df8c559a23e2405d123cb2683733a79a",
      "tree": "db8e4c94677be8afebde938c2e6b7ba07b6b6db0",
      "parents": [
        "9c3391684415c9dca239130d9e433a60a4edf04b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: change zap_other_threads() to count sub-threads\n\nChange zap_other_threads() to return the number of other sub-threads found\non -\u003ethread_group list.\n\nOther changes are cosmetic:\n\n\t- change the code to use while_each_thread() helper\n\n\t- remove the obsolete comment about SIGKILL/SIGSTOP\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "9c3391684415c9dca239130d9e433a60a4edf04b",
      "tree": "a8019b964c625cfeeda0e9d85bafa48991546212",
      "parents": [
        "269b005a28e124a341df4adef2c3661cf7371fcc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "exit: exit_notify() can trust signal-\u003enotify_count \u003c 0\n\nsignal_struct-\u003ecount in its current form must die.\n\n- it has no reasons to be atomic_t\n\n- it looks like a reference counter, but it is not\n\n- otoh, we really need to make task-\u003esignal refcountable, just look at\n  the extremely ugly task_rq_unlock_wait() called from __exit_signals().\n\n- we should change the lifetime rules for task-\u003esignal, it should be\n  pinned to task_struct.  We have a lot of code which can be simplified\n  after that.\n\n- it is not needed!  while the code is correct, any usage of this\n  counter is artificial, except fs/proc uses it correctly to show the\n  number of threads.\n\nThis series removes the usage of sig-\u003ecount from exit pathes.\n\nThis patch:\n\nNow that Veaceslav changed copy_signal() to use zalloc(), exit_notify()\ncan just check notify_count \u003c 0 to ensure the execing sub-threads needs\nthe notification from us.  No need to do other checks, notify_count !\u003d 0\nmust always mean -\u003egroup_exit_task !\u003d NULL is waiting for us.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "04b1c384fbc4e0209e5c1affb67050886376d44b",
      "tree": "19bc8690113dd6ded88d465a0777cb8bf7e33262",
      "parents": [
        "d47419cd967a4f032a194148a7b08afad32faded"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "call_usermodehelper: UMH_WAIT_EXEC ignores kernel_thread() failure\n\nUMH_WAIT_EXEC should report the error if kernel_thread() fails, like\nUMH_WAIT_PROC does.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d47419cd967a4f032a194148a7b08afad32faded",
      "tree": "b330b3adbaf1b2528b663322adff11a2761cb4b4",
      "parents": [
        "7d64224217b53b23243fd2aa428001486f2a5da5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "call_usermodehelper: simplify/fix UMH_NO_WAIT case\n\n__call_usermodehelper(UMH_NO_WAIT) has 2 problems:\n\n\t- if kernel_thread() fails, call_usermodehelper_freeinfo()\n\t  is not called.\n\n\t- for unknown reason UMH_NO_WAIT has UMH_WAIT_PROC logic,\n\t  we spawn yet another thread which waits until the user\n\t  mode application exits.\n\nChange the UMH_NO_WAIT code to use ____call_usermodehelper() instead of\nwait_for_helper(), and do call_usermodehelper_freeinfo() unconditionally.\nWe can rely on CLONE_VFORK, do_fork(CLONE_VFORK) until the child exits or\nexecs.\n\nWith or without this patch UMH_NO_WAIT does not report the error if\nkernel_thread() fails, this is correct since the caller doesn\u0027t wait for\nresult.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d64224217b53b23243fd2aa428001486f2a5da5",
      "tree": "23219e8d6d81e891fe2571e10be6feab7f81cd49",
      "parents": [
        "363da4022c2753bf4b4b54a1bb9e4527fdcb9d5d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "wait_for_helper: SIGCHLD from user-space can lead to use-after-free\n\n1. wait_for_helper() calls allow_signal(SIGCHLD) to ensure the child\n   can\u0027t autoreap itself.\n\n   However, this means that a spurious SIGCHILD from user-space can\n   set TIF_SIGPENDING and:\n\n   \t- kernel_thread() or sys_wait4() can fail due to signal_pending()\n\n   \t- worse, wait4() can fail before ____call_usermodehelper() execs\n   \t  or exits. In this case the caller may kfree(subprocess_info)\n   \t  while the child still uses this memory.\n\n   Change the code to use SIG_DFL instead of magic \"(void __user *)2\"\n   set by allow_signal(). This means that SIGCHLD won\u0027t be delivered,\n   yet the child won\u0027t autoreap itsefl.\n\n   The problem is minor, only root can send a signal to this kthread.\n\n2. If sys_wait4(\u0026ret) fails it doesn\u0027t populate \"ret\", in this case\n   wait_for_helper() reports a random value from uninitialized var.\n\n   With this patch sys_wait4() should never fail, but still it makes\n   sense to initialize ret \u003d -ECHILD so that the caller can notice\n   the problem.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "363da4022c2753bf4b4b54a1bb9e4527fdcb9d5d",
      "tree": "103922ef0f185daebf5a3e8029663ab78eaed363",
      "parents": [
        "c70a626d3eba373514c72287c93588b6974a0059"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "call_usermodehelper: no need to unblock signals\n\n____call_usermodehelper() correctly calls flush_signal_handlers() to set\nSIG_DFL, but sigemptyset(-\u003eblocked) and recalc_sigpending() are not\nneeded.\n\nThis kthread was forked by workqueue thread, all signals must be unblocked\nand ignored, no pending signal is possible.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c70a626d3eba373514c72287c93588b6974a0059",
      "tree": "c23b890cbbeb824e52e1eaee6812bc88496a246d",
      "parents": [
        "685bfd2c48bb3284d31e73ff3151c957d76deda9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "umh: creds: kill subprocess_info-\u003ecred logic\n\nNow that nobody ever changes subprocess_info-\u003ecred we can kill this member\nand related code.  ____call_usermodehelper() always runs in the context of\nfreshly forked kernel thread, it has the proper -\u003ecred copied from its\nparent kthread, keventd.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "685bfd2c48bb3284d31e73ff3151c957d76deda9",
      "tree": "177210787515f48c0eaad5216bd012f4a2fb2149",
      "parents": [
        "898b374af6f71041bd3bceebe257e564f3f1d458"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "umh: creds: convert call_usermodehelper_keys() to use subprocess_info-\u003einit()\n\ncall_usermodehelper_keys() uses call_usermodehelper_setkeys() to change\nsubprocess_info-\u003ecred in advance.  Now that we have info-\u003einit() we can\nchange this code to set tgcred-\u003esession_keyring in context of execing\nkernel thread.\n\nNote: since currently call_usermodehelper_keys() is never called with\nUMH_NO_WAIT, call_usermodehelper_keys()-\u003ekey_get() and umh_keys_cleanup()\nare not really needed, we could rely on install_session_keyring_to_cred()\nwhich does key_get() on success.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "898b374af6f71041bd3bceebe257e564f3f1d458",
      "tree": "b1be6fd3cca69becfc75787eab906338f363d3cd",
      "parents": [
        "a06a4dc3a08201ff6a8a958f935b3cbf7744115f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed May 26 14:42:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "exec: replace call_usermodehelper_pipe with use of umh init function and resolve limit\n\nThe first patch in this series introduced an init function to the\ncall_usermodehelper api so that processes could be customized by caller.\nThis patch takes advantage of that fact, by customizing the helper in\ndo_coredump to create the pipe and set its core limit to one (for our\nrecusrsion check).  This lets us clean up the previous uglyness in the\nusermodehelper internals and factor call_usermodehelper out entirely.\nWhile I\u0027m at it, we can also modify the helper setup to look for a core\nlimit value of 1 rather than zero for our recursion check\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a06a4dc3a08201ff6a8a958f935b3cbf7744115f",
      "tree": "b338edde5edb31f51e0b7eb86e6c4ce8063c703f",
      "parents": [
        "065add3941bdca54fe04ed3471a96bce9af88793"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed May 26 14:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "kmod: add init function to usermodehelper\n\nAbout 6 months ago, I made a set of changes to how the core-dump-to-a-pipe\nfeature in the kernel works.  We had reports of several races, including\nsome reports of apps bypassing our recursion check so that a process that\nwas forked as part of a core_pattern setup could infinitely crash and\nrefork until the system crashed.\n\nWe fixed those by improving our recursion checks.  The new check basically\nrefuses to fork a process if its core limit is zero, which works well.\n\nUnfortunately, I\u0027ve been getting grief from maintainer of user space\nprograms that are inserted as the forked process of core_pattern.  They\ncontend that in order for their programs (such as abrt and apport) to\nwork, all the running processes in a system must have their core limits\nset to a non-zero value, to which I say \u0027yes\u0027.  I did this by design, and\nthink thats the right way to do things.\n\nBut I\u0027ve been asked to ease this burden on user space enough times that I\nthought I would take a look at it.  The first suggestion was to make the\nrecursion check fail on a non-zero \u0027special\u0027 number, like one.  That way\nthe core collector process could set its core size ulimit to 1, and enable\nthe kernel\u0027s recursion detection.  This isn\u0027t a bad idea on the surface,\nbut I don\u0027t like it since its opt-in, in that if a program like abrt or\napport has a bug and fails to set such a core limit, we\u0027re left with a\nrecursively crashing system again.\n\nSo I\u0027ve come up with this.  What I\u0027ve done is modify the\ncall_usermodehelper api such that an extra parameter is added, a function\npointer which will be called by the user helper task, after it forks, but\nbefore it exec\u0027s the required process.  This will give the caller the\nopportunity to get a call back in the processes context, allowing it to do\nwhatever it needs to to the process in the kernel prior to exec-ing the\nuser space code.  In the case of do_coredump, this callback is ues to set\nthe core ulimit of the helper process to 1.  This elimnates the opt-in\nproblem that I had above, as it allows the ulimit for core sizes to be set\nto the value of 1, which is what the recursion check looks for in\ndo_coredump.\n\nThis patch:\n\nCreate new function call_usermodehelper_fns() and allow it to assign both\nan init and cleanup function, as we\u0027ll as arbitrary data.\n\nThe init function is called from the context of the forked process and\nallows for customization of the helper process prior to calling exec.  Its\nreturn code gates the continuation of the process, or causes its exit.\nAlso add an arbitrary data pointer to the subprocess_info struct allowing\nfor data to be passed from the caller to the new process, and the\nsubsequent cleanup process\n\nAlso, use this patch to cleanup the cleanup function.  It currently takes\nan argp and envp pointer for freeing, which is ugly.  Lets instead just\nmake the subprocess_info structure public, and pass that to the cleanup\nand init routines\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "065add3941bdca54fe04ed3471a96bce9af88793",
      "tree": "0c3505a04bb1b54926c527644c0ee2f57680c250",
      "parents": [
        "e0129ef91ed758c06b6557c36124acfb2e1c7305"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:42:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "signals: check_kill_permission(): don\u0027t check creds if same_thread_group()\n\nAndrew Tridgell reports that aio_read(SIGEV_SIGNAL) can fail if the\nnotification from the helper thread races with setresuid(), see\nhttp://samba.org/~tridge/junkcode/aio_uid.c\n\nThis happens because check_kill_permission() doesn\u0027t permit sending a\nsignal to the task with the different cred-\u003exids.  But there is not any\nsecurity reason to check -\u003ecred\u0027s when the task sends a signal (private or\ngroup-wide) to its sub-thread.  Whatever we do, any thread can bypass all\nsecurity checks and send SIGKILL to all threads, or it can block a signal\nSIG and do kill(gettid(), SIG) to deliver this signal to another\nsub-thread.  Not to mention that CLONE_THREAD implies CLONE_VM.\n\nChange check_kill_permission() to avoid the credentials check when the\nsender and the target are from the same thread group.\n\nAlso, move \"cred \u003d current_cred()\" down to avoid calling get_current()\ntwice.\n\nNote: David Howells pointed out we could relax this even more, the\nCLONE_SIGHAND (without CLONE_THREAD) case probably does not need\nthese checks too.\n\nRoland said:\n: The glibc (libpthread) that does set*id across threads has\n: been in use for a while (2.3.4?), probably in distro\u0027s using kernels as old\n: or older than any active -stable streams.  In the race in question, this\n: kernel bug is breaking valid POSIX application expectations.\n\nReported-by: Andrew Tridgell \u003ctridge@samba.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\nCc: Jakub Jelinek \u003cjakub@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\nCc: \u003cstable@kernel.org\u003e\t\t[all kernel versions]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0129ef91ed758c06b6557c36124acfb2e1c7305",
      "tree": "e47392371ed106f2241d18ac6339bedd6c699c9b",
      "parents": [
        "9c1a125921d146f22cf28ff366ff69fd602a0e9b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:42:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child-\u003emm\n\nNow that Mike Frysinger unified the FDPIC ptrace code, we can fix the\nunsafe usage of child-\u003emm in ptrace_request(PTRACE_GETFDPIC).\n\nWe have the reference to task_struct, and ptrace_check_attach() verified\nthe tracee is stopped.  But nothing can protect from SIGKILL after that,\nwe must not assume child-\u003emm !\u003d NULL.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c1a125921d146f22cf28ff366ff69fd602a0e9b",
      "tree": "37df1b2ae74c23371de7e8b46427fc0a16727cdb",
      "parents": [
        "0ac0c0d0f837c499afd02a802f9cf52d3027fa3b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed May 26 14:42:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "ptrace: unify FDPIC implementations\n\nThe Blackfin/FRV/SuperH guys all have the same exact FDPIC ptrace code in\ntheir arch handlers (since they were probably copied \u0026 pasted).  Since\nthese ptrace interfaces are an arch independent aspect of the FDPIC code,\nunify them in the common ptrace code so new FDPIC ports don\u0027t need to copy\nand paste this fundamental stuff yet again.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ac0c0d0f837c499afd02a802f9cf52d3027fa3b",
      "tree": "c20a7306d4b727722556af1aa5565855686aee07",
      "parents": [
        "6adef3ebe570bcde67fd6c16101451ddde5712b5"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Wed May 26 14:42:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "cpusets: randomize node rotor used in cpuset_mem_spread_node()\n\nSome workloads that create a large number of small files tend to assign\ntoo many pages to node 0 (multi-node systems).  Part of the reason is that\nthe rotor (in cpuset_mem_spread_node()) used to assign nodes starts at\nnode 0 for newly created tasks.\n\nThis patch changes the rotor to be initialized to a random node number of\nthe cpuset.\n\n[akpm@linux-foundation.org: fix layout]\n[Lee.Schermerhorn@hp.com: Define stub numa_random() for !NUMA configuration]\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@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": "6adef3ebe570bcde67fd6c16101451ddde5712b5",
      "tree": "0f60e2a4d01850ae33aee6cefc7a59845ede89a0",
      "parents": [
        "2c488db27b614816024e7994117f599337de0f34"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Wed May 26 14:42:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "cpusets: new round-robin rotor for SLAB allocations\n\nWe have observed several workloads running on multi-node systems where\nmemory is assigned unevenly across the nodes in the system.  There are\nnumerous reasons for this but one is the round-robin rotor in\ncpuset_mem_spread_node().\n\nFor example, a simple test that writes a multi-page file will allocate\npages on nodes 0 2 4 6 ...  Odd nodes are skipped.  (Sometimes it\nallocates on odd nodes \u0026 skips even nodes).\n\nAn example is shown below.  The program \"lfile\" writes a file consisting\nof 10 pages.  The program then mmaps the file \u0026 uses get_mempolicy(...,\nMPOL_F_NODE) to determine the nodes where the file pages were allocated.\nThe output is shown below:\n\n\t# ./lfile\n\t allocated on nodes: 2 4 6 0 1 2 6 0 2\n\nThere is a single rotor that is used for allocating both file pages \u0026 slab\npages.  Writing the file allocates both a data page \u0026 a slab page\n(buffer_head).  This advances the RR rotor 2 nodes for each page\nallocated.\n\nA quick confirmation seems to confirm this is the cause of the uneven\nallocation:\n\n\t# echo 0 \u003e/dev/cpuset/memory_spread_slab\n\t# ./lfile\n\t allocated on nodes: 6 7 8 9 0 1 2 3 4 5\n\nThis patch introduces a second rotor that is used for slab allocations.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@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": "907860ed381a31b0102f362df67c1c5cae6ef050",
      "tree": "4f47a6fe898b1f45da505fc0c27d98e66d42aa46",
      "parents": [
        "ac39cf8cb86c45eeac6a592ce0d58f9021a97235"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed May 26 14:42:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "cgroups: make cftype.unregister_event() void-returning\n\nSince we are unable to handle an error returned by\ncftype.unregister_event() properly, let\u0027s make the callback\nvoid-returning.\n\nmem_cgroup_unregister_event() has been rewritten to be a \"never fail\"\nfunction.  On mem_cgroup_usage_register_event() we save old buffer for\nthresholds array and reuse it in mem_cgroup_usage_unregister_event() to\navoid allocation.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.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": "b1cdc4670b9508fcd47a15fbd12f70d269880b37",
      "tree": "fea9e2650170886d539488f8b1e064f6ca60ad36",
      "parents": [
        "ce7d0226198aac42ed311dd2783232adc16b296d",
        "f925b1303e0672effc78547353bd2ddfe11f5b5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:59:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:59:51 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (63 commits)\n  drivers/net/usb/asix.c: Fix pointer cast.\n  be2net: Bug fix to avoid disabling bottom half during firmware upgrade.\n  proc_dointvec: write a single value\n  hso: add support for new products\n  Phonet: fix potential use-after-free in pep_sock_close()\n  ath9k: remove VEOL support for ad-hoc\n  ath9k: change beacon allocation to prefer the first beacon slot\n  sock.h: fix kernel-doc warning\n  cls_cgroup: Fix build error when built-in\n  macvlan: do proper cleanup in macvlan_common_newlink() V2\n  be2net: Bug fix in init code in probe\n  net/dccp: expansion of error code size\n  ath9k: Fix rx of mcast/bcast frames in PS mode with auto sleep\n  wireless: fix sta_info.h kernel-doc warnings\n  wireless: fix mac80211.h kernel-doc warnings\n  iwlwifi: testing the wrong variable in iwl_add_bssid_station()\n  ath9k_htc: rare leak in ath9k_hif_usb_alloc_tx_urbs()\n  ath9k_htc: dereferencing before check in hif_usb_tx_cb()\n  rt2x00: Fix rt2800usb TX descriptor writing.\n  rt2x00: Fix failed SLEEP-\u003eAWAKE and AWAKE-\u003eSLEEP transitions.\n  ...\n"
    },
    {
      "commit": "218ce7351413b8287a80fab1d7b94906a5559f01",
      "tree": "36ba694491fa39fbde719b889a89cadbedd1f357",
      "parents": [
        "ec96e2fe954c23a54bfdf2673437a39e193a1822"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:48:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:48:30 2010 -0700"
      },
      "message": "Revert \"module: drop the lock while waiting for module to complete initialization.\"\n\nThis reverts commit 480b02df3aa9f07d1c7df0cd8be7a5ca73893455, since\nRafael reports that it causes occasional kernel paging request faults in\nload_module().\n\nDropping the module lock and re-taking it deep in the call-chain is\ndefinitely not the right thing to do.  That just turns the mutex from a\nlock into a \"random non-locking data structure\" that doesn\u0027t actually\nprotect what it\u0027s supposed to protect.\n\nRequested-and-tested-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Brandon Philips \u003cbrandon@ifup.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "563b04671017ea00ba563ebeebdc36bce79b1b60",
      "tree": "02d6ea1c9a3ae42b10f328aa0b51740677456793",
      "parents": [
        "dd7496f217462a23a9a8a15b9925866eaad76e22"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Tue May 25 16:10:14 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 25 16:10:14 2010 -0700"
      },
      "message": "proc_dointvec: write a single value\n\nThe commit 00b7c3395aec3df43de5bd02a3c5a099ca51169f\n\"sysctl: refactor integer handling proc code\"\nmodified the behaviour of writing to /proc.\nBefore the commit, write(\"1\\n\") to /proc/sys/kernel/printk succeeded. But\nnow it returns EINVAL.\n\nThis commit supports writing a single value to a multi-valued entry.\n\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nReviewed-and-tested-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "69e4469a39b67e9923731d5d77d45c04837d5def",
      "tree": "76c28eba265c6d8b44e31ab7cc16c5940b9f221a",
      "parents": [
        "96b89f323d6af996a7f6bd84d2119cbf7145f9a4"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "ext-andriy.shevchenko@nokia.com",
        "time": "Mon May 24 14:33:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:05 2010 -0700"
      },
      "message": "sysctl: don\u0027t use own implementation of hex_to_bin()\n\nRemove own implementation of hex_to_bin().\n\nSigned-off-by: Andy Shevchenko \u003cext-andriy.shevchenko@nokia.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d52669b14e36f8365070324be009486d387ad00",
      "tree": "ed8965175a485f340f3061855773ca34f1e4f586",
      "parents": [
        "aaa04b4875f30659a0eb429e0e5203ae7fb7b18e"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Mon May 24 14:33:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:04 2010 -0700"
      },
      "message": "module: remove duplicate declaration of __ksymtab_gpl_future\n\nMinor cleanup on duplicate __{start/stop}__ksymtab_gpl_future.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4eaf3f64397c3db3c5785eee508270d62a9fabd9",
      "tree": "bfd986a7e974876755ea6fe0de394199c68e2e36",
      "parents": [
        "1f522509c77a5dea8dc384b735314f03908a6415"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mem-hotplug: fix potential race while building zonelist for new populated zone\n\nAdd global mutex zonelists_mutex to fix the possible race:\n\n     CPU0                                  CPU1                    CPU2\n(1) zone-\u003epresent_pages +\u003d online_pages;\n(2)                                       build_all_zonelists();\n(3)                                                               alloc_page();\n(4)                                                               free_page();\n(5) build_all_zonelists();\n(6)   __build_all_zonelists();\n(7)     zone-\u003epageset \u003d alloc_percpu();\n\nIn step (3,4), zone-\u003epageset still points to boot_pageset, so bad\nthings may happen if 2+ nodes are in this state. Even if only 1 node\nis accessing the boot_pageset, (3) may still consume too much memory\nto fail the memory allocations in step (7).\n\nBesides, atomic operation ensures alloc_percpu() in step (7) will never fail\nsince there is a new fresh memory block added in step(6).\n\n[haicheng.li@linux.intel.com: hold zonelists_mutex when build_all_zonelists]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "1f522509c77a5dea8dc384b735314f03908a6415",
      "tree": "4b848527b90877a8a64c46e8e2d76723405c319d",
      "parents": [
        "319774e25fa4b7641bdc3b0a464dd84e62103347"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "mem-hotplug: avoid multiple zones sharing same boot strapping boot_pageset\n\nFor each new populated zone of hotadded node, need to update its pagesets\nwith dynamically allocated per_cpu_pageset struct for all possible CPUs:\n\n    1) Detach zone-\u003epageset from the shared boot_pageset\n       at end of __build_all_zonelists().\n\n    2) Use mutex to protect zone-\u003epageset when it\u0027s still\n       shared in onlined_pages()\n\nOtherwises, multiple zones of different nodes would share same boot strapping\nboot_pageset for same CPU, which will finally cause below kernel panic:\n\n  ------------[ cut here ]------------\n  kernel BUG at mm/page_alloc.c:1239!\n  invalid opcode: 0000 [#1] SMP\n  ...\n  Call Trace:\n   [\u003cffffffff811300c1\u003e] __alloc_pages_nodemask+0x131/0x7b0\n   [\u003cffffffff81162e67\u003e] alloc_pages_current+0x87/0xd0\n   [\u003cffffffff81128407\u003e] __page_cache_alloc+0x67/0x70\n   [\u003cffffffff811325f0\u003e] __do_page_cache_readahead+0x120/0x260\n   [\u003cffffffff81132751\u003e] ra_submit+0x21/0x30\n   [\u003cffffffff811329c6\u003e] ondemand_readahead+0x166/0x2c0\n   [\u003cffffffff81132ba0\u003e] page_cache_async_readahead+0x80/0xa0\n   [\u003cffffffff8112a0e4\u003e] generic_file_aio_read+0x364/0x670\n   [\u003cffffffff81266cfa\u003e] nfs_file_read+0xca/0x130\n   [\u003cffffffff8117b20a\u003e] do_sync_read+0xfa/0x140\n   [\u003cffffffff8117bf75\u003e] vfs_read+0xb5/0x1a0\n   [\u003cffffffff8117c151\u003e] sys_read+0x51/0x80\n   [\u003cffffffff8103c032\u003e] system_call_fastpath+0x16/0x1b\n  RIP  [\u003cffffffff8112ff13\u003e] get_page_from_freelist+0x883/0x900\n   RSP \u003cffff88000d1e78a8\u003e\n  ---[ end trace 4bda28328b9990db ]\n\n[akpm@linux-foundation.org: merge fix]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "cf23422b9d76215316855253da491d4c9f294372",
      "tree": "5663d2519d83d830d24dffdf2571d58d3e55d3f6",
      "parents": [
        "8b25c6d2231b978ccce9c401e771932bde79aa9f"
      ],
      "author": {
        "name": "minskey guo",
        "email": "chaohong_guo@linux.intel.com",
        "time": "Mon May 24 14:32:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "cpu/mem hotplug: enable CPUs online before local memory online\n\nEnable users to online CPUs even if the CPUs belongs to a numa node which\ndoesn\u0027t have onlined local memory.\n\nThe zonlists(pg_data_t.node_zonelists[]) of a numa node are created either\nin system boot/init period, or at the time of local memory online.  For a\nnuma node without onlined local memory, its zonelists are not initialized\nat present.  As a result, any memory allocation operations executed by\nCPUs within this node will fail.  In fact, an out-of-memory error is\ntriggered when attempt to online CPUs before memory comes to online.\n\nThis patch tries to create zonelists for such numa nodes, so that the\nmemory allocation for this node can be fallback\u0027ed to other nodes.\n\n[akpm@linux-foundation.org: remove unneeded export]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: minskey guo\u003cchaohong.guo@intel.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Tejun Heo \u003ctj@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": "5e7719058079a1423ccce56148b0aaa56b2df821",
      "tree": "3666cb3d5540dcaa3d8e7df8c293a0ad603a181c",
      "parents": [
        "56de7263fcf3eb10c8dcdf8d59a9cec831795f3f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add a tunable that decides when memory should be compacted and when it should be reclaimed\n\nThe kernel applies some heuristics when deciding if memory should be\ncompacted or reclaimed to satisfy a high-order allocation.  One of these\nis based on the fragmentation.  If the index is below 500, memory will not\nbe compacted.  This choice is arbitrary and not based on data.  To help\noptimise the system and set a sensible default for this value, this patch\nadds a sysctl extfrag_threshold.  The kernel will only compact memory if\nthe fragmentation index is above the extfrag_threshold.\n\n[randy.dunlap@oracle.com: Fix build errors when proc fs is not configured]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76ab0f530e4a01d4dc20cdc1d5e87753c579dc18",
      "tree": "8e1566df85e02f67876685c36d217fec4845f79f",
      "parents": [
        "748446bb6b5a9390b546af38ec899c868a9dbcf0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add /proc trigger for memory compaction\n\nAdd a proc file /proc/sys/vm/compact_memory.  When an arbitrary value is\nwritten to the file, all zones are compacted.  The expected user of such a\ntrigger is a job scheduler that prepares the system before the target\napplication runs.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0ff7453bb5c7c98e0885fb94279f2571946f280",
      "tree": "8bb2b169a5145f0496575dbd2f48bb4b1c83f819",
      "parents": [
        "708c1bbc9d0c3e57f40501794d9b0eed29d10fce"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon May 24 14:32:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "cpuset,mm: fix no node to alloc memory when changing cpuset\u0027s mems\n\nBefore applying this patch, cpuset updates task-\u003emems_allowed and\nmempolicy by setting all new bits in the nodemask first, and clearing all\nold unallowed bits later.  But in the way, the allocator may find that\nthere is no node to alloc memory.\n\nThe reason is that cpuset rebinds the task\u0027s mempolicy, it cleans the\nnodes which the allocater can alloc pages on, for example:\n\n(mpol: mempolicy)\n\ttask1\t\t\ttask1\u0027s mpol\ttask2\n\talloc page\t\t1\n\t  alloc on node0? NO\t1\n\t\t\t\t1\t\tchange mems from 1 to 0\n\t\t\t\t1\t\trebind task1\u0027s mpol\n\t\t\t\t0-1\t\t  set new bits\n\t\t\t\t0\t  \t  clear disallowed bits\n\t  alloc on node1? NO\t0\n\t  ...\n\tcan\u0027t alloc page\n\t  goto oom\n\nThis patch fixes this problem by expanding the nodes range first(set newly\nallowed bits) and shrink it lazily(clear newly disallowed bits).  So we\nuse a variable to tell the write-side task that read-side task is reading\nnodemask, and the write-side task clears newly disallowed nodes after\nread-side task ends the current memory allocation.\n\n[akpm@linux-foundation.org: fix spello]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "708c1bbc9d0c3e57f40501794d9b0eed29d10fce",
      "tree": "4b19caf68c420b32abdf05af3d413b1320f04fbe",
      "parents": [
        "971ada0f6659488c3f36aed4c6f7670ff5ce4368"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon May 24 14:32:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: restructure rebinding-mempolicy functions\n\nNick Piggin reported that the allocator may see an empty nodemask when\nchanging cpuset\u0027s mems[1].  It happens only on the kernel that do not do\natomic nodemask_t stores.  (MAX_NUMNODES \u003e BITS_PER_LONG)\n\nBut I found that there is also a problem on the kernel that can do atomic\nnodemask_t stores.  The problem is that the allocator can\u0027t find a node to\nalloc page when changing cpuset\u0027s mems though there is a lot of free\nmemory.  The reason is like this:\n\n(mpol: mempolicy)\n\ttask1\t\t\ttask1\u0027s mpol\ttask2\n\talloc page\t\t1\n\t  alloc on node0? NO\t1\n\t\t\t\t1\t\tchange mems from 1 to 0\n\t\t\t\t1\t\trebind task1\u0027s mpol\n\t\t\t\t0-1\t\t  set new bits\n\t\t\t\t0\t  \t  clear disallowed bits\n\t  alloc on node1? NO\t0\n\t  ...\n\tcan\u0027t alloc page\n\t  goto oom\n\nI can use the attached program reproduce it by the following step:\n\n# mkdir /dev/cpuset\n# mount -t cpuset cpuset /dev/cpuset\n# mkdir /dev/cpuset/1\n# echo `cat /dev/cpuset/cpus` \u003e /dev/cpuset/1/cpus\n# echo `cat /dev/cpuset/mems` \u003e /dev/cpuset/1/mems\n# echo $$ \u003e /dev/cpuset/1/tasks\n# numactl --membind\u003d`cat /dev/cpuset/mems` ./cpuset_mem_hog \u003cnr_tasks\u003e \u0026\n   \u003cnr_tasks\u003e \u003d max(nr_cpus - 1, 1)\n# killall -s SIGUSR1 cpuset_mem_hog\n# ./change_mems.sh\n\nseveral hours later, oom will happen though there is a lot of free memory.\n\nThis patchset fixes this problem by expanding the nodes range first(set\nnewly allowed bits) and shrink it lazily(clear newly disallowed bits).  So\nwe use a variable to tell the write-side task that read-side task is\nreading nodemask, and the write-side task clears newly disallowed nodes\nafter read-side task ends the current memory allocation.\n\nThis patch:\n\nIn order to fix no node to alloc memory, when we want to update mempolicy\nand mems_allowed, we expand the set of nodes first (set all the newly\nnodes) and shrink the set of nodes lazily(clean disallowed nodes), But the\nmempolicy\u0027s rebind functions may breaks the expanding.\n\nSo we restructure the mempolicy\u0027s rebind functions and split the rebind\nwork to two steps, just like the update of cpuset\u0027s mems: The 1st step:\nexpand the set of the mempolicy\u0027s nodes.  The 2nd step: shrink the set of\nthe mempolicy\u0027s nodes.  It is used when there is no real lock to protect\nthe mempolicy in the read-side.  Otherwise we can do rebind work at once.\n\nIn order to implement it, we define\n\n\tenum mpol_rebind_step {\n\t\tMPOL_REBIND_ONCE,\n\t\tMPOL_REBIND_STEP1,\n\t\tMPOL_REBIND_STEP2,\n\t\tMPOL_REBIND_NSTEP,\n\t};\n\nIf the mempolicy needn\u0027t be updated by two steps, we can pass\nMPOL_REBIND_ONCE to the rebind functions.  Or we can pass\nMPOL_REBIND_STEP1 to do the first step of the rebind work and pass\nMPOL_REBIND_STEP2 to do the second step work.\n\nBesides that, it maybe long time between these two step and we have to\nrelease the lock that protects mempolicy and mems_allowed.  If we hold the\nlock once again, we must check whether the current mempolicy is under the\nrebinding (the first step has been done) or not, because the task may\nalloc a new mempolicy when we don\u0027t hold the lock.  So we defined the\nfollowing flag to identify it:\n\n#define MPOL_F_REBINDING (1 \u003c\u003c 2)\n\nThe new functions will be used in the next patch.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f00e047efdf9d31c8a7dd7875b411f97cfa7d8e5",
      "tree": "4f6af8a7025480aa5d35e438acda9011526406ce",
      "parents": [
        "bd45b7a385c5ffd82c11a1d51880be18559e5ad9"
      ],
      "author": {
        "name": "Jeff Chua",
        "email": "jeff.chua.linux@gmail.com",
        "time": "Mon May 24 07:16:24 2010 +0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 24 12:10:23 2010 +0200"
      },
      "message": "timers: Fix slack calculation for expired timers\n\ncommit 3bbb9ec946 (timers: Introduce the concept of timer slack for\nlegacy timers) does not take the case into account when the timer is\nalready expired. This broke wireless drivers.\n\nThe solution is not to apply slack to already expired timers.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "bd45b7a385c5ffd82c11a1d51880be18559e5ad9",
      "tree": "d5fb7949b599a0a0aa86233d8c3118cc5b0bf9b9",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 23 08:14:45 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 24 11:50:38 2010 +0200"
      },
      "message": "timekeeping: Fix timezone update\n\ncommit 64ce4c2f (time: Clean up warp_clock()) breaks the timezone\nupdate in a very subtle way. To avoid the direct access to timekeeping\ninternals it adds the timezone delta to the current time with\ntimespec_add_safe(). This works nicely when the timezone delta is \u003e 0.\nIf timezone delta is \u003c 0 then the wrap check in timespec_add_safe()\ntriggers and timespec_add_safe() returns TIME_MAX and screws up\ntimekeeping completely. \n\nThe comment above timespec_add_safe() says:\n    It\u0027s assumed that both values are valid (\u003e\u003d 0)\n\nAdd the timezone seconds adjustment directly.\n\nReported-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6109e2ce2600e2db26cd0424bb9c6ed019723288",
      "tree": "54b5d347bf12e0a987edfb52f287399f748a9a38",
      "parents": [
        "0961d6581c870850342ad6ea25263763433d666f",
        "ac81860ea073daed50246af54db706c6e491f240"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 18:58:52 2010 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (36 commits)\n  PCI: hotplug: pciehp: Removed check for hotplug of display devices\n  PCI: read memory ranges out of Broadcom CNB20LE host bridge\n  PCI: Allow manual resource allocation for PCI hotplug bridges\n  x86/PCI: make ACPI MCFG reserved error messages ACPI specific\n  PCI hotplug: Use kmemdup\n  PM/PCI: Update PCI power management documentation\n  PCI: output FW warning in pci_read/write_vpd\n  PCI: fix typos pci_device_dis/enable to pci_dis/enable_device in comments\n  PCI quirks: disable msi on AMD rs4xx internal gfx bridges\n  PCI: Disable MSI for MCP55 on P5N32-E SLI\n  x86/PCI: irq and pci_ids patch for additional Intel Cougar Point DeviceIDs\n  PCI: aerdrv: trivial cleanup for aerdrv_core.c\n  PCI: aerdrv: trivial cleanup for aerdrv.c\n  PCI: aerdrv: introduce default_downstream_reset_link\n  PCI: aerdrv: rework find_aer_service\n  PCI: aerdrv: remove is_downstream\n  PCI: aerdrv: remove magical ROOT_ERR_STATUS_MASKS\n  PCI: aerdrv: redefine PCI_ERR_ROOT_*_SRC\n  PCI: aerdrv: rework do_recovery\n  PCI: aerdrv: rework get_e_source()\n  ...\n"
    },
    {
      "commit": "0961d6581c870850342ad6ea25263763433d666f",
      "tree": "371c61fd7f621397907983031003e784a040402e",
      "parents": [
        "1756ac3d3c41341297ea25b818b7fce505bb2a9a",
        "fd0c8894893cba722bdea12de25b49f980795d06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:25:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:25:01 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/iommu-2.6\n\n* git://git.infradead.org/iommu-2.6:\n  intel-iommu: Set a more specific taint flag for invalid BIOS DMAR tables\n  intel-iommu: Combine the BIOS DMAR table warning messages\n  panic: Add taint flag TAINT_FIRMWARE_WORKAROUND (\u0027I\u0027)\n  panic: Allow warnings to set different taint flags\n  intel-iommu: intel_iommu_map_range failed at very end of address space\n  intel-iommu: errors with smaller iommu widths\n  intel-iommu: Fix boot inside 64bit virtualbox with io-apic disabled\n  intel-iommu: use physfn to search drhd for VF\n  intel-iommu: Print out iommu seq_id\n  intel-iommu: Don\u0027t complain that ACPI_DMAR_SCOPE_TYPE_IOAPIC is not supported\n  intel-iommu: Avoid global flushes with caching mode.\n  intel-iommu: Use correct domain ID when caching mode is enabled\n  intel-iommu mistakenly uses offset_pfn when caching mode is enabled\n  intel-iommu: use for_each_set_bit()\n  intel-iommu: Fix section mismatch dmar_ir_support() uses dmar_tbl.\n"
    },
    {
      "commit": "a8251096b427283c47e7d8f9568be6b388dd68ec",
      "tree": "edc9747e30b4b4413aa99acfbd3104d81b1c303b",
      "parents": [
        "27a3353a4525afe984f3b793681869d636136b69",
        "480b02df3aa9f07d1c7df0cd8be7a5ca73893455"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "message": "Merge branch \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: drop the lock while waiting for module to complete initialization.\n  MODULE_DEVICE_TABLE(isapnp, ...) does nothing\n  hisax_fcpcipnp: fix broken isapnp device table.\n  isapnp: move definitions to mod_devicetable.h so file2alias can reach them.\n"
    },
    {
      "commit": "6e80e8ed5eb92d0112674aabe82951266a6a1051",
      "tree": "4913d191cd088f355b92109af5ffa7d75e15ae4a",
      "parents": [
        "6969a434737dd82f7343e3fcd529bc320508d9fc",
        "ee9a3607fb03e804ddf624544105f4e34260c380"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:25:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:25:33 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.35\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.35\u0027 of git://git.kernel.dk/linux-2.6-block: (86 commits)\n  pipe: set lower and upper limit on max pages in the pipe page array\n  pipe: add support for shrinking and growing pipes\n  drbd: This is now equivalent to drbd release 8.3.8rc1\n  drbd: Do not free p_uuid early, this is done in the exit code of the receiver\n  drbd: Null pointer deref fix to the large \"multi bio rewrite\"\n  drbd: Fix: Do not detach, if a bio with a barrier fails\n  drbd: Ensure to not trigger late-new-UUID creation multiple times\n  drbd: Do not Oops when C_STANDALONE when uuid gets generated\n  writeback: fix mixed up arguments to bdi_start_writeback()\n  writeback: fix problem with !CONFIG_BLOCK compilation\n  block: improve automatic native capacity unlocking\n  block: use struct parsed_partitions *state universally in partition check code\n  block,ide: simplify bdops-\u003eset_capacity() to -\u003eunlock_native_capacity()\n  block: restart partition scan after resizing a device\n  buffer: make invalidate_bdev() drain all percpu LRU add caches\n  block: remove all rcu head initializations\n  writeback: fixups for !dirty_writeback_centisecs\n  writeback: bdi_writeback_task() must set task state before calling schedule()\n  writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync\n  drivers/block/drbd: Use kzalloc\n  ...\n"
    },
    {
      "commit": "0fc377bd648d1935ea34665239e3f0a274b71698",
      "tree": "cda5fe0553b2d84bb3fc14eca9d5bb7c72ea374e",
      "parents": [
        "1f7f314bf2a77f1d499b41001ebdafb261f00f30"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri May 21 11:29:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:23:12 2010 -0700"
      },
      "message": "sysctl: fix kernel-doc notation and typos\n\nFix kernel-doc warnings, kernel-doc special characters, and\ntypos in recent kernel/sysctl.c additions.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a8ba8f032160552a3beffab8aae9019ff477504",
      "tree": "b50f70a3c8f7c2e179e1587d33ea3542d68525f9",
      "parents": [
        "ec2a7587e0a91d5c1afe23a0a73edfce06c5e4e0",
        "e954bc91bdd4bb08b8325478c5004b24a23a3522"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 14:46:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 14:46:51 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (46 commits)\n  random: simplify fips mode\n  crypto: authenc - Fix cryptlen calculation\n  crypto: talitos - add support for sha224\n  crypto: talitos - add hash algorithms\n  crypto: talitos - second prepare step for adding ahash algorithms\n  crypto: talitos - prepare for adding ahash algorithms\n  crypto: n2 - Add Niagara2 crypto driver\n  crypto: skcipher - Add ablkcipher_walk interfaces\n  crypto: testmgr - Add testing for async hashing and update/final\n  crypto: tcrypt - Add speed tests for async hashing\n  crypto: scatterwalk - Fix scatterwalk_done() test\n  crypto: hifn_795x - Rename ablkcipher_walk to hifn_cipher_walk\n  padata: Use get_online_cpus/put_online_cpus in padata_free\n  padata: Add some code comments\n  padata: Flush the padata queues actively\n  padata: Use a timer to handle remaining objects in the reorder queues\n  crypto: shash - Remove usage of CRYPTO_MINALIGN\n  crypto: mv_cesa - Use resource_size\n  crypto: omap - OMAP macros corrected\n  padata: Use get_online_cpus/put_online_cpus\n  ...\n\nFix up conflicts in arch/arm/mach-omap2/devices.c\n"
    },
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b492e95be0ae672922f4734acf3f5d35c30be948",
      "tree": "a8a1e7f035903796e6b8f626add8d269bf989a35",
      "parents": [
        "35f3d14dbbc58447c61e38a162ea10add6b31dc7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 19 21:03:16 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:52 2010 +0200"
      },
      "message": "pipe: set lower and upper limit on max pages in the pipe page array\n\nWe need at least two to guarantee proper POSIX behaviour, so\nnever allow a smaller limit than that.\n\nAlso expose a /proc/sys/fs/pipe-max-pages sysctl file that allows\nroot to define a sane upper limit. Make it default to 16 times the\ndefault size, which is 16 pages.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35f3d14dbbc58447c61e38a162ea10add6b31dc7",
      "tree": "3e03cd540b7dcdac82195c4e76862c0ce6daaaf0",
      "parents": [
        "3d42b3612891baecf709d93f28655a6882a65d41"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 20 10:43:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:40 2010 +0200"
      },
      "message": "pipe: add support for shrinking and growing pipes\n\nThis patch adds F_GETPIPE_SZ and F_SETPIPE_SZ fcntl() actions for\ngrowing and shrinking the size of a pipe and adjusts pipe.c and splice.c\n(and relay and network splice) usage to work with these larger (or smaller)\npipes.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ac3ee84c604502240122c47b52f0542ec8774f15",
      "tree": "fa74b50e310af6cef3298a052514b2d42b260d6b",
      "parents": [
        "90b9a32d8f441369b2f97a765d2d957b531eb653",
        "4fe1da4ebc18c4c42fa56c228447f68033fce5f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:10:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:10:41 2010 -0700"
      },
      "message": "Merge branch \u0027dbg-early-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027dbg-early-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  echi-dbgp: Add kernel debugger support for the usb debug port\n  earlyprintk,vga,kdb: Fix \\b and \\r for earlyprintk\u003dvga with kdb\n  kgdboc: Add ekgdboc for early use of the kernel debugger\n  x86,early dr regs,kgdb: Allow kernel debugger early dr register access\n  x86,kgdb: Implement early hardware breakpoint debugging\n  x86, kgdb, init: Add early and late debug states\n  x86, kgdb: early trap init for early debug\n"
    },
    {
      "commit": "90b9a32d8f441369b2f97a765d2d957b531eb653",
      "tree": "3146d251a983ba12226e75c121613de6f051af8b",
      "parents": [
        "8b108c609adefd98577c35f0a41497a610041a6c",
        "4402c153cb9c549cd21d6007ef0dfac50c8d148d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "message": "Merge branch \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: (25 commits)\n  kdb,debug_core: Allow the debug core to receive a panic notification\n  MAINTAINERS: update kgdb, kdb, and debug_core info\n  debug_core,kdb: Allow the debug core to process a recursive debug entry\n  printk,kdb: capture printk() when in kdb shell\n  kgdboc,kdb: Allow kdb to work on a non open console port\n  kgdb: Add the ability to schedule a breakpoint via a tasklet\n  mips,kgdb: kdb low level trap catch and stack trace\n  powerpc,kgdb: Introduce low level trap catching\n  x86,kgdb: Add low level debug hook\n  kgdb: remove post_primary_code references\n  kgdb,docs: Update the kgdb docs to include kdb\n  kgdboc,keyboard: Keyboard driver for kdb with kgdb\n  kgdb: gdb \"monitor\" -\u003e kdb passthrough\n  sparc,sunzilog: Add console polling support for sunzilog serial driver\n  sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console code\n  kgdb,8250,pl011: Return immediately from console poll\n  kgdb: core changes to support kdb\n  kdb: core for kgdb back end (2 of 2)\n  kdb: core for kgdb back end (1 of 2)\n  kgdb,blackfin: Add in kgdb_arch_set_pc for blackfin\n  ...\n"
    },
    {
      "commit": "2c3c8bea608866d8bd9dcf92657d57fdcac011c5",
      "tree": "f509b958d0a65c46c831dbdd447a81e706dd995a",
      "parents": [
        "68d75ed4b84a0806ecd4bc14da4759713b23a532"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Wed May 12 18:28:57 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: add struct file* to bin_attr callbacks\n\nThis allows bin_attr-\u003eread,write,mmap callbacks to check file specific data\n(such as inode owner) as part of any privilege validation.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1704f47b50b5d9e1b825e43e1baaf2c5897baf03",
      "tree": "60617ff867624f915f75a502f2207de5e586757a",
      "parents": [
        "3142788b7967ccfd2f1813ee9e11aeb1e1cf7de2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Mar 19 01:37:42 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:30 2010 -0700"
      },
      "message": "lockdep: Add novalidate class for dev-\u003emutex conversion\n\nThe conversion of device-\u003esem to device-\u003emutex resulted in lockdep\nwarnings. Create a novalidate class for now until the driver folks\ncome up with separate classes. That way we have at least the basic\nmutex debugging coverage.\n\nAdd a checkpatch error so the usage is reserved for device-\u003emutex.\n\n[ tglx: checkpatch and compile fix for LOCKDEP\u003dn ]\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "db1afffab0b5d9f6d31f8f4bea44c9cb3bc59351",
      "tree": "5ba8fd7a5018c0772d999b8c3aa945c0efb929e0",
      "parents": [
        "dd336c554d8926c3348a2d5f2a5ef5597f6d1a06"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 16 15:14:51 2010 +1100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:29 2010 -0700"
      },
      "message": "kref: remove kref_set\n\nOf the three uses of kref_set in the kernel:\n\n One really should be kref_put as the code is letting go of a\n    reference,\n Two really should be kref_init because the kref is being\n    initialised.\n\nThis suggests that making kref_set available encourages bad code.\nSo fix the three uses and remove kref_set completely.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nAcked-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "33cf23b0a535475aead57707cb9f4fe135a93544",
      "tree": "67e14f77f0eeab847a26a6cbfcb44eecb5fa2fda",
      "parents": [
        "7a9b149212f3716c598afe973b6261fd58453b7a",
        "95bb335c0ebe96afe926387a1ef3a096bd884a82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:19:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:19:18 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (182 commits)\n  [SCSI] aacraid: add an ifdef\u0027d device delete case instead of taking the device offline\n  [SCSI] aacraid: prohibit access to array container space\n  [SCSI] aacraid: add support for handling ATA pass-through commands.\n  [SCSI] aacraid: expose physical devices for models with newer firmware\n  [SCSI] aacraid: respond automatically to volumes added by config tool\n  [SCSI] fcoe: fix fcoe module ref counting\n  [SCSI] libfcoe: FIP Keep-Alive messages for VPorts are sent with incorrect port_id and wwn\n  [SCSI] libfcoe: Fix incorrect MAC address clearing\n  [SCSI] fcoe: fix a circular locking issue with rtnl and sysfs mutex\n  [SCSI] libfc: Move the port_id into lport\n  [SCSI] fcoe: move link speed checking into its own routine\n  [SCSI] libfc: Remove extra pointer check\n  [SCSI] libfc: Remove unused fc_get_host_port_type\n  [SCSI] fcoe: fixes wrong error exit in fcoe_create\n  [SCSI] libfc: set seq_id for incoming sequence\n  [SCSI] qla2xxx: Updates to ISP82xx support.\n  [SCSI] qla2xxx: Optionally disable target reset.\n  [SCSI] qla2xxx: ensure flash operation and host reset via sg_reset are mutually exclusive\n  [SCSI] qla2xxx: Silence bogus warning by gcc for wrap and did.\n  [SCSI] qla2xxx: T10 DIF support added.\n  ...\n"
    },
    {
      "commit": "7a9b149212f3716c598afe973b6261fd58453b7a",
      "tree": "477716d84c71da124448b72278e98da28aadbd3d",
      "parents": [
        "3d62e3fdce8ef265a3706c52ae1ca6ab84e30f0e",
        "e26bcf37234c67624f62d9fc95f922b8dbda1363"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:26:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:26:12 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (229 commits)\n  USB: remove unused usb_buffer_alloc and usb_buffer_free macros\n  usb: musb: update gfp/slab.h includes\n  USB: ftdi_sio: fix legacy SIO-device header\n  USB: kl5usb105: reimplement using generic framework\n  USB: kl5usb105: minor clean ups\n  USB: kl5usb105: fix memory leak\n  USB: io_ti: use kfifo to implement write buffering\n  USB: io_ti: remove unsused private counter\n  USB: ti_usb: use kfifo to implement write buffering\n  USB: ir-usb: fix incorrect write-buffer length\n  USB: aircable: fix incorrect write-buffer length\n  USB: safe_serial: straighten out read processing\n  USB: safe_serial: reimplement read using generic framework\n  USB: safe_serial: reimplement write using generic framework\n  usb-storage: always print quirks\n  USB: usb-storage: trivial debug improvements\n  USB: oti6858: use port write fifo\n  USB: oti6858: use kfifo to implement write buffering\n  USB: cypress_m8: use kfifo to implement write buffering\n  USB: cypress_m8: remove unused drain define\n  ...\n\nFix up conflicts (due to usb_buffer_alloc/free renaming) in\n\tdrivers/input/tablet/acecad.c\n\tdrivers/input/tablet/kbtab.c\n\tdrivers/input/tablet/wacom_sys.c\n\tdrivers/media/video/gspca/gspca.c\n\tsound/usb/usbaudio.c\n"
    },
    {
      "commit": "f8965467f366fd18f01feafb5db10512d7b4422c",
      "tree": "3706a9cd779859271ca61b85c63a1bc3f82d626e",
      "parents": [
        "a26272e5200765691e67d6780e52b32498fdb659",
        "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)\n  qlcnic: adding co maintainer\n  ixgbe: add support for active DA cables\n  ixgbe: dcb, do not tag tc_prio_control frames\n  ixgbe: fix ixgbe_tx_is_paused logic\n  ixgbe: always enable vlan strip/insert when DCB is enabled\n  ixgbe: remove some redundant code in setting FCoE FIP filter\n  ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp\n  ixgbe: fix header len when unsplit packet overflows to data buffer\n  ipv6: Never schedule DAD timer on dead address\n  ipv6: Use POSTDAD state\n  ipv6: Use state_lock to protect ifa state\n  ipv6: Replace inet6_ifaddr-\u003edead with state\n  cxgb4: notify upper drivers if the device is already up when they load\n  cxgb4: keep interrupts available when the ports are brought down\n  cxgb4: fix initial addition of MAC address\n  cnic: Return SPQ credit to bnx2x after ring setup and shutdown.\n  cnic: Convert cnic_local_flags to atomic ops.\n  can: Fix SJA1000 command register writes on SMP systems\n  bridge: fix build for CONFIG_SYSFS disabled\n  ARCNET: Limit com20020 PCI ID matches for SOHARD cards\n  ...\n\nFix up various conflicts with pcmcia tree drivers/net/\n{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and\nwireless/orinoco/spectrum_cs.c} and feature removal\n(Documentation/feature-removal-schedule.txt).\n\nAlso fix a non-content conflict due to pm_qos_requirement getting\nrenamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c\n"
    },
    {
      "commit": "0b4b3827db386ec6034a5aba1261025b039440c2",
      "tree": "a3469de6930fe3e850c8e4c49c26a2a3b53612dd",
      "parents": [
        "29c843912a0baa7fa63033fe28e1ca7e796686a5"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:29 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:29 2010 -0500"
      },
      "message": "x86, kgdb, init: Add early and late debug states\n\nThe kernel debugger can operate well before mm_init(), but the x86\nhardware breakpoint code which uses the perf api requires that the\nkernel allocators are initialized.\n\nThis means the kernel debug core needs to provide an optional arch\nspecific call back to allow the initialization functions to run after\nthe kernel has been further initialized.\n\nThe kdb shell already had a similar restriction with an early\ninitialization and late initialization.  The kdb_init() was moved into\nthe debug core\u0027s version of the late init which is called\ndbg_late_init();\n\nCC: kgdb-bugreport@lists.sourceforge.net\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "4402c153cb9c549cd21d6007ef0dfac50c8d148d",
      "tree": "2a2589958e3d5243b265ba2a9fb6f5f2ecb33b57",
      "parents": [
        "5b778dadcde0d93eb20a67bad8105b6ed8d7810f"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:28 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:28 2010 -0500"
      },
      "message": "kdb,debug_core: Allow the debug core to receive a panic notification\n\nIt is highly desirable to trap into kdb on panic.  The debug core will\nattempt to register as the first in line for the panic notifier.\n\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "6d90634076200af035f1d9dcc8fc11acefd603e9",
      "tree": "f56c723a28006df0425bf662c15e2a3503b9065a",
      "parents": [
        "d37d39ae3b4a8f9a21114921fb344fe7cadb1abd"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:27 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:27 2010 -0500"
      },
      "message": "debug_core,kdb: Allow the debug core to process a recursive debug entry\n\nThis allows kdb to debug a crash with in the kms code with a\nsingle level recursive re-entry.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "d37d39ae3b4a8f9a21114921fb344fe7cadb1abd",
      "tree": "2c20219725a12c343429758ec378b5c9d08b04bd",
      "parents": [
        "efe2f29e324fd20e0449bcd6dc6dbe4734c2ba94"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:27 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:27 2010 -0500"
      },
      "message": "printk,kdb: capture printk() when in kdb shell\n\nCertain calls from the kdb shell will call out to printk(), and any of\nthese calls should get vectored back to the kdb_printf() so that the\nkdb pager and processing can be used, as well as to properly channel\nI/O to the polled I/O devices.\n\nCC: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efe2f29e324fd20e0449bcd6dc6dbe4734c2ba94",
      "tree": "ff8b2d7eddbfee39aebf7a43c6125202b6bda6d7",
      "parents": [
        "1cee5e35f15d0893be1ba944f1aec8676e43ab76"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:26 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:26 2010 -0500"
      },
      "message": "kgdboc,kdb: Allow kdb to work on a non open console port\n\nIf kdb is open on a serial port that is not actually a console make\nsure to call the poll routines to emit and receive characters.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "1cee5e35f15d0893be1ba944f1aec8676e43ab76",
      "tree": "634f5365300cfb555c8e894ade79735bb91a690e",
      "parents": [
        "5dd11d5d47d248850c58292513f0e164ba98b01e"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jun 03 14:06:57 2009 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:26 2010 -0500"
      },
      "message": "kgdb: Add the ability to schedule a breakpoint via a tasklet\n\nSome kgdb I/O modules require the ability to create a breakpoint\ntasklet, such as kgdboc and external modules such as kgdboe.  The\nbreakpoint tasklet is used as an asynchronous entry point into the\ndebugger which will have a different function scope than the current\nexecution path where it might not be safe to have an inline\nbreakpoint.  This is true of some of the kgdb I/O drivers which share\ncode with kgdb and rest of the kernel users.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "f503b5ae53cb557ac351a668fcac1baab1cef0db",
      "tree": "b2deb02cec90cb18a075b3a49e6de949db374c77",
      "parents": [
        "98ec1878cacb393975cba64f7392eece81716cb4"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:25 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:25 2010 -0500"
      },
      "message": "x86,kgdb: Add low level debug hook\n\nThe only way the debugger can handle a trap in inside rcu_lock,\nnotify_die, or atomic_notifier_call_chain without a triple fault is\nto have a low level \"first opportunity handler\" in the int3 exception\nhandler.\n\nGenerally this will be something the vast majority of folks will not\nneed, but for those who need it, it is added as a kernel .config\noption called KGDB_LOW_LEVEL_TRAP.\n\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: H. Peter Anvin \u003chpa@zytor.com\u003e\nCC: x86@kernel.org\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "98ec1878cacb393975cba64f7392eece81716cb4",
      "tree": "e56110f645daf77ef0a6b3206926915f11d52e78",
      "parents": [
        "84c08fd61e2d21702337e9fe366e97cdf09bf797"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Apr 27 10:58:06 2009 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:25 2010 -0500"
      },
      "message": "kgdb: remove post_primary_code references\n\nRemove all the references to the kgdb_post_primary_code.  This\nfunction serves no useful purpose because you can obtain the same\ninformation from the \"struct kgdb_state *ks\" from with in the\ndebugger, if for some reason you want the data.\n\nAlso remove the unintentional duplicate assignment for ks-\u003eex_vector.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "ada64e4c98eb5f04a9ca223c5ff9e7ac22ce6404",
      "tree": "48e284cf69157cf54302dcceb01ad7a07b889206",
      "parents": [
        "a0de055cf61338549b13079a5677ef2e1b6472ef"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:24 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:24 2010 -0500"
      },
      "message": "kgdboc,keyboard: Keyboard driver for kdb with kgdb\n\nThis patch adds in the kdb PS/2 keyboard driver.  This was mostly a\ndirect port from the original kdb where I cleaned up the code against\ncheckpatch.pl and added the glue to stitch it into kgdb.\n\nThis patch also enables early kdb debug via kgdbwait and the keyboard.\n\nAll the access to configure kdb using either a serial console or the\nkeyboard is done via kgdboc.\n\nIf you want to use only the keyboard and want to break in early you\nwould add to your kernel command arguments:\n\n    kgdboc\u003dkbd kgdbwait\n\nIf you wanted serial and or the keyboard access you could use:\n\n    kgdboc\u003dkbd,ttyS0\n\nYou can also configure kgdboc as a kernel module or at run time with\nthe sysfs where you can activate and deactivate kgdb.\n\nTurn it on:\n    echo kbd,ttyS0 \u003e /sys/module/kgdboc/parameters/kgdboc\n\nTurn it off:\n    echo \"\" \u003e /sys/module/kgdboc/parameters/kgdboc\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nReviewed-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "a0de055cf61338549b13079a5677ef2e1b6472ef",
      "tree": "6191bbd6b3d567350b12ad973356995dbeffeeb3",
      "parents": [
        "6d45a1aed34b0cd7b298967eb9cb72b77afcb33b"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:24 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:24 2010 -0500"
      },
      "message": "kgdb: gdb \"monitor\" -\u003e kdb passthrough\n\nOne of the driving forces behind integrating another front end (kdb)\nto the debug core is to allow front end commands to be accessible via\ngdb\u0027s monitor command.  It is true that you could write gdb macros to\nget certain data, but you may want to just use gdb to access the\ncommands that are available in the kdb front end.\n\nThis patch implements the Rcmd gdb stub packet.  In gdb you access\nthis with the \"monitor\" command.  For instance you could type \"monitor\nhelp\", \"monitor lsmod\" or \"monitor ps A\" etc...\n\nThere is no error checking or command restrictions on what you can and\ncannot access at this point.  Doing something like trying to set\nbreakpoints with the monitor command is going to cause nothing but\nproblems.  Perhaps in the future only the commands that are actually\nknown to work with the gdb monitor command will be available.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "f5316b4aea024da9266d740322a5481657f6ce59",
      "tree": "5888fd0afa54fc3bab2711e583147c4b563836bc",
      "parents": [
        "dcc7871128e99458ca86186b7bc8bf27ff0c47b5"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:22 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:22 2010 -0500"
      },
      "message": "kgdb,8250,pl011: Return immediately from console poll\n\nThe design of the kdb shell requires that every device that can\nprovide input to kdb have a polling routine that exits immediately if\nthere is no character available.  This is required in order to get the\npage scrolling mechanism working.\n\nChanging the kernel debugger I/O API to require all polling character\nroutines to exit immediately if there is no data allows the kernel\ndebugger to process multiple input channels.\n\nNO_POLL_CHAR will be the return code to the polling routine when ever\nthere is no character available.\n\nCC: linux-serial@vger.kernel.org\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "dcc7871128e99458ca86186b7bc8bf27ff0c47b5",
      "tree": "e10d252ccc4e990aac7dd09f44b94cfe045adc6b",
      "parents": [
        "67fc4e0cb931d6b4ccf21248e4199b154478ecea"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "message": "kgdb: core changes to support kdb\n\nThese are the minimum changes to the kgdb core in order to enable an\nAPI to connect a new front end (kdb) to the debug core.\n\nThis patch introduces the dbg_kdb_mode variable controls where the\nuser level I/O is routed.  It will be routed to the gdbstub (kgdb) or\nto the kdb front end which is a simple shell available over the kgdboc\nconnection.\n\nYou can switch back and forth between kdb or the gdb stub mode of\noperation dynamically.  From gdb stub mode you can blindly type\n\"$3#33\", or from the kdb mode you can enter \"kgdb\" to switch to the\ngdb stub.\n\nThe logic in the debug core depends on kdb to look for the typical gdb\nconnection sequences and return immediately with KGDB_PASS_EVENT if a\ngdb serial command sequence is detected.  That should allow a\nreasonably seamless transition between kdb -\u003e gdb without leaving the\nkernel exception state.  The two gdb serial queries that kdb is\nresponsible for detecting are the \"?\" and \"qSupported\" packets.\n\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "67fc4e0cb931d6b4ccf21248e4199b154478ecea",
      "tree": "4cf49d00bc9ac03c3c77d91fadd13fcabc75e0c9",
      "parents": [
        "5d5314d6795f3c1c0f415348ff8c51f7de042b77"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "message": "kdb: core for kgdb back end (2 of 2)\n\nThis patch contains the hooks and instrumentation into kernel which\nlive outside the kernel/debug directory, which the kdb core\nwill call to run commands like lsmod, dmesg, bt etc...\n\nCC: linux-arch@vger.kernel.org\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "5d5314d6795f3c1c0f415348ff8c51f7de042b77",
      "tree": "2f433649d29be98ebc975f352b7d7046a2a2beec",
      "parents": [
        "e8861129d3c1a64e3c62f459aeb1cd54a55ab045"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:20 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:20 2010 -0500"
      },
      "message": "kdb: core for kgdb back end (1 of 2)\n\nThis patch contains only the kdb core.  Because the change set was\nlarge, it was split.  The next patch in the series includes the\ninstrumentation into the core kernel which are mainly helper functions\nfor kdb.\n\nThis work is directly derived from kdb v4.4 found at:\n\nftp://oss.sgi.com/projects/kdb/download/v4.4/\n\nThe kdb internals have been re-organized to make them mostly platform\nindependent and to connect everything to the debug core which is used by\ngdbstub (which has long been known as kgdb).\n\nThe original version of kdb was 58,000 lines worth of changes to\nsupport x86.  From that implementation only the kdb shell, and basic\ncommands for memory access, runcontrol, lsmod, and dmesg where carried\nforward.\n\nThis is a generic implementation which aims to cover all the current\narchitectures using the kgdb core: ppc, arm, x86, mips, sparc, sh and\nblackfin.  More archictectures can be added by implementing the\narchitecture specific kgdb functions.\n\n[mort@sgi.com: Compile fix with hugepages enabled]\n[mort@sgi.com: Clean breakpoint code renaming kdba_ -\u003e kdb_]\n[mort@sgi.com: fix new line after printing registers]\n[mort@sgi.com: Remove the concept of global vs. local breakpoints]\n[mort@sgi.com: Rework kdb_si_swapinfo to use more generic name]\n[mort@sgi.com: fix the information dump macros, remove \u0027arch\u0027 from the names]\n[sfr@canb.auug.org.au: include fixup to include linux/slab.h]\n\nCC: linux-arch@vger.kernel.org\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "53197fc49549240f6c6a963b2713a4cd9517964b",
      "tree": "5a89c338ef8acd188e4aa1503370a4e928c33edd",
      "parents": [
        "c433820971ffa854feda6adc17f5f24201354f11"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 11:48:03 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:19 2010 -0500"
      },
      "message": "Separate the gdbstub from the debug core\n\nSplit the former kernel/kgdb.c into debug_core.c which contains the\nkernel debugger exception logic and to the gdbstub.c which contains\nthe logic for allowing gdb to talk to the debug core.\n\nThis also created a private include file called debug_core.h which\ncontains all the definitions to glue the debug_core to any other\ndebugger connections.\n\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "c433820971ffa854feda6adc17f5f24201354f11",
      "tree": "efb8028cc56e36eeade40d3a96bb461a242bab51",
      "parents": [
        "a0fe3cc5d36a5f5b4f60abfe1a4b1caf4a5cce5a"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Tue May 19 07:49:32 2009 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:18 2010 -0500"
      },
      "message": "Move kernel/kgdb.c to kernel/debug/debug_core.c\n\nMove kgdb.c in preparation to separate the gdbstub from the debug\ncore and exception handling.\n\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "22c43c81a51e05f61e90445ceb59d486c12fd921",
      "tree": "88582f01bf413bdc4d9d95a512116c9fe44afa33",
      "parents": [
        "24337c133ff92ba8d7c42819db17f7f2b0de3129"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "m.nazarewicz@samsung.com",
        "time": "Wed May 05 12:53:11 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 20 13:21:42 2010 -0700"
      },
      "message": "wait_event_interruptible_locked() interface\n\nNew wait_event_interruptible{,_exclusive}_locked{,_irq} macros added.\nThey work just like versions without _locked* suffix but require the\nwait queue\u0027s lock to be held.  Also __wake_up_locked() is now exported\nas to pair it with the above macros.\n\nThe use case of this new facility is when one uses wait queue\u0027s lock\nto  protect a data structure.  This may be advantageous if the\nstructure needs to be protected by a spinlock anyway.  In particular,\nwith additional spinlock the following code has to be used to wait\nfor a condition:\n\nspin_lock(\u0026data.lock);\n...\nfor (ret \u003d 0; !ret \u0026\u0026 !(condition); ) {\n\tspin_unlock(\u0026data.lock);\n\tret \u003d wait_event_interruptible(data.wqh, (condition));\n\tspin_lock(\u0026data.lock);\n}\n...\nspin_unlock(\u0026data.lock);\n\nThis looks bizarre plus wait_event_interruptible() locks the wait\nqueue\u0027s lock anyway so there is a unlock+lock sequence where it could\nbe avoided.\n\nTo avoid those problems and benefit from wait queue\u0027s lock, a code\nsimilar to the following should be used:\n\n/* Waiting */\nspin_lock(\u0026data.wqh.lock);\n...\nret \u003d wait_event_interruptible_locked(data.wqh, (condition));\n...\nspin_unlock(\u0026data.wqh.lock);\n\n/* Waiting exclusively */\nspin_lock(\u0026data.whq.lock);\n...\nret \u003d wait_event_interruptible_exclusive_locked(data.whq, (condition));\n...\nspin_unlock(\u0026data.whq.lock);\n\n/* Waking up */\nspin_lock(\u0026data.wqh.lock);\n...\nwake_up_locked(\u0026data.wqh);\n...\nspin_unlock(\u0026data.wqh.lock);\n\nWhen spin_lock_irq() is used matching versions of macros need to be\nused (*_locked_irq()).\n\nSigned-off-by: Michal Nazarewicz \u003cm.nazarewicz@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a0fe3cc5d36a5f5b4f60abfe1a4b1caf4a5cce5a",
      "tree": "99a735d89df5bf49cf4edda1ba53bd9175d0f163",
      "parents": [
        "04afb40593f9a3007e5ea817d009529ef10fb685",
        "a62f0d27b4196bad5e900d766b285feb7069cd16"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 10:33:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 10:33:06 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (40 commits)\n  Input: psmouse - small formatting changes to better follow coding style\n  Input: synaptics - set dimensions as reported by firmware\n  Input: elantech - relax signature checks\n  Input: elantech - enforce common prefix on messages\n  Input: wistron_btns - switch to using kmemdup()\n  Input: usbtouchscreen - switch to using kmemdup()\n  Input: do not force selecting i8042 on Moorestown\n  Input: Documentation/sysrq.txt - update KEY_SYSRQ info\n  Input: 88pm860x_onkey - remove invalid irq number assignment\n  Input: i8042 - add a PNP entry to the aux device list\n  Input: i8042 - add some extra PNP keyboard types\n  Input: wm9712 - fix wm97xx_set_gpio() logic\n  Input: add keypad driver for keys interfaced to TCA6416\n  Input: remove obsolete {corgi,spitz,tosa}kbd.c\n  Input: kbtab - do not advertise unsupported events\n  Input: kbtab - simplify kbtab_disconnect()\n  Input: kbtab - fix incorrect size parameter in usb_buffer_free\n  Input: acecad - don\u0027t advertise mouse events\n  Input: acecad - fix some formatting issues\n  Input: acecad - simplify usb_acecad_disconnect()\n  ...\n\nTrivial conflict in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "46ee9645094ad1eb5b4888882ecaa1fb87dcd2a3",
      "tree": "d0a48e993568b6a2415cfc21fc06eaa2fd886429",
      "parents": [
        "fa5312d9e87e7222c6c384c4e930dc149bc1178d",
        "25f3a5a2854dce8b8413fd24cc9d5b9e3632be54"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:03:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:03:55 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM: PM QOS update fix\n  Freezer / cgroup freezer: Update stale locking comments\n  PM / platform_bus: Allow runtime PM by default\n  i2c: Fix bus-level power management callbacks\n  PM QOS update\n  PM / Hibernate: Fix block_io.c printk warning\n  PM / Hibernate: Group swap ops\n  PM / Hibernate: Move the first_sector out of swsusp_write\n  PM / Hibernate: Separate block_io\n  PM / Hibernate: Snapshot cleanup\n  FS / libfs: Implement simple_write_to_buffer\n  PM / Hibernate: document open(/dev/snapshot) side effects\n  PM / Runtime: Add sysfs debug files\n  PM: Improve device power management document\n  PM: Update device power management document\n  PM: Allow runtime_suspend methods to call pm_schedule_suspend()\n  PM: pm_wakeup - switch to using bool\n"
    },
    {
      "commit": "fa5312d9e87e7222c6c384c4e930dc149bc1178d",
      "tree": "3a181e52c7ae863de566a6b30248a175742a8406",
      "parents": [
        "9c688c114c4665ac8c6da05b2f6b987f4adc6dae",
        "4d707b9f48e2c4aa94b96f1133813b73df71fb55"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:03:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:03:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: change cancel_work_sync() to clear work-\u003edata\n  workqueue: warn about flush_scheduled_work()\n"
    },
    {
      "commit": "96b5b7f4f2d59b37c1fc2fba1ae25999accd6dcd",
      "tree": "cda421c6cd7533940b35504660a05a366a3ece0c",
      "parents": [
        "f72caf7e496465182eeda842ac66a5e75404ddf1",
        "539c99fd7fc28f8db257c713c10fb4aceadf8887"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 08:55:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 08:55:50 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (61 commits)\n  KEYS: Return more accurate error codes\n  LSM: Add __init to fixup function.\n  TOMOYO: Add pathname grouping support.\n  ima: remove ACPI dependency\n  TPM: ACPI/PNP dependency removal\n  security/selinux/ss: Use kstrdup\n  TOMOYO: Use stack memory for pending entry.\n  Revert \"ima: remove ACPI dependency\"\n  Revert \"TPM: ACPI/PNP dependency removal\"\n  KEYS: Do preallocation for __key_link()\n  TOMOYO: Use mutex_lock_interruptible.\n  KEYS: Better handling of errors from construct_alloc_key()\n  KEYS: keyring_serialise_link_sem is only needed for keyring-\u003ekeyring links\n  TOMOYO: Use GFP_NOFS rather than GFP_KERNEL.\n  ima: remove ACPI dependency\n  TPM: ACPI/PNP dependency removal\n  selinux: generalize disabling of execmem for plt-in-heap archs\n  LSM Audit: rename LSM_AUDIT_NO_AUDIT to LSM_AUDIT_DATA_NONE\n  CRED: Holding a spinlock does not imply the holding of RCU read lock\n  SMACK: Don\u0027t #include Ext2 headers\n  ...\n"
    },
    {
      "commit": "164d44fd92e79d5bce54d0d62df9f856f7b23925",
      "tree": "9f21607849b7e684b255578ffdf41951bc31787e",
      "parents": [
        "5bfec46baa3a752393433b8d89d3b2c70820f61d",
        "d7e81c269db899b800e0963dc4aceece1f82a680"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:11:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:11:10 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Add clocksource_register_hz/khz interface\n  posix-cpu-timers: Optimize run_posix_cpu_timers()\n  time: Remove xtime_cache\n  mqueue: Convert message queue timeout to use hrtimers\n  hrtimers: Provide schedule_hrtimeout for CLOCK_REALTIME\n  timers: Introduce the concept of timer slack for legacy timers\n  ntp: Remove tickadj\n  ntp: Make time_adjust static\n  time: Add xtime, wall_to_monotonic to feature-removal-schedule\n  timer: Try to survive timer callback preempt_count leak\n  timer: Split out timer function call\n  timer: Print function name for timer callbacks modifying preemption count\n  time: Clean up warp_clock()\n  cpu-timers: Avoid iterating over all threads in fastpath_timer_check()\n  cpu-timers: Change SIGEV_NONE timer implementation\n  cpu-timers: Return correct previous timer reload value\n  cpu-timers: Cleanup arm_timer()\n  cpu-timers: Simplify RLIMIT_CPU handling\n"
    },
    {
      "commit": "6e0b7b2c39b91b467270dd0bc383914f99e1fb28",
      "tree": "bdd28cb3ab5653404220d2bd9089203168ef869f",
      "parents": [
        "e4e47eb15b7884963efe7f98231009c5770a2c3d",
        "4308ad801193f14ff42cb746da37cf07e35f0d08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:09:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:09:40 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Clear CPU mask in affinity_hint when none is provided\n  genirq: Add CPU mask affinity hint\n  genirq: Remove IRQF_DISABLED from core code\n  genirq: Run irq handlers with interrupts disabled\n  genirq: Introduce request_any_context_irq()\n  genirq: Expose irq_desc-\u003enode in proc/irq\n\nFixed up trivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "fa9dc265ace9774e62f0e31108e5f47911124bda",
      "tree": "f5230efca0ccf0cfec7690a6c45209cff938d740",
      "parents": [
        "cf77e988ddfc7f047ac1ddc72cadb5eee7e09293"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed May 19 09:37:41 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 11:48:18 2010 -0700"
      },
      "message": "cpumask: fix compat getaffinity\n\nCommit a45185d2d \"cpumask: convert kernel/compat.c\" broke libnuma, which\nabuses sched_getaffinity to find out NR_CPUS in order to parse\n/sys/devices/system/node/node*/cpumap.\n\nOn NUMA systems with less than 32 possibly CPUs, the current\ncompat_sys_sched_getaffinity now returns \u00274\u0027 instead of the actual\nNR_CPUS/8, which makes libnuma bail out when parsing the cpumap.\n\nThe libnuma call sched_getaffinity(0, bitmap, 4096) at first.  It mean\nthe libnuma expect the return value of sched_getaffinity() is either len\nargument or NR_CPUS.  But it doesn\u0027t expect to return nr_cpu_ids.\n\nStrictly speaking, userland requirement are\n\n1) Glibc assume the return value mean the lengh of initialized\n   of mask argument. E.g. if sched_getaffinity(1024) return 128,\n   glibc make zero fill rest 896 byte.\n2) Libnuma assume the return value can be used to guess NR_CPUS\n   in kernel. It assume len-arg\u003cNR_CPUS makes -EINVAL. But\n   it try len\u003d4096 at first and 4096 is always bigger than\n   NR_CPUS. Then, if we remove strange min_length normalization,\n   we never hit -EINVAL case.\n\nsched_getaffinity() already solved this issue.  This patch adapts\ncompat_sys_sched_getaffinity() to match the non-compat case.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nReported-by: Ken Werner \u003cken.werner@web.de\u003e\nCc: stable@kernel.org\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba0234ec35127fe21d373db53cbaf9fe20620cb6",
      "tree": "a2cbef204482512ae9e723f2bf4d22051975ef45",
      "parents": [
        "537b60d17894b7c19a6060feae40299d7109d6e7",
        "939e379e9e183ae6291ac7caa4a5e1dfadae4ccc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 11:35:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 11:35:30 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6: (24 commits)\n  [S390] drivers/s390/char: Use kmemdup\n  [S390] drivers/s390/char: Use kstrdup\n  [S390] debug: enable exception-trace debug facility\n  [S390] s390_hypfs: Add new attributes\n  [S390] qdio: remove API wrappers\n  [S390] qdio: set correct bit in dsci\n  [S390] qdio: dont convert timestamps to microseconds\n  [S390] qdio: remove memset hack\n  [S390] qdio: prevent starvation on PCI devices\n  [S390] qdio: count number of qdio interrupts\n  [S390] user space fault: report fault before calling do_exit\n  [S390] topology: expose core identifier\n  [S390] dasd: remove uid from devmap\n  [S390] dasd: add dynamic pav toleration\n  [S390] vdso: add missing vdso_install target\n  [S390] vdso: remove redundant check for CONFIG_64BIT\n  [S390] avoid default_llseek in s390 drivers\n  [S390] vmcp: disallow modular build\n  [S390] add breaking event address for user space\n  [S390] virtualization aware cpu measurement\n  ...\n"
    },
    {
      "commit": "8d0bc2b456103a34c11e01305cd1aed1cde579e5",
      "tree": "5e1e6ad55cc9e2b5c5617f6f320114b8cff9e3f3",
      "parents": [
        "30ba3ead05763b172acaa65ae1be71af2a878940",
        "e40152ee1e1c7a63f4777791863215e3faa37a86"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 19 10:12:41 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 19 10:12:41 2010 -0700"
      },
      "message": "Merge commit \u0027v2.6.34\u0027 into next\n"
    },
    {
      "commit": "480b02df3aa9f07d1c7df0cd8be7a5ca73893455",
      "tree": "27b51ecc15bb30b0d79bb0c702a0124c8b4848fc",
      "parents": [
        "fedb3d27d9e8606b3867b5ae49d6258458a07a72"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 19 17:33:39 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 19 17:33:39 2010 +0930"
      },
      "message": "module: drop the lock while waiting for module to complete initialization.\n\nThis fixes \"gave up waiting for init of module libcrc32c.\" which\nhappened at boot time due to multiple parallel module loads.\n\nThe problem was a deadlock: we wait for a module to finish\ninitializing, but we keep the module_lock mutex so it can\u0027t complete.\nIn particular, this could reasonably happen if a module does a\nrequest_module() in its initialization routine.\n\nSo we change use_module() to return an errno rather than a bool, and if\nit\u0027s -EBUSY we drop the lock and wait in the caller, then reaquire the\nlock.\n\nReported-by: Brandon Philips \u003cbrandon@ifup.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Brandon Philips \u003cbrandon@ifup.org\u003e\n"
    },
    {
      "commit": "92946bc72f2e74c3281b7fc12be9704d455fb3ed",
      "tree": "ada5ffa170890c5aea6d144033335b82067f0cf8",
      "parents": [
        "b2be05273a1744d175bf4b67f6665637bb9ac7a8"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sat Apr 03 19:36:42 2010 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Wed May 19 08:37:43 2010 +0100"
      },
      "message": "panic: Add taint flag TAINT_FIRMWARE_WORKAROUND (\u0027I\u0027)\n\nThis taint flag will initially be used when warning about invalid ACPI\nDMAR tables.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "b2be05273a1744d175bf4b67f6665637bb9ac7a8",
      "tree": "c0b6333fbc7a1834bfc0eec86dd204b1daacf1b4",
      "parents": [
        "8954da1f82a468deeeae3683252b5440e7f4ccbe"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sat Apr 03 19:34:56 2010 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Wed May 19 08:36:48 2010 +0100"
      },
      "message": "panic: Allow warnings to set different taint flags\n\nWARN() is used in some places to report firmware or hardware bugs that\nare then worked-around.  These bugs do not affect the stability of the\nkernel and should not set the flag for TAINT_WARN.  To allow for this,\nadd WARN_TAINT() and WARN_TAINT_ONCE() macros that take a taint number\nas argument.\n\nArchitectures that implement warnings using trap instructions instead\nof calls to warn_slowpath_*() now implement __WARN_TAINT(taint)\ninstead of __WARN().\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nAcked-by: Helge Deller \u003cdeller@gmx.de\u003e\nTested-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487",
      "tree": "fa7f8400ac685fb52e96f64997c7c682fc2aa021",
      "parents": [
        "7b39f90fabcf9e2af0cd79d0a60440d821e22b56",
        "537b60d17894b7c19a6060feae40299d7109d6e7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 18 23:01:55 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 18 23:01:55 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tinclude/linux/mod_devicetable.h\n\tscripts/mod/file2alias.c\n"
    },
    {
      "commit": "3789ae7dcd29fa146b23dc30377925d1f73c8adf",
      "tree": "39f4bc70ccbfafa9290f21bc23bbf296d8656538",
      "parents": [
        "0198ffd135f51d4fbb0c50036395716c06632ed9"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed May 19 13:45:35 2010 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed May 19 13:45:35 2010 +1000"
      },
      "message": "padata: Use get_online_cpus/put_online_cpus in padata_free\n\nAdd get_online_cpus/put_online_cpus to ensure that no cpu goes\noffline during the flushing of the padata percpu queues.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "0198ffd135f51d4fbb0c50036395716c06632ed9",
      "tree": "70ee8c360df43a2077eac0e033ab54a65394a29f",
      "parents": [
        "2b73b07ab8a44ce171e07a328439f311481a7ea7"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed May 19 13:44:27 2010 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed May 19 13:44:27 2010 +1000"
      },
      "message": "padata: Add some code comments\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "2b73b07ab8a44ce171e07a328439f311481a7ea7",
      "tree": "0a050dbe8eca78e1a8efff9b023e192c1f11633f",
      "parents": [
        "d46a5ac7a7e2045e33c6ad6ffb8cf18a7e86a15a"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed May 19 13:43:46 2010 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed May 19 13:43:46 2010 +1000"
      },
      "message": "padata: Flush the padata queues actively\n\nyield was used to wait until all references of the internal control\nstructure in use are dropped before it is freed. This patch implements\npadata_flush_queues which actively flushes the padata percpu queues\nin this case.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "d46a5ac7a7e2045e33c6ad6ffb8cf18a7e86a15a",
      "tree": "2ccfba3ee24ed28e80ae3e3be330a7b44f77dbcf",
      "parents": [
        "18eb8ea6ee4cc9ed39b45f95b734f523bcfb586b"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed May 19 13:43:14 2010 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed May 19 13:43:14 2010 +1000"
      },
      "message": "padata: Use a timer to handle remaining objects in the reorder queues \n\npadata_get_next needs to check whether the next object that\nneed serialization must be parallel processed by the local cpu.\nThis check was wrong implemented and returned always true,\nso the try_again loop in padata_reorder was never taken. This\ncan lead to object leaks in some rare cases due to a race that\nappears with the trylock in padata_reorder. The try_again loop\nwas not a good idea after all, because a cpu could take that\nloop frequently, so we handle this with a timer instead.\n\nThis patch adds a timer to handle the race that appears with\nthe trylock. If cpu1 queues an object to the reorder queue while\ncpu2 holds the pd-\u003elock but left the while loop in padata_reorder\nalready, cpu2 can\u0027t care for this object and cpu1 exits because\nit can\u0027t get the lock. Usually the next cpu that takes the lock\ncares for this object too. We need the timer just if this object\nwas the last one that arrives to the reorder queues. The timer\nfunction sends it out in this case.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "752f114fb83c5839de37a250b4f8257ed5438341",
      "tree": "c565c3b6670d21ad7f5cd6cdda5864a76d3f2e0c",
      "parents": [
        "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
        "ad56b0797e67df5e04b2f1a1e02900145c5c16f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:35:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:35:04 2010 -0700"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix \"integer as NULL pointer\" warning.\n  tracing: Fix tracepoint.h DECLARE_TRACE() to allow more than one header\n  tracing: Make the documentation clear on trace_event boot option\n  ring-buffer: Wrap open-coded WARN_ONCE\n  tracing: Convert nop macros to static inlines\n  tracing: Fix sleep time function profiling\n  tracing: Show sample std dev in function profiling\n  tracing: Add documentation for trace commands mod, traceon/traceoff\n  ring-buffer: Make benchmark handle missed events\n  ring-buffer: Make non-consuming read less expensive with lots of cpus.\n  tracing: Add graph output support for irqsoff tracer\n  tracing: Have graph flags passed in to ouput functions\n  tracing: Add ftrace events for graph tracer\n  tracing: Dump either the oops\u0027s cpu source or all cpus buffers\n  tracing: Fix uninitialized variable of tracing/trace output\n"
    }
  ],
  "next": "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1"
}
