)]}'
{
  "log": [
    {
      "commit": "88ed86fee6651033de9b7038dac7869a9f19775a",
      "tree": "38b638d2e7cba110ec271275738f221feb7e0a37",
      "parents": [
        "3856d30ded1fe43c6657927ebad402d25cd128f4",
        "59c7572e82d69483a66eaa67b46548baeb69ecf4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "message": "Merge branch \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc: (35 commits)\n  proc: remove fs/proc/proc_misc.c\n  proc: move /proc/vmcore creation to fs/proc/vmcore.c\n  proc: move pagecount stuff to fs/proc/page.c\n  proc: move all /proc/kcore stuff to fs/proc/kcore.c\n  proc: move /proc/schedstat boilerplate to kernel/sched_stats.h\n  proc: move /proc/modules boilerplate to kernel/module.c\n  proc: move /proc/diskstats boilerplate to block/genhd.c\n  proc: move /proc/zoneinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmstat boilerplate to mm/vmstat.c\n  proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c\n  proc: move /proc/buddyinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmallocinfo to mm/vmalloc.c\n  proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n  proc: move /proc/slab_allocators boilerplate to mm/slab.c\n  proc: move /proc/interrupts boilerplate code to fs/proc/interrupts.c\n  proc: move /proc/stat to fs/proc/stat.c\n  proc: move rest of /proc/partitions code to block/genhd.c\n  proc: move /proc/cpuinfo code to fs/proc/cpuinfo.c\n  proc: move /proc/devices code to fs/proc/devices.c\n  proc: move rest of /proc/locks to fs/locks.c\n  ...\n"
    },
    {
      "commit": "3b5d5c6b0ccba733a313f8752ebc3f8015628ba3",
      "tree": "7277d87d64b8be615013457ab0cdb178d41a9efe",
      "parents": [
        "31d85ab28e71b0c938e0ef48af45747e80d99b53"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 13:19:27 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 18:03:13 2008 +0400"
      },
      "message": "proc: move /proc/modules boilerplate to kernel/module.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "d72b37513cdfbd3f53f3d485a8c403cc96d2c95f",
      "tree": "bdc0ad7aa94bc52290b42e325ac59c9140faf090",
      "parents": [
        "5e458cc0f4770eea45d3c07110f01b3a94c72aa5"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Sat Aug 30 10:09:00 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:22 2008 +1100"
      },
      "message": "Remove stop_machine during module load v2\n\nRemove stop_machine during module load v2\n\nmodule loading currently does a stop_machine on each module load to insert\nthe module into the global module lists.  Especially on larger systems this\ncan be quite expensive.\n\nIt does that to handle concurrent lock lessmodule list readers\nlike kallsyms.\n\nI don\u0027t think stop_machine() is actually needed to insert something\ninto a list though. There are no concurrent writers because the\nmodule mutex is taken. And the RCU list functions know how to insert\na node into a list with the right memory ordering so that concurrent\nreaders don\u0027t go off into the wood.\n\nSo remove the stop_machine for the module list insert and just\ndo a list_add_rcu() instead.\n\nModule removal will still do a stop_machine of course, it needs\nthat for other reasons.\n\nv2: Revised readers based on Paul\u0027s comments. All readers that only\n    rely on disabled preemption need to be changed to list_for_each_rcu().\n    Done that. The others are ok because they have the modules mutex.\n    Also added a possible missing preempt disable for print_modules().\n\n[cc Paul McKenney for review. It\u0027s not RCU, but quite similar.]\n\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\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": "26e9a397774a0e94efbb8a0bf4a952c28d808cab",
      "tree": "fee2211b32a30c71bd22543acb791feeebd91b35",
      "parents": [
        "bdbf0ac7e187b2b757216e653e64f8b808b9077e",
        "99e06e372378c5833a0c60274b645dfb2e4a4b08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 09:50:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 09:50:12 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (25 commits)\n  staging: at76_usb wireless driver\n  Staging: workaround build system bug\n  Staging: Lindent sxg.c\n  Staging: SLICOSS: Call pci_release_regions at driver exit\n  Staging: SLICOSS: Fix remaining type names\n  Staging: SLICOSS: Fix warnings due to static usage\n  Staging: SLICOSS: lots of checkpatch fixes\n  Staging: go7007 v4l fixes\n  Staging: Fix gcc warnings in sxg\n  Staging: add echo cancelation module\n  Staging: add wlan-ng prism2 usb driver\n  Staging: add w35und wifi driver\n  Staging: USB/IP: add host driver\n  Staging: USB/IP: add client driver\n  Staging: USB/IP: add common functions needed\n  Staging: add the go7007 video driver\n  Staging: add me4000 pci data collection driver\n  Staging: add me4000 firmware files\n  Staging: add sxg network driver\n  Staging: add Alacritech slicoss network driver\n  ...\n\nFixed up conflicts due to taint flags changes and MAINTAINERS cleanup in\nMAINTAINERS, include/linux/kernel.h and kernel/panic.c.\n"
    },
    {
      "commit": "c813b4e16ead3c3df98ac84419d4df2adf33fe01",
      "tree": "2ca4a5b6966d833b6149e3dda7a4e85d1255779c",
      "parents": [
        "c8d8a2321f9c4ee18fbcc399fdc2a77e580a03b9",
        "02683ffdf655b4ae15245376ba6fea6d9e5829a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (46 commits)\n  UIO: Fix mapping of logical and virtual memory\n  UIO: add automata sercos3 pci card support\n  UIO: Change driver name of uio_pdrv\n  UIO: Add alignment warnings for uio-mem\n  Driver core: add bus_sort_breadthfirst() function\n  NET: convert the phy_device file to use bus_find_device_by_name\n  kobject: Cleanup kobject_rename and !CONFIG_SYSFS\n  kobject: Fix kobject_rename and !CONFIG_SYSFS\n  sysfs: Make dir and name args to sysfs_notify() const\n  platform: add new device registration helper\n  sysfs: use ilookup5() instead of ilookup5_nowait()\n  PNP: create device attributes via default device attributes\n  Driver core: make bus_find_device_by_name() more robust\n  usb: turn dev_warn+WARN_ON combos into dev_WARN\n  debug: use dev_WARN() rather than WARN_ON() in device_pm_add()\n  debug: Introduce a dev_WARN() function\n  sysfs: fix deadlock\n  device model: Do a quickcheck for driver binding before doing an expensive check\n  Driver core: Fix cleanup in device_create_vargs().\n  Driver core: Clarify device cleanup.\n  ...\n"
    },
    {
      "commit": "25ddbb18aae33ad255eb9f35aacebe3af01e1e9c",
      "tree": "8df1f840a226ed640c2096710b7d0f1f4d1b88aa",
      "parents": [
        "889d51a10712b6fd6175196626de2116858394f4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Oct 15 22:01:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:31 2008 -0700"
      },
      "message": "Make the taint flags reliable\n\nIt\u0027s somewhat unlikely that it happens, but right now a race window\nbetween interrupts or machine checks or oopses could corrupt the tainted\nbitmap because it is modified in a non atomic fashion.\n\nConvert the taint variable to an unsigned long and use only atomic bit\noperations on it.\n\nUnfortunately this means the intvec sysctl functions cannot be used on it\nanymore.\n\nIt turned out the taint sysctl handler could actually be simplified a bit\n(since it only increases capabilities) so this patch actually removes\ncode.\n\n[akpm@linux-foundation.org: remove unneeded include]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\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": "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": "e94320939f44e0cbaccc3f259a5778abced4949c",
      "tree": "a613345601872596f498496ad5ba94a29a659ff4",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Sep 23 23:51:11 2008 +0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:41 2008 -0700"
      },
      "message": "modules: fix module \"notes\" kobject leak\n\nFix \"notes\" kobject leak\n\nIt happens every rmmod if KALLSYMS\u003dy and SYSFS\u003dy.\n\n\t# modprobe foo\n\nkobject: \u0027foo\u0027 (ffffffffa00743d0): kobject_add_internal: parent: \u0027module\u0027, set: \u0027module\u0027\nkobject: \u0027holders\u0027 (ffff88017e7c5770): kobject_add_internal: parent: \u0027foo\u0027, set: \u0027\u003cNULL\u003e\u0027\nkobject: \u0027foo\u0027 (ffffffffa00743d0): kobject_uevent_env\nkobject: \u0027foo\u0027 (ffffffffa00743d0): fill_kobj_path: path \u003d \u0027/module/foo\u0027\nkobject: \u0027notes\u0027 (ffff88017fa9b668): kobject_add_internal: parent: \u0027foo\u0027, set: \u0027\u003cNULL\u003e\u0027\n\t  ^^^^^\n\n\t# rmmod foo\n\nkobject: \u0027holders\u0027 (ffff88017e7c5770): kobject_cleanup\nkobject: \u0027holders\u0027 (ffff88017e7c5770): auto cleanup kobject_del\nkobject: \u0027holders\u0027 (ffff88017e7c5770): calling ktype release\nkobject: (ffff88017e7c5770): dynamic_kobj_release\nkobject: \u0027holders\u0027: free name\nkobject: \u0027foo\u0027 (ffffffffa00743d0): kobject_cleanup\nkobject: \u0027foo\u0027 (ffffffffa00743d0): does not have a release() function, it is broken and must be fixed.\nkobject: \u0027foo\u0027 (ffffffffa00743d0): auto cleanup \u0027remove\u0027 event\nkobject: \u0027foo\u0027 (ffffffffa00743d0): kobject_uevent_env\nkobject: \u0027foo\u0027 (ffffffffa00743d0): fill_kobj_path: path \u003d \u0027/module/foo\u0027\nkobject: \u0027foo\u0027 (ffffffffa00743d0): auto cleanup kobject_del\nkobject: \u0027foo\u0027: free name\n\n\t[whooops]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fed1939c64d2288938fdc1c367d49082da65e195",
      "tree": "a4592352d28efcfe82379c71d061b9127e49a115",
      "parents": [
        "28614889bcb2558a47d02d52394b7fd9795a9547"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 22:47:19 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:12 2008 +0200"
      },
      "message": "ftrace: remove old pointers to mcount\n\nWhen a mcount pointer is recorded into a table, it is used to add or\nremove calls to mcount (replacing them with nops). If the code is removed\nvia removing a module, the pointers still exist.  At modifying the code\na check is always made to make sure the code being replaced is the code\nexpected. In-other-words, the code being replaced is compared to what\nit is expected to be before being replaced.\n\nThere is a very small chance that the code being replaced just happens\nto look like code that calls mcount (very small since the call to mcount\nis relative). To remove this chance, this patch adds ftrace_release to\nallow module unloading to remove the pointers to mcount within the module.\n\nAnother change for init calls is made to not trace calls marked with\n__init. The tracing can not be started until after init is done anyway.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90d595fe5ca4b685465c068907e6e554760abea8",
      "tree": "03f98454af8c6756177aa053ae7440373007f67d",
      "parents": [
        "68bf21aa15c85d2e9b623dcda2b1ed8893275fa1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:47 2008 +0200"
      },
      "message": "ftrace: enable mcount recording for modules\n\nThis patch enables the loading of the __mcount_section of modules and\nchanging all the callers of mcount into nops.\n\nThe modification is done before the init_module function is called, so\nagain, we do not need to use kstop_machine to make these changes.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\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": "061b1bd394ca8628b7c24eb4658ba3535da4249a",
      "tree": "5711de7ffa17f0f5d0084292707872d19e9b19ff",
      "parents": [
        "b922df7383749a1c0b7ea64c50fa839263d3816b"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 24 14:46:44 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 10 15:31:05 2008 -0700"
      },
      "message": "Staging: add TAINT_CRAP for all drivers/staging code\n\nWe need to add a flag for all code that is in the drivers/staging/\ndirectory to prevent all other kernel developers from worrying about\nissues here, and to notify users that the drivers might not be as good\nas they are normally used to.\n\nBased on code from Andreas Gruenbacher and Jeff Mahoney to provide a\nTAINT flag for the support level of a kernel module in the Novell\nenterprise kernel release.\n\nThis is the kernel portion of this feature, the ability for the flag to\nbe set needs to be done in the build process and will happen in a\nfollow-up patch.\n\nCc: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ffb4ba76a25ab6c9deeec33e4f58395586ca747c",
      "tree": "378ee35adc486466c88c7423dbb0ecc6f027ef45",
      "parents": [
        "83097aca8567a0bd593534853b71fe0fa9a75d69"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 25 11:10:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 25 11:10:26 2008 -0700"
      },
      "message": "[module] Don\u0027t let gcc inline load_module()\n\n\u0027load_module()\u0027 is a complex function that contains all the ELF section\nlogic, and inlining it is utterly insane.  But gcc will do it, simply\nbecause there is only one call-site.  As a result, all the stack space\nthat is allocated for all the work to load the module will still be\nactive when we actually call the module init sequence, and the deep call\nchain makes stack overflows happen.\n\nAnd stack overflows are really hard to debug, because they not only\ncorrupt random pages below the stack, but also corrupt the thread_info\nstructure that is allocated under the stack.\n\nIn this case, Alan Brunelle reported some crazy oopses at bootup, after\nloading the processor module that ends up doing complex ACPI stuff and\nhas quite a deep callchain.  This should fix it, and is the sane thing\nto do regardless.\n\nCc: Alan D. Brunelle \u003cAlan.Brunelle@hp.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59f9415ffb9759e950d775f4c400f747b332cc02",
      "tree": "354544b8cad8ae77a5f960fe601b2a3613a2523a",
      "parents": [
        "4bceba417a795b78a5146e3f85291cb7bb2402ef"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jul 30 12:49:02 2008 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Aug 12 17:52:54 2008 +1000"
      },
      "message": "modules: extend initcall_debug functionality to the module loader\n\nThe kernel has this really nice facility where if you put \"initcall_debug\"\non the kernel commandline, it\u0027ll print which function it\u0027s going to\nexecute just before calling an initcall, and then after the call completes\nit will\n\n1) print if it had an error code\n\n2) checks for a few simple bugs (like leaving irqs off)\nand\n\n3) print how long the init call took in milliseconds.\n\nWhile trying to optimize the boot speed of my laptop, I have been loving\nnumber 3 to figure out what to optimize...  ...  and then I wished that\nthe same thing was done for module loading.\n\nThis patch makes the module loader use this exact same functionality; it\u0027s\na logical extension in my view (since modules are just sort of late\nbinding initcalls anyway) and so far I\u0027ve found it quite useful in finding\nwhere things are too slow in my boot.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9b1a4d38373a5581a4e01032a3ccdd94cd93477b",
      "tree": "3d0f0ebd1ac4512551fc35e57d173870eb060c0c",
      "parents": [
        "eeec4fad963490821348a331cca6102ae1c4a7a3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:31 2008 +1000"
      },
      "message": "stop_machine: Wean existing callers off stop_machine_run()\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "15bba37d62351749c3915add81f673b256952ee1",
      "tree": "4696ad74ea04df9f3b7091859225ecc123be7197",
      "parents": [
        "837b41b5de356aa67abb2cadb5eef3efc7776f91"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu Jul 24 15:41:48 2008 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 +1000"
      },
      "message": "module: fix build warning with !CONFIG_KALLSYMS\n\nThis patch fixed the warning:\n\n  CC      kernel/module.o\n  /home/wangcong/Projects/linux-2.6/kernel/module.c:332: warning:\n‘lookup_symbol’ defined but not used\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3a642e99babe0617febb6f402e1e063479f489db",
      "tree": "09f7d6c7b0a4e3869d11c739113e5dd5a8ff5a2c",
      "parents": [
        "2f0f2a334bc38b61a9afca951185cd3844ee709d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:28 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:28 2008 +1000"
      },
      "message": "modules: Take a shortcut for checking if an address is in a module\n\nThis patch keeps track of the boundaries of module allocation, in\norder to speed up module_text_address().\n\nInspired by Arjan\u0027s version, which required arch-specific defines:\n\n\tVarious pieces of the kernel (lockdep, latencytop, etc) tend\n\tto store backtraces, sometimes at a relatively high\n\tfrequency. In itself this isn\u0027t a big performance deal (after\n\tall you\u0027re using diagnostics features), but there have been\n\tsome complaints from people who have over 100 modules loaded\n\tthat this is a tad too slow.\n\n\tThis is due to the new backtracer code which looks at every\n\tslot on the stack to see if it\u0027s a kernel/module text address,\n\tso that\u0027s 1024 slots.  1024 times 100 modules... that\u0027s a lot\n\tof list walking.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\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": "dafd0940c96fec67974a88ed8e6b8ba3160394cd",
      "tree": "616da8f0f283509ec71ff2d6e467fa4c6877edc6",
      "parents": [
        "da39ba5e1d65e997a98f6eb93ba6e6eb505f6e3c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:25 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:26 2008 +1000"
      },
      "message": "module: generic each_symbol iterator function\n\nIntroduce an each_symbol() iterator to avoid duplicating the knowledge\nabout the 5 different sections containing symbols.  Currently only\nused by find_symbol(), but will be used by symbol_put_addr() too.\n\n(Includes NULL ptr deref fix by Jiri Kosina \u003cjkosina@suse.cz\u003e)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "da39ba5e1d65e997a98f6eb93ba6e6eb505f6e3c",
      "tree": "7c47c0481a7e8b9a9a13a9ce6ea8f11ed145b546",
      "parents": [
        "93ded9b8fd42abe2c3607097963d8de6ad9117eb"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:25 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 19:24:25 2008 +1000"
      },
      "message": "module: don\u0027t use stop_machine for waiting rmmod\n\nrmmod has a little-used \"-w\" option, meaning that instead of failing if the\nmodule is in use, it should block until the module becomes unused.\n\nIn this case, we don\u0027t need to use stop_machine: Max Krasnyansky\nindicated that would be useful for SystemTap which loads/unloads new\nmodules frequently.\n\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "34e4e2fef4c7a2f7699b3d25e48d871d3ac4c3e7",
      "tree": "0d013ca321765f38f57c53a012b7a8cad30ea3f2",
      "parents": [
        "c4ea6fcf5a192dbba54666f308bdace1c278e0c1"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue May 20 13:59:48 2008 +0400"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 23 13:09:33 2008 +1000"
      },
      "message": "modules: proper cleanup of kobject without CONFIG_SYSFS\n\nkobject: \u0027\u003cNULL\u003e\u0027 (ffffffffa0104050): is not initialized, yet kobject_put() is being called.\n------------[ cut here ]------------\nWARNING: at /home/den/src/linux-netns26/lib/kobject.c:583 kobject_put+0x53/0x55()\nModules linked in: ipv6 nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs ide_cd_mod cdrom button [last unloaded: pktgen]\ncomm: rmmod Tainted: G        W 2.6.26-rc3 #585\nCall Trace:\n  [\u003cffffffff802359ab\u003e] warn_on_slowpath+0x58/0x7a\n  [\u003cffffffff80236aca\u003e] ? printk+0x67/0x69\n  [\u003cffffffff80236aca\u003e] ? printk+0x67/0x69\n  [\u003cffffffff80324289\u003e] kobject_put+0x53/0x55\n  [\u003cffffffff8025e2ee\u003e] free_module+0x87/0xfa\n  [\u003cffffffff8025fee5\u003e] sys_delete_module+0x178/0x1e1\n  [\u003cffffffff804b1e70\u003e] ? lockdep_sys_exit_thunk+0x35/0x67\n  [\u003cffffffff804b1dff\u003e] ? trace_hardirqs_on_thunk+0x35/0x3a\n  [\u003cffffffff8020c0bb\u003e] system_call_after_swapgs+0x7b/0x80\n---[ end trace 8f5aafa7f6406cf8 ]---\n\nmod-\u003emkobj.kobj is not initialized without CONFIG_SYSFS. Do not call\nkobject_put in this case.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c4ea6fcf5a192dbba54666f308bdace1c278e0c1",
      "tree": "93055c860a9ddfff8e2d056e3ad19730a81b8cb9",
      "parents": [
        "78b58e549a3098a8c1408d0214bd25e5d5e7a3a3"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Wed May 14 16:27:29 2008 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 23 13:09:32 2008 +1000"
      },
      "message": "module loading ELF handling: use SELFMAG instead of numeric constant\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "91e37a793b5a9436a2d12b2f0a8f52db3a133e1d",
      "tree": "6ddf17ad786fa2a42ef79aa4f7873c79c1e17a89",
      "parents": [
        "a5dd69707424a35d2d2cc094e870f595ad61e916"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 09 16:25:28 2008 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 09 07:45:18 2008 -0700"
      },
      "message": "module: don\u0027t ignore vermagic string if module doesn\u0027t have modversions\n\nLinus found a logic bug: we ignore the version number in a module\u0027s\nvermagic string if we have CONFIG_MODVERSIONS set, but modversions\nalso lets through a module with no __versions section for modprobe\n--force (with tainting, but still).\n\nWe should only ignore the start of the vermagic string if the module\nactually *has* crcs to check.  Rather than (say) having an\nentertaining hissy fit and creating a config option to work around the\nbuggy code.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5dd69707424a35d2d2cc094e870f595ad61e916",
      "tree": "dd9dffe6748358bac9a8699f7d8ad9e205886a67",
      "parents": [
        "6c2545eefffc452e52302c96c955d9aa26353aa9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 09 16:24:21 2008 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 09 07:45:18 2008 -0700"
      },
      "message": "module: be more picky about allowing missing module versions\n\nWe allow missing __versions sections, because modprobe --force strips\nit.  It makes less sense to allow sections where there\u0027s no version\nfor a specific symbol the module uses, so disallow that.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "826e4506a0acb6487910a5ebafe839f708a00e1c",
      "tree": "20cc66b6b38c0414930d85a8a9705a3a3eff8ddf",
      "parents": [
        "afa26be86b65a7183ceac29bdf1f51d6fc6932f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 04 17:04:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 04 17:04:16 2008 -0700"
      },
      "message": "Make forced module loading optional\n\nThe kernel module loader used to be much too happy to allow loading of\nmodules for the wrong kernel version by default.  For example, if you\nhad MODVERSIONS enabled, but tried to load a module with no version\ninfo, it would happily load it and taint the kernel - whether it was\nlikely to actually work or not!\n\nGenerally, such forced module loading should be considered a really\nreally bad idea, so make it conditional on a new config option\n(MODULE_FORCE_LOAD), and make it default to off.\n\nIf somebody really wants to force module loads, that\u0027s their problem,\nbut we should not encourage it.  Especially as it happened to me by\nmistake (ie regular unversioned Fedora modules getting loaded) causing\nlots of strange behavior.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df4b565e1fbc777bb6e274378a41fa8ff7485680",
      "tree": "8b64f22bb57419d57fdd4914645bafeaf9171733",
      "parents": [
        "b211104d111c99dbb97c636b57bd9db711455684"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "peter.oberparleiter@de.ibm.com",
        "time": "Mon Apr 21 14:34:31 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:01 2008 +1000"
      },
      "message": "module: add MODULE_STATE_GOING notifier call\n\nProvide module unload callback. Required by the gcov profiling\ninfrastructure to keep track of profiling data structures.\n\nSigned-off-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b211104d111c99dbb97c636b57bd9db711455684",
      "tree": "129d949287a17457f3a8081dd6f04b8a945bcb29",
      "parents": [
        "4e2d92454b2d822fe1d474efabccc2a3806d5f86"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 +1000"
      },
      "message": "module: Enhance verify_export_symbols\n\nMake verify_export_symbols check the modules unused, unused_gpl and\ngpl_future syms.\n\nInspired by Jan Beulich\u0027s fix, but table-driven.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4e2d92454b2d822fe1d474efabccc2a3806d5f86",
      "tree": "88ff1b8d85d367a9f70f538b326e1d13ec0173d9",
      "parents": [
        "ad9546c9917d44eddc7676b639296d624cee455e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 +1000"
      },
      "message": "module: set unused_gpl_crcs instead of overwriting unused_crcs\n\nObvious typo, but I don\u0027t know of any modules with unused GPL exports,\nand then it would take someone noticing that the version shouldn\u0027t\nhave matched in a dependent module.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ad9546c9917d44eddc7676b639296d624cee455e",
      "tree": "d6b5cc09706fd05c78ccad79342768152a74035e",
      "parents": [
        "ea01e798e2d27fd04142e0473ca36570fa9d9218"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:14:59 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 +1000"
      },
      "message": "module: neaten __find_symbol, rename to find_symbol\n\n__find_symbol() has grown over time: there are now 5 different arrays\nof symbols it traverses.  It also shouldn\u0027t print out a warning on\nsome calls (ie. verify_symbol which simply checks for name clashes,\nand __symbol_put which checks for bugs).\n\n1) Rename to find_symbol: no need for underscores.\n2) Use bool and add \"warn\" parameter to suppress warnings.\n3) Make table-driven rather than open coded.\n\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": "a6550207538619bc9b90bac2e1d5e54902a432ad",
      "tree": "cc9bb9b5153810b544c2afcc7721353ff5ce957d",
      "parents": [
        "5a6483feb0c5193519625d0ea8c4254364d423cc"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Feb 26 10:47:18 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:17:04 2008 -0400"
      },
      "message": "kernel: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "e24e2e64c468c8060bb7173abecdf11d00ed5751",
      "tree": "b03faa2fd187a207d0a2e78af75a787a66ab21fe",
      "parents": [
        "6c5db22d280302c33dafb309c25bf2841fb99c37"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Mar 10 11:43:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Mar 10 18:01:20 2008 -0700"
      },
      "message": "modules: warn about suspicious return values from module\u0027s -\u003einit() hook\n\nReturn value convention of module\u0027s init functions is 0/-E.  Sometimes,\ne.g.  during forward-porting mistakes happen and buggy module created,\nwhere result of comparison \"workqueue !\u003d NULL\" is propagated all the way up\nto sys_init_module.  What happens is that some other module created\nworkqueue in question, our module created it again and module was\nsuccessfully loaded.\n\nOr it could be some other bug.\n\nLet\u0027s make such mistakes much more visible.  In retrospective, such\nmessages would noticeably shorten some of my head-scratching sessions.\n\nNote, that dump_stack() is just a way to get attention from user.  Sample\nmessage:\n\nsys_init_module: \u0027foo\u0027-\u003einit suspiciously returned 1, it should follow 0/-E convention\nsys_init_module: loading module anyway...\nPid: 4223, comm: modprobe Not tainted 2.6.24-25f666300625d894ebe04bac2b4b3aadb907c861 #5\n\nCall Trace:\n [\u003cffffffff80254b05\u003e] sys_init_module+0xe5/0x1d0\n [\u003cffffffff8020b39b\u003e] system_call_after_swapgs+0x7b/0x80\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@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": "6c5db22d280302c33dafb309c25bf2841fb99c37",
      "tree": "0d3711b8a32646f52eca5015447256a30bc96a88",
      "parents": [
        "2668db9111bb1a6ab5a54f41f703179f35c7d098"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 10 11:43:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Mar 10 18:01:19 2008 -0700"
      },
      "message": "modules: fix module waiting for dependent modules\u0027 init\n\nCommit c9a3ba55 (module: wait for dependent modules doing init.) didn\u0027t quite\nwork because the waiter holds the module lock, meaning that the state of the\nmodule it\u0027s waiting for cannot change.\n\nFortunately, it\u0027s fairly simple to update the state outside the lock and do\nthe wakeup.\n\nThanks to Jan Glauber for tracking this down and testing (qdio and qeth).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jan Glauber \u003cjang@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b37ccfc637be27d9a652fcedc35e6e782c3aa78",
      "tree": "525fd97d130c630ff5e65de2d83823174986a6a5",
      "parents": [
        "27d0483aa1ef66a8877d71b63bb97f46ab0246b2"
      ],
      "author": {
        "name": "Pavel Roskin",
        "email": "proski@gnu.org",
        "time": "Thu Feb 28 17:11:02 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 20:29:40 2008 -0800"
      },
      "message": "module: allow ndiswrapper to use GPL-only symbols\n\nA change after 2.6.24 broke ndiswrapper by accidentally removing its\naccess to GPL-only symbols.  Revert that change and add comments about\nthe reasons why ndiswrapper and driverloader are treated in a special\nway.\n\nSigned-off-by: Pavel Roskin \u003cproski@gnu.org\u003e\nAcked-by: Greg KH \u003cgregkh@suse.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jon Masters \u003cjonathan@jonmasters.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "120fc3d77acfd91f3521737a440d42839c475982",
      "tree": "8f13e2fbad7f5aeafcf0a2bf6a235bddcbede6a3",
      "parents": [
        "58dc3232ff77158460f79e3c1932b81e8a2a0194"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Feb 21 00:33:20 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 21 15:27:08 2008 -0800"
      },
      "message": "modules: do not try to add sysfs attributes if !CONFIG_SYSFS\n\nThanks to Alexey for the testing and the fix of the fix.\n\nCc: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\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": "6d7623943c905efae327933bc5ee0b2f78e15f56",
      "tree": "e2e4e073bd495970aa487bec94c560dcf31e33b1",
      "parents": [
        "88173507e4fc1e7ecd111b0565e8cba0cb7dae6d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Feb 08 04:18:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "modules: include sections.h to avoid defining linker variables explicitly\n\nmodule.c should not define linker variables on its own. We have an include\nfile for that.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.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": "88173507e4fc1e7ecd111b0565e8cba0cb7dae6d",
      "tree": "ed1a3f61f95b6e253afe8e330a668a12ad56a4e2",
      "parents": [
        "596f56018df3ed7de20f6038f72177b3674ebbd4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Feb 08 04:18:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "Modules: handle symbols that have a zero value\n\nThe module subsystem cannot handle symbols that are zero.  If symbols are\npresent that have a zero value then the module resolver prints out a\nmessage that these symbols are unresolved.\n\n[akinobu.mita@gmail.com: fix __find_symbl() error checks]\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd5af90a7f3d79e04b7eace9a98644dbf2038f4d",
      "tree": "22327ba385c830b7be391c76821dc5ec26863f2e",
      "parents": [
        "3212bff370c2f22e4987c6679ba485654cefb178"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "message": "x86/non-x86: percpu, node ids, apic ids x86.git fixup\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6494a93d55fad586238cc1940e846c6d03e1aaf6",
      "tree": "8f930c1064753ab478b879b5598952f1ae87e52e",
      "parents": [
        "0aa5bd52d0c49ca56d24584c646e6544ccbb3dc9"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Jan 27 15:38:40 2008 -0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:27 2008 +1100"
      },
      "message": "Module: check to see if we have a built in module with the same name\n\nWhen trying to load a module with the same name as a built-in one, a\nscary kobject backtrace comes up.  Prevent that from checking for this\ncondition and warning the user as to what exactly is going on.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0aa5bd52d0c49ca56d24584c646e6544ccbb3dc9",
      "tree": "abce9de5d47992e5ccdfd052df022374d99f81a1",
      "parents": [
        "8686c99875f3849047660a5b6d02438443f22ce7"
      ],
      "author": {
        "name": "Jon Masters",
        "email": "jonathan@jonmasters.org",
        "time": "Mon Jan 21 20:43:41 2008 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:26 2008 +1100"
      },
      "message": "module: add module taint on ndiswrapper\n\nThe struct module taints member is supposed to store per-module taint\ndata. The kernel knows about certain specific external modules that will\ntaint the kernel, such as ndiswrapper. Use of ndiswrapper possibly\nshould set the per-module taint in addition to the global kernel\ntaint flag, unless we\u0027re arguing not because wrapper module itself\nis not what actually causes the kernel to be tainted as such?\n\nSigned-off-by: Jon Masters \u003cjcm@jonmasters.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\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": "bb9d3d56e792d2619cc0903df4ac01d86ac1261d",
      "tree": "25ff54c8402b6dedf45a3145b5d9904e14983bf4",
      "parents": [
        "efa5345e39d01deef349c120f55ac6b6eabe7457"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:21 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:22 2008 +1100"
      },
      "message": "module: better OOPS and lockdep coverage for loading modules\n\nIf we put the module in the linked list *before* calling into to, we\nget the module name and functions in the OOPS (is_module_address can\nfind the module).  It also helps lockdep in a similar way.\n\nAcked-and-tested-by: Joern Engel \u003cjoern@lazybastard.org\u003e\nTested-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "efa5345e39d01deef349c120f55ac6b6eabe7457",
      "tree": "7c8d0919aa380a0db7ac748d6c4571c00aa5c639",
      "parents": [
        "c9a3ba55bb5da03fc7d707709a7fe078fe1aa0a0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:20 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:21 2008 +1100"
      },
      "message": "module: Fix gratuitous sprintf in module.c\n\nAndrew sent an older version of this patch: we shouldn\u0027t use sprintf\nto copy a string.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c9a3ba55bb5da03fc7d707709a7fe078fe1aa0a0",
      "tree": "3d25d1783ad794b7bc64f5f36f5289f7f51a56fc",
      "parents": [
        "a2da4052f1df6bc77749f84496fe731ab8b458f7"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:18 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jan 29 17:13:20 2008 +1100"
      },
      "message": "module: wait for dependent modules doing init.\n\nThere have been reports of modules failing to load because the modules\nthey depend on are still loading.  This changes the modules to wait\nfor a reasonable length of time in that case.  We time out eventually,\nbecause there can be module loops or broken modules.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e14af7eeb47ea96c52741c5e5fa010d33daf6973",
      "tree": "0b4c1af86e766726ba75873812715706e4044086",
      "parents": [
        "21aa9280b9f4e9e68d3fa8990df6c9d7fd71f994"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "debug: track and print last unloaded module in the oops trace\n\nBased on a suggestion from Andi:\n\n In various cases, the unload of a module may leave some bad state around\n that causes a kernel crash AFTER a module is unloaded; and it\u0027s then hard\n to find which module caused that.\n\nThis patch tracks the last unloaded module, and prints this as part of the\nmodule list in the oops trace.\n\nRight now, only the last 1 module is tracked; I expect that this is enough\nfor the vast majority of cases where this information matters; if it turns\nout that tracking more is important, we can always extend it to that.\n\n[ mingo@elte.hu: build fix ]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21aa9280b9f4e9e68d3fa8990df6c9d7fd71f994",
      "tree": "dbf9011a8ba89037dc7807d50daa645bf1b2e2b7",
      "parents": [
        "5a52dd50091b6a6e710a1293db741028f8cc5aac"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "debug: show being-loaded/being-unloaded indicator for modules\n\nIt\u0027s rather common that an oops/WARN_ON/BUG happens during the load or\nunload of a module. Unfortunatly, it\u0027s not always easy to see directly\nwhich module is being loaded/unloaded from the oops itself. Worse,\nit\u0027s not even always possible to ask the bug reporter, since there\nare so many components (udev etc) that auto-load modules that there\u0027s\na good chance that even the reporter doesn\u0027t know which module this is.\n\nThis patch extends the existing \"show if it\u0027s tainting\" print code,\nwhich is used as part of printing the modules in the oops/BUG/WARN_ON\nto include a \"+\" for \"being loaded\" and a \"-\" for \"being unloaded\".\n\nAs a result this extension, the \"taint_flags()\" function gets renamed to\n\"module_flags()\" (and takes a module struct as argument, not a taint\nflags int).\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "78a2d906b40fe530ea800c1e873bfe8f02326f1e",
      "tree": "ebeef35150816fa807f71e596a9aaf711ad10a90",
      "parents": [
        "197b12d6796a3bca187f22a8978a33d51e2bcd79"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Dec 20 08:13:05 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:40 2008 -0800"
      },
      "message": "Kobject: convert remaining kobject_unregister() to kobject_put()\n\nThere is no need for kobject_unregister() anymore, thanks to Kay\u0027s\nkobject cleanup changes, so replace all instances of it with\nkobject_put().\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ac3c8141f62f357169980ec21b7be6d29964a394",
      "tree": "096cd77cecc2bce54978fd565982313382507b79",
      "parents": [
        "649316b25b148e57c8ef71748fc69fa6db276ad1"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Dec 17 23:05:35 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:38 2008 -0800"
      },
      "message": "Kobject: convert kernel/module.c to use kobject_init/add_ng()\n\nThis converts the code to use the new kobject functions, cleaning up the\nlogic in doing so.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "97c146ef075dc40ae34407c03d3860fc3850b8e8",
      "tree": "df4346fbbf9f7129fbd929ce43ceac819ff3c7df",
      "parents": [
        "da231fd5d113ab6da5dab7a2d2c38d0a540f939c"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Nov 29 23:46:11 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:36 2008 -0800"
      },
      "message": "sysfs: fix /sys/module/*/holders after sysfs logic change\n\nSysfs symlinks now require fully registered kobjects as a target,\notherwise the call to create a symlink will fail. Here we register\nthe kobject before we request the symlink in the holders directory.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\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": "4ff6abff832fbc6cb1d769f6106c841bc2b09f63",
      "tree": "8458c8e29f53b67912edbe2424e43f95556832ce",
      "parents": [
        "3f9e3ee9dc3605e5c593b5d708494571fb0d3970"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Nov 05 22:24:43 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:11 2008 -0800"
      },
      "message": "kobject: get rid of kobject_add_dir\n\nkobject_create_and_add is the same as kobject_add_dir, so drop\nkobject_add_dir.\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3514faca19a6fdc209734431c509631ea92b094e",
      "tree": "f6d102e6dec276f8e8d1044b47c74a02b901554f",
      "parents": [
        "c11c4154e7ff4cebfadad849b1e22689d759c3f4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 16 10:11:44 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:10 2008 -0800"
      },
      "message": "kobject: remove struct kobj_type from struct kset\n\nWe don\u0027t need a \"default\" ktype for a kset.  We should set this\nexplicitly every time for each kset.  This change is needed so that we\ncan make ksets dynamic, and cleans up one of the odd, undocumented\nassumption that the kset/kobject/ktype model has.\n\nThis patch is based on a lot of help from Kay Sievers.\n\nNasty bug in the block code was found by Dave Young\n\u003chidave.darkstar@gmail.com\u003e\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "cb2a52052cebe4716e83b9d2e53682ba00f67de6",
      "tree": "df35653a4ef0123c20df72f1c4355562553e9558",
      "parents": [
        "1a1b285c24e1468afe82b09330dde5192a6e0013"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jan 14 00:55:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 14 08:52:22 2008 -0800"
      },
      "message": "modules: de-mutex more symbol lookup paths in the module code\n\nKyle McMartin reports sysrq_timer_list_show() can hit the module mutex\nfrom hard interrupt context.  These paths don\u0027t need to though, since we\nlong ago changed all the module list manipulation to occur via\nstop_machine().\n\nDisabling preemption is enough.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a4b9708f1f2eaf5edd619df578cf3afec36eb82",
      "tree": "af45a123f6ac642cc326f16c0c97f2c16a18b662",
      "parents": [
        "74b2553f1d13e60fb27063204bd5b6908a6f8494"
      ],
      "author": {
        "name": "Matti Linnanvuori",
        "email": "mattilinnanvuori@yahoo.com",
        "time": "Thu Nov 08 08:37:38 2007 -0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 19 11:20:43 2007 +1100"
      },
      "message": "module: fix and elaborate comments\n\nFix and elaborate comments.\n\nSigned-off-by: Matti Linnanvuori \u003cmattilinnanvuori@yahoo.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\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": "22a8bdeb535d75d586d247ffaa51742556ebfee8",
      "tree": "da24f7bb67a3238d950c30e55efbdfa1c341a082",
      "parents": [
        "23ff4440243fe3fa42515d18aa213be14bb706ee"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Thu Oct 18 03:06:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:25 2007 -0700"
      },
      "message": "whitespace fixes: module loading\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d58ae67813ff97030d2f47ff7d1e5f54e5d7c5b3",
      "tree": "41d8e470d578636a0e5aeaed2d1e959e0c1a99c7",
      "parents": [
        "22d2b35b200f76085c16a2e14ca30b58510fcbe7"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Oct 16 23:30:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:01 2007 -0700"
      },
      "message": "module: return error when mod_sysfs_init() failed\n\nload_module() returns zero when mod_sysfs_init() fails, then the module\nloading will succeed accidentally.\n\nThis patch makes load_module() return error correctly in that case.\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "256e2fdf033f5c8b5093cd817d44cea3a11a4e6f",
      "tree": "1bfca5475caac37a87762a48f30c945a4b4b743f",
      "parents": [
        "6cb52147b254373364a2fef5df8b4aa3739c8bb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Aug 06 23:47:45 2007 +0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Aug 22 14:35:35 2007 -0700"
      },
      "message": "Fix Off-by-one in /sys/module/*/refcnt\n\nsysfs internals were changed to not pin module in question.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9281acea6a3687ff0f262e0be31eac34895b95d7",
      "tree": "f060d6e4f6a5da1c82bc789104683d39377a2e9a",
      "parents": [
        "b45d52797432bd6b5d9786dbda940eb8d0b9ed06"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jul 17 04:03:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:03 2007 -0700"
      },
      "message": "kallsyms: make KSYM_NAME_LEN include space for trailing \u0027\\0\u0027\n\nKSYM_NAME_LEN is peculiar in that it does not include the space for the\ntrailing \u0027\\0\u0027, forcing all users to use KSYM_NAME_LEN + 1 when allocating\nbuffer.  This is nonsense and error-prone.  Moreover, when the caller\nforgets that it\u0027s very likely to subtly bite back by corrupting the stack\nbecause the last position of the buffer is always cleared to zero.\n\nThis patch increments KSYM_NAME_LEN by one and updates code accordingly.\n\n* off-by-one bug in asm-powerpc/kprobes.h::kprobe_lookup_name() macro\n  is fixed.\n\n* Where MODULE_NAME_LEN and KSYM_NAME_LEN were used together,\n  MODULE_NAME_LEN was treated as if it didn\u0027t include space for the\n  trailing \u0027\\0\u0027.  Fix it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Paulo Marques \u003cpmarques@grupopie.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24da1cbff9cfce50868c2dfdcda82a68ac5cb707",
      "tree": "93f0e1f0f464d62b73b14fba4a2ab9216acdc924",
      "parents": [
        "6c675bd43ccc36927c855d53d2e0042cdd1074ab"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Jul 15 23:41:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:51 2007 -0700"
      },
      "message": "modules: remove modlist_lock\n\nNow we always use stop_machine for module insertion or deletion, we no\nlonger need the modlist_lock: merely disabling preemption is sufficient to\nblock against list manipulation.  This avoids deadlock on OOPSen where we\ncan potentially grab the lock twice.\n\nBug: 8695\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tobias Oed \u003ctobiasoed@hotmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "708f4b522371da5e6c615a49e1844195aff84cb4",
      "tree": "c87006648a17d68428e190c44133c6819972b9ad",
      "parents": [
        "46c65b71e6122b89cd7b2bb36c1ba26d07e84fcd"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Sun Jul 15 23:39:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:42 2007 -0700"
      },
      "message": "Make /proc/modules use seq_list_xxx helpers\n\nHere there is not need even in .show callback altering.  The original code\npasses list_head in *v.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b595756ec1f49e0049a9e01a1298d53a7faaa15",
      "tree": "cd06687ab3e5c7a5a4ef91903dff207a18c4db76",
      "parents": [
        "dbde0fcf9f8f6d477af3c32d9979e789ee680cde"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:17 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:06 2007 -0700"
      },
      "message": "sysfs: kill unnecessary attribute-\u003eowner\n\nsysfs is now completely out of driver/module lifetime game.  After\ndeletion, a sysfs node doesn\u0027t access anything outside sysfs proper,\nso there\u0027s no reason to hold onto the attribute owners.  Note that\noften the wrong modules were accounted for as owners leading to\naccessing removed modules.\n\nThis patch kills now unnecessary attribute-\u003eowner.  Note that with\nthis change, userland holding a sysfs node does not prevent the\nbacking module from being unloaded.\n\nFor more info regarding lifetime rule cleanup, please read the\nfollowing message.\n\n  http://article.gmane.org/gmane.linux.kernel/510293\n\n(tweaked by Greg to not delete the field just yet, to make it easier to\nmerge things properly.)\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "02a3e59a088749c08b0293ee1535f5bf48f5926c",
      "tree": "9475c395c1c704f4da9d506b9a52ff8e4299463e",
      "parents": [
        "b0e37650404b2302416ad3dbe649fdecba8d35d4"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed May 09 07:26:28 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 07:26:28 2007 +0200"
      },
      "message": "Fix minor typoes in kernel/module.c\n\nFix minor (comment) typoes in kernel/module.c.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "ffb45122766db220d0bf3d01848d575fbbcb6430",
      "tree": "a8fedf0518407ad12578a7c03aa2c3344f11ff3c",
      "parents": [
        "ea07890a680273b25127129fb555aac0d9324bea"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Simplify kallsyms_lookup()\n\nSeveral kallsyms_lookup() pass dummy arguments but only need, say, module\u0027s\nname.  Make kallsyms_lookup() accept NULLs where possible.\n\nAlso, makes picture clearer about what interfaces are needed for all symbol\nresolving business.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: 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": "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": "6d4f9c55002544bac1c99d0bab46c89319ab876e",
      "tree": "aea768f9ea94966d7fca165368ee10adf194525f",
      "parents": [
        "fe08a9d4982d9618ec25760ea715c46fe051e508"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue May 08 00:24:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "module: use krealloc\n\nThis converts an open-coded krealloc() to use the shiny new API.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\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": "ea62ccd00fd0b6720b033adfc9984f31130ce195",
      "tree": "9837b797b2466fffcb0af96c388b06eae9c3df18",
      "parents": [
        "886a0768affe9a32f18c45f8e1393bca9ece5392",
        "35060b6a9a4e1c89bc6fbea61090e302dbc61847"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:55:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:55:20 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6\n\n* \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6: (231 commits)\n  [PATCH] i386: Don\u0027t delete cpu_devs data to identify different x86 types in late_initcall\n  [PATCH] i386: type may be unused\n  [PATCH] i386: Some additional chipset register values validation.\n  [PATCH] i386: Add missing !X86_PAE dependincy to the 2G/2G split.\n  [PATCH] x86-64: Don\u0027t exclude asm-offsets.c in Documentation/dontdiff\n  [PATCH] i386: avoid redundant preempt_disable in __unlazy_fpu\n  [PATCH] i386: white space fixes in i387.h\n  [PATCH] i386: Drop noisy e820 debugging printks\n  [PATCH] x86-64: Fix allnoconfig error in genapic_flat.c\n  [PATCH] x86-64: Shut up warnings for vfat compat ioctls on other file systems\n  [PATCH] x86-64: Share identical video.S between i386 and x86-64\n  [PATCH] x86-64: Remove CONFIG_REORDER\n  [PATCH] x86-64: Print type and size correctly for unknown compat ioctls\n  [PATCH] i386: Remove copy_*_user BUG_ONs for (size \u003c 0)\n  [PATCH] i386: Little cleanups in smpboot.c\n  [PATCH] x86-64: Don\u0027t enable NUMA for a single node in K8 NUMA scanning\n  [PATCH] x86: Use RDTSCP for synchronous get_cycles if possible\n  [PATCH] i386: Add X86_FEATURE_RDTSCP\n  [PATCH] i386: Implement X86_FEATURE_SYNC_RDTSC on i386\n  [PATCH] i386: Implement alternative_io for i386\n  ...\n\nFix up trivial conflict in include/linux/highmem.h manually.\n\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": "b6e3590f8145c77b8fcef3247e2412335221412f",
      "tree": "47fb1a28e41fd9f4e1aef45b5482b69b8d7c154e",
      "parents": [
        "de90c5ce832b1218042316260ff9268b00fdcba3"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86: Allow percpu variables to be page-aligned\n\nLet\u0027s allow page-alignment in general for per-cpu data (wanted by Xen, and\nIngo suggested KVM as well).\n\nBecause larger alignments can use more room, we increase the max per-cpu\nmemory to 64k rather than 32k: it\u0027s getting a little tight.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b00742d399513a4100c24cc2accefdc1bb1e0b15",
      "tree": "57551a08eb218ed4aadb0a90806f33826df27f8a",
      "parents": [
        "bbba11c35baaad3f70f32e185a2c1d40d7901fe9"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:11 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:11 2007 +0200"
      },
      "message": "[PATCH] x86-64: Account for module percpu space separately from kernel percpu\n\nRather than using a single constant PERCPU_ENOUGH_ROOM, compute it as\nthe sum of kernel_percpu + PERCPU_MODULE_RESERVE.  This is now common\nto all architectures; if an architecture wants to set\nPERCPU_ENOUGH_ROOM to something special, then it may do so (ia64 is\nthe only one which does).\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "240936e18b75937e7866934df723c2db0011d24f",
      "tree": "0110cc4eecf98a3dec75e6a9d824907086591fe4",
      "parents": [
        "a53c46dc8253cc613ad66a2ca7aad6de8b7e61b9"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Apr 26 00:12:09 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:34 2007 -0700"
      },
      "message": "mod_sysfs_setup() doesn\u0027t return errno when kobject_add_dir() failure occurs\n\nmod_sysfs_setup() doesn\u0027t return an errno when kobject_add_dir() for module\n\"holders\" directory fails.  So caller of mod_sysfs_setup() will keep going\nand get oops.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0c84ce268b69855919b6ac7edc8f11caf21e9c88",
      "tree": "64e1fca7d80026db60ed4dde751d553193587034",
      "parents": [
        "bcd9b89c02295b075fda4bdb666f6641f8212226"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sun Apr 01 23:49:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 02 10:06:09 2007 -0700"
      },
      "message": "[PATCH] driver core: fix built-in drivers sysfs links\n\nbuilt-in drivers had broken sysfs links that caused bootup hangs for\ncertain driver unregistry sequences.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "161e232b8823e230d4fdf8064e606bbdf26f47e2",
      "tree": "7d29c9e38febd3e8baa1351b2d28555db5b34f8b",
      "parents": [
        "a967e127d0233f2472af64597de3f3920872310c"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Mar 09 15:25:04 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Mar 09 15:25:04 2007 -0800"
      },
      "message": "Revert \"driver core: refcounting fix\"\n\nThis reverts commit 63ce18cfe685115ff8d341bae4c9204a79043cf0.\n\nIt was the incorrect fix and causes a reference counting bug whenever\nany driver module is removed from the system. Mike Galbraith\n\u003cefault@gmx.de\u003e is looking for the real fix for his problem.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "dfff0a0671baf4e69fc676bf8150635407548288",
      "tree": "a477399030ef79029b7c8ef064a2695ea5f07c56",
      "parents": [
        "82f0cf9b7c42684c29189ddb6d0bc86eb1137fc4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 14:54:57 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 14:54:57 2007 -0800"
      },
      "message": "Revert \"Driver core: let request_module() send a /sys/modules/kmod/-uevent\"\n\nThis reverts commit c353c3fb0700a3c17ea2b0237710a184232ccd7f.\n\nIt turns out that we end up with a loop trying to load the unix\nmodule and calling netfilter to do that.  Will redo the patch\nlater to not have this loop.\n\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "63ce18cfe685115ff8d341bae4c9204a79043cf0",
      "tree": "7f37a6f9f0453b2122e490d6ef68f213d8a878a3",
      "parents": [
        "40cf67c5fcc513406558c01b91129280208e57bf"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Feb 21 12:45:35 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 14:52:09 2007 -0800"
      },
      "message": "driver core: refcounting fix\n\nFix a reference counting bug exposed by commit\n725522b5453dd680412f2b6463a988e4fd148757.  If driver.mod_name exists, we\ntake a reference in module_add_driver(), and never release it.  Undo that\nreference in module_remove_driver().\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\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": "b92be9f1ecd3c8b16e9bb22d55bb97b3d89f091a",
      "tree": "6f5b561fd2268214d3b511f6dc8e0c1a598f24b7",
      "parents": [
        "1350770112bd9bd5696cb52deb712370012d80e0"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Wed Feb 14 21:03:39 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 16 15:19:17 2007 -0800"
      },
      "message": "Driver: remove redundant kobject_unregister checks\n\nHere is a patch that removes all redundant kobject_unregister argument checks.\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c353c3fb0700a3c17ea2b0237710a184232ccd7f",
      "tree": "7b5fd590bd9b0a08bee8425ad074e993629683d1",
      "parents": [
        "89790fd789e024b23eb1fbccedd84a2015441ce0"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Feb 02 16:39:12 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 16 15:19:15 2007 -0800"
      },
      "message": "Driver core: let request_module() send a /sys/modules/kmod/-uevent\n\nOn recent systems, calls to /sbin/modprobe are handled by udev depending\non the kind of device the kernel has discovered. This patch creates an\nuevent for the kernels internal request_module(), to let udev take control\nover the request, instead of forking the binary directly by the kernel.\nThe direct execution of /sbin/modprobe can be disabled by setting:\n  /sys/module/kmod/mod_request_helper (/proc/sys/kernel/modprobe)\nto an empty string, the same way /proc/sys/kernel/hotplug is disabled on an\nudev system.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "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": "fe480a2675ed236af396597d9f05245c7bbd0149",
      "tree": "1320b12250fd7ff8b642cc205587c7d0cbf6d9bb",
      "parents": [
        "f30c53a873d0d227493197064b8886af2d57bbd6"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jan 15 11:50:02 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:12 2007 -0800"
      },
      "message": "Modules: only add drivers/ direcory if needed\n\nThis changes the module core to only create the drivers/ directory if we\nare going to put something in it.\n\nCc: 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": "7f422e2e84307bdd9b51c19a602e1601d160aebc",
      "tree": "f4e8ab9aeb5e9ee57eb7e05718b0c46dac9dd015",
      "parents": [
        "05a8057bb38bc803682f3e0af305c258b4566285"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 20 10:39:33 2006 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 05 12:33:38 2007 -0800"
      },
      "message": "[PATCH] Driver core: Fix prefix driver links in /sys/module by bus-name\n\nModules may have drivers with the same name on different buses.\nThis patch fixes this problem.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "a3f99f8ba8cbd2d4e231b767b3d6236a555da38c",
      "tree": "9e70e751e1ec612e16ebeb7eb85a76450f59b5fe",
      "parents": [
        "96ceeaf4ab66315a5149296bb58d8e1a9e6f2f6d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Dec 29 16:48:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:41 2006 -0800"
      },
      "message": "[PATCH] module: fix mod_sysfs_setup() return value\n\nmod_sysfs_setup() doesn\u0027t return error when kobject_add_dir() failed.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1f71740ab9714bf5ae9ee04c724ff0d5c67ca3dc",
      "tree": "0573d4f21472e7eb3509f71f74dfc8443a415db4",
      "parents": [
        "aef6fba4f97bbec1dc5a253f388be9a4c7a30e41"
      ],
      "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": "Wed Dec 13 15:38:45 2006 -0800"
      },
      "message": "Driver core: show \"initstate\" of module\n\nShow the initialization state(live, coming, going) of the module:\n  $ cat /sys/module/usbcore/initstate\n  live\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "15ad7cdcfd76450d4beebc789ec646664238184d",
      "tree": "279d05a76ae0906c23ee2de8c5684d95d9886ad3",
      "parents": [
        "4a08a9f68168e547c2baf100020e9b96cae5fbd1"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Wed Dec 06 20:40:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:46 2006 -0800"
      },
      "message": "[PATCH] struct seq_operations and struct file_operations constification\n\n - move some file_operations structs into the .rodata section\n\n - move static strings from policy_types[] array into the .rodata section\n\n - fix generic seq_operations usages, so that those structs may be defined\n   as \"const\" as well\n\n[akpm@osdl.org: couple of fixes]\nSigned-off-by: Helge Deller \u003cdeller@gmx.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": "0e2d57fc6e7dabdbfdd4f26c861e7e6c75d5bdcf",
      "tree": "0f8be2dd15fc6f40a357ec7035136bdb76fc0c7c",
      "parents": [
        "a5a89bae0449634fdb7aa7cdb1c5ba154e4a789b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Oct 29 22:46:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 30 12:08:40 2006 -0800"
      },
      "message": "[PATCH] ndiswrapper: don\u0027t set the module-\u003etaints flags\n\nFor ndiswrapper, don\u0027t set the module-\u003etaints flags, just set the kernel\nglobal tainted flag.  This should allow ndiswrapper to continue to use GPL\nsymbols.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Florin Malita \u003cfmalita@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "1d4d262769cd1894a0306b9c57e72f005cd9e75a"
}
