)]}'
{
  "log": [
    {
      "commit": "e42d98ebe7d754a2c9fbccd6186721d3ca8679f6",
      "tree": "eed734672410f2eb8fab07fbd14f88bfaf8a882f",
      "parents": [
        "ce2d52cc1364a22fc1a161781e60ee3cbb499a6d"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Thu May 31 16:26:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "rapidio: add DMA engine support for RIO data transfers\n\nAdds DMA Engine framework support into RapidIO subsystem.\n\nUses DMA Engine DMA_SLAVE interface to generate data transfers to/from\nremote RapidIO target devices.\n\nIntroduces RapidIO-specific wrapper for prep_slave_sg() interface with an\nextra parameter to pass target specific information.\n\nUses scatterlist to describe local data buffer.  Address flat data buffer\non a remote side.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Vinod Koul \u003cvinod.koul@linux.intel.com\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cef0184c115e5e4e10498f6548d9526465e72478",
      "tree": "752c4116e0f93328239db9ff2c2ed730fef3ce0e",
      "parents": [
        "fd1f87d24d492fda464bedf10a5dd5174ff9b065"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 31 16:26:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "mqueue: separate mqueue default value from maximum value\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed\nmqueue default value when attr parameter is specified NULL from hard\ncoded value to fs.mqueue.{msg,msgsize}_max sysctl value.\n\nThis made large side effect.  When user need to use two mqueue\napplications 1) using !NULL attr parameter and it require big message\nsize and 2) using NULL attr parameter and only need small size message,\napp (1) require to raise fs.mqueue.msgsize_max and app (2) consume large\nmemory size even though it doesn\u0027t need.\n\nDoug Ledford propsed to switch back it to static hard coded value.\nHowever it also has a compatibility problem.  Some applications might\nstarted depend on the default value is tunable.\n\nThe solution is to separate default value from maximum value.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6315bb154e778391ce64b194756bd3d108dadf6",
      "tree": "6b0df724ed5e52058f61261d93f807ea0ee77d11",
      "parents": [
        "5b5c4d1a1440e94994c73dddbad7be0676cd8b9a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 31 16:26:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "mqueue: revert bump up DFLT_*MAX\n\nMqueue limitation is slightly naieve parameter likes other ipcs because\nunprivileged user can consume kernel memory by using ipcs.\n\nThus, too aggressive raise bring us security issue.  Example, current\nsetting allow evil unprivileged user use 256GB (\u003d 256 * 1024 * 1024*1024)\nand it\u0027s enough large to system will belome unresponsive.  Don\u0027t do that.\n\nInstead, every admin should adjust the knobs for their own systems.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b5c4d1a1440e94994c73dddbad7be0676cd8b9a",
      "tree": "fe00ef0f888fbfc40b7542fd8a66cf3368d3d2c7",
      "parents": [
        "02967ea08ede0f8cc7e0526aedffdae65a099b07"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: update maximums for the mqueue subsystem\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed the\nmaximum size of a message in a message queue from INT_MAX to 8192*128.\nUnfortunately, we had customers that relied on a size much larger than\n8192*128 on their production systems.  After reviewing POSIX, we found\nthat it is silent on the maximum message size.  We did find a couple other\nareas in which it was not silent.  Fix up the mqueue maximums so that the\ncustomer\u0027s system can continue to work, and document both the POSIX and\nreal world requirements in ipc_namespace.h so that we don\u0027t have this\nissue crop back up.\n\nAlso, commit 9cf18e1dd74cd0 (\"ipc: HARD_MSGMAX should be higher not lower\non 64bit\") fiddled with HARD_MSGMAX without realizing that the number was\nintentionally in place to limit the msg queue depth to one that was small\nenough to kmalloc an array of pointers (hence why we divided 128k by\nsizeof(long)).  If we wish to meet POSIX requirements, we have no choice\nbut to change our allocation to a vmalloc instead (at least for the large\nqueue size case).  With that, it\u0027s possible to increase our allowed\nmaximum to the POSIX requirements (or more if we choose).\n\n[sfr@canb.auug.org.au: using vmalloc requires including vmalloc.h]\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "858ee3784e8105467f1f3017f4ece51cb51d4830",
      "tree": "c95f55ff8bd29be3a8648acc21118a47b07d117b",
      "parents": [
        "93e6f119c0ce8a1bba6e81dc8dd97d67be360844"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: switch back to using non-max values on create\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed\nhow we create a queue that does not include an attr struct passed to\nopen so that it creates the queue with whatever the maximum values are.\nHowever, if the admin has set the maximums to allow flexibility in\ncreating a queue (aka, both a large size and large queue are allowed,\nbut combined they create a queue too large for the RLIMIT_MSGQUEUE of\nthe user), then attempts to create a queue without an attr struct will\nfail.  Switch back to using acceptable defaults regardless of what the\nmaximums are.\n\nNote: so far, we only know of a few applications that rely on this\nbehavior (specifically, set the maximums in /proc, then run the\napplication which calls mq_open() without passing in an attr struct, and\nthe application expects the newly created message queue to have the\nmaximum sizes that were set in /proc used on the mq_open() call, and all\nof those applications that we know of are actually part of regression\ntest suites that were coded to do something like this:\n\nfor size in 4096 65536 $((1024 * 1024)) $((16 * 1024 * 1024)); do\n\techo $size \u003e /proc/sys/fs/mqueue/msgsize_max\n\tmq_open || echo \"Error opening mq with size $size\"\ndone\n\nThese test suites that depend on any behavior like this are broken.  The\nconcept that programs should rely upon the system wide maximum in order\nto get their desired results instead of simply using a attr struct to\nspecify what they want is fundamentally unfriendly programming practice\nfor any multi-tasking OS.\n\nFixing this will break those few apps that we know of (and those app\nauthors recognize the brokenness of their code and the need to fix it).\nHowever, the following patch \"mqueue: separate mqueue default value\"\nallows a workaround in the form of new knobs for the default msg queue\ncreation parameters for any software out there that we don\u0027t already\nknow about that might rely on this behavior at the moment.\n\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93e6f119c0ce8a1bba6e81dc8dd97d67be360844",
      "tree": "6d5131b4134d7aa6ba680a6a55f016bd6e03f319",
      "parents": [
        "29a5c67e7a78815fda0567a867adce467f6e6e5a"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: cleanup definition names and locations\n\nSince commit b231cca4381e (\"message queues: increase range limits\") on\nOct 18, 2008, calls to mq_open() that did not pass in an attribute\nstruct and expected to get default values for the size of the queue and\nthe max message size now get the system wide maximums instead of\nhardwired defaults like they used to get.\n\nThis was uncovered when one of the earlier patches in this patch set\nincreased the default system wide maximums at the same time it increased\nthe hard ceiling on the system wide maximums (a customer specifically\nneeded the hard ceiling brought back up, the new ceiling that commit\nb231cca4381e introduced was too low for their production systems).  By\nincreasing the default maximums and not realising they were tied to any\nattempt to create a message queue without an attribute struct, I had\ninadvertently made it such that all message queue creation attempts\nwithout an attribute struct were failing because the new default\nmaximums would create a queue that exceeded the default rlimit for\nmessage queue bytes.\n\nAs a result, the system wide defaults were brought back down to their\nprevious levels, and the system wide ceilings on the maximums were\nraised to meet the customer\u0027s needs.  However, the fact that the no\nattribute struct behavior of mq_open() could be broken by changing the\nsystem wide maximums for message queues was seen as fundamentally broken\nitself.  So we hardwired the no attribute case back like it used to be.\nBut, then we realized that on the very off chance that some piece of\nsoftware in the wild depended on that behavior, we could work around\nthat issue by adding two new knobs to /proc that allowed setting the\ndefaults for message queues created without an attr struct separately\nfrom the system wide maximums.\n\nWhat is not an option IMO is to leave the current behavior in place.  No\npiece of software should ever rely on setting the system wide maximums\nin order to get a desired message queue.  Such a reliance would be so\nfundamentally multitasking OS unfriendly as to not really be tolerable.\nFortunately, we don\u0027t know of any software in the wild that uses this\nexcept for a regression test program that caught the issue in the first\nplace.  If there is though, we have made accommodations with the two new\n/proc knobs (and that\u0027s all the accommodations such fundamentally broken\nsoftware can be allowed)..\n\nThis patch:\n\nThe various defines for minimums and maximums of the sysctl controllable\nmqueue values are scattered amongst different files and named\ninconsistently.  Move them all into ipc_namespace.h and make them have\nconsistent names.  Additionally, make the number of queues per namespace\nalso have a minimum and maximum and use the same sysctl function as the\nother two settable variables.\n\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29a5c67e7a78815fda0567a867adce467f6e6e5a",
      "tree": "79033c85c4d2a4875e4b17e292f015495b97457b",
      "parents": [
        "e4cc2f873ad0833aa5c4aca56bebe15b9603a1e7"
      ],
      "author": {
        "name": "maximilian attems",
        "email": "max@stro.at",
        "time": "Thu May 31 16:26:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "kexec: export kexec.h to user space\n\nAdd userspace definitions, guard all relevant kernel structures.  While at\nit document stuff and remove now useless userspace hint.\n\nIt is easy to add the relevant system call to respective libc\u0027s, but it\nseems pointless to have to duplicate the data structures.\n\nThis is based on the kexec-tools headers, with the exception of just using\nint on return (succes or failure) and using size_t instead of \u0027unsigned\nlong int\u0027 for the number of segments argument of kexec_load().\n\nSigned-off-by: maximilian attems \u003cmax@stro.at\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Haren Myneni \u003chbabu@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb79295e20a8088a2fd6a9b3cb5f2d889ec36b4d",
      "tree": "e749be4ebd059d9dd1ff109c1cecb7b63109d2e0",
      "parents": [
        "f7505d64f2db5da2d7d94873ddf2cd2524847061"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Thu May 31 16:26:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "cpu: introduce clear_tasks_mm_cpumask() helper\n\nMany architectures clear tasks\u0027 mm_cpumask like this:\n\n\tread_lock(\u0026tasklist_lock);\n\tfor_each_process(p) {\n\t\tif (p-\u003emm)\n\t\t\tcpumask_clear_cpu(cpu, mm_cpumask(p-\u003emm));\n\t}\n\tread_unlock(\u0026tasklist_lock);\n\nDepending on the context, the code above may have several problems,\nsuch as:\n\n1. Working with task-\u003emm w/o getting mm or grabing the task lock is\n   dangerous as -\u003emm might disappear (exit_mm() assigns NULL under\n   task_lock(), so tasklist lock is not enough).\n\n2. Checking for process-\u003emm is not enough because process\u0027 main\n   thread may exit or detach its mm via use_mm(), but other threads\n   may still have a valid mm.\n\nThis patch implements a small helper function that does things\ncorrectly, i.e.:\n\n1. We take the task\u0027s lock while whe handle its mm (we can\u0027t use\n   get_task_mm()/mmput() pair as mmput() might sleep);\n\n2. To catch exited main thread case, we use find_lock_task_mm(),\n   which walks up all threads and returns an appropriate task\n   (with task lock held).\n\nAlso, Per Peter Zijlstra\u0027s idea, now we don\u0027t grab tasklist_lock in\nthe new helper, instead we take the rcu read lock. We can do this\nbecause the function is called after the cpu is taken down and marked\noffline, so no new tasks will get this cpu set in their mm mask.\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43e13cc107cf6cd3c15fbe1cef849435c2223d50",
      "tree": "9a1b3aa79ec2e8374944c23cf57a73790a3fc6ce",
      "parents": [
        "9b3c98cd663750c33434572ff76ba306505eba5a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu May 31 16:26:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "cred: remove task_is_dead() from __task_cred() validation\n\nCommit 8f92054e7ca1 (\"CRED: Fix __task_cred()\u0027s lockdep check and banner\ncomment\"):\n\n    add the following validation condition:\n\n        task-\u003eexit_state \u003e\u003d 0\n\n    to permit the access if the target task is dead and therefore\n    unable to change its own credentials.\n\nOK, but afaics currently this can only help wait_task_zombie() which calls\n__task_cred() without rcu lock.\n\nRemove this validation and change wait_task_zombie() to use task_uid()\ninstead.  This means we do rcu_read_lock() only to shut up the lockdep,\nbut we already do the same in, say, wait_task_stopped().\n\ntask_is_dead() should die, task-\u003eexit_state !\u003d 0 means that this task has\npassed exit_notify(), only do_wait-like code paths should use this.\n\nUnfortunately, we can\u0027t kill task_is_dead() right now, it has already\nacquired buggy users in drivers/staging.  The fix already exists.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "785042f2e275089e22c36b462f6495ce8d91732d",
      "tree": "4e847408b4e675c7c616d357ae9b330f7104fbc0",
      "parents": [
        "81ab6e7b26b453a795d46f2616ed0e31d97f05b9"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu May 31 16:26:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "kmod: move call_usermodehelper_fns() to .c file and unexport all it\u0027s helpers\n\nIf we move call_usermodehelper_fns() to kmod.c file and EXPORT_SYMBOL it\nwe can avoid exporting all it\u0027s helper functions:\n\tcall_usermodehelper_setup\n\tcall_usermodehelper_setfns\n\tcall_usermodehelper_exec\nAnd make all of them static to kmod.c\n\nSince the optimizer will see all these as a single call site it will\ninline them inside call_usermodehelper_fns().  So we loose the call to\n_fns but gain 3 calls to the helpers.  (Not that it matters)\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae3cef7300e9fddc35ad251dd5f27c5b88c8594a",
      "tree": "d1f057eaeac5234e9056b3e9fa186c1bd7873bc5",
      "parents": [
        "f0aac6162e945590057dcfb841bdce8fd18ed4f6"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu May 31 16:26:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "kmod: unexport call_usermodehelper_freeinfo()\n\ncall_usermodehelper_freeinfo() is not used outside of kmod.c.  So unexport\nit, and make it static to kmod.c\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "020ac5b6bef15785f9dde9de89d2734ff97da733",
      "tree": "18724448be398af715d45dea42966bf276d2febb",
      "parents": [
        "7bc1bac77a69011550ce0613f4a23712a002d7ad"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 31 16:26:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "fat: introduce special inode for managing the FSINFO block\n\nThis is patchset makes fatfs stop using the VFS \u0027-\u003ewrite_super()\u0027 method\nfor writing out the FSINFO block.\n\nThe final goal is to get rid of the \u0027sync_supers()\u0027 kernel thread.  This\nkernel thread wakes up every 5 seconds (by default) and calls\n\u0027-\u003ewrite_super()\u0027 for all mounted file-systems.  And the bad thing is that\nthis is done even if all the superblocks are clean.  Moreover, some\nfile-systems do not even need this end they do not register the\n\u0027-\u003ewrite_super()\u0027 method at all (e.g., btrfs).\n\nSo \u0027sync_supers()\u0027 most often just generates useless wake-ups and wastes\npower.  I am trying to make all file-systems independent of\n\u0027-\u003ewrite_super()\u0027 and plan to remove \u0027sync_supers()\u0027 and \u0027-\u003ewrite_super\u0027\ncompletely once there are no more users.\n\nThe \u0027-\u003ewrite_supers()\u0027 method is mostly used by baroque file-systems like\nhfs, udf, etc.  Modern file-systems like btrfs and xfs do not use it.\nThis justifies removing this stuff from VFS completely and make every FS\nself-manage own superblock.\n\nTested with xfstests.\n\nThis patch:\n\nPreparation for further changes.  It introduces a special inode\n(\u0027fsinfo_inode\u0027) in FAT file-system which we\u0027ll later use for managing the\nFSINFO block.  Note, this there is already one special inode (\u0027fat_inode\u0027)\nwhich is used for managing the FAT tables.\n\nIntroduce new \u0027MSDOS_FSINFO_INO\u0027 constant for this special inode.  It is\nsafe to do because FAT file-system does not store inode numbers on the\nmedia but generates them run-time.\n\nI\u0027ve also cleaned up the comment to existing \u0027MSDOS_ROOT_INO\u0027 constant,\nwhile on it.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "133fd9f5cda2d86904126f4b9fa4e8f4330c9569",
      "tree": "0e60bfcec85f123243cf1ffe735264527efd6d0e",
      "parents": [
        "725fe002d315c2501c110b7245d3eb4f4535f4d6"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu May 31 16:26:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "vsprintf: further optimize decimal conversion\n\nPrevious code was using optimizations which were developed to work well\neven on narrow-word CPUs (by today\u0027s standards).  But Linux runs only on\n32-bit and wider CPUs.  We can use that.\n\nFirst: using 32x32-\u003e64 multiply and trivial 32-bit shift, we can correctly\ndivide by 10 much larger numbers, and thus we can print groups of 9 digits\ninstead of groups of 5 digits.\n\nNext: there are two algorithms to print larger numbers.  One is generic:\ndivide by 1000000000 and repeatedly print groups of (up to) 9 digits.\nIt\u0027s conceptually simple, but requires an (unsigned long long) /\n1000000000 division.\n\nSecond algorithm splits 64-bit unsigned long long into 16-bit chunks,\nmanipulates them cleverly and generates groups of 4 decimal digits.  It so\nhappens that it does NOT require long long division.\n\nIf long is \u003e 32 bits, division of 64-bit values is relatively easy, and we\nwill use the first algorithm.  If long long is \u003e 64 bits (strange\narchitecture with VERY large long long), second algorithm can\u0027t be used,\nand we again use the first one.\n\nElse (if long is 32 bits and long long is 64 bits) we use second one.\n\nAnd third: there is a simple optimization which takes fast path not only\nfor zero as was done before, but for all one-digit numbers.\n\nIn all tested cases new code is faster than old one, in many cases by 30%,\nin few cases by more than 50% (for example, on x86-32, conversion of\n12345678).  Code growth is ~0 in 32-bit case and ~130 bytes in 64-bit\ncase.\n\nThis patch is based upon an original from Michal Nazarewicz.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Douglas W Jones \u003cjones@cs.uiowa.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3860c1c5dd1137db23d7786d284939c5761d517",
      "tree": "48d688c6c391ef45f79bdd60815450ca06c5cc1a",
      "parents": [
        "15837294d4ce717f69942f7366e99d4d1d3d9923"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu May 31 16:26:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:26 2012 -0700"
      },
      "message": "introduce SIZE_MAX\n\nULONG_MAX is often used to check for integer overflow when calculating\nallocation size.  While ULONG_MAX happens to work on most systems, there\nis no guarantee that `size_t\u0027 must be the same size as `long\u0027.\n\nThis patch introduces SIZE_MAX, the maximum value of `size_t\u0027, to improve\nportability and readability for allocation size validation.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nAcked-by: Alex Elder \u003celder@dreamhost.com\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Pekka Enberg \u003cpenberg@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": "eb86c3064b3c53837fdfea17df1483d825919894",
      "tree": "0d408fe43f43248477bb521fdd5b6856878199b0",
      "parents": [
        "f8ae97019ff79559416dc2ae9c14af92c2054cba"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Tue May 29 15:07:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:33 2012 -0700"
      },
      "message": "rtc: ds1307: add trickle charger support\n\nSome DS13XX devices have \"trickle chargers\".  Its configuration register\nis at different locations, the setup is the same, though.  Since the\nconfiguration is board specific, introduce a platform_data to this driver.\nTested with a DS1339 on a custom board.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nCc: Alessandro Zummo \u003calessandro.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e311c9295912209dcf8e54de5401f8518112b7f8",
      "tree": "e1016bbb7d43aa6086ea0ee5d1935b309d43d81c",
      "parents": [
        "84d56b38b9abd36565f74cbf68501cee6206761e"
      ],
      "author": {
        "name": "Alexander Stein",
        "email": "alexander.stein@systec-electronic.com",
        "time": "Tue May 29 15:07:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:33 2012 -0700"
      },
      "message": "rtc: add ioctl to get/clear battery low voltage status\n\nCurrently there is no generic way to get the RTC battery status within an\napplication.  So add an ioctl to read the status bit.  The idea is that\nthe bit is set once a low voltage is detected.  It stays there until it is\nreset using the RTC_VL_CLR ioctl.\n\nSigned-off-by: Alexander Stein \u003calexander.stein@systec-electronic.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4796dd200db943e36f876e7029552212e5bbdf33",
      "tree": "a594c2b1ce1f4dbc96b25a516e49655917a9fa30",
      "parents": [
        "05a6c8a9226599f921bd0b6e439dbc04df96a6fc"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Tue May 29 15:07:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:32 2012 -0700"
      },
      "message": "vsprintf: fix %ps on non symbols when using kallsyms\n\nUsing %ps in a printk format will sometimes fail silently and print the\nempty string if the address passed in does not match a symbol that\nkallsyms knows about.  But using %pS will fall back to printing the full\naddress if kallsyms can\u0027t find the symbol.  Make %ps act the same as %pS\nby falling back to printing the address.\n\nWhile we\u0027re here also make %ps print the module that a symbol comes from\nso that it matches what %pS already does.  Take this simple function for\nexample (in a module):\n\n\tstatic void test_printk(void)\n\t{\n\t\tint test;\n\t\tpr_info(\"with pS: %pS\\n\", \u0026test);\n\t\tpr_info(\"with ps: %ps\\n\", \u0026test);\n\t}\n\nBefore this patch:\n\n with pS: 0xdff7df44\n with ps:\n\nAfter this patch:\n\n with pS: 0xdff7df44\n with ps: 0xdff7df44\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8035a50224302f9eb129d210daf263405d5a91fd",
      "tree": "bbb04a17c4efac3ebff5458759fd5dde9f53be5a",
      "parents": [
        "1381187991a196a8a7d046e97bd50eec6c37e8df"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Tue May 29 15:07:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:32 2012 -0700"
      },
      "message": "include/linux/led-lm3530.h: comment correction about the range of brightness\n\nmax brightness is 127, so the range of brt_val should be from 0 to 127\n\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Shreshtha Kumar SAHU \u003cshreshthakumar.sahu@stericsson.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Bryan Wu \u003cbryan.wu@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b00961824a33aadec4a825eaeccfbe3db8ec7032",
      "tree": "f3af8c9307bdf3b06b9fc21df9aea0356b89e2b5",
      "parents": [
        "1daef6d27b558d0bde72302ba7062b746887a643"
      ],
      "author": {
        "name": "Shuah Khan",
        "email": "shuahkhan@gmail.com",
        "time": "Tue May 29 15:07:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:31 2012 -0700"
      },
      "message": "leds: add new field to led_classdev struct to save activation state\n\nAdd a new field to led_classdev to save activattion state after activate\nroutine is successful.  This saved state is used in deactivate routine to\ndo cleanup such as removing device files, and free memory allocated during\nactivation.  Currently trigger_data not being null is used for this\npurpose.\n\nExisting triggers will need changes to use this new field.\n\nSigned-off-by: Shuah Khan \u003cshuahkhan@gmail.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Bryan Wu \u003cbryan.wu@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1615d210dbc9c67c38b66bcff53233452dbaae22",
      "tree": "06974bb5bef5fc3ac6e9c46ac47bcae4e2bbb363",
      "parents": [
        "d54ad83f3d56228a42e1021b97fc52bfbad7d560"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue May 29 15:07:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:29 2012 -0700"
      },
      "message": "drivers/video/backlight/apple_bl.c: include header for exported symbol prototypes\n\nInclude the header to pickup the exported symbol prototype.\n\nQuiets the sparse warning:\n\n  warning: symbol \u0027apple_bl_register\u0027 was not declared. Should it be static?\n  warning: symbol \u0027apple_bl_unregister\u0027 was not declared. Should it be static?\n\n[akpm@linux-foundation.org: fix resulting build error]\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: 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": "d54ad83f3d56228a42e1021b97fc52bfbad7d560",
      "tree": "bf4a27b9df5b86e03938a6c11d1e993e010e431e",
      "parents": [
        "bf05929f41d6c3c79ec1961d90d808a634f09dd9"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Tue May 29 15:07:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:29 2012 -0700"
      },
      "message": "lcd: add callbacks for early fb event blank support\n\nThis patchset adds early fb blank feature that a callback of lcd panel\ndriver is called prior to specific fb driver\u0027s one.  In the case of\nMIPI-DSI based video mode LCD Panel, for lcd power off, the power off\ncommands should be transferred to lcd panel with display and mipi-dsi\ncontroller enabled because the commands is set to lcd panel at vsync porch\nperiod.  and in opposite case, the callback of fb driver should be called\nprior to lcd panel driver\u0027s one because of same issue.  Also if fb_blank\nmode is changed to FB_BLANK_POWERDOWN then display controller would be\noff(clock disable) but lcd panel would be still on.  at this time, you\ncould see some issue like sparkling on lcd panel because video clock to be\ndelivered to ldi module of lcd panel was disabled.  this issue could\noccurs for all lcd panels.\n\nThe callback order is as the following:\n\nat fb_blank function of fbmem.c\n-\u003e fb_notifier_call_chain(FB_EARLY_EVENT_BLANK)\n       -\u003e lcd panel driver\u0027s early_set_power()\n-\u003e info-\u003efbops-\u003efb_blank()\n       -\u003e spcefic fb driver\u0027s fb_blank()\n-\u003e fb_notifier_call_chain(FB_EVENT_BLANK)\n       -\u003e lcd panel driver\u0027s set_power()\n   -\u003e fb_notifier_call_chain(FB_R_EARLY_EVENT_BLANK) if\ninfo-\u003efops-\u003efb_blank() was failed.\n\nfb_notifier_call_chain(FB_R_EARLY_EVENT_BLANK) would be called to revert\nthe effects of previous FB_EARLY_EVENT_BLANK call.  and note that if\nearly_set_power() of lcd_ops is NULL then early fb blank callback would be\nignored.\n\nThis patch:\n\nAdd early_set_power and r_early_set_power callbacks.  early_set_power\ncallback is called prior to fb_blank() of fbmem.c and r_early_set_power\ncallback is called if fb_blank() was failed to revert the effects of the\nearly_set_power call of lcd panel driver.\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf05929f41d6c3c79ec1961d90d808a634f09dd9",
      "tree": "71afacc10d3a3cf46cd72b98beb1ccddeaa2bd31",
      "parents": [
        "aa523a82ee1be3f50560338e06151918fd8613e7"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Tue May 29 15:07:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "fbdev: add events for early fb event support\n\nAdd FB_EARLY_EVENT_BLANK and FB_R_EARLY_EVENT_BLANK event mode supports.\nfirst, fb_notifier_call_chain() is called with FB_EARLY_EVENT_BLANK and\nfb_blank() of specific fb driver is called and then\nfb_notifier_call_chain() is called with FB_EVENT_BLANK again at\nfb_blank().  and if fb_blank() was failed then fb_nitifier_call_chain()\nwould be called with FB_R_EARLY_EVENT_BLANK to revert the previous\neffects.\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f134619393cb6c6dfab7890a617d0ceca6d05d7",
      "tree": "39e05b42c99189cd4496e61a3e16107e065b0f04",
      "parents": [
        "3afe36b1fe7d1e3f66752bb9548a763942f3a104"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue May 29 15:07:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "memcg: decrement static keys at real destroy time\n\nWe call the destroy function when a cgroup starts to be removed, such as\nby a rmdir event.\n\nHowever, because of our reference counters, some objects are still\ninflight.  Right now, we are decrementing the static_keys at destroy()\ntime, meaning that if we get rid of the last static_key reference, some\nobjects will still have charges, but the code to properly uncharge them\nwon\u0027t be run.\n\nThis becomes a problem specially if it is ever enabled again, because now\nnew charges will be added to the staled charges making keeping it pretty\nmuch impossible.\n\nWe just need to be careful with the static branch activation: since there\nis no particular preferred order of their activation, we need to make sure\nthat we only start using it after all call sites are active.  This is\nachieved by having a per-memcg flag that is only updated after\nstatic_key_slow_inc() returns.  At this time, we are sure all sites are\nactive.\n\nThis is made per-memcg, not global, for a reason: it also has the effect\nof making socket accounting more consistent.  The first memcg to be\nlimited will trigger static_key() activation, therefore, accounting.  But\nall the others will then be accounted no matter what.  After this patch,\nonly limited memcgs will have its sockets accounted.\n\n[akpm@linux-foundation.org: move enum sock_flag_bits into sock.h,\n                            document enum sock_flag_bits,\n                            convert memcg_proto_active() and memcg_proto_activated() to test_bit(),\n                            redo tcp_update_limit() comment to 80 cols]\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa9add641b1b1c564db916accac1db346e7a2759",
      "tree": "875e74ec4d7fed0018fdbc134ad899949c5e3384",
      "parents": [
        "75b00af77ed5b5a3d55549f9e0c33f3969b9330c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:07:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "mm/memcg: apply add/del_page to lruvec\n\nTake lruvec further: pass it instead of zone to add_page_to_lru_list() and\ndel_page_from_lru_list(); and pagevec_lru_move_fn() pass lruvec down to\nits target functions.\n\nThis cleanup eliminates a swathe of cruft in memcontrol.c, including\nmem_cgroup_lru_add_list(), mem_cgroup_lru_del_list() and\nmem_cgroup_lru_move_lists() - which never actually touched the lists.\n\nIn their place, mem_cgroup_page_lruvec() to decide the lruvec, previously\na side-effect of add, and mem_cgroup_update_lru_size() to maintain the\nlru_size stats.\n\nWhilst these are simplifications in their own right, the goal is to bring\nthe evaluation of lruvec next to the spin_locking of the lrus, in\npreparation for a future patch.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d7dcca213921fbaf08ee05359d28e4aaf2245f1",
      "tree": "1c31ea8e8f9f88ca60864fbdaf9dfa74b09be96f",
      "parents": [
        "af7c4b0ec257ea9abb9c6749dd5a5ba0b8fae1fd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:07:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "mm/memcg: get_lru_size not get_lruvec_size\n\nKonstantin just introduced mem_cgroup_get_lruvec_size() and\nget_lruvec_size(), I\u0027m about to add mem_cgroup_update_lru_size(): but\nwe\u0027re dealing with the same thing, lru_size[lru].  We ought to agree on\nthe naming, and I do think lru_size is the more correct: so rename his\nones to get_lru_size().\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04eac7ffdea1090f81bc33bd8f4bf072b1fe5bdb",
      "tree": "8ee96376aa4c1d21500dcaa52e074ef5dfe71a58",
      "parents": [
        "2f3479b1478e223f142fe9cd27a2d2a4c3573c53"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue May 29 15:07:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:27 2012 -0700"
      },
      "message": "rescounter: remove __must_check from res_counter_charge_nofail()\n\nSince we will succeed with the allocation no matter what, there isn\u0027t a\nneed to use __must_check with it.  It can very well be optional.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bb2ba9d51a8044a71a29608d2c4ef8f5b2d57a2",
      "tree": "5e58869c606c541d41a9bfa62aa6e8bc42cae5ac",
      "parents": [
        "f9be23d6da035241b7687b25e64401171986dcef"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 29 15:07:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:27 2012 -0700"
      },
      "message": "rescounters: add res_counter_uncharge_until()\n\nWhen killing a res_counter which is a child of other counter, we need to\ndo\n\n\tres_counter_uncharge(child, xxx)\n\tres_counter_charge(parent, xxx)\n\nThis is not atomic and wastes CPU.  This patch adds\nres_counter_uncharge_until().  This function\u0027s uncharge propagates to\nancestors until specified res_counter.\n\n\tres_counter_uncharge_until(child, parent, xxx)\n\nNow the operation is atomic and efficient.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c56d5c7dfeb5cc754e17fa3d423086a3c551c219",
      "tree": "4c89ad9692dbd3a2e0eaf96de0162a5d3066925e",
      "parents": [
        "074291fea8bcedeabf295360e2ddd9bbb5830b4a"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:07:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:26 2012 -0700"
      },
      "message": "mm/vmscan: push lruvec pointer into inactive_list_is_low()\n\nSwitch mem_cgroup_inactive_anon_is_low() to lruvec pointers,\nmem_cgroup_get_lruvec_size() is more effective than\nmem_cgroup_zone_nr_lru_pages()\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "074291fea8bcedeabf295360e2ddd9bbb5830b4a",
      "tree": "01531a2ca7e9b648a4d8cd9bc772aa484ed2190d",
      "parents": [
        "27ac81d85e5cfcc755dd5fa3f04dc883ab5d821b"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:07:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:26 2012 -0700"
      },
      "message": "mm/vmscan: replace zone_nr_lru_pages() with get_lruvec_size()\n\nIf memory cgroup is enabled we always use lruvecs which are embedded into\nstruct mem_cgroup_per_zone, so we can reach lru_size counters via\ncontainer_of().\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "7f5e86c2ccc1480946d2c869d7f7d5278e828092",
      "tree": "704612422963868042c9d240b4a395bd7bce8469",
      "parents": [
        "9e3b2f8cd340e13353a44c9a34caef2848131ed7"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:26 2012 -0700"
      },
      "message": "mm: add link from struct lruvec to struct zone\n\nThis is the first stage of struct mem_cgroup_zone removal.  Further\npatches replace struct mem_cgroup_zone with a pointer to struct lruvec.\n\nIf CONFIG_CGROUP_MEM_RES_CTLR\u003dn lruvec_zone() is just container_of().\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "bbf808ed7de68fdf626fd4f9718d88cf03ce13a9",
      "tree": "91f3dc3eb619f2b809cdd9c1239a6db0e62c97ed",
      "parents": [
        "f3fd4a61928a5edf5b033a417e761b488b43e203"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm/memcg: kill mem_cgroup_lru_del()\n\nThis patch kills mem_cgroup_lru_del(), we can use\nmem_cgroup_lru_del_list() instead.  On 0-order isolation we already have\nright lru list id.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@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": "f3fd4a61928a5edf5b033a417e761b488b43e203",
      "tree": "f56c5b6f4a4c732c9167e4cacb3e9c25ced0d000",
      "parents": [
        "014483bcccc5edbf861d89dc1a6f7cdc02f9f4c0"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm: remove lru type checks from __isolate_lru_page()\n\nAfter patch \"mm: forbid lumpy-reclaim in shrink_active_list()\" we can\ncompletely remove anon/file and active/inactive lru type filters from\n__isolate_lru_page(), because isolation for 0-order reclaim always\nisolates pages from right lru list.  And pages-isolation for lumpy\nshrink_inactive_list() or memory-compaction anyway allowed to isolate\npages from all evictable lru lists.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@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": "014483bcccc5edbf861d89dc1a6f7cdc02f9f4c0",
      "tree": "82bd32af5d1d7322b7ad1cc00b2c6ded99834031",
      "parents": [
        "3cb9945179bd04e9282f31a1173ac11b1300c462"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm: mark mm-inline functions as __always_inline\n\nGCC sometimes ignores \"inline\" directives even for small and simple functions.\nThis supposed to be fixed in gcc 4.7, but it was released only yesterday.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@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": "89abfab133ef1f5902abafb744df72793213ac19",
      "tree": "29df29e2a34a0af3649417d2e430480c7e7e5fa1",
      "parents": [
        "c3c787e8c38557ccf44c670d73aebe630a2b1479"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:06:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm/memcg: move reclaim_stat into lruvec\n\nWith mem_cgroup_disabled() now explicit, it becomes clear that the\nzone_reclaim_stat structure actually belongs in lruvec, per-zone when\nmemcg is disabled but per-memcg per-zone when it\u0027s enabled.\n\nWe can delete mem_cgroup_get_reclaim_stat(), and change\nupdate_page_reclaim_stat() to update just the one set of stats, the one\nwhich get_scan_count() will actually use.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b91355e9dc9ac1eb3d69e56de093899ff2677ef",
      "tree": "b6d18618013eadd3b3e3144c90b16d0d5f07b3af",
      "parents": [
        "181eb39425f2b9275afcb015eaa547d11f71a02f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue May 29 15:06:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "memcg: fix/change behavior of shared anon at moving task\n\nThis patch changes memcg\u0027s behavior at task_move().\n\nAt task_move(), the kernel scans a task\u0027s page table and move the changes\nfor mapped pages from source cgroup to target cgroup.  There has been a\nbug at handling shared anonymous pages for a long time.\n\nBefore patch:\n  - The spec says \u0027shared anonymous pages are not moved.\u0027\n  - The implementation was \u0027shared anonymoys pages may be moved\u0027.\n    If page_mapcount \u003c\u003d2, shared anonymous pages\u0027s charge were moved.\n\nAfter patch:\n  - The spec says \u0027all anonymous pages are moved\u0027.\n  - The implementation is \u0027all anonymous pages are moved\u0027.\n\nConsidering usage of memcg, this will not affect user\u0027s experience.\n\u0027shared anonymous\u0027 pages only exists between a tree of processes which\ndon\u0027t do exec().  Moving one of process without exec() seems not sane.\nFor example, libcgroup will not be affected by this change.  (Anyway, no\none noticed the implementation for a long time...)\n\nBelow is a discussion log:\n\n - current spec/implementation are complex\n - Now, shared file caches are moved\n - It adds unclear check as page_mapcount(). To do correct check,\n   we should check swap users, etc.\n - No one notice this implementation behavior. So, no one get benefit\n   from the design.\n - In general, once task is moved to a cgroup for running, it will not\n   be moved....\n - Finally, we have control knob as memory.move_charge_at_immigrate.\n\nHere is a patch to allow moving shared pages, completely. This makes\nmemcg simpler and fix current broken code.\n\nSuggested-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bf5f03c271907978489868a4c72aeb42b5127d2",
      "tree": "2d6b283fa5ee83b723fd4b4a8f070ae53c60ebe9",
      "parents": [
        "dbda591d920b4c7692725b13e3f68ecb251e9080"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Tue May 29 15:06:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm: fix slab-\u003epage flags corruption\n\nTransparent huge pages can change page-\u003eflags (PG_compound_lock) without\ntaking Slab lock.  Since THP can not break slab pages we can safely access\ncompound page without taking compound lock.\n\nSpecifically this patch fixes a race between compound_unlock() and slab\nfunctions which perform page-flags updates.  This can occur when\nget_page()/put_page() is called on a page from slab.\n\n[akpm@linux-foundation.org: tweak comment text, fix comment layout, fix label indenting]\nReported-by: Amey Bhide \u003cabhide@nicira.com\u003e\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26c191788f18129af0eb32a358cdaea0c7479626",
      "tree": "21d30812d2e092a940ba81750f75080ce5eb5ae4",
      "parents": [
        "a7f638f999ff42310e9582273b1fe25ea6e469ba"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue May 29 15:06:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race condition\n\nWhen holding the mmap_sem for reading, pmd_offset_map_lock should only\nrun on a pmd_t that has been read atomically from the pmdp pointer,\notherwise we may read only half of it leading to this crash.\n\nPID: 11679  TASK: f06e8000  CPU: 3   COMMAND: \"do_race_2_panic\"\n #0 [f06a9dd8] crash_kexec at c049b5ec\n #1 [f06a9e2c] oops_end at c083d1c2\n #2 [f06a9e40] no_context at c0433ded\n #3 [f06a9e64] bad_area_nosemaphore at c043401a\n #4 [f06a9e6c] __do_page_fault at c0434493\n #5 [f06a9eec] do_page_fault at c083eb45\n #6 [f06a9f04] error_code (via page_fault) at c083c5d5\n    EAX: 01fb470c EBX: fff35000 ECX: 00000003 EDX: 00000100 EBP:\n    00000000\n    DS:  007b     ESI: 9e201000 ES:  007b     EDI: 01fb4700 GS:  00e0\n    CS:  0060     EIP: c083bc14 ERR: ffffffff EFLAGS: 00010246\n #7 [f06a9f38] _spin_lock at c083bc14\n #8 [f06a9f44] sys_mincore at c0507b7d\n #9 [f06a9fb0] system_call at c083becd\n                         start           len\n    EAX: ffffffda  EBX: 9e200000  ECX: 00001000  EDX: 6228537f\n    DS:  007b      ESI: 00000000  ES:  007b      EDI: 003d0f00\n    SS:  007b      ESP: 62285354  EBP: 62285388  GS:  0033\n    CS:  0073      EIP: 00291416  ERR: 000000da  EFLAGS: 00000286\n\nThis should be a longstanding bug affecting x86 32bit PAE without THP.\nOnly archs with 64bit large pmd_t and 32bit unsigned long should be\naffected.\n\nWith THP enabled the barrier() in pmd_none_or_trans_huge_or_clear_bad()\nwould partly hide the bug when the pmd transition from none to stable,\nby forcing a re-read of the *pmd in pmd_offset_map_lock, but when THP is\nenabled a new set of problem arises by the fact could then transition\nfreely in any of the none, pmd_trans_huge or pmd_trans_stable states.\nSo making the barrier in pmd_none_or_trans_huge_or_clear_bad()\nunconditional isn\u0027t good idea and it would be a flakey solution.\n\nThis should be fully fixed by introducing a pmd_read_atomic that reads\nthe pmd in order with THP disabled, or by reading the pmd atomically\nwith cmpxchg8b with THP enabled.\n\nLuckily this new race condition only triggers in the places that must\nalready be covered by pmd_none_or_trans_huge_or_clear_bad() so the fix\nis localized there but this bug is not related to THP.\n\nNOTE: this can trigger on x86 32bit systems with PAE enabled with more\nthan 4G of ram, otherwise the high part of the pmd will never risk to be\ntruncated because it would be zero at all times, in turn so hiding the\nSMP race.\n\nThis bug was discovered and fully debugged by Ulrich, quote:\n\n----\n[..]\npmd_none_or_trans_huge_or_clear_bad() loads the content of edx and\neax.\n\n    496 static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t\n    *pmd)\n    497 {\n    498         /* depend on compiler for an atomic pmd read */\n    499         pmd_t pmdval \u003d *pmd;\n\n                                // edi \u003d pmd pointer\n0xc0507a74 \u003csys_mincore+548\u003e:   mov    0x8(%esp),%edi\n...\n                                // edx \u003d PTE page table high address\n0xc0507a84 \u003csys_mincore+564\u003e:   mov    0x4(%edi),%edx\n...\n                                // eax \u003d PTE page table low address\n0xc0507a8e \u003csys_mincore+574\u003e:   mov    (%edi),%eax\n\n[..]\n\nPlease note that the PMD is not read atomically. These are two \"mov\"\ninstructions where the high order bits of the PMD entry are fetched\nfirst. Hence, the above machine code is prone to the following race.\n\n-  The PMD entry {high|low} is 0x0000000000000000.\n   The \"mov\" at 0xc0507a84 loads 0x00000000 into edx.\n\n-  A page fault (on another CPU) sneaks in between the two \"mov\"\n   instructions and instantiates the PMD.\n\n-  The PMD entry {high|low} is now 0x00000003fda38067.\n   The \"mov\" at 0xc0507a8e loads 0xfda38067 into eax.\n----\n\nReported-by: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Petr Matousek \u003cpmatouse@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@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": "a7f638f999ff42310e9582273b1fe25ea6e469ba",
      "tree": "174dec4d849b78023a23a15d5947cf1d3be9f564",
      "parents": [
        "fe35004fbf9eaf67482b074a2e032abb9c89b1dd"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 29 15:06:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm, oom: normalize oom scores to oom_score_adj scale only for userspace\n\nThe oom_score_adj scale ranges from -1000 to 1000 and represents the\nproportion of memory available to the process at allocation time.  This\nmeans an oom_score_adj value of 300, for example, will bias a process as\nthough it was using an extra 30.0% of available memory and a value of\n-350 will discount 35.0% of available memory from its usage.\n\nThe oom killer badness heuristic also uses this scale to report the oom\nscore for each eligible process in determining the \"best\" process to\nkill.  Thus, it can only differentiate each process\u0027s memory usage by\n0.1% of system RAM.\n\nOn large systems, this can end up being a large amount of memory: 256MB\non 256GB systems, for example.\n\nThis can be fixed by having the badness heuristic to use the actual\nmemory usage in scoring threads and then normalizing it to the\noom_score_adj scale for userspace.  This results in better comparison\nbetween eligible threads for kill and no change from the userspace\nperspective.\n\nSuggested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nTested-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17cf28afea2a1112f240a3a2da8af883be024811",
      "tree": "ed9e3eb9b1d44118a12e4ecdf369e3b9b3208be1",
      "parents": [
        "3f31d07571eeea18a7d34db9af21d2285b807a17"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:06:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:23 2012 -0700"
      },
      "message": "mm/fs: remove truncate_range\n\nRemove vmtruncate_range(), and remove the truncate_range method from\nstruct inode_operations: only tmpfs ever supported it, and tmpfs has now\nconverted over to using the fallocate method of file_operations.\n\nUpdate Documentation accordingly, adding (setlease and) fallocate lines.\nAnd while we\u0027re in mm.h, remove duplicate declarations of shmem_lock() and\nshmem_file_setup(): everyone is now using the ones in shmem_fs.h.\n\nBased-on-patch-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Cong Wang \u003camwang@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bde05d1ccd512696b09db9dd2e5f33ad19152605",
      "tree": "affa2c836136cac6ec0e503ce8996670d385ebbb",
      "parents": [
        "5ceb9ce6fe9462a298bb2cd5c9f1ca6cb80a0199"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:06:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:22 2012 -0700"
      },
      "message": "shmem: replace page if mapping excludes its zone\n\nThe GMA500 GPU driver uses GEM shmem objects, but with a new twist: the\nbacking RAM has to be below 4GB.  Not a problem while the boards\nsupported only 4GB: but now Intel\u0027s D2700MUD boards support 8GB, and\ntheir GMA3600 is managed by the GMA500 driver.\n\nshmem/tmpfs has never pretended to support hardware restrictions on the\nbacking memory, but it might have appeared to do so before v3.1, and\neven now it works fine until a page is swapped out then back in.  When\nread_cache_page_gfp() supplied a freshly allocated page for copy, that\ncompensated for whatever choice might have been made by earlier swapin\nreadahead; but swapoff was likely to destroy the illusion.\n\nWe\u0027d like to continue to support GMA500, so now add a new\nshmem_should_replace_page() check on the zone when about to move a page\nfrom swapcache to filecache (in swapin and swapoff cases), with\nshmem_replace_page() to allocate and substitute a suitable page (given\ngma500/gem.c\u0027s mapping_set_gfp_mask GFP_KERNEL | __GFP_DMA32).\n\nThis does involve a minor extension to mem_cgroup_replace_page_cache()\n(the page may or may not have already been charged); and I\u0027ve removed a\ncomment and call to mem_cgroup_uncharge_cache_page(), which in fact is\nalways a no-op while PageSwapCache.\n\nAlso removed optimization of an unlikely path in shmem_getpage_gfp(),\nnow that we need to check PageSwapCache more carefully (a racing caller\nmight already have made the copy).  And at one point shmem_unuse_inode()\nneeds to use the hitherto private page_swapcount(), to guard against\nracing with inode eviction.\n\nIt would make sense to extend shmem_should_replace_page(), to cover\ncpuset and NUMA mempolicy restrictions too, but set that aside for now:\nneeds a cleanup of shmem mempolicy handling, and more testing, and ought\nto handle swap faults in do_swap_page() as well as shmem.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Stephane Marchesin \u003cmarcheu@chromium.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Dave Airlie \u003cairlied@gmail.com\u003e\nCc: Daniel Vetter \u003cdaniel@ffwll.ch\u003e\nCc: Rob Clark \u003crob.clark@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ceb9ce6fe9462a298bb2cd5c9f1ca6cb80a0199",
      "tree": "52a6d3c27eceb8848a8e8d7e3de9e39ff8cc680c",
      "parents": [
        "238305bb4d418c95977162ba13c11880685fc731"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "b.zolnierkie@samsung.com",
        "time": "Tue May 29 15:06:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:22 2012 -0700"
      },
      "message": "mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks\n\nWhen MIGRATE_UNMOVABLE pages are freed from MIGRATE_UNMOVABLE type\npageblock (and some MIGRATE_MOVABLE pages are left in it) waiting until an\nallocation takes ownership of the block may take too long.  The type of\nthe pageblock remains unchanged so the pageblock cannot be used as a\nmigration target during compaction.\n\nFix it by:\n\n* Adding enum compact_mode (COMPACT_ASYNC_[MOVABLE,UNMOVABLE], and\n  COMPACT_SYNC) and then converting sync field in struct compact_control\n  to use it.\n\n* Adding nr_pageblocks_skipped field to struct compact_control and\n  tracking how many destination pageblocks were of MIGRATE_UNMOVABLE type.\n   If COMPACT_ASYNC_MOVABLE mode compaction ran fully in\n  try_to_compact_pages() (COMPACT_COMPLETE) it implies that there is not a\n  suitable page for allocation.  In this case then check how if there were\n  enough MIGRATE_UNMOVABLE pageblocks to try a second pass in\n  COMPACT_ASYNC_UNMOVABLE mode.\n\n* Scanning the MIGRATE_UNMOVABLE pageblocks (during COMPACT_SYNC and\n  COMPACT_ASYNC_UNMOVABLE compaction modes) and building a count based on\n  finding PageBuddy pages, page_count(page) \u003d\u003d 0 or PageLRU pages.  If all\n  pages within the MIGRATE_UNMOVABLE pageblock are in one of those three\n  sets change the whole pageblock type to MIGRATE_MOVABLE.\n\nMy particular test case (on a ARM EXYNOS4 device with 512 MiB, which means\n131072 standard 4KiB pages in \u0027Normal\u0027 zone) is to:\n\n- allocate 120000 pages for kernel\u0027s usage\n- free every second page (60000 pages) of memory just allocated\n- allocate and use 60000 pages from user space\n- free remaining 60000 pages of kernel memory\n  (now we have fragmented memory occupied mostly by user space pages)\n- try to allocate 100 order-9 (2048 KiB) pages for kernel\u0027s usage\n\nThe results:\n- with compaction disabled I get 11 successful allocations\n- with compaction enabled - 14 successful allocations\n- with this patch I\u0027m able to get all 100 successful allocations\n\nNOTE: If we can make kswapd aware of order-0 request during compaction, we\ncan enhance kswapd with changing mode to COMPACT_ASYNC_FULL\n(COMPACT_ASYNC_MOVABLE + COMPACT_ASYNC_UNMOVABLE).  Please see the\nfollowing thread:\n\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d133552069417068\u0026w\u003d2\n\n[minchan@kernel.org: minor cleanups]\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "238305bb4d418c95977162ba13c11880685fc731",
      "tree": "43f578a711e85af44b1b1b43e8f32ef86490486f",
      "parents": [
        "e9079911e6c8fb7882de142de76f3ee49b54e000"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 29 15:06:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:22 2012 -0700"
      },
      "message": "mm: remove sparsemem allocation details from the bootmem allocator\n\nalloc_bootmem_section() derives allocation area constraints from the\nspecified sparsemem section.  This is a bit specific for a generic memory\nallocator like bootmem, though, so move it over to sparsemem.\n\nAs __alloc_bootmem_node_nopanic() already retries failed allocations with\nrelaxed area constraints, the fallback code in sparsemem.c can be removed\nand the code becomes a bit more compact overall.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2099597401c7710c00b0d7c32b24a44a193836e1",
      "tree": "863cf3549736abd10d747405708aceb21f9c5114",
      "parents": [
        "e30d539b3fe76f5bb71e069dcbfa47a1c2e6da3b"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Tue May 29 15:06:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:21 2012 -0700"
      },
      "message": "mm: move is_vma_temporary_stack() declaration to huge_mm.h\n\nWhen transparent_hugepage_enabled() is used outside mm/, such as in\narch/x86/xx/tlb.c:\n\n+       if (!cpu_has_invlpg || vma-\u003evm_flags \u0026 VM_HUGETLB\n+                       || transparent_hugepage_enabled(vma)) {\n+               flush_tlb_mm(vma-\u003evm_mm);\n\nis_vma_temporary_stack() isn\u0027t referenced in huge_mm.h, so it has compile\nerrors:\n\n  arch/x86/mm/tlb.c: In function `flush_tlb_range\u0027:\n  arch/x86/mm/tlb.c:324:4: error: implicit declaration of function `is_vma_temporary_stack\u0027 [-Werror\u003dimplicit-function-declaration]\n\nSince is_vma_temporay_stack() is just used in rmap.c and huge_memory.c, it\nis better to move it to huge_mm.h from rmap.h to avoid such errors.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "9295b7a07c859a42346221b5839be0ae612333b0",
      "tree": "67efb39934130c62eb899d02214c0fd68d4128f5",
      "parents": [
        "a62e2f4f508863da8e0c2f2b42f5252a87330297"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@akkadia.org",
        "time": "Tue May 29 15:06:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:21 2012 -0700"
      },
      "message": "kbuild: install kernel-page-flags.h\n\nPrograms using /proc/kpageflags need to know about the various flags.  The\n\u003clinux/kernel-page-flags.h\u003e provides them and the comments in the file\nindicate that it is supposed to be used by user-level code.  But the file\nis not installed.\n\nInstall the headers and mark the unstable flags as out-of-bounds.  The\npage-type tool is also adjusted to not duplicate the definitions\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@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": "02602a18c32d76f0e0f50eefa91b2d53c8a3a751",
      "tree": "64a2645d05cd57731e7d2f5bd0ef390de8b5e76b",
      "parents": [
        "baf05aa9271bdbc07d3160035a231abc5fbd429a"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "bug: completely remove code generated by disabled VM_BUG_ON()\n\nEven if CONFIG_DEBUG_VM\u003dn gcc genereates code for some VM_BUG_ON()\n\nfor example VM_BUG_ON(!PageCompound(page) || !PageHead(page)); in\ndo_huge_pmd_wp_page() generates 114 bytes of code.\n\nBut they mostly disappears when I split this VM_BUG_ON into two:\n\n  -VM_BUG_ON(!PageCompound(page) || !PageHead(page));\n  +VM_BUG_ON(!PageCompound(page));\n  +VM_BUG_ON(!PageHead(page));\n\nweird... but anyway after this patch code disappears completely.\n\n  add/remove: 0/0 grow/shrink: 7/97 up/down: 135/-1784 (-1649)\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@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": "baf05aa9271bdbc07d3160035a231abc5fbd429a",
      "tree": "201c4f1df332fa2baef4ddfeda6806faf9e2dbc8",
      "parents": [
        "5febcbe99d4766cc383909c447e002e63d8b4592"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "bug: introduce BUILD_BUG_ON_INVALID() macro\n\nSometimes we want to check some expressions correctness at compile time.\n\"(void)(e);\" or \"if (e);\" can be dangerous if the expression has\nside-effects, and gcc sometimes generates a lot of code, even if the\nexpression has no effect.\n\nThis patch introduces macro BUILD_BUG_ON_INVALID() for such checks, it\nforces a compilation error if expression is invalid without any extra\ncode.\n\n[Cast to \"long\" required because sizeof does not work for bit-fields.]\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@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": "c3ac9a8ade65ccbfd145fbff895ae8d8d62d09b0",
      "tree": "4df684151388ffa6407d714dd39d1fe94f72d424",
      "parents": [
        "91c63734f6908425903aed69c04035592f18d398"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 29 15:06:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "mm: memcg: count pte references from every member of the reclaimed hierarchy\n\nThe rmap walker checking page table references has historically ignored\nreferences from VMAs that were not part of the memcg that was being\nreclaimed during memcg hard limit reclaim.\n\nWhen transitioning global reclaim to memcg hierarchy reclaim, I missed\nthat bit and now references from outside a memcg are ignored even during\nglobal reclaim.\n\nReverting back to traditional behaviour - count all references during\nglobal reclaim and only mind references of the memcg being reclaimed\nduring limit reclaim would be one option.\n\nHowever, the more generic idea is to ignore references exactly then when\nthey are outside the hierarchy that is currently under reclaim; because\nonly then will their reclamation be of any use to help the pressure\nsituation.  It makes no sense to ignore references from a sibling memcg\nand then evict a page that will be immediately refaulted by that sibling\nwhich contributes to the same usage of the common ancestor under\nreclaim.\n\nThe solution: make the rmap walker ignore references from VMAs that are\nnot part of the hierarchy that is being reclaimed.\n\nFlat limit reclaim will stay the same, hierarchical limit reclaim will\nmind the references only to pages that the hierarchy owns.  Global\nreclaim, since it reclaims from all memcgs, will be fixed to regard all\nreferences.\n\n[akpm@linux-foundation.org: name the args in the declaration]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Konstantin Khlebnikov\u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ce72d4f7333248efbef1f3309770c7edb1b2625",
      "tree": "a4de6ed7c23962ed62a9f4f64a05c75db51a9833",
      "parents": [
        "4a5b18cc1971046d9ca3a29fdcafbe5648629585"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue May 29 15:06:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "mm: do_migrate_pages(): rename arguments\n\ns/from_nodes/from and s/to_nodes/to/.  The \"_nodes\" is redundant - it\nduplicates the argument\u0027s type.\n\nDone in a fit of irritation over 80-col issues :(\n\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003cmkosaki@redhat.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "23b9da55c5b0feb484bd5e8615f4eb1ce4169453",
      "tree": "84ce2cce4aca6c5e5ca4b7066faa21db1148b370",
      "parents": [
        "41ac1999c3e3563e1810b14878a869c79c9368bb"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: remove reclaim_mode_t\n\nThere is little motiviation for reclaim_mode_t once RECLAIM_MODE_[A]SYNC\nand lumpy reclaim have been removed.  This patch gets rid of\nreclaim_mode_t as well and improves the documentation about what\nreclaim/compaction is and when it is triggered.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41ac1999c3e3563e1810b14878a869c79c9368bb",
      "tree": "3ee7d3778dd638ae1f429444af4ea0360cca191f",
      "parents": [
        "c53919adc045bf803252e912f23028a68525753d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: do not stall on writeback during memory compaction\n\nThis patch stops reclaim/compaction entering sync reclaim as this was\nonly intended for lumpy reclaim and an oversight.  Page migration has\nits own logic for stalling on writeback pages if necessary and memory\ncompaction is already using it.\n\nWaiting on page writeback is bad for a number of reasons but the primary\none is that waiting on writeback to a slow device like USB can take a\nconsiderable length of time.  Page reclaim instead uses\nwait_iff_congested() to throttle if too many dirty pages are being\nscanned.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c53919adc045bf803252e912f23028a68525753d",
      "tree": "352361d84125b06ca890f3a2b3568512cc14c458",
      "parents": [
        "e709ffd6169ccd259eb5874e853303e91e94e829"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: remove lumpy reclaim\n\nThis series removes lumpy reclaim and some stalling logic that was\nunintentionally being used by memory compaction.  The end result is that\nstalling on dirty pages during page reclaim now depends on\nwait_iff_congested().\n\nFour kernels were compared\n\n  3.3.0     vanilla\n  3.4.0-rc2 vanilla\n  3.4.0-rc2 lumpyremove-v2 is patch one from this series\n  3.4.0-rc2 nosync-v2r3 is the full series\n\nRemoving lumpy reclaim saves almost 900 bytes of text whereas the full\nseries removes 1200 bytes.\n\n     text     data      bss       dec     hex  filename\n  6740375  1927944  2260992  10929311  a6c49f  vmlinux-3.4.0-rc2-vanilla\n  6739479  1927944  2260992  10928415  a6c11f  vmlinux-3.4.0-rc2-lumpyremove-v2\n  6739159  1927944  2260992  10928095  a6bfdf  vmlinux-3.4.0-rc2-nosync-v2\n\nThere are behaviour changes in the series and so tests were run with\nmonitoring of ftrace events.  This disrupts results so the performance\nresults are distorted but the new behaviour should be clearer.\n\nfs-mark running in a threaded configuration showed little of interest as\nit did not push reclaim aggressively\n\n  FS-Mark Multi Threaded\n                          3.3.0-vanilla       rc2-vanilla       lumpyremove-v2r3       nosync-v2r3\n  Files/s  min           3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Files/s  mean          3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Files/s  stddev        0.00 ( 0.00%)        0.00 ( 0.00%)        0.00 ( 0.00%)        0.00 ( 0.00%)\n  Files/s  max           3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Overhead min      508667.00 ( 0.00%)   521350.00 (-2.49%)   544292.00 (-7.00%)   547168.00 (-7.57%)\n  Overhead mean     551185.00 ( 0.00%)   652690.73 (-18.42%)   991208.40 (-79.83%)   570130.53 (-3.44%)\n  Overhead stddev    18200.69 ( 0.00%)   331958.29 (-1723.88%)  1579579.43 (-8578.68%)     9576.81 (47.38%)\n  Overhead max      576775.00 ( 0.00%)  1846634.00 (-220.17%)  6901055.00 (-1096.49%)   585675.00 (-1.54%)\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             309.90    300.95    307.33    298.95\n  User+Sys Time Running Test (seconds)        319.32    309.67    315.69    307.51\n  Total Elapsed Time (seconds)               1187.85   1193.09   1191.98   1193.73\n\n  MMTests Statistics: vmstat\n  Page Ins                                       80532       82212       81420       79480\n  Page Outs                                  111434984   111456240   111437376   111582628\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                           44881       27889       27453       34843\n  Kswapd pages scanned                        25841428    25860774    25861233    25843212\n  Kswapd pages reclaimed                      25841393    25860741    25861199    25843179\n  Direct pages reclaimed                         44881       27889       27453       34843\n  Kswapd efficiency                                99%         99%         99%         99%\n  Kswapd velocity                            21754.791   21675.460   21696.029   21649.127\n  Direct efficiency                               100%        100%        100%        100%\n  Direct velocity                               37.783      23.375      23.031      29.188\n  Percentage direct scans                           0%          0%          0%          0%\n\nftrace showed that there was no stalling on writeback or pages submitted\nfor IO from reclaim context.\n\npostmark was similar and while it was more interesting, it also did not\npush reclaim heavily.\n\n  POSTMARK\n                                       3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  Transactions per second:               16.00 ( 0.00%)    20.00 (25.00%)    18.00 (12.50%)    17.00 ( 6.25%)\n  Data megabytes read per second:        18.80 ( 0.00%)    24.27 (29.10%)    22.26 (18.40%)    20.54 ( 9.26%)\n  Data megabytes written per second:     35.83 ( 0.00%)    46.25 (29.08%)    42.42 (18.39%)    39.14 ( 9.24%)\n  Files created alone per second:        28.00 ( 0.00%)    38.00 (35.71%)    34.00 (21.43%)    30.00 ( 7.14%)\n  Files create/transact per second:       8.00 ( 0.00%)    10.00 (25.00%)     9.00 (12.50%)     8.00 ( 0.00%)\n  Files deleted alone per second:       556.00 ( 0.00%)  1224.00 (120.14%)  3062.00 (450.72%)  6124.00 (1001.44%)\n  Files delete/transact per second:       8.00 ( 0.00%)    10.00 (25.00%)     9.00 (12.50%)     8.00 ( 0.00%)\n\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             113.34    107.99    109.73    108.72\n  User+Sys Time Running Test (seconds)        145.51    139.81    143.32    143.55\n  Total Elapsed Time (seconds)               1159.16    899.23    980.17   1062.27\n\n  MMTests Statistics: vmstat\n  Page Ins                                    13710192    13729032    13727944    13760136\n  Page Outs                                   43071140    42987228    42733684    42931624\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                               0           0           0           0\n  Kswapd pages scanned                         9941613     9937443     9939085     9929154\n  Kswapd pages reclaimed                       9940926     9936751     9938397     9928465\n  Direct pages reclaimed                             0           0           0           0\n  Kswapd efficiency                                99%         99%         99%         99%\n  Kswapd velocity                             8576.567   11051.058   10140.164    9347.109\n  Direct efficiency                               100%        100%        100%        100%\n  Direct velocity                                0.000       0.000       0.000       0.000\n\nIt looks like here that the full series regresses performance but as\nftrace showed no usage of wait_iff_congested() or sync reclaim I am\nassuming it\u0027s a disruption due to monitoring.  Other data such as memory\nusage, page IO, swap IO all looked similar.\n\nRunning a benchmark with a plain DD showed nothing very interesting.\nThe full series stalled in wait_iff_congested() slightly less but stall\ntimes on vanilla kernels were marginal.\n\nRunning a benchmark that hammered on file-backed mappings showed stalls\ndue to congestion but not in sync writebacks\n\n  MICRO\n                                       3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             308.13    294.50    298.75    299.53\n  User+Sys Time Running Test (seconds)        330.45    316.28    318.93    320.79\n  Total Elapsed Time (seconds)               1814.90   1833.88   1821.14   1832.91\n\n  MMTests Statistics: vmstat\n  Page Ins                                      108712      120708       97224      110344\n  Page Outs                                  155514576   156017404   155813676   156193256\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                         2599253     1550480     2512822     2414760\n  Kswapd pages scanned                        69742364    71150694    68839041    69692533\n  Kswapd pages reclaimed                      34824488    34773341    34796602    34799396\n  Direct pages reclaimed                         53693       94750       61792       75205\n  Kswapd efficiency                                49%         48%         50%         49%\n  Kswapd velocity                            38427.662   38797.901   37799.972   38022.889\n  Direct efficiency                                 2%          6%          2%          3%\n  Direct velocity                             1432.174     845.464    1379.807    1317.446\n  Percentage direct scans                           3%          2%          3%          3%\n  Page writes by reclaim                             0           0           0           0\n  Page writes file                                   0           0           0           0\n  Page writes anon                                   0           0           0           0\n  Page reclaim immediate                             0           0           0        1218\n  Page rescued immediate                             0           0           0           0\n  Slabs scanned                                  15360       16384       13312       16384\n  Direct inode steals                                0           0           0           0\n  Kswapd inode steals                             4340        4327        1630        4323\n\n  FTrace Reclaim Statistics: congestion_wait\n  Direct number congest     waited                 0          0          0          0\n  Direct time   congest     waited               0ms        0ms        0ms        0ms\n  Direct full   congest     waited                 0          0          0          0\n  Direct number conditional waited               900        870        754        789\n  Direct time   conditional waited               0ms        0ms        0ms       20ms\n  Direct full   conditional waited                 0          0          0          0\n  KSwapd number congest     waited              2106       2308       2116       1915\n  KSwapd time   congest     waited          139924ms   157832ms   125652ms   132516ms\n  KSwapd full   congest     waited              1346       1530       1202       1278\n  KSwapd number conditional waited             12922      16320      10943      14670\n  KSwapd time   conditional waited               0ms        0ms        0ms        0ms\n  KSwapd full   conditional waited                 0          0          0          0\n\nReclaim statistics are not radically changed.  The stall times in kswapd\nare massive but it is clear that it is due to calls to congestion_wait()\nand that is almost certainly the call in balance_pgdat().  Otherwise\nstalls due to dirty pages are non-existant.\n\nI ran a benchmark that stressed high-order allocation.  This is very\nartifical load but was used in the past to evaluate lumpy reclaim and\ncompaction.  Generally I look at allocation success rates and latency\nfigures.\n\n  STRESS-HIGHALLOC\n                   3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  Pass 1          81.00 ( 0.00%)    28.00 (-53.00%)    24.00 (-57.00%)    28.00 (-53.00%)\n  Pass 2          82.00 ( 0.00%)    39.00 (-43.00%)    38.00 (-44.00%)    43.00 (-39.00%)\n  while Rested    88.00 ( 0.00%)    87.00 (-1.00%)    88.00 ( 0.00%)    88.00 ( 0.00%)\n\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             740.93    681.42    685.14    684.87\n  User+Sys Time Running Test (seconds)       2922.65   3269.52   3281.35   3279.44\n  Total Elapsed Time (seconds)               1161.73   1152.49   1159.55   1161.44\n\n  MMTests Statistics: vmstat\n  Page Ins                                     4486020     2807256     2855944     2876244\n  Page Outs                                    7261600     7973688     7975320     7986120\n  Swap Ins                                       31694           0           0           0\n  Swap Outs                                      98179           0           0           0\n  Direct pages scanned                           53494       57731       34406      113015\n  Kswapd pages scanned                         6271173     1287481     1278174     1219095\n  Kswapd pages reclaimed                       2029240     1281025     1260708     1201583\n  Direct pages reclaimed                          1468       14564       16649       92456\n  Kswapd efficiency                                32%         99%         98%         98%\n  Kswapd velocity                             5398.133    1117.130    1102.302    1049.641\n  Direct efficiency                                 2%         25%         48%         81%\n  Direct velocity                               46.047      50.092      29.672      97.306\n  Percentage direct scans                           0%          4%          2%          8%\n  Page writes by reclaim                       1616049           0           0           0\n  Page writes file                             1517870           0           0           0\n  Page writes anon                               98179           0           0           0\n  Page reclaim immediate                        103778       27339        9796       17831\n  Page rescued immediate                             0           0           0           0\n  Slabs scanned                                1096704      986112      980992      998400\n  Direct inode steals                              223      215040      216736      247881\n  Kswapd inode steals                           175331       61548       68444       63066\n  Kswapd skipped wait                            21991           0           1           0\n  THP fault alloc                                    1         135         125         134\n  THP collapse alloc                               393         311         228         236\n  THP splits                                        25          13           7           8\n  THP fault fallback                                 0           0           0           0\n  THP collapse fail                                  3           5           7           7\n  Compaction stalls                                865        1270        1422        1518\n  Compaction success                               370         401         353         383\n  Compaction failures                              495         869        1069        1135\n  Compaction pages moved                        870155     3828868     4036106     4423626\n  Compaction move failure                        26429       23865       29742       27514\n\nSuccess rates are completely hosed for 3.4-rc2 which is almost certainly\ndue to commit fe2c2a106663 (\"vmscan: reclaim at order 0 when compaction\nis enabled\").  I expected this would happen for kswapd and impair\nallocation success rates (https://lkml.org/lkml/2012/1/25/166) but I did\nnot anticipate this much a difference: 80% less scanning, 37% less\nreclaim by kswapd\n\nIn comparison, reclaim/compaction is not aggressive and gives up easily\nwhich is the intended behaviour.  hugetlbfs uses __GFP_REPEAT and would\nbe much more aggressive about reclaim/compaction than THP allocations\nare.  The stress test above is allocating like neither THP or hugetlbfs\nbut is much closer to THP.\n\nMainline is now impaired in terms of high order allocation under heavy\nload although I do not know to what degree as I did not test with\n__GFP_REPEAT.  Keep this in mind for bugs related to hugepage pool\nresizing, THP allocation and high order atomic allocation failures from\nnetwork devices.\n\nIn terms of congestion throttling, I see the following for this test\n\n  FTrace Reclaim Statistics: congestion_wait\n  Direct number congest     waited                 3          0          0          0\n  Direct time   congest     waited               0ms        0ms        0ms        0ms\n  Direct full   congest     waited                 0          0          0          0\n  Direct number conditional waited               957        512       1081       1075\n  Direct time   conditional waited               0ms        0ms        0ms        0ms\n  Direct full   conditional waited                 0          0          0          0\n  KSwapd number congest     waited                36          4          3          5\n  KSwapd time   congest     waited            3148ms      400ms      300ms      500ms\n  KSwapd full   congest     waited                30          4          3          5\n  KSwapd number conditional waited             88514        197        332        542\n  KSwapd time   conditional waited            4980ms        0ms        0ms        0ms\n  KSwapd full   conditional waited                49          0          0          0\n\nThe \"conditional waited\" times are the most interesting as this is\ndirectly impacted by the number of dirty pages encountered during scan.\nAs lumpy reclaim is no longer scanning contiguous ranges, it is finding\nfewer dirty pages.  This brings wait times from about 5 seconds to 0.\nkswapd itself is still calling congestion_wait() so it\u0027ll still stall but\nit\u0027s a lot less.\n\nIn terms of the type of IO we were doing, I see this\n\n  FTrace Reclaim Statistics: mm_vmscan_writepage\n  Direct writes anon  sync                         0          0          0          0\n  Direct writes anon  async                        0          0          0          0\n  Direct writes file  sync                         0          0          0          0\n  Direct writes file  async                        0          0          0          0\n  Direct writes mixed sync                         0          0          0          0\n  Direct writes mixed async                        0          0          0          0\n  KSwapd writes anon  sync                         0          0          0          0\n  KSwapd writes anon  async                    91682          0          0          0\n  KSwapd writes file  sync                         0          0          0          0\n  KSwapd writes file  async                   822629          0          0          0\n  KSwapd writes mixed sync                         0          0          0          0\n  KSwapd writes mixed async                        0          0          0          0\n\nIn 3.2, kswapd was doing a bunch of async writes of pages but\nreclaim/compaction was never reaching a point where it was doing sync\nIO.  This does not guarantee that reclaim/compaction was not calling\nwait_on_page_writeback() but I would consider it unlikely.  It indicates\nthat merging patches 2 and 3 to stop reclaim/compaction calling\nwait_on_page_writeback() should be safe.\n\nThis patch:\n\nLumpy reclaim had a purpose but in the mind of some, it was to kick the\nsystem so hard it trashed.  For others the purpose was to complicate\nvmscan.c.  Over time it was giving softer shoes and a nicer attitude but\nmemory compaction needs to step up and replace it so this patch sends\nlumpy reclaim to the farm.\n\nThe tracepoint format changes for isolating LRU pages with this patch\napplied.  Furthermore reclaim/compaction can no longer queue dirty pages\nin pageout() if the underlying BDI is congested.  Lumpy reclaim used\nthis logic and reclaim/compaction was using it in error.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e709ffd6169ccd259eb5874e853303e91e94e829",
      "tree": "796b56c2507b8581492da73e354d651c9dd7076b",
      "parents": [
        "edad9d2c337d43278a9d5aeb0ed531c2e838f8a6"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue May 29 15:06:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: remove swap token code\n\nThe swap token code no longer fits in with the current VM model.  It\ndoes not play well with cgroups or the better NUMA placement code in\ndevelopment, since we have only one swap token globally.\n\nIt also has the potential to mess with scalability of the system, by\nincreasing the number of non-reclaimable pages on the active and\ninactive anon LRU lists.\n\nLast but not least, the swap token code has been broken for a year\nwithout complaints, as reported by Konstantin Khlebnikov.  This suggests\nwe no longer have much use for it.\n\nThe days of sub-1G memory systems with heavy use of swap are over.  If\nwe ever need thrashing reducing code in the future, we will have to\nimplement something that does scale.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Bob Picco \u003cbpicco@meloft.net\u003e\nAcked-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": "af2e840971dee21ba9b87e9ecee7d5cc6109baaa",
      "tree": "f1326d0a1873e03a36d6be6a53313331b64a0659",
      "parents": [
        "4b781474682434e7881f20e9dfbe6687ea619795"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Tue May 29 15:06:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:18 2012 -0700"
      },
      "message": "pagemap.h: fix warning about possibly used before init var\n\nCommit f56f821feb7b (\"mm: extend prefault helpers to fault in more than\nPAGE_SIZE\") added in the new functions: fault_in_multipages_writeable()\nand fault_in_multipages_readable().\n\nHowever, we currently see:\n\n  include/linux/pagemap.h:492: warning: \u0027ret\u0027 may be used uninitialized in this function\n  include/linux/pagemap.h:492: note: \u0027ret\u0027 was declared here\n\nUnlike a lot of gcc nags, this one appears somewhat legit.  i.e.  passing\nin an invalid negative value of \"size\" does make it look like all the\nconditionals in there would be bypassed and the uninitialized value would\nbe returned.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b781474682434e7881f20e9dfbe6687ea619795",
      "tree": "bdd976645ead7f04900e60017502e6a41b03e601",
      "parents": [
        "53f2c4a8fd882009a2a75c5b72d6898c0808616e",
        "29f772d41c01ad6b72c3de705e79779857badcde"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 11:53:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 11:53:11 2012 -0700"
      },
      "message": "Merge tag \u0027mfd-3.5-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6\n\nPull MFD changes from Samuel Ortiz:\n \"Besides the usual cleanups, this one brings:\n\n   * Support for 5 new chipsets: Intel\u0027s ICH LPC and SCH Centerton,\n     ST-E\u0027s STAX211, Samsung\u0027s MAX77693 and TI\u0027s LM3533.\n\n   * Device tree support for the twl6040, tps65910, da9502 and ab8500\n     drivers.\n\n   * Fairly big tps56910, ab8500 and db8500 updates.\n\n   * i2c support for mc13xxx.\n\n   * Our regular update for the wm8xxx driver from Mark.\"\n\nFix up various conflicts with other trees, largely due to ab5500 removal\netc.\n\n* tag \u0027mfd-3.5-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (106 commits)\n  mfd: Fix build break of max77693 by adding REGMAP_I2C option\n  mfd: Fix twl6040 build failure\n  mfd: Fix max77693 build failure\n  mfd: ab8500-core should depend on MFD_DB8500_PRCMU\n  gpio: tps65910: dt: process gpio specific device node info\n  mfd: Remove the parsing of dt info for tps65910 gpio\n  mfd: Save device node parsed platform data for tps65910 sub devices\n  mfd: Add r_select to lm3533 platform data\n  gpio: Add Intel Centerton support to gpio-sch\n  mfd: Emulate active low IRQs as well as active high IRQs for wm831x\n  mfd: Mark two lm3533 zone registers as volatile\n  mfd: Fix return type of lm533 attribute is_visible\n  mfd: Enable Device Tree support in the ab8500-pwm driver\n  mfd: Enable Device Tree support in the ab8500-sysctrl driver\n  mfd: Add support for Device Tree to twl6040\n  mfd: Register the twl6040 child for the ASoC codec unconditionally\n  mfd: Allocate twl6040 IRQ numbers dynamically\n  mfd: twl6040 code cleanup in interrupt initialization part\n  mfd: Enable ab8500-gpadc driver for Device Tree\n  mfd: Prevent unassigned pointer from being used in ab8500-gpadc driver\n  ...\n"
    },
    {
      "commit": "53f2c4a8fd882009a2a75c5b72d6898c0808616e",
      "tree": "922293a1056c0c2358203cdab832f0e0891e628a",
      "parents": [
        "8f6576ad476b2a22d05ddafd2ddaee102577a4ed",
        "cc0a98436820b161b595b8cc1d2329bcf7328107"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 10:43:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 10:43:51 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.5-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"New features include:\n   - Rewrite the O_DIRECT code so that it can share the same coalescing\n     and pNFS functionality as the page cache code.\n   - Allow the server to provide hints as to when we should use pNFS,\n     and when it is more efficient to read and write through the\n     metadata server.\n   - NFS cache consistency updates:\n     * Use the ctime to emulate a change attribute for NFSv2/v3 so that\n       all NFS versions can share the same cache management code.\n     * New cache management code will only look at the change attribute\n       and size attribute when deciding whether or not our cached data\n       is still valid or not.\n     * Don\u0027t request NFSv4 post-op attributes on writes in cases such as\n       O_DIRECT, where we don\u0027t care about data cache consistency, or\n       when we have a write delegation, and know that our cache is still\n       consistent.\n     * Don\u0027t request NFSv4 post-op attributes on operations such as\n       COMMIT, where there are no expected metadata updates.\n     * Don\u0027t request NFSv4 directory post-op attributes in cases where\n       the operations themselves already return change attribute\n       updates: i.e. operations such as OPEN, CREATE, REMOVE, LINK and\n       RENAME.\n   - Speed up \u0027ls\u0027 and friends by using READDIR rather than READDIRPLUS\n     if we detect no attempts to lookup filenames.\n   - Improve the code sharing between NFSv2/v3 and v4 mounts\n   - NFSv4.1 state management efficiency improvements\n   - More patches in preparation for NFSv4/v4.1 migration functionality.\"\n\nFix trivial conflict in fs/nfs/nfs4proc.c that was due to the dcache\nqstr name initialization changes (that made the length/hash a 64-bit\nunion)\n\n* tag \u0027nfs-for-3.5-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (146 commits)\n  NFSv4: Add debugging printks to state manager\n  NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO\n  NFSv4: update_changeattr does not need to set NFS_INO_REVAL_PAGECACHE\n  NFSv4.1: nfs4_reset_session should use nfs4_handle_reclaim_lease_error\n  NFSv4.1: Handle other occurrences of NFS4ERR_CONN_NOT_BOUND_TO_SESSION\n  NFSv4.1: Handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION in the state manager\n  NFSv4.1: Handle errors in nfs4_bind_conn_to_session\n  NFSv4.1: nfs4_bind_conn_to_session should drain the session\n  NFSv4.1: Don\u0027t clobber the seqid if exchange_id returns a confirmed clientid\n  NFSv4.1: Add DESTROY_CLIENTID\n  NFSv4.1: Ensure we use the correct credentials for bind_conn_to_session\n  NFSv4.1: Ensure we use the correct credentials for session create/destroy\n  NFSv4.1: Move NFSPROC4_CLNT_BIND_CONN_TO_SESSION to the end of the operations\n  NFSv4.1: Handle NFS4ERR_SEQ_MISORDERED when confirming the lease\n  NFSv4: When purging the lease, we must clear NFS4CLNT_LEASE_CONFIRM\n  NFSv4: Clean up the error handling for nfs4_reclaim_lease\n  NFSv4.1: Exchange ID must use GFP_NOFS allocation mode\n  nfs41: Use BIND_CONN_TO_SESSION for CB_PATH_DOWN*\n  nfs4.1: add BIND_CONN_TO_SESSION operation\n  NFSv4.1 test the mdsthreshold hint parameters\n  ...\n"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "1e2aec873ad6d16538512dbb96853caa1fa076af",
      "tree": "d792b19ac47be44debd24610ae27f1330fa490e4",
      "parents": [
        "ae32adc1e06d096399f195eeda12d443d53539c4",
        "2c66f623631709aa5f2e4c14c7e089682e7394a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 16:57:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 16:57:16 2012 -0700"
      },
      "message": "Merge branch \u0027generic-string-functions\u0027\n\nThis makes \u003casm/word-at-a-time.h\u003e actually live up to its promise of\nallowing architectures to help tune the string functions that do their\nwork a word at a time.\n\nDavid had already taken the x86 strncpy_from_user() function, modified\nit to work on sparc, and then done the extra work to make it generically\nuseful.  This then expands on that work by making x86 use that generic\nversion, completing the circle.\n\nBut more importantly, it fixes up the word-at-a-time interfaces so that\nit\u0027s now easy to also support things like strnlen_user(), and pretty\nmuch most random string functions.\n\nDavid reports that it all works fine on sparc, and Jonas Bonn reported\nthat an earlier version of this worked on OpenRISC too.  It\u0027s pretty\neasy for architectures to add support for this and just replace their\nprivate versions with the generic code.\n\n* generic-string-functions:\n  sparc: use the new generic strnlen_user() function\n  x86: use the new generic strnlen_user() function\n  lib: add generic strnlen_user() function\n  word-at-a-time: make the interfaces truly generic\n  x86: use generic strncpy_from_user routine\n"
    },
    {
      "commit": "ae32adc1e06d096399f195eeda12d443d53539c4",
      "tree": "9fc69aaabc6a7b95d435ae7197f57aaa672933db",
      "parents": [
        "f465d145d76803fe6332092775d891c8c509aa44",
        "9868a060ccf769c08ec378a9829137e272e9a92c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 13:35:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 13:35:03 2012 -0700"
      },
      "message": "Merge branch \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux\n\nPull i2c-embedded changes from Wolfram Sang:\n \"Major changes:\n\n   - lots of devicetree additions for existing drivers.  I tried hard to\n     make sure the bindings are proper.  In more complicated cases, I\n     requested acks from people having more experience with them than\n     me.  That took a bit of extra time and also some time went into\n     discussions with developers about what bindings are and what not.\n     I have the feeling that the workflow with bindings should be\n     improved to scale better.  I will spend some more thought on\n     this...\n\n   - i2c-muxes are succesfully used meanwhile, so we dropped\n     EXPERIMENTAL for them and renamed the drivers to a standard pattern\n     to match the rest of the subsystem.  They can also be used with\n     devicetree now.\n\n   - ixp2000 was removed since the whole platform goes away.\n\n   - cleanups (strlcpy instead of strcpy, NULL instead of 0)\n\n   - The rest is typical driver fixes I assume.\n\n  All patches have been in linux-next at least since v3.4-rc6.\"\n\nFixed up trivial conflict in arch/arm/mach-lpc32xx/common.c due to the\nsame patch already having come in through the arm/soc trees, with\nadditional patches on top of it.\n\n* \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux: (35 commits)\n  i2c: davinci: Free requested IRQ in remove\n  i2c: ocores: register OF i2c devices\n  i2c: tegra: notify transfer-complete after clearing status.\n  I2C: xiic: Add OF binding support\n  i2c: Rename last mux driver to standard pattern\n  i2c: tegra: fix 10bit address configuration\n  i2c: muxes: rename first set of drivers to a standard pattern\n  of/i2c: implement of_find_i2c_adapter_by_node\n  i2c: implement i2c_verify_adapter\n  i2c-s3c2410: Add HDMIPHY quirk for S3C2440\n  i2c-s3c2410: Rework device type handling\n  i2c: muxes are not EXPERIMENTAL anymore\n  i2c/of: Automatically populate i2c mux busses from device tree data.\n  i2c: Add a struct device * parameter to i2c_add_mux_adapter()\n  of/i2c: call i2c_verify_client from of_find_i2c_device_by_node\n  i2c: designware: Add clk_{un}prepare() support\n  i2c: designware: add PM support\n  i2c: ixp2000: remove driver\n  i2c: pnx: add device tree support\n  i2c: imx: don\u0027t use strcpy but strlcpy\n  ...\n"
    },
    {
      "commit": "84a442b9a16ee69243ce7fce5d6f6f9c3fbdee68",
      "tree": "332a0c901d8ab2ffb19b8ce14b4b094bf5b08657",
      "parents": [
        "39b6cc668c5ecc66f6f9c9293ffab681cb6f7065",
        "deb88cc3c69975cbd9875ed9fac259b351f6b64d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 12:57:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 12:57:47 2012 -0700"
      },
      "message": "Merge tag \u0027dt2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull arm-soc device tree conversions (part 2) from Olof Johansson:\n \"These continue the device tree work from part 1, this set is for the\n  tegra, mxs and imx platforms, all of which have dependencies on clock\n  or pinctrl changes submitted earlier.\"\n\nFix up trivial conflicts due to nearby changes in\ndrivers/{gpio/gpio,i2c/busses/i2c}-mxs.c\n\n* tag \u0027dt2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (73 commits)\n  ARM: dt: tegra: invert status\u003ddisable vs status\u003dokay\n  ARM: dt: tegra: consistent basic property ordering\n  ARM: dt: tegra: sort nodes based on bus order\n  ARM: dt: tegra: remove duplicate device_type property\n  ARM: dt: tegra: consistenly use lower-case for hex constants\n  ARM: dt: tegra: format regs properties consistently\n  ARM: dt: tegra: gpio comment cleanup\n  ARM: dt: tegra: remove unnecessary unit addresses\n  ARM: dt: tegra: whitespace cleanup\n  ARM: dt: tegra cardhu: fix typo in SDHCI node name\n  ARM: dt: tegra: cardhu: register core regulator tps62361\n  ARM: dt: tegra30.dtsi: Add SMMU node\n  ARM: dt: tegra20.dtsi: Add GART node\n  ARM: dt: tegra30.dtsi: Add Memory Controller(MC) nodes\n  ARM: dt: tegra20.dtsi: Add Memory Controller(MC) nodes\n  ARM: dt: tegra: Add device tree support for AHB\n  ARM: dts: enable audio support for imx28-evk\n  ARM: dts: enable i2c device for imx28-evk\n  i2c: mxs: add device tree probe support\n  ARM: dts: enable mmc for imx28-evk\n  ...\n"
    },
    {
      "commit": "39b6cc668c5ecc66f6f9c9293ffab681cb6f7065",
      "tree": "f048b17a1b1a0a0f6d6a8d33459e8789c600c634",
      "parents": [
        "27953437059c64d14086196eb96f43c78caa9db3",
        "3f81b2c49d31e763a9c1da831ceb6cef087cf6c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 12:50:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 12:50:04 2012 -0700"
      },
      "message": "Merge tag \u0027stmp-dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull arm-soc stmp-dev library code from Olof Johansson:\n \"A number of devices are using a common register layout, this adds\n  support code for it in lib/stmp_device.c so we do not need to\n  duplicate it in each driver.\"\n\nFix up trivial conflicts in drivers/i2c/busses/i2c-mxs.c and\nlib/Makefile\n\n* tag \u0027stmp-dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:\n  i2c: mxs: use global reset function\n  lib: add support for stmp-style devices\n"
    },
    {
      "commit": "27953437059c64d14086196eb96f43c78caa9db3",
      "tree": "0cfd5fb21262a6db3de0c64462847b4c0c43e9df",
      "parents": [
        "2c757fd5d1a92086f225a75a8fac7cab242d11b0",
        "3c0dec5f58b3c7b3627715126d1bf9b030a076f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 12:42:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 12:42:29 2012 -0700"
      },
      "message": "Merge tag \u0027clock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull arm-soc clock driver changes from Olof Johansson:\n \"The new clock subsystem was merged in linux-3.4 without any users,\n  this now moves the first three platforms over to it: imx, mxs and\n  spear.\n\n  The series also contains the changes for the clock subsystem itself,\n  since Mike preferred to have it together with the platforms that\n  require these changes, in order to avoid interdependencies and\n  conflicts.\"\n\nFix up trivial conflicts in arch/arm/mach-kirkwood/common.c (code\nremoved in one branch, added OF support in another) and\ndrivers/dma/imx-sdma.c (independent changes next to each other).\n\n* tag \u0027clock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (97 commits)\n  clk: Fix CLK_SET_RATE_GATE flag validation in clk_set_rate().\n  clk: Provide dummy clk_unregister()\n  SPEAr: Update defconfigs\n  SPEAr: Add SMI NOR partition info in dts files\n  SPEAr: Switch to common clock framework\n  SPEAr: Call clk_prepare() before calling clk_enable\n  SPEAr: clk: Add General Purpose Timer Synthesizer clock\n  SPEAr: clk: Add Fractional Synthesizer clock\n  SPEAr: clk: Add Auxiliary Synthesizer clock\n  SPEAr: clk: Add VCO-PLL Synthesizer clock\n  SPEAr: Add DT bindings for SPEAr\u0027s timer\n  ARM i.MX: remove now unused clock files\n  ARM: i.MX6: implement clocks using common clock framework\n  ARM i.MX35: implement clocks using common clock framework\n  ARM i.MX5: implement clocks using common clock framework\n  ARM: Kirkwood: Replace clock gating\n  ARM: Orion: Audio: Add clk/clkdev support\n  ARM: Orion: PCIE: Add support for clk\n  ARM: Orion: XOR: Add support for clk\n  ARM: Orion: CESA: Add support for clk\n  ...\n"
    },
    {
      "commit": "36126f8f2ed8168eb13aa0662b9b9585cba100a9",
      "tree": "543f6b6ab60dd3e47af931142aa84f0ba7749d43",
      "parents": [
        "4ae73f2d53255c388d50bf83c1681112a6f9cba1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 10:43:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 11:33:40 2012 -0700"
      },
      "message": "word-at-a-time: make the interfaces truly generic\n\nThis changes the interfaces in \u003casm/word-at-a-time.h\u003e to be a bit more\ncomplicated, but a lot more generic.\n\nIn particular, it allows us to really do the operations efficiently on\nboth little-endian and big-endian machines, pretty much regardless of\nmachine details.  For example, if you can rely on a fast population\ncount instruction on your architecture, this will allow you to make your\noptimized \u003casm/word-at-a-time.h\u003e file with that.\n\nNOTE! The \"generic\" version in include/asm-generic/word-at-a-time.h is\nnot truly generic, it actually only works on big-endian.  Why? Because\non little-endian the generic algorithms are wasteful, since you can\ninevitably do better. The x86 implementation is an example of that.\n\n(The only truly non-generic part of the asm-generic implementation is\nthe \"find_zero()\" function, and you could make a little-endian version\nof it.  And if the Kbuild infrastructure allowed us to pick a particular\nheader file, that would be lovely)\n\nThe \u003casm/word-at-a-time.h\u003e functions are as follows:\n\n - WORD_AT_A_TIME_CONSTANTS: specific constants that the algorithm\n   uses.\n\n - has_zero(): take a word, and determine if it has a zero byte in it.\n   It gets the word, the pointer to the constant pool, and a pointer to\n   an intermediate \"data\" field it can set.\n\n   This is the \"quick-and-dirty\" zero tester: it\u0027s what is run inside\n   the hot loops.\n\n - \"prep_zero_mask()\": take the word, the data that has_zero() produced,\n   and the constant pool, and generate an *exact* mask of which byte had\n   the first zero.  This is run directly *outside* the loop, and allows\n   the \"has_zero()\" function to answer the \"is there a zero byte\"\n   question without necessarily getting exactly *which* byte is the\n   first one to contain a zero.\n\n   If you do multiple byte lookups concurrently (eg \"hash_name()\", which\n   looks for both NUL and \u0027/\u0027 bytes), after you\u0027ve done the prep_zero_mask()\n   phase, the result of those can be or\u0027ed together to get the \"either\n   or\" case.\n\n - The result from \"prep_zero_mask()\" can then be fed into \"find_zero()\"\n   (to find the byte offset of the first byte that was zero) or into\n   \"zero_bytemask()\" (to find the bytemask of the bytes preceding the\n   zero byte).\n\n   The existence of zero_bytemask() is optional, and is not necessary\n   for the normal string routines.  But dentry name hashing needs it, so\n   if you enable DENTRY_WORD_AT_A_TIME you need to expose it.\n\nThis changes the generic strncpy_from_user() function and the dentry\nhashing functions to use these modified word-at-a-time interfaces.  This\ngets us back to the optimized state of the x86 strncpy that we lost in\nthe previous commit when moving over to the generic version.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32b0131069c5bebf52368a9fe170f8d58b78fa8d",
      "tree": "540451b739e9938b2f15682a0bab117852bc8e4e",
      "parents": [
        "662455391040a783b89d0232e743c27c23617dbd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 26 13:41:04 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 26 14:17:31 2012 -0400"
      },
      "message": "NFSv4.1: Don\u0027t clobber the seqid if exchange_id returns a confirmed clientid\n\nIf the EXCHGID4_FLAG_CONFIRMED_R flag is set, the client is in theory\nsupposed to already know the correct value of the seqid, in which case\nRFC5661 states that it should ignore the value returned.\n\nAlso ensure that if the sanity check in nfs4_check_cl_exchange_flags\nfails, then we must not change the nfs_client fields.\n\nFinally, clean up the code: we don\u0027t need to retest the value of\n\u0027status\u0027 unless it can change.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "662455391040a783b89d0232e743c27c23617dbd",
      "tree": "aa1819778ac5005932edcbd844c54e6cab0dc4e5",
      "parents": [
        "2cf047c994c8a62f65e520342d0287fca8807a53"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 17:18:09 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 26 14:17:30 2012 -0400"
      },
      "message": "NFSv4.1: Add DESTROY_CLIENTID\n\nEnsure that we destroy our lease on last unmount\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fa2af6e4fe0c4d2f8875d42625b25675e8584010",
      "tree": "ef9a92949858ab763aa1bfda7cb11a5f7b84d123",
      "parents": [
        "109b9b0408e5f1dd327a44f446841a9fbe0bcd83",
        "1fcb78e9da714d96f65edd37b29dae3b1f7df508"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 15:59:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 15:59:38 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\nPull tile updates from Chris Metcalf:\n \"These changes cover a range of new arch/tile features and\n  optimizations.  They\u0027ve been through LKML review and on linux-next for\n  a month or so.  There\u0027s also one bug-fix that just missed 3.4, which\n  I\u0027ve marked for stable.\"\n\nFixed up trivial conflict in arch/tile/Kconfig (new added tile Kconfig\nentries clashing with the generic timer/clockevents changes).\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  tile: default to tilegx_defconfig for ARCH\u003dtile\n  tile: fix bug where fls(0) was not returning 0\n  arch/tile: mark TILEGX as not EXPERIMENTAL\n  tile/mm/fault.c: Port OOM changes to handle_page_fault\n  arch/tile: add descriptive text if the kernel reports a bad trap\n  arch/tile: allow querying cpu module information from the hypervisor\n  arch/tile: fix hardwall for tilegx and generalize for idn and ipi\n  arch/tile: support multiple huge page sizes dynamically\n  mm: add new arch_make_huge_pte() method for tile support\n  arch/tile: support kexec() for tilegx\n  arch/tile: support \u003casm/cachectl.h\u003e header for cacheflush() syscall\n  arch/tile: Allow tilegx to build with either 16K or 64K page size\n  arch/tile: optimize get_user/put_user and friends\n  arch/tile: support building big-endian kernel\n  arch/tile: allow building Linux with transparent huge pages enabled\n  arch/tile: use interrupt critical sections less\n"
    },
    {
      "commit": "ad24ecfbcddfa88541bccc980e753aeda8bf4031",
      "tree": "bb079de871d886728dd141cf1aaae7d40f999158",
      "parents": [
        "89a217360ef4e96eb83758cb9647f1c42581b097"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 17:11:42 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 25 18:02:09 2012 -0400"
      },
      "message": "NFSv4.1: Move NFSPROC4_CLNT_BIND_CONN_TO_SESSION to the end of the operations\n\nFor backward compatibility with nfs-utils.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Weston Andros Adamson \u003cdros@netapp.com\u003e\n"
    },
    {
      "commit": "d9ed9faac283a3be73f0e11a2ef49ee55aece4db",
      "tree": "49ec312cc1a066d23d602838d58a1723ec9331e8",
      "parents": [
        "fc0c49f5db640b9dfc7bb801892b5cbb7508a76a"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Sun Apr 01 14:01:34 2012 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Fri May 25 12:48:26 2012 -0400"
      },
      "message": "mm: add new arch_make_huge_pte() method for tile support\n\nThe tile support for multiple-size huge pages requires tagging\nthe hugetlb PTE with a \"super\" bit for PTEs that are multiples of\nthe basic size of a pagetable span.  To set that bit properly\nwe need to tweak the PTe in make_huge_pte() based on the vma.\n\nThis change provides the API for a subsequent tile-specific\nchange to use.\n\nReviewed-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "73636b1aacb1a07e6fbe0d25e560e69b024a8e25",
      "tree": "9531c202c6b3f67fba1cd7ac2b83fa32c31fe197",
      "parents": [
        "51007004f44c9588d70ffb77e1f52479bd5b0e37"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Wed Mar 28 13:59:18 2012 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Fri May 25 12:48:21 2012 -0400"
      },
      "message": "arch/tile: allow building Linux with transparent huge pages enabled\n\nThe change adds some infrastructure for managing tile pmd\u0027s more generally,\nusing pte_pmd() and pmd_pte() methods to translate pmd values to and\nfrom ptes, since on TILEPro a pmd is really just a nested structure\nholding a pgd (aka pte).  Several existing pmd methods are moved into\nthis framework, and a whole raft of additional pmd accessors are defined\nthat are used by the transparent hugepage framework.\n\nThe tile PTE now has a \"client2\" bit.  The bit is used to indicate a\ntransparent huge page is in the process of being split into subpages.\n\nThis change also fixes a generic bug where the return value of the\ngeneric pmdp_splitting_flush() was incorrect.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "da89fb165e5e51a2ec1ff8a0ff6bc052d1068184",
      "tree": "1f15b6177a886ceef83d60c3b5a7af926442f581",
      "parents": [
        "d5adf235adc8d8d67c10afd43922c92753f6be3c",
        "b25b086d23eb852bf3cfdeb60409b4967ebb3c0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:37:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:37:26 2012 -0700"
      },
      "message": "Merge tag \u0027tag-for-linus-3.5\u0027 of git://git.linaro.org/people/sumitsemwal/linux-dma-buf\n\nPull dma-buf updates from Sumit Semwal:\n \"Here\u0027s the first signed-tag pull request for dma-buf framework.  It\n  includes the following key items:\n   - mmap support\n   - vmap support\n   - related documentation updates\n\n  These are needed by various drivers to allow mmap/vmap of dma-buf\n  shared buffers.  Dave Airlie has some prime patches dependent on the\n  vmap pull as well.\"\n\n* tag \u0027tag-for-linus-3.5\u0027 of git://git.linaro.org/people/sumitsemwal/linux-dma-buf:\n  dma-buf: add initial vmap documentation\n  dma-buf: minor documentation fixes.\n  dma-buf: add vmap interface\n  dma-buf: mmap support\n"
    },
    {
      "commit": "d5adf235adc8d8d67c10afd43922c92753f6be3c",
      "tree": "18c3cdcbc9a50a8cd00b03d83ec76bad7c7594f8",
      "parents": [
        "d484864dd96e1830e7689510597707c1df8cd681",
        "1dd1ea8eb46a71201943148cc0ed3182cd04e288"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:31:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:31:59 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma\n\nPull slave-dmaengine updates from Vinod Koul:\n \"Nothing exciting this time, odd fixes in a bunch of drivers\"\n\n* \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma:\n  dmaengine: at_hdmac: take maxburst from slave configuration\n  dmaengine: at_hdmac: remove ATC_DEFAULT_CTRLA constant\n  dmaengine: at_hdmac: remove some at_dma_slave comments\n  dma: imx-sdma: make channel0 operations atomic\n  dmaengine: Fixup dmaengine_prep_slave_single() to be actually useful\n  dmaengine: Use dma_sg_len(sg) instead of sg-\u003elength\n  dmaengine: Use sg_dma_address instead of sg_phys\n  DMA: PL330: Remove duplicate header file inclusion\n  dma: imx-sdma: keep the callbacks invoked in the tasklet\n  dmaengine: dw_dma: add Device Tree probing capability\n  dmaengine: dw_dmac: Add clk_{un}prepare() support\n  dma/amba-pl08x: add support for the Nomadik variant\n  dma/amba-pl08x: check for terminal count status only\n"
    },
    {
      "commit": "d484864dd96e1830e7689510597707c1df8cd681",
      "tree": "51551708ba3f26d05575fa91daaf0c0d970a77c3",
      "parents": [
        "be87cfb47c5c740f7b17929bcd7c480b228513e0",
        "0f51596bd39a5c928307ffcffc9ba07f90f42a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:18:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:18:59 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.linaro.org/people/mszyprowski/linux-dma-mapping\n\nPull CMA and ARM DMA-mapping updates from Marek Szyprowski:\n \"These patches contain two major updates for DMA mapping subsystem\n  (mainly for ARM architecture).  First one is Contiguous Memory\n  Allocator (CMA) which makes it possible for device drivers to allocate\n  big contiguous chunks of memory after the system has booted.\n\n  The main difference from the similar frameworks is the fact that CMA\n  allows to transparently reuse the memory region reserved for the big\n  chunk allocation as a system memory, so no memory is wasted when no\n  big chunk is allocated.  Once the alloc request is issued, the\n  framework migrates system pages to create space for the required big\n  chunk of physically contiguous memory.\n\n  For more information one can refer to nice LWN articles:\n\n   - \u0027A reworked contiguous memory allocator\u0027:\n\t\thttp://lwn.net/Articles/447405/\n\n   - \u0027CMA and ARM\u0027:\n\t\thttp://lwn.net/Articles/450286/\n\n   - \u0027A deep dive into CMA\u0027:\n\t\thttp://lwn.net/Articles/486301/\n\n   - and the following thread with the patches and links to all previous\n     versions:\n\t\thttps://lkml.org/lkml/2012/4/3/204\n\n  The main client for this new framework is ARM DMA-mapping subsystem.\n\n  The second part provides a complete redesign in ARM DMA-mapping\n  subsystem.  The core implementation has been changed to use common\n  struct dma_map_ops based infrastructure with the recent updates for\n  new dma attributes merged in v3.4-rc2.  This allows to use more than\n  one implementation of dma-mapping calls and change/select them on the\n  struct device basis.  The first client of this new infractructure is\n  dmabounce implementation which has been completely cut out of the\n  core, common code.\n\n  The last patch of this redesign update introduces a new, experimental\n  implementation of dma-mapping calls on top of generic IOMMU framework.\n  This lets ARM sub-platform to transparently use IOMMU for DMA-mapping\n  calls if one provides required IOMMU hardware.\n\n  For more information please refer to the following thread:\n\t\thttp://www.spinics.net/lists/arm-kernel/msg175729.html\n\n  The last patch merges changes from both updates and provides a\n  resolution for the conflicts which cannot be avoided when patches have\n  been applied on the same files (mainly arch/arm/mm/dma-mapping.c).\"\n\nAcked by Andrew Morton \u003cakpm@linux-foundation.org\u003e:\n \"Yup, this one please.  It\u0027s had much work, plenty of review and I\n  think even Russell is happy with it.\"\n\n* \u0027for-linus\u0027 of git://git.linaro.org/people/mszyprowski/linux-dma-mapping: (28 commits)\n  ARM: dma-mapping: use PMD size for section unmap\n  cma: fix migration mode\n  ARM: integrate CMA with DMA-mapping subsystem\n  X86: integrate CMA with DMA-mapping subsystem\n  drivers: add Contiguous Memory Allocator\n  mm: trigger page reclaim in alloc_contig_range() to stabilise watermarks\n  mm: extract reclaim code from __alloc_pages_direct_reclaim()\n  mm: Serialize access to min_free_kbytes\n  mm: page_isolation: MIGRATE_CMA isolation functions added\n  mm: mmzone: MIGRATE_CMA migration type added\n  mm: page_alloc: change fallbacks array handling\n  mm: page_alloc: introduce alloc_contig_range()\n  mm: compaction: export some of the functions\n  mm: compaction: introduce isolate_freepages_range()\n  mm: compaction: introduce map_pages()\n  mm: compaction: introduce isolate_migratepages_range()\n  mm: page_alloc: remove trailing whitespace\n  ARM: dma-mapping: add support for IOMMU mapper\n  ARM: dma-mapping: use alloc, mmap, free from dma_ops\n  ARM: dma-mapping: remove redundant code and do the cleanup\n  ...\n\nConflicts:\n\tarch/x86/include/asm/dma-mapping.h\n"
    },
    {
      "commit": "92bf3d09410531a06e06504957271e3978f937e2",
      "tree": "e638413049deb010103bc65e2650d1315dbaa748",
      "parents": [
        "603d6637aeb9a14cd0087d7c24c3777bfa51fcbf",
        "0caaa9539adcff38ce12e99f0ab25645e7eb3eea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:23:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:23:32 2012 -0700"
      },
      "message": "Merge tag \u0027mmc-merge-for-3.5-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\nPull MMC changes from Chris Ball\n - at91-mci: This driver will be replaced by atmel-mci in 3.7.\n - atmel-mci: Add support for old at91-mci hardware.\n - dw_mmc: Allow multiple controllers; this previously caused\n   corruption.\n - imxmmc: Remove this driver, replaced by mxcmmc.\n - mmci: Add device tree support.\n - omap: Allow multiple controllers.\n - omap_hsmmc: Auto CMD12, DDR support.\n - tegra: Support SD 3.0 spec.\n\nFix up the usual trivial conflicts in feature-removal-schedule.txt\n\n* tag \u0027mmc-merge-for-3.5-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (38 commits)\n  mmc: at91-mci: this driver is now deprecated\n  mmc: omap_hsmmc: pass IRQF_ONESHOT to request_threaded_irq\n  mmc: block: Allow disabling 512B sector size emulation\n  mmc: atmel-mci: add debug logs\n  mmc: atmel-mci: add support for version lower than v2xx\n  mmc: atmel-mci: change the state machine for compatibility with old IP\n  mmc: atmel-mci: the r/w proof capability lack was not well managed\n  mmc: dw_mmc: Fixed sdio interrupt mask bit setting bug\n  mmc: omap: convert to module_platform_driver\n  mmc: omap: make it behave well as a module\n  mmc: omap: convert to per instance workqueue\n  mmc: core: Remove dead code\n  mmc: card: Avoid null pointer dereference\n  mmc: core: Prevent eMMC VCC supply to be cut from late init\n  mmc: dw_mmc: make multiple instances of dw_mci_card_workqueue\n  mmc: queue: remove redundant memsets\n  mmc: queue: rename mmc_request function\n  mmc: core: skip card initialization if power class selection fails\n  mmc: core: fix the signaling 1.8V for HS200\n  mmc: core: fix the decision of HS200/DDR card-type\n  ...\n"
    },
    {
      "commit": "ece78b7df734726e790dcab207f463401ff80440",
      "tree": "4a0b23c28c6a727d5eebc8a88a22fe3720c425fd",
      "parents": [
        "07acfc2a9349a8ce45b236c2624dad452001966b",
        "0324876628a9c7faf8127e20af29373dc6dec876"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:14:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:14:59 2012 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull ext2, ext3 and quota fixes from Jan Kara:\n \"Interesting bits are:\n   - removal of a special i_mutex locking subclass (I_MUTEX_QUOTA) since\n     quota code does not need i_mutex anymore in any unusual way.\n   - backport (from ext4) of a fix of a checkpointing bug (missing cache\n     flush) that could lead to fs corruption on power failure\n\n  The rest are just random small fixes \u0026 cleanups.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext2: trivial fix to comment for ext2_free_blocks\n  ext2: remove the redundant comment for ext2_export_ops\n  ext3: return 32/64-bit dir name hash according to usage type\n  quota: Get rid of nested I_MUTEX_QUOTA locking subclass\n  quota: Use precomputed value of sb_dqopt in dquot_quota_sync\n  ext2: Remove i_mutex use from ext2_quota_write()\n  reiserfs: Remove i_mutex use from reiserfs_quota_write()\n  ext4: Remove i_mutex use from ext4_quota_write()\n  ext3: Remove i_mutex use from ext3_quota_write()\n  quota: Fix double lock in add_dquot_ref() with CONFIG_QUOTA_DEBUG\n  jbd: Write journal superblock with WRITE_FUA after checkpointing\n  jbd: protect all log tail updates with j_checkpoint_mutex\n  jbd: Split updating of journal superblock and marking journal empty\n  ext2: do not register write_super within VFS\n  ext2: Remove s_dirt handling\n  ext2: write superblock only once on unmount\n  ext3: update documentation with barrier\u003d1 default\n  ext3: remove max_debt in find_group_orlov()\n  jbd: Refine commit writeout logic\n"
    },
    {
      "commit": "12c4727e1d5370270a7df781d2ba0a76e05c1137",
      "tree": "2b0d4f5fbce329467e700f557d50b2cc126a4190",
      "parents": [
        "98f86c9e4ae3205e4c85c535691a5d36426360ee"
      ],
      "author": {
        "name": "Sumit Semwal",
        "email": "sumit.semwal@ti.com",
        "time": "Wed May 23 15:27:40 2012 +0530"
      },
      "committer": {
        "name": "Sumit Semwal",
        "email": "sumit.semwal@ti.com",
        "time": "Fri May 25 12:46:23 2012 +0530"
      },
      "message": "dma-buf: minor documentation fixes.\n\nSome minor inline documentation fixes for gaps resulting from new patches.\n\nSigned-off-by: Sumit Semwal \u003csumit.semwal@ti.com\u003e\nSigned-off-by: Sumit Semwal \u003csumit.semwal@linaro.org\u003e\n"
    },
    {
      "commit": "98f86c9e4ae3205e4c85c535691a5d36426360ee",
      "tree": "07a533aaf702c8b0a0f6ffb0b0ee2ae6e4fe62e3",
      "parents": [
        "4c78513e457f72d5554a0f6e2eabfad7b98e4f19"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Sun May 20 12:33:56 2012 +0530"
      },
      "committer": {
        "name": "Sumit Semwal",
        "email": "sumit.semwal@ti.com",
        "time": "Fri May 25 12:35:24 2012 +0530"
      },
      "message": "dma-buf: add vmap interface\n\nThe main requirement I have for this interface is for scanning out\nusing the USB gpu devices. Since these devices have to read the\nframebuffer on updates and linearly compress it, using kmaps\nis a major overhead for every update.\n\nv2: fix warn issues pointed out by Sylwester Nawrocki.\n\nv3: fix compile !CONFIG_DMA_SHARED_BUFFER and add _GPL for now\n\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nReviewed-by: Rob Clark \u003crob.clark@linaro.org\u003e\nSigned-off-by: Sumit Semwal \u003csumit.semwal@linaro.org\u003e\n"
    },
    {
      "commit": "4c78513e457f72d5554a0f6e2eabfad7b98e4f19",
      "tree": "2cdb5c552580f159ff66632aef781e8739c85c42",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Tue Apr 24 14:38:52 2012 +0530"
      },
      "committer": {
        "name": "Sumit Semwal",
        "email": "sumit.semwal@ti.com",
        "time": "Fri May 25 12:35:24 2012 +0530"
      },
      "message": "dma-buf: mmap support\n\nCompared to Rob Clark\u0027s RFC I\u0027ve ditched the prepare/finish hooks\nand corresponding ioctls on the dma_buf file. The major reason for\nthat is that many people seem to be under the impression that this is\nalso for synchronization with outstanding asynchronous processsing.\nI\u0027m pretty massively opposed to this because:\n\n- It boils down reinventing a new rather general-purpose userspace\n  synchronization interface. If we look at things like futexes, this\n  is hard to get right.\n- Furthermore a lot of kernel code has to interact with this\n  synchronization primitive. This smells a look like the dri1 hw_lock,\n  a horror show I prefer not to reinvent.\n- Even more fun is that multiple different subsystems would interact\n  here, so we have plenty of opportunities to create funny deadlock\n  scenarios.\n\nI think synchronization is a wholesale different problem from data\nsharing and should be tackled as an orthogonal problem.\n\nNow we could demand that prepare/finish may only ensure cache\ncoherency (as Rob intended), but that runs up into the next problem:\nWe not only need mmap support to facilitate sw-only processing nodes\nin a pipeline (without jumping through hoops by importing the dma_buf\ninto some sw-access only importer), which allows for a nicer\nION-\u003edma-buf upgrade path for existing Android userspace. We also need\nmmap support for existing importing subsystems to support existing\nuserspace libraries. And a loot of these subsystems are expected to\nexport coherent userspace mappings.\n\nSo prepare/finish can only ever be optional and the exporter /needs/\nto support coherent mappings. Given that mmap access is always\nsomewhat fallback-y in nature I\u0027ve decided to drop this optimization,\ninstead of just making it optional. If we demonstrate a clear need for\nthis, supported by benchmark results, we can always add it in again\nlater as an optional extension.\n\nOther differences compared to Rob\u0027s RFC is the above mentioned support\nfor mapping a dma-buf through facilities provided by the importer.\nWhich results in mmap support no longer being optional.\n\nNote that this dma-buf mmap patch does _not_ support every possible\ninsanity an existing subsystem could pull of with mmap: Because it\ndoes not allow to intercept pagefaults and shoot down ptes importing\nsubsystems can\u0027t add some magic of their own at these points (e.g. to\nautomatically synchronize with outstanding rendering or set up some\nspecial resources). I\u0027ve done a cursory read through a few mmap\nimplementions of various subsytems and I\u0027m hopeful that we can avoid\nthis (and the complexity it\u0027d bring with it).\n\nAdditonally I\u0027ve extended the documentation a bit to explain the hows\nand whys of this mmap extension.\n\nIn case we ever want to add support for explicitly cache maneged\nuserspace mmap with a prepare/finish ioctl pair, we could specify that\nuserspace needs to mmap a different part of the dma_buf, e.g. the\nrange starting at dma_buf-\u003esize up to dma_buf-\u003esize*2. This works\nbecause the size of a dma_buf is invariant over it\u0027s lifetime. The\nexporter would obviously need to fall back to coherent mappings for\nboth ranges if a legacy clients maps the coherent range and the\narchitecture cannot suppor conflicting caching policies. Also, this\nwould obviously be optional and userspace needs to be able to fall\nback to coherent mappings.\n\nv2:\n- Spelling fixes from Rob Clark.\n- Compile fix for !DMA_BUF from Rob Clark.\n- Extend commit message to explain how explicitly cache managed mmap\n  support could be added later.\n- Extend the documentation with implementations notes for exporters\n  that need to manually fake coherency.\n\nv3:\n- dma_buf pointer initialization goof-up noticed by Rebecca Schultz\n  Zavin.\n\nCc: Rob Clark \u003crob.clark@linaro.org\u003e\nCc: Rebecca Schultz Zavin \u003crebecca@android.com\u003e\nAcked-by: Rob Clark \u003crob.clark@linaro.org\u003e\nSigned-Off-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nSigned-off-by: Sumit Semwal \u003csumit.semwal@linaro.org\u003e\n"
    },
    {
      "commit": "07acfc2a9349a8ce45b236c2624dad452001966b",
      "tree": "c40f3eaac18a8320e65af220979223b5cd632b1b",
      "parents": [
        "b5f4035adfffbcc6b478de5b8c44b618b3124aff",
        "322728e55aa7834e2fab2786b76df183c4843a12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 16:17:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 16:17:30 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM changes from Avi Kivity:\n \"Changes include additional instruction emulation, page-crossing MMIO,\n  faster dirty logging, preventing the watchdog from killing a stopped\n  guest, module autoload, a new MSI ABI, and some minor optimizations\n  and fixes.  Outside x86 we have a small s390 and a very large ppc\n  update.\n\n  Regarding the new (for kvm) rebaseless workflow, some of the patches\n  that were merged before we switch trees had to be rebased, while\n  others are true pulls.  In either case the signoffs should be correct\n  now.\"\n\nFix up trivial conflicts in Documentation/feature-removal-schedule.txt\narch/powerpc/kvm/book3s_segment.S and arch/x86/include/asm/kvm_para.h.\n\nI suspect the kvm_para.h resolution ends up doing the \"do I have cpuid\"\ncheck effectively twice (it was done differently in two different\ncommits), but better safe than sorry ;)\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (125 commits)\n  KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block\n  KVM: s390: onereg for timer related registers\n  KVM: s390: epoch difference and TOD programmable field\n  KVM: s390: KVM_GET/SET_ONEREG for s390\n  KVM: s390: add capability indicating COW support\n  KVM: Fix mmu_reload() clash with nested vmx event injection\n  KVM: MMU: Don\u0027t use RCU for lockless shadow walking\n  KVM: VMX: Optimize %ds, %es reload\n  KVM: VMX: Fix %ds/%es clobber\n  KVM: x86 emulator: convert bsf/bsr instructions to emulate_2op_SrcV_nobyte()\n  KVM: VMX: unlike vmcs on fail path\n  KVM: PPC: Emulator: clean up SPR reads and writes\n  KVM: PPC: Emulator: clean up instruction parsing\n  kvm/powerpc: Add new ioctl to retreive server MMU infos\n  kvm/book3s: Make kernel emulated H_PUT_TCE available for \"PR\" KVM\n  KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler\n  KVM: PPC: Book3S: Enable IRQs during exit handling\n  KVM: PPC: Fix PR KVM on POWER7 bare metal\n  KVM: PPC: Fix stbux emulation\n  KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields\n  ...\n"
    },
    {
      "commit": "b5f4035adfffbcc6b478de5b8c44b618b3124aff",
      "tree": "e7a5f011d8aaf5c95edf933f98f25dfc8fa46837",
      "parents": [
        "ce004178be1bbaa292e9e6497939e2970300095a",
        "68c2c39a76b094e9b2773e5846424ea674bf2c46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 16:02:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 16:02:08 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.5-rc0-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\nPull Xen updates from Konrad Rzeszutek Wilk:\n \"Features:\n   * Extend the APIC ops implementation and add IRQ_WORKER vector\n     support so that \u0027perf\u0027 can work properly.\n   * Fix self-ballooning code, and balloon logic when booting as initial\n     domain.\n   * Move array printing code to generic debugfs\n   * Support XenBus domains.\n   * Lazily free grants when a domain is dead/non-existent.\n   * In M2P code use batching calls\n  Bug-fixes:\n   * Fix NULL dereference in allocation failure path (hvc_xen)\n   * Fix unbinding of IRQ_WORKER vector during vCPU hot-unplug\n   * Fix HVM guest resume - we would leak an PIRQ value instead of\n     reusing the existing one.\"\n\nFix up add-add onflicts in arch/x86/xen/enlighten.c due to addition of\napic ipi interface next to the new apic_id functions.\n\n* tag \u0027stable/for-linus-3.5-rc0-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen: do not map the same GSI twice in PVHVM guests.\n  hvc_xen: NULL dereference on allocation failure\n  xen: Add selfballoning memory reservation tunable.\n  xenbus: Add support for xenbus backend in stub domain\n  xen/smp: unbind irqworkX when unplugging vCPUs.\n  xen: enter/exit lazy_mmu_mode around m2p_override calls\n  xen/acpi/sleep: Enable ACPI sleep via the __acpi_os_prepare_sleep\n  xen: implement IRQ_WORK_VECTOR handler\n  xen: implement apic ipi interface\n  xen/setup: update VA mapping when releasing memory during setup\n  xen/setup: Combine the two hypercall functions - since they are quite similar.\n  xen/setup: Populate freed MFNs from non-RAM E820 entries and gaps to E820 RAM\n  xen/setup: Only print \"Freeing XXX-YYY pfn range: Z pages freed\" if Z \u003e 0\n  xen/gnttab: add deferred freeing logic\n  debugfs: Add support to print u32 array in debugfs\n  xen/p2m: An early bootup variant of set_phys_to_machine\n  xen/p2m: Collapse early_alloc_p2m_middle redundant checks.\n  xen/p2m: Allow alloc_p2m_middle to call reserve_brk depending on argument\n  xen/p2m: Move code around to allow for better re-usage.\n"
    },
    {
      "commit": "ce004178be1bbaa292e9e6497939e2970300095a",
      "tree": "1cd5306548947deaedd612189b56d35265217e8e",
      "parents": [
        "9978306e31a8f89bd81fbc4c49fd9aefb1d30d10",
        "c5389831cda3b38a56606a348a537a1332f2d729"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 15:10:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 15:10:28 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc\n\nPull sparc changes from David S. Miller:\n \"This has the generic strncpy_from_user() implementation architectures\n  can now use, which we\u0027ve been developing on linux-arch over the past\n  few days.\n\n  For good measure I ran both a 32-bit and a 64-bit glibc testsuite run,\n  and the latter of which pointed out an adjustment I needed to make to\n  sparc\u0027s user_addr_max() definition.  Linus, you were right, STACK_TOP\n  was not the right thing to use, even on sparc itself :-)\n\n  From Sam Ravnborg, we have a conversion of sparc32 over to the common\n  alloc_thread_info_node(), since the aspect which originally blocked\n  our doing so (sun4c) has been removed.\"\n\nFix up trivial arch/sparc/Kconfig and lib/Makefile conflicts.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:\n  sparc: Fix user_addr_max() definition.\n  lib: Sparc\u0027s strncpy_from_user is generic enough, move under lib/\n  kernel: Move REPEAT_BYTE definition into linux/kernel.h\n  sparc: Increase portability of strncpy_from_user() implementation.\n  sparc: Optimize strncpy_from_user() zero byte search.\n  sparc: Add full proper error handling to strncpy_from_user().\n  sparc32: use the common implementation of alloc_thread_info_node()\n"
    },
    {
      "commit": "b1bf7d4d1b3911352cf1ec63c1de06214288ccd0",
      "tree": "0fd27c638977cb5c7e6e3f95085ce842b57a4ae3",
      "parents": [
        "0708500d49e8439d9fe5529795bdc1485f0f46c3",
        "3e11f7b840b4671213c66817294ad7dd0b572756"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 14:01:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 14:01:46 2012 -0700"
      },
      "message": "Merge tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull GPIO driver changes from Grant Likely:\n \"Lots of gpio changes, both to core code and drivers.\n\n  Changes do touch architecture code to remove the need for separate\n  arm/gpio.h includes in most architectures.\n\n  Some new drivers are added, and a number of gpio drivers are converted\n  to use irq_domains for gpio inputs used as interrupts.  Device tree\n  support has been amended to allow multiple gpio_chips to use the same\n  device tree node.\n\n  Remaining changes are primarily bug fixes.\"\n\n* tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6: (33 commits)\n  gpio/generic: initialize basic_mmio_gpio shadow variables properly\n  gpiolib: Remove \u0027const\u0027 from data argument of gpiochip_find()\n  gpio/rc5t583: add gpio driver for RICOH PMIC RC5T583\n  gpiolib: quiet gpiochip_add boot message noise\n  gpio: mpc8xxx: Prevent NULL pointer deref in demux handler\n  gpio/lpc32xx: Add device tree support\n  gpio: Adjust of_xlate API to support multiple GPIO chips\n  gpiolib: Implement devm_gpio_request_one()\n  gpio-mcp23s08: dbg_show: fix pullup configuration display\n  Add support for TCA6424A\n  gpio/omap: (re)fix wakeups on level-triggered GPIOs\n  gpio/omap: fix broken context restore for non-OFF mode transitions\n  gpio/omap: fix missing check in *_runtime_suspend()\n  gpio/omap: remove cpu_is_omapxxxx() checks from *_runtime_resume()\n  gpio/omap: remove suspend/resume callbacks\n  gpio/omap: remove retrigger variable in gpio_irq_handler\n  gpio/omap: remove saved_wakeup field from struct gpio_bank\n  gpio/omap: remove suspend_wakeup field from struct gpio_bank\n  gpio/omap: remove saved_fallingdetect, saved_risingdetect\n  gpio/omap: remove virtual_irq_start variable\n  ...\n\nConflicts:\n\tdrivers/gpio/gpio-samsung.c\n"
    },
    {
      "commit": "0708500d49e8439d9fe5529795bdc1485f0f46c3",
      "tree": "2019b8ebcd86c9b593e56ac1d630c921f130c8d3",
      "parents": [
        "be122abe4bcd6d39b37892daae28c8bf5e4030fc",
        "8d6c1efa51236bb781f202aa13b9f4ba654978c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:57:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:57:18 2012 -0700"
      },
      "message": "Merge tag \u0027devicetree-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull device tree changes from Grant Likely:\n \"Mostly documentation updates, but also includes an empty stub for\n  non-CONFIG_OF builds.\"\n\n* tag \u0027devicetree-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  dt/documentation: Fix value format description\n  dt: add vendor prefix for EM Microelectronics\n  ARM: DT: Add binding for GIC virtualization extentions (VGIC)\n  of/irq: add empty irq_of_parse_and_map() for non-dt builds\n"
    },
    {
      "commit": "be122abe4bcd6d39b37892daae28c8bf5e4030fc",
      "tree": "e8ad84c41c2acde27c77fa212b8865cd3acfe6fb",
      "parents": [
        "b343c8beec664ef6f0e9964d3001c7c7966331ae",
        "1e8a52e18cfb381bc9cc1f0b720540364d2a6edd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:56:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:56:24 2012 -0700"
      },
      "message": "Merge tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull SPI changes from Grant Likely:\n \"Bug fixes and new features for SPI device drivers.  Also move device\n  tree support code out of drivers/of and into drivers/spi/spi.c where\n  it makes more sense.\"\n\n* tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  spi: By default setup spi_masters with 1 chipselect and dynamics bus number\n  SPI: PRIMA2: use the newest APIs of PINCTRL to fix compiling errors\n  spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control\n  spi: refactor spi-coldfire-qspi to use SPI queue framework.\n  spi/omap2-mcspi: convert to the pump message infrastructure\n  spi/rspi: add dmaengine support\n  spi/topcliff: use correct __devexit_p annotation\n  spi: Dont call prepare/unprepare transfer if not populated\n  spi/ep93xx: clean probe/remove routines\n  spi/devicetree: Move devicetree support code into spi directory\n  spi: use module_pci_driver\n  spi/omap2-mcspi: Trivial optimisation\n  spi: omap2-mcspi: add support for pm_runtime autosuspend\n  spi/omap: Remove bus_num usage for instance index\n  OMAP : SPI : use devm_* functions\n  spi: omap2-mcspi: convert to module_platform_driver\n  spi: omap2-mcspi: make it behave as a module\n"
    },
    {
      "commit": "b343c8beec664ef6f0e9964d3001c7c7966331ae",
      "tree": "c61be2147a700ff83704164686e1db23461d0bb3",
      "parents": [
        "745914df47053c758f3d7999dfa82df184c2e5af",
        "a87487e687ceafdc696b8cb1fb27e37cc463586b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:55:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:55:24 2012 -0700"
      },
      "message": "Merge tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull irqdomain changes from Grant Likely:\n \"Minor changes and fixups for irqdomain infrastructure.  The most\n  important change adds the ability to remove a registered irqdomain.\"\n\n* tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  irqdomain: Document size parameter of irq_domain_add_linear()\n  irqdomain: trivial pr_fmt conversion.\n  irqdomain: Kill off duplicate definitions.\n  irqdomain: Make irq_domain_simple_map() static.\n  irqdomain: Export remaining public API symbols.\n  irqdomain: Support removal of IRQ domains.\n"
    },
    {
      "commit": "c7523a7c88db637d66841018532cb4b3ab6ab0a8",
      "tree": "cec08263a493831d43e17d4daa633e2a6b09480e",
      "parents": [
        "2f78d8e249973f1eeb88315e6444e616c60177ae",
        "b80fe1015be4e3c926d8eb4cc6a340fdd22a43e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:29:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 13:29:46 2012 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer updates from Thomas Gleixner.\n\nVarious trivial conflict fixups in arch Kconfig due to addition of\nunrelated entries nearby.  And one slightly more subtle one for sparc32\n(new user of GENERIC_CLOCKEVENTS), fixed up as per Thomas.\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)\n  timekeeping: Fix a few minor newline issues.\n  time: remove obsolete declaration\n  ntp: Fix a stale comment and a few stray newlines.\n  ntp: Correct TAI offset during leap second\n  timers: Fixup the Kconfig consolidation fallout\n  x86: Use generic time config\n  unicore32: Use generic time config\n  um: Use generic time config\n  tile: Use generic time config\n  sparc: Use: generic time config\n  sh: Use generic time config\n  score: Use generic time config\n  s390: Use generic time config\n  openrisc: Use generic time config\n  powerpc: Use generic time config\n  mn10300: Use generic time config\n  mips: Use generic time config\n  microblaze: Use generic time config\n  m68k: Use generic time config\n  m32r: Use generic time config\n  ...\n"
    },
    {
      "commit": "7c44f1ae4a21458a1ea3d6482ffb3136f1df6d2b",
      "tree": "a66f9b3fb7a5252a87dbcee40562a1e8ed47dc9b",
      "parents": [
        "d23d61c8d351f5ced44ce87caf1fa3baab4c3f89"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu May 24 13:22:50 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:22:19 2012 -0400"
      },
      "message": "nfs4.1: add BIND_CONN_TO_SESSION operation\n\nThis patch adds the BIND_CONN_TO_SESSION operation which is needed for\nupcoming SP4_MACH_CRED work and useful for recovering from broken connections\nwithout destroying the session.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2701d086dbfca03b2d28b25c6dc11dd78d0e26ad",
      "tree": "69f81dd2a979600cd3ff4f1861c6d7ef5c25b1ed",
      "parents": [
        "82be417aa37c05116e310b0f2171187ea389f89b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu May 24 13:13:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:15:48 2012 -0400"
      },
      "message": "NFSv4.1 add nfs_inode book keeping for mdsthreshold\n\nKeep track of the number of bytes read or written via buffered, direct, and\nmem-mapped i/o for use by mdsthreshold size_io hints.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82be417aa37c05116e310b0f2171187ea389f89b",
      "tree": "901d8fc702d6aef425c4b17cdf62e4fdd8c81833",
      "parents": [
        "88034c3d88c2c48b215f2cc5eb22e564aa817f9c"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed May 23 05:02:35 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:15:48 2012 -0400"
      },
      "message": "NFSv4.1 cache mdsthreshold values on OPEN\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88034c3d88c2c48b215f2cc5eb22e564aa817f9c",
      "tree": "aca4a42af31d12777a2ef7bcbf37751b28ff73c6",
      "parents": [
        "54ac471c83aff6b1e068eb8029c797dc68a76e89"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed May 23 05:02:34 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:15:47 2012 -0400"
      },
      "message": "NFSv4.1 mdsthreshold attribute xdr\n\nWe only support one layout type per file system, so one threshold_item4 per\nmdsthreshold4.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "446969084d33a4064a39d280806da642c54ba4ac",
      "tree": "0887795d96007b228733c9499bda1731d64e48fe",
      "parents": [
        "35c9646062eba15351c6d64ea0c02176e5cb66ac"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 23 20:12:50 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 13:10:05 2012 -0700"
      },
      "message": "kernel: Move REPEAT_BYTE definition into linux/kernel.h\n\nAnd make sure that everything using it explicitly includes\nthat header file.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f78d8e249973f1eeb88315e6444e616c60177ae",
      "tree": "2f6fae6c781622301c40378ea404096d8f231a33",
      "parents": [
        "f2fde3a65e88330017b816faf2ef75f141d21375",
        "26c72e22c94fbc28604c94e3a96fdae9c6fd0a42"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 12:57:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 12:57:47 2012 -0700"
      },
      "message": "Merge tag \u0027firewire-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394\n\nPull IEEE 1394 (FireWire) subsystem updates from Stefan Richter:\n\n - Fix mismatch between DMA mapping direction (was wrong) and DMA\n   synchronization direction (was correct) of isochronous reception\n   buffers of userspace drivers if vma-mapped for R/W access.  For\n   example, libdc1394 was affected.\n\n - more consistent retry stategy in device discovery/ rediscovery, and\n   improved failure diagnostics\n\n - various small cleanups, e.g. use SCSI layer\u0027s DMA mapping API in\n   firewire-sbp2\n\n* tag \u0027firewire-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:\n  firewire: sbp2: document the absence of alignment requirements\n  firewire: sbp2: remove superfluous blk_queue_max_segment_size() call\n  firewire: sbp2: use scsi_dma_(un)map\n  firewire: sbp2: give correct DMA device to scsi framework\n  firewire: core: fw_device_refresh(): clean up error handling\n  firewire: core: log config rom reading errors\n  firewire: core: log error in case of failed bus manager lock\n  firewire: move rcode_string() to core\n  firewire: core: improve reread_config_rom() interface\n  firewire: core: wait for inaccessible devices after bus reset\n  firewire: ohci: omit spinlock IRQ flags where possible\n  firewire: ohci: correct signedness of a local variable\n  firewire: core: fix DMA mapping direction\n  firewire: use module_pci_driver\n"
    },
    {
      "commit": "f2fde3a65e88330017b816faf2ef75f141d21375",
      "tree": "57152ab5756e7ed1c58742e7e16f13a45ff11f21",
      "parents": [
        "28f3d717618156c0dcd2f497d791b578a7931d87",
        "8c914028f5ddaa417b7d0f4b7fdc24caceaa8043"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 12:42:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 12:42:54 2012 -0700"
      },
      "message": "Merge branch \u0027drm-core-next\u0027 of git://people.freedesktop.org/~airlied/linux\n\nPull main drm updates from Dave Airlie:\n \"This is the main merge window request for the drm.\n\n  It\u0027s big, but jam packed will lots of features and of course 0\n  regressions.  (okay maybe there\u0027ll be one).\n\n  Highlights:\n\n   - new KMS drivers for server GPU chipsets: ast, mgag200 and cirrus\n     (qemu only).  These drivers use the generic modesetting drivers.\n\n   - initial prime/dma-buf support for i915, nouveau, radeon, udl and\n     exynos\n\n   - switcheroo audio support: so GPUs with HDMI can turn off the sound\n     driver without crashing stuff.\n\n   - There are some patches drifting outside drivers/gpu into x86 and\n     EFI for better handling of multiple video adapters in Apple Macs,\n     they\u0027ve got correct acks except one trivial fixup.\n\n   - Core:\n\tedid parser has better DMT and reduced blanking support,\n\tcrtc properties,\n\tplane properties,\n\n   - Drivers:\n\texynos: add 2D core accel support, prime support, hdmi features\n\tintel: more Haswell support, initial Valleyview support, more\n\t    hdmi infoframe fixes, update MAINTAINERS for Daniel, lots of\n\t    cleanups and fixes\n\tradeon: more HDMI audio support, improved GPU lockup recovery\n\t    support, remove nested mutexes, less memory copying on PCIE, fix\n\t    bus master enable race (kexec), improved fence handling\n\tgma500: cleanups, 1080p support, acpi fixes\n\tnouveau: better nva3 memory reclocking, kepler accel (needs\n\t    external firmware rip), async buffer moves on nv84+ hw.\n\n  I\u0027ve some more dma-buf patches that rely on the dma-buf merge for vmap\n  stuff, and I\u0027ve a few fixes building up, but I\u0027d decided I\u0027d better\n  get rid of the main pull sooner rather than later, so the audio guys\n  are also unblocked.\"\n\nFix up trivial conflict due to some duplicated changes in\ndrivers/gpu/drm/i915/intel_ringbuffer.c\n\n* \u0027drm-core-next\u0027 of git://people.freedesktop.org/~airlied/linux: (605 commits)\n  drm/nouveau/nvd9: Fix GPIO initialisation sequence.\n  drm/nouveau: Unregister switcheroo client on exit\n  drm/nouveau: Check dsm on switcheroo unregister\n  drm/nouveau: fix a minor annoyance in an output string\n  drm/nouveau: turn a BUG into a WARN\n  drm/nv50: decode PGRAPH DATA_ERROR \u003d 0x24\n  drm/nouveau/disp: fix dithering not being enabled on some eDP macbooks\n  drm/nvd9/copy: initialise copy engine, seems to work like nvc0\n  drm/nvc0/ttm: use copy engines for async buffer moves\n  drm/nva3/ttm: use copy engine for async buffer moves\n  drm/nv98/ttm: add in a (disabled) crypto engine buffer copy method\n  drm/nv84/ttm: use crypto engine for async buffer copies\n  drm/nouveau/ttm: untangle code to support accelerated buffer moves\n  drm/nouveau/fbcon: use fence for sync, rather than notifier\n  drm/nv98/crypt: non-stub implementation of the engine hooks\n  drm/nouveau/fifo: turn all fifo modules into engine modules\n  drm/nv50/graph: remove ability to do interrupt-driven context switching\n  drm/nv50: remove manual context unload on context destruction\n  drm/nv50: remove execution engine context saves on suspend\n  drm/nv50/fifo: use hardware channel kickoff functionality\n  ...\n"
    },
    {
      "commit": "28f3d717618156c0dcd2f497d791b578a7931d87",
      "tree": "37b11581b51929b5473541e53bd242b3e1a9f666",
      "parents": [
        "654443e20dfc0617231f28a07c96a979ee1a0239",
        "1ca7ee30630e1022dbcf1b51be20580815ffab73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 11:54:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 11:54:29 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull more networking updates from David Miller:\n \"Ok, everything from here on out will be bug fixes.\"\n\n1) One final sync of wireless and bluetooth stuff from John Linville.\n   These changes have all been in his tree for more than a week, and\n   therefore have had the necessary -next exposure.  John was just away\n   on a trip and didn\u0027t have a change to send the pull request until a\n   day or two ago.\n\n2) Put back some defines in user exposed header file areas that were\n   removed during the tokenring purge.  From Stephen Hemminger and Paul\n   Gortmaker.\n\n3) A bug fix for UDP hash table allocation got lost in the pile due to\n   one of those \"you got it..  no I\u0027ve got it..\" situations.  :-)\n\n   From Tim Bird.\n\n4) SKB coalescing in TCP needs to have stricter checks, otherwise we\u0027ll\n   try to coalesce overlapping frags and crash.  Fix from Eric Dumazet.\n\n5) RCU routing table lookups can race with free_fib_info(), causing\n   crashes when we deref the device pointers in the route.  Fix by\n   releasing the net device in the RCU callback.  From Yanmin Zhang.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (293 commits)\n  tcp: take care of overlaps in tcp_try_coalesce()\n  ipv4: fix the rcu race between free_fib_info and ip_route_output_slow\n  mm: add a low limit to alloc_large_system_hash\n  ipx: restore token ring define to include/linux/ipx.h\n  if: restore token ring ARP type to header\n  xen: do not disable netfront in dom0\n  phy/micrel: Fix ID of KSZ9021\n  mISDN: Add X-Tensions USB ISDN TA XC-525\n  gianfar:don\u0027t add FCB length to hard_header_len\n  Bluetooth: Report proper error number in disconnection\n  Bluetooth: Create flags for bt_sk()\n  Bluetooth: report the right security level in getsockopt\n  Bluetooth: Lock the L2CAP channel when sending\n  Bluetooth: Restore locking semantics when looking up L2CAP channels\n  Bluetooth: Fix a redundant and problematic incoming MTU check\n  Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C\n  Bluetooth: Fix EIR data generation for mgmt_device_found\n  Bluetooth: Fix Inquiry with RSSI event mask\n  Bluetooth: improve readability of l2cap_seq_list code\n  Bluetooth: Fix skb length calculation\n  ...\n"
    },
    {
      "commit": "654443e20dfc0617231f28a07c96a979ee1a0239",
      "tree": "a0dc3f093eb13892539082e663607c34b4fc2d07",
      "parents": [
        "2c01e7bc46f10e9190818437e564f7e0db875ae9",
        "9cba26e66d09bf394ae5a739627a1dc8b7cae6f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 11:39:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 11:39:34 2012 -0700"
      },
      "message": "Merge branch \u0027perf-uprobes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull user-space probe instrumentation from Ingo Molnar:\n \"The uprobes code originates from SystemTap and has been used for years\n  in Fedora and RHEL kernels.  This version is much rewritten, reviews\n  from PeterZ, Oleg and myself shaped the end result.\n\n  This tree includes uprobes support in \u0027perf probe\u0027 - but SystemTap\n  (and other tools) can take advantage of user probe points as well.\n\n  Sample usage of uprobes via perf, for example to profile malloc()\n  calls without modifying user-space binaries.\n\n  First boot a new kernel with CONFIG_UPROBE_EVENT\u003dy enabled.\n\n  If you don\u0027t know which function you want to probe you can pick one\n  from \u0027perf top\u0027 or can get a list all functions that can be probed\n  within libc (binaries can be specified as well):\n\n\t$ perf probe -F -x /lib/libc.so.6\n\n  To probe libc\u0027s malloc():\n\n\t$ perf probe -x /lib64/libc.so.6 malloc\n\tAdded new event:\n\tprobe_libc:malloc    (on 0x7eac0)\n\n  You can now use it in all perf tools, such as:\n\n\tperf record -e probe_libc:malloc -aR sleep 1\n\n  Make use of it to create a call graph (as the flat profile is going to\n  look very boring):\n\n\t$ perf record -e probe_libc:malloc -gR make\n\t[ perf record: Woken up 173 times to write data ]\n\t[ perf record: Captured and wrote 44.190 MB perf.data (~1930712\n\n\t$ perf report | less\n\n\t  32.03%            git  libc-2.15.so   [.] malloc\n\t                    |\n\t                    --- malloc\n\n\t  29.49%            cc1  libc-2.15.so   [.] malloc\n\t                    |\n\t                    --- malloc\n\t                       |\n\t                       |--0.95%-- 0x208eb1000000000\n\t                       |\n\t                       |--0.63%-- htab_traverse_noresize\n\n\t  11.04%             as  libc-2.15.so   [.] malloc\n\t                     |\n\t                     --- malloc\n\t                        |\n\n\t   7.15%             ld  libc-2.15.so   [.] malloc\n\t                     |\n\t                     --- malloc\n\t                        |\n\n\t   5.07%             sh  libc-2.15.so   [.] malloc\n\t                     |\n\t                     --- malloc\n\t                        |\n\t   4.99%  python-config  libc-2.15.so   [.] malloc\n\t          |\n\t          --- malloc\n\t             |\n\t   4.54%           make  libc-2.15.so   [.] malloc\n\t                   |\n\t                   --- malloc\n\t                      |\n\t                      |--7.34%-- glob\n\t                      |          |\n\t                      |          |--93.18%-- 0x41588f\n\t                      |          |\n\t                      |           --6.82%-- glob\n\t                      |                     0x41588f\n\n\t   ...\n\n  Or:\n\n\t$ perf report -g flat | less\n\n\t# Overhead        Command  Shared Object      Symbol\n\t# ........  .............  .............  ..........\n\t#\n\t  32.03%            git  libc-2.15.so   [.] malloc\n\t          27.19%\n\t              malloc\n\n\t  29.49%            cc1  libc-2.15.so   [.] malloc\n\t          24.77%\n\t              malloc\n\n\t  11.04%             as  libc-2.15.so   [.] malloc\n\t          11.02%\n\t              malloc\n\n\t   7.15%             ld  libc-2.15.so   [.] malloc\n\t           6.57%\n\t              malloc\n\n\t ...\n\n  The core uprobes design is fairly straightforward: uprobes probe\n  points register themselves at (inode:offset) addresses of\n  libraries/binaries, after which all existing (or new) vmas that map\n  that address will have a software breakpoint injected at that address.\n  vmas are COW-ed to preserve original content.  The probe points are\n  kept in an rbtree.\n\n  If user-space executes the probed inode:offset instruction address\n  then an event is generated which can be recovered from the regular\n  perf event channels and mmap-ed ring-buffer.\n\n  Multiple probes at the same address are supported, they create a\n  dynamic callback list of event consumers.\n\n  The basic model is further complicated by the XOL speedup: the\n  original instruction that is probed is copied (in an architecture\n  specific fashion) and executed out of line when the probe triggers.\n  The XOL area is a single vma per process, with a fixed number of\n  entries (which limits probe execution parallelism).\n\n  The API: uprobes are installed/removed via\n  /sys/kernel/debug/tracing/uprobe_events, the API is integrated to\n  align with the kprobes interface as much as possible, but is separate\n  to it.\n\n  Injecting a probe point is privileged operation, which can be relaxed\n  by setting perf_paranoid to -1.\n\n  You can use multiple probes as well and mix them with kprobes and\n  regular PMU events or tracepoints, when instrumenting a task.\"\n\nFix up trivial conflicts in mm/memory.c due to previous cleanup of\nunmap_single_vma().\n\n* \u0027perf-uprobes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)\n  perf probe: Detect probe target when m/x options are absent\n  perf probe: Provide perf interface for uprobes\n  tracing: Fix kconfig warning due to a typo\n  tracing: Provide trace events interface for uprobes\n  tracing: Extract out common code for kprobes/uprobes trace events\n  tracing: Modify is_delete, is_return from int to bool\n  uprobes/core: Decrement uprobe count before the pages are unmapped\n  uprobes/core: Make background page replacement logic account for rss_stat counters\n  uprobes/core: Optimize probe hits with the help of a counter\n  uprobes/core: Allocate XOL slots for uprobes use\n  uprobes/core: Handle breakpoint and singlestep exceptions\n  uprobes/core: Rename bkpt to swbp\n  uprobes/core: Make order of function parameters consistent across functions\n  uprobes/core: Make macro names consistent\n  uprobes: Update copyright notices\n  uprobes/core: Move insn to arch specific structure\n  uprobes/core: Remove uprobe_opcode_sz\n  uprobes/core: Make instruction tables volatile\n  uprobes: Move to kernel/events/\n  uprobes/core: Clean up, refactor and improve the code\n  ...\n"
    },
    {
      "commit": "2c01e7bc46f10e9190818437e564f7e0db875ae9",
      "tree": "8b06c85d69754f7df27f7fb42520f6e2ceaea907",
      "parents": [
        "ab11ca34eea8fda7a1a9302d86f6ef6108ffd68f",
        "e644dae645e167d154c0526358940986682a72b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 10:34:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 10:34:29 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull input layer updates from Dmitry Torokhov:\n - a bunch of new drivers (DA9052/53 touchscreenn controller, Synaptics\n   Navpoint, LM8333 keypads, Wacom I2C touhscreen);\n - updates to existing touchpad drivers (ALPS, Sntelic);\n - Wacom driver now supports Intuos5;\n - device-tree bindings in numerous drivers;\n - other cleanups and fixes.\n\nFix annoying conflict in drivers/input/tablet/wacom_wac.c that I think\nimplies that the input layer device naming is broken, but let\u0027s see.  I\nbrough it up with Dmitry.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (57 commits)\n  Input: matrix-keymap - fix building keymaps\n  Input: spear-keyboard - document DT bindings\n  Input: spear-keyboard - add device tree bindings\n  Input: matrix-keymap - wire up device tree support\n  Input: matrix-keymap - uninline and prepare for device tree support\n  Input: adp5588 - add support for gpio names\n  Input: omap-keypad - dynamically handle register offsets\n  Input: synaptics - fix compile warning\n  MAINTAINERS: adjust input-related patterns\n  Input: ALPS - switch to using input_mt_report_finger_count\n  Input: ALPS - add semi-MT support for v4 protocol\n  Input: Add Synaptics NavPoint (PXA27x SSP/SPI) driver\n  Input: atmel_mxt_ts - dump each message on just 1 line\n  Input: atmel_mxt_ts - do not read extra (checksum) byte\n  Input: atmel_mxt_ts - verify object size in mxt_write_object\n  Input: atmel_mxt_ts - only allow root to update firmware\n  Input: atmel_mxt_ts - use CONFIG_PM_SLEEP\n  Input: sentelic - report device\u0027s production serial number\n  Input: tl6040-vibra - Device Tree support\n  Input: evdev - properly handle read/write with count 0\n  ...\n"
    },
    {
      "commit": "ab11ca34eea8fda7a1a9302d86f6ef6108ffd68f",
      "tree": "987ec6c263f3dfa4a7a6f9ce4d5ece47cbc12e29",
      "parents": [
        "f9369910a6225b8d4892c3f20ae740a711cd5ace",
        "71006fb22b0f5a2045605b3887ee99a0e9adafe4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 10:21:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 10:21:51 2012 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media\n\nPull media updates from Mauro Carvalho Chehab:\n - some V4L2 API updates needed by embedded devices\n - DVB API extensions for ATSC-MH delivery system, used in US for mobile\n   TV\n - new tuners for fc0011/0012/0013 and tua9001\n - a new dvb driver for af9033/9035\n - a new ATSC-MH frontend (lg2160)\n - new remote controller keymaps\n - Removal of a few legacy webcam driver that got replaced by gspca on\n   several kernel versions ago\n - a new driver for Exynos 4/5 webcams(s5pp fimc-lite)\n - a new webcam sensor driver (smiapp)\n - a new video input driver for embedded (sta2x1xx)\n - several improvements, fixes, cleanups, etc inside the drivers.\n\nManually fix up conflicts due to err() -\u003e dev_err() conversion in\ndrivers/staging/media/easycap/easycap_main.c\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (484 commits)\n  [media] saa7134-cards: Remove a PCI entry added by mistake\n  [media] radio-sf16fmi: add support for SF16-FMD\n  [media] rc-loopback: remove duplicate line\n  [media] patch for Asus My Cinema PS3-100 (1043:48cd)\n  [media] au0828: Move the Kconfig knob under V4L_USB_DRIVERS\n  [media] em28xx: simple comment fix\n  [media] [resend] radio-sf16fmr2: add PnP support for SF16-FMD2\n  [media] smiapp: Use v4l2_ctrl_new_int_menu() instead of v4l2_ctrl_new_custom()\n  [media] smiapp: Add support for 8-bit uncompressed formats\n  [media] smiapp: Allow generic quirk registers\n  [media] smiapp: Use non-binning limits if the binning limit is zero\n  [media] smiapp: Initialise rval in smiapp_read_nvm()\n  [media] smiapp: Round minimum pre_pll up rather than down in ip_clk_freq check\n  [media] smiapp: Use 8-bit reads only before identifying the sensor\n  [media] smiapp: Quirk for sensors that only do 8-bit reads\n  [media] smiapp: Pass struct sensor to register writing commands instead of i2c_client\n  [media] smiapp: Allow using external clock from the clock framework\n  [media] zl10353: change .read_snr() to report SNR as a 0.1 dB\n  [media] media: add support to gspca/pac7302.c for 093a:2627 (Genius FaceCam 300)\n  [media] m88rs2000 - only flip bit 2 on reg 0x70 on 16th try\n  ...\n"
    },
    {
      "commit": "31fe62b9586643953f0c0c37a6357dafc69034e2",
      "tree": "69f9990423969df4ecbaea9d1e8de748284bea5e",
      "parents": [
        "d0a24a3516fb36023bef28d2355fa34e7f32029f"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Wed May 23 13:33:35 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 00:28:21 2012 -0400"
      },
      "message": "mm: add a low limit to alloc_large_system_hash\n\nUDP stack needs a minimum hash size value for proper operation and also\nuses alloc_large_system_hash() for proper NUMA distribution of its hash\ntables and automatic sizing depending on available system memory.\n\nOn some low memory situations, udp_table_init() must ignore the\nalloc_large_system_hash() result and reallocs a bigger memory area.\n\nAs we cannot easily free old hash table, we leak it and kmemleak can\nissue a warning.\n\nThis patch adds a low limit parameter to alloc_large_system_hash() to\nsolve this problem.\n\nWe then specify UDP_HTABLE_SIZE_MIN for UDP/UDPLite hash table\nallocation.\n\nReported-by: Mark Asselstine \u003cmark.asselstine@windriver.com\u003e\nReported-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f9369910a6225b8d4892c3f20ae740a711cd5ace",
      "tree": "8650ff79d7607bceb35509c028400ecf1c317de0",
      "parents": [
        "05f144a0d5c2207a0349348127f996e104ad7404",
        "415d04d08fec74b226c92c1fb54ad117c9c6bac4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 18:11:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 18:11:45 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull first series of signal handling cleanups from Al Viro:\n \"This is just the first part of the queue (about a half of it);\n  assorted fixes all over the place in signal handling.\n\n  This one ends with all sigsuspend() implementations switched to\n  generic one (-\u003esaved_sigmask-based).\n\n  With this, a bunch of assorted old buglets are fixed and most of the\n  missing bits of NOTIFY_RESUME hookup are in place.  Two more fixes sit\n  in arm and um trees respectively, and there\u0027s a couple of broken ones\n  that need obvious fixes - parisc and avr32 check TIF_NOTIFY_RESUME\n  only on one of two codepaths; fixes for that will happen in the next\n  series\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (55 commits)\n  unicore32: if there\u0027s no handler we need to restore sigmask, syscall or no syscall\n  xtensa: add handling of TIF_NOTIFY_RESUME\n  microblaze: drop \u0027oldset\u0027 argument of do_notify_resume()\n  microblaze: handle TIF_NOTIFY_RESUME\n  score: add handling of NOTIFY_RESUME to do_notify_resume()\n  m68k: add TIF_NOTIFY_RESUME and handle it.\n  sparc: kill ancient comment in sparc_sigaction()\n  h8300: missing checks of __get_user()/__put_user() return values\n  frv: missing checks of __get_user()/__put_user() return values\n  cris: missing checks of __get_user()/__put_user() return values\n  powerpc: missing checks of __get_user()/__put_user() return values\n  sh: missing checks of __get_user()/__put_user() return values\n  sparc: missing checks of __get_user()/__put_user() return values\n  avr32: struct old_sigaction is never used\n  m32r: struct old_sigaction is never used\n  xtensa: xtensa_sigaction doesn\u0027t exist\n  alpha: tidy signal delivery up\n  score: don\u0027t open-code force_sigsegv()\n  cris: don\u0027t open-code force_sigsegv()\n  blackfin: don\u0027t open-code force_sigsegv()\n  ...\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "d5b4bb4d103cd601d8009f2d3a7e44586c9ae7cc",
      "tree": "0f3b6da2b66fc7a4278764982279c2815c913010",
      "parents": [
        "c80ddb526331a72c9e9d1480f85f6fd7c74e3d2d",
        "bb8187d35f820671d6dd76700d77a6b55f95e2c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:12:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:12:06 2012 -0700"
      },
      "message": "Merge branch \u0027delete-mca\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull the MCA deletion branch from Paul Gortmaker:\n \"It was good that we could support MCA machines back in the day, but\n  realistically, nobody is using them anymore.  They were mostly limited\n  to 386-sx 16MHz CPU and some 486 class machines and never more than\n  64MB of RAM.  Even the enthusiast hobbyist community seems to have\n  dried up close to ten years ago, based on what you can find searching\n  various websites dedicated to the relatively short lived hardware.\n\n  So lets remove the support relating to CONFIG_MCA.  There is no point\n  carrying this forward, wasting cycles doing routine maintenance on it;\n  wasting allyesconfig build time on validating it, wasting I/O on git\n  grep\u0027ping over it, and so on.\"\n\nLet\u0027s see if anybody screams.  It generally has compiled, and James\nBottomley pointed out that there was a MCA extension from NCR that\nallowed for up to 4GB of memory and PPro-class machines.  So in *theory*\nthere may be users out there.\n\nBut even James (technically listed as a maintainer) doesn\u0027t actually\nhave a system, and while Alan Cox claims to have a machine in his cellar\nthat he offered to anybody who wants to take it off his hands, he didn\u0027t\nargue for keeping MCA support either.\n\nSo we could bring it back.  But somebody had better speak up and talk\nabout how they have actually been using said MCA hardware with modern\nkernels for us to do that.  And David already took the patch to delete\nall the networking driver code (commit a5e371f61ad3: \"drivers/net:\ndelete all code/drivers depending on CONFIG_MCA\").\n\n* \u0027delete-mca\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  MCA: delete all remaining traces of microchannel bus support.\n  scsi: delete the MCA specific drivers and driver code\n  serial: delete the MCA specific 8250 support.\n  arm: remove ability to select CONFIG_MCA\n"
    },
    {
      "commit": "c80ddb526331a72c9e9d1480f85f6fd7c74e3d2d",
      "tree": "0212803a009f171990032abb94fad84156baa153",
      "parents": [
        "2c13bc0f8f0d3e13b42be70bf74fec8e56b58324",
        "1dff2b87a34a1ac1d1898ea109bf97ed396aca53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:08:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:08:40 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.5\u0027 of git://neil.brown.name/md\n\nPull md updates from NeilBrown:\n \"It\u0027s been a busy cycle for md - lots of fun stuff here..  if you like\n  this kind of thing :-)\n\n  Main features:\n   - RAID10 arrays can be reshaped - adding and removing devices and\n     changing chunks (not \u0027far\u0027 array though)\n   - allow RAID5 arrays to be reshaped with a backup file (not tested\n     yet, but the priciple works fine for RAID10).\n   - arrays can be reshaped while a bitmap is present - you no longer\n     need to remove it first\n   - SSSE3 support for RAID6 syndrome calculations\n\n  and of course a number of minor fixes etc.\"\n\n* tag \u0027md-3.5\u0027 of git://neil.brown.name/md: (56 commits)\n  md/bitmap: record the space available for the bitmap in the superblock.\n  md/raid10: Remove extras after reshape to smaller number of devices.\n  md/raid5: improve removal of extra devices after reshape.\n  md: check the return of mddev_find()\n  MD RAID1: Further conditionalize \u0027fullsync\u0027\n  DM RAID: Use md_error() in place of simply setting Faulty bit\n  DM RAID: Record and handle missing devices\n  DM RAID: Set recovery flags on resume\n  md/raid5: Allow reshape while a bitmap is present.\n  md/raid10: resize bitmap when required during reshape.\n  md: allow array to be resized while bitmap is present.\n  md/bitmap: make sure reshape request are reflected in superblock.\n  md/bitmap: add bitmap_resize function to allow bitmap resizing.\n  md/bitmap: use DIV_ROUND_UP instead of open-code\n  md/bitmap: create a \u0027struct bitmap_counts\u0027 substructure of \u0027struct bitmap\u0027\n  md/bitmap: make bitmap bitops atomic.\n  md/bitmap: make _page_attr bitops atomic.\n  md/bitmap: merge bitmap_file_unmap and bitmap_file_put.\n  md/bitmap: remove async freeing of bitmap file.\n  md/bitmap: convert some spin_lock_irqsave to spin_lock_irq\n  ...\n"
    }
  ],
  "next": "2c13bc0f8f0d3e13b42be70bf74fec8e56b58324"
}
