)]}'
{
  "log": [
    {
      "commit": "9e1b9b80721661bd63b3662453767b22cd614fe7",
      "tree": "e1b53708f4b65c990db3b8b732dc3d984574c756",
      "parents": [
        "3e7b19efe621bcf8bfef896c9c4cc5c99c52c3ec"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Sat Nov 07 21:03:54 2009 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 15 16:28:26 2009 +1030"
      },
      "message": "module: make MODULE_SYMBOL_PREFIX into a CONFIG option\n\nThe next commit will require the use of MODULE_SYMBOL_PREFIX in\n.tmp_exports-asm.S.  Currently it is mixed in with C structure\ndefinitions in \"asm/module.h\".  Move the definition of this arch option\ninto Kconfig, so it can be easily accessed by any code.\n\nThis also lets modpost.c use the same definition.  Previously modpost\nrelied on a hardcoded list of architectures in mk_elfconfig.c.\n\nA build test for blackfin, one of the two MODULE_SYMBOL_PREFIX archs,\nshowed the generated code was unchanged.  vmlinux was identical save\nfor build ids, and an apparently randomized suffix on a single \"__key\"\nsymbol in the kallsyms data).\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e (blackfin)\nCC: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1d7015caa082d465faeae5d6fd1be077ee6dfa87",
      "tree": "db04698fc032f1a480c12e293558f87643c1533d",
      "parents": [
        "26d052bfce799ef0e7262695b46e3525ca4d381d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Sep 25 00:32:58 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:58 2009 +0930"
      },
      "message": "module: preferred way to use MODULE_AUTHOR\n\nFor the longest time now we\u0027ve been using multiple MODULE_AUTHOR()\nstatements when a module has more than one author, but the comment here\ndisagrees.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Luciano Coelho \u003cluciano.coelho@nokia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "554bdfe5acf3715e87c8d5e25a4f9a896ac9f014",
      "tree": "8a03f9799114c8100a3e54d230d9e31703248f7a",
      "parents": [
        "4a4962263f07d14660849ec134ee42b63e95ea9a"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Jul 06 14:51:44 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:57 2009 +0930"
      },
      "message": "module: reduce string table for loaded modules (v2)\n\nAlso remove all parts of the string table (referenced by the symbol\ntable) that are not needed for kallsyms use (i.e. which were only\nreferenced by symbols discarded by the previous patch, or not\nreferenced at all for whatever reason).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4a4962263f07d14660849ec134ee42b63e95ea9a",
      "tree": "0edfe694167c224a6d9e48901743edd478a71c29",
      "parents": [
        "94a8d5caba74211ec76dac80fc6e2d5c391530df"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Jul 06 14:50:42 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:57 2009 +0930"
      },
      "message": "module: reduce symbol table for loaded modules (v2)\n\nDiscard all symbols not interesting for kallsyms use: absolute,\nsection, and in the common case (!KALLSYMS_ALL) data ones.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "fc5377668c3d808e1d53c4aee152c836f55c3490",
      "tree": "366723ccb26a64c311074c346721aaf4ff0e7d58",
      "parents": [
        "df58bee21ed218cb7dfb561a590b1bd2a99531cf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 17 19:35:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 21:22:08 2009 +0200"
      },
      "message": "tracing: Remove markers\n\nNow that the last users of markers have migrated to the event\ntracer we can kill off the (now orphan) support code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20090917173527.GA1699@lst.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7ead8b8313d92b3a69a1a61b0dcbc4cd66c960dc",
      "tree": "614759ec1b24ea9f6d1409b866c80df0611e5d6b",
      "parents": [
        "60d970c254b95ec7a0fc4c590b510253987b64a0"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Aug 17 16:56:28 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 17 11:25:08 2009 +0200"
      },
      "message": "tracing/events: Add module tracepoints\n\nAdd trace points to trace module_load, module_free, module_get,\nmodule_put and module_request, and use trace_event facility to\nget the trace output.\n\nHere\u0027s the sample output:\n\n     TASK-PID    CPU#    TIMESTAMP  FUNCTION\n        | |       |          |         |\n    \u003c...\u003e-42    [000]     1.758380: module_request: fb0 wait\u003d1 call_site\u003dfb_open\n    ...\n    \u003c...\u003e-60    [000]     3.269403: module_load: scsi_wait_scan\n    \u003c...\u003e-60    [000]     3.269432: module_put: scsi_wait_scan call_site\u003dsys_init_module refcnt\u003d0\n    \u003c...\u003e-61    [001]     3.273168: module_free: scsi_wait_scan\n    ...\n    \u003c...\u003e-1021  [000]    13.836081: module_load: sunrpc\n    \u003c...\u003e-1021  [000]    13.840589: module_put: sunrpc call_site\u003dsys_init_module refcnt\u003d-1\n    \u003c...\u003e-1027  [000]    13.848098: module_get: sunrpc call_site\u003dtry_module_get refcnt\u003d0\n    \u003c...\u003e-1027  [000]    13.848308: module_get: sunrpc call_site\u003dget_filesystem refcnt\u003d1\n    \u003c...\u003e-1027  [000]    13.848692: module_put: sunrpc call_site\u003dput_filesystem refcnt\u003d0\n    ...\n modprobe-2587  [001]  1088.437213: module_load: trace_events_sample F\n modprobe-2587  [001]  1088.437786: module_put: trace_events_sample call_site\u003dsys_init_module refcnt\u003d0\n\nNote:\n\n- the taints flag can be \u0027F\u0027, \u0027C\u0027 and/or \u0027P\u0027 if mod-\u003etaints !\u003d 0\n\n- the module refcnt is percpu, so it can be negative in a\n  specific cpu\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c4A891B3C.5030608@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b99b87f70c7785ab1e253c6220f4b0b57ce3a7f7",
      "tree": "ec5688052334448ec8edd3a1a9cb95cd68501ac7",
      "parents": [
        "e24aca672ff06aff0e6a1045efab86043ea5f735"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Wed Jun 17 16:28:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:57 2009 -0700"
      },
      "message": "kernel: constructor support\n\nCall constructors (gcc-generated initcall-like functions) during kernel\nstart and module load.  Constructors are e.g.  used for gcov data\ninitialization.\n\nDisable constructor support for usermode Linux to prevent conflicts with\nhost glibc.\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Li Wei \u003cW.Li@Sun.COM\u003e\nCc: Michael Ellerman \u003cmichaele@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheicars2@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cmschwid2@linux.vnet.ibm.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": "0d9c25dde878a636ee9a9b53923569171bf9a55b",
      "tree": "fea0a36db4dd8c8bcfbfdd5830170de3492917a4",
      "parents": [
        "4938d7e0233a455f04507bac81d0886c71529537"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jun 16 15:33:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "headers: move module_bug_finalize()/module_bug_cleanup() definitions into module.h\n\nThey\u0027re in linux/bug.h at present, which causes include order tangles.  In\nparticular, linux/bug.h cannot be used by linux/atomic.h because,\naccording to Nikanth:\n\nlinux/bug.h pulls in linux/module.h \u003d\u003e linux/spinlock.h \u003d\u003e asm/spinlock.h\n(which uses atomic_inc) \u003d\u003e asm/atomic.h.\n\nbug.h is a pretty low-level thing and module.h is a higher-level thing,\nIMO.\n\nCc: Nikanth Karthikesan \u003cknikanth@novell.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": "ad6561dffa17f17bb68d7207d422c26c381c4313",
      "tree": "04cf6480ccd6732ab0ffe3d552bd32599390ff65",
      "parents": [
        "c398df30d5caad626ac72bfab0361a7b0f67a661"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:47:03 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:47:04 2009 +0930"
      },
      "message": "module: trim exception table on init free.\n\nIt\u0027s theoretically possible that there are exception table entries\nwhich point into the (freed) init text of modules.  These could cause\nfuture problems if other modules get loaded into that memory and cause\nan exception as we\u0027d see the wrong fixup.  The only case I know of is\nkvm-intel.ko (when CONFIG_CC_OPTIMIZE_FOR_SIZE\u003dn).\n\nAmerigo fixed this long-standing FIXME in the x86 version, but this\npatch is more general.\n\nThis implements trim_init_extable(); most archs are simple since they\nuse the standard lib/extable.c sort code.  Alpha and IA64 use relative\naddresses in their fixups, so thier trimming is a slight variation.\n\nSparc32 is unique; it doesn\u0027t seem to define ARCH_HAS_SORT_EXTABLE,\nyet it defines its own sort_extable() which overrides the one in lib.\nIt doesn\u0027t sort, so we have to mark deleted entries instead of\nactually trimming them.\n\nInspired-by: Amerigo Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: linux-alpha@vger.kernel.org\nCc: sparclinux@vger.kernel.org\nCc: linux-ia64@vger.kernel.org\n"
    },
    {
      "commit": "93eb677d74a4f7d3edfb678c94f6c0544d9fbad2",
      "tree": "8bbc46895be623a78316230362e94969dbb02135",
      "parents": [
        "f3948f8857ef5de239f28a61dddb1554a0ae4c2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 15 13:24:06 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 16:59:15 2009 +0200"
      },
      "message": "ftrace: use module notifier for function tracer\n\nThe hooks in the module code for the function tracer must be called\nbefore any of that module code runs. The function tracer hooks\nmodify the module (replacing calls to mcount to nops). If the code\nis executed while the change occurs, then the CPU can take a GPF.\n\nTo handle the above with a bit of paranoia, I originally implemented\nthe hooks as calls directly from the module code.\n\nAfter examining the notifier calls, it looks as though the start up\nnotify is called before any of the module\u0027s code is executed. This makes\nthe use of the notify safe with ftrace.\n\nOnly the startup notify is required to be \"safe\". The shutdown simply\nremoves the entries from the ftrace function list, and does not modify\nany code.\n\nThis change has another benefit. It removes a issue with a reverse dependency\nin the mutexes of ftrace_lock and module_mutex.\n\n[ Impact: fix lock dependency bug, cleanup ]\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6d723736e472f7a0cd5b62c84152fceead241328",
      "tree": "8df2f6c47ebdfdeb8979758c877a5abbd9c06aef",
      "parents": [
        "17c873ec280a03894bc718af817f7f24fa787ae1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 10 14:53:50 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:58:03 2009 -0400"
      },
      "message": "tracing/events: add support for modules to TRACE_EVENT\n\nImpact: allow modules to add TRACE_EVENTS on load\n\nThis patch adds the final hooks to allow modules to use the TRACE_EVENT\nmacro. A notifier and a data structure are used to link the TRACE_EVENTs\ndefined in the module to connect them with the ftrace event tracing system.\n\nIt also adds the necessary automated clean ups to the trace events when a\nmodule is removed.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "c6b37801911d7f4663c99cad8aa230bc934cea82",
      "tree": "a39a317c5f9fa2d5ba9813bbe29e3139c52e194e",
      "parents": [
        "75a66614db21007bcc8c37f9c5d5b922981387b9"
      ],
      "author": {
        "name": "Tim Abbott",
        "email": "tabbott@mit.edu",
        "time": "Fri Dec 05 19:03:59 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:33 2009 +1030"
      },
      "message": "module: Export symbols needed for Ksplice\n\nImpact: Expose some module.c symbols\n\nKsplice uses several functions from module.c in order to resolve\nsymbols and implement dependency handling.  Calling these functions\nrequires holding module_mutex, so it is exported.\n\n(This is just the module part of a bigger add-exports patch from Tim).\n\nCc: Anders Kaseorg \u003candersk@mit.edu\u003e\nCc: Jeff Arnold \u003cjbarnold@mit.edu\u003e\nSigned-off-by: Tim Abbott \u003ctabbott@mit.edu\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "75a66614db21007bcc8c37f9c5d5b922981387b9",
      "tree": "d02c905a3aee02ec25ce38700f47d0fa57d2cbf7",
      "parents": [
        "a6e6abd575fcbe6572ebc7a70ad616406d206fa8"
      ],
      "author": {
        "name": "Anders Kaseorg",
        "email": "andersk@mit.edu",
        "time": "Fri Dec 05 19:03:58 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:32 2009 +1030"
      },
      "message": "Ksplice: Add functions for walking kallsyms symbols\n\nImpact: New API\n\nkallsyms_lookup_name only returns the first match that it finds.  Ksplice\nneeds information about all symbols with a given name in order to correctly\nresolve local symbols.\n\nkallsyms_on_each_symbol provides a generic mechanism for iterating over the\nkallsyms table.\n\nCc: Jeff Arnold \u003cjbarnold@mit.edu\u003e\nCc: Tim Abbott \u003ctabbott@mit.edu\u003e\nSigned-off-by: Anders Kaseorg \u003candersk@mit.edu\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a6e6abd575fcbe6572ebc7a70ad616406d206fa8",
      "tree": "3909d2be063116936179bb4da85d5cb4aed32ce6",
      "parents": [
        "e610499e2656e61975affd0af56b26eb73964c84"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:31 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:32 2009 +1030"
      },
      "message": "module: remove module_text_address()\n\nImpact: Replace and remove risky (non-EXPORTed) API\n\nmodule_text_address() returns a pointer to the module, which given locking\nimprovements in module.c, is useless except to test for NULL:\n\n1) If the module can\u0027t go away, use __module_text_address.\n2) Otherwise, just use is_module_text_address().\n\nCc: linux-mtd@lists.infradead.org\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e610499e2656e61975affd0af56b26eb73964c84",
      "tree": "e870def77ba17f717a8cf2766f0b4ac8c2ae89f3",
      "parents": [
        "414fd31b2553aaf160ca9b9afe45aa0372b01b92"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:31 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:31 2009 +1030"
      },
      "message": "module: __module_address\n\nImpact: New API, cleanup\n\nksplice wants to know the bounds of a module, not just the module text.\n\nIt makes sense to have __module_address.  We then implement\nis_module_address and __module_text_address in terms of this (and\nchange is_module_text_address() to bool while we\u0027re at it).\n\nAlso, add proper kerneldoc for them all.\n\nCc: Anders Kaseorg \u003candersk@mit.edu\u003e\nCc: Jeff Arnold \u003cjbarnold@mit.edu\u003e\nCc: Tim Abbott \u003ctabbott@mit.edu\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": "769b0441f438c4bb4872cb8560eb6fe51bcc09ee",
      "tree": "9908682dfd89e97c3097a7c3adcae35d821e1895",
      "parents": [
        "1ba28e02a18cbdbea123836f6c98efb09cbf59ec"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 06 17:21:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:12 2009 +0100"
      },
      "message": "tracing/core: drop the old trace_printk() implementation in favour of trace_bprintk()\n\nImpact: faster and lighter tracing\n\nNow that we have trace_bprintk() which is faster and consume lesser\nmemory than trace_printk() and has the same purpose, we can now drop\nthe old implementation in favour of the binary one from trace_bprintk(),\nwhich means we move all the implementation of trace_bprintk() to\ntrace_printk(), so the Api doesn\u0027t change except that we must now use\ntrace_seq_bprintk() to print the TRACE_PRINT entries.\n\nSome changes result of this:\n\n- Previously, trace_bprintk depended of a single tracer and couldn\u0027t\n  work without. This tracer has been dropped and the whole implementation\n  of trace_printk() (like the module formats management) is now integrated\n  in the tracing core (comes with CONFIG_TRACING), though we keep the file\n  trace_printk (previously trace_bprintk.c) where we can find the module\n  management. Thus we don\u0027t overflow trace.c\n\n- changes some parts to use trace_seq_bprintk() to print TRACE_PRINT entries.\n\n- change a bit trace_printk/trace_vprintk macros to support non-builtin formats\n  constants, and fix \u0027const\u0027 qualifiers warnings. But this is all transparent for\n  developers.\n\n- etc...\n\nV2:\n\n- Rebase against last changes\n- Fix mispell on the changelog\n\nV3:\n\n- Rebase against last changes (moving trace_printk() to kernel.h)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-5-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ba28e02a18cbdbea123836f6c98efb09cbf59ec",
      "tree": "41df06a06c702152902ffd7250f284a6efe9b0da",
      "parents": [
        "1427cdf0592368bdec57276edaf714040ee8744f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 06 17:21:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:11 2009 +0100"
      },
      "message": "tracing: add trace_bprintk()\n\nImpact: add a generic printk() for tracing, like trace_printk()\n\ntrace_bprintk() uses the infrastructure to record events on ring_buffer.\n\n[ fweisbec@gmail.com: ported to latest -tip, made it work if\n  !CONFIG_MODULES, never free the format strings from modules\n  because we can\u0027t keep track of them and conditionnaly create\n  the ftrace format strings section (reported by Steven Rostedt) ]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-4-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f9a50a5b89b87f8e754f59ae9968da28be618a5",
      "tree": "fd3baa0d66b14a6d5adc4f09088fa15dfcb5b7ab",
      "parents": [
        "f12b12a8aecfcafcf2f9df1c1658d2484959dfda"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Feb 07 18:15:56 2009 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 07 08:33:01 2009 -0800"
      },
      "message": "module: remove over-zealous check in __module_get()\n\nImpact: fix spurious BUG_ON() triggered under load\n\nmodule_refcount() isn\u0027t reliable outside stop_machine(), as demonstrated\nby Karsten Keil \u003ckkeil@suse.de\u003e, networking can trigger it under load\n(an inc on one cpu and dec on another while module_refcount() is tallying\n can give false results, for example).\n\nAlmost noone should be using __module_get, but that\u0027s another issue.\n\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "720eba31f47aeade8ec130ca7f4353223c49170f",
      "tree": "4aef103b59a0fb7b9406fd3e4bb09bdf7e3ad2f7",
      "parents": [
        "27421e211a39784694b597dbf35848b88363c248"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Feb 03 13:31:36 2009 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 02 19:17:55 2009 -0800"
      },
      "message": "modules: Use a better scheme for refcounting\n\nCurrent refcounting for modules (done if CONFIG_MODULE_UNLOAD\u003dy) is\nusing a lot of memory.\n\nEach \u0027struct module\u0027 contains an [NR_CPUS] array of full cache lines.\n\nThis patch uses existing infrastructure (percpu_modalloc() \u0026\npercpu_modfree()) to allocate percpu space for the refcount storage.\n\nInstead of wasting NR_CPUS*128 bytes (on i386), we now use\nnr_cpu_ids*sizeof(local_t) bytes.\n\nOn a typical distro, where NR_CPUS\u003d8, shiping 2000 modules, we reduce\nsize of module files by about 2 Mbytes. (1Kb per module)\n\nInstead of having all refcounters in the same memory node - with TLB misses\nbecause of vmalloc() - this new implementation permits to have better\nNUMA properties, since each  CPU will use storage on its preferred node,\nthanks to percpu storage.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a06f6211ef9b1785922f9d0e8766d63ac4e66de1",
      "tree": "4ceac7a7eda00cad3b3f02876e75c1c7af41ce23",
      "parents": [
        "12da3b888b2035bb0f106122f1cc1b6d357fad53"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "module: add within_module_core() and within_module_init()\n\nThis series of patches allows kprobes to probe module\u0027s __init and __exit\nfunctions.  This means, you can probe driver initialization and\nterminating.\n\nCurrently, kprobes can\u0027t probe __init function because these functions are\nfreed after module initialization.  And it also can\u0027t probe module __exit\nfunctions because kprobe increments reference count of target module and\nuser can\u0027t unload it.  this means __exit functions never be called unless\nremoving probes from the module.\n\nTo solve both cases, this series of patches introduces GONE flag and sets\nit when the target code is freed(for this purpose, kprobes hooks\nMODULE_STATE_* events).  This also removes refcount incrementing for\nallowing user to unload target module.  Users can check which probes are\nGONE by debugfs interface.  For taking timing of freeing module\u0027s .init\ntext, these also include a patch which adds module\u0027s notifier of\nMODULE_STATE_LIVE event.\n\nThis patch:\n\nAdd within_module_core() and within_module_init() for checking whether an\naddress is in the module .init.text section or .text section, and replace\nwithin() local inline functions in kernel/module.c with them.\n\nkprobes uses these functions to check where the kprobe is inserted.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nAcked-by: 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": "f1883f86dea84fe47a71a39fc1afccc005915ed8",
      "tree": "357c50d2eb44e9e62c39c0c1025bae7b2b6eba67",
      "parents": [
        "eaccbfa564e48c87626594511f42dc8c0ad2daae"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jan 06 14:40:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "Remove remaining unwinder code\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Gabor Gombas \u003cgombasg@sztaki.hu\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e,\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b473de87209fa86eb421b23386693b461612f30",
      "tree": "7fe30a3f37347d5bb6f2ade2cc09133ae158ea3d",
      "parents": [
        "730b69d225259565c705f5f5a11cb1aba69568f1"
      ],
      "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:23 2008 +1100"
      },
      "message": "param: Fix duplicate module prefixes\n\nInstead of insisting each new module_param sysfs entry is unique,\nhandle the case where it already exists (for builtin modules).\n\nThe current code assumes that all identical prefixes are together in\nthe section: true for normal uses, but not necessarily so if someone\noverrides MODULE_PARAM_PREFIX.  More importantly, it\u0027s not true with\nthe new \"core_param()\" code which uses \"kernel\" as a prefix.\n\nThis simplifies the caller for the builtin case, at a slight loss of\nefficiency (we do the lookup every time to see if the directory\nexists).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\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": "5e458cc0f4770eea45d3c07110f01b3a94c72aa5",
      "tree": "97966d9ac8f9621073fad39a88ed37765c959a9d",
      "parents": [
        "2515ddc6db8eb49a79f0fe5e67ff09ac7c81eab4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:13 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:15 2008 +1100"
      },
      "message": "module: simplify load_module.\n\nLinus\u0027 recent catch of stack overflow in load_module lead me to look\nat the code.  A couple of helpers to get a section address and get\nobjects from a section can help clean things up a little.\n\n(And in case you\u0027re wondering, the stack size also dropped from 328 to\n284 bytes).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "92b29b86fe2e183d44eb467e5e74a5f718ef2e43",
      "tree": "1bac8a1aa11d47322b66d10ec3a370016d843d06",
      "parents": [
        "b9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0",
        "98d9c66ab07471006fd7910cb16453581c41a3e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (131 commits)\n  tracing/fastboot: improve help text\n  tracing/stacktrace: improve help text\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix bootgraph.pl initcall name regexp\n  tracing/fastboot: fix issues and improve output of bootgraph.pl\n  tracepoints: synchronize unregister static inline\n  tracepoints: tracepoint_synchronize_unregister()\n  ftrace: make ftrace_test_p6nop disassembler-friendly\n  markers: fix synchronize marker unregister static inline\n  tracing/fastboot: add better resolution to initcall debug/tracing\n  trace: add build-time check to avoid overrunning hex buffer\n  ftrace: fix hex output mode of ftrace\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix printk format typo in boot tracer\n  ftrace: return an error when setting a nonexistent tracer\n  ftrace: make some tracers reentrant\n  ring-buffer: make reentrant\n  ring-buffer: move page indexes into page headers\n  tracing/fastboot: only trace non-module initcalls\n  ftrace: move pc counter in irqtrace\n  ...\n\nManually fix conflicts:\n - init/main.c: initcall tracing\n - kernel/module.c: verbose level vs tracepoints\n - scripts/bootgraph.pl: fallout from cherry-picking commits.\n"
    },
    {
      "commit": "346e15beb5343c2eb8216d820f2ed8f150822b08",
      "tree": "6433cf2980bbfbed4a9482c5edb156fc8371e071",
      "parents": [
        "33376c1c043c05077b4ac79c33804266f6c45e49"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Aug 12 16:46:19 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:47 2008 -0700"
      },
      "message": "driver core: basic infrastructure for per-module dynamic debug messages\n\nBase infrastructure to enable per-module debug messages.\n\nI\u0027ve introduced CONFIG_DYNAMIC_PRINTK_DEBUG, which when enabled centralizes\ncontrol of debugging statements on a per-module basis in one /proc file,\ncurrently, \u003cdebugfs\u003e/dynamic_printk/modules. When, CONFIG_DYNAMIC_PRINTK_DEBUG,\nis not set, debugging statements can still be enabled as before, often by\ndefining \u0027DEBUG\u0027 for the proper compilation unit. Thus, this patch set has no\naffect when CONFIG_DYNAMIC_PRINTK_DEBUG is not set.\n\nThe infrastructure currently ties into all pr_debug() and dev_dbg() calls. That\nis, if CONFIG_DYNAMIC_PRINTK_DEBUG is set, all pr_debug() and dev_dbg() calls\ncan be dynamically enabled/disabled on a per-module basis.\n\nFuture plans include extending this functionality to subsystems, that define \ntheir own debug levels and flags.\n\nUsage:\n\nDynamic debugging is controlled by the debugfs file, \n\u003cdebugfs\u003e/dynamic_printk/modules. This file contains a list of the modules that\ncan be enabled. The format of the file is as follows:\n\n\t\u003cmodule_name\u003e \u003cenabled\u003d0/1\u003e\n\t\t.\n\t\t.\n\t\t.\n\n\t\u003cmodule_name\u003e : Name of the module in which the debug call resides\n\t\u003cenabled\u003d0/1\u003e : whether the messages are enabled or not\n\nFor example:\n\n\tsnd_hda_intel enabled\u003d0\n\tfixup enabled\u003d1\n\tdriver enabled\u003d0\n\nEnable a module:\n\n\t$echo \"set enabled\u003d1 \u003cmodule_name\u003e\" \u003e dynamic_printk/modules\n\nDisable a module:\n\n\t$echo \"set enabled\u003d0 \u003cmodule_name\u003e\" \u003e dynamic_printk/modules\n\nEnable all modules:\n\n\t$echo \"set enabled\u003d1 all\" \u003e dynamic_printk/modules\n\nDisable all modules:\n\n\t$echo \"set enabled\u003d0 all\" \u003e dynamic_printk/modules\n\nFinally, passing \"dynamic_printk\" at the command line enables\ndebugging for all modules. This mode can be turned off via the above\ndisable command.\n\n[gkh: minor cleanups and tweaks to make the build work quietly]\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "97e1c18e8d17bd87e1e383b2e9d9fc740332c8e2",
      "tree": "5c6bfce8bacf04c2993a0029788a1370a483afa6",
      "parents": [
        "e7f2f9918c0e97aa98ba147ca387e2c7238f0711"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Jul 18 12:16:16 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:28:28 2008 +0200"
      },
      "message": "tracing: Kernel Tracepoints\n\nImplementation of kernel tracepoints. Inspired from the Linux Kernel\nMarkers. Allows complete typing verification by declaring both tracing\nstatement inline functions and probe registration/unregistration static\ninline functions within the same macro \"DEFINE_TRACE\". No format string\nis required. See the tracepoint Documentation and Samples patches for\nusage examples.\n\nTaken from the documentation patch :\n\n\"A tracepoint placed in code provides a hook to call a function (probe)\nthat you can provide at runtime. A tracepoint can be \"on\" (a probe is\nconnected to it) or \"off\" (no probe is attached). When a tracepoint is\n\"off\" it has no effect, except for adding a tiny time penalty (checking\na condition for a branch) and space penalty (adding a few bytes for the\nfunction call at the end of the instrumented function and adds a data\nstructure in a separate section).  When a tracepoint is \"on\", the\nfunction you provide is called each time the tracepoint is executed, in\nthe execution context of the caller. When the function provided ends its\nexecution, it returns to the caller (continuing from the tracepoint\nsite).\n\nYou can put tracepoints at important locations in the code. They are\nlightweight hooks that can pass an arbitrary number of parameters, which\nprototypes are described in a tracepoint declaration placed in a header\nfile.\"\n\nAddition and removal of tracepoints is synchronized by RCU using the\nscheduler (and preempt_disable) as guarantees to find a quiescent state\n(this is really RCU \"classic\"). The update side uses rcu_barrier_sched()\nwith call_rcu_sched() and the read/execute side uses\n\"preempt_disable()/preempt_enable()\".\n\nWe make sure the previous array containing probes, which has been\nscheduled for deletion by the rcu callback, is indeed freed before we\nproceed to the next update. It therefore limits the rate of modification\nof a single tracepoint to one update per RCU period. The objective here\nis to permit fast batch add/removal of probes on _different_\ntracepoints.\n\nChangelog :\n- Use #name \":\" #proto as string to identify the tracepoint in the\n  tracepoint table. This will make sure not type mismatch happens due to\n  connexion of a probe with the wrong type to a tracepoint declared with\n  the same name in a different header.\n- Add tracepoint_entry_free_old.\n- Change __TO_TRACE to get rid of the \u0027i\u0027 iterator.\n\nMasami Hiramatsu \u003cmhiramat@redhat.com\u003e :\nTested on x86-64.\n\nPerformance impact of a tracepoint : same as markers, except that it\nadds about 70 bytes of instructions in an unlikely branch of each\ninstrumented function (the for loop, the stack setup and the function\ncall). It currently adds a memory read, a test and a conditional branch\nat the instrumentation site (in the hot path). Immediate values will\neventually change this into a load immediate, test and branch, which\nremoves the memory read which will make the i-cache impact smaller\n(changing the memory read for a load immediate removes 3-4 bytes per\nsite on x86_32 (depending on mov prefixes), or 7-8 bytes on x86_64, it\nalso saves the d-cache hit).\n\nAbout the performance impact of tracepoints (which is comparable to\nmarkers), even without immediate values optimizations, tests done by\nHideo Aoki on ia64 show no regression. His test case was using hackbench\non a kernel where scheduler instrumentation (about 5 events in code\nscheduler code) was added.\n\nQuoting Hideo Aoki about Markers :\n\nI evaluated overhead of kernel marker using linux-2.6-sched-fixes git\ntree, which includes several markers for LTTng, using an ia64 server.\n\nWhile the immediate trace mark feature isn\u0027t implemented on ia64, there\nis no major performance regression. So, I think that we don\u0027t have any\nissues to propose merging marker point patches into Linus\u0027s tree from\nthe viewpoint of performance impact.\n\nI prepared two kernels to evaluate. The first one was compiled without\nCONFIG_MARKERS. The second one was enabled CONFIG_MARKERS.\n\nI downloaded the original hackbench from the following URL:\nhttp://devresources.linux-foundation.org/craiger/hackbench/src/hackbench.c\n\nI ran hackbench 5 times in each condition and calculated the average and\ndifference between the kernels.\n\n    The parameter of hackbench: every 50 from 50 to 800\n    The number of CPUs of the server: 2, 4, and 8\n\nBelow is the results. As you can see, major performance regression\nwasn\u0027t found in any case. Even if number of processes increases,\ndifferences between marker-enabled kernel and marker- disabled kernel\ndoesn\u0027t increase. Moreover, if number of CPUs increases, the differences\ndoesn\u0027t increase either.\n\nCuriously, marker-enabled kernel is better than marker-disabled kernel\nin more than half cases, although I guess it comes from the difference\nof memory access pattern.\n\n* 2 CPUs\n\nNumber of | without      | with         | diff     | diff    |\nprocesses | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |\n--------------------------------------------------------------\n       50 |      4.811   |       4.872  |  +0.061  |  +1.27  |\n      100 |      9.854   |      10.309  |  +0.454  |  +4.61  |\n      150 |     15.602   |      15.040  |  -0.562  |  -3.6   |\n      200 |     20.489   |      20.380  |  -0.109  |  -0.53  |\n      250 |     25.798   |      25.652  |  -0.146  |  -0.56  |\n      300 |     31.260   |      30.797  |  -0.463  |  -1.48  |\n      350 |     36.121   |      35.770  |  -0.351  |  -0.97  |\n      400 |     42.288   |      42.102  |  -0.186  |  -0.44  |\n      450 |     47.778   |      47.253  |  -0.526  |  -1.1   |\n      500 |     51.953   |      52.278  |  +0.325  |  +0.63  |\n      550 |     58.401   |      57.700  |  -0.701  |  -1.2   |\n      600 |     63.334   |      63.222  |  -0.112  |  -0.18  |\n      650 |     68.816   |      68.511  |  -0.306  |  -0.44  |\n      700 |     74.667   |      74.088  |  -0.579  |  -0.78  |\n      750 |     78.612   |      79.582  |  +0.970  |  +1.23  |\n      800 |     85.431   |      85.263  |  -0.168  |  -0.2   |\n--------------------------------------------------------------\n\n* 4 CPUs\n\nNumber of | without      | with         | diff     | diff    |\nprocesses | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |\n--------------------------------------------------------------\n       50 |      2.586   |       2.584  |  -0.003  |  -0.1   |\n      100 |      5.254   |       5.283  |  +0.030  |  +0.56  |\n      150 |      8.012   |       8.074  |  +0.061  |  +0.76  |\n      200 |     11.172   |      11.000  |  -0.172  |  -1.54  |\n      250 |     13.917   |      14.036  |  +0.119  |  +0.86  |\n      300 |     16.905   |      16.543  |  -0.362  |  -2.14  |\n      350 |     19.901   |      20.036  |  +0.135  |  +0.68  |\n      400 |     22.908   |      23.094  |  +0.186  |  +0.81  |\n      450 |     26.273   |      26.101  |  -0.172  |  -0.66  |\n      500 |     29.554   |      29.092  |  -0.461  |  -1.56  |\n      550 |     32.377   |      32.274  |  -0.103  |  -0.32  |\n      600 |     35.855   |      35.322  |  -0.533  |  -1.49  |\n      650 |     39.192   |      38.388  |  -0.804  |  -2.05  |\n      700 |     41.744   |      41.719  |  -0.025  |  -0.06  |\n      750 |     45.016   |      44.496  |  -0.520  |  -1.16  |\n      800 |     48.212   |      47.603  |  -0.609  |  -1.26  |\n--------------------------------------------------------------\n\n* 8 CPUs\n\nNumber of | without      | with         | diff     | diff    |\nprocesses | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |\n--------------------------------------------------------------\n       50 |      2.094   |       2.072  |  -0.022  |  -1.07  |\n      100 |      4.162   |       4.273  |  +0.111  |  +2.66  |\n      150 |      6.485   |       6.540  |  +0.055  |  +0.84  |\n      200 |      8.556   |       8.478  |  -0.078  |  -0.91  |\n      250 |     10.458   |      10.258  |  -0.200  |  -1.91  |\n      300 |     12.425   |      12.750  |  +0.325  |  +2.62  |\n      350 |     14.807   |      14.839  |  +0.032  |  +0.22  |\n      400 |     16.801   |      16.959  |  +0.158  |  +0.94  |\n      450 |     19.478   |      19.009  |  -0.470  |  -2.41  |\n      500 |     21.296   |      21.504  |  +0.208  |  +0.98  |\n      550 |     23.842   |      23.979  |  +0.137  |  +0.57  |\n      600 |     26.309   |      26.111  |  -0.198  |  -0.75  |\n      650 |     28.705   |      28.446  |  -0.259  |  -0.9   |\n      700 |     31.233   |      31.394  |  +0.161  |  +0.52  |\n      750 |     34.064   |      33.720  |  -0.344  |  -1.01  |\n      800 |     36.320   |      36.114  |  -0.206  |  -0.57  |\n--------------------------------------------------------------\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: \u0027Peter Zijlstra\u0027 \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f606ddf42fd4edc558eeb48bfee66d2c591571d2",
      "tree": "193f00db121201255b2629fce43b99a53c4ec735",
      "parents": [
        "99764fa4ceeecba8b9e0a8a5565b418a2e94f83b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Jul 23 21:28:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:24 2008 -0700"
      },
      "message": "remove the v850 port\n\nTrying to compile the v850 port brings many compile errors, one of them exists\nsince at least kernel 2.6.19.\n\nThere also seems to be noone willing to bring this port back into a usable\nstate.\n\nThis patch therefore removes the v850 port.\n\nIf anyone ever decides to revive the v850 port the code will still be\navailable from older kernels, and it wouldn\u0027t be impossible for the port to\nreenter the kernel if it would become actively maintained again.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f0f2a334bc38b61a9afca951185cd3844ee709d",
      "tree": "c73089563f51c818ed97dec463408d6ac9cf1e8e",
      "parents": [
        "f7f5b67557eac1131ba6532522e3c50eced34238"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jul 22 19:24:27 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:27 2008 +1000"
      },
      "message": "module: turn longs into ints for module sizes\n\nThis shrinks module.o and each *.ko file.\n\nAnd finally, structure members which hold length of module\ncode (four such members there) and count of symbols\nare converted from longs to ints.\n\nWe cannot possibly have a module where 32 bits won\u0027t\nbe enough to hold such counts.\n\nFor one, module loading checks module size for sanity\nbefore loading, so such insanely big module will fail\nthat test first.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f7f5b67557eac1131ba6532522e3c50eced34238",
      "tree": "8547b900f4bc40f69673c78b261ac5b44423fbfb",
      "parents": [
        "af5406895a05720a879dc33e2f4878fa503e81b3"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jul 22 19:24:26 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:27 2008 +1000"
      },
      "message": "Shrink struct module: CONFIG_UNUSED_SYMBOLS ifdefs\n\nmodule.c and module.h conatains code for finding\nexported symbols which are declared with EXPORT_UNUSED_SYMBOL,\nand this code is compiled in even if CONFIG_UNUSED_SYMBOLS is not set\nand thus there can be no EXPORT_UNUSED_SYMBOLs in modules anyway\n(because EXPORT_UNUSED_SYMBOL(x) are compiled out to nothing then).\n\nThis patch adds required #ifdefs.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "af5406895a05720a879dc33e2f4878fa503e81b3",
      "tree": "d9e2fb17c1215272a87fcbd010177bd08d16ccbd",
      "parents": [
        "dafd0940c96fec67974a88ed8e6b8ba3160394cd"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Jul 22 19:24:26 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:26 2008 +1000"
      },
      "message": "module: reorder struct module to save space on 64 bit builds\n\nreorder struct module to save space on 64 bit builds.\nsaves 1 cacheline_size  (128 on default x86_64 \u0026 64 on AMD\nOpteron/athlon) when CONFIG_MODULE_UNLOAD\u003dy.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ea01e798e2d27fd04142e0473ca36570fa9d9218",
      "tree": "717ad87d4c38dd6bed15ba4dfdfaea8f33411367",
      "parents": [
        "a58730c42174672fe0012a4edbe3e38f94ef2bad"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Mar 13 09:02:17 2008 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:14:59 2008 +1000"
      },
      "message": "module: reduce module image and resident size\n\nResulting reduction (x86-64, gcc 4.1.2) with my (special purpose, i.e.\nmuch reduced) configurations:\n- 16k kernel resident size\n- 180k module resident size\n- 10k module image size\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a58730c42174672fe0012a4edbe3e38f94ef2bad",
      "tree": "6cd01098614ea8fc00f5eba462a208cc5a038d2a",
      "parents": [
        "e4c576b911e364737b1bf4f5bfdab1c440713f26"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Mar 13 09:03:44 2008 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:14:59 2008 +1000"
      },
      "message": "module: make module_sect_attrs private to kernel/module.c\n\nNo-one else is using these afaics.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1387d0d8b002c8ce90412fb2695ec6085eb8ce01",
      "tree": "3c0de774d57eb9896c720f8afd3c58d0144c8ae1",
      "parents": [
        "2ebda63b09a4e2232effb7a37e609651fe221090"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Feb 14 19:31:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 20:58:04 2008 -0800"
      },
      "message": "fix module_update_markers() compile error\n\nThis patch fixes the following compile error with CONFIG_MODULES\u003dn\ncaused by commit fb40bd78b0f91b274879cf5db8facd1e04b6052e:\n\n/home/bunk/linux/kernel-2.6/git/linux-2.6/kernel/marker.c: In function `marker_update_probes\u0027:\n/home/bunk/linux/kernel-2.6/git/linux-2.6/kernel/marker.c:627: error: too few arguments to function `module_update_markers\u0027\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\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": "fb40bd78b0f91b274879cf5db8facd1e04b6052e",
      "tree": "2347ccb5ad07f58ab5a4eb41174bb7b54d5f0c5b",
      "parents": [
        "9170d2f6e1dc4d79650fbf492d1cd45291c66504"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Wed Feb 13 15:03:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 16:21:20 2008 -0800"
      },
      "message": "Linux Kernel Markers: support multiple probes\n\nRCU style multiple probes support for the Linux Kernel Markers.  Common case\n(one probe) is still fast and does not require dynamic allocation or a\nsupplementary pointer dereference on the fast path.\n\n- Move preempt disable from the marker site to the callback.\n\nSince we now have an internal callback, move the preempt disable/enable to the\ncallback instead of the marker site.\n\nSince the callback change is done asynchronously (passing from a handler that\nsupports arguments to a handler that does not setup the arguments is no\narguments are passed), we can safely update it even if it is outside the\npreempt disable section.\n\n- Move probe arm to probe connection. Now, a connected probe is automatically\n  armed.\n\nRemove MARK_MAX_FORMAT_LEN, unused.\n\nThis patch modifies the Linux Kernel Markers API : it removes the probe\n\"arm/disarm\" and changes the probe function prototype : it now expects a\nva_list * instead of a \"...\".\n\nIf we want to have more than one probe connected to a marker at a given\ntime (LTTng, or blktrace, ssytemtap) then we need this patch. Without it,\nconnecting a second probe handler to a marker will fail.\n\nIt allow us, for instance, to do interesting combinations :\n\nDo standard tracing with LTTng and, eventually, to compute statistics\nwith SystemTAP, or to have a special trigger on an event that would call\na systemtap script which would stop flight recorder tracing.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Mike Mason \u003cmmlnx@us.ibm.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: David Smith \u003cdsmith@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92dfc9dc7ba63134f721b6e745dbdcfc13ea341b",
      "tree": "aa959d2d5ba1819651888601e4d917b01ddcc88c",
      "parents": [
        "6d7623943c905efae327933bc5ee0b2f78e15f56"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 04:18:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "fix \"modules: make module_address_lookup() safe\"\n\nGet the constness right, avoid nasty cast.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\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": "5ea293a9048d3a58cb0c840fa719d85ad14cba47",
      "tree": "88d1dd1eece2cfcbd858ff2c00fb0240dcfab3c7",
      "parents": [
        "03bc26cfefd6db756e6bc7fcda11dc17ada7be16",
        "d3883ecebbf9e095b9e379dabbbe8b2c1ee7a41c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:46:14 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 29 22:46:14 2008 +1100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (79 commits)\n  Remove references to \"make dep\"\n  kconfig: document use of HAVE_*\n  Introduce new section reference annotations tags: __ref, __refdata, __refconst\n  kbuild: warn about ld added unique sections\n  kbuild: add verbose option to Section mismatch reporting in modpost\n  kconfig: tristate choices with mixed tristate and boolean values\n  asm-generic/vmlix.lds.h: simplify __mem{init,exit}* dependencies\n  remove __attribute_used__\n  kbuild: support ARCH\u003dx86 in buildtar\n  kconfig: remove \"enable\"\n  kbuild: simplified warning report in modpost\n  kbuild: introduce a few helpers in modpost\n  kbuild: use simpler section mismatch warnings in modpost\n  kbuild: link vmlinux.o before kallsyms passes\n  kbuild: introduce new option to enhance section mismatch analysis\n  Use separate sections for __dev/__cpu/__mem code/data\n  compiler.h: introduce __section()\n  all archs: consolidate init and exit sections in vmlinux.lds.h\n  kbuild: check section names consistently in modpost\n  kbuild: introduce blacklisting in modpost\n  ...\n"
    },
    {
      "commit": "6dd06c9fbe025f542bce4cdb91790c0f91962722",
      "tree": "5c946eb93f30c64fd435bdd6d1064880ef21557a",
      "parents": [
        "bb9d3d56e792d2619cc0903df4ac01d86ac1261d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:22 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:23 2008 +1100"
      },
      "message": "module: make module_address_lookup safe\n\nmodule_address_lookup releases preemption then returns a pointer into\nthe module space.  The only user (kallsyms) copies the result, so just\ndo that under the preempt disable.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\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": "c63469a3985a9771c18a916b8d42845d044ea0b1",
      "tree": "7d54c8741aec9d71864203ce430d289d40c4c975",
      "parents": [
        "cbe9c595f1de2e2a98403be2c14bfbc2486e84c4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Nov 28 12:23:18 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:35 2008 -0800"
      },
      "message": "Driver core: move the driver specific module code into the driver core\n\nThe module driver specific code should belong in the driver core, not in\nthe kernel/ directory.  So move this code.  This is done in preparation\nfor some struct device_driver rework that should be confined to the\ndriver core code only.\n\nThis also lets us keep from exporting these functions, as no external\ncode should ever be calling it.\n\nThanks to Andrew Morton for the !CONFIG_MODULES fix.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7405c1e15edfe43b137bfbc5882f1af34d6d414d",
      "tree": "94093ac6ece6e0a33f504e6c7778a2c443dae958",
      "parents": [
        "081248de0a0288a0ce4e1447a07ccf56aa4fae01"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 10:39:50 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:16 2008 -0800"
      },
      "message": "kset: convert /sys/module to use kset_create\n\nDynamically create the kset instead of declaring it statically.  We also\nrename module_subsys to module_kset to catch all users of the variable.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8256e47cdc8923e9959eb1d7f95d80da538add80",
      "tree": "4702aa3ad7c9025f70314f1146e551b4e1dfcbb2",
      "parents": [
        "09cadedbdc01f1a4bea1f427d4fb4642eaa19da9"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Oct 18 23:41:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:54 2007 -0700"
      },
      "message": "Linux Kernel Markers\n\nThe marker activation functions sits in kernel/marker.c.  A hash table is used\nto keep track of the registered probes and armed markers, so the markers\nwithin a newly loaded module that should be active can be activated at module\nload time.\n\nmarker_query has been removed. marker_get_first, marker_get_next and\nmarker_release should be used as iterators on the markers.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Mike Mason \u003cmmlnx@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": "6d76013381ed28979cd122eb4b249a88b5e384fa",
      "tree": "f37571fad8690dead2344d1aa0ea86d5f778181f",
      "parents": [
        "ae0b78d09dc1d521551e225a9831aba1eded518f"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Oct 16 23:26:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:50 2007 -0700"
      },
      "message": "Add /sys/module/name/notes\n\nThis patch adds the /sys/module/\u003cname\u003e/notes/ magic directory, which has a\nfile for each allocated SHT_NOTE section that appears in \u003cname\u003e.ko.  This\nis the counterpart for each module of /sys/kernel/notes for vmlinux.\nReading this delivers the contents of the module\u0027s SHT_NOTE sections.  This\nlets userland easily glean any detailed information about that module\u0027s\nbuild that was stored there at compile time (e.g.  by ld --build-id).\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af49d9248fca6f26cbdb01918334f71d9040df80",
      "tree": "5d6a7f4d5ca55ff17fbfc98cacac37be62c7a4a3",
      "parents": [
        "d9c9bef1345e5d9258febce2a37e4d40319fa728"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 16 23:26:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:49 2007 -0700"
      },
      "message": "Remove \"unsafe\" from module struct\n\nAdrian Bunk points out that \"unsafe\" was used to mark modules touched by\nthe deprecated MOD_INC_USE_COUNT interface, which has long gone.  It\u0027s time\nto remove the member from the module structure, as well.\n\nIf you want a module which can\u0027t unload, don\u0027t register an exit function.\n\n(Vlad Yasevich says SCTP is now safe to unload, so just remove the\n__unsafe there).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nCc: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a3021f4e249fbdb5f30d614707b5e02022e4c9b",
      "tree": "c01b80fa03dbb4a853b46f182864384736a54088",
      "parents": [
        "9aacd599342fdfc1fb9422f37e900609b7a46249"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sun Jul 15 23:39:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:42 2007 -0700"
      },
      "message": "Remove unnecessary includes of spinlock.h under include/linux\n\nRemove the obviously unnecessary includes of \u003clinux/spinlock.h\u003e under the\ninclude/linux/ directory, and fix the couple errors that are introduced as\na result of that.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "108f39a1b3b1e4b28ca8cc156f06171445499d21",
      "tree": "73eecb1b29b9ba256ae7bc11babfd2e5b34eb5a1",
      "parents": [
        "98091696653e8ac32a2653589923acd8198777ac"
      ],
      "author": {
        "name": "Rene Herman",
        "email": "rene.herman@gmail.com",
        "time": "Thu May 10 22:22:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:35 2007 -0700"
      },
      "message": "module_author: don\u0027t advise putting in an email address\n\nmodule_author: don\u0027t advise putting in an email address\n\nIt\u0027s information that\u0027s easily outdated and easily mistaken for a driver\ncontact which is a problem especially for modules with multiple current and\nnon-current authors as well as for modules with a maintainer who may not\neven be a module author.\n\nSigned-off-by: Rene Herman \u003crene.herman@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": "e61a1c1c4f240cec61300c8f27518c3e47570fd4",
      "tree": "479d3b921577eaa642c4b1071acfeb4cb8ecf8ab",
      "parents": [
        "b52f52a093bb1e841e014c2087b5bee7162da413"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Wed May 09 02:35:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "Allow arch to initialize arch field of the module structure\n\nThis will later allow an arch to add module specific information via linker\ngenerated tables instead of poking directly in the module object structure.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5c43dae7ae38c2a6b3e9a819bcf45f010bf6a4a",
      "tree": "b30da7a4541e803e35a6a74ad33e836442c3f6c8",
      "parents": [
        "9d65cb4a1718a072898c7a57a3bc61b2dc4bcd4d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Fix race between cat /proc/slab_allocators and rmmod\n\nSame story as with cat /proc/*/wchan race vs rmmod race, only\n/proc/slab_allocators want more info than just symbol name.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: 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": "9d65cb4a1718a072898c7a57a3bc61b2dc4bcd4d",
      "tree": "9e3fd1c9e61e8ed16959d115a9a3f6f7eb0bbf21",
      "parents": [
        "ffb45122766db220d0bf3d01848d575fbbcb6430"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Fix race between cat /proc/*/wchan and rmmod et al\n\nkallsyms_lookup() can go iterating over modules list unprotected which is OK\nfor emergency situations (oops), but not OK for regular stuff like\n/proc/*/wchan.\n\nIntroduce lookup_symbol_name()/lookup_module_symbol_name() which copy symbol\nname into caller-supplied buffer or return -ERANGE.  All copying is done with\nmodule_mutex held, so...\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\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": "ea07890a680273b25127129fb555aac0d9324bea",
      "tree": "b0742aa5dd90792dc10be3563c1181582d0f5d9e",
      "parents": [
        "ae84e324709d6320ed8c1fd7b1736fcbaf26df95"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Fix race between rmmod and cat /proc/kallsyms\n\nmodule_get_kallsym() leaks \"struct module *\" outside of module_mutex which is\nno-no, because module can dissapear right after mutex unlock.\n\nCopy all needed information from inside module_mutex into caller-supplied\nspace.\n\n[bunk@stusta.de: is_exported() can now become static]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae84e324709d6320ed8c1fd7b1736fcbaf26df95",
      "tree": "bb3b623f2fd491771c716957622a72e86e9582dd",
      "parents": [
        "55955aad7c09e4d93029d0cf2d360b41891f2fe4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Simplify module_get_kallsym() by dropping length arg\n\nmodule_get_kallsym() could in theory truncate module symbol name to fit in\nbuffer, but nobody does this.  Always use KSYM_NAME_LEN + 1 bytes for name.\n\nSuggested by lg^WRusty.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: 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": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\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": "270a6c4cad809e92d7b81adde92d0b3d94eeb8ee",
      "tree": "b85706ef52535fb2b421b475472b7071b1572590",
      "parents": [
        "80f745fb1b0fb11383cbb8df2c36aaaa0399b6e6"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Jan 18 13:26:15 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:12 2007 -0800"
      },
      "message": "/sys/modules/*/holders\n\n  /sys/module/usbcore/\n  |-- drivers\n  |   |-- usb:hub -\u003e ../../../subsystem/usb/drivers/hub\n  |   |-- usb:usb -\u003e ../../../subsystem/usb/drivers/usb\n  |   `-- usb:usbfs -\u003e ../../../subsystem/usb/drivers/usbfs\n  |-- holders\n  |   |-- ehci_hcd -\u003e ../../../module/ehci_hcd\n  |   |-- uhci_hcd -\u003e ../../../module/uhci_hcd\n  |   |-- usb_storage -\u003e ../../../module/usb_storage\n  |   `-- usbhid -\u003e ../../../module/usbhid\n  |-- initstate\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f30c53a873d0d227493197064b8886af2d57bbd6",
      "tree": "cd051f14effbbb015a1bae6fe5bfabcf14037f13",
      "parents": [
        "c744aeae9d173a953b771a7ad5c872f91fa99dec"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Mon Jan 15 20:22:02 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:12 2007 -0800"
      },
      "message": "MODULES: add the module name for built in kernel drivers\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7664c5a1da4711bb6383117f51b94c8dc8f3f1cd",
      "tree": "79a2e2a4626c66a411488b5ceb554b011d862a7d",
      "parents": [
        "c48f70c3d046f021b1c22438604ef2a583380eca"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Fri Dec 08 02:36:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:39 2006 -0800"
      },
      "message": "[PATCH] Generic BUG implementation\n\nThis patch adds common handling for kernel BUGs, for use by architectures as\nthey wish.  The code is derived from arch/powerpc.\n\nThe advantages of having common BUG handling are:\n - consistent BUG reporting across architectures\n - shared implementation of out-of-line file/line data\n - implement CONFIG_DEBUG_BUGVERBOSE consistently\n\nThis means that in inline impact of BUG is just the illegal instruction\nitself, which is an improvement for i386 and x86-64.\n\nA BUG is represented in the instruction stream as an illegal instruction,\nwhich has file/line information associated with it.  This extra information is\nstored in the __bug_table section in the ELF file.\n\nWhen the kernel gets an illegal instruction, it first confirms it might\npossibly be from a BUG (ie, in kernel mode, the right illegal instruction).\nIt then calls report_bug().  This searches __bug_table for a matching\ninstruction pointer, and if found, prints the corresponding file/line\ninformation.  If report_bug() determines that it wasn\u0027t a BUG which caused the\ntrap, it returns BUG_TRAP_TYPE_NONE.\n\nSome architectures (powerpc) implement WARN using the same mechanism; if the\nillegal instruction was the result of a WARN, then report_bug(Q) returns\nCONFIG_DEBUG_BUGVERBOSE; otherwise it returns BUG_TRAP_TYPE_BUG.\n\nlib/bug.c keeps a list of loaded modules which can be searched for __bug_table\nentries.  The architecture must call\nmodule_bug_finalize()/module_bug_cleanup() from its corresponding\nmodule_finalize/cleanup functions.\n\nUnsetting CONFIG_DEBUG_BUGVERBOSE will reduce the kernel size by some amount.\nAt the very least, filename and line information will not be recorded for each\nbut, but architectures may decide to store no extra information per BUG at\nall.\n\nUnfortunately, gcc doesn\u0027t have a general way to mark an asm() as noreturn, so\narchitectures will generally have to include an infinite loop (or similar) in\nthe BUG code, so that gcc knows execution won\u0027t continue beyond that point.\ngcc does have a __builtin_trap() operator which may be useful to achieve the\nsame effect, unfortunately it cannot be used to actually implement the BUG\nitself, because there\u0027s no way to get the instruction\u0027s address for use in\ngenerating the __bug_table entry.\n\n[randy.dunlap@oracle.com: Handle BUG\u003dn, GENERIC_BUG\u003dn to prevent build errors]\n[bunk@stusta.de: include/linux/bug.h must always #include \u003clinux/module.h]\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Hugh Dickens \u003chugh@veritas.com\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\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": "f6a570333e554b48ad589e7137c77c57809eee81",
      "tree": "68dd6d5c8fe537a19a84a4189202f5cf70925c17",
      "parents": [
        "2b5f6dcce5bf94b9b119e9ed8d537098ec61c3d2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 18 01:47:25 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:22 2006 -0500"
      },
      "message": "[PATCH] severing module.h-\u003esched.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e17e0f51aeea4e59c7e450a1c0f26605b91c1260",
      "tree": "eb177cbfe18d433ab115222bfe53f1098de844c2",
      "parents": [
        "c957b32406b73ed66d0f20ebab0cab25c848105d"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Nov 24 12:15:25 2006 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:52:02 2006 -0800"
      },
      "message": "Driver core: show drivers in /sys/module/\n\nShow the drivers, which belong to the module:\n  $ ls -l /sys/module/usbcore/drivers/\n  hub -\u003e ../../../bus/usb/drivers/hub\n  usb -\u003e ../../../bus/usb/drivers/usb\n  usbfs -\u003e ../../../bus/usb/drivers/usbfs\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "fa3ba2e81ea23416272a22009bba95954c81969c",
      "tree": "cd1ab15dcf1130a4920ca9396cb91aaff4b0dcf6",
      "parents": [
        "3719bc5c22c9025bf1c909fe8b527ebf1de9a153"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@gmail.com",
        "time": "Wed Oct 11 01:21:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:21 2006 -0700"
      },
      "message": "[PATCH] fix Module taint flags listing in Oops/panic\n\nModule taint flags listing in Oops/panic has a couple of issues:\n\n* taint_flags() doesn\u0027t null-terminate the buffer after printing the flags\n\n* per-module taints are only set if the kernel is not already tainted\n  (with that particular flag) \u003d\u003e only the first offending module gets its\n  taint info correctly updated\n\nSome additional changes:\n\n* \u0027license_gplok\u0027 is no longer needed - equivalent to !(taints \u0026\n  TAINT_PROPRIETARY_MODULE) - so we can drop it from struct module *\n  exporting module taint info via /proc/module:\n\npwc 88576 0 - Live 0xf8c32000\nevilmod 6784 1 pwc, Live 0xf8bbf000 (PF)\n\nSigned-off-by: Florin Malita \u003cfmalita@gmail.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2bc2d61a9638dab670d8361e928d1a5a291173ef",
      "tree": "f5d4cf9d3bac97f3da0bd5eb03e76797d47070cd",
      "parents": [
        "a58cbd7c249f3079dd62d6391a33b9f43f2bfbef"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Oct 02 02:17:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:12 2006 -0700"
      },
      "message": "[PATCH] list module taint flags in Oops/panic\n\nWhen listing loaded modules during an oops or panic, also list each\nmodule\u0027s Tainted flags if non-zero (P: Proprietary or F: Forced load only).\n\nIf a module is did not taint the kernel, it is just listed like\n\tusbcore\nbut if it did taint the kernel, it is listed like\n\twizmodem(PF)\n\nExample:\n[ 3260.121718] Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:\n[ 3260.121729]  [\u003cffffffff8804c099\u003e] :dump_test:proc_dump_test+0x99/0xc8\n[ 3260.121742] PGD fe8d067 PUD 264a6067 PMD 0\n[ 3260.121748] Oops: 0002 [1] SMP\n[ 3260.121753] CPU 1\n[ 3260.121756] Modules linked in: dump_test(P) snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device ide_cd generic ohci1394 snd_hda_intel snd_hda_codec snd_pcm snd_timer snd ieee1394 snd_page_alloc piix ide_core arcmsr aic79xx scsi_transport_spi usblp\n[ 3260.121785] Pid: 5556, comm: bash Tainted: P      2.6.18-git10 #1\n\n[Alternatively, I can look into listing tainted flags with \u0027lsmod\u0027,\nbut that won\u0027t help in oopsen/panics so much.]\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04b1db9fd7eea63c9663072feece616ea41b0a79",
      "tree": "70b92bf4040acbad744970b82432caac768c2658",
      "parents": [
        "3b5e0cbb4fb6e2a599d72652f56a9acb6af16bcf"
      ],
      "author": {
        "name": "Ian S. Nelson",
        "email": "nelsonian@comcast.net",
        "time": "Fri Sep 29 02:01:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:23 2006 -0700"
      },
      "message": "[PATCH] /sys/modules: allow full length section names\n\nI\u0027ve been using systemtap for some debugging and I noticed that it can\u0027t\nprobe a lot of modules.  Turns out it\u0027s kind of silly, the sections section\nof /sys/module is limited to 32byte filenames and many of the actual\nsections are a a bit longer than that.\n\n[akpm@osdl.org: rewrite to use dymanic allocation]\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "187afbed1814ea0851bf30bacbf807217dd7864b",
      "tree": "3e60ca1e1edf5feac14bbad0ba0fe087a6229853",
      "parents": [
        "2908d778ab3e244900c310974e1fc1c69066e450"
      ],
      "author": {
        "name": "Jon Masters",
        "email": "jcm@redhat.com",
        "time": "Mon Aug 28 17:08:21 2006 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Wed Aug 30 10:47:27 2006 -0400"
      },
      "message": "[SCSI] MODULE_FIRMWARE for binary firmware(s)\n\nRight now, various kernel modules are being migrated over to use\nrequest_firmware in order to pull in binary firmware blobs from userland\nwhen the module is loaded. This makes sense.\n\nHowever, there is right now little mechanism in place to automatically\ndetermine which binary firmware blobs must be included with a kernel in\norder to satisfy the prerequisites of these drivers. This affects\nvendors, but also regular users to a certain extent too.\n\nThe attached patch introduces MODULE_FIRMWARE as a mechanism for\nadvertising that a particular firmware file is to be loaded - it will\nthen show up via modinfo and could be used e.g. when packaging a kernel.\n\nSigned-off-by: Jon Masters \u003cjcm@redhat.com\u003e\n\nComments added in line with all the other MODULE_ tag\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "098c5eea03de4707019a205140296893252b4130",
      "tree": "7fddd3a319c7607db2dd7082dcf3887c3e16b3c1",
      "parents": [
        "329c6e4257d6a89990d72617d91437e2ce59e426"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Fri Jul 14 00:24:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:52 2006 -0700"
      },
      "message": "[PATCH] null-terminate over-long /proc/kallsyms symbols\n\nGot a customer bug report (https://bugzilla.novell.com/190296) about kernel\nsymbols longer than 127 characters which end up in a string buffer that is\nnot NULL terminated, leading to garbage in /proc/kallsyms.  Using strlcpy\nprevents this from happening, even though such symbols still won\u0027t come out\nright.\n\nA better fix would be to not use a fixed-size buffer, but it\u0027s probably not\nworth the trouble.  (Modversion\u0027ed symbols even have a length limit of 60.)\n\n[bunk@stusta.de: build fix]\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\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": "4d435f9d8ff01ae726a2a84edb9c2457787a337e",
      "tree": "c4c65b739187731e89893cd10faf270067c81a56",
      "parents": [
        "93e028148fce0be9787de7fb097fa4c8582b78c1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:00 2006 -0700"
      },
      "message": "[PATCH] lockdep: add is_module_address()\n\nAdd is_module_address() method - to be used by lockdep.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f71d20e961474dde77e6558396efb93d6ac80a4b",
      "tree": "669610f79521fd173c28fc47bef39ecd4cdf52ab",
      "parents": [
        "f5e54d6e53a20cef45af7499e86164f0e0d16bb2"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jun 28 04:26:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] Add EXPORT_UNUSED_SYMBOL and EXPORT_UNUSED_SYMBOL_GPL\n\nTemporarily add EXPORT_UNUSED_SYMBOL and EXPORT_UNUSED_SYMBOL_GPL.  These\nwill be used as a transition measure for symbols that aren\u0027t used in the\nkernel and are on the way out.  When a module uses such a symbol, a warning\nis printk\u0027d at modprobe time.\n\nThe main reason for removing unused exports is size: eacho export takes\nroughly between 100 and 150 bytes of kernel space in the binary.  This\npatch gives users the option to immediately get this size gain via a config\noption.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4552d5dc08b79868829b4be8951b29b07284753f",
      "tree": "7b25695b4c0e1917fc80e8dd4bc494de36320ccc",
      "parents": [
        "2b28592b07223d7fc0691ce3fe57d495dc9cbe3a"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon Jun 26 13:57:28 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:17 2006 -0700"
      },
      "message": "[PATCH] x86_64: reliable stack trace support\n\nThese are the generic bits needed to enable reliable stack traces based\non Dwarf2-like (.eh_frame) unwind information. Subsequent patches will\nenable x86-64 and i386 to make use of this.\n\nThanks to Andi Kleen and Ingo Molnar, who pointed out several possibilities\nfor improvement.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d27e9084b372441dc8c9cf361a965ee58032767",
      "tree": "fa01bec4e62d494e0a3811d7e29b0b263262f42b",
      "parents": [
        "b0904e147f7cbe4be3b4dae49ddccd627bb66f16"
      ],
      "author": {
        "name": "Xose Vazquez Perez",
        "email": "xose.vazquez@gmail.com",
        "time": "Fri Jun 23 02:05:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:03 2006 -0700"
      },
      "message": "[PATCH] module.h: updated comments with a new license\n\n\"Dual MIT/GPL\" is also accepted (kernel/module.c), so updated comments.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cee4cca740d209bcb4b9857baa2253d5ba4e3fbe",
      "tree": "88a23004393ea4a32cad79839479c8e653e401d6",
      "parents": [
        "2edc322d420a4cec8dbc184a1220ecd7fa9f8ae6",
        "9348f0de2d2b541b4ba64fb1f4efee9710a3d731"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "message": "Merge git://git.infradead.org/hdrcleanup-2.6\n\n* git://git.infradead.org/hdrcleanup-2.6: (63 commits)\n  [S390] __FD_foo definitions.\n  Switch to __s32 types in joystick.h instead of C99 types for consistency.\n  Add \u003csys/types.h\u003e to headers included for userspace in \u003clinux/input.h\u003e\n  Move inclusion of \u003clinux/compat.h\u003e out of user scope in asm-x86_64/mtrr.h\n  Remove struct fddi_statistics from user view in \u003clinux/if_fddi.h\u003e\n  Move user-visible parts of drivers/s390/crypto/z90crypt.h to include/asm-s390\n  Revert include/media changes: Mauro says those ioctls are only used in-kernel(!)\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/cramfs_fs.h\u003e\n  Use __uXX types in \u003clinux/i2o_dev.h\u003e, include \u003clinux/ioctl.h\u003e too\n  Remove private struct dx_hash_info from public view in \u003clinux/ext3_fs.h\u003e\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/affs_hardblocks.h\u003e\n  Use __uXX types in \u003clinux/divert.h\u003e for struct divert_blk et al.\n  Use __u32 for elf_addr_t in \u003casm-powerpc/elf.h\u003e, not u32. It\u0027s user-visible.\n  Remove PPP_FCS from user view in \u003clinux/ppp_defs.h\u003e, remove __P mess entirely\n  Use __uXX types in user-visible structures in \u003clinux/nbd.h\u003e\n  Don\u0027t use \u0027u32\u0027 in user-visible struct ip_conntrack_old_tuple.\n  Use __uXX types for S390 DASD volume label definitions which are user-visible\n  S390 BIODASDREADCMB ioctl should use __u64 not u64 type.\n  Remove unneeded inclusion of \u003clinux/time.h\u003e from \u003clinux/ufs_fs.h\u003e\n  Fix private integer types used in V4L2 ioctls.\n  ...\n\nManually resolve conflict in include/linux/mtd/physmap.h\n"
    },
    {
      "commit": "6f18a022fb311f07f3b32f2c0e1b5c9477dc4439",
      "tree": "5c0e66f14e02f53555bfc365098cc7e5eb85c343",
      "parents": [
        "a15bdeef108d282e540e202fc3c3e4bdf9692074"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon May 08 22:40:05 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon May 08 22:40:05 2006 +0100"
      },
      "message": "Finally remove the obnoxious inter_module_xxx()\n\nThis was already a bad plan when I argued against adding it in the first\nplace. Good riddance.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.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": "b55813a2e50088ca30df33fa62aeed5d3adb1796",
      "tree": "be50fe404e94869fe854766e190a5753dbc7dd49",
      "parents": [
        "368d17e068f691dba5a4f122c271db5ec9b2ebd6",
        "9e19bb6d7a0959f5028d46e1ab99c50f0d36eda8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:39:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:39:20 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [NETFILTER] x_table.c: sem2mutex\n  [IPV4]: Aggregate route entries with different TOS values\n  [TCP]: Mark tcp_*mem[] __read_mostly.\n  [TCP]: Set default max buffers from memory pool size\n  [SCTP]: Fix up sctp_rcv return value\n  [NET]: Take RTNL when unregistering notifier\n  [WIRELESS]: Fix config dependencies.\n  [NET]: Fill in a 32-bit hole in struct sock on 64-bit platforms.\n  [NET]: Ensure device name passed to SO_BINDTODEVICE is NULL terminated.\n  [MODULES]: Don\u0027t allow statically declared exports\n  [BRIDGE]: Unaligned accesses in the ethernet bridge\n"
    },
    {
      "commit": "8d3b33f67fdc0fb364a1ef6d8fbbea7c2e4e6c98",
      "tree": "7fc48e7544ea6a6c6a7cc7685612a38f5edc25ae",
      "parents": [
        "c721bccece2b3abca4f7b0b95108e68b78445cec"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Mar 25 03:07:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:52 2006 -0800"
      },
      "message": "[PATCH] Remove MODULE_PARM\n\nMODULE_PARM was actually breaking: recent gcc version optimize them out as\nunused.  It\u0027s time to replace the last users, which are generally in the\nmost unloved drivers anyway.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1a8feed1743ec8d2af1dafa7c5321679f0a3e4f",
      "tree": "6323d9b66be6eb681564a4c82aa262d4bbb3e333",
      "parents": [
        "4dc6d9cc38cea1004a7f827cf76409ae42231fee"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Mar 23 22:07:34 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Mar 24 15:44:58 2006 -0800"
      },
      "message": "[MODULES]: Don\u0027t allow statically declared exports\n\nAdd an extern declaration for exported symbols to make the compiler warn\non symbols declared statically.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "03e88ae1b13dfdc8bbaa59b8198e1ca53aad12ac",
      "tree": "322127d9875129d2e9b1c3cb744b4940bd7d8a47",
      "parents": [
        "b87ba0a33a634c9a8e3609702122a04034a0688d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 16 13:50:23 2006 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 20 13:42:58 2006 -0800"
      },
      "message": "[PATCH] fix module sysfs files reference counting\n\nThe module files, refcnt, version, and srcversion did not properly\nincrement the owner\u0027s module reference count, allowing the modules to\nbe removed while the files were open, causing oopses.\n\nThis patch fixes this, and also fixes the problem that the version and\nsrcversion files were not showing up, unless CONFIG_MODULE_UNLOAD was\nenabled, which is not correct.\n\nCc: Nathan Lynch \u003cntl@pobox.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "9f28bb7e1d0188a993403ab39b774785892805e1",
      "tree": "939660c2531335dc899cc66fa7f3f05aa343d1e0",
      "parents": [
        "3fd6805f4dfb02bcfb5634972eabad0e790f119a"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 20 13:17:13 2006 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 20 13:42:58 2006 -0800"
      },
      "message": "[PATCH] add EXPORT_SYMBOL_GPL_FUTURE()\n\nThis patch adds the ability to mark symbols that will be changed in the\nfuture, so that kernel modules that don\u0027t include MODULE_LICENSE(\"GPL\")\nand use the symbols, will be flagged and printed out to the system log.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "52303e8b5f8aa234865d40d76ea16b0ff4b27022",
      "tree": "f109cfbc5cad79c691eca76ebcb8e4d078381368",
      "parents": [
        "c4dd0e4c6336bd17fea38bcad636eafa2941cf9f"
      ],
      "author": {
        "name": "Pavel Roskin",
        "email": "proski@gnu.org",
        "time": "Sun Oct 30 15:03:03 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:26 2005 -0800"
      },
      "message": "[PATCH] modules: fix sparse warning for every MODULE_PARM\n\nsparse complains about every MODULE_PARM used in a module: warning: symbol\n\u0027__parm_foo\u0027 was not declared.  Should it be static?\n\nThe fix is to split declaration and initialization.  While MODULE_PARM is\nobsolete, it\u0027s not something sparse should report.\n\nSigned-off-by: Pavel Roskin \u003cproski@gnu.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c988d2b2845495373f666a381d354a7f80981d62",
      "tree": "aece734adc28728437c9c87ba53428e79ac4c25f",
      "parents": [
        "f5bec39639d386e1893dc440dd536761136ab36b"
      ],
      "author": {
        "name": "Matt Domsch",
        "email": "Matt_Domsch@dell.com",
        "time": "Thu Jun 23 22:05:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:40 2005 -0700"
      },
      "message": "[PATCH] modules: add version and srcversion to sysfs\n\nThis patch adds version and srcversion files to\n/sys/module/${modulename} containing the version and srcversion fields\nof the module\u0027s modinfo section (if present).\n\n/sys/module/e1000\n|-- srcversion\n`-- version\n\nThis patch differs slightly from the version posted in January, as it\nnow uses the new kstrdup() call in -mm.\n\nWhy put this in sysfs?\n\na) Tools like DKMS, which deal with changing out individual kernel\n   modules without replacing the whole kernel, can behave smarter if they\n   can tell the version of a given module.  The autoinstaller feature, for\n   example, which determines if your system has a \"good\" version of a\n   driver (i.e.  if the one provided by DKMS has a newer verson than that\n   provided by the kernel package installed), and to automatically compile\n   and install a newer version if DKMS has it but your kernel doesn\u0027t yet\n   have that version.\n\nb) Because sysadmins manually, or with tools like DKMS, can switch out\n   modules on the file system, you can\u0027t count on \u0027modinfo foo.ko\u0027, which\n   looks at /lib/modules/${kernelver}/...  actually matching what is loaded\n   into the kernel already.  Hence asking sysfs for this.\n\nc) as the unbind-driver-from-device work takes shape, it will be\n   possible to rebind a driver that\u0027s built-in (no .ko to modinfo for the\n   version) to a newly loaded module.  sysfs will have the\n   currently-built-in version info, for comparison.\n\nd) tech support scripts can then easily grab the version info for what\u0027s\n   running presently - a question I get often.\n\nThere has been renewed interest in this patch on linux-scsi by driver\nauthors.\n\nAs the idea originated from GregKH, I leave his Signed-off-by: intact,\nthough the implementation is nearly completely new.  Compiled and run on\nx86 and x86_64.\n\nFrom: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\n\n      build fix\n\nFrom: Thierry Vignaud \u003ctvignaud@mandriva.com\u003e\n\n      build fix\n\nFrom: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\n\n      warning fix\n\nSigned-off-by: Greg Kroah-Hartman \u003cgreg@kroah.com\u003e\nSigned-off-by: Matt Domsch \u003cMatt_Domsch@dell.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"
    }
  ]
}
