)]}'
{
  "log": [
    {
      "commit": "879669961b11e7f40b518784863a259f735a72bf",
      "tree": "9bff5392e365caf656c9dd9be38f7471c182278c",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 17 11:25:59 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 17 09:40:48 2011 -0700"
      },
      "message": "KEYS/DNS: Fix ____call_usermodehelper() to not lose the session keyring\n\n____call_usermodehelper() now erases any credentials set by the\nsubprocess_inf::init() function.  The problem is that commit\n17f60a7da150 (\"capabilites: allow the application of capability limits\nto usermode helpers\") creates and commits new credentials with\nprepare_kernel_cred() after the call to the init() function.  This wipes\nall keyrings after umh_keys_init() is called.\n\nThe best way to deal with this is to put the init() call just prior to\nthe commit_creds() call, and pass the cred pointer to init().  That\nmeans that umh_keys_init() and suchlike can modify the credentials\n_before_ they are published and potentially in use by the rest of the\nsystem.\n\nThis prevents request_key() from working as it is prevented from passing\nthe session keyring it set up with the authorisation token to\n/sbin/request-key, and so the latter can\u0027t assume the authority to\ninstantiate the key.  This causes the in-kernel DNS resolver to fail\nwith ENOKEY unconditionally.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "434d42cfd05a7cc452457a81d2029540cba12150",
      "tree": "3a6b9b7f9ff2e1b7409dd66c15242b2a75aa4422",
      "parents": [
        "d762f4383100c2a87b1a3f2d678cd3b5425655b4",
        "12a5a2621b1ee14d32beca35304d7c6076a58815"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue May 24 22:55:24 2011 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue May 24 22:55:24 2011 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "13d53f8775c6a00b070a3eef6833795412eb7fcd",
      "tree": "4d8d2c2261c9c41bfc37b1199b8789f5037e49ad",
      "parents": [
        "c3b0795c98c08351567464150db66d11e05d7611"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue May 10 21:27:34 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:19:18 2011 +0200"
      },
      "message": "kmod: always provide usermodehelper_disable()\n\nWe need to prevent kernel-forked processes during system poweroff.\nSuch processes try to access the filesystem whose disks we are\ntrying to shutdown at the same time. This causes delays and exceptions\nin the storage drivers.\n\nA follow-up patch will add these calls and need usermodehelper_disable()\nalso on systems without suspend support.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a144c6a6c924aa1da04dd77fb84b89927354fdff",
      "tree": "10cab9080a722a191086f58b9f304329e8a8b942",
      "parents": [
        "e1866b33b1e89f077b7132daae3dfd9a594e9a1a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 06 20:09:42 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:19:17 2011 +0200"
      },
      "message": "PM: Print a warning if firmware is requested when tasks are frozen\n\nSome drivers erroneously use request_firmware() from their -\u003eresume()\n(or -\u003ethaw(), or -\u003erestore()) callbacks, which is not going to work\nunless the firmware has been built in.  This causes system resume to\nstall until the firmware-loading timeout expires, which makes users\nthink that the resume has failed and reboot their machines\nunnecessarily.  For this reason, make _request_firmware() print a\nwarning and return immediately with error code if it has been called\nwhen tasks are frozen and it\u0027s impossible to start any new usermode\nhelpers.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nReviewed-by: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\n"
    },
    {
      "commit": "17f60a7da150fdd0cfb9756f86a262daa72c835f",
      "tree": "1c5ece75d66bed0766de861cde6eb18ee7ea4cf2",
      "parents": [
        "cfc64fd91fabed099a4c3df58559f4b7efe9bcce"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Apr 01 17:07:50 2011 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 04 10:31:04 2011 +1000"
      },
      "message": "capabilites: allow the application of capability limits to usermode helpers\n\nThere is no way to limit the capabilities of usermodehelpers. This problem\nreared its head recently when someone complained that any user with\ncap_net_admin was able to load arbitrary kernel modules, even though the user\ndidn\u0027t have cap_sys_module.  The reason is because the actual load is done by\na usermode helper and those always have the full cap set.  This patch addes new\nsysctls which allow us to bound the permissions of usermode helpers.\n\n/proc/sys/kernel/usermodehelper/bset\n/proc/sys/kernel/usermodehelper/inheritable\n\nYou must have CAP_SYS_MODULE  and CAP_SETPCAP to change these (changes are\n\u0026\u003d ONLY).  When the kernel launches a usermodehelper it will do so with these\nas the bset and pI.\n\n-v2:\tmake globals static\n\tcreate spinlock to protect globals\n\n-v3:\trequire both CAP_SETPCAP and CAP_SYS_MODULE\n-v4:\tfix the typo s/CAP_SET_PCAP/CAP_SETPCAP/ because I didn\u0027t commit\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nNo-objection-from: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c70a626d3eba373514c72287c93588b6974a0059",
      "tree": "c23b890cbbeb824e52e1eaee6812bc88496a246d",
      "parents": [
        "685bfd2c48bb3284d31e73ff3151c957d76deda9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "umh: creds: kill subprocess_info-\u003ecred logic\n\nNow that nobody ever changes subprocess_info-\u003ecred we can kill this member\nand related code.  ____call_usermodehelper() always runs in the context of\nfreshly forked kernel thread, it has the proper -\u003ecred copied from its\nparent kthread, keventd.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "685bfd2c48bb3284d31e73ff3151c957d76deda9",
      "tree": "177210787515f48c0eaad5216bd012f4a2fb2149",
      "parents": [
        "898b374af6f71041bd3bceebe257e564f3f1d458"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "umh: creds: convert call_usermodehelper_keys() to use subprocess_info-\u003einit()\n\ncall_usermodehelper_keys() uses call_usermodehelper_setkeys() to change\nsubprocess_info-\u003ecred in advance.  Now that we have info-\u003einit() we can\nchange this code to set tgcred-\u003esession_keyring in context of execing\nkernel thread.\n\nNote: since currently call_usermodehelper_keys() is never called with\nUMH_NO_WAIT, call_usermodehelper_keys()-\u003ekey_get() and umh_keys_cleanup()\nare not really needed, we could rely on install_session_keyring_to_cred()\nwhich does key_get() on success.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "898b374af6f71041bd3bceebe257e564f3f1d458",
      "tree": "b1be6fd3cca69becfc75787eab906338f363d3cd",
      "parents": [
        "a06a4dc3a08201ff6a8a958f935b3cbf7744115f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed May 26 14:42:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "exec: replace call_usermodehelper_pipe with use of umh init function and resolve limit\n\nThe first patch in this series introduced an init function to the\ncall_usermodehelper api so that processes could be customized by caller.\nThis patch takes advantage of that fact, by customizing the helper in\ndo_coredump to create the pipe and set its core limit to one (for our\nrecusrsion check).  This lets us clean up the previous uglyness in the\nusermodehelper internals and factor call_usermodehelper out entirely.\nWhile I\u0027m at it, we can also modify the helper setup to look for a core\nlimit value of 1 rather than zero for our recursion check\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a06a4dc3a08201ff6a8a958f935b3cbf7744115f",
      "tree": "b338edde5edb31f51e0b7eb86e6c4ce8063c703f",
      "parents": [
        "065add3941bdca54fe04ed3471a96bce9af88793"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed May 26 14:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "kmod: add init function to usermodehelper\n\nAbout 6 months ago, I made a set of changes to how the core-dump-to-a-pipe\nfeature in the kernel works.  We had reports of several races, including\nsome reports of apps bypassing our recursion check so that a process that\nwas forked as part of a core_pattern setup could infinitely crash and\nrefork until the system crashed.\n\nWe fixed those by improving our recursion checks.  The new check basically\nrefuses to fork a process if its core limit is zero, which works well.\n\nUnfortunately, I\u0027ve been getting grief from maintainer of user space\nprograms that are inserted as the forked process of core_pattern.  They\ncontend that in order for their programs (such as abrt and apport) to\nwork, all the running processes in a system must have their core limits\nset to a non-zero value, to which I say \u0027yes\u0027.  I did this by design, and\nthink thats the right way to do things.\n\nBut I\u0027ve been asked to ease this burden on user space enough times that I\nthought I would take a look at it.  The first suggestion was to make the\nrecursion check fail on a non-zero \u0027special\u0027 number, like one.  That way\nthe core collector process could set its core size ulimit to 1, and enable\nthe kernel\u0027s recursion detection.  This isn\u0027t a bad idea on the surface,\nbut I don\u0027t like it since its opt-in, in that if a program like abrt or\napport has a bug and fails to set such a core limit, we\u0027re left with a\nrecursively crashing system again.\n\nSo I\u0027ve come up with this.  What I\u0027ve done is modify the\ncall_usermodehelper api such that an extra parameter is added, a function\npointer which will be called by the user helper task, after it forks, but\nbefore it exec\u0027s the required process.  This will give the caller the\nopportunity to get a call back in the processes context, allowing it to do\nwhatever it needs to to the process in the kernel prior to exec-ing the\nuser space code.  In the case of do_coredump, this callback is ues to set\nthe core ulimit of the helper process to 1.  This elimnates the opt-in\nproblem that I had above, as it allows the ulimit for core sizes to be set\nto the value of 1, which is what the recursion check looks for in\ndo_coredump.\n\nThis patch:\n\nCreate new function call_usermodehelper_fns() and allow it to assign both\nan init and cleanup function, as we\u0027ll as arbitrary data.\n\nThe init function is called from the context of the forked process and\nallows for customization of the helper process prior to calling exec.  Its\nreturn code gates the continuation of the process, or causes its exit.\nAlso add an arbitrary data pointer to the subprocess_info struct allowing\nfor data to be passed from the caller to the new process, and the\nsubsequent cleanup process\n\nAlso, use this patch to cleanup the cleanup function.  It currently takes\nan argp and envp pointer for freeing, which is ugly.  Lets instead just\nmake the subprocess_info structure public, and pass that to the cleanup\nand init routines\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ed109103d73b0bafc92e860cead56725231384d",
      "tree": "4744e2d3c0e11095865e22ff285f71b7fb542f3d",
      "parents": [
        "e5ab67726f33b50f40db0ccf271ceb3c658554d5"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Wed Mar 10 15:24:06 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:53:10 2010 -0800"
      },
      "message": "sysctl extern cleanup: module\n\nExtern declarations in sysctl.c should be moved to their own header file,\nand then include them in relavant .c files.\n\nMove modprobe_path extern declaration to linux/kmod.h\nMove modules_disabled extern declaration to linux/module.h\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97c18e2c7a8e36d2d83d50ee070314aadac73a11",
      "tree": "fbccf33515ae3bb835e90af11da18614abde847e",
      "parents": [
        "f4efdd65b754ebbf41484d3a2255c59282720650"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Apr 09 10:35:47 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 07:49:44 2009 -0700"
      },
      "message": "module: try_then_request_module must wait\n\nSince the whole point of try_then_request_module is to retry\nthe operation after a module has been loaded, we must wait for\nthe module to fully load.\n\nOtherwise all sort of things start breaking, e.g., you won\u0027t\nbe able to read your encrypted disks on the first attempt.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nTested-by: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nTested-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acae05156551fd7528fbb616271e672789388e3c",
      "tree": "71cb528037776997aea4d5a3128bd9c2ea723ba1",
      "parents": [
        "8c8ef42aee8fcfb4128bb94c50d55c9f80ade525"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Feb 08 10:42:01 2009 -0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:35 2009 +1030"
      },
      "message": "module: create a request_module_nowait()\n\nThere seems to be a common pattern in the kernel where drivers want to\ncall request_module() from inside a module_init() function. Currently\nthis would deadlock.\n\nAs a result, several drivers go through hoops like scheduling things via\nkevent, or creating custom work queues (because kevent can deadlock on them).\n\nThis patch changes this to use a request_module_nowait() function macro instead,\nwhich just fires the modprobe off but doesn\u0027t wait for it, and thus avoids the\noriginal deadlock entirely.\n\nOn my laptop this already results in one less kernel thread running..\n\n(Includes Jiri\u0027s patch to use enum umh_wait)\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (bool-ified)\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\n"
    },
    {
      "commit": "1bfcf1304ea79c46efc3724e548b13b4b442b418",
      "tree": "5adbf95b25d1d9e86fc0e5d0784550ccb9bf5be9",
      "parents": [
        "574f34cee2b6574d43bf4506f771c1cec6a5d391"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Oct 15 22:01:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:29 2008 -0700"
      },
      "message": "pm: rework disabling of user mode helpers during suspend/hibernation\n\nWe currently use a PM notifier to disable user mode helpers before suspend\nand hibernation and to re-enable them during resume.  However, this is not\nan ideal solution, because if any drivers want to upload firmware into\nmemory before suspend, they have to use a PM notifier for this purpose and\nthere is no guarantee that the ordering of PM notifiers will be as\nexpected (ie.  the notifier that disables user mode helpers has to be run\nafter the driver\u0027s notifier used for uploading the firmware).\n\nFor this reason, it seems better to move the disabling and enabling of\nuser mode helpers to separate functions that will be called by the PM core\nas necessary.\n\n[akpm@linux-foundation.org: remove unneeded ifdefs]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac331d158e198d2a91a5b0a3ec4ca9991fdb57af",
      "tree": "b0921e2bc8e59d5df2c554c41c3b9f04e05d6d7c",
      "parents": [
        "f557d0996a6f9c06912528ea85e1dba0fb7d485f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Jul 25 01:45:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:28 2008 -0700"
      },
      "message": "call_usermodehelper(): increase reliability\n\nPresently call_usermodehelper_setup() uses GFP_ATOMIC.  but it can return\nNULL _very_ easily.\n\nGFP_ATOMIC is needed only when we can\u0027t sleep.  and, GFP_KERNEL is robust\nand better.\n\nthus, I add gfp_mask argument to call_usermodehelper_setup().\n\nSo, its callers pass the gfp_t as below:\n\ncall_usermodehelper() and call_usermodehelper_keys():\n\tdepend on \u0027wait\u0027 argument.\ncall_usermodehelper_pipe():\n\talways GFP_KERNEL because always run under process context.\norderly_poweroff():\n\tpass to GFP_ATOMIC because may run under interrupt context.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \"Paul Menage\" \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1ef5adb4cad43460ebba23c5a78cf4a55bb6a5b",
      "tree": "1556b41ff7a03a6941cb363d97204bfef501f9c4",
      "parents": [
        "a00caa1fa954c734f4214a074727a329a9ba6568"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jul 08 19:00:17 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:31 2008 +1000"
      },
      "message": "remove CONFIG_KMOD from core kernel code\n\nAlways compile request_module when the kernel allows modules.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "df648c9fbebb4de50e7a6e76cc253c7cb0421f9b",
      "tree": "909e31ce61020e65b45f2c0caef3492b9a376b4a",
      "parents": [
        "a81792f668c20540c336af4242ba1400763eb14f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jul 08 19:00:18 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:29 2008 +1000"
      },
      "message": "rework try_then_request_module to do less in non-modular kernels\n\nThis reworks try_then_request_module to only invoke the \"lookup\"\nfunction \"x\" once when the kernel is not modular.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "86313c488a6848b7ec2ba04e74f25f79dd32a0b7",
      "tree": "3b190f7afc338362470573b563f65a1eb83795ac",
      "parents": [
        "10a0a8d4e3f6bf2d077f94344441909abe670f5a"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Jul 17 18:37:03 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jul 18 08:47:40 2007 -0700"
      },
      "message": "usermodehelper: Tidy up waiting\n\nRather than using a tri-state integer for the wait flag in\ncall_usermodehelper_exec, define a proper enum, and use that.  I\u0027ve\npreserved the integer values so that any callers I\u0027ve missed should\nstill work OK.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "0ab4dc92278a0f3816e486d6350c6652a72e06c8",
      "tree": "84bc321c94ca86a3b5eafa308c8dba9af85a725c",
      "parents": [
        "d84d1cc7647c7e4f77d517e2d87b4a106a0420d9"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Jul 17 18:37:02 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jul 18 08:47:40 2007 -0700"
      },
      "message": "usermodehelper: split setup from execution\n\nRather than having hundreds of variations of call_usermodehelper for\nvarious pieces of usermode state which could be set up, split the\ninfo allocation and initialization from the actual process execution.\n\nThis means the general pattern becomes:\n info \u003d call_usermodehelper_setup(path, argv, envp); /* basic state */\n call_usermodehelper_\u003cSET EXTRA STATE\u003e(info, stuff...);\t/* extra state */\n call_usermodehelper_exec(info, wait);\t/* run process and free info */\n\nThis patch introduces wrappers for all the existing calling styles for\ncall_usermodehelper_*, but folds their implementations into one.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Bj?rn Steinbrink \u003cB.Steinbrink@gmx.de\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "dfff0a0671baf4e69fc676bf8150635407548288",
      "tree": "a477399030ef79029b7c8ef064a2695ea5f07c56",
      "parents": [
        "82f0cf9b7c42684c29189ddb6d0bc86eb1137fc4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 14:54:57 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 14:54:57 2007 -0800"
      },
      "message": "Revert \"Driver core: let request_module() send a /sys/modules/kmod/-uevent\"\n\nThis reverts commit c353c3fb0700a3c17ea2b0237710a184232ccd7f.\n\nIt turns out that we end up with a loop trying to load the unix\nmodule and calling netfilter to do that.  Will redo the patch\nlater to not have this loop.\n\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "c353c3fb0700a3c17ea2b0237710a184232ccd7f",
      "tree": "7b5fd590bd9b0a08bee8425ad074e993629683d1",
      "parents": [
        "89790fd789e024b23eb1fbccedd84a2015441ce0"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Feb 02 16:39:12 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 16 15:19:15 2007 -0800"
      },
      "message": "Driver core: let request_module() send a /sys/modules/kmod/-uevent\n\nOn recent systems, calls to /sbin/modprobe are handled by udev depending\non the kind of device the kernel has discovered. This patch creates an\nuevent for the kernels internal request_module(), to let udev take control\nover the request, instead of forking the binary directly by the kernel.\nThe direct execution of /sbin/modprobe can be disabled by setting:\n  /sys/module/kmod/mod_request_helper (/proc/sys/kernel/modprobe)\nto an empty string, the same way /proc/sys/kernel/hotplug is disabled on an\nudev system.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e239ca540594cff00adcce163dc332b27015d8e5",
      "tree": "8dfb5c0be4864d738df5a5282e56d9e57ce8261f",
      "parents": [
        "d6cbd281d189977b38eac7eb2a4678de19b6b483"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Sep 30 23:29:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:33 2006 -0700"
      },
      "message": "[PATCH] Create call_usermodehelper_pipe()\n\nA new member in the ever growing family of call_usermode* functions is\nborn.  The new call_usermodehelper_pipe() function allows to pipe data to\nthe stdin of the called user mode progam and behaves otherwise like the\nnormal call_usermodehelp() (except that it always waits for the child to\nfinish)\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "7888e7ff4ee579442128d7d12a9c9dbf2cf7de6a",
      "tree": "abe428ecb966e1dae07fce17f38e3e0c0ab4f134",
      "parents": [
        "76d8aeabfeb1c42641a81c44280177b9a08670d8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jun 23 22:00:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:18 2005 -0700"
      },
      "message": "[PATCH] Keys: Pass session keyring to call_usermodehelper()\n\nThe attached patch makes it possible to pass a session keyring through to the\nprocess spawned by call_usermodehelper().  This allows patch 3/3 to pass an\nauthorisation key through to /sbin/request-key, thus permitting better access\ncontrols when doing just-in-time key creation.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
