)]}'
{
  "log": [
    {
      "commit": "65afac7d80ab3bc9f81e75eafb71eeb92a3ebdef",
      "tree": "544c1e9192d8e47f1d1b1d54e36365f393ec7be0",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 29 08:56:16 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 29 08:56:17 2009 +1030"
      },
      "message": "param: fix lots of bugs with writing charp params from sysfs, by leaking mem.\n\ne180a6b7759a \"param: fix charp parameters set via sysfs\" fixed the case\nwhere charp parameters written via sysfs were freed, leaving drivers\naccessing random memory.\n\nUnfortunately, storing a flag in the kparam struct was a bad idea: it\u0027s\nrodata so setting it causes an oops on some archs.  But that\u0027s not all:\n\n1) module_param_array() on charp doesn\u0027t work reliably, since we use an\n   uninitialized temporary struct kernel_param.\n2) there\u0027s a fundamental race if a module uses this parameter and then\n   it\u0027s changed: they will still access the old, freed, memory.\n\nThe simplest fix (ie. for 2.6.32) is to never free the memory.  This\nprevents all these problems, at cost of a memory leak.  In practice, there\nare only 18 places where a charp is writable via sysfs, and all are\nroot-only writable.\n\nReported-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Sitsofe Wheeler \u003csitsofe@yahoo.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christof Schmitt \u003cchristof.schmitt@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "fddd520122953550ec2c8b60e7ca0d0f0d115d97",
      "tree": "d0c45f94bc0054661ee9af41b607815c24a36cff",
      "parents": [
        "d2c123c27db841c6c11a63de9c144823d2b1ba76"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:57 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:58 2009 +0930"
      },
      "message": "module_param: allow \u0027bool\u0027 module_params to be bool, not just int.\n\nImpact: API cleanup\n\nFor historical reasons, \u0027bool\u0027 parameters must be an int, not a bool.\nBut there are around 600 users, so a conversion seems like useless churn.\n\nSo we use __same_type() to distinguish, and handle both cases.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "45fcc70c0b6ee0c508e1fdb5fef735c3546803f4",
      "tree": "15ea34cf77ecd9bbd4f78259ced012f18a26e01b",
      "parents": [
        "9a71af2c3627b379b7c31917a7f6ee0d29bc559b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:56 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:56 2009 +0930"
      },
      "message": "module_param: split perm field into flags and perm\n\nImpact: cleanup\n\nRather than hack KPARAM_KMALLOCED into the perm field, separate it out.\nSince the perm field was 32 bits and only needs 16, we don\u0027t add bloat.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9a71af2c3627b379b7c31917a7f6ee0d29bc559b",
      "tree": "c09049a6a4458be91844500d7d5034b63a1cdcc7",
      "parents": [
        "ab8e2eb722f1e5fcbd8181e3e9ef4e95c52124df"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:53 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:56 2009 +0930"
      },
      "message": "module_param: invbool should take a \u0027bool\u0027, not an \u0027int\u0027\n\nIt takes an \u0027int\u0027 for historical reasons, and there are only two\nusers: simply switch it over to bool.\n\nThe other user (uvesafb.c) will get a (harmless-on-x86) warning until\nthe next patch is applied.\n\nCc: Brad Douglas \u003cbrad@neruo.com\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e180a6b7759a99a28cbcce3547c4c80822cb6c2a",
      "tree": "d52b950935f3192d13bdd4ad9377b39bab21325e",
      "parents": [
        "15f7176eb1cccec0a332541285ee752b935c1c85"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:29 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:30 2009 +1030"
      },
      "message": "param: fix charp parameters set via sysfs\n\nImpact: fix crash on reading from /sys/module/.../ieee80211_default_rc_algo\n\nThe module_param type \"charp\" simply sets a char * pointer in the\nmodule to the parameter in the commandline string: this is why we keep\nthe (mangled) module command line around.  But when set via sysfs (as\nabout 11 charp parameters can be) this memory is freed on the way\nout of the write().  Future reads hit random mem.\n\nSo we kstrdup instead: we have to check we\u0027re not in early commandline\nparsing, and we have to note when we\u0027ve used it so we can reliably\nkfree the parameter when it\u0027s next overwritten, and also on module\nunload.\n\n(Thanks to Randy Dunlap for CONFIG_SYSFS\u003dn fixes)\n\nReported-by: Sitsofe Wheeler \u003csitsofe@yahoo.com\u003e\nDiagnosed-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Christof Schmitt \u003cchristof.schmitt@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "67e67ceaac5bf55dbdceb704ff2d763d438b5373",
      "tree": "59523536661c93dce7a02557ca6ac5827a7bf75f",
      "parents": [
        "9b473de87209fa86eb421b23386693b461612f30"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:23 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:23 2008 +1100"
      },
      "message": "core_param() for genuinely core kernel parameters\n\nThere are a lot of one-liner uses of __setup() in the kernel: they\u0027re\ncumbersome and not queryable (definitely not settable) via /sys.  Yet\nit\u0027s ugly to simplify them to module_param(), because by default that\ninserts a prefix of the module name (usually filename).\n\nSo, introduce a \"core_param\".  The parameter gets no prefix, but\nappears in /sys/module/kernel/parameters/ (if non-zero perms arg).  I\nthought about using the name \"core\", but that\u0027s more common than\n\"kernel\".  And if you create a module called \"kernel\", you will die\na horrible death.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "730b69d225259565c705f5f5a11cb1aba69568f1",
      "tree": "9ae3f20102d06d83b23dbbed1ae8acb86e01e7ea",
      "parents": [
        "d72b37513cdfbd3f53f3d485a8c403cc96d2c95f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:22 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:22 2008 +1100"
      },
      "message": "module: check kernel param length at compile time, not runtime\n\nThe kparam code tries to handle over-length parameter prefixes at\nruntime.  Not only would I bet this has never been tested, it\u0027s not\nclear that truncating names is a good idea either.\n\nSo let\u0027s check at compile time.  We need to move the #define to\nmoduleparam.h to do this, though.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "91d35dd93e14c34539a8005183ea500f25caad02",
      "tree": "1bb38d5b7d903881e23f2350bf0d3616746e4509",
      "parents": [
        "bc2cda1ebd4430f55deb60f0193a3e3b835499a2"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Wed Feb 13 15:03:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 16:21:19 2008 -0800"
      },
      "message": "moduleparam: fix alpha, ia64 and ppc64 compile failures\n\nOn alpha, ia64 and ppc64 only relocations to local data can go into\nread-only sections. The vast majority of module parameters use the global\ngeneric param_set_*/param_get_* functions, so the \u0027const\u0027 attribute for\nstruct kernel_param is not only useless, but it also causes compile\nfailures due to \u0027section type conflict\u0027 in those rare cases where\nparam_set/get are local functions.\n\nThis fixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d8964\n\nSigned-off-by: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.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": "3ff6eecca4e5c49a5d1dd8b58ea0e20102ce08f0",
      "tree": "9af53a5ce0054520be6d572f988a76f3ab4ef0c0",
      "parents": [
        "bc395add945659e04cc7cf250755ba0edc1a9fdc"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Jan 24 22:16:20 2008 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Jan 28 23:21:18 2008 +0100"
      },
      "message": "remove __attribute_used__\n\nRemove the deprecated __attribute_used__.\n\n[Introduce __section in a few places to silence checkpatch /sam]\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "22e48eaf587d044ba311a73c6fe0d0deaa8fdb63",
      "tree": "8407d8f3f9a69b275e9008249e678499ce92253d",
      "parents": [
        "d5aa0daf6d9f327a9c13bc3a203bfac2b8707e2f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Tue Oct 16 23:29:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:56 2007 -0700"
      },
      "message": "constify string/array kparam tracking structures\n\n.. in an effort to make read-only whatever can be made, so that\nCONFIG_DEBUG_RODATA can catch as many issues as possible.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "874ff01bd9183ad16495acfd54e93a619d12b8b5",
      "tree": "e9527e94649fadfa705dae64018e027e51681b88",
      "parents": [
        "ebbe46f73a11a667df59cb8e58b371c0a35f29d0",
        "86aae08faa0069a559ba543ff3dab33fe95f891b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 19 13:29:02 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 19 13:29:02 2007 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (25 commits)\n  Documentation/kernel-docs.txt update.\n  arch/cris: typo in KERN_INFO\n  Storage class should be before const qualifier\n  kernel/printk.c: comment fix\n  update I/O sched Kconfig help texts - CFQ is now default, not AS.\n  Remove duplicate listing of Cris arch from README\n  kbuild: more doc. cleanups\n  doc: make doc. for maxcpus\u003d more visible\n  drivers/net/eexpress.c: remove duplicate comment\n  add a help text for BLK_DEV_GENERIC\n  correct a dead URL in the IP_MULTICAST help text\n  fix the BAYCOM_SER_HDX help text\n  fix SCSI_SCAN_ASYNC help text\n  trivial documentation patch for platform.txt\n  Fix typos concerning hierarchy\n  Fix comment typo \"spin_lock_irqrestore\".\n  Fix misspellings of \"agressive\".\n  drivers/scsi/a100u2w.c: trivial typo patch\n  Correct trivial typo in log2.h.\n  Remove useless FIND_FIRST_BIT() macro from cardbus.c.\n  ...\n"
    },
    {
      "commit": "405ae7d381302468ecc803f2148a2ae40a04c999",
      "tree": "7b1915220ae6595a28755fbbb32ee95d233a3da9",
      "parents": [
        "ca820181fc187af316a18b2700582663662c4012"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 17 19:13:42 2007 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Feb 17 19:13:42 2007 +0100"
      },
      "message": "Replace remaining references to \"driverfs\" with \"sysfs\".\n\nGlobally, s/driverfs/sysfs/g.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "ef665c1a06be719ed9a6b0ad7967137258d9457a",
      "tree": "aff01a8a9ae3617fdfd1f2931aa62799f0988610",
      "parents": [
        "e4a3c3f095ecc760fc557ca87e518e2e553fab4b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Feb 13 15:19:06 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 16 15:19:18 2007 -0800"
      },
      "message": "sysfs: fix build errors: uevent with CONFIG_SYSFS\u003dn\n\nFix source files to build with CONFIG_SYSFS\u003dn.\nmodule_subsys is not available.\n\nSYSFS\u003dn, MODULES\u003dy:\tT:y\nSYSFS\u003dn, MODULES\u003dn:\tT:y\n\nSYSFS\u003dy, MODULES\u003dy:\tT:y\nSYSFS\u003dy, MODULES\u003dn:\tT:y\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9774a1f54f173ad18e816496c8979f1bf8ef666a",
      "tree": "43787344922cca18dfa0eba9a4fc3ce646e22bff",
      "parents": [
        "37167485302c8876cb0303af113696e88c2945aa"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Dec 06 20:36:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] Compile-time check re world-writeable module params\n\nOne of the mistakes a module_param() user can make is to supply default\nvalue of module parameter as the last argument.  module_param() accepts\npermissions instead.  If default value is, say, 3 (-------wx), parameter\nbecomes world-writeable.\n\nSo far, the only remedy was to apply grep(1) and read drivers submitted\nto -mm. BTDT.\n\nWith this patch applied, compiler will finally do some job.\n\n*) bounds checking on permissions\n*) world-writeable bit checking on permissions\n*) compile breakage if checks trigger\n\nFirst version of this check (only \"\u0026 2\" part) directly caught 4 out of 7\nplaces during my last grep.\n\n    Subject: Neverending module_param() bugs\n    [X] drivers/acpi/sbs.c:101:module_param(capacity_mode, int, CAPACITY_UNIT);\n    [X] drivers/acpi/sbs.c:102:module_param(update_mode, int, UPDATE_MODE);\n    [ ] drivers/acpi/sbs.c:103:module_param(update_info_mode, int, UPDATE_INFO_MODE);\n    [ ] drivers/acpi/sbs.c:104:module_param(update_time, int, UPDATE_TIME);\n    [ ] drivers/acpi/sbs.c:105:module_param(update_time2, int, UPDATE_TIME2);\n    [X] drivers/char/watchdog/sbc8360.c:203:module_param(timeout, int, 27);\n    [X] drivers/media/video/tuner-simple.c:13:module_param(offset, int, 0666);\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9871728b756646e0d758a966ba00f2c0ff812817",
      "tree": "32899f2bc1e72d6ba51665b59350e9729e7f5287",
      "parents": [
        "8d3b33f67fdc0fb364a1ef6d8fbbea7c2e4e6c98"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Mar 25 03:07:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:52 2006 -0800"
      },
      "message": "[PATCH] kernel/params.c: make param_array() static\n\nparam_array() in kernel/params.c can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "367cb704212cd0c9273ba2b1e62523139210563b",
      "tree": "cda6402ea19e2b706ad8ac9a186f1e391ab3c6ea",
      "parents": [
        "20ede2741551d4a1d24313292beb0da915a55911"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@mars.ravnborg.org",
        "time": "Fri Jan 06 21:17:50 2006 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@mars.ravnborg.org",
        "time": "Fri Jan 06 21:17:50 2006 +0100"
      },
      "message": "kbuild: un-stringnify KBUILD_MODNAME\n\nNow when kbuild passes KBUILD_MODNAME with \"\" do not __stringify it when\nused. Remove __stringnify for all users.\nThis also fixes the output of:\n\n$ ls -l /sys/module/\ndrwxr-xr-x 4 root root 0 2006-01-05 14:24 pcmcia\ndrwxr-xr-x 4 root root 0 2006-01-05 14:24 pcmcia_core\ndrwxr-xr-x 3 root root 0 2006-01-05 14:24 \"processor\"\ndrwxr-xr-x 3 root root 0 2006-01-05 14:24 \"psmouse\"\n\nThe quoting of the module names will be gone again.\nThanks to GregKH + Kay Sievers for reproting this.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.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"
    }
  ]
}
