)]}'
{
  "log": [
    {
      "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": "36e15263aa5dcf3b72f1f88437e69497782b7ab8",
      "tree": "a1cb0cfabb8069e96df5395ae68d187cd0ed371b",
      "parents": [
        "57f87869f073929f8e8b3c73748aabb0cece19aa"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed May 26 14:43:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "kcore: add _text to KCORE_TEXT\n\nExtend KCORE_TEXT to cover the pages between _text and _stext, to allow\nexamining some important page table pages.\n\n`readelf -a` output on x86_64 before and after patch:\n\t  Type           Offset             VirtAddr           PhysAddr\nbefore    LOAD           0x00007fff8100c000 0xffffffff81009000 0x0000000000000000\nafter     LOAD           0x00007fff81003000 0xffffffff81000000 0x0000000000000000\n\nThe newly covered pages are:\n\n\t0xffffffff81000000 \u003cstartup_64\u003e etc.\n\t0xffffffff81001000 \u003cinit_level4_pgt\u003e\n\t0xffffffff81002000 \u003clevel3_ident_pgt\u003e\n\t0xffffffff81003000 \u003clevel3_kernel_pgt\u003e\n\t0xffffffff81004000 \u003clevel2_fixmap_pgt\u003e\n\t0xffffffff81005000 \u003clevel1_fixmap_pgt\u003e\n\t0xffffffff81006000 \u003clevel2_ident_pgt\u003e\n\t0xffffffff81007000 \u003clevel2_kernel_pgt\u003e\n\t0xffffffff81008000 \u003clevel2_spare_pgt\u003e\n\nBefore patch, /proc/kcore shows outdated contents for the above page\ntable pages, for example:\n\n\t(gdb) p level3_ident_pgt\n\t$1 \u003d {\u003ctext variable, no debug info\u003e} 0xffffffff81002000 \u003clevel3_ident_pgt\u003e\n\t(gdb) p/x *((pud_t *)\u0026level3_ident_pgt)@512\n\t$2 \u003d {{pud \u003d 0x1006063}, {pud \u003d 0x0} \u003crepeats 511 times\u003e}\n\nwhile the real content is:\n\n\troot@hp /home/wfg# hexdump -s 0x1002000 -n 4096 /dev/mem\n\t1002000 6063 0100 0000 0000 8067 0000 0000 0000\n\t1002010 0000 0000 0000 0000 0000 0000 0000 0000\n\t*\n\t1003000\n\nThat is, on a x86_64 box with 2GB memory, we can see first-1GB / full-2GB\nidentity mapping before/after patch:\n\n\t(gdb) p/x *((pud_t *)\u0026level3_ident_pgt)@512\nbefore  $1 \u003d {{pud \u003d 0x1006063}, {pud \u003d 0x0} \u003crepeats 511 times\u003e}\nafter   $1 \u003d {{pud \u003d 0x1006063}, {pud \u003d 0x8067}, {pud \u003d 0x0} \u003crepeats 510 times\u003e}\n\nObviously the content before patch is wrong.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.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": "57f87869f073929f8e8b3c73748aabb0cece19aa",
      "tree": "b03572fb4d78f527061dedde89b71f5728ff6afe",
      "parents": [
        "73d3646029138743989b6c213628484301a72eb1"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Wed May 26 14:43:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc: remove obsolete comments\n\nA quick test shows these comments are obsolete, so just remove them.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73d3646029138743989b6c213628484301a72eb1",
      "tree": "1df20844702dbf7d8d014ae08bdb479a8350533f",
      "parents": [
        "b3ac022cb9dc5883505a88b159d1b240ad1ef405"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed May 26 14:43:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc: cleanup: remove unused assignments\n\nI removed 3 unused assignments.  The first two get reset on the first\nstatement of their functions.  For \"err\" in root.c we don\u0027t return an\nerror and we don\u0027t use the variable again.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "dd98acf74762764fbc4382a1d9a244f11a2658cc",
      "tree": "e194cc516ccc8812a0424dfd2ca1c32bf1052cd4",
      "parents": [
        "5089a9768041206c76fac299ccd82a528c24c254"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "keyctl_session_to_parent(): use thread_group_empty() to check singlethreadness\n\nNo functional changes.\n\nkeyctl_session_to_parent() is the only user of signal-\u003ecount which needs\nthe correct value.  Change it to use thread_group_empty() instead, this\nmust be strictly equivalent under tasklist, and imho looks better.\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": "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": "7e49827cc937a742ae02078b483e3eb78f791a2a",
      "tree": "0f3e0a8483a41b2221c74b8286b2349af03dab04",
      "parents": [
        "6e1be45aa6ba6a36c0312f65ecf311135c73001d"
      ],
      "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: get_nr_threads() doesn\u0027t need -\u003esiglock any longer\n\nNow that task-\u003esignal can\u0027t go away get_nr_threads() doesn\u0027t need\n-\u003esiglock to read signal-\u003ecount.\n\nAlso, make it inline, move into sched.h, and convert 2 other proc users of\nsignal-\u003ecount to use this (now trivial) helper.\n\nHenceforth get_nr_threads() is the only valid user of signal-\u003ecount, we\nare ready to turn it into \"int nr_threads\" or, perhaps, kill it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.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": "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": "ffdf91856c812646aa276711fa7e3ad80b00764a",
      "tree": "0a6d0e6e1edb78aee411c3fb302c43acf34dc7d6",
      "parents": [
        "d30fda355188272430d3865db2ff9e24b4135ae3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "ia64: ptrace_attach_sync_user_rbs: avoid \"task-\u003esignal !\u003d NULL\" checks\n\nPreparation to make task-\u003esignal immutable, no functional changes.\n\nIt doesn\u0027t matter which pointer we check under tasklist to ensure the task\nwas not released, -\u003esignal or -\u003esighand.  But we are going to make\n-\u003esignal refcountable, change the code to use -\u003esighand.\n\nNote: this code doesn\u0027t need this check and tasklist_lock at all, it\nshould be converted to use lock_task_sighand().  And, the code under\nSIGNAL_STOP_STOPPED check looks wrong.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: 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": "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": "269b005a28e124a341df4adef2c3661cf7371fcc",
      "tree": "226b105cc4c1bbe0b3fe92f2733708a7dc2dedb8",
      "parents": [
        "5e43aef530ba39206f7923295388f7ec3c5a7d93"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "coredump: shift down_write(mmap_sem) into coredump_wait()\n\n- move the cprm.mm_flags checks up, before we take mmap_sem\n\n- move down_write(mmap_sem) and -\u003ecore_state check from do_coredump()\n  to coredump_wait()\n\nThis simplifies the code and makes the locking symmetrical.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@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": "5e43aef530ba39206f7923295388f7ec3c5a7d93",
      "tree": "b29b706cff64eb47cc881a793566e38a511843f1",
      "parents": [
        "d5bf4c4f5f9dcc90b7e25dbb2f7c4436cf6e7ed0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "coredump: factor out put_cred() calls\n\nGiven that do_coredump() calls put_cred() on exit path, it is a bit ugly\nto do put_cred() + \"goto fail\" twice, just add the new \"fail_creds\" label.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@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": "d5bf4c4f5f9dcc90b7e25dbb2f7c4436cf6e7ed0",
      "tree": "8c07402f685245fdf3397fac47bc7194f686066d",
      "parents": [
        "c713541125002b8bc9e681af3b09118e771e2d8a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "coredump: cleanup \"ispipe\" code\n\n- kill \"int dump_count\", argv_split(argcp) accepts argcp \u003d\u003d NULL.\n\n- move \"int dump_count\" under \" if (ispipe)\" branch, fail_dropcount\n  can check ispipe.\n\n- move \"char **helper_argv\" as well, change the code to do argv_free()\n  right after call_usermodehelper_fns().\n\n- If call_usermodehelper_fns() fails goto close_fail label instead\n  of closing the file by hand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@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": "c713541125002b8bc9e681af3b09118e771e2d8a",
      "tree": "6c85885dc2403b0310ab13e1c21dcb30960ced83",
      "parents": [
        "04b1c384fbc4e0209e5c1affb67050886376d44b"
      ],
      "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": "coredump: factor out the not-ispipe file checks\n\ndo_coredump() does a lot of file checks after it opens the file or calls\nusermode helper.  But all of these checks are only needed in !ispipe case.\n\nMove this code into the \"else\" branch and kill the ugly repetitive ispipe\nchecks.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@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": "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": "2c488db27b614816024e7994117f599337de0f34",
      "tree": "1ccfe14f5b2bede321004427babdad111a3b0c8e",
      "parents": [
        "907860ed381a31b0102f362df67c1c5cae6ef050"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed May 26 14:42:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "memcg: clean up memory thresholds\n\nIntroduce struct mem_cgroup_thresholds.  It helps to reduce number of\nchecks of thresholds type (memory or mem+swap).\n\n[akpm@linux-foundation.org: repair comment]\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\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: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: 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": "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": "ac39cf8cb86c45eeac6a592ce0d58f9021a97235",
      "tree": "7321cafb0a1f8f2727c86f9d29159751df856c59",
      "parents": [
        "315c1998e10527ff364a9883048455e609bc7232"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "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": "memcg: fix mis-accounting of file mapped racy with migration\n\nFILE_MAPPED per memcg of migrated file cache is not properly updated,\nbecause our hook in page_add_file_rmap() can\u0027t know to which memcg\nFILE_MAPPED should be counted.\n\nBasically, this patch is for fixing the bug but includes some big changes\nto fix up other messes.\n\nNow, at migrating mapped file, events happen in following sequence.\n\n 1. allocate a new page.\n 2. get memcg of an old page.\n 3. charge ageinst a new page before migration. But at this point,\n    no changes to new page\u0027s page_cgroup, no commit for the charge.\n    (IOW, PCG_USED bit is not set.)\n 4. page migration replaces radix-tree, old-page and new-page.\n 5. page migration remaps the new page if the old page was mapped.\n 6. Here, the new page is unlocked.\n 7. memcg commits the charge for newpage, Mark the new page\u0027s page_cgroup\n    as PCG_USED.\n\nBecause \"commit\" happens after page-remap, we can count FILE_MAPPED\nat \"5\", because we should avoid to trust page_cgroup-\u003emem_cgroup.\nif PCG_USED bit is unset.\n(Note: memcg\u0027s LRU removal code does that but LRU-isolation logic is used\n for helping it. When we overwrite page_cgroup-\u003emem_cgroup, page_cgroup is\n not on LRU or page_cgroup-\u003emem_cgroup is NULL.)\n\nWe can lose file_mapped accounting information at 5 because FILE_MAPPED\nis updated only when mapcount changes 0-\u003e1. So we should catch it.\n\nBTW, historically, above implemntation comes from migration-failure\nof anonymous page. Because we charge both of old page and new page\nwith mapcount\u003d0, we can\u0027t catch\n  - the page is really freed before remap.\n  - migration fails but it\u0027s freed before remap\nor .....corner cases.\n\nNew migration sequence with memcg is:\n\n 1. allocate a new page.\n 2. mark PageCgroupMigration to the old page.\n 3. charge against a new page onto the old page\u0027s memcg. (here, new page\u0027s pc\n    is marked as PageCgroupUsed.)\n 4. page migration replaces radix-tree, page table, etc...\n 5. At remapping, new page\u0027s page_cgroup is now makrked as \"USED\"\n    We can catch 0-\u003e1 event and FILE_MAPPED will be properly updated.\n\n    And we can catch SWAPOUT event after unlock this and freeing this\n    page by unmap() can be caught.\n\n 7. Clear PageCgroupMigration of the old page.\n\nSo, FILE_MAPPED will be correctly updated.\n\nThen, for what MIGRATION flag is ?\n  Without it, at migration failure, we may have to charge old page again\n  because it may be fully unmapped. \"charge\" means that we have to dive into\n  memory reclaim or something complated. So, it\u0027s better to avoid\n  charge it again. Before this patch, __commit_charge() was working for\n  both of the old/new page and fixed up all. But this technique has some\n  racy condtion around FILE_MAPPED and SWAPOUT etc...\n  Now, the kernel use MIGRATION flag and don\u0027t uncharge old page until\n  the end of migration.\n\nI hope this change will make memcg\u0027s page migration much simpler.  This\npage migration has caused several troubles.  Worth to add a flag for\nsimplification.\n\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nTested-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReported-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "315c1998e10527ff364a9883048455e609bc7232",
      "tree": "081c072b7e7a48df369fd80142e611c3f36d3cfd",
      "parents": [
        "5407a56257b6ade44fd9bcac972c99845b7413cd"
      ],
      "author": {
        "name": "Phil Carmody",
        "email": "ext-phil.2.carmody@nokia.com",
        "time": "Wed May 26 14:42:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "mm: memcontrol - uninitialised return value\n\nOnly an out of memory error will cause ret to be set.\n\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5407a56257b6ade44fd9bcac972c99845b7413cd",
      "tree": "833a55856af25fe9be5e8a871d89f43677eac512",
      "parents": [
        "df64f81bb1e01cbef967a96642dacf208acb7e72"
      ],
      "author": {
        "name": "Phil Carmody",
        "email": "ext-phil.2.carmody@nokia.com",
        "time": "Wed May 26 14:42:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "mm: remove unnecessary use of atomic\n\nThe bottom 4 hunks are atomically changing memory to which there are no\naliases as it\u0027s freshly allocated, so there\u0027s no need to use atomic\noperations.\n\nThe other hunks are just atomic_read and atomic_set, and do not involve\nany read-modify-write.  The use of atomic_{read,set} doesn\u0027t prevent a\nread/write or write/write race, so if a race were possible (I\u0027m not saying\none is), then it would still be there even with atomic_set.\n\nSee:\nhttp://digitalvampire.org/blog/index.php/2007/05/13/atomic-cargo-cults/\n\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df64f81bb1e01cbef967a96642dacf208acb7e72",
      "tree": "accb54ac130b2ac52b3d8644cb6585cf9730975c",
      "parents": [
        "dc10e281f5fc42e288ab979294d1d5dc9743ae1b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed May 26 14:42:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "memcg: make oom killer a no-op when no killable task can be found\n\nIt\u0027s pointless to try to kill current if select_bad_process() did not find\nan eligible task to kill in mem_cgroup_out_of_memory() since it\u0027s\nguaranteed that current is a member of the memcg that is oom and it is, by\ndefinition, unkillable.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc10e281f5fc42e288ab979294d1d5dc9743ae1b",
      "tree": "186ab100831ae92b10cd543eb666372f51917ab8",
      "parents": [
        "87946a72283be3de936adc754b7007df7d3e6aeb"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed May 26 14:42:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "memcg: update documentation\n\nSome information are old, and I think current document doesn\u0027t work as \"a\nguide for users\".  We need summary of all of our controls, at least.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87946a72283be3de936adc754b7007df7d3e6aeb",
      "tree": "0593c87ba36bae13d6a6d5dda65ebb41354954f8",
      "parents": [
        "90254a65833b67502d14736410b3857a15535c67"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed May 26 14:42:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "memcg: move charge of file pages\n\nThis patch adds support for moving charge of file pages, which include\nnormal file, tmpfs file and swaps of tmpfs file.  It\u0027s enabled by setting\nbit 1 of \u003ctarget cgroup\u003e/memory.move_charge_at_immigrate.\n\nUnlike the case of anonymous pages, file pages(and swaps) in the range\nmmapped by the task will be moved even if the task hasn\u0027t done page fault,\ni.e.  they might not be the task\u0027s \"RSS\", but other task\u0027s \"RSS\" that maps\nthe same file.  And mapcount of the page is ignored(the page can be moved\neven if page_mapcount(page) \u003e 1).  So, conditions that the page/swap\nshould be met to be moved is that it must be in the range mmapped by the\ntarget task and it must be charged to the old cgroup.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90254a65833b67502d14736410b3857a15535c67",
      "tree": "e03ec501b4a585c0d112469f36100ec41a715345",
      "parents": [
        "3c11ecf448eff8f12922c498b8274ce98587eb74"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed May 26 14:42:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "memcg: clean up move charge\n\nThis patch cleans up move charge code by:\n\n- define functions to handle pte for each types, and make\n  is_target_pte_for_mc() cleaner.\n\n- instead of checking the MOVE_CHARGE_TYPE_ANON bit, define a function\n  that checks the bit.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c11ecf448eff8f12922c498b8274ce98587eb74",
      "tree": "0a28aeef7759ead93ff58fd7db2fe61797523f7e",
      "parents": [
        "9490ff275606da012d5b373342a49610ad61cb81"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed May 26 14:42:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "memcg: oom kill disable and oom status\n\nThis adds a feature to disable oom-killer for memcg, if disabled, of\ncourse, tasks under memcg will stop.\n\nBut now, we have oom-notifier for memcg.  And the world around memcg is\nnot under out-of-memory.  memcg\u0027s out-of-memory just shows memcg hits\nlimit.  Then, administrator or management daemon can recover the situation\nby\n\n\t- kill some process\n\t- enlarge limit, add more swap.\n\t- migrate some tasks\n\t- remove file cache on tmps (difficult ?)\n\nUnlike oom-killer, you can take enough information before killing tasks.\n(by gcore, or, ps etc.)\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9490ff275606da012d5b373342a49610ad61cb81",
      "tree": "037993e807654da633776066129b001f8bae7d1d",
      "parents": [
        "dc98df5a1b7be402a0e1c71f1b89ccf249ac15ee"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed May 26 14:42:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "memcg: oom notifier\n\nConsidering containers or other resource management softwares in userland,\nevent notification of OOM in memcg should be implemented.  Now, memcg has\n\"threshold\" notifier which uses eventfd, we can make use of it for oom\nnotification.\n\nThis patch adds oom notification eventfd callback for memcg.  The usage is\nvery similar to threshold notifier, but control file is memory.oom_control\nand no arguments other than eventfd is required.\n\n\t% cgroup_event_notifier /cgroup/A/memory.oom_control dummy\n\t(About cgroup_event_notifier, see Documentation/cgroup/)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc98df5a1b7be402a0e1c71f1b89ccf249ac15ee",
      "tree": "d54f48e26563eadd11114c787b5c27b4e44ebb19",
      "parents": [
        "595f4b694c2424f2af6e1de74c955bbe9cd7b73d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed May 26 14:42:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "memcg: oom wakeup filter\n\nmemcg\u0027s oom waitqueue is a system-wide wait_queue (for handling\nhierarchy.) So, it\u0027s better to add custom wake function and do filtering\nin wake up path.\n\nThis patch adds a filtering feature for waking up oom-waiters.  Hierarchy\nis properly handled.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "595f4b694c2424f2af6e1de74c955bbe9cd7b73d",
      "tree": "b684c2fa5ad07b471b4203000f777f03b6fa7392",
      "parents": [
        "6d06b81bce5f325055e4cdf6621e827b512b7f89"
      ],
      "author": {
        "name": "Trevor Woerner",
        "email": "twoerner@gmail.com",
        "time": "Wed May 26 14:42:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "Documentation/cgroups/cgroups.txt: fix reference to \"numtasks\"\n\nSigned-off-by: Trevor Woerner \u003ctwoerner@gmail.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d06b81bce5f325055e4cdf6621e827b512b7f89",
      "tree": "89425bc907324284011285960f0791a55b06eb12",
      "parents": [
        "d27d7a9a7838587fcdcc6f2b042f5610eb4984a1"
      ],
      "author": {
        "name": "Arce, Abraham",
        "email": "x0066660@ti.com",
        "time": "Wed May 26 14:42:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "Documentation: SubmittingDrivers: Resources\n\n- Add additional location (Git) for the kernel master tree\n- Add reference to Git Project\n\nSigned-off-by: Abraham Arce \u003cx0066660@ti.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d27d7a9a7838587fcdcc6f2b042f5610eb4984a1",
      "tree": "1f54d3904a7a80cb483074478aaa36e72f60cd6b",
      "parents": [
        "b8d6b0d6b6882a53e4586a07e1292223d55299d1"
      ],
      "author": {
        "name": "Thomas Stewart",
        "email": "thomas@stewarts.org.uk",
        "time": "Wed May 26 14:42:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "ufs: permit mounting of BorderWare filesystems\n\nI recently had to recover some files from an old broken machine that was\nrunning BorderWare Document Gateway.  It\u0027s basically a drop in web server\nfor sharing files.  From the look of the init process and using strings on\nof a few files it seems to be based on FreeBSD 3.3.\n\nThe process turned out to be more difficult than I imagined, but to cut a\nlong story short BorderWare in their wisdom use a nonstandard magic number\nin their UFS (ufstype\u003d44bsd) file systems.  Thus Linux refuses to mount\nthe file systems in order to recover the data.  After a bit of hunting I\nwas able to make a quick fix to fs/ufs/super.c in order to detect the new\nmagic number.\n\nI assume that this number is the same for all installations.  It\u0027s quite\neasy to find out from ufs_fs.h.  The superblock sits 8k into the block\ndevice and the magic number its 1372 bytes into the superblock struct.\n\n# dd if\u003d/dev/sda5 skip\u003d$(( 8192 + 1372 )) bs\u003d1 count\u003d4 2\u003e /dev/null | hd\n00000000  97 26 24 0f                                       |.\u0026$.|\n#\n\nSigned-off-by: Thomas Stewart \u003cthomas@stewarts.org.uk\u003e\nCc: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8d6b0d6b6882a53e4586a07e1292223d55299d1",
      "tree": "057cd0237cbd37ccd17d497a415163432a8be9b1",
      "parents": [
        "8fc809d17984f18fbad7ae23e47a62b195969c19"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "drivers/telephony/ixj.c: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8fc809d17984f18fbad7ae23e47a62b195969c19",
      "tree": "2e08e2c9e11beabc6ac6379ca085f9030bd40021",
      "parents": [
        "d11991cbacaa9283de2b6e362e7ec5f21bc40044"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed May 26 14:42:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "fbdev: bf54x-lq043fb: fix unused warnings with backlight code\n\nThe current backlight code is stubbed out, so the new props changes added\nsome warnings:\ndrivers/video/bf54x-lq043fb.c: In function \u0027bfin_bf54x_probe\u0027:\ndrivers/video/bf54x-lq043fb.c:666: warning: label \u0027out9\u0027 defined but not used\ndrivers/video/bf54x-lq043fb.c:504: warning: unused variable \u0027props\u0027\n\nFix em !\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d11991cbacaa9283de2b6e362e7ec5f21bc40044",
      "tree": "2048b0b67d2ece46aa03bb0f561bbe4f76a9fa50",
      "parents": [
        "a51faabc666c054cb2d983fcd5152aa6d0b80604"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed May 26 14:42:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "fbdev: bfin-t350mcqb-fb: avoid unused warnings in backlight code\n\nThe current backlight code is stubbed out, so the new props changes added\nsome warnings about unused label/prop.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a51faabc666c054cb2d983fcd5152aa6d0b80604",
      "tree": "9c4514892d38e3a396128970ef2d33f288adbdf2",
      "parents": [
        "9966c4fea578bcf356c35cdf184cdacde495bc2c"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "drivers/video/via: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Joseph Chan \u003cJosephChan@via.com.tw\u003e\nCc: Scott Fang \u003cScottFang@viatech.com.cn\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9966c4fea578bcf356c35cdf184cdacde495bc2c",
      "tree": "a8e71bcc6c753403b589bf3240468fa05f674020",
      "parents": [
        "48baa18b250d5e36ed9f9bb04cdf812d74da08ca"
      ],
      "author": {
        "name": "Ondrej Zary",
        "email": "linux@rainbow-software.org",
        "time": "Wed May 26 14:42:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "add support for S3 Trio3D/1X/2X\n\nAdd support for S3 Trio3D/1X (86C360) and S3 Trio3D/2X (86C362 and 86C368)\ncards to s3fb driver.  Tested with 86C362 AGP and 86C368 PCI\u0026AGP.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nAcked-by: Ondrej Zajicek \u003csantiago@crfreenet.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48baa18b250d5e36ed9f9bb04cdf812d74da08ca",
      "tree": "385250c51d75e5d95345e0715d2da55d726adf4f",
      "parents": [
        "8081c84c9ce71ef73e591e19f1f7a516cb111e1c"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Wed May 26 14:42:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "drivers/gpio/it8761e_gpio: check return value of gpiochip_remove()\n\nThis eliminates the following build warning:\n\ndrivers/gpio/it8761e_gpio.c: In function `it8761e_gpio_exit\u0027:\ndrivers/gpio/it8761e_gpio.c:220: warning: ignoring return value of `gpiochip_remove\u0027, declared with attribute warn_unused_result\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Denis Turischev \u003cdenis@compulab.co.il\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8081c84c9ce71ef73e591e19f1f7a516cb111e1c",
      "tree": "00ef685c50dd743f6a145ddf2d0c282f91d25d2d",
      "parents": [
        "8156fae26aec0285840ffa6faff6cae017abe81b"
      ],
      "author": {
        "name": "Alek Du",
        "email": "alek.du@intel.com",
        "time": "Wed May 26 14:42:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "gpio: add Penwell gpio support\n\nIntel Penwell chip has two 96 pins GPIO blocks, which are very similiar as\nIntel Langwell chip GPIO block, except for pin number difference. This\npatch expends the original Langwell GPIO driver to support Penwell\u0027s.\n\nSigned-off-by: Alek Du \u003calek.du@intel.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8156fae26aec0285840ffa6faff6cae017abe81b",
      "tree": "a7bea92b57f79dfc80ae6303566087ae31c99a0c",
      "parents": [
        "48feb337475aaf8f8603b0db8e88c6fe3e194ab6"
      ],
      "author": {
        "name": "Felipe Balbi",
        "email": "felipe.balbi@nokia.com",
        "time": "Wed May 26 14:42:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "arm: omap: remove the unused omap_gpio_set_debounce methods\n\nNobody uses that anymore, so remove and expect drivers to use the gpiolib\nimplementation.\n\nSigned-off-by: Felipe Balbi \u003cfelipe.balbi@nokia.com\u003e\nCc: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48feb337475aaf8f8603b0db8e88c6fe3e194ab6",
      "tree": "d03926171db80c59e8b437211c46171dce4cffad",
      "parents": [
        "168ef3d9a56bd8bffe0ef4189c450888b4aefefe"
      ],
      "author": {
        "name": "Felipe Balbi",
        "email": "felipe.balbi@nokia.com",
        "time": "Wed May 26 14:42:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "arm: omap: switch over to gpio_set_debounce\n\nStop using the omap-specific implementations for gpio debouncing now that\ngpiolib provides its own support.\n\nSigned-off-by: Felipe Balbi \u003cfelipe.balbi@nokia.com\u003e\nCc: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "168ef3d9a56bd8bffe0ef4189c450888b4aefefe",
      "tree": "13f3d29419be6a8853f7cce807658a42a3d2f22a",
      "parents": [
        "c4b5be98fe78508e7199d6919eb712feba9a4f01"
      ],
      "author": {
        "name": "Felipe Balbi",
        "email": "felipe.balbi@nokia.com",
        "time": "Wed May 26 14:42:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "arm: omap: gpio: implement set_debounce method\n\nOMAP supports debouncing of gpio lines, implement the method using\ngpiolib.\n\nSigned-off-by: Felipe Balbi \u003cfelipe.balbi@nokia.com\u003e\nCc: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4b5be98fe78508e7199d6919eb712feba9a4f01",
      "tree": "9e688dd076cea9213f8bcbda3627aa7941a01879",
      "parents": [
        "796a8e423ac8afe9e98ad96e668f50142bdd7825"
      ],
      "author": {
        "name": "Felipe Balbi",
        "email": "felipe.balbi@nokia.com",
        "time": "Wed May 26 14:42:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:42 2010 -0700"
      },
      "message": "gpiolib: introduce set_debounce method\n\nA few architectures, like OMAP, allow you to set a debouncing time for the\ngpio before generating the IRQ.  Teach gpiolib about that.\n\nMark said:\n: This would be generally useful for embedded systems, especially where\n: the interrupt concerned is a wake source.  It allows drivers to avoid\n: spurious interrupts from noisy sources so if the hardware supports it\n: the driver can avoid having to explicitly wait for the signal to become\n: stable and software has to cope with fewer events.  We\u0027ve lived without\n: it for quite some time, though.\n\nDavid said:\n: I looked at adding debounce support to the generic GPIO calls (and thus\n: gpiolib) some time back, but decided against it.  I forget why at this\n: time (check list archives) but it wasn\u0027t because of lack of utility in\n: certain contexts.\n:\n: One thing to watch out for is just how variable the hardware capabilities\n: are.  Atmel GPIOs have something like a fixed number of 32K clock cycles\n: for debounce, twl4030 had something odd, OMAPs were more like the Atmel\n: chips but with a different clock.  In some cases debouncing had to be\n: ganged, not per-GPIO.  And so forth.\n\nSigned-off-by: Felipe Balbi \u003cfelipe.balbi@nokia.com\u003e\nCc: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nReviewed-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "796a8e423ac8afe9e98ad96e668f50142bdd7825",
      "tree": "1ecf3e0e86c41695e24bc0102c686aedbca98c41",
      "parents": [
        "a13c1868aa60ae7a2516b8d00ee8873dea587581"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Wed May 26 14:42:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "gpiolib: make gpiochip_add() show a better error message\n\nThe current message, \u0027not registered\u0027 is confusing as it implies it was\nnot registered with something, whereas printing \u0027failed to register\u0027\nimplies it was the gpiochip_add() call that did not work correctly.\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a13c1868aa60ae7a2516b8d00ee8873dea587581",
      "tree": "a90f714d48a3e076ef9093d5eb584e5655fbd5bd",
      "parents": [
        "5535cb681c38bda94af02ef4b043a25b52303e65"
      ],
      "author": {
        "name": "Marc Zyngier",
        "email": "maz@misterjones.org",
        "time": "Wed May 26 14:42:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "gpio: max732x: fix input configuration for open-drain pins\n\nFix a bug I noticed while hacking on the max732x driver for interrupt\nsupport.  According to the datasheets, open-drain pins have to be\nconfigured as output-high (which in that case is actually high impedance)\nto be used as input.\n\nSigned-off-by: Marc Zyngier \u003cmaz@misterjones.org\u003e\nAcked-by: Eric Miao \u003ceric.y.miao@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5535cb681c38bda94af02ef4b043a25b52303e65",
      "tree": "9ad66972714c55298a2d64e332b1211419421aa4",
      "parents": [
        "c1cc9b9775c931a0015178daf92d41aec00580de"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Wed May 26 14:42:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "max732x: correct nr_port checking off by one error\n\nSetup both client_group_a and client_group_b if nr_port \u003e 8 (not including\nnr_port\u003d\u003d8).\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1cc9b9775c931a0015178daf92d41aec00580de",
      "tree": "750cd8b9dc72d1e68597e8848cdffe8273ce1701",
      "parents": [
        "7839ec78214ecf477cc9e2862233b8d9fcf4ec58"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Wed May 26 14:42:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "pl061: fix offset value range checking\n\nThe valid offset value is 0..PL061_GPIO_NR-1, this patch corrects the\noffset value range checking.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7839ec78214ecf477cc9e2862233b8d9fcf4ec58",
      "tree": "2adf5796b9eb1cbae7196f11c0751add4ede9413",
      "parents": [
        "7cfe1395b28c472e569db6595a27bfefb161a7bc"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Wed May 26 14:42:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "gpiolib: document that names can contain printk format specifiers\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7cfe1395b28c472e569db6595a27bfefb161a7bc",
      "tree": "e7057809273ae64cf8627e1e55165211294b6b8e",
      "parents": [
        "62154991a8b2b932112d39bf4aeaab37fa7b9a31"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Wed May 26 14:42:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "gpiolib: a gpio is unsigned, so use %u to print it\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62154991a8b2b932112d39bf4aeaab37fa7b9a31",
      "tree": "3a66dee35354f8ffe071aa059024d9ae41d3cdaa",
      "parents": [
        "a80a0bbee49872c296c9ed9d6af0f510fcd825a7"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Wed May 26 14:42:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "gpiolib: make names array and its values const\n\ngpiolib doesn\u0027t need to modify the names and I assume most initializers\nuse string constants that shouldn\u0027t be modified anyhow.\n\n[akpm@linux-foundation.org: fix drivers/gpio/cs5535-gpio.c]\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Kevin Wells \u003ckevin.wells@nxp.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a80a0bbee49872c296c9ed9d6af0f510fcd825a7",
      "tree": "e617afb270575fbd3c05f534444fd8895fc8a0b9",
      "parents": [
        "0af62f4d1eedaacf6a85e293958699540d09fa3e"
      ],
      "author": {
        "name": "Marc Zyngier",
        "email": "maz@misterjones.org",
        "time": "Wed May 26 14:42:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "gpio: add interrupt handling capability to max732x\n\nMost of the GPIO expanders supported by the max732x driver have interrupt\ngeneration capability by reporting changes on input pins through an INT#\npin.  This patch implements the irq_chip functionnality (edge detection\nonly).\n\nSigned-off-by: Marc Zyngier \u003cmaz@misterjones.org\u003e\nCc: Eric Miao \u003ceric.y.miao@gmail.com\u003e\nCc: Jebediah Huang \u003cjebediah.huang@gmail.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0af62f4d1eedaacf6a85e293958699540d09fa3e",
      "tree": "abbd784885f7fe3632c3246da61999dfc95639af",
      "parents": [
        "7ca5ca60cba37fc4d8e99583da147faed3039ad0"
      ],
      "author": {
        "name": "Virupax Sadashivpetimath",
        "email": "virupax.sadashivpetimath@stericsson.com",
        "time": "Wed May 26 14:42:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "rtc: AB8500 RTC driver\n\nAdd a driver for the RTC on the AB8500 power management chip.  This is a\nclient of the AB8500 MFD driver.\n\nSigned-off-by: Virupax Sadashivpetimath \u003cvirupax.sadashivpetimath@stericsson.com\u003e\nSigned-off-by: Rabin Vincent \u003crabin.vincent@stericsson.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nAcked-by: Srinidhi Kasagar \u003csrinidhi.kasagar@stericsson.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ca5ca60cba37fc4d8e99583da147faed3039ad0",
      "tree": "c68aaea107be75e0c48ed330716bcfc3f61f87a7",
      "parents": [
        "b81d67a50c0f3021d170466388bec3e7fc3abe75"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "fs/autofs4: use memdup_user\n\nUse memdup_user when user data is immediately copied into the allocated\nregion.  Elimination of the variable ads, which is no longer useful.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b81d67a50c0f3021d170466388bec3e7fc3abe75",
      "tree": "c9b974f52d7aef6e401f2ffe0b9b724c1b14e891",
      "parents": [
        "9b71ca2005a93ad813b95d92578131ab899ccc5d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "drivers/message/i2o/i2o_config.c: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b71ca2005a93ad813b95d92578131ab899ccc5d",
      "tree": "9579c7b16e155de25c23ee227a11c62817e14ec4",
      "parents": [
        "dc0fd7b56141999832a6bccda2f7e9765f0bc087"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "drivers/char/vt.c: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc0fd7b56141999832a6bccda2f7e9765f0bc087",
      "tree": "fbd92ad8910f41865909d04198011492266b0752",
      "parents": [
        "c63b3cba4f47ef9f4b3f952b4f923cf341d250ac"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "drivers/mmc/host: use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c63b3cba4f47ef9f4b3f952b4f923cf341d250ac",
      "tree": "dc472d6c93cd7878609752ebe74476b0701e0d96",
      "parents": [
        "6c1f716e8154ee9315534782b9b1eedea0559a24"
      ],
      "author": {
        "name": "Viresh KUMAR",
        "email": "viresh.kumar@st.com",
        "time": "Wed May 26 14:42:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "sdhci-spear: ST SPEAr based SDHCI controller glue\n\nAdd a glue layer to support the sdhci driver on the ST SPEAr platform.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nCc: \u003cshiraz.hashim@st.com\u003e\nCc: Linus Walleij \u003clinus.ml.walleij@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c1f716e8154ee9315534782b9b1eedea0559a24",
      "tree": "a30bf84dddede683fee5a46d2468b8f02e67a0cb",
      "parents": [
        "1a13f8fa76c880be41d6b1e6a2b44404bcbfdf9e"
      ],
      "author": {
        "name": "Grazvydas Ignotas",
        "email": "notasas@gmail.com",
        "time": "Wed May 26 14:42:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "sdio: add new function for RAW (Read after Write) operation\n\nSDIO specification allows RAW (Read after Write) operation using\nIO_RW_DIRECT command (CMD52) by setting the RAW bit.  This operation is\nsimilar to ordinary read/write commands, except that both write and read\nare performed using single command/response pair.  The Linux SDIO layer\nalready supports this internaly, only external function is missing for\ndrivers to make use, which is added by this patch.\n\nThis type of command is required to implement proper power save mode\nsupport in wl1251 wifi driver.\n\nAndroid has similar patch for G1 in it\u0027s tree for the same reason:\n\nhttp://android.git.kernel.org/?p\u003dkernel/common.git;a\u003dcommitdiff;h\u003d74a47786f6ecbe6c1cf9fb15efe6a968451deb52\n\nSigned-off-by: Grazvydas Ignotas \u003cnotasas@gmail.com\u003e\nAcked-by: Kalle Valo \u003ckalle.valo@iki.fi\u003e\nCc: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a13f8fa76c880be41d6b1e6a2b44404bcbfdf9e",
      "tree": "3b4239740ca22d19780d05da92cdd203828ea17f",
      "parents": [
        "a791daa15305e7e549a418ef0ae6bc4b4580066e"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt@console-pimps.org",
        "time": "Wed May 26 14:42:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "mmc: remove the \"state\" argument to mmc_suspend_host()\n\nEven though many mmc host drivers pass a pm_message_t argument to\nmmc_suspend_host() that argument isn\u0027t used the by MMC core.  As host\ndrivers are converted to dev_pm_ops they\u0027ll have to construct\npm_message_t\u0027s (as they won\u0027t be passed by the PM subsystem any more) just\nto appease the mmc suspend interface.\n\nWe might as well just delete the unused paramter.\n\nSigned-off-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nAcked-by: Anton Vorontsov \u003ccbouatmailru@gmail.com\u003e\nAcked-by: Michal Miroslaw \u003cmirq-linux@rere.qmqm.pl\u003eZZ\nAcked-by: Sascha Sommer \u003csaschasommer@freenet.de\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a791daa15305e7e549a418ef0ae6bc4b4580066e",
      "tree": "ba85b141bc4ca93cc151449964ce4f903b110c93",
      "parents": [
        "b417577d3b9bbb06a4ddc9aa955af9bd503f7242"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@deeprootsystems.com",
        "time": "Wed May 26 14:42:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "mmc: OMAP HS-MMC: convert to dev_pm_ops\n\nConvert PM operations to use dev_pm_ops.  This will facilitate the runtime\nPM coversion which will add to dev_pm_ops hooks.\n\nNote that dev_pm_ops version of the suspend hook no longer takes a \u0027state\u0027\nargument.  However, the MMC core function mmc_suspend_host() still takes a\n\u0027state\u0027 argument, but it is unused, so a dummy state variable was created\nto pass to the MMC core.\n\nIn the future, the MMC core should be converted to drop this state\nargument and the rest of the MMC drivers could be easily converted to\ndev_pm_ops as well.\n\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: Madhusudhan Chikkature \u003cmadhu.cr@ti.com\u003e\nCc: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nCc: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: Denis Karpov \u003cext-denis.2.karpov@nokia.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b417577d3b9bbb06a4ddc9aa955af9bd503f7242",
      "tree": "32ff825e6d4ee925eff02932b2954a449b060e56",
      "parents": [
        "14c5aa6d3797c6b3d09193a8423472847f738526"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Wed May 26 14:42:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "omap_hsmmc: improve interrupt synchronisation\n\nThe following changes were needed:\n\t- do not use in_interrupt() because it will not work\n\twith threaded interrupts\n\nIn addition, the following improvements were made:\n\t- ensure DMA is unmapped only after the final DMA interrupt\n\t- ensure a request is completed only after the final DMA interrupt\n\t- disable controller interrupts when a request is not in progress\n\t- remove the spin-lock protecting the start of a new request from\n\tan unexpected interrupt because the locking was complicated and\n\ta \u0027req_in_progress\u0027 flag suffices (since the spin-lock only defers\n\tthe unexpected interrupts anyway)\n\t- instead use the spin-lock to protect the MMC interrupt handler\n\tfrom the DMA interrupt handler\n\t- remove the semaphore preventing DMA from being started while\n\tthe previous DMA is still in progress - the other changes make that\n\timpossible, so it is now a BUG_ON condition\n\t- ensure the controller interrupt status is clear before exiting\n\tthe interrrupt handler\n\nIn general, these changes make the code safer but do not fix any specific\nbugs so backporting is not necessary.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nTested-by: Venkatraman S \u003csvenkatr@ti.com\u003e\nAcked-by: Madhusudhan Chikkature \u003cmadhu.cr@ti.com\u003e\nAcked-by: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14c5aa6d3797c6b3d09193a8423472847f738526",
      "tree": "3263f14d77b515e492e9c3e0f112b0606fae98d6",
      "parents": [
        "b2e75eff5e859d0c294e7405958362b26a423c6e"
      ],
      "author": {
        "name": "Maurus Cuelenaere",
        "email": "mcuelenaere@gmail.com",
        "time": "Wed May 26 14:42:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "sdhci: enable multiblock transfers in sdhci-s3c\n\nWifi over SDIO doesn\u0027t work correctly without multiblock, so enable this.\nThis patch depends on the following patches:\n\nSigned-off-by: Maurus Cuelenaere \u003cmcuelenaere@gmail.com\u003e\nCc: Thomas Abraham \u003cthomas.ab@samsung.com\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2e75eff5e859d0c294e7405958362b26a423c6e",
      "tree": "23616cc22cc08caf87b1fd3e3fff09ef03bff6ce",
      "parents": [
        "70764a905785ebacc8d44fed7a12fba3db267ae6"
      ],
      "author": {
        "name": "Thomas Abraham",
        "email": "thomas.ab@samsung.com",
        "time": "Wed May 26 14:42:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "mmc: s3c6410: enable ADMA feature in 6410 sdhci controller\n\nEnable the ADMA feature in the 6410 SDHCI controller driver.\n\nSigned-off-by: Maurus Cuelenaere \u003cmcuelenaere@gmail.com\u003e\nSigned-off-by: Thomas Abraham \u003cthomas.ab@samsung.com\u003e\nAcked-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70764a905785ebacc8d44fed7a12fba3db267ae6",
      "tree": "0d4fbf97f88182a8679af78d9de9b20f1b3916d0",
      "parents": [
        "dc297c92e6e63af5cbd7e7d2f377247f5664a378"
      ],
      "author": {
        "name": "Thomas Abraham",
        "email": "thomas.ab@samsung.com",
        "time": "Wed May 26 14:42:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "mmc: s3c6410: add new quirk in sdhci driver and update ADMA descriptor build\n\nThe s3c6410 sdhci controller does not support the \u0027End\u0027 attribute and NOP\nattribute in the same 8-Byte ADMA descriptor.  This patch adds a new quirk\nto identify sdhci host contollers with such behaviour.  In addition to\nthis, for controllers using the new quirk, the last entry in the ADMA\ndescritor table is marked with the \u0027End\u0027 attribute (instead of using a NOP\ndescriptor with \u0027End\u0027 attribute).\n\nSigned-off-by: Maurus Cuelenaere \u003cmcuelenaere@gmail.com\u003e\nSigned-off-by: Thomas Abraham \u003cthomas.ab@samsung.com\u003e\nAcked-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc297c92e6e63af5cbd7e7d2f377247f5664a378",
      "tree": "b84dd2a7f835a1922ffb18965277bba84c914bb0",
      "parents": [
        "a751a7d69fe91e4640884ae02fe44ddceb7f4cd8"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt@console-pimps.org",
        "time": "Wed May 26 14:42:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:40 2010 -0700"
      },
      "message": "sdhci: build fix: rename SDHCI I/O accessor functions\n\nUnfortunately some architectures #define their read{b,w,l} and\nwrite{b,w,l} I/O accessors which makes the SDHCI I/O accessor functions of\nthe same names subject to preprocessing.  This leads to the following\ncompiler error,\n\nIn file included from drivers/mmc/host/sdhci.c:26:\ndrivers/mmc/host/sdhci.h:318:35: error: macro \"writel\" passed 3 arguments, but takes just 2\n\nRename the SDHCI I/O functions so that CONFIG_MMC_SDHCI_IO_ACCESSORS can\nbe enabled for architectures that implement their read{b,w,l} and\nwrite{b,w,l} functions with macros.\n\nSigned-off-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Zhangfei Gao \u003czgao6@marvell.com\u003e\nAcked-by: Anton Vorontsov \u003ccbouatmailru@gmail.com\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nAcked-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a751a7d69fe91e4640884ae02fe44ddceb7f4cd8",
      "tree": "298370106b5e85f3bba283c8a85e998dac5145d2",
      "parents": [
        "88ff82ed4ff048c5548db9313b3de327c91234f8"
      ],
      "author": {
        "name": "Zhangfei Gao",
        "email": "zgao6@marvell.com",
        "time": "Wed May 26 14:42:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "mmc: SDHCI_INT_DATA_MASK typo error\n\nSigned-off-by: Zhangfei Gao \u003czgao6@marvell.com\u003e\nReviewed-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88ff82ed4ff048c5548db9313b3de327c91234f8",
      "tree": "410aad3f7b8ad92983c64982f0dc5d2f6fefb6d5",
      "parents": [
        "fdc50a9444b9781f4dd5aa5f7453300d2688cc5f"
      ],
      "author": {
        "name": "Anders Grahn",
        "email": "anders.grahn@hd-wireless.se",
        "time": "Wed May 26 14:42:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "mmc: atmel-mci: Add support for SDIO interrupts\n\nAtmel-mci support for SDIO interrupts.  This adds the enable_sdio_irq()\nfunction and the configuration of sdio irq mask per slot.  With this irq\nmask information, we keep the idea of multiple slot per sd/mmc host (not\nonly A and B).  MMC_CAP_SDIO_IRQ is added according to slot configuration.\n\nA new little function is added to run mmc_signal_sdio_irq() during\ninterrupt handling routine.\n\nSigned-off-by: Anders Grahn \u003canders.grahn@hd-wireless.se\u003e\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fdc50a9444b9781f4dd5aa5f7453300d2688cc5f",
      "tree": "d1e1e29c06ec03ecb3b217dfcdfb49f0a5eb30e2",
      "parents": [
        "99ddffd8ef84c0389e31cb4b90d9e5415ea19cb0"
      ],
      "author": {
        "name": "Yusuke Goda",
        "email": "yusuke.goda.sx@renesas.com",
        "time": "Wed May 26 14:41:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "mmc: add support MMCIF for SuperH\n\nMMCIF is the MMC Host Interface in SuperH.\n\nSigned-off-by: Yusuke Goda \u003cyusuke.goda.sx@renesas.com\u003e\nCc: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99ddffd8ef84c0389e31cb4b90d9e5415ea19cb0",
      "tree": "75821d731ab191fd5d1475e83e955397b6ce6c6a",
      "parents": [
        "6dd6bca3fb6d4f186cdc67ba9e3949ef456dcc53"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Wed May 26 14:41:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "mmc: atmel-mci: enable SD high speed support\n\nEnable high speed support for atmel-mci driver.  This support is dependent\nof the revision of the IP and, of course, the capacity of the SD card\nused.\n\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\nReviewed-by: Haavard Skinnemoen \u003chaavard.skinnemoen@atmel.com\u003e\nCc: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6dd6bca3fb6d4f186cdc67ba9e3949ef456dcc53",
      "tree": "078c1ad4c8c387def4e5f853fe8ff1e58316b1f0",
      "parents": [
        "bbce5802afc560c4a487afea3761b85fcb862fb3"
      ],
      "author": {
        "name": "Mark Asselstine",
        "email": "asselsm@gmail.com",
        "time": "Wed May 26 14:41:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "mmc: sd: clean up redundant memset\n\nThe clearing of mrq via a memset at the top of the for loop in\nmmc_wait_for_app_cmd() is not required as mrq is not used and there is\nanother clearing of mrq just below.  We remove the first memset since if\nthe initial tests in the for loop fail the memset is not required.\n\nSigned-off-by: Mark Asselstine \u003casselsm@gmail.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbce5802afc560c4a487afea3761b85fcb862fb3",
      "tree": "a484a542fff37b412276da7be5d6a91d928cf0ad",
      "parents": [
        "06de845f72eeb169ea624f17396cd41d03384940"
      ],
      "author": {
        "name": "Chaithrika U S",
        "email": "chaithrika@ti.com",
        "time": "Wed May 26 14:41:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "davinci: mmc: updates to suspend/resume implementation\n\nImprove the suspend and resume callbacks in DaVinci MMC host controller\ndriver.  Modify the reset status of the contorller and clock during\nsuspend and resume.  Also migrate the power management callbacks from\nplatform driver to dev_pm_ops structure.\n\nTested on DA850/OMAP-L138 EVM.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Chaithrika U S \u003cchaithrika@ti.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: Vipin Bhandari \u003cvipin.bhandari@ti.com\u003e\nCc: Sudhakar Rajashekhara \u003csudhakar.raj@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06de845f72eeb169ea624f17396cd41d03384940",
      "tree": "48a77b4e2672551f05eee479355da1de7c88b1b9",
      "parents": [
        "e632c45ad040a54058db577981cdc3f4b316da55"
      ],
      "author": {
        "name": "Chaithrika U S",
        "email": "chaithrika@ti.com",
        "time": "Wed May 26 14:41:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "davinci: mmc: add a function to control reset state of the controller\n\nAdd a helper function which will aid in changing the reset\nstatus of the controller.\n\nSigned-off-by: Chaithrika U S \u003cchaithrika@ti.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: Vipin Bhandari \u003cvipin.bhandari@ti.com\u003e\nCc: Sudhakar Rajashekhara \u003csudhakar.raj@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e632c45ad040a54058db577981cdc3f4b316da55",
      "tree": "988c3348fa551ed26cc654e38986c9d5b98a20da",
      "parents": [
        "a7626b7a5de37bbd506b23633be95428ee81c2e4"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Wed May 26 14:41:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "sdhci-pltfm: do not print errors in case of an extended iomem size\n\nSome hosts have an extended SDHCI iomem size, so the driver should\nonly print errors if the iomem size is less than 0x100.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nAcked-by: Richard Röjfors \u003crichard.rojfors@pelagicore.com\u003e\nCc: David Vrabel \u003cdavid.vrabel@csr.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Ben Dooks \u003cben@simtec.co.uk\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a7626b7a5de37bbd506b23633be95428ee81c2e4",
      "tree": "5979fe207a53005d4dfbfb4d2a281f8dd20b3f08",
      "parents": [
        "f27f47ef5b67106ff1cdeebf061387a7b30c12bc"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Wed May 26 14:41:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "sdhci-pltfm: implement platform data passing\n\nThis includes platform ops, quirks and (de)initialization callbacks.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: Richard Röjfors \u003crichard.rojfors@pelagicore.com\u003e\nCc: David Vrabel \u003cdavid.vrabel@csr.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Ben Dooks \u003cben@simtec.co.uk\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f27f47ef5b67106ff1cdeebf061387a7b30c12bc",
      "tree": "0238bc989cefa0df4e64eaa3c21c182c66c294c4",
      "parents": [
        "0e950fa686d53a57ee6c47f477ecfc681670c6a9"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Wed May 26 14:41:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "sdhci: implement CAP_CLOCK_BASE_BROKEN quirk\n\nSome hosts (e.g.  as found in CNS3xxx SOCs) report wrong value in\nCLOCK_BASE capability field, and currently there is no way to force the\nSDHCI core to use the platform-provided base clock value.\n\nThis patch implements CAP_CLOCK_BASE_BROKEN quirk.  When enabled, the\nSDHCI core will always use base clock frequency provided by the platform.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: Richard Röjfors \u003crichard.rojfors@pelagicore.com\u003e\nCc: David Vrabel \u003cdavid.vrabel@csr.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Ben Dooks \u003cben@simtec.co.uk\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e950fa686d53a57ee6c47f477ecfc681670c6a9",
      "tree": "ded26d5e60a5290dbfaa86b60eca049a8d0da51e",
      "parents": [
        "ca2afb6dbea74ee762ae5856af7045a57a65e9c8"
      ],
      "author": {
        "name": "Marek Belisko",
        "email": "marek.belisko@open-nandra.com",
        "time": "Wed May 26 14:41:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "mmc-omap: add support for 16-bit and 32-bit registers\n\nThe omap850 and omap730 use 16-bit registers instead of 32-bit, requiring\na modification of the register addresses in the mmc-omap driver.  To\nresolve this, a bit shift is performed on base register addresses, either\nby 1 or 2 bits depending on the CPU in use.  This yields the correct\nregisters for each CPU.\n\nSigned-off-by: Marek Belisko \u003cmarek.belisko@open-nandra.com\u003e\nSigned-off-by: Cory Maccarrone \u003cdarkstar6262@gmail.com\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: Ladislav Michl \u003cladis@linux-mips.org\u003e\nCc: Ben Dooks \u003cben@fluff.org\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca2afb6dbea74ee762ae5856af7045a57a65e9c8",
      "tree": "69bda961b3624d9a783f4ee1b52e973d0b9df507",
      "parents": [
        "31f46717997a83bdf6db0dd04810c0a329eb3148"
      ],
      "author": {
        "name": "Sudhakar Rajashekhara",
        "email": "sudhakar.raj@ti.com",
        "time": "Wed May 26 14:41:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:39 2010 -0700"
      },
      "message": "davinci: mmc: pass number of SG segments as platform data\n\nOn some platforms like DM355, the number of EDMA parameter slots available\nfor EDMA_SLOT_ANY usage are few.  In such cases, if MMC/SD uses 16 slots\nfor each instance of MMC controller, then the number of slots available\nfor other modules will be very few.\n\nBy passing the number of EDMA slots to be used in MMC driver from platform\ndata, EDMA slots available for other purposes can be controlled.\n\nMost of the platforms will not use this platform data variable.  But on\nDM355, as the number of EDMA resources available is limited, the number of\nscatter- gather segments used inside the MMC driver can be 8 (passed as\nplatform data) instead of 16.  On DM355, when the number of scatter-gather\nsegments was reduced to 8, I saw a performance difference of about\n0.25-0.4 Mbytes/sec during write.  Read performance variations were\nnegligible.\n\nSigned-off-by: Sudhakar Rajashekhara \u003csudhakar.raj@ti.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31f46717997a83bdf6db0dd04810c0a329eb3148",
      "tree": "e10ae643fb03226b639d31f07a7ad70a300d448d",
      "parents": [
        "91803b499cca2fe558abad709ce83dc896b80950",
        "2101d6f7ac791e87a274371a07a408f74e40ec49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 12:30:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 12:30:09 2010 -0700"
      },
      "message": "Merge branch \u0027drm-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  agp: amd64, fix pci reference leaks\n  drm/edid: Allow non-fatal checksum errors in CEA blocks\n  drm/radeon/kms: suppress a build warning (unused variable)\n  drm: Fixes linux-next \u0026 linux-2.6 checkstack warnings:\n  nouveau: fix acpi_lid_open undefined\n  drm/radeon/kms: release AGP bridge at suspend\n"
    }
  ],
  "next": "91803b499cca2fe558abad709ce83dc896b80950"
}
