)]}'
{
  "log": [
    {
      "commit": "3a8580f82024e30b31c662aa49346adf7a3bcdb5",
      "tree": "7769a01f152b4081f4e4225e499082fd5c67b184",
      "parents": [
        "1d767cae4dbd4116fc3b2cc3251a20760f98339f",
        "2ccf62b36097aa88e0ea152d6ef0c0ca2d3884e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 09:01:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 09:01:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml\n\nPull UML updates from Richard Weinberger:\n \"Most changes are bug fixes and cleanups\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:\n  um: missing checks of __put_user()/__get_user() return values\n  um: stub_rt_sigsuspend isn\u0027t needed these days anymore\n  um/x86: merge (and trim) 32- and 64-bit variants of ptrace.h\n  irq: Remove irq_chip-\u003erelease()\n  um: Remove CONFIG_IRQ_RELEASE_METHOD\n  um: Remove usage of irq_chip-\u003erelease()\n  um: Implement um_free_irq()\n  um: Fix __swp_type()\n  um: Implement a custom pte_same() function\n  um: Add BUG() to do_ops()\u0027s error path\n  um: Remove unused variables\n  um: bury unused _TIF_RESTORE_SIGMASK\n  um: wrong sigmask saved in case of multiple sigframes\n  um: add TIF_NOTIFY_RESUME\n  um: -\u003erestart_block.fn needs to be reset on sigreturn\n"
    },
    {
      "commit": "fa7a0449e0ea6588f64c06a045ea8728280f3457",
      "tree": "3a309dc94896e03d55707f07813bc1b325a4ee75",
      "parents": [
        "2b76ebaa728f8a3967c52aa189261c72fe56a6f1"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Apr 17 22:37:13 2012 +0200"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon May 21 21:09:36 2012 +0200"
      },
      "message": "um: Implement um_free_irq()\n\nInstead of using chip-\u003erelease() we can achieve the same\nusing a simple wrapper for free_irq().\nWe have already um_request_irq(), so um_free_irq() is the perfect\ncounterpart.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "616c310e83b872024271c915c1b9ab505b9efad9",
      "tree": "1339bc7b3bef920b4641a5af2f182e9dfa2a6632",
      "parents": [
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Mar 27 16:02:08 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed May 02 14:43:23 2012 -0700"
      },
      "message": "rcu: Move PREEMPT_RCU preemption to switch_to() invocation\n\nCurrently, PREEMPT_RCU readers are enqueued upon entry to the scheduler.\nThis is inefficient because enqueuing is required only if there is a\ncontext switch, and entry to the scheduler does not guarantee a context\nswitch.\n\nThe commit therefore moves the enqueuing to immediately precede the\ncall to switch_to() from the scheduler.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3a85a763c399c0bf483a30d82d2d613e6f94cd3",
      "tree": "9239b9bd86541e212f0d3f9bae0d50f104fab3d4",
      "parents": [
        "d824d06328904f610b47652dcd488392f2fc62b6"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Thu Mar 29 18:47:46 2012 +0200"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Apr 10 00:13:45 2012 +0200"
      },
      "message": "um: Disintegrate asm/system.h\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCC: dhowells@redhat.com\n"
    },
    {
      "commit": "d824d06328904f610b47652dcd488392f2fc62b6",
      "tree": "62f6571303ff4830784e0f43bf04ce94e2c334cd",
      "parents": [
        "f21a7c195cb20cf613147839c4a2bc1fca8c7bd8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 05 23:35:03 2012 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Apr 10 00:13:45 2012 +0200"
      },
      "message": "um: switch cow_user.h to htobe{32,64}/betoh{32,64}\n\n... rather than open-coding the 64bit versions.  endian.h has those guys.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "fa453a625de5b8ee9ada0a5b329df3f88751c615",
      "tree": "7a9e04d4a44bb929e96bd9bebb7b97cb733d1ecb",
      "parents": [
        "30eebb54b13ef198a3f1a143ee9dd68f295c60de",
        "3463ff4439661d8107ac024329b5fe01d6e5117b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml\n\nPull UML changes from Richard Weinberger:\n \"Mostly bug fixes and cleanups\"\n\n* \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (35 commits)\n  um: Update defconfig\n  um: Switch to large mcmodel on x86_64\n  MTD: Relax dependencies\n  um: Wire CONFIG_GENERIC_IO up\n  um: Serve io_remap_pfn_range()\n  Introduce CONFIG_GENERIC_IO\n  um: allow SUBARCH\u003dx86\n  um: most of the SUBARCH uses can be killed\n  um: deadlock in line_write_interrupt()\n  um: don\u0027t bother trying to rebuild CHECKFLAGS for USER_OBJS\n  um: use the right ifdef around exports in user_syms.c\n  um: a bunch of headers can be killed by using generic-y\n  um: ptrace-generic.h doesn\u0027t need user.h\n  um: kill HOST_TASK_PID\n  um: remove pointless include of asm/fixmap.h from asm/pgtable.h\n  um: asm-offsets.h might as well come from underlying arch...\n  um: merge processor_{32,64}.h a bit...\n  um: switch close_chan() to struct line\n  um: race fix: initialize delayed_work *before* registering IRQ\n  um: line-\u003ehave_irq is never checked...\n  ...\n"
    },
    {
      "commit": "199eebbae45791af0f37184dd495f16a6cf5c34a",
      "tree": "473834d6b21fa9e54d5deb158b54f78a984f7bc4",
      "parents": [
        "64405360cee33a058d7e07713af23aca43b96d41"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 11 03:05:32 2012 -0500"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:56 2012 +0100"
      },
      "message": "um: deadlock in line_write_interrupt()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "10c890c0a303070652f5374ea31a0b29350d14d9",
      "tree": "34077d8fb7d8d81d761f2c28021310ce821f4ceb",
      "parents": [
        "0fcd719934cd3521ae4a977f454e75e2be60b7ff"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Sep 10 08:39:18 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:54 2012 +0100"
      },
      "message": "um: switch close_chan() to struct line\n\n... and switch chan_interrupt() to directly calling close_one_chan(),\nso we can lose delay_free_irq argument of close_chan() as well.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "0fcd719934cd3521ae4a977f454e75e2be60b7ff",
      "tree": "f6679910030fa0361ab52603987b72bc5e7ef314",
      "parents": [
        "5eaa3411a80fe50b3a0333389e0e259c580869e9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Sep 10 08:17:04 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:54 2012 +0100"
      },
      "message": "um: race fix: initialize delayed_work *before* registering IRQ\n\n... since chan_interrupt() might schedule it if there\u0027s too much\nincoming data.  Kill task argument of chan_interrupt(), while\nwe are at it - it\u0027s always \u0026line-\u003etask.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "5eaa3411a80fe50b3a0333389e0e259c580869e9",
      "tree": "40d0e9edcdd544002e35534cf0ce34da900bda2c",
      "parents": [
        "1f42369cfc2ea9dcd2b443f80060048e4683d7ad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 20:20:52 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:54 2012 +0100"
      },
      "message": "um: line-\u003ehave_irq is never checked...\n\nlooks like a half-arsed duplicate of line-\u003eenabled\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "1f42369cfc2ea9dcd2b443f80060048e4683d7ad",
      "tree": "69c0655621dae1b6bc7c297f3d5fe20a7022235f",
      "parents": [
        "bed5e39c56f3fe792e336cfa2670001d78f1d44c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 20:18:09 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:54 2012 +0100"
      },
      "message": "um: chan_init_pri is dead now\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "bed5e39c56f3fe792e336cfa2670001d78f1d44c",
      "tree": "3b1276d6c18de5a547657d7d86f3aa2f55fa2d1d",
      "parents": [
        "ee4850702bd6980c7baeb6a45142d55744a109a2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 08 10:49:34 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:54 2012 +0100"
      },
      "message": "um: switch users of -\u003echan_list to -\u003echan_{in,out} (easy cases)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "ee4850702bd6980c7baeb6a45142d55744a109a2",
      "tree": "a0db87b08c0e2790a069f7e2891f798259d0c47e",
      "parents": [
        "c8e2876fc8adaf9539f051fcda5d551308e8a0f8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 08 07:07:26 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:54 2012 +0100"
      },
      "message": "um: sorting out the chan mess, part 1\n\nput references to in and out chans associated with line into\nexplicit struct chan * fields in it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "c8e2876fc8adaf9539f051fcda5d551308e8a0f8",
      "tree": "29c8a0cc31d00dcd185003405e92e66790d2d243",
      "parents": [
        "04292b2cf8f02a33cfc1054c0c51aa8c77731813"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 20:08:48 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:54 2012 +0100"
      },
      "message": "um: finally kill -\u003einit_str leaks\n\nnow we can do that...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "04292b2cf8f02a33cfc1054c0c51aa8c77731813",
      "tree": "ff04fb51c5de7bd646d09d29d9d0ed012ca5a0df",
      "parents": [
        "cfe6b7c79daa0efa27f474f1fe2a88fd7af5cc47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 20:07:05 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:53 2012 +0100"
      },
      "message": "um: get rid of lines_init()\n\nmove config-independent parts of initialization into\nregister_lines(), call setup_one_line() after it instead\nof abusing -\u003einit_str.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "cfe6b7c79daa0efa27f474f1fe2a88fd7af5cc47",
      "tree": "5030f25d83451e3b3e579bac4b9a2e561990048d",
      "parents": [
        "31efcebb7d7196adcee73027f513d7c0bf572b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 19:45:42 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:53 2012 +0100"
      },
      "message": "um: switch line.c tty drivers to dynamic device creation\n\nCurrent code doesn\u0027t update the symlinks in /sys/dev/char when we add/remove\ntty lines.  Fixing that allows to stop messing with -\u003evalid before the driver\nregistration, which is a Good Thing(tm) - we shouldn\u0027t have it set before we\nreally have the things set up and ready for line_open().\n\nWe need tty_driver available to call tty_{un,}register_device(), so we just\nstash a reference to it into struct line_driver.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "31efcebb7d7196adcee73027f513d7c0bf572b47",
      "tree": "c3064342091568bd66f1f5cd85b3c1972ed697da",
      "parents": [
        "d8c215adbf3901aa7d00a0f17f08d77be689f838"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 19:14:02 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:53 2012 +0100"
      },
      "message": "um: fix races between line_open() and line_config()\n\nPull parse_chan_pair() call into setup_one_line(), under the mutex.\nWe really don\u0027t want open() to succeed before parse_chan_pair() had\nbeen done (or after it has failed, BTW).  We also want \"remove con\u003cn\u003e\"\nto free irqs, etc., same as \"config con\u003cn\u003e\u003dnone\".\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "d8c215adbf3901aa7d00a0f17f08d77be689f838",
      "tree": "88f7f49abb5944725f3b60d8f28a41580e7f915f",
      "parents": [
        "43574c1afea4f798592c03cf4d4ecea4fd0a8416"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 17:36:37 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:53 2012 +0100"
      },
      "message": "um: convert count_lock to mutex, fix a race in line_open()\n\nIf two processes are opening the same line, the second to get\ninto line_open() will decide that it doesn\u0027t need to do anything\n(correctly) or wait for anything.  The latter, unfortunately,\nis incorrect - the first opener might not be through yet.  We\nneed to have exclusion covering the entire line_init(), including\nthe blocking parts.  Moreover, the next patch will need to\nwiden the exclusion on mconsole side of things, also including\nthe blocking bits, so let\u0027s just convert that sucker to mutex...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "43574c1afea4f798592c03cf4d4ecea4fd0a8416",
      "tree": "0681a51541bd247fd7ea5a363182397383239a39",
      "parents": [
        "fe9a6b002988372406baf5aeefc046677782365e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 09 17:25:00 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:53 2012 +0100"
      },
      "message": "um: get rid of the init_prio mess\n\nmake line_setup() act on a separate array of conf strings + default conf,\nhave lines array initialized explicitly by that data, bury LINE_INIT()\nmacro from hell.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "fe9a6b002988372406baf5aeefc046677782365e",
      "tree": "cf8cdd1fbef2bc70c0931da5b0e3e8070a7f78c7",
      "parents": [
        "da645f3be912a377ada97268e36360b0a4389ab0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 08 20:44:06 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:53 2012 +0100"
      },
      "message": "um: switch line_config() to setup_one_line()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "da645f3be912a377ada97268e36360b0a4389ab0",
      "tree": "e6d47406e497eb38a08e2d504cbb390a11b5bdbd",
      "parents": [
        "8998af2b4f7a4dd500198f9a7bd4dc8411568b7d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 08 20:34:52 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:53 2012 +0100"
      },
      "message": "um: switch line_remove() to setup_one_line()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "8ea3c06a2e4d9c6e63461dd56ea74a0a84275e14",
      "tree": "b5f8e57151edcad5db5e81a7fcd0dcc6fed6d512",
      "parents": [
        "3ee6bd8e8dc0c58b9ba5bab7ef8a7a131da346eb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 18 18:04:41 2011 -0400"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:52 2012 +0100"
      },
      "message": "um: clean up the includes in ubd\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "c0b79a90b1556a7e51d7a49a655eb60306f6258d",
      "tree": "e6f8427119e3e4c4aada70cfb04c6c430dcc7f84",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Thu Sep 22 16:58:46 2011 +0800"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:52 2012 +0100"
      },
      "message": "um: irq: Remove IRQF_DISABLED\n\nSince commit [e58aa3d2: genirq: Run irq handlers with interrupts disabled],\nWe run all interrupt handlers with interrupts disabled\nand we even check and yell when an interrupt handler\nreturns with interrupts enabled (see commit [b738a50a:\ngenirq: Warn when handler enables interrupts]).\n\nSo now this flag is a NOOP and can be removed.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "95f2054f167f7da72b0771984dbb2bec612740d0",
      "tree": "20480035754898da3f36f4a5cd0c74dd3c5fc609",
      "parents": [
        "6a214fd4142d585ef2226e8ef6bc29a15403506f"
      ],
      "author": {
        "name": "Danny Kukawka",
        "email": "danny.kukawka@bisect.de",
        "time": "Fri Feb 17 16:05:03 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 17 16:05:03 2012 -0500"
      },
      "message": "UML net: set addr_assign_type if random_ether_addr() used\n\nSet addr_assign_type correctly to NET_ADDR_RANDOM in case\na random MAC address was generated and assigned to the netdevice.\n\nReturn state from setup_etheraddr() about returning a random\nMAC address or not and check this state in eth_configure().\n\nSigned-off-by: Danny Kukawka \u003cdanny.kukawka@bisect.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de0a5345a55b8dd5a4695181275df0e691176830",
      "tree": "17530e824f7f46ce0b1757657179fb5957a6add5",
      "parents": [
        "994c0e992522c123298b4a91b72f5e67ba2d1123",
        "8535639810e578960233ad39def3ac2157b0c3ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 09:45:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 09:45:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://github.com/richardweinberger/linux\n\n* \u0027for-linus\u0027 of git://github.com/richardweinberger/linux: (90 commits)\n  um: fix ubd cow size\n  um: Fix kmalloc argument order in um/vdso/vma.c\n  um: switch to use of drivers/Kconfig\n  UserModeLinux-HOWTO.txt: fix a typo\n  UserModeLinux-HOWTO.txt: remove ^H characters\n  um: we need sys/user.h only on i386\n  um: merge delay_{32,64}.c\n  um: distribute exports to where exported stuff is defined\n  um: kill system-um.h\n  um: generic ftrace.h will do...\n  um: segment.h is x86-only and needed only there\n  um: asm/pda.h is not needed anymore\n  um: hw_irq.h can go generic as well\n  um: switch to generic-y\n  um: clean Kconfig up a bit\n  um: a couple of missing dependencies...\n  um: kill useless argument of free_chan() and free_one_chan()\n  um: unify ptrace_user.h\n  um: unify KSTK_...\n  um: fix gcov build breakage\n  ...\n"
    },
    {
      "commit": "8535639810e578960233ad39def3ac2157b0c3ec",
      "tree": "519778b447082e802b42c2d6720475ca1cc7c96e",
      "parents": [
        "0d65ede0a605d6252acc5c8a9c536c4cd0211f3c"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 13:17:27 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:42 2011 +0100"
      },
      "message": "um: fix ubd cow size\n\nubd_file_size() cannot use ubd_dev-\u003ecow.file because at this time\nubd_dev-\u003ecow.file is not initialized.\nTherefore, ubd_file_size() will always report a wrong disk size when\nCOW files are used.\nReading from /dev/ubd* would crash the kernel.\n\nWe have to read the correct disk size from the COW file\u0027s backing\nfile.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "772bd0a5a5ebfd37186df086c0f51f676495c4d9",
      "tree": "542a947aa69650976451980b2253e48710cbca80",
      "parents": [
        "966e803ab12538faf2b236dbe83f7fb796a031d6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:12:39 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:28 2011 +0100"
      },
      "message": "um: kill useless argument of free_chan() and free_one_chan()\n\ndelay_free_irq is always 0 for those...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "c506c0e4a730b436b082fa398ec1d8ae9433b2eb",
      "tree": "e6f9789f9a428cd52bd63d6dd14c191f4df85908",
      "parents": [
        "b3ee571e58120de30c3d15657022bf2c72477e02"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:10:59 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:22 2011 +0100"
      },
      "message": "um: take ubd_user.h to its users...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "ece67c8697f32699f6977d3d1ae2ae9f7892a913",
      "tree": "8ec42a9262d4f0ed260474edef975945384edb09",
      "parents": [
        "510c72a3cf51c9463db64eb6c21347f4940a202f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:08:39 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:12 2011 +0100"
      },
      "message": "um: take mconsole*.h to arch/um/drivers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "510c72a3cf51c9463db64eb6c21347f4940a202f",
      "tree": "948235a6eb749b9ec7a195eda7dfedbaff2834cb",
      "parents": [
        "17e052093bcd21eaf9eb6e792cd76fdc4f0e3505"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:08:29 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:12 2011 +0100"
      },
      "message": "um: take chan_*.h and line.h to arch/um/drivers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "17e052093bcd21eaf9eb6e792cd76fdc4f0e3505",
      "tree": "34e641a73c6b128396b4114f25f8d8133563e53d",
      "parents": [
        "0a9e70b1cd0f7ee82a65d19edfcd31664ef65f69"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:08:19 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:11 2011 +0100"
      },
      "message": "um: take register_winch_irq() into the caller of is_skas_winch()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "0a9e70b1cd0f7ee82a65d19edfcd31664ef65f69",
      "tree": "fdafeaaa1e5f15dda2e75b25c367d6e55882ac20",
      "parents": [
        "445c5786c9ce02b6816bb11fd3394a134fa6d244"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:08:09 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:10 2011 +0100"
      },
      "message": "um: kill shared/mem_kern.h\n\n... nothing declared there exists\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "dbddc51bc8557525bcc51ad8f4e1626e5f586ebc",
      "tree": "392421a9492f39027cc5895460ed2ca8558e8464",
      "parents": [
        "429172ccf058e67974dd1ab3d8b82075383efe84"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:07:19 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:15:07 2011 +0100"
      },
      "message": "um: don\u0027t include kern.h unless it\u0027s needed\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "078073a3d48ce7c140f1538d249da3ac545065a6",
      "tree": "064e0baa9b1a6d97d5dbbbfae388a297303fba65",
      "parents": [
        "4de1c5f65c7dd4965a2a58b93205b747d7826110"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Aug 18 20:01:29 2011 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Nov 02 14:14:44 2011 +0100"
      },
      "message": "um: -include user.h for USER_OBJ, trim includes\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "8decf868790b48a727d7e7ca164f2bcd3c1389c0",
      "tree": "b759a5f861f842af7ea76f9011b579d06e9d5508",
      "parents": [
        "3fc72370186be2f9d4d6ef06d99e1caa5d92c564",
        "d93dc5c4478c1fd5de85a3e8aece9aad7bbae044"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 22 03:23:13 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 22 03:23:13 2011 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:davem330/net\n\nConflicts:\n\tMAINTAINERS\n\tdrivers/net/Kconfig\n\tdrivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c\n\tdrivers/net/ethernet/broadcom/tg3.c\n\tdrivers/net/wireless/iwlwifi/iwl-pci.c\n\tdrivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c\n\tdrivers/net/wireless/rt2x00/rt2800usb.c\n\tdrivers/net/wireless/wl12xx/main.c\n"
    },
    {
      "commit": "7cf3cf21aac7d75d27e8e7cd039bd33d19fb300d",
      "tree": "49cad391c87a4aec5f6941b4d93b2cccb94bc230",
      "parents": [
        "45cd5e2d4e632f55af1d6131f33b554c98f8b929"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Sep 14 16:21:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 14 18:09:37 2011 -0700"
      },
      "message": "um: fix free_winch() mess\n\nwhile not doing free_irq() from irq handler is commendable, kfree() on the\ndata passed to said handler before free_irq() is Not Good(tm).  Freeing\nthe stack it\u0027s being run on is also not nice...  Solution: delay actually\nfreeing stuff.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45cd5e2d4e632f55af1d6131f33b554c98f8b929",
      "tree": "8cc6c469235826606383420663d16e29fbdc4cbd",
      "parents": [
        "f71f94845e0126884eca8ce57a92e30b189c8e71"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Sep 14 16:21:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 14 18:09:37 2011 -0700"
      },
      "message": "um: winch_interrupt() can happen inside of free_winch()\n\n...  so set winch-\u003efd to -1 before doing free_irq(), to avoid having\nwinch_interrupt() come from/during the latter and attempt to do\nreactivate_fd() on something that\u0027s already gone.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f71f94845e0126884eca8ce57a92e30b189c8e71",
      "tree": "4284aa9143c6f1b5969da372a81bc75ba7ef4e3e",
      "parents": [
        "fbfe9c847edf57ac8232aeafb290f272289893a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Sep 14 16:21:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 14 18:09:37 2011 -0700"
      },
      "message": "um: fix oopsable race in line_close()\n\ntty-\u003ecount is decremented only after -\u003eclose() had been called and\nseveral tasks can hit it in parallel.  As the result, using tty-\u003ecount\nto check if you are the last one is broken.  We end up leaving line-\u003etty\nnot reset to NULL and the next IRQ on that sucker will blow up trying to\ndereference pointers from kfree\u0027d struct tty.\n\nFix is obvious: we need to use a counter of our own.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b40997b872cdb70140f127af6069f00a86b6cf81",
      "tree": "1d7494187281b7e004fd75910a45f598cdd6d7dd",
      "parents": [
        "e5f0bdc7840bdb791247cb98dfc1dab6ea6c7da4"
      ],
      "author": {
        "name": "Jonathan Neuschäfer",
        "email": "j.neuschaefer@gmx.net",
        "time": "Wed Sep 14 16:21:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 14 18:09:37 2011 -0700"
      },
      "message": "um: drivers/xterm.c: fix a file descriptor leak\n\nI could use out_close1, but that seems to be the code path to close the fd\nreturned by os_create_unix_socket, and using it to close the fd returned\nby mkstemp might lead to some confusion, so I don\u0027t do it.\n\nSigned-off-by: Jonathan Neuschäfer \u003cj.neuschaefer@gmx.net\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afc4b13df143122f99a0eb10bfefb216c2806de0",
      "tree": "5a90e0a8226ce4173d8d366f5bed0322c9623cdd",
      "parents": [
        "01789349ee52e4a3faf376f1485303d9723c4f1f"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Aug 16 06:29:01 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 17 20:22:03 2011 -0700"
      },
      "message": "net: remove use of ndo_set_multicast_list in drivers\n\nreplace it by ndo_set_rx_mode\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1c93e4946ae1cc268729451de6335a7e7d2bea9",
      "tree": "ed1ed33faf640af3544963b0afc085ec8ed9e640",
      "parents": [
        "39073db15bf9016003e8a4e607d517f4928b713c"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon Jul 25 17:12:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:13 2011 -0700"
      },
      "message": "um: remove dead code\n\nGCC 4.6\u0027s -Wunused-but-set-variable found some dead code.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39073db15bf9016003e8a4e607d517f4928b713c",
      "tree": "9de605555a05db5c2d2aaa3f9ff1adb2b16fd6dc",
      "parents": [
        "f1c2bb8b9964ed31de988910f8b1cfb586d30091"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon Jul 25 17:12:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:13 2011 -0700"
      },
      "message": "um: adjust size of pid_buf\n\nLinux can have pids up to 4*1024*1024.  To handle such huge numbers\npid_buf needs to be larger.\n\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a8beb93067764344523386e0e5388d3fd78add7",
      "tree": "d8458ea042a52610a3b1c0f9517f50ecd67c849a",
      "parents": [
        "2fdf2130926f07881c75e3905ece472c37d7703f"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Mon Jul 25 17:12:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:13 2011 -0700"
      },
      "message": "uml: drivers/slip_user.c memory leak fix\n\nDo not free memory when you failed to allocate it.\n\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a99ae7c57d2de5cad9562bed32addf064521116",
      "tree": "48d3f4c0cd2233a58b5f75a32d38c40bf326e964",
      "parents": [
        "fbee8d933c775cdb9daac3063659cda38c1776c2"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Mon Jul 25 17:12:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:13 2011 -0700"
      },
      "message": "uml: cow_user.c warning corrections\n\nFix this warning:\n\n  arch/um/drivers/cow_user.c: In function `absolutize\u0027:\n  arch/um/drivers/cow_user.c:189:7: warning: ignoring return value of `chdir\u0027, declared with attribute warn_unused_result\n\n[richard@nod.at: happens only with -D_FORTIFY_SOURCE\u003d2]\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fbee8d933c775cdb9daac3063659cda38c1776c2",
      "tree": "22027a33c69747445c77cc39d1445420067f16b3",
      "parents": [
        "7fa38e7e9ead2dc7a346db10dd27a40dd83b2a26"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Mon Jul 25 17:12:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:12 2011 -0700"
      },
      "message": "uml: drivers/net_user.c memory leak fix\n\nPerform memory cleanup on exit.  On receiving invalid \u0027pid\u0027 we still\nshould clean \u0027output\u0027 variable.\n\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd71dc4c335a8957d269ce063b3e80933f3482fc",
      "tree": "5656fc75eae80cff60faeb6487432d1289eafcc8",
      "parents": [
        "f956b3e40ad7b9f7c0d33b80fe78f57fedb74f49"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon Jul 25 17:12:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:12 2011 -0700"
      },
      "message": "um: add netpoll support\n\nTo make netconsole usable on UML, its ethernet driver needs netpoll\nsupport.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ff4d8d342fe25c4d1106fb0ffdd310a43d0ace0",
      "tree": "b41ea0ecc007f1c90eceada0db081dc0fb81700c",
      "parents": [
        "d634f194d4e2e58d57927c812aca097e67a2287d"
      ],
      "author": {
        "name": "Nolan Leake",
        "email": "nolan@sigbus.net",
        "time": "Tue May 24 17:13:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:41 2011 -0700"
      },
      "message": "um: add ucast ethernet transport\n\nThe ucast transport is similar to the mcast transport (and, in fact,\nshares most of its code), only it uses UDP unicast to move packets.\n\nObviously this is only useful for point-to-point connections between\nvirtual ethernet devices.\n\nSigned-off-by: Nolan Leake \u003cnolan@cumulusnetworks.com\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ce451acb1872eab0fcf22753f93f51567e812fa",
      "tree": "cb9658d9faeec3fbb1d089c94da32f009bf9ff93",
      "parents": [
        "8aebe21e0f805b9c411a51e716bb34aa61c0cad6"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue May 24 17:13:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:40 2011 -0700"
      },
      "message": "um: fix UML_LIB_PATH\n\nUML_LIB_PATH is hardcoded to /usr/lib/uml/, on 64bit systems UML_LIB_PATH\nneeds to be /usr/lib64/uml/.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07f9479a40cc778bc1462ada11f95b01360ae4ff",
      "tree": "0676cf38df3844004bb3ebfd99dfa67a4a8998f5",
      "parents": [
        "9d5e6bdb3013acfb311ab407eeca0b6a6a3dedbf",
        "cd2e49e90f1cae7726c9a2c54488d881d7f1cd1c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 26 10:22:15 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 26 10:22:59 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nFast-forwarded to current state of Linus\u0027 tree as there are patches to be\napplied for files that didn\u0027t exist on the old branch.\n"
    },
    {
      "commit": "6eab04a87677a37cf15b52e2b4b4fd57917102ad",
      "tree": "dc92e25473e7e5c9183312d7feeeaeabb2157baf",
      "parents": [
        "9f0af69b2dd34d2c21817d599db7bdb3c972a759"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Fri Apr 08 19:49:08 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Apr 10 17:01:05 2011 +0200"
      },
      "message": "treewide: remove extra semicolons\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "8a06dc4d52458e4a909b652ee9fe8f82d2cd87a2",
      "tree": "94cb701af633cc4ff7522a0f0eb559cd56afd537",
      "parents": [
        "13e165baf6ada9f427c319bd41a1c7a9c7b4f0a6"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Mar 22 16:33:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "um: remove file pointer from ioctl\n\nCommit 6caa76b (\"tty: now phase out the ioctl file pointer for good\")\nremoved the ioctl file pointer.  User Mode Linux\u0027s line driver uses this\nioctl and needs a signature update too.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0586bed3e8563c2eb89bc7256e30ce633ae06cfb",
      "tree": "7a59610f45f7222f25b3212c53fa28636bb4427c",
      "parents": [
        "b80cd62b7d4406bbe8c573fe4381dcc71a2850fd",
        "dbebbfbb1605f0179e7c0d900d941cc9c45de569"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:28:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:28:30 2011 -0700"
      },
      "message": "Merge branch \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rtmutex: tester: Remove the remaining BKL leftovers\n  lockdep/timers: Explain in detail the locking problems del_timer_sync() may cause\n  rtmutex: Simplify PI algorithm and make highest prio task get lock\n  rwsem: Remove redundant asmregparm annotation\n  rwsem: Move duplicate function prototypes to linux/rwsem.h\n  rwsem: Unify the duplicate rwsem_is_locked() inlines\n  rwsem: Move duplicate init macros and functions to linux/rwsem.h\n  rwsem: Move duplicate struct rwsem declaration to linux/rwsem.h\n  x86: Cleanup rwsem_count_t typedef\n  rwsem: Cleanup includes\n  locking: Remove deprecated lock initializers\n  cred: Replace deprecated spinlock initialization\n  kthread: Replace deprecated spinlock initialization\n  xtensa: Replace deprecated spinlock initialization\n  um: Replace deprecated spinlock initialization\n  sparc: Replace deprecated spinlock initialization\n  mips: Replace deprecated spinlock initialization\n  cris: Replace deprecated spinlock initialization\n  alpha: Replace deprecated spinlock initialization\n  rtmutex-tester: Remove BKL tests\n"
    },
    {
      "commit": "73d049a40fc6269189c4e2ba6792cb5dd054883c",
      "tree": "a713747cd06926ad89bfa9b36ea13dd20bbc507f",
      "parents": [
        "5b6ca027d85b7438c84b78a54ccdc2e53f2909cd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 11 12:08:24 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:28 2011 -0400"
      },
      "message": "open-style analog of vfs_path_lookup()\n\nnew function: file_open_root(dentry, mnt, name, flags) opens the file\nvfs_path_lookup would arrive to.\n\nNote that name can be empty; in that case the usual requirement that\ndentry should be a directory is lifted.\n\nopen-coded equivalents switched to it, may_open() got down exactly\none caller and became static.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "22e650045899011b028e40625bc73df9f3260bac",
      "tree": "e5738b4152ab94fa8ec500d6a2b4225549785108",
      "parents": [
        "24774fbdeab8f6ac05a19e81bd645b0f7e5d2bb7"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jan 23 15:21:25 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jan 27 12:30:37 2011 +0100"
      },
      "message": "um: Replace deprecated spinlock initialization\n\nSPIN_LOCK_UNLOCK is deprecated. Use the lockdep capable variant\ninstead.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\n"
    },
    {
      "commit": "0388fae4115dcfc310ac7327a8ac72786987c26e",
      "tree": "87af4fc66ff911d996d5bbc1b49ad84ddedc5210",
      "parents": [
        "07ecb79f513fc126c56642caaf9efeeefaceffaa"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Jan 12 16:59:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:07 2011 -0800"
      },
      "message": "uml: use simple_write_to_buffer()\n\nSimplify write file operation for mmapper by using\nsimple_write_to_buffer().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07ecb79f513fc126c56642caaf9efeeefaceffaa",
      "tree": "2453ca22aa7d70e5b0b083a34e2fd49ef0d015b6",
      "parents": [
        "48a0b7404db9b83799e97a7d599fceb8df66bf59"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Jan 12 16:59:27 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:07 2011 -0800"
      },
      "message": "uml: mmapper_kern needs MODULE_LICENSE\n\nAdd missing MODULE_LICENSE():\n\nWARNING: modpost: missing MODULE_LICENSE() in arch/um/drivers/mmapper_kern.o\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Greg Lonnon \u003cglonnon@ridgerun.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48a0b7404db9b83799e97a7d599fceb8df66bf59",
      "tree": "4350bfd2c1336aa36f16264c13874b36948615f0",
      "parents": [
        "94295e2305b4f4bf538dbdf9870fe04777320b75"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Wed Jan 12 16:59:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:07 2011 -0800"
      },
      "message": "arch/um/drivers/line.c: safely iterate over list of winch handlers\n\nunregister_winch() should use list_for_each_safe(), as it can delete from\nthe list.\n\nSigned-off-by: Will Newton \u003cwill.newton@gmail.com\u003e\nCc: richard -rw- weinberger \u003crichard.weinberger@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69e83dad5207f8f03c9699e57e1febb114383cb8",
      "tree": "567cb8b8f5672b0716ca02ca182f2aa3f0366d7c",
      "parents": [
        "04c3496152394d17e3bc2316f9731ee3e8a026bc"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Wed Nov 24 12:56:55 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 25 06:50:39 2010 +0900"
      },
      "message": "uml: disable winch irq before freeing handler data\n\nDisable the winch irq early to make sure we don\u0027t take an interrupt part\nway through the freeing of the handler data, resulting in a crash on\nshutdown:\n\n  winch_interrupt : read failed, errno \u003d 9\n  fd 13 is losing SIGWINCH support\n  ------------[ cut here ]------------\n  WARNING: at lib/list_debug.c:48 list_del+0xc6/0x100()\n  list_del corruption, next is LIST_POISON1 (00100100)\n  082578c8:  [\u003c081fd77f\u003e] dump_stack+0x22/0x24\n  082578e0:  [\u003c0807a18a\u003e] warn_slowpath_common+0x5a/0x80\n  08257908:  [\u003c0807a23e\u003e] warn_slowpath_fmt+0x2e/0x30\n  08257920:  [\u003c08172196\u003e] list_del+0xc6/0x100\n  08257940:  [\u003c08060244\u003e] free_winch+0x14/0x80\n  08257958:  [\u003c080606fb\u003e] winch_interrupt+0xdb/0xe0\n  08257978:  [\u003c080a65b5\u003e] handle_IRQ_event+0x35/0xe0\n  08257998:  [\u003c080a8717\u003e] handle_edge_irq+0xb7/0x170\n  082579bc:  [\u003c08059bc4\u003e] do_IRQ+0x34/0x50\n  082579d4:  [\u003c08059e1b\u003e] sigio_handler+0x5b/0x80\n  082579ec:  [\u003c0806a374\u003e] sig_handler_common+0x44/0xb0\n  08257a68:  [\u003c0806a538\u003e] sig_handler+0x38/0x50\n  08257a78:  [\u003c0806a77c\u003e] handle_signal+0x5c/0xa0\n  08257a9c:  [\u003c0806be28\u003e] hard_handler+0x18/0x20\n  08257aac:  [\u003c00c14400\u003e] 0xc14400\n\nSigned-off-by: Will Newton \u003cwill.newton@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "9a181c58617134822ae596339dbea076ef9b5cf7",
      "tree": "b90b52c0bcb4ae3057e5ddd403230415f4cb528a",
      "parents": [
        "fa0d4c26be9f989816b30626f6c67d9e7ef867f8"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 11 18:38:03 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 19 11:29:42 2010 +0200"
      },
      "message": "uml: kill big kernel lock\n\nThree uml device drivers still use the big kernel lock,\nbut all of them can be safely converted to using\na per-driver mutex instead. Most likely this is not\neven necessary, so after further review these can\nand should be removed as well.\n\nThe exec system call no longer requires the BKL either,\nso remove it from there, too.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: user-mode-linux-devel@lists.sourceforge.net\n"
    },
    {
      "commit": "e3c6cf61815b0af0c697aeed4c6f11762f913002",
      "tree": "0b9b33c1539ca362b8a483843c73eb76d92933ab",
      "parents": [
        "a9febbb4bd1302b6f01aa1203b0a804e4e5c9e25"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Oct 15 14:34:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 15 14:42:24 2010 -0700"
      },
      "message": "uml: fix build\n\nFix a build error introduced by d6d1b650ae6acce73d55dd024 (\"param: simple\nlocking for sysfs-writable charp parameters\").\n\n    CC      arch/um/kernel/trap.o\n  arch/um/drivers/hostaudio_kern.c: In function \u0027hostaudio_open\u0027:\n  arch/um/drivers/hostaudio_kern.c:204: error: \u0027__param_dsp\u0027 undeclared (first use in this function)\n  arch/um/drivers/hostaudio_kern.c:204: error: (Each undeclared identifier is reported only once\n  arch/um/drivers/hostaudio_kern.c:204: error: for each function it appears in.)\n  arch/um/drivers/hostaudio_kern.c: In function \u0027hostmixer_open_mixdev\u0027:\n  arch/um/drivers/hostaudio_kern.c:265: error: \u0027__param_mixer\u0027 undeclared (first use in this function)\n  arch/um/drivers/hostaudio_kern.c:272: error: \u0027__param_dsp\u0027 undeclared (first use in this function)\n\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nTested-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "47526903feb52f4c26a6350370bdf74e337fcdb1",
      "tree": "319aaf924a030ccbb680817128606defd33ac476",
      "parents": [
        "93055c31045a2d5599ec613a0c6cdcefc481a460"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 15 12:56:21 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Oct 15 12:56:21 2010 +0200"
      },
      "message": "ubd: fix incorrect sector handling during request restart\n\nCommit f81f2f7c (ubd: drop unnecessary rq-\u003esector manipulation)\ndropped request-\u003esector manipulation in preparation for global request\nhandling cleanup; unfortunately, it incorrectly assumed that the\nupdated sector wasn\u0027t being used.\n\nubd tries to issue as many requests as possible to io_thread.  When\nissuing fails due to memory pressure or other reasons, the device is\nput on the restart list and issuing stops.  On IO completion, devices\non the restart list are scanned and IO issuing is restarted.\n\nubd issues IOs sg-by-sg and issuing can be stopped in the middle of a\nrequest, so each device on the restart queue needs to remember where\nto restart in its current request.  ubd needs to keep track of the\nissue position itself because,\n\n* blk_rq_pos(req) is now updated by the block layer to keep track of\n  _completion_ position.\n\n* Multiple io_req\u0027s for the current request may be in flight, so it\u0027s\n  difficult to tell where blk_rq_pos(req) currently is.\n\nAdd ubd-\u003erq_pos to keep track of the issue position and use it to\ncorrectly restart io_req issue.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Richard Weinberger \u003crichard@nod.at\u003e\nTested-by: Richard Weinberger \u003crichard@nod.at\u003e\nTested-by: Chris Frey \u003ccdfrey@foursquare.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9337057d4335053dc14934a60d9c3e8fe4e32039",
      "tree": "c530d94ff1517586dd93f409aee882858f9925a3",
      "parents": [
        "68c1f3a96c32a4fe15ebadae45c8145a5e5a66d2"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Wed Sep 29 08:34:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 19:30:11 2010 -0700"
      },
      "message": "um: Proper Fix for f25c80a4: remove duplicate structure field initialization\n\numl_net_set_mac() was broken and luckily it was never used, before.\nWhat it was trying to do is spin_lock before memcopy the mac address.\nLinus attempted to fix it in assumption that someone decided the\nlock was needed. But since it was never ever used at all, and was\njust dead code, I think we can assume that it is not needed, after\nall.\n\nOn the other hand patch [f25c80a4] was trying to use eth_mac_addr()\nin eth_configure(), *which was the real fallout*. Because of state\nchecks done inside eth_mac_addr() the address was never set. I have\nnot reintroduced the memcpy wrapper, but I\u0027ve put a comment for future\ncats.\n\nThe code now is back to exactly as it was before [f25c80a4]. With\nthe cleanup applied. If the spin_lock is indeed needed then a contender\nshould supply a test case that fails, then fix it with the proper\nlocking, as a separate unrelated patch.\n\nCC: Julia Lawall \u003cjulia@diku.dk\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nTested-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f335397d177c906256ee1bba28e8c49e8ec63817",
      "tree": "b6911d0b40940cbec9083769856e7744d5461e22",
      "parents": [
        "1495cc9df4e81f5a8fa9b0b8f1034b14d24b7d8c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Aug 17 21:15:47 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 21 00:34:45 2010 -0700"
      },
      "message": "Input: sysrq - drop tty argument form handle_sysrq()\n\nSysrq operations do not accept tty argument anymore so no need to pass\nit to us.\n\n[Stephen Rothwell \u003csfr@canb.auug.org.au\u003e: fix build breakage in drm code\n caused by sysrq using bool but not including linux/types.h]\n\n[Sachin Sant \u003csachinp@in.ibm.com\u003e: fix build breakage in s390 keyboadr\n driver]\n\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d6d1b650ae6acce73d55dd0246de22180303ae73",
      "tree": "7a342999c119a5ee6395966cee91ddf5186f5665",
      "parents": [
        "dca41306395eab37e222ff9e72765e692fcc7251"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:27 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:31 2010 +0930"
      },
      "message": "param: simple locking for sysfs-writable charp parameters\n\nSince the writing to sysfs can free the old one, we need to block that\nwhen we access the charp variables.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Dan Williams \u003cdcbw@redhat.com\u003e\nCc: John W. Linville \u003clinville@tuxdriver.com\u003e\nCc: Jing Huang \u003chuangj@brocade.com\u003e\nCc: James E.J. Bottomley \u003cJames.Bottomley@suse.de\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: user-mode-linux-devel@lists.sourceforge.net\nCc: libertas-dev@lists.infradead.org\nCc: linux-wireless@vger.kernel.org\nCc: netdev@vger.kernel.org\nCc: linux-scsi@vger.kernel.org\nCc: linux-usb@vger.kernel.org\n"
    },
    {
      "commit": "2f9e825d3e0e2b407ae8f082de5c00afcf7378fb",
      "tree": "f8b3ee40674ce4acd5508a0a0bf52a30904caf6c",
      "parents": [
        "7ae0dea900b027cd90e8a3e14deca9a19e17638b",
        "de75d60d5ea235e6e09f4962ab22541ce0fe176a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block: (149 commits)\n  block: make sure that REQ_* types are seen even with CONFIG_BLOCK\u003dn\n  xen-blkfront: fix missing out label\n  blkdev: fix blkdev_issue_zeroout return value\n  block: update request stacking methods to support discards\n  block: fix missing export of blk_types.h\n  writeback: fix bad _bh spinlock nesting\n  drbd: revert \"delay probes\", feature is being re-implemented differently\n  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n  drbd: Disable delay probes for the upcomming release\n  writeback: cleanup bdi_register\n  writeback: add new tracepoints\n  writeback: remove unnecessary init_timer call\n  writeback: optimize periodic bdi thread wakeups\n  writeback: prevent unnecessary bdi threads wakeups\n  writeback: move bdi threads exiting logic to the forker thread\n  writeback: restructure bdi forker loop a little\n  writeback: move last_active to bdi\n  writeback: do not remove bdi from bdi_list\n  writeback: simplify bdi code a little\n  writeback: do not lose wake-ups in bdi threads\n  ...\n\nFixed up pretty trivial conflicts in drivers/block/virtio_blk.c and\ndrivers/scsi/scsi_error.c as per Jens.\n"
    },
    {
      "commit": "47562277348da533f120acf2b0d4ff82a9444a1f",
      "tree": "46bdc3951e9072a4dd18392c4816423b6097f08a",
      "parents": [
        "71abbbf856a0e70ca478782505c800891260ba84"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon Aug 09 17:20:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "um: call free_irq() only on enabled channels\n\nWhen I use OpenSUSE-11.2 on UML (\u003e 2.6.25)\nI get lots of such errors:\n\nRegistering fd 1 twice\nIrqs : 3, 3\nIds : 0x09cb41a0, 0x09cb4120\n------------[ cut here ]------------\nWARNING: at kernel/irq/manage.c:896 __free_irq+0x79/0x11a()\nTrying to free already-free IRQ 3\nModules linked in:\n09dadc6c:  [\u003c081b2edb\u003e] dump_stack+0x1c/0x20\n09dadc84:  [\u003c080716da\u003e] warn_slowpath_common+0x49/0x77\n09dadc9c:  [\u003c08071772\u003e] warn_slowpath_fmt+0x26/0x2a\n09dadcb4:  [\u003c08094e08\u003e] __free_irq+0x79/0x11a\n09dadce4:  [\u003c08094ed6\u003e] free_irq+0x2d/0x49\n09dadcf4:  [\u003c0805b4bc\u003e] close_one_chan+0x70/0x9c\n09dadd0c:  [\u003c0805b833\u003e] close_chan+0x17/0x22\n09dadd1c:  [\u003c0805bdda\u003e] enable_chan+0x70/0x7c\n09dadd3c:  [\u003c0805cbb7\u003e] line_open+0x34/0x9f\n09dadd54:  [\u003c0805b21e\u003e] con_open+0x13/0x35\n09dadd6c:  [\u003c0814dc89\u003e] tty_open+0x285/0x384\n09dadda0:  [\u003c080b754e\u003e] chrdev_open+0xe0/0xf9\n09daddc0:  [\u003c080b3fb2\u003e] __dentry_open+0xf3/0x1e2\n09dadde4:  [\u003c080b4142\u003e] nameidata_to_filp+0x35/0x49\n09daddfc:  [\u003c080bd270\u003e] do_last+0x409/0x50e\n09dade28:  [\u003c080bea04\u003e] do_filp_open+0x175/0x446\n09dadecc:  [\u003c080b3d89\u003e] do_sys_open+0x4a/0x128\n09dadf04:  [\u003c080b3ea2\u003e] sys_open+0x19/0x21\n09dadf28:  [\u003c0805ab5a\u003e] handle_syscall+0x7a/0x98\n09dadf78:  [\u003c08068441\u003e] userspace+0x2c9/0x370\n09dadfe0:  [\u003c08058bb3\u003e] fork_handler+0x53/0x5b\n09dadffc:  [\u003c00766564\u003e] 0x766564\n\n---[ end trace 9ebc1094aaf4bded ]---\n\nThis patch fixes the issue.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "faa38b5e0e092914764cdba9f83d31a3f794d182",
      "tree": "b3e5921bdc36378033b4910eb4f29cb0dfc486e0",
      "parents": [
        "78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c",
        "74bf40f0793fed9e01eb6164c2ce63e8c27ca205"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:07:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:07:31 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (214 commits)\n  ALSA: hda - Add pin-fix for HP dc5750\n  ALSA: als4000: Fix potentially invalid DMA mode setup\n  ALSA: als4000: enable burst mode\n  ALSA: hda - Fix initial capsrc selection in patch_alc269()\n  ASoC: TWL4030: Capture route runtime DAPM ordering fix\n  ALSA: hda - Add PC-beep whitelist for an Intel board\n  ALSA: hda - More relax for pending period handling\n  ALSA: hda - Define AC_FMT_* constants\n  ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs\n  ALSA: hda - Add support for HDMI HBR passthrough\n  ALSA: hda - Set Stream Type in Stream Format according to AES0\n  ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed\n  ALSA: hda - FIX to not expose SPDIF on Thinkpad X301, since it does not have the ability to use SPDIF\n  ASoC: wm9081: fix resource reclaim in wm9081_register error path\n  ASoC: wm8978: fix a memory leak if a wm8978_register fail\n  ASoC: wm8974: fix a memory leak if another WM8974 is registered\n  ASoC: wm8961: fix resource reclaim in wm8961_register error path\n  ASoC: wm8955: fix resource reclaim in wm8955_register error path\n  ASoC: wm8940: fix a memory leak if wm8940_register return error\n  ASoC: wm8904: fix resource reclaim in wm8904_register error path\n  ...\n"
    },
    {
      "commit": "6e9624b8caec290d28b4c6d9ec75749df6372b87",
      "tree": "47225b544e1da82742795553dc4e8aa70c17afdc",
      "parents": [
        "8a6cfeb6deca3a8fefd639d898b0d163c0b5d368"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Aug 07 18:25:34 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:25:34 2010 +0200"
      },
      "message": "block: push down BKL into .open and .release\n\nThe open and release block_device_operations are currently\ncalled with the BKL held. In order to change that, we must\nfirst make sure that all drivers that currently rely\non this have no regressions.\n\nThis blindly pushes the BKL into all .open and .release\noperations for all block drivers to prepare for the\nnext step. The drivers can subsequently replace the BKL\nwith their own locks or remove it completely when it can\nbe shown that it is not needed.\n\nThe functions blkdev_get and blkdev_put are the only\nremaining users of the big kernel lock in the block\nlayer, besides a few uses in the ioctl code, none\nof which need to serialize with blkdev_{get,put}.\n\nMost of these two functions is also under the protection\nof bdev-\u003ebd_mutex, including the actual calls to\n-\u003eopen and -\u003erelease, and the common code does not\naccess any global data structures that need the BKL.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f25c80a4b2bf93c99820f470573626557db35202",
      "tree": "c21faae35b8bd88af75d498760ea48378cc827a3",
      "parents": [
        "df1086fb2e160521eda5b19a37b9e25dbc805c39"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Tue Jul 20 12:25:17 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 21 11:16:09 2010 -0700"
      },
      "message": "arch/um/drivers: remove duplicate structure field initialization\n\nThere are two initializations of ndo_set_mac_address, one to a local\nfunction that is not used otherwise and one to a function that is defined\nelsewhere.\n\nThe semantic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r@\nidentifier I, s, fld;\nposition p0,p;\nexpression E;\n@@\n\nstruct I s \u003d@p0 { ... .fld@p \u003d E, ...};\n\n@s@\nidentifier I, s, r.fld;\nposition r.p0,p;\nexpression E;\n@@\n\nstruct I s \u003d@p0 { ... .fld@p \u003d E, ...};\n\n@script:python@\np0 \u003c\u003c r.p0;\nfld \u003c\u003c r.fld;\nps \u003c\u003c s.p;\npr \u003c\u003c r.p;\n@@\n\nif int(ps[0].line)\u003cint(pr[0].line) or int(ps[0].column)\u003cint(pr[0].column):\n  cocci.print_main(fld,p0)\n// \u003c/smpl\u003e\n\nakpm:\n\n- Use the standard eth_mac_addr() in uml_net_set_mac()\n\n- Remove unneeded and racy local set_ether_mac()\n\n- Remove duplicated (and incorrect)\n  uml_netdev_ops.ndo_set_mac_address initializer.\n\nFixes 8bb95b39a16ed55226810596f92216c53329d2fe (\"uml: convert network\ndevice to netdevice ops\").\n\n[akpm@linux-foundation.org: rework as above]\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "90dc763fef4c869e60b2a7ad92e1a7dab68575ea",
      "tree": "ab3757f14a6d84e36afa36ac5f325fd316d4e197",
      "parents": [
        "395c61d19621e80b763810cc988416dc1b6bfd3e"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Jul 11 12:16:36 2010 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Mon Jul 12 17:41:05 2010 +0200"
      },
      "message": "sound: push BKL into open functions\n\nThis moves the lock_kernel() call from soundcore_open\nto the individual OSS device drivers, where we can deal\nwith it one driver at a time if needed, or just kill\noff the drivers.\n\nAll core components in ALSA already provide\nadequate locking in their open()-functions\nand do not require the big kernel lock, so\nthere is no need to add the BKL there.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "f13771187b9423b824f32518319f6da85d819003",
      "tree": "c431cf16c286065a302d5f3fb43fc1abac7e4047",
      "parents": [
        "15953654cc312429740fd58fb37a5a3d63a54376",
        "9f37af654fda88a8dcca74c785f6c20e52758866"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  uml: Pushdown the bkl from harddog_kern ioctl\n  sunrpc: Pushdown the bkl from sunrpc cache ioctl\n  sunrpc: Pushdown the bkl from ioctl\n  autofs4: Pushdown the bkl from ioctl\n  uml: Convert to unlocked_ioctls to remove implicit BKL\n  ncpfs: BKL ioctl pushdown\n  coda: Clean-up whitespace problems in pioctl.c\n  coda: BKL ioctl pushdown\n  drivers: Push down BKL into various drivers\n  isdn: Push down BKL into ioctl functions\n  scsi: Push down BKL into ioctl functions\n  dvb: Push down BKL into ioctl functions\n  smbfs: Push down BKL into ioctl function\n  coda/psdev: Remove BKL from ioctl function\n  um/mmapper: Remove BKL usage\n  sn_hwperf: Kill BKL usage\n  hfsplus: Push down BKL into ioctl function\n"
    },
    {
      "commit": "9f37af654fda88a8dcca74c785f6c20e52758866",
      "tree": "e9a461031d9b8dffdeb29d889daf6cf1be5e4041",
      "parents": [
        "9918ff26b301e9a57f25fb12b44a46ad0c1e8f8f"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed May 19 15:08:17 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 22 17:44:21 2010 +0200"
      },
      "message": "uml: Pushdown the bkl from harddog_kern ioctl\n\nPushdown the bkl to harddog_ioctl.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Uml \u003cuser-mode-linux-devel@lists.sourceforge.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "d6c89d9aca0933d90ab926bf448b32f24a163792",
      "tree": "7bbb281fd3813558bf499b3e727eb9e17ac32e41",
      "parents": [
        "93d84b6d99f5ddb911b318990c759a0fefa0f7ea"
      ],
      "author": {
        "name": "John Kacur",
        "email": "jkacur@redhat.com",
        "time": "Fri May 07 17:34:28 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon May 17 05:27:42 2010 +0200"
      },
      "message": "uml: Convert to unlocked_ioctls to remove implicit BKL\n\nConvert hostaudio_ioctl and hostmixer_ioctl_mixdev to\nunlocked_ioctl without pushdown.\n\nThere is nothing to protect inside, the synchronization\nis made from the host already.\n\nSigned-off-by: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "d5f1d54cbc1b2f320ac054b2df519dec22a27779",
      "tree": "8ee3cd8caf54d774901e79f88156b41e37d7fe58",
      "parents": [
        "1114b68468fa2359e15c75f415793b9dd0e5d837"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Apr 27 16:24:23 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon May 17 05:27:03 2010 +0200"
      },
      "message": "um/mmapper: Remove BKL usage\n\nAn empty function does not need the BKL, so just remove it.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "1896950b6138a2a82771780d4dbd5a5d940d4739",
      "tree": "4f56535b3c0f6ad26ff51ba74b9185bbfaf46eb5",
      "parents": [
        "ab4364d31f14ae5ab95bafba5b33f5d35b25ca41"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Mon Apr 19 23:53:04 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 20 16:31:34 2010 +0200"
      },
      "message": "UML: Remove unused variable from line driver\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@web.de\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7f3c1fa4c3f52ef65005ae5162e5173e875b8c0c",
      "tree": "a8a1c7c333481e108de78a854d85a7bb9f84e43b",
      "parents": [
        "13bd8e4673d527a9e48f41956b11d391e7c2cfe0"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Mon Apr 19 17:46:23 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 19 17:46:23 2010 +0900"
      },
      "message": "uml: Fix build breakage after slab.h changes\n\nWe now have to to include linux/slab.h explicitly for kmalloc \u0026\nfriends.  Files that build against host headers already get their\nprototypes via um_malloc.h, linux/slab.h may even be unavailable.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@web.de\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "03315b59165ee2049a4b903a1b0b8bf673d701fa",
      "tree": "92513448a8af5e2a0b1f228310154fea14e44c2b",
      "parents": [
        "be1494527c4dea4db87749d08b09be23327157dc"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Fri Mar 05 13:42:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:28 2010 -0800"
      },
      "message": "uml: line.c: avoid NULL pointer dereference\n\nAssign tty only if line is not NULL.\n\n[akpm@linux-foundation.org: simplification]\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f2cc4ecd81dc1917a041dc93db0ada28f8356fa",
      "tree": "f128b50f48f50f0cda6d2b20b53e9ad6e2dfded3",
      "parents": [
        "1fae4cfb97302289bb5df6a8195eb28385d0b002",
        "9643f5d94aadd47a5fa9754fb60f2c957de05903"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)\n  init: Open /dev/console from rootfs\n  mqueue: fix typo \"failues\" -\u003e \"failures\"\n  mqueue: only set error codes if they are really necessary\n  mqueue: simplify do_open() error handling\n  mqueue: apply mathematics distributivity on mq_bytes calculation\n  mqueue: remove unneeded info-\u003emessages initialization\n  mqueue: fix mq_open() file descriptor leak on user-space processes\n  fix race in d_splice_alias()\n  set S_DEAD on unlink() and non-directory rename() victims\n  vfs: add NOFOLLOW flag to umount(2)\n  get rid of -\u003emnt_parent in tomoyo/realpath\n  hppfs can use existing proc_mnt, no need for do_kern_mount() in there\n  Mirror MS_KERNMOUNT in -\u003emnt_flags\n  get rid of useless vfsmount_lock use in put_mnt_ns()\n  Take vfsmount_lock to fs/internal.h\n  get rid of insanity with namespace roots in tomoyo\n  take check for new events in namespace (guts of mounts_poll()) to namespace.c\n  Don\u0027t mess with generic_permission() under -\u003ed_lock in hpfs\n  sanitize const/signedness for udf\n  nilfs: sanitize const/signedness in dealing with -\u003ed_name.name\n  ...\n\nFix up fairly trivial (famous last words...) conflicts in\ndrivers/infiniband/core/uverbs_main.c and security/tomoyo/realpath.c\n"
    },
    {
      "commit": "8737c9305bd5602b11f7eb4655d5695d4a42a0c6",
      "tree": "54038cac1135b039a292151ebe9b156f80904843",
      "parents": [
        "d208bbdda991b8808d9c033ce4d31cb1bd87dcfc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:47:55 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 13:00:21 2010 -0500"
      },
      "message": "Switch may_open() and break_lease() to passing O_...\n\n... instead of mixing FMODE_ and O_\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8a78362c4eefc1deddbefe2c7f38aabbc2429d6b",
      "tree": "c095d95af1aec0f9cee5975b1dcdc6bc1d17d401",
      "parents": [
        "086fa5ff0854c676ec333760f4c0154b3b242616"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:39 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Consolidate phys_segment and hw_segment limits\n\nExcept for SCSI no device drivers distinguish between physical and\nhardware segment limits.  Consolidate the two into a single segment\nlimit.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "086fa5ff0854c676ec333760f4c0154b3b242616",
      "tree": "ee63fb3c7c7d964bd799355b7cde18ba95f91f07",
      "parents": [
        "eb28d31bc97e6374d81f404da309401ffaed467b"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:38 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors\n\nThe block layer calling convention is blk_queue_\u003climit name\u003e.\nblk_queue_max_sectors predates this practice, leading to some confusion.\nRename the function to appropriately reflect that its intended use is to\nset max_hw_sectors.\n\nAlso introduce a temporary wrapper for backwards compability.  This can\nbe removed after the merge window is closed.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4ecf09fd3a7c8858198875171b684c73338fad83",
      "tree": "3e14954a67e438be9a1bad29a6817ab3ddeff81f",
      "parents": [
        "7b264fc2bef4a3de8bc5ff1a6c5b9e890b069a04"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 00:44:44 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:26 2010 -0500"
      },
      "message": "Unrot uml mconsole a bit\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7d2860b690d4f3bed6824757c540579638e3d1e",
      "tree": "84268ee28893256fd6a6a7e1d4474f61dbee74e7",
      "parents": [
        "84c95c9acf088c99d8793d78036b67faa5d0b851"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Mon Dec 14 18:01:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:32 2009 -0800"
      },
      "message": "tree-wide: convert open calls to remove spaces to skip_spaces() lib function\n\nMakes use of skip_spaces() defined in lib/string.c for removing leading\nspaces from strings all over the tree.\n\nIt decreases lib.a code size by 47 bytes and reuses the function tree-wide:\n   text    data     bss     dec     hex filename\n  64688     584     592   65864   10148 (TOTALS-BEFORE)\n  64641     584     592   65817   10119 (TOTALS-AFTER)\n\nAlso, while at it, if we see (*str \u0026\u0026 isspace(*str)), we can be sure to\nremove the first condition (*str) as the second one (isspace(*str)) also\nevaluates to 0 whenever *str \u003d\u003d 0, making it redundant. In other words,\n\"a char equals zero is never a space\".\n\nJulia Lawall tried the semantic patch (http://coccinelle.lip6.fr) below,\nand found occurrences of this pattern on 3 more files:\n    drivers/leds/led-class.c\n    drivers/leds/ledtrig-timer.c\n    drivers/video/output.c\n\n@@\nexpression str;\n@@\n\n( // ignore skip_spaces cases\nwhile (*str \u0026\u0026  isspace(*str)) { \\(str++;\\|++str;\\) }\n|\n- *str \u0026\u0026\nisspace(*str)\n)\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6613c5e8603bc41741487828f48c6a4d701f7814",
      "tree": "821a045f88cbe2a03aed9aa4d8c56b0015b2b208",
      "parents": [
        "2886a8bdfa007053b414ab01741a98c18c376a85"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Dec 14 18:00:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:25 2009 -0800"
      },
      "message": "uml: convert to seq_file/proc_fops\n\nConvert code away from -\u003eread_proc/-\u003ewrite_proc interfaces.  Switch to\nproc_create()/proc_create_data() which make addition of proc entries\nreliable wrt NULL -\u003eproc_fops, NULL -\u003edata and so on.\n\nProblem with -\u003eread_proc et al is described here commit\n786d7e1612f0b0adb6046f19b906609e4fe8b1ba \"Fix rmmod/read/write races in\n/proc entries\"\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d63c489b881707adf9c0b89f771b30a1d78f4197",
      "tree": "0faf3ab8027a2e236b56c099fe29d638df553bb4",
      "parents": [
        "df502e389383b219e44819fe757614450d95f297"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 10 15:36:34 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Oct 14 15:35:51 2009 +0200"
      },
      "message": "um: Remove BKL from mmapper\n\ncycle_kernel_lock() was added during the big BKL pushdown. It should\nensure the serializiation against driver init code.\n\nmmapper_open() cannot be called before misc_register() succeeded, but\np_buf might be uninitialized.\n\nMove the initialization of p_buf before the misc_register() call and\nget rid of cycle_kernel_lock().\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20091010153349.682213670@linutronix.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\n"
    },
    {
      "commit": "df502e389383b219e44819fe757614450d95f297",
      "tree": "4fcb590c731288584e07bd9c985a3eebc78e1f2c",
      "parents": [
        "ca1b82ba0888e742a7efdb89ed8e2aab453e091f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 10 15:36:30 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Oct 14 15:35:51 2009 +0200"
      },
      "message": "um: Remove BKL from random\n\ncycle_kernel_lock() was added during the big BKL pushdown. It should\nensure the serializiation against driver init code. In this case there\nis nothing to serialize. Remove it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20091010153349.641118498@linutronix.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\n"
    },
    {
      "commit": "d43c36dc6b357fa1806800f18aa30123c747a6d1",
      "tree": "339ce510073ecbe9b3592008f7dece7b277035ef",
      "parents": [
        "69585dd69e663a40729492c7b52eb82477a2027a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 07 17:09:06 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 11 11:20:58 2009 -0700"
      },
      "message": "headers: remove sched.h from interrupt.h\n\nAfter m68k\u0027s task_thread_info() doesn\u0027t refer to current,\nit\u0027s possible to remove sched.h from interrupt.h and not break m68k!\nMany thanks to Heiko Carstens for allowing this.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
      "tree": "1f967f283dade6e03897169bb29513354f49f910",
      "parents": [
        "50223e486cabdcf7e540e519da1f26bab3084e5d",
        "24ed7a97464db44592495f98cff8bcee02f92bc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)\n  trivial: fix typo in aic7xxx comment\n  trivial: fix comment typo in drivers/ata/pata_hpt37x.c\n  trivial: typo in kernel-parameters.txt\n  trivial: fix typo in tracing documentation\n  trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c\n  trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c\n  trivial: remove unnecessary semicolons\n  trivial: Fix duplicated word \"options\" in comment\n  trivial: kbuild: remove extraneous blank line after declaration of usage()\n  trivial: improve help text for mm debug config options\n  trivial: doc: hpfall: accept disk device to unload as argument\n  trivial: doc: hpfall: reduce risk that hpfall can do harm\n  trivial: SubmittingPatches: Fix reference to renumbered step\n  trivial: fix typos \"man[ae]g?ment\" -\u003e \"management\"\n  trivial: media/video/cx88: add __init/__exit macros to cx88 drivers\n  trivial: fix typo in CONFIG_DEBUG_FS in gcov doc\n  trivial: fix missing printk space in amd_k7_smp_check\n  trivial: fix typo s/ketymap/keymap/ in comment\n  trivial: fix typo \"to to\" in multiple files\n  trivial: fix typos in comments s/DGBU/DBGU/\n  ...\n"
    },
    {
      "commit": "83d5cde47dedf01b6a4a4331882cbc0a7eea3c2e",
      "tree": "f8ba5e263717d35cd444fcc65898d2ed352af1ae",
      "parents": [
        "7b021967c5e1463936042c8da72b550d3cabe9ac"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "const: make block_device_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a419aef8b858a2bdb98df60336063d28df4b272f",
      "tree": "1736f6650ec0bfc01074c489fc47396114099c5e",
      "parents": [
        "2944fcbe03d65a704f07e43efe14adb0d226fd09"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Aug 18 11:18:35 2009 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Sep 21 15:14:58 2009 +0200"
      },
      "message": "trivial: remove unnecessary semicolons\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0fc0b732eaa38beb93a6fb62f77c7bd9622c76ec",
      "tree": "2423b134116c16f027ebeae7954c098f27d6e619",
      "parents": [
        "daf09de817353f18bb81a23a023d429cfd258e62"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Sep 02 01:03:33 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 02 01:03:33 2009 -0700"
      },
      "message": "netdev: drivers should make ethtool_ops const\n\nNo need to put ethtool_ops in data, they should be const.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ed106549d17474ca17a16057f4c0ed4eba5a7ca",
      "tree": "b98c09081509b3a9757339b6b66779e4126dfa29",
      "parents": [
        "0e8635a8e1f2d4a9e1bfc6c3b21419a5921e674f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 23 06:03:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:16:04 2009 -0700"
      },
      "message": "net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions\n\nThis patch is the result of an automatic spatch transformation to convert\nall ndo_start_xmit() return values of 0 to NETDEV_TX_OK.\n\nSome occurences are missed by the automatic conversion, those will be\nhandled in a seperate patch.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab420e6d9c2511b862d753b70efb4e979faa0714",
      "tree": "6bfe86c8c3663d568e891f86ebce80772d664548",
      "parents": [
        "47749b14e55cd167632f9a27a4fc439e591e5268"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Jun 25 00:17:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 25 11:22:13 2009 -0700"
      },
      "message": "UML: Fix some apparent bitrot\n\nUML: Fix some apparent bitrot\n\n- migration of net_device methods into net_device_ops\n- dma_sync_single() changes\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Amerigo Wang \u003cxiyou.wangcong@gmail.com\u003e\n--\n\nThis version is split from my earlier patch, including just the\nportions that ar required for Linus\u0027 tree.\n\nFixes the following compile errors:\n\ninclude/linux/dma-mapping.h:113: error: redefinition of \u0027dma_sync_single\u0027\narch/um/include/asm/dma-mapping.h:84: error: previous definition of \u0027dma_sync_single\u0027 was here\ninclude/linux/dma-mapping.h: In function \u0027dma_sync_single\u0027:\ninclude/linux/dma-mapping.h:117: error: implicit declaration of function \u0027dma_sync_single_for_cpu\u0027\ninclude/linux/dma-mapping.h: At top level:\ninclude/linux/dma-mapping.h:120: error: redefinition of \u0027dma_sync_sg\u0027\narch/um/include/asm/dma-mapping.h:91: error: previous definition of \u0027dma_sync_sg\u0027 was here\ninclude/linux/dma-mapping.h: In function \u0027dma_sync_sg\u0027:\ninclude/linux/dma-mapping.h:124: error: implicit declaration of function \u0027dma_sync_sg_for_cpu\u0027\n\narch/um/drivers/slirp_kern.c: In function \u0027slirp_init\u0027:\narch/um/drivers/slirp_kern.c:35: error: \u0027struct net_device\u0027 has no member named \u0027init\u0027\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8691b97b99d8b0ba7427afde1a50695cc4112938",
      "tree": "ab55b4e8486bab2cad73bdd9c5f8f49ac979a27c",
      "parents": [
        "5888fd30ac70fa50f08979c46f9206d01ca6ad49"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon May 04 12:40:54 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:28 2009 -0700"
      },
      "message": "uml: remove driver_data direct access of struct device\n\nIn the near future, the driver core is going to not allow direct access\nto the driver_data pointer in struct device.  Instead, the functions\ndev_get_drvdata() and dev_set_drvdata() should be used.  These functions\nhave been around since the beginning, so are backwards compatible with\nall older kernel versions.\n\nCc: user-mode-linux-devel@lists.sourceforge.net\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    }
  ],
  "next": "9934c8c04561413609d2bc38c6b9f268cba774a4"
}
