)]}'
{
  "log": [
    {
      "commit": "9779714c8af09d57527f18d9aa2207dcc27a8687",
      "tree": "52182f2289d9b7a77fbe119f4cd5726ef6494e66",
      "parents": [
        "89a6c8cb9e6e11b6e3671dce7e037789b8f7cf62",
        "65b5ac1479840a3e87f086d68e5ef91f3002e8e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 16:00:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 16:00:44 2010 -0700"
      },
      "message": "Merge branch \u0027kms-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kms-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  kgdb,docs: Update the kgdb docs to include kms\n  drm_fb_helper: Preserve capability to use atomic kms\n  i915: when kgdb is active display compression should be off\n  drm/i915: use new fb debug hooks\n  drm: add KGDB/KDB support\n  fb: add hooks to handle KDB enter/exit\n  kgdboc: Add call backs to allow kernel mode switching\n  vt,console,kdb: automatically set kdb LINES variable\n  vt,console,kdb: implement atomic console enter/leave functions\n"
    },
    {
      "commit": "89a6c8cb9e6e11b6e3671dce7e037789b8f7cf62",
      "tree": "12b16a8abe303fd86c156ddfbb86caa469e45a98",
      "parents": [
        "03c0c29aff7e56b722eb6c47eace222b140d0377",
        "3fa43aba08c5b5a4b407e402606fbe463239b14a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  debug_core,kdb: fix crash when arch does not have single step\n  kgdb,x86: use macro HBP_NUM to replace magic number 4\n  kgdb,mips: remove unused kgdb_cpu_doing_single_step operations\n  mm,kdb,kgdb: Add a debug reference for the kdb kmap usage\n  KGDB: Remove set but unused newPC\n  ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n  ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n  kgdb,powerpc: Replace hardcoded offset by BREAK_INSTR_SIZE\n  arm,kgdb: Add ability to trap into debugger on notify_die\n  gdbstub: do not directly use dbg_reg_def[] in gdb_cmd_reg_set()\n  gdbstub: Implement gdbserial \u0027p\u0027 and \u0027P\u0027 packets\n  kgdb,arm: Individual register get/set for arm\n  kgdb,mips: Individual register get/set for mips\n  kgdb,x86: Individual register get/set for x86\n  kgdb,kdb: individual register set and and get API\n  gdbstub: Optimize kgdb\u0027s \"thread:\" response for the gdb serial protocol\n  kgdb: remove custom hex_to_bin()implementation\n"
    },
    {
      "commit": "90d3417a3a4e810d67081dd106f0e603a856978f",
      "tree": "b9791c255f6d98114dcb5a0abf9228db4091a1ed",
      "parents": [
        "552c7dbb3459c219e44a65fd6bca21b1227c0e33",
        "51f3d0f474aaebbc253100fa32a49c8256812330"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 13:49:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 13:49:55 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: cleanup comments, remove noinline\n  module: group post-relocation functions into post_relocation()\n  module: move module args strndup_user to just before use\n  module: pass load_info into other functions\n  module: fix sysfs cleanup for !CONFIG_SYSFS\n  module: sysfs cleanup\n  module: layout_and_allocate\n  module: fix crash in get_ksymbol() when oopsing in module init\n  module: kallsyms functions take struct load_info\n  module: refactor out section header rewriting: FIX modversions\n  module: refactor out section header rewriting\n  module: add load_info\n  module: reduce stack usage for each_symbol()\n  module: refactor load_module part 5\n  module: refactor load_module part 4\n  module: refactor load_module part 3\n  module: refactor load_module part 2\n  module: refactor load_module\n  module: module_unload_init() cleanup\n"
    },
    {
      "commit": "cdd854bc42b5e6c79bbbc40c6600d995ffe6e747",
      "tree": "18c4dcc07bbb8aeb2b23bc812cd60cc293f36cd8",
      "parents": [
        "bbc4fd12a635492ad9d12bb418124fa2d5f0d734",
        "42a0ae2282b512d1a8f6f020327f5f7b8f31a5ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 09:03:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 09:03:46 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (79 commits)\n  powerpc/8xx: Add support for the MPC8xx based boards from TQC\n  powerpc/85xx: Introduce support for the Freescale P1022DS reference board\n  powerpc/85xx: Adding DTS for the STx GP3-SSA MPC8555 board\n  powerpc/85xx: Change deprecated binding for 85xx-based boards\n  powerpc/tqm85xx: add a quirk for ti1520 PCMCIA bridge\n  powerpc/tqm85xx: update PCI interrupt-map attribute\n  powerpc/mpc8308rdb: support for MPC8308RDB board from Freescale\n  powerpc/fsl_pci: add quirk for mpc8308 pcie bridge\n  powerpc/85xx: Cleanup QE initialization for MPC85xxMDS boards\n  powerpc/85xx: Fix booting for P1021MDS boards\n  powerpc/85xx: Fix SWIOTLB initalization for MPC85xxMDS boards\n  powerpc/85xx: kexec for SMP 85xx BookE systems\n  powerpc/5200/i2c: improve i2c bus error recovery\n  of/xilinxfb: update tft compatible versions\n  powerpc/fsl-diu-fb: Support setting display mode using EDID\n  powerpc/5121: doc/dts-bindings: update doc of FSL DIU bindings\n  powerpc/5121: shared DIU framebuffer support\n  powerpc/5121: move fsl-diu-fb.h to include/linux\n  powerpc/5121: fsl-diu-fb: fix issue with re-enabling DIU area descriptor\n  powerpc/512x: add clock structure for Video-IN (VIU) unit\n  ...\n"
    },
    {
      "commit": "c3d1f1746b966907ba5ad2f75ddca24db8b21147",
      "tree": "548a25e104d8bdb906030b8d3bf78fbfde0e5817",
      "parents": [
        "66eddbfcc1f6610fa7c73c8d20a57eaf8e284e2f",
        "0d365753d0b7c26043fdfa97790411606fb40112"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 08:53:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 08:53:20 2010 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus: (150 commits)\n  MIPS: PowerTV: Separate PowerTV USB support from non-USB code\n  MIPS: strip the un-needed sections of vmlinuz\n  MIPS: Clean up the calculation of VMLINUZ_LOAD_ADDRESS\n  MIPS: Clean up arch/mips/boot/compressed/decompress.c\n  MIPS: Clean up arch/mips/boot/compressed/ld.script\n  MIPS: Unify the suffix of compressed vmlinux.bin\n  MIPS: PowerTV: Add Gaia platform definitions.\n  MIPS: BCM47xx: Fix nvram_getenv return value.\n  MIPS: Octeon: Allow more than 3.75GB of memory with PCIe\n  MIPS: Clean up notify_die() usage.\n  MIPS: Remove unused task_struct.trap_no field.\n  Documentation: Mention that KProbes is supported on MIPS\n  SAMPLES: kprobe_example: Make it print something on MIPS.\n  MIPS: kprobe: Add support.\n  MIPS: Add instrunction format for BREAK and SYSCALL\n  MIPS: kprobes: Define regs_return_value()\n  MIPS: Ritually kill stupid printk.\n  MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts.\n  MIPS: Octeon: Support 256 MSI on PCIe\n  MIPS: Decode core number for R2 CPUs.\n  ...\n"
    },
    {
      "commit": "81d4450732c68aa728f2c86c0c2993c6cfc3d032",
      "tree": "c332675648080d38e9f461286274534a16e7346b",
      "parents": [
        "b45cfba4e9005d64d419718e7ff7f7cab44c1994"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:30 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:30 2010 -0500"
      },
      "message": "vt,console,kdb: automatically set kdb LINES variable\n\nThe kernel console interface stores the number of lines it is\nconfigured to use. The kdb debugger can greatly benefit by knowing how\nmany lines there are on the console for the pager functionality\nwithout having the end user compile in the setting or have to\nrepeatedly change it at run time.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCC: David Airlie \u003cairlied@linux.ie\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa43aba08c5b5a4b407e402606fbe463239b14a",
      "tree": "83c6b8a61a1c8a8795504217518300417c49c6a6",
      "parents": [
        "df4939350b345ebb44937902827aa75b8ad4998c"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:25 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:25 2010 -0500"
      },
      "message": "debug_core,kdb: fix crash when arch does not have single step\n\nWhen an arch such as mips and microblaze does not implement either HW\nor software single stepping the debug core should re-enter kdb.  The\nkdb code will properly ignore the single step operation.  Attempting\nto single step the kernel without software or hardware support causes\nunpredictable kernel crashes.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "19063c776fe745fab11216422cf56489ee83b452",
      "tree": "a08994bd7badecc81ac04f4b6c4732986dea8588",
      "parents": [
        "955b61e597984745fb7d34c75708f6503b6aaeab"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n\nIn systems with more than one processor it is desirable to look at the\nper cpu trace buffers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "955b61e597984745fb7d34c75708f6503b6aaeab",
      "tree": "c928ca54a8231b0432e729d8b675e473a5db9104",
      "parents": [
        "3f0a55e3579a500ce9f5cdab70a5741f99769118"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n\nAdd in a helper function to allow the kdb shell to dump the ftrace\nbuffer.\n\nModify trace.c to expose the capability to iterate over the ftrace\nbuffer in a read only capacity.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6d855b1d83c980c1283d98d2d63a2bd3a87e21b7",
      "tree": "d510c23f3387520b027ba30403db5981e82d3e90",
      "parents": [
        "55751145dc1e08e16df418cdd101661f5c6ac991"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:22 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:22 2010 -0500"
      },
      "message": "gdbstub: do not directly use dbg_reg_def[] in gdb_cmd_reg_set()\n\nPresently the usable registers definitions on x86 are not contiguous\nfor kgdb.  The x86 kgdb uses a case statement for the sparse register\naccesses.  The array which defines the registers (dbg_reg_def) should\nnot be used directly in order to safely work with sparse register\ndefinitions.\n\nSpecifically there was a problem when gdb accesses ORIG_AX, which is\naccessed only through the case statement.\n\nThis patch encodes register memory using the size information provided\nfrom the debugger which avoids the need to look up the size of the\nregister.  The dbg_set_reg() function always further validates the\ninputs from the debugger.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\n"
    },
    {
      "commit": "55751145dc1e08e16df418cdd101661f5c6ac991",
      "tree": "c166155b118da5768341e4678478c5dd508a2b17",
      "parents": [
        "22eeef4bb2a7fd225089c0044060ed1fbf091958"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:21 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:21 2010 -0500"
      },
      "message": "gdbstub: Implement gdbserial \u0027p\u0027 and \u0027P\u0027 packets\n\nThe gdbserial \u0027p\u0027 and \u0027P\u0027 packets allow gdb to individually get and\nset registers instead of querying for all the available registers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "534af1082329392bc29f6badf815e69ae2ae0f4c",
      "tree": "e163c1d5c418334538447983b7d5934e05fa4d71",
      "parents": [
        "84a0bd5b2830722cf80ff6ad33ef98101a947e14"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:20 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:20 2010 -0500"
      },
      "message": "kgdb,kdb: individual register set and and get API\n\nThe kdb shell specification includes the ability to get and set\narchitecture specific registers by name.\n\nFor the time being individual register get and set will be implemented\non a per architecture basis.  If an architecture defines\nDBG_MAX_REG_NUM \u003e 0 then kdb and the gdbstub will use the capability\nfor individually getting and setting architecture specific registers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "84a0bd5b2830722cf80ff6ad33ef98101a947e14",
      "tree": "942f596d5a6b48bde181ed2ab063d697a0f2e73d",
      "parents": [
        "a9fa20a7af1f152d2d89c44c274a310ac654e3ad"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "message": "gdbstub: Optimize kgdb\u0027s \"thread:\" response for the gdb serial protocol\n\nThe gdb debugger understands how to parse short versions of the thread\nreference string as long as the bytes are paired in sets of two\ncharacters.  The kgdb implementation was always sending 8 leading\nzeros which could be omitted, and further optimized in the case of\nnon-negative thread numbers.  The negative numbers are used to\nreference a specific cpu in the case of kgdb.\n\nAn example of the previous i386 stop packet looks like:\n    T05thread:00000000000003bb;\n\nNew stop packet response:\n    T05thread:03bb;\n\nThe previous ThreadInfo response looks like:\n    m00000000fffffffe,0000000000000001,0000000000000002,0000000000000003,0000000000000004,0000000000000005,0000000000000006,0000000000000007,000000000000000c,0000000000000088,000000000000008a,000000000000008b,000000000000008c,000000000000008d,000000000000008e,00000000000000d4,00000000000000d5,00000000000000dd\n\nNew ThreadInfo response:\n    mfffffffe,01,02,03,04,05,06,07,0c,88,8a,8b,8c,8d,8e,d4,d5,dd\n\nA few bytes saved means better response time when using kgdb over a\nserial line.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "a9fa20a7af1f152d2d89c44c274a310ac654e3ad",
      "tree": "bc6f6ef6c3081a7ae4bbc27b21d146e2b82a8279",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "ext-andriy.shevchenko@nokia.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "message": "kgdb: remove custom hex_to_bin()implementation\n\nSigned-off-by: Andy Shevchenko \u003cext-andriy.shevchenko@nokia.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "034260d6779087431a8b2f67589c68b919299e5c",
      "tree": "9d9f1def96651ae098c87687a640079ddd2aafd4",
      "parents": [
        "d745866e4d8c0675bab90868b5e4a8fcd053eff2"
      ],
      "author": {
        "name": "Kevin Cernekee",
        "email": "cernekee@gmail.com",
        "time": "Thu Jun 03 22:11:25 2010 -0700"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Aug 05 13:25:59 2010 +0100"
      },
      "message": "printk: fix delayed messages from CPU hotplug events\n\nWhen a secondary CPU is being brought up, it is not uncommon for\nprintk() to be invoked when cpu_online(smp_processor_id()) \u003d\u003d 0.  The\ncase that I witnessed personally was on MIPS:\n\nhttp://lkml.org/lkml/2010/5/30/4\n\nIf (can_use_console() \u003d\u003d 0), printk() will spool its output to log_buf\nand it will be visible in \"dmesg\", but that output will NOT be echoed to\nthe console until somebody calls release_console_sem() from a CPU that\nis online.  Therefore, the boot time messages from the new CPU can get\nstuck in \"limbo\" for a long time, and might suddenly appear on the\nscreen when a completely unrelated event (e.g. \"eth0: link is down\")\noccurs.\n\nThis patch modifies the console code so that any pending messages are\nautomatically flushed out to the console whenever a CPU hotplug\noperation completes successfully or aborts.\n\nThe issue was seen on 2.6.34.\n\nOriginal patch by Kevin Cernekee with cleanups by akpm and additional fixes\nby Santosh Shilimkar.  This patch superseeds\nhttps://patchwork.linux-mips.org/patch/1357/.\n\nSigned-off-by: Kevin Cernekee \u003ccernekee@gmail.com\u003e\nTo: \u003cmingo@elte.hu\u003e\nTo: \u003cakpm@linux-foundation.org\u003e\nTo: \u003csimon.kagstrom@netinsight.net\u003e\nTo: \u003cDavid.Woodhouse@intel.com\u003e\nTo: \u003clethal@linux-sh.org\u003e\nCc: \u003clinux-kernel@vger.kernel.org\u003e\nCc: \u003clinux-mips@linux-mips.org\u003e\nReviewed-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Kevin Cernekee \u003ccernekee@gmail.com\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/1534/\nLKML-Reference: \u003cede63b5a20af951c755736f035d1e787772d7c28@localhost\u003e\nLKML-Reference: \u003cEAF47CD23C76F840A9E7FCE10091EFAB02C5DB6D1F@dbde02.ent.ti.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.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": "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4",
      "tree": "5adc1ff2eaf64d450bf28bb6b2ce890db2567288",
      "parents": [
        "5cf65713f87775c548e3eb48dbafa32e12f28000",
        "0ea6e61122196509af82cc4f36cbdaacbefb8227"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (48 commits)\n  Documentation: update broken web addresses.\n  fix comment typo \"choosed\" -\u003e \"chosen\"\n  hostap:hostap_hw.c Fix typo in comment\n  Fix spelling contorller -\u003e controller in comments\n  Kconfig.debug: FAIL_IO_TIMEOUT: typo Faul -\u003e Fault\n  fs/Kconfig: Fix typo Userpace -\u003e Userspace\n  Removing dead MACH_U300_BS26\n  drivers/infiniband: Remove unnecessary casts of private_data\n  fs/ocfs2: Remove unnecessary casts of private_data\n  libfc: use ARRAY_SIZE\n  scsi: bfa: use ARRAY_SIZE\n  drm: i915: use ARRAY_SIZE\n  drm: drm_edid: use ARRAY_SIZE\n  synclink: use ARRAY_SIZE\n  block: cciss: use ARRAY_SIZE\n  comment typo fixes: charater \u003d\u003e character\n  fix comment typos concerning \"challenge\"\n  arm: plat-spear: fix typo in kerneldoc\n  reiserfs: typo comment fix\n  update email address\n  ...\n"
    },
    {
      "commit": "b7c8e55db7141dcbb9d5305a3260fa0ed62a1bcc",
      "tree": "59fbd52d8e80e5a83d9747961d28aaf4d400613a",
      "parents": [
        "ffd386a9a8273dcfa61705d0b349eebc7525ef87",
        "4015d9a865e3bcc42d88bedc8ce1551000bab664"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:23:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:23:14 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (39 commits)\n  random: Reorder struct entropy_store to remove padding on 64bits\n  padata: update API documentation\n  padata: Remove padata_get_cpumask\n  crypto: pcrypt - Update pcrypt cpumask according to the padata cpumask notifier\n  crypto: pcrypt - Rename pcrypt_instance\n  padata: Pass the padata cpumasks to the cpumask_change_notifier chain\n  padata: Rearrange set_cpumask functions\n  padata: Rename padata_alloc functions\n  crypto: pcrypt - Dont calulate a callback cpu on empty callback cpumask\n  padata: Check for valid cpumasks\n  padata: Allocate cpumask dependend recources in any case\n  padata: Fix cpu index counting\n  crypto: geode_aes - Convert pci_table entries to PCI_VDEVICE (if PCI_ANY_ID is used)\n  pcrypt: Added sysfs interface to pcrypt\n  padata: Added sysfs primitives to padata subsystem\n  padata: Make two separate cpumasks\n  padata: update documentation\n  padata: simplify serialization mechanism\n  padata: make padata_do_parallel to return zero on success\n  padata: Handle empty padata cpumasks\n  ...\n"
    },
    {
      "commit": "6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7",
      "tree": "8f3892fc44f1e403675a6d7e88fda5c70e56ee4c",
      "parents": [
        "5abd9ccced7a726c817dd6b5b96bc933859138d1",
        "3ff1c25927e3af61c6bf0e4ed959504058ae4565"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)\n  phy/marvell: add 88ec048 support\n  igb: Program MDICNFG register prior to PHY init\n  e1000e: correct MAC-PHY interconnect register offset for 82579\n  hso: Add new product ID\n  can: Add driver for esd CAN-USB/2 device\n  l2tp: fix export of header file for userspace\n  can-raw: Fix skb_orphan_try handling\n  Revert \"net: remove zap_completion_queue\"\n  net: cleanup inclusion\n  phy/marvell: add 88e1121 interface mode support\n  u32: negative offset fix\n  net: Fix a typo from \"dev\" to \"ndev\"\n  igb: Use irq_synchronize per vector when using MSI-X\n  ixgbevf: fix null pointer dereference due to filter being set for VLAN 0\n  e1000e: Fix irq_synchronize in MSI-X case\n  e1000e: register pm_qos request on hardware activation\n  ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice\n  net: Add getsockopt support for TCP thin-streams\n  cxgb4: update driver version\n  cxgb4: add new PCI IDs\n  ...\n\nManually fix up conflicts in:\n - drivers/net/e1000e/netdev.c: due to pm_qos registration\n   infrastructure changes\n - drivers/net/phy/marvell.c: conflict between adding 88ec048 support\n   and cleaning up the IDs\n - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req\n   conflict (registration change vs marking it static)\n"
    },
    {
      "commit": "694f690d27dadccc8cb9d90532e76593b61fe098",
      "tree": "ea641e53ae530d0d3708fbfcab8109cc5e840d21",
      "parents": [
        "e75aa85892b2ee78c79edac720868cbef16e62eb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Aug 04 16:59:14 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:17:10 2010 -0700"
      },
      "message": "CRED: Fix RCU warning due to previous patch fixing __task_cred()\u0027s checks\n\nCommit 8f92054e7ca1 (\"CRED: Fix __task_cred()\u0027s lockdep check and banner\ncomment\") fixed the lockdep checks on __task_cred().  This has shown up\na place in the signalling code where a lock should be held - namely that\ncheck_kill_permission() requires its callers to hold the RCU lock.\n\nFix group_send_sig_info() to get the RCU read lock around its call to\ncheck_kill_permission().\n\nWithout this patch, the following warning can occur:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: suspicious rcu_dereference_check() usage. ]\n  ---------------------------------------------------\n  kernel/signal.c:660 invoked rcu_dereference_check() without protection!\n  ...\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f46e9913faeebcb6bd29edf795f12b60acbff171",
      "tree": "1ed8871d0ebd638094d27317de1d8a53712ae15a",
      "parents": [
        "8d91530c5fd7f0b1e8c4ddfea2905e55a178569b",
        "8d4b9d1bfef117862a2889dec4dac227068544c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:14:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:14:36 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Runtime: Add runtime PM statistics (v3)\n  PM / Runtime: Make runtime_status attribute not debug-only (v. 2)\n  PM: Do not use dynamically allocated objects in pm_wakeup_event()\n  PM / Suspend: Fix ordering of calls in suspend error paths\n  PM / Hibernate: Fix snapshot error code path\n  PM / Hibernate: Fix hibernation_platform_enter()\n  pm_qos: Get rid of the allocation in pm_qos_add_request()\n  pm_qos: Reimplement using plists\n  plist: Add plist_last\n  PM: Make it possible to avoid races between wakeup and system sleep\n  PNPACPI: Add support for remote wakeup\n  PM: describe kernel policy regarding wakeup defaults (v. 2)\n  PM / Hibernate: Fix typos in comments in kernel/power/swap.c\n"
    },
    {
      "commit": "d790d4d583aeaed9fc6f8a9f4d9f8ce6b1c15c7f",
      "tree": "854ab394486288d40fa8179cbfaf66e8bdc44b0f",
      "parents": [
        "73b2c7165b76b20eb1290e7efebc33cfd21db1ca",
        "3a09b1be53d23df780a0cd0e4087a05e2ca4a00c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "412a4ac5e9cf7fdeb6af562c25547a9b9da7674f",
      "tree": "a8ce13cbc9c47c99799e5e3e3ad26ba78274ee73",
      "parents": [
        "e8e5c2155b0035b6e04f29be67f6444bc914005b",
        "0c2daaafcdec726e89cbccca61d576de8429c537"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 10:26:03 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 10:26:03 2010 +1000"
      },
      "message": "Merge commit \u0027gcl/next\u0027 into next\n"
    },
    {
      "commit": "8cadd2831bf3abc94f4530e7fdbab7bb39b6b27d",
      "tree": "4027798914cc3213692a4865797898a5ae0a0b49",
      "parents": [
        "81f61484f16decba0fb68400fe0036b337b4cdc7"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon May 10 14:26:20 2010 -0700"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Aug 03 09:48:45 2010 -0400"
      },
      "message": "timer: add on-stack deferrable timer interfaces\n\nIn some cases (for instance with kernel threads) it may be desireable to\nuse on-stack deferrable timers to get their power saving benefits.  Add\ninterfaces to support this for the IPS driver.\n\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\n"
    },
    {
      "commit": "0500e9b3f11ce84fc6ee48a3e29909145e58ba48",
      "tree": "42b21a89575b6b919c09ef33469143f38cf1a04e",
      "parents": [
        "d3f64e46aa21dd86a239274d218ec286461bfa68"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:19:27 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:06 2010 +0800"
      },
      "message": "padata: Remove padata_get_cpumask\n\nA function that copies the padata cpumasks to a user buffer\nis a bit error prone. The cpumask can change any time so we\ncan\u0027t be sure to have the right cpumask when using this function.\nA user who is interested in the padata cpumasks should register\nto the padata cpumask notifier chain instead. Users of\npadata_get_cpumask are already updated, so we can remove it.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "c635696c7c0fbc720698dbec34bb83e53df6a967",
      "tree": "98774f70f799ed51c990af79bda8bbd0264e6a39",
      "parents": [
        "65ff577e6b6e482ee9de3569e058edebdc02f069"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:15:50 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:05 2010 +0800"
      },
      "message": "padata: Pass the padata cpumasks to the cpumask_change_notifier chain\n\nWe pass a pointer to the new padata cpumasks to the cpumask_change_notifier\nchain. So users can access the cpumasks without the need of an extra\npadata_get_cpumask function.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "65ff577e6b6e482ee9de3569e058edebdc02f069",
      "tree": "590390375fd44b9c1be49e677a68539883a0463f",
      "parents": [
        "e6cc11707661770ca2bd4db4b0256d28f48e7541"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:15:06 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:04 2010 +0800"
      },
      "message": "padata: Rearrange set_cpumask functions\n\npadata_set_cpumask needs to be protected by a lock. We make\n__padata_set_cpumasks unlocked and static. So this function\ncan be used by the exported and locked padata_set_cpumask and\npadata_set_cpumasks functions.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "e6cc11707661770ca2bd4db4b0256d28f48e7541",
      "tree": "885f2ea00e90ac9e379d54adf8e5ad0fbb9d9892",
      "parents": [
        "cc74f4bc111e9554bcd6445ad0fe1d90e5d2eb34"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:14:28 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:04 2010 +0800"
      },
      "message": "padata: Rename padata_alloc functions\n\nWe rename padata_alloc to padata_alloc_possible because this\nfunction allocates a padata_instance and uses the cpu_possible\nmask for parallel and serial workers. Also we rename __padata_alloc\nto padata_alloc to avoid to export underlined functions. Underlined\nfunctions are considered to be private to padata. Users are updated\naccordingly.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "de09a9771a5346029f4d11e4ac886be7f9bfdd75",
      "tree": "ccce9e75753c98a9f38075d54ab98aa4b89e66c7",
      "parents": [
        "540ad6b62b3a188a53b51cac81d8a60d40e29fbd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jul 29 12:45:49 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 29 15:16:17 2010 -0700"
      },
      "message": "CRED: Fix get_task_cred() and task_state() to not resurrect dead credentials\n\nIt\u0027s possible for get_task_cred() as it currently stands to \u0027corrupt\u0027 a set of\ncredentials by incrementing their usage count after their replacement by the\ntask being accessed.\n\nWhat happens is that get_task_cred() can race with commit_creds():\n\n\tTASK_1\t\t\tTASK_2\t\t\tRCU_CLEANER\n\t--\u003eget_task_cred(TASK_2)\n\trcu_read_lock()\n\t__cred \u003d __task_cred(TASK_2)\n\t\t\t\t--\u003ecommit_creds()\n\t\t\t\told_cred \u003d TASK_2-\u003ereal_cred\n\t\t\t\tTASK_2-\u003ereal_cred \u003d ...\n\t\t\t\tput_cred(old_cred)\n\t\t\t\t  call_rcu(old_cred)\n\t\t[__cred-\u003eusage \u003d\u003d 0]\n\tget_cred(__cred)\n\t\t[__cred-\u003eusage \u003d\u003d 1]\n\trcu_read_unlock()\n\t\t\t\t\t\t\t--\u003eput_cred_rcu()\n\t\t\t\t\t\t\t[__cred-\u003eusage \u003d\u003d 1]\n\t\t\t\t\t\t\tpanic()\n\nHowever, since a tasks credentials are generally not changed very often, we can\nreasonably make use of a loop involving reading the creds pointer and using\natomic_inc_not_zero() to attempt to increment it if it hasn\u0027t already hit zero.\n\nIf successful, we can safely return the credentials in the knowledge that, even\nif the task we\u0027re accessing has released them, they haven\u0027t gone to the RCU\ncleanup code.\n\nWe then change task_state() in procfs to use get_task_cred() rather than\ncalling get_cred() on the result of __task_cred(), as that suffers from the\nsame problem.\n\nWithout this change, a BUG_ON in __put_cred() or in put_cred_rcu() can be\ntripped when it is noticed that the usage count is not zero as it ought to be,\nfor example:\n\nkernel BUG at kernel/cred.c:168!\ninvalid opcode: 0000 [#1] SMP\nlast sysfs file: /sys/kernel/mm/ksm/run\nCPU 0\nPid: 2436, comm: master Not tainted 2.6.33.3-85.fc13.x86_64 #1 0HR330/OptiPlex\n745\nRIP: 0010:[\u003cffffffff81069881\u003e]  [\u003cffffffff81069881\u003e] __put_cred+0xc/0x45\nRSP: 0018:ffff88019e7e9eb8  EFLAGS: 00010202\nRAX: 0000000000000001 RBX: ffff880161514480 RCX: 00000000ffffffff\nRDX: 00000000ffffffff RSI: ffff880140c690c0 RDI: ffff880140c690c0\nRBP: ffff88019e7e9eb8 R08: 00000000000000d0 R09: 0000000000000000\nR10: 0000000000000001 R11: 0000000000000040 R12: ffff880140c690c0\nR13: ffff88019e77aea0 R14: 00007fff336b0a5c R15: 0000000000000001\nFS:  00007f12f50d97c0(0000) GS:ffff880007400000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00007f8f461bc000 CR3: 00000001b26ce000 CR4: 00000000000006f0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess master (pid: 2436, threadinfo ffff88019e7e8000, task ffff88019e77aea0)\nStack:\n ffff88019e7e9ec8 ffffffff810698cd ffff88019e7e9ef8 ffffffff81069b45\n\u003c0\u003e ffff880161514180 ffff880161514480 ffff880161514180 0000000000000000\n\u003c0\u003e ffff88019e7e9f28 ffffffff8106aace 0000000000000001 0000000000000246\nCall Trace:\n [\u003cffffffff810698cd\u003e] put_cred+0x13/0x15\n [\u003cffffffff81069b45\u003e] commit_creds+0x16b/0x175\n [\u003cffffffff8106aace\u003e] set_current_groups+0x47/0x4e\n [\u003cffffffff8106ac89\u003e] sys_setgroups+0xf6/0x105\n [\u003cffffffff81009b02\u003e] system_call_fastpath+0x16/0x1b\nCode: 48 8d 71 ff e8 7e 4e 15 00 85 c0 78 0b 8b 75 ec 48 89 df e8 ef 4a 15 00\n48 83 c4 18 5b c9 c3 55 8b 07 8b 07 48 89 e5 85 c0 74 04 \u003c0f\u003e 0b eb fe 65 48 8b\n04 25 00 cc 00 00 48 3b b8 58 04 00 00 75\nRIP  [\u003cffffffff81069881\u003e] __put_cred+0xc/0x45\n RSP \u003cffff88019e7e9eb8\u003e\n---[ end trace df391256a100ebdd ]---\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7926ee38f5c6e0bbebe712304f99a4c67e40f84",
      "tree": "2feae78726dae032741f81fc9590d61693a182f5",
      "parents": [
        "c23f3445e68e1db0e74099f264bc5ff5d55ebdeb"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "samudrala.sridhar@gmail.com",
        "time": "Sun May 30 22:24:39 2010 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Jul 28 15:45:12 2010 +0300"
      },
      "message": "cgroups: Add an API to attach a task to current task\u0027s cgroup\n\nAdd a new kernel API to attach a task to current task\u0027s cgroup\nin all the active hierarchies.\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\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": "7424713b83587006da72da84d7922471e366faba",
      "tree": "f6b8cf5db118494fc70be8f97309fd2434545223",
      "parents": [
        "b89661dff525a46edb7ee8a4423b5212068c05c0"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 20 08:51:25 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 26 14:13:58 2010 +0800"
      },
      "message": "padata: Check for valid cpumasks\n\nNow that we allow to change the cpumasks from userspace, we have\nto check for valid cpumasks in padata_do_parallel. This patch adds\nthe necessary check. This fixes a division by zero crash if the\nparallel cpumask contains no active cpu.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "b89661dff525a46edb7ee8a4423b5212068c05c0",
      "tree": "06f669f3efe74d37a546b8e75b3a5bd142a6a41f",
      "parents": [
        "fad3a906d324c02b3c25ef51f702384154089846"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 20 08:49:20 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 26 14:13:58 2010 +0800"
      },
      "message": "padata: Allocate cpumask dependend recources in any case\n\nThe cpumask separation work assumes the cpumask dependend recources\npresent regardless of valid or invalid cpumasks. With this patch\nwe allocate the cpumask dependend recources in any case. This fixes\ntwo NULL pointer dereference crashes in padata_replace and in\npadata_get_cpumask.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "fad3a906d324c02b3c25ef51f702384154089846",
      "tree": "73f860f5547c9bf5c87040fa032ae9302f886a46",
      "parents": [
        "1fb1defbb00eb2954483a7d9a70f8a02edf51753"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 20 08:48:34 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 26 14:13:57 2010 +0800"
      },
      "message": "padata: Fix cpu index counting\n\nThe counting of the cpu index got lost with a recent commit.\nThis patch restores it. This fixes a hang of the parallel worker\nthreads on cpu hotplug.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "edd63cb6b91024332d6983fc51058ac1ef0c081e",
      "tree": "2df04fc5dc35899aa7d4f4c52197f7b492c16c8b",
      "parents": [
        "b0679c63db655fa12007558e267bc0eb1d486fdb"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "message": "sysrq,kdb: Use __handle_sysrq() for kdb\u0027s sysrq function\n\nThe kdb code should not toggle the sysrq state in case an end user\nwants to try and resume the normal kernel execution.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "b0679c63db655fa12007558e267bc0eb1d486fdb",
      "tree": "b210de833621055d02c2114b77d419f09ea73a36",
      "parents": [
        "9e8b624fcaebf9c237b5be9116f4424bf168e6d1"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "message": "debug_core,kdb: fix kgdb_connected bit set in the wrong place\n\nImmediately following an exit from the kdb shell the kgdb_connected\nvariable should be set to zero, unless there are breakpoints planted.\nIf the kgdb_connected variable is not zeroed out with kdb, it is\nimpossible to turn off kdb.\n\nThis patch is merely a work around for now, the real fix will check\nfor the breakpoints.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "9e8b624fcaebf9c237b5be9116f4424bf168e6d1",
      "tree": "9c46796acdbb4bbfe6adbf89bc731dd6eb0adf19",
      "parents": [
        "fb82c0ff27b2c40c6f7a3d1a94cafb154591fa80"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:06 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:06 2010 -0500"
      },
      "message": "Fix merge regression from external kdb to upstream kdb\n\nIn the process of merging kdb to the mainline, the kdb lsmod command\nstopped printing the base load address of kernel modules.  This is\nneeded for using kdb in conjunction with external tools such as gdb.\n\nSimply restore the functionality by adding a kdb_printf for the base\nload address of the kernel modules.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "fb82c0ff27b2c40c6f7a3d1a94cafb154591fa80",
      "tree": "98e49fdc15e9db7eb45e91571ca6187f9a5cf516",
      "parents": [
        "1396a21ba0d4ec381db19bc9cd5b6f25a89cf633"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "message": "repair gdbstub to match the gdbserial protocol specification\n\nThe gdbserial protocol handler should return an empty packet instead\nof an error string when ever it responds to a command it does not\nimplement.\n\nThe problem cases come from a debugger client sending\nqTBuffer, qTStatus, qSearch, qSupported.\n\nThe incorrect response from the gdbstub leads the debugger clients to\nnot function correctly.  Recent versions of gdb will not detach correctly as a result of this behavior.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\n"
    },
    {
      "commit": "1396a21ba0d4ec381db19bc9cd5b6f25a89cf633",
      "tree": "09bbe851de6b70d1896d0a72f832b21d98331d9d",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Martin Hicks",
        "email": "mort@sgi.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "message": "kdb: break out of kdb_ll() when command is terminated\n\nWithout this patch the \"ll\" linked-list traversal command won\u0027t\nterminate when you hit q/Q.\n\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "70d4bf6d467a330ccc947df9b2608e329d9e7708",
      "tree": "477dff26ac865f785e9197065e4807daeb89958c",
      "parents": [
        "4b706372f18de53970e4c6887a96459590fef80a"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue Jul 20 06:45:56 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 20 13:28:05 2010 -0700"
      },
      "message": "drop_monitor: convert some kfree_skb call sites to consume_skb\n\nConvert a few calls from kfree_skb to consume_skb\n\nNoticed while I was working on dropwatch that I was detecting lots of internal\nskb drops in several places.  While some are legitimate, several were not,\nfreeing skbs that were at the end of their life, rather than being discarded due\nto an error.  This patch converts those calls sites from using kfree_skb to\nconsume_skb, which quiets the in-kernel drop_monitor code from detecting them as\ndrops.  Tested successfully by myself\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9078370c0d2cfe4a905aa34f398bbb0d65921a2b",
      "tree": "0b0d3b1f2a9a6dd2f2deaae9fbf9c8c5509ac13c",
      "parents": [
        "7952f98818d561ed0e11434a7a16acd9a7bae859"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:15 2010 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:15 2010 +0100"
      },
      "message": "kmemleak: Add support for NO_BOOTMEM configurations\n\nWith commits 08677214 and 59be5a8e, alloc_bootmem()/free_bootmem() and\nfriends use the early_res functions for memory management when\nNO_BOOTMEM is enabled. This patch adds the kmemleak calls in the\ncorresponding code paths for bootmem allocations.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a2531293dbb7608fa672ff28efe3ab4027917a2f",
      "tree": "017d5a38fa33838ebdca1a332db6887096885d2d",
      "parents": [
        "7a53cd16d4d9968d1962e378b14eec2d99aa43e0"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sun Jul 18 14:27:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Jul 19 10:56:54 2010 +0200"
      },
      "message": "update email address\n\npavel@suse.cz no longer works, replace it with working address.\n\nSigned-off-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "5e017dc3f8bc9e4a28983666e6bc00114a2018bb",
      "tree": "4057e6322bc43d5b833b65b5f7372ae57a709fb3",
      "parents": [
        "e15bacbebb9dcc95f148f28dfc83a6d5e48b60b8"
      ],
      "author": {
        "name": "Dan Kruchinin",
        "email": "dkruchinin@acm.org",
        "time": "Wed Jul 14 14:33:08 2010 +0400"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 19 13:50:19 2010 +0800"
      },
      "message": "padata: Added sysfs primitives to padata subsystem\n\nAdded sysfs primitives to padata subsystem. Now API user may\nembedded kobject each padata instance contains into any sysfs\nhierarchy. For now padata sysfs interface provides only\ntwo objects:\n    serial_cpumask   [RW] - cpumask for serial workers\n    parallel_cpumask [RW] - cpumask for parallel workers\n\nSigned-off-by: Dan Kruchinin \u003cdkruchinin@acm.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "e15bacbebb9dcc95f148f28dfc83a6d5e48b60b8",
      "tree": "bf1ccd1a70247c91662077f31cb22e48103ce2b8",
      "parents": [
        "2197f9a16df9de94655992941d80953ba47042c2"
      ],
      "author": {
        "name": "Dan Kruchinin",
        "email": "dkruchinin@acm.org",
        "time": "Wed Jul 14 14:31:57 2010 +0400"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 19 13:50:19 2010 +0800"
      },
      "message": "padata: Make two separate cpumasks\n\nThe aim of this patch is to make two separate cpumasks\nfor padata parallel and serial workers respectively.\nIt allows user to make more thin and sophisticated configurations\nof padata framework. For example user may bind parallel and serial workers to non-intersecting\nCPU groups to gain better performance. Also each padata instance has notifiers chain for its\ncpumasks now. If either parallel or serial or both masks were changed all\ninterested subsystems will get notification about that. It\u0027s especially useful\nif padata user uses algorithm for callback CPU selection according to serial cpumask.\n\nSigned-off-by: Dan Kruchinin \u003cdkruchinin@acm.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "ce4410116c5debfb0e049f5db4b5cd6211e05b80",
      "tree": "510009c78c5d2757fde08f31c03dd41ddb130463",
      "parents": [
        "d074ee023fa3a4681b64223c5e636102c39628c4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 07 23:43:45 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:35 2010 +0200"
      },
      "message": "PM / Suspend: Fix ordering of calls in suspend error paths\n\nThe ACPI suspend code calls suspend_nvs_free() at a wrong place,\nwhich may lead to a memory leak if there\u0027s an error executing\nacpi_pm_prepare(), because acpi_pm_finish() will not be called in\nthat case.  However, the root cause of this problem is the\napparently confusing ordering of calls in suspend error paths that\nneeds to be fixed.\n\nIn addition to that, fix a typo in a label name in suspend.c.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d074ee023fa3a4681b64223c5e636102c39628c4",
      "tree": "830000adb529463806773d819fe20d76ac0388c5",
      "parents": [
        "f6f71f187518477cecc01cd887933b5da19585e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 07 23:43:35 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:35 2010 +0200"
      },
      "message": "PM / Hibernate: Fix snapshot error code path\n\nThere is an inconsistency between hibernation_platform_enter()\nand hibernation_snapshot(), because the latter calls\nhibernation_ops-\u003eend() after failing hibernation_ops-\u003ebegin(), while\nthe former doesn\u0027t do that.  Make hibernation_snapshot() behave in\nthe same way as hibernation_platform_enter() in that respect.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "f6f71f187518477cecc01cd887933b5da19585e6",
      "tree": "d59705a937ca35d241f274a0db772e688ff9191a",
      "parents": [
        "82f682514a5df89ffb3890627eebf0897b7a84ec"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 07 23:43:18 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:35 2010 +0200"
      },
      "message": "PM / Hibernate: Fix hibernation_platform_enter()\n\nThe hibernation_platform_enter() function calls dpm_suspend_noirq()\ninstead of dpm_resume_noirq() by mistake.  Fix this.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "82f682514a5df89ffb3890627eebf0897b7a84ec",
      "tree": "27a3dba7a179102ac5bfdd5935679bd2abd3f70f",
      "parents": [
        "5f279845f9d684661563894d44729a0c706375b4"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Jul 05 22:53:06 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:34 2010 +0200"
      },
      "message": "pm_qos: Get rid of the allocation in pm_qos_add_request()\n\nAll current users of pm_qos_add_request() have the ability to supply\nthe memory required by the pm_qos routines, so make them do this and\neliminate the kmalloc() with pm_qos_add_request().  This has the\ndouble benefit of making the call never fail and allowing it to be\ncalled from atomic context.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5f279845f9d684661563894d44729a0c706375b4",
      "tree": "de26a630f8b573ccf725a48652700504d1088d8d",
      "parents": [
        "12e4d0cc2e0a776a526c93bb2fcb9267abc6e0b1"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Jul 19 02:00:18 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:18 2010 +0200"
      },
      "message": "pm_qos: Reimplement using plists\n\nA lot of the pm_qos extremal value handling is really duplicating what a\npriority ordered list does, just in a less efficient fashion.  Simply\nredoing the implementation in terms of a plist gets rid of a lot of this\njunk (although there are several other strange things that could do with\ntidying up, like pm_qos_request_list has to carry the pm_qos_class with\nevery node, simply because it doesn\u0027t get passed in to\npm_qos_update_request even though every caller knows full well what\nparameter it\u0027s updating).\n\nI think this redo is a win independent of android, so we should do\nsomething like this now.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c125e96f044427f38d106fab7bc5e4a5e6a18262",
      "tree": "d9bbd40cc933fe522dbdf8ca2f7edf7b6f2f7ca4",
      "parents": [
        "b14e033e17d0ea0ba12668d0d2f371cd31586994"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 05 22:43:53 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 01:58:48 2010 +0200"
      },
      "message": "PM: Make it possible to avoid races between wakeup and system sleep\n\nOne of the arguments during the suspend blockers discussion was that\nthe mainline kernel didn\u0027t contain any mechanisms making it possible\nto avoid races between wakeup and system suspend.\n\nGenerally, there are two problems in that area.  First, if a wakeup\nevent occurs exactly when /sys/power/state is being written to, it\nmay be delivered to user space right before the freezer kicks in, so\nthe user space consumer of the event may not be able to process it\nbefore the system is suspended.  Second, if a wakeup event occurs\nafter user space has been frozen, it is not generally guaranteed that\nthe ongoing transition of the system into a sleep state will be\naborted.\n\nTo address these issues introduce a new global sysfs attribute,\n/sys/power/wakeup_count, associated with a running counter of wakeup\nevents and three helper functions, pm_stay_awake(), pm_relax(), and\npm_wakeup_event(), that may be used by kernel subsystems to control\nthe behavior of this attribute and to request the PM core to abort\nsystem transitions into a sleep state already in progress.\n\nThe /sys/power/wakeup_count file may be read from or written to by\nuser space.  Reads will always succeed (unless interrupted by a\nsignal) and return the current value of the wakeup events counter.\nWrites, however, will only succeed if the written number is equal to\nthe current value of the wakeup events counter.  If a write is\nsuccessful, it will cause the kernel to save the current value of the\nwakeup events counter and to abort the subsequent system transition\ninto a sleep state if any wakeup events are reported after the write\nhas returned.\n\n[The assumption is that before writing to /sys/power/state user space\nwill first read from /sys/power/wakeup_count.  Next, user space\nconsumers of wakeup events will have a chance to acknowledge or\nveto the upcoming system transition to a sleep state.  Finally, if\nthe transition is allowed to proceed, /sys/power/wakeup_count will\nbe written to and if that succeeds, /sys/power/state will be written\nto as well.  Still, if any wakeup events are reported to the PM core\nby kernel subsystems after that point, the transition will be\naborted.]\n\nAdditionally, put a wakeup events counter into struct dev_pm_info and\nmake these per-device wakeup event counters available via sysfs,\nso that it\u0027s possible to check the activity of various wakeup event\nsources within the kernel.\n\nTo illustrate how subsystems can use pm_wakeup_event(), make the\nlow-level PCI runtime PM wakeup-handling code use it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: markgross \u003cmarkgross@thegnar.org\u003e\nReviewed-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\n"
    },
    {
      "commit": "90133673395849c9d4e66a563f2d0d91d92aa461",
      "tree": "9b669641f805b9adcea46992172f312a7c60bdfa",
      "parents": [
        "a9f7f2e74ae0e6a801a2433dc8e9124d73da0cb4"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Mon Jun 07 22:23:12 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 01:58:47 2010 +0200"
      },
      "message": "PM / Hibernate: Fix typos in comments in kernel/power/swap.c\n\nThere are a few typos in kernel/power/swap.c.  Fix them.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5f1a8c1bc724498ff32acbd59ed5263275676b9d",
      "tree": "0aa917ae98ebf20ec865930b75d0b16841b0b28f",
      "parents": [
        "83f619f3c8abb82cac9158cf23c656ec5c184607"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Jul 07 15:32:39 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Jul 14 20:29:30 2010 +0800"
      },
      "message": "padata: simplify serialization mechanism\n\nWe count the number of processed objects on a percpu basis,\nso we need to go through all the percpu reorder queues to calculate\nthe sequence number of the next object that needs serialization.\nThis patch changes this to count the number of processed objects\nglobal. So we can calculate the sequence number and the percpu\nreorder queue of the next object that needs serialization without\nsearching through the percpu reorder queues. This avoids some\naccesses to memory of foreign cpus.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "83f619f3c8abb82cac9158cf23c656ec5c184607",
      "tree": "552107eeccfdb89eeb2d387280dd487a737299e0",
      "parents": [
        "33e54450683c5e970ac007489d7921ba792d093c"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Jul 07 15:32:02 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Jul 14 20:29:29 2010 +0800"
      },
      "message": "padata: make padata_do_parallel to return zero on success\n\nTo return -EINPROGRESS on success in padata_do_parallel was\nconsidered to be odd. This patch changes this to return zero\non success. Also the only user of padata, pcrypt is adapted to\nconvert a return of zero to -EINPROGRESS within the crypto layer.\nThis also removes the pcrypt fallback if padata_do_parallel\nwas called on a not running padata instance as we can\u0027t handle it\nanymore. This fallback was unused, so it\u0027s save to remove it.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "33e54450683c5e970ac007489d7921ba792d093c",
      "tree": "1e3d0a7fcc007bfa97c88c68d411b8e1691bb7e5",
      "parents": [
        "ee836555120140f770005b8ce6673c913d1b9a98"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Jul 07 15:31:26 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Jul 14 20:29:29 2010 +0800"
      },
      "message": "padata: Handle empty padata cpumasks\n\nThis patch fixes a bug when the padata cpumask does not\nintersect with the active cpumask. In this case we get a\ndivision by zero in padata_alloc_pd and we end up with a\nuseless padata instance. Padata can end up with an empty\ncpumask for two reasons:\n\n1. A user removed the last cpu that belongs to the padata\ncpumask and the active cpumask.\n\n2. The last cpu that belongs to the padata cpumask and the\nactive cpumask goes offline.\n\nWe introduce a function padata_validate_cpumask to check if the padata\ncpumask does intersect with the active cpumask. If the cpumasks do not\nintersect we mark the instance as invalid, so it can\u0027t be used. We do not\nallocate the cpumask dependend recources in this case. This fixes the\ndivision by zero and keeps the padate instance in a consistent state.\n\nIt\u0027s not possible to trigger this bug by now because the only padata user,\npcrypt uses always the possible cpumask.\n\nReported-by: Dan Kruchinin \u003cdkruchinin@acm.org\u003e\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "ee836555120140f770005b8ce6673c913d1b9a98",
      "tree": "73f62f460c8b18997a76cf38e7f5021086558c56",
      "parents": [
        "4c879170296174bde05cd1c643dac16594edee77"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Jul 07 15:30:47 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Jul 14 20:29:29 2010 +0800"
      },
      "message": "padata: Block until the instance is unused on stop\n\nThis patch makes padata_stop to block until the padata\ninstance is unused. Also we split padata_stop to a locked\nand a unlocked version. This is in preparation to be able\nto change the cpumask after a call to patata stop.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "4c879170296174bde05cd1c643dac16594edee77",
      "tree": "467afaa9ad1235caa110789621edb7726fdcb4cd",
      "parents": [
        "7e3de7b1be6ce0643f60aed697070e2286db32cd"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Jul 07 15:30:10 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Jul 14 20:29:28 2010 +0800"
      },
      "message": "padata: Check for valid padata instance on start\n\nThis patch introduces the PADATA_INVALID flag which is\nchecked on padata start. This will be used to mark a padata\ninstance as invalid, if the padata cpumask does not intersect\nwith the active cpumask. we change padata_start to return an\nerror if the PADATA_INVALID is set. Also we adapt the only\npadata user, pcrypt to this change.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "698f93159a735bd29a8767c9f60d9b2d75870f8e",
      "tree": "1ea0556201e4fa79c75db621e33c722eedececda",
      "parents": [
        "b27d63d8f8d34af57805f56005e217c150187531"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jul 02 20:41:51 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Jul 11 21:45:40 2010 +0200"
      },
      "message": "fix comment/printk typos concerning \"already\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "5f07aa7524e98d6f68f2bec54f155ef6012e2c9a",
      "tree": "393b2db3213e6618ad1338f9b66019b0c05c6f75",
      "parents": [
        "e467e104bb7482170b79f516d2025e7cfcaaa733",
        "d09ec7387184eba9e3030496f0451204090ff610"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Jul 09 11:25:48 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Jul 09 11:25:48 2010 +1000"
      },
      "message": "Merge commit \u0027paulus-perf/master\u0027 into next\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": "123f94f22e3d283dfe68742b269c245b0501ad82",
      "tree": "1d40043b0909f309cf77204ea87be9e61f143e79",
      "parents": [
        "4b78c119f0ba715b4e29b190bf4d7bce810ea0d6",
        "8c215bd3890c347dfb6a2db4779755f8b9c298a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 2010 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Cure nr_iowait_cpu() users\n  init: Fix comment\n  init, sched: Fix race between init and kthreadd\n"
    },
    {
      "commit": "8c215bd3890c347dfb6a2db4779755f8b9c298a9",
      "tree": "e6bd5de8a028babe9ec75f744977bd1424df106c",
      "parents": [
        "9715856922bf8475f5428c29b6f4a9eebc97d391"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jul 01 09:07:17 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 01 09:39:48 2010 +0200"
      },
      "message": "sched: Cure nr_iowait_cpu() users\n\nCommit 0224cf4c5e (sched: Intoduce get_cpu_iowait_time_us())\nbroke things by not making sure preemption was indeed disabled\nby the callers of nr_iowait_cpu() which took the iowait value of\nthe current cpu.\n\nThis resulted in a heap of preempt warnings. Cure this by making\nnr_iowait_cpu() take a cpu number and fix up the callers to pass\nin the right number.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: linux-pm@lists.linux-foundation.org\nLKML-Reference: \u003c1277968037.1868.120.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7a0ea09ad5352efce8fe79ed853150449903b9f5",
      "tree": "939829793ffb34a78f83b694a725e66dfc50cc16",
      "parents": [
        "f4985dc714d7ab1920c5aa502b7f4073fa1b4177"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Jun 30 09:51:19 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 30 15:43:44 2010 -0700"
      },
      "message": "futex: futex_find_get_task remove credentails check\n\nfutex_find_get_task is currently used (through lookup_pi_state) from two\ncontexts, futex_requeue and futex_lock_pi_atomic.  None of the paths\nlooks it needs the credentials check, though.  Different (e)uids\nshouldn\u0027t matter at all because the only thing that is important for\nshared futex is the accessibility of the shared memory.\n\nThe credentail check results in glibc assert failure or process hang (if\nglibc is compiled without assert support) for shared robust pthread\nmutex with priority inheritance if a process tries to lock already held\nlock owned by a process with a different euid:\n\npthread_mutex_lock.c:312: __pthread_mutex_lock_full: Assertion `(-(e)) !\u003d 3 || !robust\u0027 failed.\n\nThe problem is that futex_lock_pi_atomic which is called when we try to\nlock already held lock checks the current holder (tid is stored in the\nfutex value) to get the PI state.  It uses lookup_pi_state which in turn\ngets task struct from futex_find_get_task.  ESRCH is returned either\nwhen the task is not found or if credentials check fails.\n\nfutex_lock_pi_atomic simply returns if it gets ESRCH.  glibc code,\nhowever, doesn\u0027t expect that robust lock returns with ESRCH because it\nshould get either success or owner died.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Darren Hart \u003cdvhltc@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e05bd3367bd3d88715b53766f95bb3a8ec7ab59e",
      "tree": "db9f13cd687c39bf873ff5dbed28bbd142fc6940",
      "parents": [
        "482ce512c543f3b30ab881702fa997e71252e604"
      ],
      "author": {
        "name": "Pavan Naregundi",
        "email": "pavan@linux.vnet.ibm.com",
        "time": "Tue Jun 29 15:05:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:31 2010 -0700"
      },
      "message": "kexec: fix Oops in crash_shrink_memory()\n\nWhen crashkernel is not enabled, \"echo 0 \u003e /sys/kernel/kexec_crash_size\"\nOOPSes the kernel in crash_shrink_memory.  This happens when\ncrash_shrink_memory tries to release the \u0027crashk_res\u0027 resource which are\nnot reserved.  Also value of \"/sys/kernel/kexec_crash_size\" shows as 1,\nwhich should be 0.\n\nThis patch fixes the OOPS in crash_shrink_memory and shows\n\"/sys/kernel/kexec_crash_size\" as 0 when crash kernel memory is not\nreserved.\n\nSigned-off-by: Pavan Naregundi \u003cpavan@linux.vnet.ibm.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5904b3b81d25166e5e39b9727645bb47937618e3",
      "tree": "2a306f8b0cdea354b3ebc157623dededcf471091",
      "parents": [
        "f3866db8f7534ba8bbb342bebcf5ede542035528",
        "b70e4f0529c089b00d0a6da13106db4de1ada4c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:24:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:24:43 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix undeclared ENOSYS in include/linux/tracepoint.h\n  perf record: prevent kill(0, SIGTERM);\n  perf session: Remove threads from tree on PERF_RECORD_EXIT\n  perf/tracing: Fix regression of perf losing kprobe events\n  perf_events: Fix Intel Westmere event constraints\n  perf record: Don\u0027t call newt functions when not initialized\n"
    },
    {
      "commit": "f3866db8f7534ba8bbb342bebcf5ede542035528",
      "tree": "f73e761ac85faea698eb6ab700361ef199aa68c7",
      "parents": [
        "f014d937d61f47761f961eba903feb2ffa1793aa",
        "4673247562e39a17e09440fa1400819522ccd446"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:23:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:23:12 2010 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Deal with desc-\u003eset_type() changing desc-\u003echip\n"
    },
    {
      "commit": "f014d937d61f47761f961eba903feb2ffa1793aa",
      "tree": "4a6a9441b21711e34d567a8066950548935b9b3a",
      "parents": [
        "cf91b415c8419513ada650a932bfb32a526d4d98",
        "0d98bb2656e9bd2dfda2d089db1fe1dbdab41504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:30 2010 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Prevent compiler from optimising the sched_avg_update() loop\n  sched: Fix over-scheduling bug\n  sched: Fix PROVE_RCU vs cpu_cgroup\n"
    },
    {
      "commit": "cf91b415c8419513ada650a932bfb32a526d4d98",
      "tree": "b69cc7920d763b07fa0722edf58813dc17206734",
      "parents": [
        "e6cb6281ef8547fea1243b1c2a4e0f08d9b86ae1",
        "3310d4d38fbc514e7b18bd3b1eea8effdd63b5aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:02 2010 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  nohz: Fix nohz ratelimit\n"
    },
    {
      "commit": "e6cb6281ef8547fea1243b1c2a4e0f08d9b86ae1",
      "tree": "4444be8141566dec3c88ff5fa7354cbe4cebccdc",
      "parents": [
        "ab8aadbda7d59d4674ef614cba2a67c50667a6af",
        "8695159967957015f8dfb49315d6f88e111d90e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:17:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:17:40 2010 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: silence PROVE_RCU in sched_fork()\n  idr: fix RCU lockdep splat in idr_get_next()\n  rcu: apply RCU protection to wake_affine()\n"
    },
    {
      "commit": "0d98bb2656e9bd2dfda2d089db1fe1dbdab41504",
      "tree": "2172bbdd7fb21640062b2a692ded3d9cebc2382c",
      "parents": [
        "3c93717cfa51316e4dbb471e7c0f9d243359d5f8"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon May 24 12:11:43 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 25 16:11:50 2010 +0200"
      },
      "message": "sched: Prevent compiler from optimising the sched_avg_update() loop\n\nGCC 4.4.1 on ARM has been observed to replace the while loop in\nsched_avg_update with a call to uldivmod, resulting in the\nfollowing build failure at link-time:\n\nkernel/built-in.o: In function `sched_avg_update\u0027:\n kernel/sched.c:1261: undefined reference to `__aeabi_uldivmod\u0027\n kernel/sched.c:1261: undefined reference to `__aeabi_uldivmod\u0027\nmake: *** [.tmp_vmlinux1] Error 1\n\nThis patch introduces a fake data hazard to the loop body to\nprevent the compiler optimising the loop away.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8695159967957015f8dfb49315d6f88e111d90e0",
      "tree": "d575083d37a069be585d575ec036faa8765f1d0c",
      "parents": [
        "94bfa3b6692c7a3f6f119596724204ec975d3ef0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Jun 22 11:44:53 2010 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 15:14:09 2010 -0700"
      },
      "message": "sched: silence PROVE_RCU in sched_fork()\n\nBecause cgroup_fork() is ran before sched_fork() [ from copy_process() ]\nand the child\u0027s pid is not yet visible the child is pinned to its\ncgroup. Therefore we can silence this warning.\n\nA nicer solution would be moving cgroup_fork() to right after\ndup_task_struct() and exclude PF_STARTING from task_subsys_state().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f3b577dec1f2ce32d2db6d2ca6badff7002512af",
      "tree": "c9d5d84b2d3e4ae1251f69932a526367a2bac7fa",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Tue Jun 01 14:06:13 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 06:50:44 2010 -0700"
      },
      "message": "rcu: apply RCU protection to wake_affine()\n\nThe task_group() function returns a pointer that must be protected\nby either RCU, the -\u003ealloc_lock, or the cgroup lock (see the\nrcu_dereference_check() in task_subsys_state(), which is invoked by\ntask_group()).  The wake_affine() function currently does none of these,\nwhich means that a concurrent update would be within its rights to free\nthe structure returned by task_group().  Because wake_affine() uses this\nstructure only to compute load-balancing heuristics, there is no reason\nto acquire either of the two locks.\n\nTherefore, this commit introduces an RCU read-side critical section that\nstarts before the first call to task_group() and ends after the last use\nof the \"tg\" pointer returned from task_group().  Thanks to Li Zefan for\npointing out the need to extend the RCU read-side critical section from\nthat proposed by the original patch.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f7136c5150c29846d7a1d09109449d96b2f63445",
      "tree": "7e961ac7d78ee8322d136f7a6d4da03a6ad2cda7",
      "parents": [
        "0016a4cf5582415849fafbf9f019dd9530824789"
      ],
      "author": {
        "name": "K.Prasad",
        "email": "prasad@linux.vnet.ibm.com",
        "time": "Tue Jun 15 11:34:34 2010 +0530"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jun 22 19:40:50 2010 +1000"
      },
      "message": "hw_breakpoints: Allow arch-specific cleanup before breakpoint unregistration\n\nCertain architectures (such as PowerPC) have a need to clean up data\nstructures before a breakpoint is unregistered.  This introduces an\narch-specific hook in release_bp_slot() along with a weak definition\nin the form of a stub function.\n\nSigned-off-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "3c93717cfa51316e4dbb471e7c0f9d243359d5f8",
      "tree": "0c37ea18287556b42d6264d41c7093dd07f052f5",
      "parents": [
        "dc61b1d65e353d638b2445f71fb8e5b5630f2415"
      ],
      "author": {
        "name": "Alex,Shi",
        "email": "alex.shi@intel.com",
        "time": "Thu Jun 17 14:08:13 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:45:25 2010 +0200"
      },
      "message": "sched: Fix over-scheduling bug\n\nCommit e70971591 (\"sched: Optimize unused cgroup configuration\") introduced\nan imbalanced scheduling bug.\n\nIf we do not use CGROUP, function update_h_load won\u0027t update h_load. When the\nsystem has a large number of tasks far more than logical CPU number, the\nincorrect cfs_rq[cpu]-\u003eh_load value will cause load_balance() to pull too\nmany tasks to the local CPU from the busiest CPU. So the busiest CPU keeps\ngoing in a round robin. That will hurt performance.\n\nThe issue was found originally by a scientific calculation workload that\ndeveloped by Yanmin. With that commit, the workload performance drops\nabout 40%.\n\n CPU  before    after\n\n 00   : 2       : 7\n 01   : 1       : 7\n 02   : 11      : 6\n 03   : 12      : 7\n 04   : 6       : 6\n 05   : 11      : 7\n 06   : 10      : 6\n 07   : 12      : 7\n 08   : 11      : 6\n 09   : 12      : 6\n 10   : 1       : 6\n 11   : 1       : 6\n 12   : 6       : 6\n 13   : 2       : 6\n 14   : 2       : 6\n 15   : 1       : 6\n\nReviewed-by: Yanmin zhang \u003cyanmin.zhang@intel.com\u003e\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1276754893.9452.5442.camel@debian\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3310d4d38fbc514e7b18bd3b1eea8effdd63b5aa",
      "tree": "14e2a5b6126c9b1341a3d4bf5299545ce4b1999a",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 17 18:02:37 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 17 19:37:29 2010 +0200"
      },
      "message": "nohz: Fix nohz ratelimit\n\nChris Wedgwood reports that 39c0cbe (sched: Rate-limit nohz) causes a\nserial console regression, unresponsiveness, and indeed it does. The\nreason is that the nohz code is skipped even when the tick was already\nstopped before the nohz_ratelimit(cpu) condition changed.\n\nMove the nohz_ratelimit() check to the other conditions which prevent\nlong idle sleeps.\n\nReported-by: Chris Wedgwood \u003ccw@f00f.org\u003e\nTested-by: Brian Bloniarz \u003cbmb@athenacr.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Jef Driesen \u003cjefdriesen@telenet.be\u003e\nLKML-Reference: \u003c1276790557.27822.516.camel@twins\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5c1469de7545a35a16ff2b902e217044a7d2f8a5",
      "tree": "2a3b48da4dab1516234633ee5e71766801210e49",
      "parents": [
        "812e876e842488221aa54cb4587a8a33445cfa9e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Jun 13 03:28:03 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 16 14:55:34 2010 -0700"
      },
      "message": "user_ns: Introduce user_nsmap_uid and user_ns_map_gid.\n\nDefine what happens when a we view a uid from one user_namespace\nin another user_namepece.\n\n- If the user namespaces are the same no mapping is necessary.\n\n- For most cases of difference use overflowuid and overflowgid,\n  the uid and gid currently used for 16bit apis when we have a 32bit uid\n  that does fit in 16bits.  Effectively the situation is the same,\n  we want to return a uid or gid that is not assigned to any user.\n\n- For the case when we happen to be mapping the uid or gid of the\n  creator of the target user namespace use uid 0 and gid as confusing\n  that user with root is not a problem.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b",
      "tree": "c2c130a74be25b0b2dff992e1a195e2728bdaadd",
      "parents": [
        "fd0961ff67727482bb20ca7e8ea97b83e9de2ddb",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "732bee7af3102cad811fb047dee8d15966efe569",
      "tree": "1a260fdc7a7155e8b22944dc114af4c2cd56a100",
      "parents": [
        "22c1d8b4f8f04882046ebe592f9a9eaea443cb45"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jun 11 12:16:59 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:03:14 2010 +0200"
      },
      "message": "fix typos concerning \"hierarchy\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "42de5532f4a58a52a60bdd8bd4f80f9f210dd65b",
      "tree": "f624579c4c27e1ffcba5e4141fcc0877c3a6ae56",
      "parents": [
        "e9e8b4dd142da3b6cbf301ba922804d6cdc31a17",
        "2a6b69765ad794389f2fc3e14a0afa1a995221c2"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 12 01:15:40 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 12 01:15:40 2010 -0400"
      },
      "message": "Merge branch \u0027bugzilla-13931-sleep-nvs\u0027 into release\n\nConflicts:\n\tdrivers/acpi/sleep.c\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a8fb2608053547bc3152ea61a5ec7cdfce5d942c",
      "tree": "08f5fd61dd3fce05a2472f457c48ec249966b372",
      "parents": [
        "d11007703c31db534674ebeeb9eb047bbbe758bd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 10 14:53:16 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 10 20:56:54 2010 -0400"
      },
      "message": "perf/tracing: Fix regression of perf losing kprobe events\n\nWith the addition of the code to shrink the kernel tracepoint\ninfrastructure, we lost kprobes being traced by perf. The reason\nis that I tested if the \"tp_event-\u003eclass-\u003eperf_probe\" existed before\nenabling it. This prevents \"ftrace only\" events (like the function\ntrace events) from being enabled by perf.\n\nUnfortunately, kprobe events do not use perf_probe. This causes\nkprobes to be missed by perf. To fix this, we add the test to\nsee if \"tp_event-\u003eclass-\u003ereg\" exists as well as perf_probe.\n\nNormal trace events have only \"perf_probe\" but no \"reg\" function,\nand kprobes and syscalls have the \"reg\" but no \"perf_probe\".\nThe ftrace unique events do not have either, so this is a valid\ntest. If a kprobe or syscall is not to be probed by perf, the\n\"reg\" function is called anyway, and will return a failure and\nprevent perf from probing it.\n\nReported-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nTested-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "85ca7886f566ae387a57a37bc0ffab25e3e117b5",
      "tree": "d170966b3352b3463669492648861795aad0fb92",
      "parents": [
        "7c8d20d40f29e7c08332d406d7a65678dece4627",
        "16106822b67e0a5eb228aebf47e33d6cad1e91b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 10 09:30:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 10 09:30:09 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix null pointer deref with SEND_SIG_FORCED\n  perf: Fix signed comparison in perf_adjust_period()\n  powerpc/oprofile: fix potential buffer overrun in op_model_cell.c\n  perf symbols: Set the DSO long name when using symbol_conf.vmlinux_name\n"
    },
    {
      "commit": "dd4c4f17d722ffeb2515bf781400675a30fcead7",
      "tree": "0190eff340ffeac7800a3d7d1e0c1232c09397ef",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Fri May 28 16:32:14 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jun 10 11:02:34 2010 -0400"
      },
      "message": "suspend: Move NVS save/restore code to generic suspend functionality\n\nSaving platform non-volatile state may be required for suspend to RAM as\nwell as hibernation. Move it to more generic code.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4673247562e39a17e09440fa1400819522ccd446",
      "tree": "31746ff2cd7f41048b7507cd3cae9dae2a1519be",
      "parents": [
        "84f7586edab93052bbe7eb72e1e9bce5f7b6ae45"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 07 17:53:51 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 09 17:05:08 2010 +0200"
      },
      "message": "genirq: Deal with desc-\u003eset_type() changing desc-\u003echip\n\nThe set_type() function can change the chip implementation when the\ntrigger mode changes. That might result in using an non-initialized\nirq chip when called from __setup_irq() or when called via\nset_irq_type() on an already enabled irq. \n\nThe set_irq_type() function should not be called on an enabled irq,\nbut because we forgot to put a check into it, we have a bunch of users\nwhich grew the habit of doing that and it never blew up as the\nfunction is serialized via desc-\u003elock against all users of desc-\u003echip\nand they never hit the non-initialized irq chip issue.\n\nThe easy fix for the __setup_irq() issue would be to move the\nirq_chip_set_defaults(desc-\u003echip) call after the trigger setting to\nmake sure that a chip change is covered.\n\nBut as we have already users, which do the type setting after\nrequest_irq(), the safe fix for now is to call irq_chip_set_defaults()\nfrom __irq_set_trigger() when desc-\u003eset_type() changed the irq chip.\n\nIt needs a deeper analysis whether we should refuse to change the chip\non an already enabled irq, but that\u0027d be a large scale change to fix\nall the existing users. So that\u0027s neither stable nor 2.6.35 material.\n\nReported-by: Esben Haabendal \u003ceha@doredevelopment.dk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: linuxppc-dev \u003clinuxppc-dev@ozlabs.org\u003e\nCc: stable@kernel.org\n"
    }
  ],
  "next": "dc61b1d65e353d638b2445f71fb8e5b5630f2415"
}
