)]}'
{
  "log": [
    {
      "commit": "7cd2541cf2395962daf98ec32a141aba3398a9b2",
      "tree": "3c8bebb277462ba0de9d44233a970d34056dc45e",
      "parents": [
        "c62f981f9309486ba5546edbb5925f71e441fa65",
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 10:46:27 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 10:46:27 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc7\u0027 into perf/core\n\nConflicts:\n\tarch/x86/kernel/module.c\n\nMerge reason: Resolve the conflict, pick up fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5336377d6225959624146629ce3fc88ee8ecda3d",
      "tree": "571b9db75d1ba50faa1e399509563f367fd5694f",
      "parents": [
        "2f6b3aa7a563d05453c4d73ccf88191aee84333f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "message": "modules: Fix module_bug_list list corruption race\n\nWith all the recent module loading cleanups, we\u0027ve minimized the code\nthat sits under module_mutex, fixing various deadlocks and making it\npossible to do most of the module loading in parallel.\n\nHowever, that whole conversion totally missed the rather obscure code\nthat adds a new module to the list for BUG() handling.  That code was\ndoubly obscure because (a) the code itself lives in lib/bugs.c (for\ndubious reasons) and (b) it gets called from the architecture-specific\n\"module_finalize()\" rather than from generic code.\n\nCalling it from arch-specific code makes no sense what-so-ever to begin\nwith, and is now actively wrong since that code isn\u0027t protected by the\nmodule loading lock any more.\n\nSo this commit moves the \"module_bug_{finalize,cleanup}()\" calls away\nfrom the arch-specific code, and into the generic code - and in the\nprocess protects it with the module_mutex so that the list operations\nare now safe.\n\nFuture fixups:\n - move the module list handling code into kernel/module.c where it\n   belongs.\n - get rid of \u0027module_bug_list\u0027 and just use the regular list of modules\n   (called \u0027modules\u0027 - imagine that) that we already create and maintain\n   for other reasons.\n\nReported-and-tested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf5438fca2950b03c21ad868090cc1a8fcd49536",
      "tree": "9fc5693763263704de8d8ba1c37a84172dbe5eb7",
      "parents": [
        "fa6f2cc77081792e4edca9168420a3422299ef15"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 17 11:09:00 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 22 16:29:41 2010 -0400"
      },
      "message": "jump label: Base patch for jump label\n\nbase patch to implement \u0027jump labeling\u0027. Based on a new \u0027asm goto\u0027 inline\nassembly gcc mechanism, we can now branch to labels from an \u0027asm goto\u0027\nstatment. This allows us to create a \u0027no-op\u0027 fastpath, which can subsequently\nbe patched with a jump to the slowpath code. This is useful for code which\nmight be rarely used, but which we\u0027d like to be able to call, if needed.\nTracepoints are the current usecase that these are being implemented for.\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003cee8b3595967989fdaf84e698dc7447d315ce972a.1284733808.git.jbaron@redhat.com\u003e\n\n[ cleaned up some formating ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "51f3d0f474aaebbc253100fa32a49c8256812330",
      "tree": "7aad934d5c50231568e39be992d733304e0ecfcd",
      "parents": [
        "811d66a0e1e99902d365497eec7884113a2665bd"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:13 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:13 2010 +0930"
      },
      "message": "module: cleanup comments, remove noinline\n\nOn my (32-bit x86) machine, sys_init_module() uses 124 bytes of stack\nonce load_module() is inlined.\n\nThis effectively reverts ffb4ba76 which inlined it due to stack\npressure.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "811d66a0e1e99902d365497eec7884113a2665bd",
      "tree": "b28c4ba87c0f9ec23837f9abc75b6e257a6e0061",
      "parents": [
        "6526c534b2677ca601b7b92851437feb041d02a1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:12 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:13 2010 +0930"
      },
      "message": "module: group post-relocation functions into post_relocation()\n\nThis simply hoists more code out of load_module; we also put the\nidentification of the extable and dynamic debug table in with the\nothers in find_module_sections().\n\nWe move the taint check to the actual add/remove of the dynamic debug\ninfo: this is certain (find_module_sections is too early).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "6526c534b2677ca601b7b92851437feb041d02a1",
      "tree": "d6d0f6d8cf2b685b2d1d345d938ca5816860dd89",
      "parents": [
        "49668688dd5a5f46c72f965835388ed16c596055"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:12 2010 +0930"
      },
      "message": "module: move module args strndup_user to just before use\n\nInstead of copying and allocating the args and storing it in\nload_info, we can just allocate them right before we need them.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "49668688dd5a5f46c72f965835388ed16c596055",
      "tree": "da42c22348941617e65227a6ef48f1937d840fcc",
      "parents": [
        "36b0360d17dc3928cc96347a18a3a1cdbb7e506d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 +0930"
      },
      "message": "module: pass load_info into other functions\n\nPass the struct load_info into all the other functions in module\nloading.  This neatens things and makes them more consistent.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "36b0360d17dc3928cc96347a18a3a1cdbb7e506d",
      "tree": "e963d162006f842a475435988eba04a579114f0d",
      "parents": [
        "8f6d037815466cb25e7de8f00536eca71d94d4c3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 +0930"
      },
      "message": "module: fix sysfs cleanup for !CONFIG_SYSFS\n\nRestore the stub module_remove_modinfo_attrs, remove the now-unused\n!CONFIG_SYSFS module_sysfs_init.\n\nAlso, rename mod_kobject_remove() to mod_sysfs_teardown() as\nit is the logical counterpart to mod_sysfs_setup now.\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8f6d037815466cb25e7de8f00536eca71d94d4c3",
      "tree": "2ac887a230476a7550ff0360dd1ae0b678da8d82",
      "parents": [
        "d913188c75191114051cf0bac75dad444c6080fa"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 +0930"
      },
      "message": "module: sysfs cleanup\n\nWe change the sysfs functions to take struct load_info, and call\nthem all in mod_sysfs_setup().\n\nWe also clean up the #ifdefs a little.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d913188c75191114051cf0bac75dad444c6080fa",
      "tree": "1c32e48b3524f775ef9998f71b016d325205697b",
      "parents": [
        "511ca6ae43fbe0a7c9e0b50ad275f7ef24ef3b58"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 +0930"
      },
      "message": "module: layout_and_allocate\n\nlayout_and_allocate() does everything up to and including the final\nstruct module placement inside the allocated module memory.  We have\nto store the symbol layout information in our struct load_info though.\n\nThis avoids the nasty code we had before where \u0027mod\u0027 pointed first\nto the version inside the temporary allocation containing the entire\nfile, then later was moved to point to the real struct module: now\nthe main code only ever sees the final module address.\n\n(Includes fix for the Tony Luck-found Linus-diagnosed failure path\n error).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "511ca6ae43fbe0a7c9e0b50ad275f7ef24ef3b58",
      "tree": "596d11de1a99dfce758465de009a97ccdb7da011",
      "parents": [
        "eded41c1c6466081e0eb00d38719c6e6ee81a5d4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 +0930"
      },
      "message": "module: fix crash in get_ksymbol() when oopsing in module init\n\nAndrew had the sole pleasure of tickling this bug in linux-next; when we set\nup \"info-\u003estrtab\" it\u0027s pointing into the temporary copy of the module.  For\nmost uses that is fine, but kallsyms keeps a pointer around during module\nload (inside mod-\u003estrtab).\n\nIf we oops for some reason inside a module\u0027s init function, kallsyms will use\nthe mod-\u003estrtab pointer into the now-freed temporary module copy.\n\n(Later oopses work fine: after init we overwrite mod-\u003estrtab to point to a\n compacted core-only strtab).\n\nReported-by: Andrew \"Grumpy\" Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty \"Buggy\" Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Andrew \"Happy\" Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "eded41c1c6466081e0eb00d38719c6e6ee81a5d4",
      "tree": "d4c015b489b57503af437fe385c4fc07db232ad6",
      "parents": [
        "d6df72a06e067139d491da4a9d14d92ad39e7a50"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:07 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 +0930"
      },
      "message": "module: kallsyms functions take struct load_info\n\nSimple refactor causes us to lift struct definition to top of file.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d6df72a06e067139d491da4a9d14d92ad39e7a50",
      "tree": "2a7d0387df66c2d6f510cd9a24c622bf75ca669c",
      "parents": [
        "8b5f61a795fe37be090b0fd18b6b7271db9298e0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:07 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:07 2010 +0930"
      },
      "message": "module: refactor out section header rewriting: FIX modversions\n\nWe can\u0027t do the find_sec after removing the SHF_ALLOC flags; it won\u0027t\nfind the sections.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8b5f61a795fe37be090b0fd18b6b7271db9298e0",
      "tree": "4440e449af9207b25e62b4d8ad0dc16500720e65",
      "parents": [
        "3264d3f9dd532ed9c3eb9491619e3f485b72747f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 +0930"
      },
      "message": "module: refactor out section header rewriting\n\nPut all the \"rewrite and check section headers\" in one place.  This\nadds another iteration over the sections, but it\u0027s far clearer.  We\niterate once for every find_section() so we already iterate over many\ntimes.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3264d3f9dd532ed9c3eb9491619e3f485b72747f",
      "tree": "49a56f653c98578ef13c33a8fb6f7ba110517cf8",
      "parents": [
        "44032e631691adf1f406843d5e54deb795973ff7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 02 11:01:06 2010 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 +0930"
      },
      "message": "module: add load_info\n\nBtw, here\u0027s a patch that _looks_ large, but it really pretty trivial, and\nsets things up so that it would be way easier to split off pieces of the\nmodule loading.\n\nThe reason it looks large is that it creates a \"module_info\" structure\nthat contains all the module state that we\u0027re building up while loading,\ninstead of having individual variables for all the indices etc.\n\nSo the patch ends up being large, because every \"symindex\" access instead\nbecomes \"info.index.sym\" etc. That may be a few characters longer, but it\nthen means that we can just pass a pointer to that \"info\" structure\naround. and let all the pieces fill it in very naturally.\n\nAs an example of that, the patch also moves the initialization of all\nthose convenience variables into a \"setup_module_info()\" function. And at\nthis point it really does become very natural to start to peel off some of\nthe error labels and move them into the helper functions - now the\n\"truncated\" case is gone, and is handled inside that setup function\ninstead.\n\nSo maybe you don\u0027t like this approach, and it does make the variable\naccesses a bit longer, but I don\u0027t think unreadably so. And the patch\nreally does look big and scary, but there really should be absolutely no\nsemantic changes - most of it was a trivial and mindless rename.\n\nIn fact, it was so mindless that I on purpose kept the existing helper\nfunctions looking like this:\n\n-       err \u003d check_modinfo(mod, sechdrs, infoindex, versindex);\n+       err \u003d check_modinfo(mod, info.sechdrs, info.index.info, info.index.vers);\n\nrather than changing them to just take the \"info\" pointer. IOW, a second\nphase (if you think the approach is ok) would change that calling\nconvention to just do\n\n\terr \u003d check_modinfo(mod, \u0026info);\n\n(and same for \"layout_sections()\", \"layout_symtabs()\" etc.) Similarly,\nwhile right now it makes things _look_ bigger, with things like this:\n\n\tversindex \u003d find_sec(hdr, sechdrs, secstrings, \"__versions\");\n\nbecoming\n\n\tinfo-\u003eindex.vers \u003d find_sec(info-\u003ehdr, info-\u003esechdrs, info-\u003esecstrings, \"__versions\");\n\nin the new \"setup_module_info()\" function, that\u0027s again just a result of\nit being a search-and-replace patch. By using the \u0027info\u0027 pointer, we could\njust change the \u0027find_sec()\u0027 interface so that it ends up being\n\n\tinfo-\u003eindex.vers \u003d find_sec(info, \"__versions\");\n\ninstead, and then we\u0027d actually have a shorter and more readable line. So\nfor a lot of those mindless variable name expansions there\u0027s would be room\nfor separate cleanups.\n\nI didn\u0027t move quite everything in there - if we do this to layout_symtabs,\nfor example, we\u0027d want to move the percpu, symoffs, stroffs, *strmap\nvariables to be fields in that module_info structure too. But that\u0027s a\nmuch smaller patch, I moved just the really core stuff that is currently\nbeing set up and used in various parts.\n\nBut even in this rough form, it removes close to 70 lines from that\nfunction (but adds 22 lines overall, of course - the structure definition,\nthe helper function declarations and call-sites etc etc).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "44032e631691adf1f406843d5e54deb795973ff7",
      "tree": "e9cb4f72974386a2b174bf6e21f41be9aece7a10",
      "parents": [
        "22e268ebecc549f1b1907f114cb44d6044bdee3c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 12:59:05 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 +0930"
      },
      "message": "module: reduce stack usage for each_symbol()\n\nAnd now that I\u0027m looking at that call-chain (to see if it would make sense\nto use some other more specific lock - doesn\u0027t look like it: all the\nreaders are using RCU and this is the only writer), I also give you this\ntrivial one-liner. It changes each_symbol() to not put that constant array\non the stack, resulting in changing\n\n        movq    $C.388.31095, %rsi      #, tmp85\n        subq    $376, %rsp      #,\n        movq    %rdi, %rbx      # fn, fn\n        leaq    -208(%rbp), %rdi        #, tmp84\n        movq    %rbx, %rdx      # fn,\n        rep movsl\n        xorl    %esi, %esi      #\n        leaq    -208(%rbp), %rdi        #, tmp87\n        movq    %r12, %rcx      # data,\n        call    each_symbol_in_section.clone.0  #\n\ninto\n\n        xorl    %esi, %esi      #\n        subq    $216, %rsp      #,\n        movq    %rdi, %rbx      # fn, fn\n        movq    $arr.31078, %rdi        #,\n        call    each_symbol_in_section.clone.0  #\n\nwhich is not so much about being obviously shorter and simpler because we\ndon\u0027t unnecessarily copy that constant array around onto the stack, but\nalso about having a much smaller stack footprint (376 vs 216 bytes - see\nthe update of \u0027rsp\u0027).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "22e268ebecc549f1b1907f114cb44d6044bdee3c",
      "tree": "a1159e36de2a0ed6d3dcadd61622976971dd3b2d",
      "parents": [
        "9f85a4bbb1cf56f65b3d065a5f88204a757f2325"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:05 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:05 2010 +0930"
      },
      "message": "module: refactor load_module part 5\n\n1) Extract out the relocation loop into apply_relocations\n2) Extract license and version checks into check_module_license_and_versions\n3) Extract icache flushing into flush_module_icache\n4) Move __obsparm warning into find_module_sections\n5) Move license setting into check_modinfo.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9f85a4bbb1cf56f65b3d065a5f88204a757f2325",
      "tree": "28d674a40dcab0e0c31349736718993f1e9377d4",
      "parents": [
        "40dd2560ec2df21036db9ec8b971f92d98fd1969"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:04 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:05 2010 +0930"
      },
      "message": "module: refactor load_module part 4\n\nAllocate references inside module_unload_init(), clean up inside\nmodule_unload_free().\n\nThis version fixed to do allocation before __this_cpu_write, thanks to\nbug reports from linux-next from Dave Young \u003chidave.darkstar@gmail.com\u003e\nand Stephen Rothwell \u003csfr@canb.auug.org.au\u003e.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "40dd2560ec2df21036db9ec8b971f92d98fd1969",
      "tree": "a5785afb92619379172c9ee5b05501e075cc7bff",
      "parents": [
        "65b8a9b4d5525348e55cf63a43517610ee8e0970"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:03 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:04 2010 +0930"
      },
      "message": "module: refactor load_module part 3\n\nExtract out the allocation and copying in from userspace, and the\nfirst set of modinfo checks.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "65b8a9b4d5525348e55cf63a43517610ee8e0970",
      "tree": "1661d4bc368c768e803a1de4ddb0191bb71acab8",
      "parents": [
        "f91a13bb99b73961d4e2743a6ff296ac553abc4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 12:59:02 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:03 2010 +0930"
      },
      "message": "module: refactor load_module part 2\n\nHere\u0027s a second one. It\u0027s slightly less trivial - since we now have error\ncases - and equally untested so it may well be totally broken. But it also\ncleans up a bit more, and avoids one of the goto targets, because the\n\"move_module()\" helper now does both allocations or none.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f91a13bb99b73961d4e2743a6ff296ac553abc4f",
      "tree": "eb922cfbd4af965491200d307baf3b60b8b0319e",
      "parents": [
        "2409e74278b7fb917d39ef6d3c16223c04a386f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 12:59:02 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:02 2010 +0930"
      },
      "message": "module: refactor load_module\n\nI\u0027d start from the trivial stuff. There\u0027s a fair amount of straight-line\ncode that just makes the function hard to read just because you have to\npage up and down so far. Some of it is trivial to just create a helper\nfunction for.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "2409e74278b7fb917d39ef6d3c16223c04a386f2",
      "tree": "a5b9fe3cefc536960d3e5de819e46f375ed5476c",
      "parents": [
        "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Aug 05 12:59:00 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:02 2010 +0930"
      },
      "message": "module: module_unload_init() cleanup\n\nNo need to clear mod-\u003erefptr in module_unload_init(), since\nalloc_percpu() already clears allocated chunks.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (removed unused var)\n"
    },
    {
      "commit": "b82bab4bbe9efa7bc7177fc20620fff19bd95484",
      "tree": "c033a090fbd3caa61f2f3b6ece52c0b4dffeb229",
      "parents": [
        "d15aa2cc641bd193596382357de917b32f1b40cb"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Jul 27 13:18:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:06 2010 -0700"
      },
      "message": "dynamic debug: move ddebug_remove_module() down into free_module()\n\nThe command\n\n\techo \"file ec.c +p\" \u003e/sys/kernel/debug/dynamic_debug/control\n\ncauses an oops.\n\nMove the call to ddebug_remove_module() down into free_module().  In this\nway it should be called from all error paths.  Currently, we are missing\nthe remove if the module init routine fails.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nReported-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nTested-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.32+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff49d74ad383f54041378144ca1a229ee9aeaa59",
      "tree": "6f37335e313c9a680db8d4e4ce00d17aa11a099b",
      "parents": [
        "e3668dd83ba5958429984286efbc3055be5344c4"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Sat Jul 03 13:07:35 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 04 20:17:22 2010 -0700"
      },
      "message": "module: initialize module dynamic debug later\n\nWe should initialize the module dynamic debug datastructures\nonly after determining that the module is not loaded yet. This\nfixes a bug that introduced in 2.6.35-rc2, where when a trying\nto load a module twice, we also load it\u0027s dynamic printing data\ntwice which causes all sorts of nasty issues. Also handle\nthe dynamic debug cleanup later on failure.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (removed a #ifdef)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9bea7f23952d5948f8e5dfdff4de09bb9981fb5f",
      "tree": "9cb7231bcf901fe4198142b9b054ce5ae6ce34c8",
      "parents": [
        "be593f4ce4eb1bd40e38fdc403371f149f6f12eb"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 +0930"
      },
      "message": "module: fix bne2 \"gave up waiting for init of module libcrc32c\"\n\nProblem: it\u0027s hard to avoid an init routine stumbling over a\nrequest_module these days.  And it\u0027s not clear it\u0027s always a bad idea:\nfor example, a module like kvm with dynamic dependencies on kvm-intel\nor kvm-amd would be neater if it could simply request_module the right\none.\n\nIn this particular case, it\u0027s libcrc32c:\n\n\tlibcrc32c_mod_init\n\t crypto_alloc_shash\n\t  crypto_alloc_tfm\n\t   crypto_find_alg\n\t    crypto_alg_mod_lookup\n\t     crypto_larval_lookup\n\t      request_module\n\nIf another module is waiting inside resolve_symbol() for libcrc32c to\nfinish initializing (ie. bne2 depends on libcrc32c) then it does so\nholding the module lock, and our request_module() can\u0027t make progress\nuntil that is released.\n\nWaiting inside resolve_symbol() without the lock isn\u0027t all that hard:\nwe just need to pass the -EBUSY up the call chain so we can sleep\nwhere we don\u0027t hold the lock.  Error reporting is a bit trickier: we\nneed to copy the name of the unfinished module before releasing the\nlock.\n\nOther notes:\n1) This also fixes a theoretical issue where a weak dependency would allow\n   symbol version mismatches to be ignored.\n2) We rename use_module to ref_module to make life easier for the only\n   external user (the out-of-tree ksplice patches).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Tim Abbot \u003ctabbott@ksplice.com\u003e\nTested-by: Brandon Philips \u003cbphilips@suse.de\u003e\n"
    },
    {
      "commit": "be593f4ce4eb1bd40e38fdc403371f149f6f12eb",
      "tree": "693aee53e2d87a8ae92b6276d2aef766e8154814",
      "parents": [
        "3bafeb6247042dcbb72b0141ec7c7107de9f0b99"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 +0930"
      },
      "message": "module: verify_export_symbols under the lock\n\nIt disabled preempt so it was \"safe\", but nothing stops another module\nslipping in before this module is added to the global list now we don\u0027t\nhold the lock the whole time.\n\nSo we check this just after we check for duplicate modules, and just\nbefore we put the module in the global list.\n\n(find_symbol finds symbols in coming and going modules, too).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3bafeb6247042dcbb72b0141ec7c7107de9f0b99",
      "tree": "f9b8f2437455332cd64d94bedb0836ac0f2b6fd9",
      "parents": [
        "75676500f8298f0ee89db12db97294883c4b768e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 +0930"
      },
      "message": "module: move find_module check to end\n\nI think Rusty may have made the lock a bit _too_ finegrained there, and\ndidn\u0027t add it to some places that needed it. It looks, for example, like\nPATCH 1/2 actually drops the lock in places where it\u0027s needed\n(\"find_module()\" is documented to need it, but now load_module() didn\u0027t\nhold it at all when it did the find_module()).\n\nRather than adding a new \"module_loading\" list, I think we should be able\nto just use the existing \"modules\" list, and just fix up the locking a\nbit.\n\nIn fact, maybe we could just move the \"look up existing module\" a bit\nlater - optimistically assuming that the module doesn\u0027t exist, and then\njust undoing the work if it turns out that we were wrong, just before\nadding ourselves to the list.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "75676500f8298f0ee89db12db97294883c4b768e",
      "tree": "fbd74f1b6bfd258fac980c6cc3d4fa9eafa47d51",
      "parents": [
        "6407ebb271fc34440b306f305e1efb7685eece26"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: make locking more fine-grained.\n\nKay Sievers \u003ckay.sievers@vrfy.org\u003e reports that we still have some\ncontention over module loading which is slowing boot.\n\nLinus also disliked a previous \"drop lock and regrab\" patch to fix the\nbne2 \"gave up waiting for init of module libcrc32c\" message.\n\nThis is more ambitious: we only grab the lock where we need it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Brandon Philips \u003cbrandon@ifup.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6407ebb271fc34440b306f305e1efb7685eece26",
      "tree": "dd3fa7484bcaa4499138d2249dbed24f003fdf85",
      "parents": [
        "80a3d1bb410e000e176931a076cdf19a1e89a955"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: Make module sysfs functions private.\n\nThese were placed in the header in ef665c1a06 to get the various\nSYSFS/MODULE config combintations to compile.\n\nThat may have been necessary then, but it\u0027s not now.  These functions\nare all local to module.c.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "80a3d1bb410e000e176931a076cdf19a1e89a955",
      "tree": "6883bbc3b2032d9604374513ccfd496dd63e76ba",
      "parents": [
        "c8e21ced08b39ef8dfe7236fb2a923a95f645262"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: move sysfs exposure to end of load_module\n\nThis means a little extra work, but is more logical: we don\u0027t put\nanything in sysfs until we\u0027re about to put the module into the\nglobal list an parse its parameters.\n\nThis also gives us a logical place to put duplicate module detection\nin the next patch.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c8e21ced08b39ef8dfe7236fb2a923a95f645262",
      "tree": "da34400daf3049814b459b9c8ba507d90abfe2bc",
      "parents": [
        "2c02dfe7fe3fba97a5665d329d039d2415ea5607"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:35 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: fix kdb\u0027s illicit use of struct module_use.\n\nLinus changed the structure, and luckily this didn\u0027t compile any more.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "2c02dfe7fe3fba97a5665d329d039d2415ea5607",
      "tree": "7f50644bbfcc119cb85e21642a76eabfaf77b8ad",
      "parents": [
        "ad8456361fa19068cf49b50a4f98e41b73c08e76"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 31 12:19:37 2010 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:35 2010 +0930"
      },
      "message": "module: Make the \u0027usage\u0027 lists be two-way\n\nWhen adding a module that depends on another one, we used to create a\none-way list of \"modules_which_use_me\", so that module unloading could\nsee who needs a module.\n\nIt\u0027s actually quite simple to make that list go both ways: so that we\nnot only can see \"who uses me\", but also see a list of modules that are\n\"used by me\".\n\nIn fact, we always wanted that list in \"module_unload_free()\": when we\nunload a module, we want to also release all the other modules that are\nused by that module.  But because we didn\u0027t have that list, we used to\nfirst iterate over all modules, and then iterate over each \"used by me\"\nlist of that module.\n\nBy making the list two-way, we simplify module_unload_free(), and it\nallows for some trivial fixes later too.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (cleaned \u0026 rebased)\n"
    },
    {
      "commit": "1f73897861b8ef0be64ff4b801f8d6f830f683b5",
      "tree": "b4bae8f12e1422113910d8cb00a19d010dc4a52f",
      "parents": [
        "b904d7131d116900524bd36ec170dcd97846bfd3",
        "64ffc9ff424c65adcffe7d590018cc75e2d5d42a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 01 08:55:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 01 08:55:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-35\u0027 of git://repo.or.cz/linux-kbuild\n\n* \u0027for-35\u0027 of git://repo.or.cz/linux-kbuild: (81 commits)\n  kbuild: Revert part of e8d400a to resolve a conflict\n  kbuild: Fix checking of scm-identifier variable\n  gconfig: add support to show hidden options that have prompts\n  menuconfig: add support to show hidden options which have prompts\n  gconfig: remove show_debug option\n  gconfig: remove dbg_print_ptype() and dbg_print_stype()\n  kconfig: fix zconfdump()\n  kconfig: some small fixes\n  add random binaries to .gitignore\n  kbuild: Include gen_initramfs_list.sh and the file list in the .d file\n  kconfig: recalc symbol value before showing search results\n  .gitignore: ignore *.lzo files\n  headerdep: perlcritic warning\n  scripts/Makefile.lib: Align the output of LZO\n  kbuild: Generate modules.builtin in make modules_install\n  Revert \"kbuild: specify absolute paths for cscope\"\n  kbuild: Do not unnecessarily regenerate modules.builtin\n  headers_install: use local file handles\n  headers_check: fix perl warnings\n  export_report: fix perl warnings\n  ...\n"
    },
    {
      "commit": "293a7cfeedc2b2380a7c7274902323c3cf5f7575",
      "tree": "00576870400cb640fe92ea3f525338e6e3733a2e",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon May 31 19:53:50 2010 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 31 11:21:32 2010 -0700"
      },
      "message": "module: fix reference to mod-\u003epercpu after freeing module.\n\nRafael sees a sometimes crash at precpu_modfree from kernel/module.c; it\nonly occurred with another (since-reverted) patch, but that patch simply\nchanged timing to uncover this bug, it was otherwise unrelated.\n\nThe comment about the mod being freed is self-explanatory, but neither\nTejun nor I read it.  This bug was introduced in 259354deaa, after it\nhad previously been fixed in 6e2b75740b.  How embarrassing.\n\nReported-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nEmbarrassingly-Acked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nTested-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "218ce7351413b8287a80fab1d7b94906a5559f01",
      "tree": "36ba694491fa39fbde719b889a89cadbedd1f357",
      "parents": [
        "ec96e2fe954c23a54bfdf2673437a39e193a1822"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:48:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:48:30 2010 -0700"
      },
      "message": "Revert \"module: drop the lock while waiting for module to complete initialization.\"\n\nThis reverts commit 480b02df3aa9f07d1c7df0cd8be7a5ca73893455, since\nRafael reports that it causes occasional kernel paging request faults in\nload_module().\n\nDropping the module lock and re-taking it deep in the call-chain is\ndefinitely not the right thing to do.  That just turns the mutex from a\nlock into a \"random non-locking data structure\" that doesn\u0027t actually\nprotect what it\u0027s supposed to protect.\n\nRequested-and-tested-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Brandon Philips \u003cbrandon@ifup.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d52669b14e36f8365070324be009486d387ad00",
      "tree": "ed8965175a485f340f3061855773ca34f1e4f586",
      "parents": [
        "aaa04b4875f30659a0eb429e0e5203ae7fb7b18e"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Mon May 24 14:33:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:04 2010 -0700"
      },
      "message": "module: remove duplicate declaration of __ksymtab_gpl_future\n\nMinor cleanup on duplicate __{start/stop}__ksymtab_gpl_future.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8251096b427283c47e7d8f9568be6b388dd68ec",
      "tree": "edc9747e30b4b4413aa99acfbd3104d81b1c303b",
      "parents": [
        "27a3353a4525afe984f3b793681869d636136b69",
        "480b02df3aa9f07d1c7df0cd8be7a5ca73893455"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "message": "Merge branch \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: drop the lock while waiting for module to complete initialization.\n  MODULE_DEVICE_TABLE(isapnp, ...) does nothing\n  hisax_fcpcipnp: fix broken isapnp device table.\n  isapnp: move definitions to mod_devicetable.h so file2alias can reach them.\n"
    },
    {
      "commit": "90b9a32d8f441369b2f97a765d2d957b531eb653",
      "tree": "3146d251a983ba12226e75c121613de6f051af8b",
      "parents": [
        "8b108c609adefd98577c35f0a41497a610041a6c",
        "4402c153cb9c549cd21d6007ef0dfac50c8d148d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "message": "Merge branch \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: (25 commits)\n  kdb,debug_core: Allow the debug core to receive a panic notification\n  MAINTAINERS: update kgdb, kdb, and debug_core info\n  debug_core,kdb: Allow the debug core to process a recursive debug entry\n  printk,kdb: capture printk() when in kdb shell\n  kgdboc,kdb: Allow kdb to work on a non open console port\n  kgdb: Add the ability to schedule a breakpoint via a tasklet\n  mips,kgdb: kdb low level trap catch and stack trace\n  powerpc,kgdb: Introduce low level trap catching\n  x86,kgdb: Add low level debug hook\n  kgdb: remove post_primary_code references\n  kgdb,docs: Update the kgdb docs to include kdb\n  kgdboc,keyboard: Keyboard driver for kdb with kgdb\n  kgdb: gdb \"monitor\" -\u003e kdb passthrough\n  sparc,sunzilog: Add console polling support for sunzilog serial driver\n  sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console code\n  kgdb,8250,pl011: Return immediately from console poll\n  kgdb: core changes to support kdb\n  kdb: core for kgdb back end (2 of 2)\n  kdb: core for kgdb back end (1 of 2)\n  kgdb,blackfin: Add in kgdb_arch_set_pc for blackfin\n  ...\n"
    },
    {
      "commit": "2c3c8bea608866d8bd9dcf92657d57fdcac011c5",
      "tree": "f509b958d0a65c46c831dbdd447a81e706dd995a",
      "parents": [
        "68d75ed4b84a0806ecd4bc14da4759713b23a532"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Wed May 12 18:28:57 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: add struct file* to bin_attr callbacks\n\nThis allows bin_attr-\u003eread,write,mmap callbacks to check file specific data\n(such as inode owner) as part of any privilege validation.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "67fc4e0cb931d6b4ccf21248e4199b154478ecea",
      "tree": "4cf49d00bc9ac03c3c77d91fadd13fcabc75e0c9",
      "parents": [
        "5d5314d6795f3c1c0f415348ff8c51f7de042b77"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "message": "kdb: core for kgdb back end (2 of 2)\n\nThis patch contains the hooks and instrumentation into kernel which\nlive outside the kernel/debug directory, which the kdb core\nwill call to run commands like lsmod, dmesg, bt etc...\n\nCC: linux-arch@vger.kernel.org\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "480b02df3aa9f07d1c7df0cd8be7a5ca73893455",
      "tree": "27b51ecc15bb30b0d79bb0c702a0124c8b4848fc",
      "parents": [
        "fedb3d27d9e8606b3867b5ae49d6258458a07a72"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 19 17:33:39 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 19 17:33:39 2010 +0930"
      },
      "message": "module: drop the lock while waiting for module to complete initialization.\n\nThis fixes \"gave up waiting for init of module libcrc32c.\" which\nhappened at boot time due to multiple parallel module loads.\n\nThe problem was a deadlock: we wait for a module to finish\ninitializing, but we keep the module_lock mutex so it can\u0027t complete.\nIn particular, this could reasonably happen if a module does a\nrequest_module() in its initialization routine.\n\nSo we change use_module() to return an errno rather than a bool, and if\nit\u0027s -EBUSY we drop the lock and wait in the caller, then reaquire the\nlock.\n\nReported-by: Brandon Philips \u003cbrandon@ifup.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Brandon Philips \u003cbrandon@ifup.org\u003e\n"
    },
    {
      "commit": "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
      "tree": "506aa0b4bdbf90f61e7e9261c7db90aa1452dcce",
      "parents": [
        "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
        "9c6f7e43b4e02c161b53e97ba913855246876c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)\n  stop_machine: Move local variable closer to the usage site in cpu_stop_cpu_callback()\n  sched, wait: Use wrapper functions\n  sched: Remove a stale comment\n  ondemand: Make the iowait-is-busy time a sysfs tunable\n  ondemand: Solve a big performance issue by counting IOWAIT time as busy\n  sched: Intoduce get_cpu_iowait_time_us()\n  sched: Eliminate the ts-\u003eidle_lastupdate field\n  sched: Fold updating of the last_update_time_info into update_ts_time_stats()\n  sched: Update the idle statistics in get_cpu_idle_time_us()\n  sched: Introduce a function to update the idle statistics\n  sched: Add a comment to get_cpu_idle_time_us()\n  cpu_stop: add dummy implementation for UP\n  sched: Remove rq argument to the tracepoints\n  rcu: need barrier() in UP synchronize_sched_expedited()\n  sched: correctly place paranioa memory barriers in synchronize_sched_expedited()\n  sched: kill paranoia check in synchronize_sched_expedited()\n  sched: replace migration_thread with cpu_stop\n  stop_machine: reimplement using cpu_stop\n  cpu_stop: implement stop_cpu[s]()\n  sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n  ...\n"
    },
    {
      "commit": "3fc1f1e27a5b807791d72e5d992aa33b668a6626",
      "tree": "396c2f49909c506c3ad53fd6a9bdddf6c24f7860",
      "parents": [
        "1142d810298e694754498dbb4983fcb6cb7fd884"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:20 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:20 2010 +0200"
      },
      "message": "stop_machine: reimplement using cpu_stop\n\nReimplement stop_machine using cpu_stop.  As cpu stoppers are\nguaranteed to be available for all online cpus,\nstop_machine_create/destroy() are no longer necessary and removed.\n\nWith resource management and synchronization handled by cpu_stop, the\nnew implementation is much simpler.  Asking the cpu_stop to execute\nthe stop_cpu() state machine on all online cpus with cpu hotplug\ndisabled is enough.\n\nstop_machine itself doesn\u0027t need to manage any global resources\nanymore, so all per-instance information is rolled into struct\nstop_machine_data and the mutex and all static data variables are\nremoved.\n\nThe previous implementation created and destroyed RT workqueues as\nnecessary which made stop_machine() calls highly expensive on very\nlarge machines.  According to Dimitri Sivanich, preventing the dynamic\ncreation/destruction makes booting faster more than twice on very\nlarge machines.  cpu_stop resources are preallocated for all online\ncpus and should have the same effect.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Dimitri Sivanich \u003csivanich@sgi.com\u003e\n"
    },
    {
      "commit": "c1ab9cab75098924fa8226a8a371de66977439df",
      "tree": "767e77302ca8f2eb781c60624bc8518cd50ba6eb",
      "parents": [
        "ff0ff84a0767df48d728c36510365344a7e7d582",
        "f5284e7635787224dda1a2bf82a4c56b1c75671f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 09:06:12 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 10:18:47 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tinclude/linux/module.h\n\tkernel/module.c\n\nSemantic conflict:\n\tinclude/trace/events/module.h\n\nMerge reason: Resolve the conflict with upstream commit 5fbfb18 (\"Fix up\n              possibly racy module refcounting\")\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fbfb18d7a5b846946d52c4a10e3aaa213ec31b6",
      "tree": "bcfa13dec8cb2527c3007b3e5f957cb50e571c64",
      "parents": [
        "7da23b86e14b77c094b11a9fa5ef5b3758fc9193"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Apr 01 19:09:40 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 19:50:02 2010 -0700"
      },
      "message": "Fix up possibly racy module refcounting\n\nModule refcounting is implemented with a per-cpu counter for speed.\nHowever there is a race when tallying the counter where a reference may\nbe taken by one CPU and released by another.  Reference count summation\nmay then see the decrement without having seen the previous increment,\nleading to lower than expected count.  A module which never has its\nactual reference drop below 1 may return a reference count of 0 due to\nthis race.\n\nModule removal generally runs under stop_machine, which prevents this\nrace causing bugs due to removal of in-use modules.  However there are\nother real bugs in module.c code and driver code (module_refcount is\nexported) where the callers do not run under stop_machine.\n\nFix this by maintaining running per-cpu counters for the number of\nmodule refcount increments and the number of refcount decrements.  The\nincrements are tallied after the decrements, so any decrement seen will\nalways have its corresponding increment counted.  The final refcount is\nthe difference of the total increments and decrements, preventing a\nlow-refcount from being returned.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb0c53771fb2f5f66b0edb3ebce33be4bbf1c285",
      "tree": "1b5d4fd86e4c72482fa07aa6d57ba9f6cab72423",
      "parents": [
        "ae832d1e03ac9bf09fb8a07fb37908ab40c7cd0e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 29 14:25:18 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:56:59 2010 -0400"
      },
      "message": "tracing: Fix compile error in module tracepoints when MODULE_UNLOAD not set\n\nIf modules are configured in the build but unloading of modules is not,\nthen the refcnt is not defined. Place the get/put module tracepoints\nunder CONFIG_MODULE_UNLOAD since it references this field in the module\nstructure.\n\nAs a side-effect, this patch also reduces the code when MODULE_UNLOAD\nis not set, because these unused tracepoints are not created.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ae832d1e03ac9bf09fb8a07fb37908ab40c7cd0e",
      "tree": "cf754c5242e66aa0349559af880db5fa29af6f2a",
      "parents": [
        "50354a8a28d0c91695a2d6d25b5a821bfe557a07"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 24 10:57:43 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:56:58 2010 -0400"
      },
      "message": "tracing: Remove side effect from module tracepoints that caused a GPF\n\nRemove the @refcnt argument, because it has side-effects, and arguments with\nside-effects are not skipped by the jump over disabled instrumentation and are\nexecuted even when the tracepoint is disabled.\n\nThis was also causing a GPF as found by Randy Dunlap:\n\nSubject: 2.6.33 GP fault only when built with tracing\nLKML-Reference: \u003c4BA2B69D.3000309@oracle.com\u003e\n\nNote, the current 2.6.34-rc has a fix for the actual cause of the GPF,\nbut this fixes one of its triggers.\n\nTested-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4BA97FA7.6040406@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "10fad5e46f6c7bdfb01b1a012380a38e3c6ab346",
      "tree": "9ec6e3955e7f879f64ea79812cf5ecd41baa6939",
      "parents": [
        "259354deaaf03d49a02dbb9975d6ec2a54675672"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 10 18:57:54 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 29 23:07:12 2010 +0900"
      },
      "message": "percpu, module: implement and use is_kernel/module_percpu_address()\n\nlockdep has custom code to check whether a pointer belongs to static\npercpu area which is somewhat broken.  Implement proper\nis_kernel/module_percpu_address() and replace the custom code.\n\nOn UP, percpu variables are regular static variables and can\u0027t be\ndistinguished from them.  Always return %false on UP.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "259354deaaf03d49a02dbb9975d6ec2a54675672",
      "tree": "a05fbdfecfa5c2924235ce2fb7618b3acdecaa16",
      "parents": [
        "b72c40949b0f04728f2993a1434598d3bad094ea"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 10 18:56:10 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 29 23:07:12 2010 +0900"
      },
      "message": "module: encapsulate percpu handling better and record percpu_size\n\nBetter encapsulate module static percpu area handling so that code\noutsidef of CONFIG_SMP ifdef doesn\u0027t deal with mod-\u003epercpu directly\nand add mod-\u003epercpu_size and record percpu_size in it.  Both percpu\nfields are compiled out on UP.  While at it, mark mod-\u003epercpu w/\n__percpu.\n\nThis is to prepare for is_module_percpu_address().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "361795b1eb7c08e9e65a2ebb4a4e536294d378a2",
      "tree": "332cd308be3b0bfb6421c0af6a0ad6e1331b0880",
      "parents": [
        "35960258ed388cdcebdb71df35fd5126978ca325"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 12 13:41:56 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:51 2010 -0800"
      },
      "message": "sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on module dynamic attributes\n\nA little more whack-a-mole annotating the dynamic sysfs attributes.  I\nhad everything built into my earlier test kernel, and so I missed\nthese.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3d9a854c2dac3e888393b23ba7adafcce4d6d4b9",
      "tree": "5159c52a0718d80f66ef8bed299bde2690e7b82e",
      "parents": [
        "dafb9320671316fbd030b1d2e0ab9b96597223cb"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 20 01:03:43 2010 +0100"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Wed Mar 03 11:26:00 2010 +0100"
      },
      "message": "Rename .data[.percpu][.XXX] to .data[..percpu][..XXX].\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "ab386128f20c44c458a90039ab1bdc265ac474c9",
      "tree": "2ad188744922b1bb951fd10ff50dc04c83acce22",
      "parents": [
        "dbfc196a3cc1a2514ad0737a82f764de23bd65e6",
        "ab658321f32770b903a4426e2a6fae0392757755"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into percpu\n"
    },
    {
      "commit": "10b465aaf9536ee5a16652fa0700740183d48ec9",
      "tree": "402597ee1ed00b2cfb57f14dba96199134a79b26",
      "parents": [
        "74d2e4f8d79ae0c4b6ec027958d5b18058662eea"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sat Dec 19 14:43:01 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 01:11:29 2010 -0800"
      },
      "message": "modules: Skip empty sections when exporting section notes\n\nCommit 35dead4 \"modules: don\u0027t export section names of empty sections\nvia sysfs\" changed the set of sections that have attributes, but did\nnot change the iteration over these attributes in add_notes_attrs().\nThis can lead to add_notes_attrs() creating attributes with the wrong\nnames or with null name pointers.\n\nIntroduce a sect_empty() function and use it in both add_sect_attrs()\nand add_notes_attrs().\n\nReported-by: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nTested-by: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1783a240f491fb233f04edc042e16b18a7a79ba",
      "tree": "b523bf2db00fff96f1ab488168fc16ab56c372aa",
      "parents": [
        "38b7827fcdd660f591d645bd3ae6644456a4773c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Tue Jan 05 15:34:50 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 15:34:50 2010 +0900"
      },
      "message": "module: Use this_cpu_xx to dynamically allocate counters\n\nUse cpu ops to deal with the per cpu data instead of a local_t. Reduces memory\nrequirements, cache footprint and decreases cycle counts.\n\nThe this_cpu_xx operations are also used for !SMP mode. Otherwise we could\nnot drop the use of __module_ref_addr() which would make per cpu data handling\ncomplicated. this_cpu_xx operations have their own fallback for !SMP.\n\nV8-V9:\n- Leave include asm/module.h since ringbuffer.c depends on it. Nothing else\n  does though. Another patch will deal with that.\n- Remove spurious free.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "dcc7cd011220d7425a265c9bbf04c5731dacec1b",
      "tree": "4c2244f6e6ce94e2698572e9d2df3baea8449c2a",
      "parents": [
        "bf931a01a2c024a54204b4b02276af6e8d99a2c0",
        "b60e26a2f03d963f8c79ad7920d64abc4d38ecbc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 16:00:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 16:00:19 2009 -0800"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: fix kconfig for crc32 build error\n  kmemleak: Reduce the false positives by checking for modified objects\n  kmemleak: Show the age of an unreferenced object\n  kmemleak: Release the object lock before calling put_object()\n  kmemleak: Scan the _ftrace_events section in modules\n  kmemleak: Simplify the kmemleak_scan_area() function prototype\n  kmemleak: Do not use off-slab management with SLAB_NOLEAKTRACE\n"
    },
    {
      "commit": "d4703aefdbc8f9f347f6dcefcddd791294314eb7",
      "tree": "198936f4f91d6e571548f5b9aba9ee62e93134a6",
      "parents": [
        "a8773769d1a1e08d0ca15f890515401ab3860637"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 15 16:28:32 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 15 16:28:34 2009 +1030"
      },
      "message": "module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE\u003dy\n\npowerpc applies relocations to the kcrctab.  They\u0027re absolute symbols,\nbut it\u0027s not completely unreasonable: other archs may too, but the\nrelocation is often 0.\n\nhttp://lists.ozlabs.org/pipermail/linuxppc-dev/2009-November/077972.html\n\nInspired-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "35dead4235e2b67da7275b4122fed37099c2f462",
      "tree": "643b8e561025e5f49b17e3a74ee4d7812123aecd",
      "parents": [
        "ebd65a5855a1ddb21706e630c9ba1b9e80c767f7"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Thu Dec 03 00:29:15 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 02 15:38:25 2009 -0800"
      },
      "message": "modules: don\u0027t export section names of empty sections via sysfs\n\nOn the parisc architecture we face for each and every loaded kernel module\nthis kernel \"badness warning\":\n  sysfs: cannot create duplicate filename \u0027/module/ac97_bus/sections/.text\u0027\n  Badness at fs/sysfs/dir.c:487\n\nReason for that is, that on parisc all kernel modules do have multiple\n.text sections due to the usage of the -ffunction-sections compiler flag\nwhich is needed to reach all jump targets on this platform.\n\nAn objdump on such a kernel module gives:\nSections:\nIdx Name          Size      VMA       LMA       File off  Algn\n  0 .note.gnu.build-id 00000024  00000000  00000000  00000034  2**2\n                  CONTENTS, ALLOC, LOAD, READONLY, DATA\n  1 .text         00000000  00000000  00000000  00000058  2**0\n                  CONTENTS, ALLOC, LOAD, READONLY, CODE\n  2 .text.ac97_bus_match 0000001c  00000000  00000000  00000058  2**2\n                  CONTENTS, ALLOC, LOAD, READONLY, CODE\n  3 .text         00000000  00000000  00000000  000000d4  2**0\n                  CONTENTS, ALLOC, LOAD, READONLY, CODE\n...\nSince the .text sections are empty (size of 0 bytes) and won\u0027t be\nloaded by the kernel module loader anyway, I don\u0027t see a reason\nwhy such sections need to be listed under\n/sys/module/\u003cmodule_name\u003e/sections/\u003csection_name\u003e either.\n\nThe attached patch does solve this issue by not exporting section\nnames which are empty.\n\nThis fixes bugzilla http://bugzilla.kernel.org/show_bug.cgi?id\u003d14703\n\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\nCC: rusty@rustcorp.com.au\nCC: akpm@linux-foundation.org\nCC: James.Bottomley@HansenPartnership.com\nCC: roland@redhat.com\nCC: dave@hiauly1.hia.nrc.ca\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6f5aa1ea05686ad6e84593a00a04161e6dfb3a3",
      "tree": "4521e6f84911fc29d667314d8950be54342584d7",
      "parents": [
        "c017b4be3e84176cab10eca5e6c4faeb8cfc6f3e"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 13:33:10 2009 +0000"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 17:07:54 2009 +0000"
      },
      "message": "kmemleak: Scan the _ftrace_events section in modules\n\nThis section contains pointers to allocated objects and not scanning it\nleads to false positives.\n\nReported-by: Zdenek Kabelac \u003czdenek.kabelac@gmail.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "c017b4be3e84176cab10eca5e6c4faeb8cfc6f3e",
      "tree": "b858895759880262dff8754ef58b3e716bebae2c",
      "parents": [
        "e7cb55b946a2182c347047dc903c6ed0daef100c"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 13:33:09 2009 +0000"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 15:11:00 2009 +0000"
      },
      "message": "kmemleak: Simplify the kmemleak_scan_area() function prototype\n\nThis function was taking non-necessary arguments which can be determined\nby kmemleak. The patch also modifies the calling sites.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "23fb064bb96f001ecb8682129f7ee1bc1ca691bc",
      "tree": "ae9173b25aa69cda1b974c630334ffb61cee7ebe",
      "parents": [
        "52594762a39dfb6338c9d0906ca21dd9ae9453be"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 21 21:18:35 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 02 13:29:29 2009 +0900"
      },
      "message": "percpu: kill legacy percpu allocator\n\nWith ia64 converted, there\u0027s no arch left which still uses legacy\npercpu allocator.  Kill it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nDelightedly-acked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ae91c21dd29e413f4111978152c14061f0984b0",
      "tree": "64b4867e2ee81180661c287fa38d068975d1d37f",
      "parents": [
        "817b33d38f81c8736d39283c35c886ae4668f1af"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Oct 01 15:43:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "module: fix up CONFIG_KALLSYMS\u003dn build.\n\nStarting from commit 4a4962263f07d14660849ec134ee42b63e95ea9a \"reduce\nsymbol table for loaded modules (v2)\", the kernel/module.c build is broken\nwith CONFIG_KALLSYMS disabled.\n\n  CC      kernel/module.o\nkernel/module.c:1995: warning: type defaults to \u0027int\u0027 in declaration of \u0027Elf_Hdr\u0027\nkernel/module.c:1995: error: expected \u0027;\u0027, \u0027,\u0027 or \u0027)\u0027 before \u0027*\u0027 token\nkernel/module.c: In function \u0027load_module\u0027:\nkernel/module.c:2203: error: \u0027strmap\u0027 undeclared (first use in this function)\nkernel/module.c:2203: error: (Each undeclared identifier is reported only once\nkernel/module.c:2203: error: for each function it appears in.)\nkernel/module.c:2239: error: \u0027symoffs\u0027 undeclared (first use in this function)\nkernel/module.c:2239: error: implicit declaration of function \u0027layout_symtab\u0027\nkernel/module.c:2240: error: \u0027stroffs\u0027 undeclared (first use in this function)\nmake[1]: *** [kernel/module.o] Error 1\nmake: *** [kernel/module.o] Error 2\n\nThere are three different issues:\n\n    - layout_symtab() takes a const Elf_Ehdr\n\n    - layout_symtab() needs to return a value\n\n    - symoffs/stroffs/strmap are referenced by the load_module() code\n      despite being ifdefed out, which seems unnecessary given the noop\n      behaviour of layout_symtab()/add_kallsyms() in the case of\n      CONFIG_KALLSYMS\u003dn.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4187e7e9f1294afdcb3be5d00aa74412a1c2ded8",
      "tree": "1d4b3447cb2a7407d97e51ee5c48069d6b92c9e3",
      "parents": [
        "5bb241b325d7d91bc4ec0b394f31dffb17fe7978",
        "115e8a288252ef748f34f8b7c1115c563d702eda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:54 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  modules, tracing: Remove stale struct marker signature from module_layout()\n  tracing/workqueue: Use %pf in workqueue trace events\n  tracing: Fix a comment and a trivial format issue in tracepoint.h\n  tracing: Fix failure path in ftrace_regex_open()\n  tracing: Fix failure path in ftrace_graph_write()\n  tracing: Check the return value of trace_get_user()\n  tracing: Fix off-by-one in trace_get_user()\n"
    },
    {
      "commit": "ffa9f12a41ec117207e8d953f90b9c179546c8d7",
      "tree": "c587166a485b631bc8645caec4eff6f2e9f295fe",
      "parents": [
        "a263f7763c364015f92e7c097fa46c6673f6fcb0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:59 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:59 2009 +0930"
      },
      "message": "module: don\u0027t call percpu_modfree on NULL pointer.\n\nThe general one handles NULL, the static obsolescent\n(CONFIG_HAVE_LEGACY_PER_CPU_AREA) one in module.c doesn\u0027t; Eric\u0027s\ncommit 720eba31 assumed it did, and various frobbings since then kept\nthat assumption.\n\nAll other callers in module.c all protect it with an if; this effectively\ndoes the same as free_init is only goto if we fail percpu_modalloc().\n\nReported-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\nTested-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a263f7763c364015f92e7c097fa46c6673f6fcb0",
      "tree": "3fecc1a81f60ef71bc59c751f298496f9b0b1da6",
      "parents": [
        "1d7015caa082d465faeae5d6fd1be077ee6dfa87"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:58 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:59 2009 +0930"
      },
      "message": "module: fix memory leak when load fails after srcversion/version allocated\n\nNormally the twisty paths of sysfs will free the attributes, but not if\nwe fail before we hook it into sysfs (which is the last thing we do in\nload_module).\n\n(This sysfs code is a turd, no doubt there are other issues lurking too).\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nTested-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\n"
    },
    {
      "commit": "554bdfe5acf3715e87c8d5e25a4f9a896ac9f014",
      "tree": "8a03f9799114c8100a3e54d230d9e31703248f7a",
      "parents": [
        "4a4962263f07d14660849ec134ee42b63e95ea9a"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Jul 06 14:51:44 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:57 2009 +0930"
      },
      "message": "module: reduce string table for loaded modules (v2)\n\nAlso remove all parts of the string table (referenced by the symbol\ntable) that are not needed for kallsyms use (i.e. which were only\nreferenced by symbols discarded by the previous patch, or not\nreferenced at all for whatever reason).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4a4962263f07d14660849ec134ee42b63e95ea9a",
      "tree": "0edfe694167c224a6d9e48901743edd478a71c29",
      "parents": [
        "94a8d5caba74211ec76dac80fc6e2d5c391530df"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Jul 06 14:50:42 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:57 2009 +0930"
      },
      "message": "module: reduce symbol table for loaded modules (v2)\n\nDiscard all symbols not interesting for kallsyms use: absolute,\nsection, and in the common case (!KALLSYMS_ALL) data ones.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "115e8a288252ef748f34f8b7c1115c563d702eda",
      "tree": "8fb0f431ac188a34575fd13fcdb94e3dcd5fa433",
      "parents": [
        "9961079348d43dddb1f21118c17f054f63bbaa05"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 18:22:11 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 23 10:34:21 2009 +0200"
      },
      "message": "modules, tracing: Remove stale struct marker signature from module_layout()\n\nLinus reported this new build warning:\n\n  kernel/module.c:2951: warning: ?struct marker? declared inside parameter list\n  kernel/module.c:2951: warning: its scope is only this definition or declaration, which is probably not what you want\n\nCaused by:\n\n  fc53776: tracing: Remove markers\n\nmodule_layout() is an artificial symbol with \u0027significant\u0027 symbols\nlisted in its argument list so that it gets a proper argument types\nsignature that modversions can pick up to decide whether a\nmodule is version-compatible or not. If these dont match then we\nwont even look at a module.\n\nRemove the stale marker symbol.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003calpine.LFD.2.01.0909210908020.4950@localhost.localdomain\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb8cdec4a984fde123a91250dcc9e0bddf5eafdc",
      "tree": "9f97b5949e6e63ae947363149b62ed224dad5ab9",
      "parents": [
        "02e87d1a934c70e3599eb7a29db783806d329e17"
      ],
      "author": {
        "name": "Bernd Schmidt",
        "email": "bernds_cb1@t-online.de",
        "time": "Mon Sep 21 17:03:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:43 2009 -0700"
      },
      "message": "nommu: add support for Memory Protection Units (MPU)\n\nSome architectures (like the Blackfin arch) implement some of the\n\"simpler\" features that one would expect out of a MMU such as memory\nprotection.\n\nIn our case, we actually get read/write/exec protection down to the page\nboundary so processes can\u0027t stomp on each other let alone the kernel.\n\nThere is a performance decrease (which depends greatly on the workload)\nhowever as the hardware/software interaction was not optimized at design\ntime.\n\nSigned-off-by: Bernd Schmidt \u003cbernds_cb1@t-online.de\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc5377668c3d808e1d53c4aee152c836f55c3490",
      "tree": "366723ccb26a64c311074c346721aaf4ff0e7d58",
      "parents": [
        "df58bee21ed218cb7dfb561a590b1bd2a99531cf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 17 19:35:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 21:22:08 2009 +0200"
      },
      "message": "tracing: Remove markers\n\nNow that the last users of markers have migrated to the event\ntracer we can kill off the (now orphan) support code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20090917173527.GA1699@lst.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ada3fa15057205b7d3f727bba5cd26b5912e350f",
      "tree": "60962fc9e4021b92f484d1a58e72cd3906d4f3db",
      "parents": [
        "2f82af08fcc7dc01a7e98a49a5995a77e32a2925",
        "5579fd7e6aed8860ea0c8e3f11897493153b10ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:39:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:39:44 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (46 commits)\n  powerpc64: convert to dynamic percpu allocator\n  sparc64: use embedding percpu first chunk allocator\n  percpu: kill lpage first chunk allocator\n  x86,percpu: use embedding for 64bit NUMA and page for 32bit NUMA\n  percpu: update embedding first chunk allocator to handle sparse units\n  percpu: use group information to allocate vmap areas sparsely\n  vmalloc: implement pcpu_get_vm_areas()\n  vmalloc: separate out insert_vmalloc_vm()\n  percpu: add chunk-\u003ebase_addr\n  percpu: add pcpu_unit_offsets[]\n  percpu: introduce pcpu_alloc_info and pcpu_group_info\n  percpu: move pcpu_lpage_build_unit_map() and pcpul_lpage_dump_cfg() upward\n  percpu: add @align to pcpu_fc_alloc_fn_t\n  percpu: make @dyn_size mandatory for pcpu_setup_first_chunk()\n  percpu: drop @static_size from first chunk allocators\n  percpu: generalize first chunk allocator selection\n  percpu: build first chunk allocators selectively\n  percpu: rename 4k first chunk allocator to page\n  percpu: improve boot messages\n  percpu: fix pcpu_reclaim() locking\n  ...\n\nFix trivial conflict as by Tejun Heo in kernel/sched.c\n"
    },
    {
      "commit": "ed011b22ce567eabefa9ea571d3721c10ecd0553",
      "tree": "c7aee6684613075c772388a99a9137014549434e",
      "parents": [
        "85bac32c4a52c592b857f2c360cc5ec93a097d70",
        "e07cccf4046978df10f2e13fe2b99b2f9b3a65db"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 06 06:11:38 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 06 06:11:42 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.31-rc9\u0027 into tracing/core\n\nMerge reason: move from -rc5 to -rc9.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea6bff368548d79529421a9dc0710fc5330eb504",
      "tree": "94739882e72fabd5d3822af80a45a8aea3d52c1d",
      "parents": [
        "4ed86af67e04cb5eb93faba589d102726207865a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 28 10:44:56 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 19:35:00 2009 -1000"
      },
      "message": "modules: Fix build error in the !CONFIG_KALLSYMS case\n\n\u003e James Bottomley (1):\n\u003e       module: workaround duplicate section names\n\n-tip testing found that this patch breaks the build on x86 if\nCONFIG_KALLSYMS is disabled:\n\n kernel/module.c: In function ‘load_module’:\n kernel/module.c:2367: error: ‘struct module’ has no member named ‘sect_attrs’\n distcc[8269] ERROR: compile kernel/module.c on ph/32 failed\n make[1]: *** [kernel/module.o] Error 1\n make: *** [kernel] Error 2\n make: *** Waiting for unfinished jobs....\n\nCommit 1b364bf misses the fact that section attributes are only\nbuilt and dealt with if kallsyms is enabled. The patch below fixes\nthis.\n\n( note, technically speaking this should depend on CONFIG_SYSFS as\n  well but this patch is correct too and keeps the #ifdef less\n  intrusive - in the KALLSYMS \u0026\u0026 !SYSFS case the code is a NOP. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n[ Replaced patch with a slightly cleaner variation by James Bottomley ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b364bf438cf337a3818aee77d68c0713f3e1fc4",
      "tree": "878d30319bd3721c6075eef8f3341c6fa9a5afd6",
      "parents": [
        "7d1d16e416e61aeef8655d542f8e4a4fc6e808e4"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Aug 26 22:04:12 2009 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 27 12:33:19 2009 -0700"
      },
      "message": "module: workaround duplicate section names\n\nThe root cause is a duplicate section name (.text); is this legal?\n[ Amerigo Wang: \"AFAIK, yes.\" ]\n\nHowever, there\u0027s a problem with commit\n6d76013381ed28979cd122eb4b249a88b5e384fa in that if you fail to allocate\na mod-\u003esect_attrs (in this case it\u0027s null because of the duplication),\nit still gets used without checking in add_notes_attrs()\n\nThis should fix it\n\n[ This patch leaves other problems, particularly the sections directory,\n  but recent parisc toolchains seem to produce these modules and this\n  prevents a crash and is a minimal change -- RR ]\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d1d16e416e61aeef8655d542f8e4a4fc6e808e4",
      "tree": "dfa53b29720cffdba1a64876de30567b6ed5e766",
      "parents": [
        "0a80fb10239b04c45e5e80aad8d4b2ca5ac407b2"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 26 22:02:54 2009 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 27 12:33:19 2009 -0700"
      },
      "message": "module: fix BUG_ON() for powerpc (and other function descriptor archs)\n\nThe rarely-used symbol_put_addr() needs to use dereference_function_descriptor\non powerpc.\n\nReported-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au.\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ead8b8313d92b3a69a1a61b0dcbc4cd66c960dc",
      "tree": "614759ec1b24ea9f6d1409b866c80df0611e5d6b",
      "parents": [
        "60d970c254b95ec7a0fc4c590b510253987b64a0"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Aug 17 16:56:28 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 17 11:25:08 2009 +0200"
      },
      "message": "tracing/events: Add module tracepoints\n\nAdd trace points to trace module_load, module_free, module_get,\nmodule_put and module_request, and use trace_event facility to\nget the trace output.\n\nHere\u0027s the sample output:\n\n     TASK-PID    CPU#    TIMESTAMP  FUNCTION\n        | |       |          |         |\n    \u003c...\u003e-42    [000]     1.758380: module_request: fb0 wait\u003d1 call_site\u003dfb_open\n    ...\n    \u003c...\u003e-60    [000]     3.269403: module_load: scsi_wait_scan\n    \u003c...\u003e-60    [000]     3.269432: module_put: scsi_wait_scan call_site\u003dsys_init_module refcnt\u003d0\n    \u003c...\u003e-61    [001]     3.273168: module_free: scsi_wait_scan\n    ...\n    \u003c...\u003e-1021  [000]    13.836081: module_load: sunrpc\n    \u003c...\u003e-1021  [000]    13.840589: module_put: sunrpc call_site\u003dsys_init_module refcnt\u003d-1\n    \u003c...\u003e-1027  [000]    13.848098: module_get: sunrpc call_site\u003dtry_module_get refcnt\u003d0\n    \u003c...\u003e-1027  [000]    13.848308: module_get: sunrpc call_site\u003dget_filesystem refcnt\u003d1\n    \u003c...\u003e-1027  [000]    13.848692: module_put: sunrpc call_site\u003dput_filesystem refcnt\u003d0\n    ...\n modprobe-2587  [001]  1088.437213: module_load: trace_events_sample F\n modprobe-2587  [001]  1088.437786: module_put: trace_events_sample call_site\u003dsys_init_module refcnt\u003d0\n\nNote:\n\n- the taints flag can be \u0027F\u0027, \u0027C\u0027 and/or \u0027P\u0027 if mod-\u003etaints !\u003d 0\n\n- the module refcnt is percpu, so it can be negative in a\n  specific cpu\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c4A891B3C.5030608@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "384be2b18a5f9475eab9ca2bdfa95cc1a04ef59c",
      "tree": "04c93f391a1b65c8bf8d7ba8643c07d26c26590a",
      "parents": [
        "a76761b621bcd8336065c4fe3a74f046858bc34c",
        "142d44b0dd6741a64a7bdbe029110e7c1dcf1d23"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 14:41:02 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 14:45:31 2009 +0900"
      },
      "message": "Merge branch \u0027percpu-for-linus\u0027 into percpu-for-next\n\nConflicts:\n\tarch/sparc/kernel/smp_64.c\n\tarch/x86/kernel/cpu/perf_counter.c\n\tarch/x86/kernel/setup_percpu.c\n\tdrivers/cpufreq/cpufreq_ondemand.c\n\tmm/percpu.c\n\nConflicts in core and arch percpu codes are mostly from commit\ned78e1e078dd44249f88b1dd8c76dafb39567161 which substituted many\nnum_possible_cpus() with nr_cpu_ids.  As for-next branch has moved all\nthe first chunk allocators into mm/percpu.c, the changes are moved\nfrom arch code to mm/percpu.c.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6560dc160f3a96b8f1f43e2c6b51aa6eb9898b90",
      "tree": "f6cd276df257ab3784a6eb3c47728c09f5d872e3",
      "parents": [
        "2bc20d09b03bca6e068e07440812d75b70b1c0b2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Thu Jul 23 23:42:08 2009 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:15:45 2009 -0700"
      },
      "message": "module: use MODULE_SYMBOL_PREFIX with module_layout\n\nThe check_modstruct_version() needs to look up the symbol \"module_layout\"\nin the kernel, but it does so literally and not by a C identifier.  The\ntrouble is that it does not include a symbol prefix for those ports that\nneed it (like the Blackfin and H8300 port).  So make sure we tack on the\nMODULE_SYMBOL_PREFIX define to the front of it.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad361c9884e809340f6daca80d56a9e9c871690a",
      "tree": "7ec02c9934964fecdc791a0df0fc722d3bda5c53",
      "parents": [
        "e3288775ff63900fbb7db505f2b9a1bee98f07df"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Jul 06 13:05:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 08 10:30:03 2009 -0700"
      },
      "message": "Remove multiple KERN_ prefixes from printk formats\n\nCommit 5fd29d6ccbc98884569d6f3105aeca70858b3e0f (\"printk: clean up\nhandling of log-levels and newlines\") changed printk semantics.  printk\nlines with multiple KERN_\u003clevel\u003e prefixes are no longer emitted as\nbefore the patch.\n\n\u003clevel\u003e is now included in the output on each additional use.\n\nRemove all uses of multiple KERN_\u003clevel\u003es in formats.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e74e396204bfcb67570ba4517b08f5918e69afea",
      "tree": "df57c859e10f7fcbe5790e9b51a106d5bccfe8dc",
      "parents": [
        "0017c869ddcb73069905d09f9e98e68627466237"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 30 19:07:44 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jun 24 15:13:35 2009 +0900"
      },
      "message": "percpu: use dynamic percpu allocator as the default percpu allocator\n\nThis patch makes most !CONFIG_HAVE_SETUP_PER_CPU_AREA archs use\ndynamic percpu allocator.  The first chunk is allocated using\nembedding helper and 8k is reserved for modules.  This ensures that\nthe new allocator behaves almost identically to the original allocator\nas long as static percpu variables are concerned, so it shouldn\u0027t\nintroduce much breakage.\n\ns390 and alpha use custom SHIFT_PERCPU_PTR() to work around addressing\nrange limit the addressing model imposes.  Unfortunately, this breaks\nif the address is specified using a variable, so for now, the two\narchs aren\u0027t converted.\n\nThe following architectures are affected by this change.\n\n* sh\n* arm\n* cris\n* mips\n* sparc(32)\n* blackfin\n* avr32\n* parisc (broken, under investigation)\n* m32r\n* powerpc(32)\n\nAs this change makes the dynamic allocator the default one,\nCONFIG_HAVE_DYNAMIC_PER_CPU_AREA is replaced with its invert -\nCONFIG_HAVE_LEGACY_PER_CPU_AREA, which is added to yet-to-be converted\narchs.  These archs implement their own setup_per_cpu_areas() and the\nconversion is not trivial.\n\n* powerpc(64)\n* sparc(64)\n* ia64\n* alpha\n* s390\n\nBoot and batch alloc/free tests on x86_32 with debug code (x86_32\ndoesn\u0027t use default first chunk initialization).  Compile tested on\nsparc(32), powerpc(32), arm and alpha.\n\nKyle McMartin reported that this change breaks parisc.  The problem is\nstill under investigation and he is okay with pushing this patch\nforward and fixing parisc later.\n\n[ Impact: use dynamic allocator for most archs w/o custom percpu setup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Bryan Wu \u003ccooloney@kernel.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b99b87f70c7785ab1e253c6220f4b0b57ce3a7f7",
      "tree": "ec5688052334448ec8edd3a1a9cb95cd68501ac7",
      "parents": [
        "e24aca672ff06aff0e6a1045efab86043ea5f735"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Wed Jun 17 16:28:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:57 2009 -0700"
      },
      "message": "kernel: constructor support\n\nCall constructors (gcc-generated initcall-like functions) during kernel\nstart and module load.  Constructors are e.g.  used for gcov data\ninitialization.\n\nDisable constructor support for usermode Linux to prevent conflicts with\nhost glibc.\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Li Wei \u003cW.Li@Sun.COM\u003e\nCc: Michael Ellerman \u003cmichaele@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheicars2@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cmschwid2@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b231125af7811a2f68c455d3bda95ac170ee4fa6",
      "tree": "adae63748e62d4e956f29c5f873d707874ffe556",
      "parents": [
        "e28d713704117bca0820c732210df6075b09f13b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:07:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:07:14 2009 -0700"
      },
      "message": "printk: add KERN_DEFAULT loglevel to print_modules()\n\nSeveral WARN_ON() messages omit the \u0027\\n\u0027 at the end of the string, which\nis a simple (and understandable) error.  The next line printed after\nthat warning line is usually the current module list, and that printk\ndoes not have a log-level marker - resulting in one long mixed-up line.\n\nAdding this loglevel marker will now avoid this unreadable mess.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad6561dffa17f17bb68d7207d422c26c381c4313",
      "tree": "04cf6480ccd6732ab0ffe3d552bd32599390ff65",
      "parents": [
        "c398df30d5caad626ac72bfab0361a7b0f67a661"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:47:03 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:47:04 2009 +0930"
      },
      "message": "module: trim exception table on init free.\n\nIt\u0027s theoretically possible that there are exception table entries\nwhich point into the (freed) init text of modules.  These could cause\nfuture problems if other modules get loaded into that memory and cause\nan exception as we\u0027d see the wrong fixup.  The only case I know of is\nkvm-intel.ko (when CONFIG_CC_OPTIMIZE_FOR_SIZE\u003dn).\n\nAmerigo fixed this long-standing FIXME in the x86 version, but this\npatch is more general.\n\nThis implements trim_init_extable(); most archs are simple since they\nuse the standard lib/extable.c sort code.  Alpha and IA64 use relative\naddresses in their fixups, so thier trimming is a slight variation.\n\nSparc32 is unique; it doesn\u0027t seem to define ARCH_HAS_SORT_EXTABLE,\nyet it defines its own sort_extable() which overrides the one in lib.\nIt doesn\u0027t sort, so we have to mark deleted entries instead of\nactually trimming them.\n\nInspired-by: Amerigo Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: linux-alpha@vger.kernel.org\nCc: sparclinux@vger.kernel.org\nCc: linux-ia64@vger.kernel.org\n"
    },
    {
      "commit": "512626a04e72aca60effe111fa0333ed0b195d21",
      "tree": "c22e23b0dcc2dd2ff5a9a96a007de6799e9223de",
      "parents": [
        "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
        "3aa27bbe7a6536d1ec859d3a97caf3319b5081b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Add the corresponding MAINTAINERS entry\n  kmemleak: Simple testing module for kmemleak\n  kmemleak: Enable the building of the memory leak detector\n  kmemleak: Remove some of the kmemleak false positives\n  kmemleak: Add modules support\n  kmemleak: Add kmemleak_alloc callback from alloc_large_system_hash\n  kmemleak: Add the vmalloc memory allocation/freeing hooks\n  kmemleak: Add the slub memory allocation/freeing hooks\n  kmemleak: Add the slob memory allocation/freeing hooks\n  kmemleak: Add the slab memory allocation/freeing hooks\n  kmemleak: Add documentation on the memory leak detector\n  kmemleak: Add the base support\n\nManual conflict resolution (with the slab/earlyboot changes) in:\n\tdrivers/char/vt.c\n\tinit/main.c\n\tmm/slab.c\n"
    },
    {
      "commit": "3296ca27f50ecbd71db1d808c7a72d311027f919",
      "tree": "833eaa58b2013bda86d4bd95faf6efad7a2d5ca4",
      "parents": [
        "e893123c7378192c094747dadec326b7c000c190",
        "73fbad283cfbbcf02939bdbda31fc4a30e729cca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (44 commits)\n  nommu: Provide mmap_min_addr definition.\n  TOMOYO: Add description of lists and structures.\n  TOMOYO: Remove unused field.\n  integrity: ima audit dentry_open failure\n  TOMOYO: Remove unused parameter.\n  security: use mmap_min_addr indepedently of security models\n  TOMOYO: Simplify policy reader.\n  TOMOYO: Remove redundant markers.\n  SELinux: define audit permissions for audit tree netlink messages\n  TOMOYO: Remove unused mutex.\n  tomoyo: avoid get+put of task_struct\n  smack: Remove redundant initialization.\n  integrity: nfsd imbalance bug fix\n  rootplug: Remove redundant initialization.\n  smack: do not beyond ARRAY_SIZE of data\n  integrity: move ima_counts_get\n  integrity: path_check update\n  IMA: Add __init notation to ima functions\n  IMA: Minimal IMA policy and boot param for TCB IMA policy\n  selinux: remove obsolete read buffer limit from sel_read_bool\n  ...\n"
    },
    {
      "commit": "4f2294b6dc88d99295230d97fef2c9863cec44c3",
      "tree": "186c4b99261215b40e1e112e59259bb7f409cbaa",
      "parents": [
        "dbb1f81ca67a56c6cfce4c94d07c76378fd4af9e"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:23:20 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:03:31 2009 +0100"
      },
      "message": "kmemleak: Add modules support\n\nThis patch handles the kmemleak operations needed for modules loading so\nthat memory allocations from inside a module are properly tracked.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "d254117099d711f215e62427f55dfb8ebd5ad011",
      "tree": "0848ff8dd74314fec14a86497f8d288c86ba7c65",
      "parents": [
        "07ff7a0b187f3951788f64ae1f30e8109bc8e9eb",
        "8c9ed899b44c19e81859fbb0e9d659fe2f8630fc"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 08 17:56:47 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri May 08 17:56:47 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "93eb677d74a4f7d3edfb678c94f6c0544d9fbad2",
      "tree": "8bbc46895be623a78316230362e94969dbb02135",
      "parents": [
        "f3948f8857ef5de239f28a61dddb1554a0ae4c2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 15 13:24:06 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 16:59:15 2009 +0200"
      },
      "message": "ftrace: use module notifier for function tracer\n\nThe hooks in the module code for the function tracer must be called\nbefore any of that module code runs. The function tracer hooks\nmodify the module (replacing calls to mcount to nops). If the code\nis executed while the change occurs, then the CPU can take a GPF.\n\nTo handle the above with a bit of paranoia, I originally implemented\nthe hooks as calls directly from the module code.\n\nAfter examining the notifier calls, it looks as though the start up\nnotify is called before any of the module\u0027s code is executed. This makes\nthe use of the notify safe with ftrace.\n\nOnly the startup notify is required to be \"safe\". The shutdown simply\nremoves the entries from the ftrace function list, and does not modify\nany code.\n\nThis change has another benefit. It removes a issue with a reverse dependency\nin the mutexes of ftrace_lock and module_mutex.\n\n[ Impact: fix lock dependency bug, cleanup ]\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "19e4529ee7345079eeacc8e40cf69a304a64dc23",
      "tree": "5f08c1803c10178373468e1fd3e24a91092cb7a1",
      "parents": [
        "ecfcc53fef3c357574bb6143dce6631e6d56295c"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Apr 14 17:27:18 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Apr 15 08:17:31 2009 +1000"
      },
      "message": "modules: Fix up build when CONFIG_MODULE_UNLOAD\u003dn.\n\nCommit 3d43321b7015387cfebbe26436d0e9d299162ea1 (\"modules: sysctl to\nblock module loading\") introduces a modules_disabled variable that is\nonly defined if CONFIG_MODULE_UNLOAD is enabled, despite being used in\nother places. This moves it up and fixes up the build.\n\n  CC      kernel/module.o\nkernel/module.c: In function \u0027sys_init_module\u0027:\nkernel/module.c:2401: error: \u0027modules_disabled\u0027 undeclared (first use in this function)\nkernel/module.c:2401: error: (Each undeclared identifier is reported only once\nkernel/module.c:2401: error: for each function it appears in.)\nmake[1]: *** [kernel/module.o] Error 1\nmake: *** [kernel/module.o] Error 2\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6d723736e472f7a0cd5b62c84152fceead241328",
      "tree": "8df2f6c47ebdfdeb8979758c877a5abbd9c06aef",
      "parents": [
        "17c873ec280a03894bc718af817f7f24fa787ae1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 10 14:53:50 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:58:03 2009 -0400"
      },
      "message": "tracing/events: add support for modules to TRACE_EVENT\n\nImpact: allow modules to add TRACE_EVENTS on load\n\nThis patch adds the final hooks to allow modules to use the TRACE_EVENT\nmacro. A notifier and a data structure are used to link the TRACE_EVENTs\ndefined in the module to connect them with the ftrace event tracing system.\n\nIt also adds the necessary automated clean ups to the trace events when a\nmodule is removed.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d6de2c80e9d758d2e36c21699117db6178c0f517",
      "tree": "8f581ff1b8bce93fdeac949e0549c791d1ce52f9",
      "parents": [
        "7933a3cfba017330ebb25f9820cb25ec9cdd67cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 10 12:17:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 11 12:44:49 2009 -0700"
      },
      "message": "async: Fix module loading async-work regression\n\nSeveral drivers use asynchronous work to do device discovery, and we\nsynchronize with them in the compiled-in case before we actually try to\nmount root filesystems etc.\n\nHowever, when compiled as modules, that synchronization is missing - the\nmodule loading completes, but the driver hasn\u0027t actually finished\nprobing for devices, and that means that any user mode that expects to\nuse the devices after the \u0027insmod\u0027 is now potentially broken.\n\nWe already saw one case of a similar issue in the ACPI battery code,\nwhere the kernel itself expected the module to be all done, and unmapped\nthe init memory - but the async device discovery was still running.\nThat got hacked around by just removing the \"__init\" (see commit\n5d38258ec026921a7b266f4047ebeaa75db358e5 \"ACPI battery: fix async boot\noops\"), but the real fix is to just make the module loading wait for all\nasync work to be completed.\n\nIt will slow down module loading, but since common devices should be\nbuilt in anyway, and since the bug is really annoying and hard to handle\nfrom user space (and caused several S3 resume regressions), the simple\nfix to wait is the right one.\n\nThis fixes at least\n\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13063\n\nbut probably a few other bugzilla entries too (12936, for example), and\nis confirmed to fix Rafael\u0027s storage driver breakage after resume bug\nreport (no bugzilla entry).\n\nWe should also be able to now revert that ACPI battery fix.\n\nReported-and-tested-by: Rafael J. Wysocki \u003crjw@suse.com\u003e\nTested-by: Heinz Diehl \u003chtd@fancy-poultry.org\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e45e77787c9d0720b046eb69856edf43b17e33e",
      "tree": "56c2bd470e3eec849bb8bb0a2263a6ef0b4b7694",
      "parents": [
        "d508afb437daee7cf07da085b635c44a4ebf9b38"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Apr 07 17:12:43 2009 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Apr 07 17:12:43 2009 +0930"
      },
      "message": "Revert \"module: remove the SHF_ALLOC flag on the __versions section.\"\n\nThis reverts commit 9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1.\n\nThis was an impressively stupid patch.  Firstly, we reset the SHF_ALLOC\nflag lower down in the same function, so the patch was useless.  Even\nbetter, find_sec() ignores sections with SHF_ALLOC not set, so\nit breaks CONFIG_MODVERSIONS\u003dy with CONFIG_MODULE_FORCE_LOAD\u003dn, which\nrefuses to load the module since it can\u0027t find the __versions section.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "3d43321b7015387cfebbe26436d0e9d299162ea1",
      "tree": "bae6bd123c8f573e844a7af11c96eb5f6a73e0ee",
      "parents": [
        "8a6f83afd0c5355db6d11394a798e94950306239"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees@ubuntu.com",
        "time": "Thu Apr 02 15:49:29 2009 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Apr 03 11:47:11 2009 +1100"
      },
      "message": "modules: sysctl to block module loading\n\nImplement a sysctl file that disables module-loading system-wide since\nthere is no longer a viable way to remove CAP_SYS_MODULE after the system\nbounding capability set was removed in 2.6.25.\n\nValue can only be set to \"1\", and is tested only if standard capability\nchecks allow CAP_SYS_MODULE.  Given existing /dev/mem protections, this\nshould allow administrators a one-way method to block module loading\nafter initial boot-time module loading has finished.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8302294f43250dc337108c51882a6007f2b1e2e0",
      "tree": "85acd4440799c46a372df9cad170fa0c21e59096",
      "parents": [
        "4fe70410d9a219dabb47328effccae7e7f2a6e26",
        "2e572895bf3203e881356a4039ab0fa428ed2639"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 21:54:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 02 00:49:02 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core-v2\u0027 into tracing-for-linus\n\nConflicts:\n\tinclude/linux/slub_def.h\n\tlib/Kconfig.debug\n\tmm/slob.c\n\tmm/slub.c\n"
    },
    {
      "commit": "49502677e11079c2e3e01867c922a894ce06a8be",
      "tree": "c3e512207a4d5c4cc0678b8154c2643ca39201e0",
      "parents": [
        "66f92cf9d415e96a5bdd6c64de8dd8418595d2fc"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:36 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:37 2009 +1030"
      },
      "message": "module: use strstarts()\n\nImpact: minor cleanup.\n\nI\u0027m not going to neaten anyone else\u0027s code, but I\u0027m happy to clean up\nmy own.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e91defa26c527ceeaff6266c55cdc7e17c9081a2",
      "tree": "03554f76949e5b1bcd4e640a10846d9540b97640",
      "parents": [
        "acae05156551fd7528fbb616271e672789388e3c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:35 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:35 2009 +1030"
      },
      "message": "module: don\u0027t use stop_machine on module load\n\nKay Sievers \u003ckay.sievers@vrfy.org\u003e discovered that boot times are slowed\nby about half a second because all the stop_machine_create() calls,\nand he only probes about 40 modules (I have 125 loaded on this laptop).\n\nWe only do stop_machine_create() so we can unlink the module if\nsomething goes wrong, but it\u0027s overkill (and buggy anyway: if\nstop_machine_create() fails we still call stop_machine_destroy()).\n\nSince we are only protecting against kallsyms (esp. oops) walking the\nlist, synchronize_sched() is sufficient (synchronize_rcu() is probably\nsufficient, but we\u0027re not in a hurry).\n\nKay says of this patch:\n\t... no module takes more than 40 millisecs to link now, most of\n\tthem are between 3 and 8 millisecs.\n\n\tThat looks very different to the numbers without this patch\n\tand the otherwise same setup, where we get heavy noise in the\n\ttraces and many delays of up to 200 millisecs until linking,\n\tmost of them taking 30+ millisecs.\n\nTested-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8c8ef42aee8fcfb4128bb94c50d55c9f80ade525",
      "tree": "58141fdd1afc0887dcc3cb91ab4c7609df0963e7",
      "parents": [
        "9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:34 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:34 2009 +1030"
      },
      "message": "module: include other structures in module version check\n\nWith CONFIG_MODVERSIONS, we version \u0027struct module\u0027 using a dummy\nexport, but other things matter too:\n\n1) \u0027struct modversion_info\u0027 determines the layout of the __versions section,\n2) \u0027struct kernel_param\u0027 determines the layout of the __params section,\n3) \u0027struct kernel_symbol\u0027 determines __ksymtab*.\n4) \u0027struct marker\u0027 determines __markers.\n5) \u0027struct tracepoint\u0027 determines __tracepoints.\n\nSo we rename \u0027struct_module\u0027 to \u0027module_layout\u0027 and include these in\nthe signature.  Now it\u0027s general we can add others later on without\nconfusion.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1",
      "tree": "282863f8b6560e5373f40e9d6b7f2fa2dcc8e86d",
      "parents": [
        "c6e665c8f0c18ab3686117905765b5139efd6ebd"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:33 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:34 2009 +1030"
      },
      "message": "module: remove the SHF_ALLOC flag on the __versions section.\n\nImpact: reduce kernel memory usage\n\nThis patch just takes off the SHF_ALLOC flag on __versions so we don\u0027t\nkeep them around after module load.\n\nThis saves about 7% of module memory if CONFIG_MODVERSIONS\u003dy.\n\nCc: Shawn Bohrer \u003cshawn.bohrer@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c6e665c8f0c18ab3686117905765b5139efd6ebd",
      "tree": "0e478ff0a38a52b2c3ff00024f081c94260fdd61",
      "parents": [
        "c6b37801911d7f4663c99cad8aa230bc934cea82"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:33 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:05:33 2009 +1030"
      },
      "message": "module: clarify the force-loading taint message.\n\nImpact: Message cleanup\n\nTwo of three callers of try_to_force_load() are not because of a\nmissing version, so change the messages:\n\nOld:\n\t\u003cmodname\u003e: no version for \"magic\" found: kernel tainted.\nNew:\n\t\u003cmodname\u003e: bad vermagic: kernel tainted.\n\nOld:\n\t\u003cmodname\u003e: no version for \"nocrc\" found: kernel tainted.\nNew:\n\t\u003cmodname\u003e: no versions for exported symbols: kernel tainted.\n\nOld:\n\t\u003cmodname\u003e: no version for \"\u003csymname\u003e\" found: kernel tainted.\nNew:\n\t\u003cmodname\u003e: \u003csymname\u003e: kernel tainted.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    }
  ],
  "next": "c6b37801911d7f4663c99cad8aa230bc934cea82"
}
