)]}'
{
  "log": [
    {
      "commit": "685fd0b4ea3f0f1d5385610b0d5b57775a8d5842",
      "tree": "44c224195e6500c67812b38ff9fd60c96c6b8dc5",
      "parents": [
        "1a041a23da7c77b53c71fe11b4f940388bee37b1"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Thu Jul 29 11:16:32 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 29 13:24:57 2010 +0200"
      },
      "message": "irq: Add new IRQ flag IRQF_NO_SUSPEND\n\nA small number of users of IRQF_TIMER are using it for the implied no\nsuspend behaviour on interrupts which are not timer interrupts.\n\nTherefore add a new IRQF_NO_SUSPEND flag, rename IRQF_TIMER to\n__IRQF_TIMER and redefine IRQF_TIMER in terms of these new flags.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: xen-devel@lists.xensource.com\nCc: linux-input@vger.kernel.org\nCc: linuxppc-dev@ozlabs.org\nCc: devicetree-discuss@lists.ozlabs.org\nLKML-Reference: \u003c1280398595-29708-1-git-send-email-ian.campbell@citrix.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4673247562e39a17e09440fa1400819522ccd446",
      "tree": "31746ff2cd7f41048b7507cd3cae9dae2a1519be",
      "parents": [
        "84f7586edab93052bbe7eb72e1e9bce5f7b6ae45"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 07 17:53:51 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 09 17:05:08 2010 +0200"
      },
      "message": "genirq: Deal with desc-\u003eset_type() changing desc-\u003echip\n\nThe set_type() function can change the chip implementation when the\ntrigger mode changes. That might result in using an non-initialized\nirq chip when called from __setup_irq() or when called via\nset_irq_type() on an already enabled irq. \n\nThe set_irq_type() function should not be called on an enabled irq,\nbut because we forgot to put a check into it, we have a bunch of users\nwhich grew the habit of doing that and it never blew up as the\nfunction is serialized via desc-\u003elock against all users of desc-\u003echip\nand they never hit the non-initialized irq chip issue.\n\nThe easy fix for the __setup_irq() issue would be to move the\nirq_chip_set_defaults(desc-\u003echip) call after the trigger setting to\nmake sure that a chip change is covered.\n\nBut as we have already users, which do the type setting after\nrequest_irq(), the safe fix for now is to call irq_chip_set_defaults()\nfrom __irq_set_trigger() when desc-\u003eset_type() changed the irq chip.\n\nIt needs a deeper analysis whether we should refuse to change the chip\non an already enabled irq, but that\u0027d be a large scale change to fix\nall the existing users. So that\u0027s neither stable nor 2.6.35 material.\n\nReported-by: Esben Haabendal \u003ceha@doredevelopment.dk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: linuxppc-dev \u003clinuxppc-dev@ozlabs.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4308ad801193f14ff42cb746da37cf07e35f0d08",
      "tree": "d25466295270408c11a234658b70c43095aed4d3",
      "parents": [
        "e7a297b0d7d6049bd4e423ac1e17da31e4c401b8"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Wed May 05 13:56:42 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 12 11:23:34 2010 +0200"
      },
      "message": "genirq: Clear CPU mask in affinity_hint when none is provided\n\nWhen an interrupt is disabled and torn down, the CPU mask returned\nthrough affinity_hint right now is all CPUs. Also, for drivers that\ndon\u0027t provide an affinity_hint mask, this can be misleading. There\nshould be no hint at all, meaning an empty CPU mask.\n\n[ tglx: use zalloc_cpumask_var instead of clearing it under the lock ]\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nCc: davem@davemloft.net\nCc: arjan@linux.jf.intel.com\nCc: bhutchings@solarflare.com\nLKML-Reference: \u003c20100505205638.5426.87189.stgit@ppwaskie-hc2.jf.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e7a297b0d7d6049bd4e423ac1e17da31e4c401b8",
      "tree": "f10f12806a637b09bec89ef5428d981c4c1a4bc9",
      "parents": [
        "6932bf37bed45ce8ed531928b1b0f98162fe6df6"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Fri Apr 30 14:44:50 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 03 11:50:57 2010 +0200"
      },
      "message": "genirq: Add CPU mask affinity hint\n\nThis patch adds a cpumask affinity hint to the irq_desc structure,\nalong with a registration function and a read-only proc entry for each\ninterrupt.\n\nThis affinity_hint handle for each interrupt can be used by underlying\ndrivers that need a better mechanism to control interrupt affinity.\nThe underlying driver can register a cpumask for the interrupt, which\nwill allow the driver to provide the CPU mask for the interrupt to\nanything that requests it.  The intent is to extend the userspace\ndaemon, irqbalance, to help hint to it a preferred CPU mask to balance\nthe interrupt into.\n\n[ tglx: Fixed compile warnings, added WARN_ON, made SMP only ]\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nCc: davem@davemloft.net\nCc: arjan@linux.jf.intel.com\nCc: bhutchings@solarflare.com\nLKML-Reference: \u003c20100430214445.3992.41647.stgit@ppwaskie-hc2.jf.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6932bf37bed45ce8ed531928b1b0f98162fe6df6",
      "tree": "3b7af6b49608cb8e3474bf6cb56f86e712466942",
      "parents": [
        "e58aa3d2d0cc01ad8d6f7f640a0670433f794922"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 26 00:06:55 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 16:36:40 2010 +0200"
      },
      "message": "genirq: Remove IRQF_DISABLED from core code\n\nRemove all code which is related to IRQF_DISABLED from the core kernel\ncode. IRQF_DISABLED still exists as a flag, but becomes a NOOP and\nwill be removed after a grace period. That way we can easily revert to\nthe previous behaviour by just restoring the core code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nLKML-Reference: \u003c20100326000405.991244690@linutronix.de\u003e\n"
    },
    {
      "commit": "e58aa3d2d0cc01ad8d6f7f640a0670433f794922",
      "tree": "6ed92d753a48e1fe9978f0958d1c09c8aae92fae",
      "parents": [
        "ae731f8d0785ccd3380f511bae888933b6562e45"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 26 00:06:51 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 16:36:40 2010 +0200"
      },
      "message": "genirq: Run irq handlers with interrupts disabled\n\nRunning interrupt handlers with interrupts enabled can cause stack\noverflows. That has been observed with multiqueue NICs delivering all\ntheir interrupts to a single core. We might band aid that somehow by\nchecking the interrupt stacks, but the real safe fix is to run the irq\nhandlers with interrupts disabled.\n\nDrivers for whacky hardware still can reenable them in the handler\nitself, if the need arises. (They do already due to lockdep)\n\nThe risk of doing this is rather low:\n\n - lockdep already enforces this\n - CONFIG_NOHZ has shaken out the drivers which relied on jiffies updates\n - time keeping is not longer sensitive to the timer interrupt being delayed\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nLKML-Reference: \u003c20100326000405.758579387@linutronix.de\u003e\n\n"
    },
    {
      "commit": "ae731f8d0785ccd3380f511bae888933b6562e45",
      "tree": "07db03ce79231153a4ae5df75c0ca4dcd96307c2",
      "parents": [
        "7c7145f6acc68100dbdc5d3c5c64fe3af1c99c89"
      ],
      "author": {
        "name": "Marc Zyngier",
        "email": "maz@misterjones.org",
        "time": "Mon Mar 15 22:56:33 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 16:36:39 2010 +0200"
      },
      "message": "genirq: Introduce request_any_context_irq()\n\nNow that we enjoy threaded interrupts, we\u0027re starting to see irq_chip\nimplementations (wm831x, pca953x) that make use of threaded interrupts\nfor the controller, and nested interrupts for the client interrupt. It\nall works very well, with one drawback:\n\nDrivers requesting an IRQ must now know whether the handler will\nrun in a thread context or not, and call request_threaded_irq() or\nrequest_irq() accordingly.\n\nThe problem is that the requesting driver sometimes doesn\u0027t know\nabout the nature of the interrupt, specially when the interrupt\ncontroller is a discrete chip (typically a GPIO expander connected\nover I2C) that can be connected to a wide variety of otherwise perfectly\nsupported hardware.\n\nThis patch introduces the request_any_context_irq() function that mostly\nmimics the usual request_irq(), except that it checks whether the irq\nlevel is configured as nested or not, and calls the right backend.\nOn success, it also returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED.\n\n[ tglx: Made return value an enum, simplified code and made the export\n  \tof request_any_context_irq GPL ]\n\nSigned-off-by: Marc Zyngier \u003cmaz@misterjones.org\u003e\nCc: \u003cjoachim.eastwood@jotron.com\u003e\nLKML-Reference: \u003c927ea285bd0c68934ddae1a47e44a9ba@localhost\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7c7145f6acc68100dbdc5d3c5c64fe3af1c99c89",
      "tree": "5e93e3eb4787229032f1df222fa490112f4b0c32",
      "parents": [
        "92d6b71ab906be706f3679353b30a8d2c3831144",
        "0d0fb0f9c5fddef4a10242fe3337f00f528a3099"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 14:12:17 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 14:12:17 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/core\n\nReason: Get the upstream IRQF_DISABLED related changes.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "94c4fcec0144e032ef7d4ec761ab81d570b0bc2a",
      "tree": "b67880526801ce7af4c6bc847fcb1742569dc0f9",
      "parents": [
        "14e71e4fb94c340273534a6d7f210aa82a3ca717",
        "753649dbc49345a73a2454c770a3f2d54d11aec6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 06 13:03:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 06 13:03:22 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Force MSI irq handlers to run with interrupts disabled\n"
    },
    {
      "commit": "753649dbc49345a73a2454c770a3f2d54d11aec6",
      "tree": "7489a4f883a1281a4874817826ebf369f7d019f0",
      "parents": [
        "2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 31 13:30:19 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 31 15:48:38 2010 +0200"
      },
      "message": "genirq: Force MSI irq handlers to run with interrupts disabled\n\nNetwork folks reported that directing all MSI-X vectors of their multi\nqueue NICs to a single core can cause interrupt stack overflows when\nenough interrupts fire at the same time.\n\nThis is caused by the fact that we run interrupt handlers by default\nwith interrupts enabled unless the driver reuqests the interrupt with\nthe IRQF_DISABLED set. The NIC handlers do not set this flag, so\nsimultaneous interrupts can nest unlimited and cause the stack\noverflow.\n\nThe only safe counter measure is to run the interrupt handlers with\ninterrupts disabled. We can\u0027t switch to this mode in general right\nnow, but it is safe to do so for MSI interrupts.\n\nForce IRQF_DISABLED for MSI interrupt handlers.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: stable@kernel.org\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": "309d1dcb5b73ab1f8212aff3037a7bcb46afe819",
      "tree": "af8ccaeb98051504db8f44a32f56945382f67271",
      "parents": [
        "8128f55a0bc60cf3779135a1f837c4323e77c582",
        "860652bfb890bd861c999ec39fcffabe5b712f85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:09:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:09:06 2010 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Move two IRQ functions from .init.text to .text\n  genirq: Protect access to irq_desc-\u003eaction in can_request_irq()\n  genirq: Prevent oneshot irq thread race\n"
    },
    {
      "commit": "860652bfb890bd861c999ec39fcffabe5b712f85",
      "tree": "9a266245973217e00533039d7aa707bf09b09e55",
      "parents": [
        "cc8c3b78433222e5dbc1fdfcfdde29e1743f181a"
      ],
      "author": {
        "name": "Henrik Kretzschmar",
        "email": "henne@nachtwindheim.de",
        "time": "Wed Mar 24 12:59:20 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 24 14:38:23 2010 +0100"
      },
      "message": "genirq: Move two IRQ functions from .init.text to .text\n\nBoth functions should not be marked as __init, since they be called\nfrom modules after the init section is freed.\n\nSigned-off-by: Henrik Kretzschmar \u003chenne@nachtwindheim.de\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nLKML-Reference: \u003c1269431961-5731-1-git-send-email-henne@nachtwindheim.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cc8c3b78433222e5dbc1fdfcfdde29e1743f181a",
      "tree": "7efe13d87d7d92b1ff409455e65c85129bc30121",
      "parents": [
        "0b1adaa031a55e44f5dd942f234bf09d28e8a0d6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 23 22:40:53 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 24 14:38:23 2010 +0100"
      },
      "message": "genirq: Protect access to irq_desc-\u003eaction in can_request_irq()\n\ncan_request_irq() accesses and dereferences irq_desc-\u003eaction w/o\nholding irq_desc-\u003elock. So action can be freed on another CPU before\nit\u0027s dereferenced. Unlikely, but ...\n\nProtect it with desc-\u003elock.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "92d6b71ab906be706f3679353b30a8d2c3831144",
      "tree": "2b82cc7f065f947f4a6430e0de3bc63a4870907d",
      "parents": [
        "220bf991b0366cc50a94feede3d7341fa5710ee4"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Thu Mar 11 14:08:56 2010 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 24 14:10:03 2010 +0100"
      },
      "message": "genirq: Expose irq_desc-\u003enode in proc/irq\n\nExpose irq_desc-\u003enode as /proc/irq/*/node.\n\nThis file provides device hardware locality information for apps\ndesiring to include hardware locality in irq mapping decisions.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "0b1adaa031a55e44f5dd942f234bf09d28e8a0d6",
      "tree": "354aa6cbfbcd856226c543b9f263f87864245065",
      "parents": [
        "522dba7134d6b2e5821d3457f7941ec34f668e6d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 09 19:45:54 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 10 17:45:14 2010 +0100"
      },
      "message": "genirq: Prevent oneshot irq thread race\n\nLars-Peter pointed out that the oneshot threaded interrupt handler\ncode has the following race:\n\n CPU0                            CPU1\n hande_level_irq(irq X)\n   mask_ack_irq(irq X)\n   handle_IRQ_event(irq X)\n     wake_up(thread_handler)\n                                 thread handler(irq X) runs\n                                 finalize_oneshot(irq X)\n\t\t\t\t  does not unmask due to \n\t\t\t\t  !(desc-\u003estatus \u0026 IRQ_MASKED)\n\n return from irq\n does not unmask due to\n (desc-\u003estatus \u0026 IRQ_ONESHOT)\n  \t\t\t\t  \nThis leaves the interrupt line masked forever. \n\nThe reason for this is the inconsistent handling of the IRQ_MASKED\nflag. Instead of setting it in the mask function the oneshot support\nsets the flag after waking up the irq thread.\n\nThe solution for this is to set/clear the IRQ_MASKED status whenever\nwe mask/unmask an interrupt line. That\u0027s the easy part, but that\ncleanup opens another race:\n\n CPU0                            CPU1\n hande_level_irq(irq)\n   mask_ack_irq(irq)\n   handle_IRQ_event(irq)\n     wake_up(thread_handler)\n                                 thread handler(irq) runs\n                                 finalize_oneshot_irq(irq)\n\t\t\t\t  unmask(irq)\n     irq triggers again\n     handle_level_irq(irq)\n       mask_ack_irq(irq)\n     return from irq due to IRQ_INPROGRESS\t\t\t\t  \n\n return from irq\n does not unmask due to\n (desc-\u003estatus \u0026 IRQ_ONESHOT)\n\nThis requires that we synchronize finalize_oneshot_irq() with the\nprimary handler. If IRQ_INPROGESS is set we wait until the primary\nhandler on the other CPU has returned before unmasking the interrupt\nline again.\n\nWe probably have never seen that problem because it does not happen on\nUP and on SMP the irqbalancer protects us by pinning the primary\nhandler and the thread to the same CPU.\n\nReported-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "b5eb78f76ddfa7caf4340cf6893b032f45d8114a",
      "tree": "490349138af4f4e01f1373a947aec090eb733b2a",
      "parents": [
        "99558f0bbe68cb09799ec38adbaa3f3b2dc7ba63"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:35 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Feb 17 17:27:20 2010 -0800"
      },
      "message": "sparseirq: Use radix_tree instead of ptrs array\n\nUse radix_tree irq_desc_tree instead of irq_desc_ptrs.\n\n-v2: according to Eric and cyrill to use radix_tree_lookup_slot and\n     radix_tree_replace_slot\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-32-git-send-email-yinghai@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "99558f0bbe68cb09799ec38adbaa3f3b2dc7ba63",
      "tree": "03a0393cae76ac3d0249fc53128974433d94e802",
      "parents": [
        "773e3eb7b81e5ba13b5155dfb3bb75b8ce37f8f9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:34 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Feb 17 17:27:03 2010 -0800"
      },
      "message": "sparseirq: Change irq_desc_ptrs to static\n\nAdd replace_irq_desc() instead of poking at the array directly.\n\n-v2: remove unneeded boundary check in replace_irq_desc\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-31-git-send-email-yinghai@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "febcb0c59ac19fef2081a30e371e7af3619b5e91",
      "tree": "b920a26f537df2ee736cd2690eff75baf781e7db",
      "parents": [
        "5619c28061ff9d2559a93eaba492935530f2a513"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:32 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Feb 17 17:23:59 2010 -0800"
      },
      "message": "irq: Remove unnecessary bootmem code\n\nmem_init is moved early already.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-29-git-send-email-yinghai@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "dfff0615d28bdb3e8d213e5537dd069265912667",
      "tree": "04cfbe3e3cabd8020cee569b10dddf933ee4229f",
      "parents": [
        "6b79b264ce04e2acd24330140e147801cdbaa39f"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Feb 12 21:58:11 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Feb 15 15:38:10 2010 +0100"
      },
      "message": "tree-wide: fix typos \"ass?o[sc]iac?te\" -\u003e \"associate\" in comments\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "5c42dc7070c94622ca914b5a2e227f3744e857e7",
      "tree": "5b00ef785218d1eb3d3430f7a9d8361aa63fe52b",
      "parents": [
        "b80109e256bc17ed66c9d559175f087b03ca2a8e"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Feb 11 15:04:36 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Feb 11 16:01:02 2010 +0100"
      },
      "message": "devres/irq: Fix devm_irq_match comment\n\nFix the reference (in comment).\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ced5b697a76d325e7a7ac7d382dbbb632c765093",
      "tree": "1a0a56d4415afcd16d034aa3bc5c0a6ba06c8a52",
      "parents": [
        "e28cab42f384745c8a947a9ccd51e4aae52f5d51"
      ],
      "author": {
        "name": "Brandon Phiilps",
        "email": "bphilips@suse.de",
        "time": "Wed Feb 10 01:20:06 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Feb 10 14:27:28 2010 -0800"
      },
      "message": "x86: Avoid race condition in pci_enable_msix()\n\nKeep chip_data in create_irq_nr and destroy_irq.\n\nWhen two drivers are setting up MSI-X at the same time via\npci_enable_msix() there is a race.  See this dmesg excerpt:\n\n[   85.170610] ixgbe 0000:02:00.1: irq 97 for MSI/MSI-X\n[   85.170611]   alloc irq_desc for 99 on node -1\n[   85.170613] igb 0000:08:00.1: irq 98 for MSI/MSI-X\n[   85.170614]   alloc kstat_irqs on node -1\n[   85.170616] alloc irq_2_iommu on node -1\n[   85.170617]   alloc irq_desc for 100 on node -1\n[   85.170619]   alloc kstat_irqs on node -1\n[   85.170621] alloc irq_2_iommu on node -1\n[   85.170625] ixgbe 0000:02:00.1: irq 99 for MSI/MSI-X\n[   85.170626]   alloc irq_desc for 101 on node -1\n[   85.170628] igb 0000:08:00.1: irq 100 for MSI/MSI-X\n[   85.170630]   alloc kstat_irqs on node -1\n[   85.170631] alloc irq_2_iommu on node -1\n[   85.170635]   alloc irq_desc for 102 on node -1\n[   85.170636]   alloc kstat_irqs on node -1\n[   85.170639] alloc irq_2_iommu on node -1\n[   85.170646] BUG: unable to handle kernel NULL pointer dereference\nat 0000000000000088\n\nAs you can see igb and ixgbe are both alternating on create_irq_nr()\nvia pci_enable_msix() in their probe function.\n\nixgbe: While looping through irq_desc_ptrs[] via create_irq_nr() ixgbe\nchoses irq_desc_ptrs[102] and exits the loop, drops vector_lock and\ncalls dynamic_irq_init. Then it sets irq_desc_ptrs[102]-\u003echip_data \u003d\nNULL via dynamic_irq_init().\n\nigb: Grabs the vector_lock now and starts looping over irq_desc_ptrs[]\nvia create_irq_nr(). It gets to irq_desc_ptrs[102] and does this:\n\n\tcfg_new \u003d irq_desc_ptrs[102]-\u003echip_data;\n\tif (cfg_new-\u003evector !\u003d 0)\n\t\tcontinue;\n\nThis hits the NULL deref.\n\nAnother possible race exists via pci_disable_msix() in a driver or in\nthe number of error paths that call free_msi_irqs():\n\ndestroy_irq()\ndynamic_irq_cleanup() which sets desc-\u003echip_data \u003d NULL\n...race window...\ndesc-\u003echip_data \u003d cfg;\n\nRemove the save and restore code for cfg in create_irq_nr() and\ndestroy_irq() and take the desc-\u003elock when checking the irq_cfg.\n\nReported-and-analyzed-by: Brandon Philips \u003cbphilips@suse.de\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-3-git-send-email-yinghai@kernel.org\u003e\nSigned-off-by: Brandon Phililps \u003cbphilips@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "9ce8e498ee58bb8a866a6c3c08fcb385ed66e9d2",
      "tree": "1d382d2e410f87ee9ce7c06bdd3d4b024ee53a49",
      "parents": [
        "350f82586b7554240bee18c41cc5c842f63265ae"
      ],
      "author": {
        "name": "Baruch Siach",
        "email": "baruch@tkos.co.il",
        "time": "Tue Feb 02 08:54:51 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Feb 05 12:22:43 2010 +0100"
      },
      "message": "devres: typo fix s/dev/devm/\n\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "239007b8440abff689632f50cdf0f2b9e895b534",
      "tree": "569cab843af4a999d6d868ec9a824530d2bfa733",
      "parents": [
        "9f5a5621e78cf48d86682a71ceb3fcdbde38b222"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 16:46:45 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "genirq: Convert irq_desc.lock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "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: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "2b876f95d03e226394b5d360c86127cbefaf614b",
      "tree": "1f7ea2b85896bac5f5caecb6ff7a8c5d5262914f",
      "parents": [
        "fbf07eac7bf21c262143194181bd97c5d18b8ceb",
        "c95b4502ad7fe8f3b9954aec794b00ac0046ab3a",
        "6ce51c431019310ca03371355a4366c4649fa349"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 19:30:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 19:30:19 2009 -0800"
      },
      "message": "Merge branches \u0027timers-for-linus-ntp\u0027 and \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-ntp\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ntp: Provide compability defines (You say MOD_NANO, I say ADJ_NANO)\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: do not execute DEBUG_SHIRQ when irq setup failed\n"
    },
    {
      "commit": "d014d043869cdc591f3a33243d3481fa4479c2d0",
      "tree": "63626829498e647ba058a1ce06419fe7e4d5f97d",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "6070d81eb5f2d4943223c96e7609a53cdc984364"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\n\tkernel/irq/chip.c\n"
    },
    {
      "commit": "bb2166c898adb5fe29bc450004926802d2a16035",
      "tree": "dc0a1d1219ab7e7324fbca533676d9d3a6a02c56",
      "parents": [
        "0bf7969feae831ede7276f7cc73b586ce0902374",
        "34769945f7cd9ab470413ffe64426e3ad069f49e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:08 2009 -0800"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Fix spurious irq seqfile conversion\n  genirq: switch /proc/irq/*/spurious to seq_file\n  irq: Do not attempt to create subdirectories if /proc/irq/\u003cirq\u003e failed\n  irq: Remove unused debug_poll_all_shared_irqs()\n  irq: Fix docbook comments\n  irq: trivial: Fix typo in comment for #endif\n"
    },
    {
      "commit": "fbfecd3712f917ca210a55c157233d88b785896b",
      "tree": "d0c06649b45a583e8d39eb0a8e60440163ceb77c",
      "parents": [
        "bf48aabb894fd0639ab72a26e8abbd7683ef23c2"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Wed Oct 28 20:11:04 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:51 2009 +0100"
      },
      "message": "tree-wide: fix typos \"couter\" -\u003e \"counter\"\n\nThis patch was generated by\n\n\tgit grep -E -i -l \u0027couter\u0027 | xargs -r perl -p -i -e \u0027s/couter/counter/\u0027\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "fb3d38b9904888aa8e36d88b2388dc70934b2169",
      "tree": "de1358697bdb8706024eaff7905555b166dad460",
      "parents": [
        "137f1188ef2747e987cbb469e6a54dde3350cb51"
      ],
      "author": {
        "name": "Liuweni",
        "email": "qingshenlwy@gmail.com",
        "time": "Mon Nov 02 15:55:03 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:50 2009 +0100"
      },
      "message": "fix kerneldoc for set_irq_msi()\n\nSigned-off-by: Liuweni \u003cqingshenlwy@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "34769945f7cd9ab470413ffe64426e3ad069f49e",
      "tree": "f937799941e6fde05166add1fe4f1712f05aa3a1",
      "parents": [
        "a1afb6371bb5341057056194d1168753f6d77242"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 20 11:46:21 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 20 11:55:26 2009 +0100"
      },
      "message": "genirq: Fix spurious irq seqfile conversion\n\nsingle_open data argument must be PDE(inode)-\u003edata instead of NULL\notherwise seq_file-\u003eprivate is always NULL and we always read the\nspurious data of irq 0.\n\nReported-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a1afb6371bb5341057056194d1168753f6d77242",
      "tree": "dd120dd5fa3c58319d87ba1e8d28ec37986dfce2",
      "parents": [
        "c82a43d40b93200a10a9fec0a489791e65e135ca"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Aug 28 22:19:33 2009 +0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 18 12:50:51 2009 +0100"
      },
      "message": "genirq: switch /proc/irq/*/spurious to seq_file\n\n[ tglx: compacted it a bit ]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nLKML-Reference: \u003c20090828181743.GA14050@x200.localdomain\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c82a43d40b93200a10a9fec0a489791e65e135ca",
      "tree": "5986787e2382d88e3191cffafcdf35aa2ad8353f",
      "parents": [
        "663e69592856df53ef52969482ef413a96bc4e06"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Oct 26 23:28:11 2009 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 08 13:14:22 2009 +0100"
      },
      "message": "irq: Do not attempt to create subdirectories if /proc/irq/\u003cirq\u003e failed\n\nIf a parent directory (ie /proc/irq/\u003cirq\u003e) could not be created\nwe should not attempt to create subdirectories. Otherwise it\nwould lead that \"smp_affinity\" and \"spurious\" entries are may be\nregistered under /proc root instead of a proper place.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c20091026202811.GD5321@lenovo\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7e7e0c084ef862d5754701108d4a038514d6314",
      "tree": "8f098ade05740e21e93767b657d7b0e6c90b588e",
      "parents": [
        "7c9abfb884b8737f0afdc8a88bcea77526f0da87"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Sat Nov 07 11:16:13 2009 +0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Nov 07 21:44:45 2009 +0100"
      },
      "message": "genirq: try_one_irq() must be called with irq disabled\n\nPrarit reported:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: inconsistent lock state ]\n2.6.32-rc5 #1\n---------------------------------\ninconsistent {IN-HARDIRQ-W} -\u003e {HARDIRQ-ON-W} usage.\nswapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:\n (\u0026irq_desc_lock_class){?.-...}, at: [\u003cffffffff810c264e\u003e] try_one_irq+0x32/0x138\n{IN-HARDIRQ-W} state was registered at:\n [\u003cffffffff81095160\u003e] __lock_acquire+0x2fc/0xd5d\n [\u003cffffffff81095cb4\u003e] lock_acquire+0xf3/0x12d\n [\u003cffffffff814cdadd\u003e] _spin_lock+0x40/0x89\n [\u003cffffffff810c3389\u003e] handle_level_irq+0x30/0x105\n [\u003cffffffff81014e0e\u003e] handle_irq+0x95/0xb7\n [\u003cffffffff810141bd\u003e] do_IRQ+0x6a/0xe0\n [\u003cffffffff81012813\u003e] ret_from_intr+0x0/0x16\nirq event stamp: 195096\nhardirqs last  enabled at (195096): [\u003cffffffff814cd7f7\u003e] _spin_unlock_irq+0x3a/0x5c\nhardirqs last disabled at (195095): [\u003cffffffff814cdbdd\u003e] _spin_lock_irq+0x29/0x95\nsoftirqs last  enabled at (195088): [\u003cffffffff81068c92\u003e] __do_softirq+0x1c1/0x1ef\nsoftirqs last disabled at (195093): [\u003cffffffff8101304c\u003e] call_softirq+0x1c/0x30\n\nother info that might help us debug this:\n1 lock held by swapper/0:\n #0:  (kernel/irq/spurious.c:21){+.-...}, at: [\u003cffffffff81070cf2\u003e]\nrun_timer_softirq+0x1a9/0x315\n\nstack backtrace:\nPid: 0, comm: swapper Not tainted 2.6.32-rc5 #1\nCall Trace:\n \u003cIRQ\u003e  [\u003cffffffff81093e94\u003e] valid_state+0x187/0x1ae\n [\u003cffffffff81093fe4\u003e] mark_lock+0x129/0x253\n [\u003cffffffff810951d4\u003e] __lock_acquire+0x370/0xd5d\n [\u003cffffffff81095cb4\u003e] lock_acquire+0xf3/0x12d\n [\u003cffffffff814cdadd\u003e] _spin_lock+0x40/0x89\n [\u003cffffffff810c264e\u003e] try_one_irq+0x32/0x138\n [\u003cffffffff810c2795\u003e] poll_all_shared_irqs+0x41/0x6d\n [\u003cffffffff810c27dd\u003e] poll_spurious_irqs+0x1c/0x49\n [\u003cffffffff81070d82\u003e] run_timer_softirq+0x239/0x315\n [\u003cffffffff81068bd3\u003e] __do_softirq+0x102/0x1ef\n [\u003cffffffff8101304c\u003e] call_softirq+0x1c/0x30\n [\u003cffffffff81014b65\u003e] do_softirq+0x59/0xca\n [\u003cffffffff810686ad\u003e] irq_exit+0x58/0xae\n [\u003cffffffff81029b84\u003e] smp_apic_timer_interrupt+0x94/0xba\n [\u003cffffffff81012a33\u003e] apic_timer_interrupt+0x13/0x20\n\nThe reason is that try_one_irq() is called from hardirq context with\ninterrupts disabled and from softirq context (poll_all_shared_irqs())\nwith interrupts enabled.\n\nDisable interrupts before calling it from poll_all_shared_irqs().\n\nReported-and-tested-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nLKML-Reference: \u003c1257563773-4620-1-git-send-email-yong.zhang0@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "663e69592856df53ef52969482ef413a96bc4e06",
      "tree": "7866ab9917d0f4a676b59b37d6e28f354d009872",
      "parents": [
        "24b26d4211130b6455692804c14d537158855cd7"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 04 14:22:21 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 04 14:22:21 2009 +0100"
      },
      "message": "irq: Remove unused debug_poll_all_shared_irqs()\n\ncommit 74296a8ed added this function for debug purposes, but it was\nnever used for anything. Remove it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "24b26d4211130b6455692804c14d537158855cd7",
      "tree": "5dbc3a26a8a0a8727a848b79e34a333238a5d3dc",
      "parents": [
        "40b1f4e5113eafc5e84f2ba86822df66087fcb25"
      ],
      "author": {
        "name": "Liuweni",
        "email": "qingshenlwy@gmail.com",
        "time": "Wed Nov 04 20:11:05 2009 +0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 04 14:13:14 2009 +0100"
      },
      "message": "irq: Fix docbook comments\n\nFix docbook comments to match the actual function names\n(set_irq_msi, handle_percpu_irq).\n\nSigned-off-by: Liuwenyi \u003cqingshenlwy@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "d90a7e86401ffea2163a4337f3a47f3909c4e255",
      "tree": "afe3d4aa24849c561bb1e6c04c4c54808cbedb47",
      "parents": [
        "12a499612e1ff439bdad240c7f86c55366941d4d",
        "4dbc9ca219b0f294332e734528f7b82211700170"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:21:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:21:31 2009 -0700"
      },
      "message": "Merge branch \u0027irq-threaded-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-threaded-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Do not mask oneshot edge type interrupts\n  genirq: Support nested threaded irq handling\n  genirq: Add buslock support\n  genirq: Add oneshot support\n"
    },
    {
      "commit": "372e24b0cb764ec55b4cf3408a95ae40a29e5b96",
      "tree": "ee8b1e26ec723e509f6478898f4cfbd826aac5f2",
      "parents": [
        "31b47cf7609288893a10706c648faa932c7aef90"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Aug 26 16:20:13 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 15:53:00 2009 +0200"
      },
      "message": "irq: Make sure irq_desc for legacy irq get correct node setting\n\nwhen there is no ram on node 0.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nLKML-Reference: \u003c4A95C32D.5040605@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dbc9ca219b0f294332e734528f7b82211700170",
      "tree": "377ee0e0d671f507dbb73618684630aba2475299",
      "parents": [
        "399b5da29b9f851eb7b96e2882097127f003e87c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Aug 27 09:38:49 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Aug 27 09:38:49 2009 +0200"
      },
      "message": "genirq: Do not mask oneshot edge type interrupts\n\nMasking oneshot edge type interrupts is wrong as we might lose an\ninterrupt which is issued when the threaded handler is handling the\ndevice. We can keep the irq unmasked safely as with edge type\ninterrupts there is no danger of interrupt floods. If the threaded\nhandler has not yet finished then IRQTF_RUNTHREAD is set which will\nkeep the handler thread active.\n\nDebugged and verified in preempt-rt.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "daedc71836e5a398fd0cc0e12c5cb43539478485",
      "tree": "c56567a92017679e57195cef992d4a5561c20e0e",
      "parents": [
        "c36ba80ea01d0aecb652c26799a912e760ce8981",
        "422bef879e84104fee6dc68ded0e371dbeb5f88e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 25 10:04:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 25 10:04:32 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.31-rc7\u0027 into irq/core\n\nMerge reason: move from an -rc2 base to -rc7.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69ab849439b506cd8dd2879527fdb64d95dd5211",
      "tree": "059fba8bcb8147fafcd4e86db61f0f88d6a84095",
      "parents": [
        "2d860ad76f4ee4d2eba0fe3797c8d7cdce432cc0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 17 14:07:16 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Aug 18 17:22:43 2009 +0200"
      },
      "message": "genirq: Wake up irq thread after action has been installed\n\nThe wake_up_process() of the new irq thread in __setup_irq() is too\nearly as the irqaction is not yet fully initialized especially\naction-\u003eirq is not yet set. The interrupt thread might dereference the\nwrong irq descriptor.\n\nMove the wakeup after the action is installed and action-\u003eirq has been\nset.\n\nReported-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Michael Buesch \u003cmb@bu3sch.de\u003e\n"
    },
    {
      "commit": "399b5da29b9f851eb7b96e2882097127f003e87c",
      "tree": "0264a7ae22988e8a298407c611b5b639c9315ff7",
      "parents": [
        "70aedd24d20e75198f5a0b11750faabbb56924e2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Aug 13 13:21:38 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 17 10:54:05 2009 +0200"
      },
      "message": "genirq: Support nested threaded irq handling\n\nInterrupt chips which are behind a slow bus (i2c, spi ...) and\ndemultiplex other interrupt sources need to run their interrupt\nhandler in a thread. \n\nThe demultiplexed interrupt handlers need to run in thread context as\nwell and need to finish before the demux handler thread can reenable\nthe interrupt line. So the easiest way is to run the sub device\nhandlers in the context of the demultiplexing handler thread.\n\nTo avoid that a separate thread is created for the subdevices the\nfunction set_nested_irq_thread() is provided which sets the\nIRQ_NESTED_THREAD flag in the interrupt descriptor.\n\nA driver which calls request_threaded_irq() must not be aware of the\nfact that the threaded handler is called in the context of the\ndemultiplexing handler thread. The setup code checks the\nIRQ_NESTED_THREAD flag which was set from the irq chip setup code and\ndoes not setup a separate thread for the interrupt. The primary\nfunction which is provided by the device driver is replaced by an\ninternal dummy function which warns when it is called.\n\nFor the demultiplexing handler a helper function handle_nested_irq()\nis provided which calls the demux interrupt thread function in the\ncontext of the caller and does the proper interrupt accounting and\ntakes the interrupt disabled status of the demultiplexed subdevice\ninto account.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Trilok Soni \u003csoni.trilok@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Brian Swetland \u003cswetland@google.com\u003e\nCc: Joonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nCc: m.szyprowski@samsung.com\nCc: t.fujak@samsung.com\nCc: kyungmin.park@samsung.com,\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Daniel Ribeiro \u003cdrwyrm@gmail.com\u003e\nCc: arve@android.com\nCc: Barry Song \u003c21cnbao@gmail.com\u003e\n\n"
    },
    {
      "commit": "70aedd24d20e75198f5a0b11750faabbb56924e2",
      "tree": "8492641c61aa3af6f4dea421b8f628efe6fc92bd",
      "parents": [
        "b25c340c195447afb1860da580fe2a85a6b652c5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Aug 13 12:17:48 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 17 10:54:05 2009 +0200"
      },
      "message": "genirq: Add buslock support\n\nSome interrupt chips are connected to a \"slow\" bus (i2c, spi ...). The\nbus access needs to sleep and therefor cannot be called in atomic\ncontexts.\n\nSome of the generic interrupt management functions like disable_irq(),\nenable_irq() ... call interrupt chip functions with the irq_desc-\u003elock\nheld and interrupts disabled. This does not work for such devices.\n\nProvide a separate synchronization mechanism for such interrupt\nchips. The irq_chip structure is extended by two optional functions\n(bus_lock and bus_sync_and_unlock).\n\nThe idea is to serialize the bus access for those operations in the\ncore code so that drivers which are behind that bus operated interrupt\ncontroller do not have to worry about it and just can use the normal\ninterfaces. To achieve this we add two function pointers to the\nirq_chip: bus_lock and bus_sync_unlock.\n\nbus_lock() is called to serialize access to the interrupt controller\nbus.\n\nNow the core code can issue chip-\u003emask/unmask ... commands without\nchanging the fast path code at all. The chip implementation merily\nstores that information in a chip private data structure and\nreturns. No bus interaction as these functions are called from atomic\ncontext.\n\nAfter that bus_sync_unlock() is called outside the atomic context. Now\nthe chip implementation issues the bus commands, waits for completion\nand unlocks the interrupt controller bus.\n\nThe irq_chip implementation as pseudo code:\n\nstruct irq_chip_data {\n       struct mutex   mutex;\n       unsigned int   irq_offset;\n       unsigned long  mask;\n       unsigned long  mask_status;\n}\n\nstatic void bus_lock(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        mutex_lock(\u0026data-\u003emutex);\n}\n\nstatic void mask(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        irq -\u003d data-\u003eirq_offset;\n        data-\u003emask |\u003d (1 \u003c\u003c irq);\n}\n\nstatic void unmask(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        irq -\u003d data-\u003eirq_offset;\n        data-\u003emask \u0026\u003d ~(1 \u003c\u003c irq);\n}\n\nstatic void bus_sync_unlock(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        if (data-\u003emask !\u003d data-\u003emask_status) {\n                do_bus_magic_to_set_mask(data-\u003emask);\n                data-\u003emask_status \u003d data-\u003emask;\n        }\n        mutex_unlock(\u0026data-\u003emutex);\n}\n\nThe device drivers can use request_threaded_irq, free_irq, disable_irq\nand enable_irq as usual with the only restriction that the calls need\nto come from non atomic context.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Trilok Soni \u003csoni.trilok@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Brian Swetland \u003cswetland@google.com\u003e\nCc: Joonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nCc: m.szyprowski@samsung.com\nCc: t.fujak@samsung.com\nCc: kyungmin.park@samsung.com,\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Daniel Ribeiro \u003cdrwyrm@gmail.com\u003e\nCc: arve@android.com\nCc: Barry Song \u003c21cnbao@gmail.com\u003e\n\n"
    },
    {
      "commit": "b25c340c195447afb1860da580fe2a85a6b652c5",
      "tree": "99578092c1e6100f50786e44a1a4fe9cfdb11662",
      "parents": [
        "b2add73dbf93fd50f00564d7abc3e2b9aa9dd20c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Aug 13 12:17:22 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 17 10:54:05 2009 +0200"
      },
      "message": "genirq: Add oneshot support\n\nFor threaded interrupt handlers we expect the hard interrupt handler\npart to mask the interrupt on the originating device. The interrupt\nline itself is reenabled after the hard interrupt handler has\nexecuted.\n\nThis requires access to the originating device from hard interrupt\ncontext which is not always possible. There are devices which can only\nbe accessed via a bus (i2c, spi, ...). The bus access requires thread\ncontext. For such devices we need to keep the interrupt line masked\nuntil the threaded handler has executed.\n\nAdd a new flag IRQF_ONESHOT which allows drivers to request that the\ninterrupt is not unmasked after the hard interrupt context handler has\nbeen executed and the thread has been woken. The interrupt line is\nunmasked after the thread handler function has been executed.\n\nNote that for now IRQF_ONESHOT cannot be used with IRQF_SHARED to\navoid complex accounting mechanisms.\n\nFor oneshot interrupts the primary handler simply returns\nIRQ_WAKE_THREAD and does nothing else. A generic implementation\nirq_default_primary_handler() is provided to avoid useless copies all\nover the place. It is automatically installed when\nrequest_threaded_irq() is called with handler\u003dNULL and\nthread_fn!\u003dNULL.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Trilok Soni \u003csoni.trilok@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Brian Swetland \u003cswetland@google.com\u003e\nCc: Joonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nCc: m.szyprowski@samsung.com\nCc: t.fujak@samsung.com\nCc: kyungmin.park@samsung.com,\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Daniel Ribeiro \u003cdrwyrm@gmail.com\u003e\nCc: arve@android.com\nCc: Barry Song \u003c21cnbao@gmail.com\u003e\n\n"
    },
    {
      "commit": "2d860ad76f4ee4d2eba0fe3797c8d7cdce432cc0",
      "tree": "928e3a162ce9bf9294afd138f5609cf3b70a747b",
      "parents": [
        "3493e84de60590d3012139187f631f2dfbf0887f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 13 13:05:10 2009 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Aug 13 23:09:27 2009 +0200"
      },
      "message": "genirq: prevent wakeup of freed irq thread\n\nfree_irq() can remove an irqaction while the corresponding interrupt\nis in progress, but free_irq() sets action-\u003ethread to NULL\nunconditionally, which might lead to a NULL pointer dereference in\nhandle_IRQ_event() when the hard interrupt context tries to wake up\nthe handler thread.\n\nPrevent this by moving the thread stop after synchronize_irq(). No\nneed to set action-\u003ethread to NULL either as action is going to be\nfreed anyway.\n\nThis fixes a boot crash reported against preempt-rt which uses the\nmainline irq threads code to implement full irq threading.\n\n[ tglx: removed local irqthread variable ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c36ba80ea01d0aecb652c26799a912e760ce8981",
      "tree": "1f44e0c3ebf1d2bde9d3cc2fab41885b80e3a506",
      "parents": [
        "990a55eb25d9698d61352264cc43f3a9c04cce90"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Aug 06 21:46:03 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 09 12:44:29 2009 +0200"
      },
      "message": "irq: Remove superfluous NULL pointer check in check_irq_resend()\n\nThis takes care of the following entry from Dan\u0027s list:\n\nkernel/irq/resend.c +73 check_irq_resend(17) warning: variable derefenced before check \u0027desc-\u003echip\u0027\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nCc: Eugene Teo \u003ceteo@redhat.com\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nLKML-Reference: \u003c200908062146.03638.bzolnier@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad7d6c7a0654a4bbda3e109f56af713267e96274",
      "tree": "4090be64f42e9c721a797d6798611ad9c07d2a2e",
      "parents": [
        "7b2aa037e878c939676675969983284a02958ae3"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Aug 04 09:01:33 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 08 17:06:03 2009 +0200"
      },
      "message": "x86/irq: Fix move_irq_desc() for nodes without ram\n\nDon\u0027t move it if target node is -1.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4A785B5D.4070702@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "990a55eb25d9698d61352264cc43f3a9c04cce90",
      "tree": "60a9c0f0ebbc29f03967c5259b8b2f86b74175ca",
      "parents": [
        "c71320d0c445e01555a86fa6523609db47eeaef6"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Jul 31 00:02:06 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 04 17:00:11 2009 +0200"
      },
      "message": "irq: Clean up by removing irqfixup MODULE_PARM_DESC()\n\nIt\u0027s wrong (the parm takes no arguments) and compile-time wiped\naway anyway (due to !MODULE).\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nLKML-Reference: \u003c1248991326-26267-1-git-send-email-jirislaby@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "61f3826133dc07142935fb5712fc738e19eb5575",
      "tree": "2bac9166734e564a4f89d9db9d7498df87597c31",
      "parents": [
        "3c3301083e3bea4d14c597106c7b20b4b85fc03d"
      ],
      "author": {
        "name": "Bruno Premont",
        "email": "bonbons@linux-vserver.org",
        "time": "Wed Jul 22 22:22:32 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jul 22 23:18:46 2009 +0200"
      },
      "message": "genirq: Fix UP compile failure caused by irq_thread_check_affinity\n\nSince genirq: Delegate irq affinity setting to the irq thread\n(591d2fb02ea80472d846c0b8507007806bdd69cc) compilation with\nCONFIG_SMP\u003dn fails with following error:\n\n/usr/src/linux-2.6/kernel/irq/manage.c:\n   In function \u0027irq_thread_check_affinity\u0027:\n/usr/src/linux-2.6/kernel/irq/manage.c:475:\n   error: \u0027struct irq_desc\u0027 has no member named \u0027affinity\u0027\nmake[4]: *** [kernel/irq/manage.o] Error 1\n\nThat commit adds a new function irq_thread_check_affinity() which\nuses struct irq_desc.affinity which is only available for CONFIG_SMP\u003dy.\nMove that function under #ifdef CONFIG_SMP.\n\n[ tglx@brownpaperbag: compile and boot tested on UP and SMP ]\n\nSigned-off-by: Bruno Premont \u003cbonbons@linux-vserver.org\u003e\nLKML-Reference: \u003c20090722222232.2eb3e1c4@neptune.home\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "591d2fb02ea80472d846c0b8507007806bdd69cc",
      "tree": "c7962a95a47bbdf664f15a504eff24c351f33613",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 21 11:09:39 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 21 14:35:07 2009 +0200"
      },
      "message": "genirq: Delegate irq affinity setting to the irq thread\n\nirq_set_thread_affinity() calls set_cpus_allowed_ptr() which might\nsleep, but irq_set_thread_affinity() is called with desc-\u003elock held\nand can be called from hard interrupt context as well. The code has\nanother bug as it does not hold a ref on the task struct as required\nby set_cpus_allowed_ptr().\n\nJust set the IRQTF_AFFINITY bit in action-\u003ethread_flags. The next time\nthe thread runs it migrates itself. Solves all of the above problems\nnicely.\n\nAdd kerneldoc to irq_set_thread_affinity() while at it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\n\n"
    },
    {
      "commit": "c71320d0c445e01555a86fa6523609db47eeaef6",
      "tree": "2dbe028328dfeddb04fa191fc9ed9d35b4591c76",
      "parents": [
        "96ccd4a43a4d80c80be636cd025a69959cf47424"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 05 00:22:34 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 05 13:07:00 2009 +0200"
      },
      "message": "genirq: Fix comment describing suspend_device_irqs()\n\nThe kerneldoc comment describing suspend_device_irqs() is currently\nmisleading, because generally the function doesn\u0027t really disable\ninterrupt lines at the chip level.  Replace it with a more accurate\none.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nLKML-Reference: \u003c200907050022.35117.rjw@sisk.pl\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2453d6ff6ffc5f0d496b7b14f509a26f99bf115e",
      "tree": "9e4e709bdb932889b0b9cfc5b2b767cfcf750b83",
      "parents": [
        "12e24f34cb0d55efd08c18b2112507d4bf498008",
        "ab33dcff40d7a9a28587e4425621e4cbc4089e03"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:30:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:30:01 2009 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq, irq.h: Fix kernel-doc warnings\n  genirq: fix comment to say IRQ_WAKE_THREAD\n"
    },
    {
      "commit": "28be225b23b115573e0ecc8ef9996f42a1652f74",
      "tree": "01cc74b96307caa3abbda36baf268c2541a3a8e1",
      "parents": [
        "ca371c0d7e23d0d0afae65fc83a0e91cf7399573"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Jun 12 11:33:02 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 12 13:50:23 2009 +0300"
      },
      "message": "irq: slab alloc for default irq_affinity\n\nIngo had\n\n[    0.000000] ------------[ cut here ]------------\n[    0.000000] WARNING: at mm/bootmem.c:537 alloc_arch_preferred_bootmem+0x2b/0x71()\n[    0.000000] Hardware name: System Product Name\n[    0.000000] Modules linked in:\n[    0.000000] Pid: 0, comm: swapper Tainted: G        W  2.6.30-tip-03087-g0bb2618-dirty #52506\n[    0.000000] Call Trace:\n[    0.000000]  [\u003c81032588\u003e] warn_slowpath_common+0x60/0x90\n[    0.000000]  [\u003c810325c5\u003e] warn_slowpath_null+0xd/0x10\n[    0.000000]  [\u003c819d1bc0\u003e] alloc_arch_preferred_bootmem+0x2b/0x71\n[    0.000000]  [\u003c819d1c31\u003e] ___alloc_bootmem_nopanic+0x2b/0x9a\n[    0.000000]  [\u003c81050a0a\u003e] ? lock_release+0xac/0xb2\n[    0.000000]  [\u003c819d1d4c\u003e] ___alloc_bootmem+0xe/0x2d\n[    0.000000]  [\u003c819d1e9f\u003e] __alloc_bootmem+0xa/0xc\n[    0.000000]  [\u003c819d7c63\u003e] alloc_bootmem_cpumask_var+0x21/0x26\n[    0.000000]  [\u003c819d0cc8\u003e] early_irq_init+0x15/0x10d\n[    0.000000]  [\u003c819bb75a\u003e] start_kernel+0x167/0x326\n[    0.000000]  [\u003c819bb06b\u003e] __init_begin+0x6b/0x70\n[    0.000000] ---[ end trace 4eaa2a86a8e2da23 ]---\n[    0.000000] NR_IRQS:2304 nr_irqs:424\n[    0.000000] CPU 0 irqstacks, hard\u003d821e6000 soft\u003d821e7000\n\nwe need to update init_irq_default_affinity\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "22fb4e71e646695c7e0f379ada66b372c2d1aa1a",
      "tree": "f4af9544ae6c0f6c6e9f52965ce387d5b529a3b5",
      "parents": [
        "0fb530291621c8b8a1b16abeeab05d9262489f71"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 14:46:49 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 19:27:13 2009 +0300"
      },
      "message": "irq: use kcalloc() instead of the bootmem allocator\n\nFixes the following problem:\n\n[    0.000000] Experimental hierarchical RCU init done.\n[    0.000000] NR_IRQS:4352 nr_irqs:256\n[    0.000000] ------------[ cut here ]------------\n[    0.000000] WARNING: at mm/bootmem.c:537 alloc_arch_preferred_bootmem+0x40/0x7e()\n[    0.000000] Hardware name: To Be Filled By O.E.M.\n[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.30-tip-02161-g7a74539-dirty #59709\n[    0.000000] Call Trace:\n[    0.000000]  [\u003cffffffff823f8c8e\u003e] ? alloc_arch_preferred_bootmem+0x40/0x7e\n[    0.000000]  [\u003cffffffff81067168\u003e] warn_slowpath_common+0x88/0xcb\n[    0.000000]  [\u003cffffffff810671d2\u003e] warn_slowpath_null+0x27/0x3d\n[    0.000000]  [\u003cffffffff823f8c8e\u003e] alloc_arch_preferred_bootmem+0x40/0x7e\n[    0.000000]  [\u003cffffffff823f9307\u003e] ___alloc_bootmem_nopanic+0x4e/0xec\n[    0.000000]  [\u003cffffffff823f93c5\u003e] ___alloc_bootmem+0x20/0x61\n[    0.000000]  [\u003cffffffff823f962e\u003e] __alloc_bootmem+0x1e/0x34\n[    0.000000]  [\u003cffffffff823f757c\u003e] early_irq_init+0x6d/0x118\n[    0.000000]  [\u003cffffffff823e0140\u003e] ? early_idt_handler+0x0/0x71\n[    0.000000]  [\u003cffffffff823e0cf7\u003e] start_kernel+0x192/0x394\n[    0.000000]  [\u003cffffffff823e0140\u003e] ? early_idt_handler+0x0/0x71\n[    0.000000]  [\u003cffffffff823e02ad\u003e] x86_64_start_reservations+0xb4/0xcf\n[    0.000000]  [\u003cffffffff823e0000\u003e] ? __init_begin+0x0/0x140\n[    0.000000]  [\u003cffffffff823e0420\u003e] x86_64_start_kernel+0x158/0x17b\n[    0.000000] ---[ end trace a7919e7f17c0a725 ]---\n[    0.000000] Fast TSC calibration using PIT\n[    0.000000] Detected 2002.510 MHz processor.\n[    0.004000] Console: colour VGA+ 80x25\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "dad213aeb59718623fc59defeff95fe8c3feb8a0",
      "tree": "3b43b199f0c8a03f010f03087428b0d6c67cd75c",
      "parents": [
        "38c7fed2f5ffee17e1fa3e0f78b0e1bf43d52d13"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu May 28 18:14:40 2009 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 19:27:08 2009 +0300"
      },
      "message": "irq/cpumask: make memoryless node zero happy\n\nDon\u0027t hardcode to node zero for early boot IRQ setup memory allocations.\n\n[ penberg@cs.helsinki.fi: minor cleanups ]\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "948cd52906baf1f92aeea2f9b5c515db1b2e592a",
      "tree": "a03482aebb7f8ed0b1706db8d6cd105f79ea53cc",
      "parents": [
        "4c6f18fc81565967da20f2d4a3922cdba33f8e2b"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri May 22 10:40:09 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 23 14:55:24 2009 +0200"
      },
      "message": "sparseirq: Allow early irq_desc allocation\n\nPresently non-legacy IRQs have their irq_desc allocated with\nkzalloc_node(). This assumes that all callers of irq_to_desc_node_alloc()\nwill be sufficiently late in the boot process that kmalloc is available.\n\nWhile porting sparseirq support to sh this blew up immediately, as at the\ntime that we register the CPU\u0027s interrupt vector map only bootmem is\navailable. Check slab_is_available() to work out which path to use.\n\n[ Impact: fix SH early boot crash with sparseirq enabled ]\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nLKML-Reference: \u003c20090522014008.GA2806@linux-sh.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39a2eddb9b62959dc55c6978b5eaeb3dd57c5ff2",
      "tree": "cef63cdc205079cbdbeafd71998eacb31052b54c",
      "parents": [
        "1d80cac0fe44fb87b2a3d35fddd7f534ea81cd90"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 12 14:35:54 2009 -0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 12 22:11:29 2009 +0200"
      },
      "message": "genirq: fix comment to say IRQ_WAKE_THREAD\n\nTrying to implement a driver to use threaded irqs, I was confused when the \nreturn value to use that was described in the comment above \nrequest_threaded_irq was not defined.\n\nTurns out that the enum is IRQ_WAKE_THREAD where as the comment said \nIRQ_THREAD_WAKE.\n\n[Impact: do not confuse developers with wrong comments ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003calpine.DEB.2.00.0905121431020.13338@gandalf.stny.rr.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "6cda3eb62ef42aa5acd649bf99c8db544e0f4051",
      "tree": "93f74ca002f5756c8e157611174f9540b5cf41c0",
      "parents": [
        "b9c61b70075c87a8612624736faf4a2de5b1ed30",
        "cec6be6d1069d697beb490bbb40a290d5ff554a2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 12 12:17:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 12 12:17:36 2009 +0200"
      },
      "message": "Merge branch \u0027x86/apic\u0027 into irq/numa\n\nMerge reason: both topics modify the APIC code but were able to do it in\n              parallel so far. An upcoming patch generates a conflict so\n              merge them to avoid the conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "44347d947f628060b92449702071bfe1d31dfb75",
      "tree": "c6ed74610d5b3295df4296659f80f5feb94b28cc",
      "parents": [
        "d94fc523f3c35bd8013f04827e94756cbc0212f4",
        "413f81eba35d6ede9289b0c8a920c013a84fac71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:13 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:34 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: tracing/core was on a .30-rc1 base and was missing out on\n              on a handful of tracing fixes present in .30-rc5-almost.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15e957d08dd4a841359cfec59ecb74041e0097aa",
      "tree": "e18a8b70751c552ba2bd7248660f137a735938ea",
      "parents": [
        "56b581ea9591b5767b1e0204c6a06c7d0c49396e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Apr 30 01:17:50 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 01 19:01:12 2009 +0200"
      },
      "message": "x86/irq: use move_irq_desc() in create_irq_nr()\n\nmove_irq_desc() will try to move irq_desc to the home node if\nthe allocated one is not correct, in create_irq_nr().\n\n( This can happen on devices that are on different nodes that\n  are using MSI, when drivers are loaded and unloaded randomly. )\n\nv2: fix non-smp build\nv3: add NUMA_IRQ_DESC to eliminate #ifdefs\n\n[ Impact: improve irq descriptor locality on NUMA systems ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49F95EAE.2050903@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7226fb6ec5d4f325e4e7fd905894e2ea3eb3ae0",
      "tree": "aa5601ffd1103f5ba8662722a0c88cfe1990a301",
      "parents": [
        "091438dd5668396328a3419abcbc6591159eb8d1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 01 15:16:04 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 01 15:16:04 2009 +0200"
      },
      "message": "Revert \"genirq: assert that irq handlers are indeed running in hardirq context\"\n\nThis reverts commit 044d408409cc4e1bc75c886e27ca85c270db104c.\n\nThe commit added a warning when handle_IRQ_event() is called outside\nof hard interrupt context. This breaks the generic tasklet based\ninterrupt resend mechanism which is used when the hardware has no way\nto retrigger the interrupt. So we get a warning for a use case which\nis correct and worked for years. Remove it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a0e39ed378fb6ba916522764cd508fa7d42ad495",
      "tree": "e696fef3ec7daebb8861e002b3e7432a209baae4",
      "parents": [
        "8b3725621074040d380664964ffbc40610aef8c6"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Apr 29 13:51:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:06:21 2009 +0200"
      },
      "message": "tracing: fix build failure on s390\n\n\"tracing: create automated trace defines\" causes this compile error on s390,\nas reported by Sachin Sant against linux-next:\n\n kernel/built-in.o: In function `__do_softirq\u0027:\n (.text+0x1c680): undefined reference to `__tracepoint_softirq_entry\u0027\n\nThis happens because the definitions of the softirq tracepoints were moved\nfrom kernel/softirq.c to kernel/irq/handle.c. Since s390 doesn\u0027t support\ngeneric hardirqs handle.c doesn\u0027t get compiled and the definitions are\nmissing.\n\nSo move the tracepoints to softirq.c again.\n\n[ Impact: fix build failure on s390 ]\n\nReported-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nLKML-Reference: \u003c20090429135139.5fac79b8@osiris.boeblingen.de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85ac16d033370caf6f48d743c8dc8103700f5cc5",
      "tree": "04a73af31c07a8ad29780b777b3f9d041fa236fa",
      "parents": [
        "57b150cce8e004ddd36330490a68bfb59b7271e9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 18:00:38 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:17 2009 +0200"
      },
      "message": "x86/irq: change irq_desc_alloc() to take node instead of cpu\n\nThis simplifies the node awareness of the code. All our allocators\nonly deal with a NUMA node ID locality not with CPU ids anyway - so\nthere\u0027s no need to maintain (and transform) a CPU id all across the\nIRq layer.\n\nv2: keep move_irq_desc related\n\n[ Impact: cleanup, prepare IRQ code to be NUMA-aware ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nLKML-Reference: \u003c49F65536.2020300@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57b150cce8e004ddd36330490a68bfb59b7271e9",
      "tree": "f337b08b6cd9bbe165c709a7e5159b0d6d779238",
      "parents": [
        "d5dedd4507d307eb3f35f21b6e16f336fdc0d82a"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 17:59:53 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:16 2009 +0200"
      },
      "message": "irq: only update affinity if -\u003eset_affinity() is sucessfull\n\nirq_set_affinity() and move_masked_irq() try to assign affinity\nbefore calling chip set_affinity(). Some archs are assigning it\nin -\u003eset_affinity() again.\n\nWe do something like:\n\n cpumask_cpy(desc-\u003eaffinity, mask);\n desc-\u003echip-\u003eset_affinity(mask);\n\nBut in the failure path, affinity should not be touched - otherwise\nwe\u0027ll end up with a different affinity mask despite the failure to\nmigrate the IRQ.\n\nSo try to update the afffinity only if set_affinity returns with 0.\nAlso call irq_set_thread_affinity accordingly.\n\nv2: update after \"irq, x86: Remove IRQ_DISABLED check in process context IRQ move\"\nv3: according to Ingo, change set_affinity() in irq_chip should return int.\nv4: update comments by removing moving irq_desc code.\n\n[ Impact: fix /proc/irq/*/smp_affinity setting corner case bug ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49F65509.60307@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fcef5911c7ea89b80d5bfc727f402f37c9eefd57",
      "tree": "e37ad2cda662933b01b2ba6e28e570a18ef1edc2",
      "parents": [
        "9ec4fa271faf2db3b8e1419c998da1ca6b094eb6"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 17:58:23 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:15 2009 +0200"
      },
      "message": "x86/irq: remove leftover code from NUMA_MIGRATE_IRQ_DESC\n\nThe original feature of migrating irq_desc dynamic was too fragile\nand was causing problems: it caused crashes on systems with lots of\ncards with MSI-X when user-space irq-balancer was enabled.\n\nWe now have new patches that create irq_desc according to device\nnuma node. This patch removes the leftover bits of the dynamic balancer.\n\n[ Impact: remove dead code ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49F654AF.8000808@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ec4fa271faf2db3b8e1419c998da1ca6b094eb6",
      "tree": "2dd817bd41526fc1d1252e50b0b1a0714ae34a7f",
      "parents": [
        "e25c2c873f59c57cf1c2b1979cc8fb01958305ef"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 17:57:18 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:14 2009 +0200"
      },
      "message": "irq, cpumask: correct CPUMASKS_OFFSTACK typo and fix fallout\n\nCPUMASKS_OFFSTACK is not defined anywhere (it is CPUMASK_OFFSTACK).\nIt is a typo and init_allocate_desc_masks() is called before it set\naffinity to all cpus...\n\nSplit init_alloc_desc_masks() into all_desc_masks() and init_desc_masks().\n\nAlso use CPUMASK_OFFSTACK in alloc_desc_masks().\n\n[ Impact: fix smp_affinity copying/setup when moving irq_desc between CPUs ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nLKML-Reference: \u003c49F6546E.3040406@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ce51c431019310ca03371355a4366c4649fa349",
      "tree": "8f081f9c6ce501833f105e3d1541f748d9614adc",
      "parents": [
        "833bb3046b6cb320e775ea2160ddca87d53260d5"
      ],
      "author": {
        "name": "Luis Henriques",
        "email": "henrix@sapo.pt",
        "time": "Wed Apr 01 18:06:35 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 23 08:45:48 2009 +0200"
      },
      "message": "genirq: do not execute DEBUG_SHIRQ when irq setup failed\n\nWhen requesting an IRQ, the DEBUG_SHIRQ code executes a fake IRQ just to make\nsure the driver is ready to receive an IRQ immediately.  The problem was that\nthis fake IRQ was being executed even if interrupt line failed to be allocated\nby __setup_irq.\n\nSigned-off-by: Luis Henriques \u003chenrix@sapo.pt\u003e\nLKML-Reference: \u003c20090401170635.GA4392@hades.domain.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n[ fixed bug pointed out by a warning reported by Stephen Rothwell ]\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad8d75fff811a6a230f7f43b05a6483099349533",
      "tree": "764f75c0785b29067b141719b6e8000f005da7fd",
      "parents": [
        "ecda8ae02a08ef065ff387f5cb2a2d4999da2408"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 14 19:39:12 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 22:05:43 2009 -0400"
      },
      "message": "tracing/events: move trace point headers into include/trace/events\n\nImpact: clean up\n\nCreate a sub directory in include/trace called events to keep the\ntrace point headers in their own separate directory. Only headers that\ndeclare trace points should be defined in this directory.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a8d154b009168337494fbf345671bab74d3e4b8b",
      "tree": "4097612e1a5cc8bf7658542f7d0f51b815113eaf",
      "parents": [
        "ea20d9293ce423a39717ed4375393129a2e701f9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 10 09:36:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:57:28 2009 -0400"
      },
      "message": "tracing: create automated trace defines\n\nThis patch lowers the number of places a developer must modify to add\nnew tracepoints. The current method to add a new tracepoint\ninto an existing system is to write the trace point macro in the\ntrace header with one of the macros TRACE_EVENT, TRACE_FORMAT or\nDECLARE_TRACE, then they must add the same named item into the C file\nwith the macro DEFINE_TRACE(name) and then add the trace point.\n\nThis change cuts out the needing to add the DEFINE_TRACE(name).\nEvery file that uses the tracepoint must still include the trace/\u003ctype\u003e.h\nfile, but the one C file must also add a define before the including\nof that file.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/mytrace.h\u003e\n\nThis will cause the trace/mytrace.h file to also produce the C code\nnecessary to implement the trace point.\n\nNote, if more than one trace/\u003ctype\u003e.h is used to create the C code\nit is best to list them all together.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/foo.h\u003e\n #include \u003ctrace/bar.h\u003e\n #include \u003ctrace/fido.h\u003e\n\nThanks to Mathieu Desnoyers and Christoph Hellwig for coming up with\nthe cleaner solution of the define above the includes over my first\ndesign to have the C code include a \"special\" header.\n\nThis patch converts sched, irq and lockdep and skb to use this new\nmethod.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6ec3cfeca04622e3d80c9270191cd7f5f88214af",
      "tree": "ba9d66ec365e59842fe97d72855c6065763dfe98",
      "parents": [
        "b21597d0268983f8f9e8b563494f75490403e948"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Apr 13 15:20:58 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 14 15:21:13 2009 +0200"
      },
      "message": "x86, irq: Remove IRQ_DISABLED check in process context IRQ move\n\nAs discussed in the thread here:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d123964468521142\u0026w\u003d2\n\nEric W. Biederman observed:\n\n\u003e It looks like some additional bugs have slipped in since last I looked.\n\u003e\n\u003e set_irq_affinity does this:\n\u003e ifdef CONFIG_GENERIC_PENDING_IRQ\n\u003e        if (desc-\u003estatus \u0026 IRQ_MOVE_PCNTXT || desc-\u003estatus \u0026 IRQ_DISABLED) {\n\u003e                cpumask_copy(desc-\u003eaffinity, cpumask);\n\u003e                desc-\u003echip-\u003eset_affinity(irq, cpumask);\n\u003e        } else {\n\u003e                desc-\u003estatus |\u003d IRQ_MOVE_PENDING;\n\u003e                cpumask_copy(desc-\u003epending_mask, cpumask);\n\u003e        }\n\u003e #else\n\u003e\n\u003e That IRQ_DISABLED case is a software state and as such it has nothing to\n\u003e do with how safe it is to move an irq in process context.\n\n[...]\n\n\u003e\n\u003e The only reason we migrate MSIs in interrupt context today is that there\n\u003e wasn\u0027t infrastructure for support migration both in interrupt context\n\u003e and outside of it.\n\nYes. The idea here was to force the MSI migration to happen in process\ncontext. One of the patches in the series did\n\n        disable_irq(dev-\u003eirq);\n        irq_set_affinity(dev-\u003eirq, cpumask_of(dev-\u003ecpu));\n        enable_irq(dev-\u003eirq);\n\nwith the above patch adding irq/manage code check for interrupt disabled\nand moving the interrupt in process context.\n\nIIRC, there was no IRQ_MOVE_PCNTXT when we were developing this HPET\ncode and we ended up having this ugly hack. IRQ_MOVE_PCNTXT was there\nwhen we eventually submitted the patch upstream. But, looks like I did a\nblind rebasing instead of using IRQ_MOVE_PCNTXT in hpet MSI code.\n\nBelow patch fixes this. i.e., revert commit 932775a4ab622e3c99bd59f14cc\nand add PCNTXT to HPET MSI setup. Also removes copying of desc-\u003eaffinity\nin generic code as set_affinity routines are doing it internally.\n\nReported-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Li Shaohua\" \u003cshaohua.li@intel.com\u003e\nCc: Gary Hade \u003cgaryhade@us.ibm.com\u003e\nCc: \"lcm@us.ibm.com\" \u003clcm@us.ibm.com\u003e\nCc: suresh.b.siddha@intel.com\nLKML-Reference: \u003c20090413222058.GB8211@linux-os.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "422a253483aa5de71a2bcdc27b0aa023053f97f8",
      "tree": "3e25aaf65b8eaf275bb01982a89fb0cd631c4367",
      "parents": [
        "91e58b6e95a9c6b9efd928ae352eae5e75ae598c",
        "022624a758dc9489388a99ad29577b4c8c09237c",
        "9756b15e1b58453a6fd54b85c1ad8515209e10bb",
        "8f2e586567b1bad72dac7c3810fe9a2ef7117506"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 10:35:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 10:35:30 2009 -0700"
      },
      "message": "Merge branches \u0027core-fixes-for-linus\u0027, \u0027irq-fixes-for-linus\u0027 and \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  printk: fix wrong format string iter for printk\n  futex: comment requeue key reference semantics\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq: fix cpumask memory leak on offstack cpumask kernels\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  posix-timers: fix RLIMIT_CPU \u0026\u0026 setitimer(CPUCLOCK_PROF)\n  posix-timers: fix RLIMIT_CPU \u0026\u0026 fork()\n  timers: add missing kernel-doc\n"
    },
    {
      "commit": "9efe21cb82b5dbe3b0b2ae4de4eccc64ecb94e95",
      "tree": "7ff8833745d2f268f897f6fa4a27263b4a572245",
      "parents": [
        "de18836e447c2dc30120c0919b8db8ddc0401cc4",
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 06 01:41:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 06 01:41:22 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/threaded\n\nConflicts:\n\tinclude/linux/irq.h\n\tkernel/irq/handle.c\n"
    },
    {
      "commit": "9756b15e1b58453a6fd54b85c1ad8515209e10bb",
      "tree": "1b6ba55e845bbd07460c0c4e061641564b9a69b2",
      "parents": [
        "8fe74cf053de7ad2124a894996f84fa890a81093"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Mar 30 20:37:20 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 19:14:44 2009 +0200"
      },
      "message": "irq: fix cpumask memory leak on offstack cpumask kernels\n\nNeed to free the old cpumask for affinity and pending_mask.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49D18FF0.50707@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8302294f43250dc337108c51882a6007f2b1e2e0",
      "tree": "85acd4440799c46a372df9cad170fa0c21e59096",
      "parents": [
        "4fe70410d9a219dabb47328effccae7e7f2a6e26",
        "2e572895bf3203e881356a4039ab0fa428ed2639"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 21:54:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 02 00:49:02 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core-v2\u0027 into tracing-for-linus\n\nConflicts:\n\tinclude/linux/slub_def.h\n\tlib/Kconfig.debug\n\tmm/slob.c\n\tmm/slub.c\n"
    },
    {
      "commit": "0a0c5168df270a50e3518e4f12bddb31f8f5f38f",
      "tree": "ea1e392fef9d52a7b81c9010580c09317a4d707d",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:33:49 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Introduce functions for suspending and resuming device interrupts\n\nIntroduce helper functions allowing us to prevent device drivers from\ngetting any interrupts (without disabling interrupts on the CPU)\nduring suspend (or hibernation) and to make them start to receive\ninterrupts again during the subsequent resume.  These functions make it\npossible to keep timer interrupts enabled while the \"late\" suspend and\n\"early\" resume callbacks provided by device drivers are being\nexecuted.  In turn, this allows device drivers\u0027 \"late\" suspend and\n\"early\" resume callbacks to sleep, execute ACPI callbacks etc.\n\nThe functions introduced here will be used to rework the handling of\ninterrupts during suspend (hibernation) and resume.  Namely,\ninterrupts will only be disabled on the CPU right before suspending\nsysdevs, while device drivers will be prevented from receiving\ninterrupts, with the help of the new helper function, before their\n\"late\" suspend callbacks run (and analogously during resume).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f48fe81e5b032914183e9a17052313720c2cac56",
      "tree": "9404047368387a6f8b39b4a822ef28e18eba45e9",
      "parents": [
        "935bd5b971f0df7c06d214d022cf8392e2f37952"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 24 11:46:22 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 24 12:15:23 2009 +0100"
      },
      "message": "genirq: threaded irq handlers review fixups\n\nDelta patch to address the review comments.\n\n      - Implement warning when IRQ_WAKE_THREAD is requested and no\n        thread handler installed\n      - coding style fixes\n\nPointed-out-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "935bd5b971f0df7c06d214d022cf8392e2f37952",
      "tree": "a9edfeaa4621ce83d0de84f2c7b2ca0f741ede98",
      "parents": [
        "3aa551c9b4c40018f0e261a178e3d25478dc04a9"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Mar 23 18:28:16 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 24 12:15:23 2009 +0100"
      },
      "message": "genirq: add support for threaded interrupts to devres\n\nSome devices use devres_request_irq() for to install their interrupt\nhandler. Add support for threaded interrupts to devres as well.\n\n[tglx - simplified and adapted to latest threadirq version]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "3aa551c9b4c40018f0e261a178e3d25478dc04a9",
      "tree": "2a696109273fcc421d774cc8fefa4180331a85ad",
      "parents": [
        "80c5520811d3805adcb15c570ea5e2d489fa5d0b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 23 18:28:15 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 24 12:15:23 2009 +0100"
      },
      "message": "genirq: add threaded interrupt handler support\n\nAdd support for threaded interrupt handlers:\n\nA device driver can request that its main interrupt handler runs in a\nthread. To achive this the device driver requests the interrupt with\nrequest_threaded_irq() and provides additionally to the handler a\nthread function. The handler function is called in hard interrupt\ncontext and needs to check whether the interrupt originated from the\ndevice. If the interrupt originated from the device then the handler\ncan either return IRQ_HANDLED or IRQ_WAKE_THREAD. IRQ_HANDLED is\nreturned when no further action is required. IRQ_WAKE_THREAD causes\nthe genirq code to invoke the threaded (main) handler. When\nIRQ_WAKE_THREAD is returned handler must have disabled the interrupt\non the device level. This is mandatory for shared interrupt handlers,\nbut we need to do it as well for obscure x86 hardware where disabling\nan interrupt on the IO_APIC level redirects the interrupt to the\nlegacy PIC interrupt lines.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n"
    },
    {
      "commit": "80c5520811d3805adcb15c570ea5e2d489fa5d0b",
      "tree": "ae797a7f4af39f80e77526533d06ac23b439f0ab",
      "parents": [
        "b3e3b302cf6dc8d60b67f0e84d1fa5648889c038",
        "8c083f081d0014057901c68a0a3e0f8ca7ac8d23"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 23 14:50:03 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 23 21:20:20 2009 +0100"
      },
      "message": "Merge branch \u0027cpus4096\u0027 into irq/threaded\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tkernel/irq/handle.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "edb35028e40515beb2f94808aff8b3e71fb9f35a",
      "tree": "153da9f8ca1934b30474bb15478feb14a7bd5b75",
      "parents": [
        "8f8573ae9f5deefada6f5d64d0a52c9b39c730c7",
        "cb065c06b6cc615a58860d619d7fa7952cd6a18b",
        "5bee17f18b595937e6beafeee5197868a3f74a06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:20:13 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:20:13 2009 +0100"
      },
      "message": "Merge branches \u0027irq/genirq\u0027 and \u0027linus\u0027 into irq/core\n"
    },
    {
      "commit": "0e57aa11abb15b70db53d1f95ae70b3c980ac885",
      "tree": "9e4c9fabfcaa095eba1e50252e341aa749c6e607",
      "parents": [
        "a9d0a1a38352c4fb8946e73b3e42ba4ada29e733"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 13 14:34:05 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 13 16:34:02 2009 +0100"
      },
      "message": "genirq: deprecate __do_IRQ\n\nTwo years migration time is enough. Remove the compability cruft.\n\nAdd the deprecated warning in kernel/irq/handle.c because marking\n__do_IRQ itself is way too noisy.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4553573277906901f62f73c0432b332c53de5e2c",
      "tree": "4093af83302fa711e9079152089085927f60c838",
      "parents": [
        "bedd30d986a05e32dc3eab874e4b9ed8a38058bb"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Feb 22 23:00:32 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 13 14:32:29 2009 +0100"
      },
      "message": "genirq: use kzalloc instead of explicit zero initialization\n\nImpact: simplification\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "c8e2aeef0b8ac9fb8821b8b3734c031579d0b77a",
      "tree": "6b171eb497bdd5f21f9e6a0b06c4aa6c3c60b76b",
      "parents": [
        "3dd3d46b78c22503957230ca5981849b7bb29b9a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 09 20:26:23 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 13 14:32:28 2009 +0100"
      },
      "message": "genirq: remove redundant if condition\n\nImpact: cleanup\n\nThe code is only compiled if CONFIG_GENERIC_HARDIRQS\u003dy so another\ncheck for this define in the code is redundant. Remove it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "eb53b4e8fef10ccccb49a6dbb5e19ca84ba5a305",
      "tree": "156b1a9b799c0b1c4dc90b05a7b2468df56ca1c1",
      "parents": [
        "cbf94f06824780183e4bba165c7c29d5c7bd9a51"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Thu Mar 12 21:05:59 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 12 13:16:33 2009 +0100"
      },
      "message": "irq: export remove_irq() and setup_irq() symbols\n\nExport the setup_irq() and remove_irq() symbols.\n\nI\u0027d like to export these functions since I have timer\ncode that needs to use setup_irq() early on (too early\nfor request_irq()), and the same code can also be\ncompiled as a module.\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nLKML-Reference: \u003c20090312120559.2926.82371.sendpatchset@rx1.opensource.se\u003e\n[ changed to _GPL as these are special APIs deep inside the irq layer. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cbf94f06824780183e4bba165c7c29d5c7bd9a51",
      "tree": "e1cfa04aee8ba76d79737526061c706defb1552c",
      "parents": [
        "f21cfb258df6dd3ea0b3e56d75c7e994edb81b35"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Thu Mar 12 21:05:51 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 12 13:16:33 2009 +0100"
      },
      "message": "irq: match remove_irq() args with setup_irq()\n\nModify remove_irq() to match setup_irq().\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nLKML-Reference: \u003c20090312120551.2926.43942.sendpatchset@rx1.opensource.se\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f21cfb258df6dd3ea0b3e56d75c7e994edb81b35",
      "tree": "63d2c11d1857bdffab6bf3ed036af8e03d16abd7",
      "parents": [
        "f8cb22cbb8383c9f41e6ccbcd4fb94edb1048bda"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Thu Mar 12 21:05:42 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 12 13:16:32 2009 +0100"
      },
      "message": "irq: add remove_irq() for freeing of setup_irq() irqs\n\nImpact: add new API\n\nThis patch adds a remove_irq() function for releasing\ninterrupts requested with setup_irq().\n\nWithout this patch we have no way of releasing such\ninterrupts since free_irq() today tries to kfree()\nthe irqaction passed with setup_irq().\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nLKML-Reference: \u003c20090312120542.2926.56609.sendpatchset@rx1.opensource.se\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f0ef03985130287c6c84ebe69416cf790e6cc00e",
      "tree": "3ecb04cc4d82e5fc3ae5f1747e6da172ae8cbcb7",
      "parents": [
        "16097439703bcd38e9fe5608c12add6dacb825ea",
        "31bbed527e7039203920c51c9fb48c27aed0820c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 16:44:14 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 16:45:01 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into tracing/textedit\n\nConflicts:\n\tarch/x86/Kconfig\n\tblock/blktrace.c\n\tkernel/irq/handle.c\n\nSemantic conflict:\n\tkernel/trace/blktrace.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "044d408409cc4e1bc75c886e27ca85c270db104c",
      "tree": "c2286707e9d4983a4828b0a4133181031de36964",
      "parents": [
        "c02368a9d059322f913a58111eade87a656fefd5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Mar 02 16:13:32 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 03 00:05:45 2009 +0100"
      },
      "message": "genirq: assert that irq handlers are indeed running in hardirq context\n\nMake sure the genirq layer handlers are indeed running handlers\nin hardirq context. That is the genirq expectation and doing\nanything else is broken.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c1236006812.5330.632.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c02368a9d059322f913a58111eade87a656fefd5",
      "tree": "2f02dbbe69b86535f58d2010d9adfb20a9c16fb9",
      "parents": [
        "f17c75453b2d195eba0a90d9f16a3ba88c85b3b4",
        "778ef1e6cbb049c9bcbf405936ee6f2b6e451892"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 02 22:08:56 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 02 22:08:56 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/genirq\n"
    },
    {
      "commit": "af39241b90a345556b8884adff87096afe71b050",
      "tree": "a913e3f15b1fb91555b5cb5899270274ce4c2c46",
      "parents": [
        "8656e7a2fa6afcd8682990f804a2a9674568738f"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Feb 26 10:11:05 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 18:43:50 2009 +0100"
      },
      "message": "tracing, genirq: add irq enter and exit trace events\n\nImpact: add new tracepoints\n\nAdd them to the generic IRQ code, that way every architecture\ngets these new tracepoints, not just x86.\n\nUsing Steve\u0027s new \u0027TRACE_FORMAT\u0027, I can get function graph\ntrace as follows using the original two IRQ tracepoints:\n\n 3)               |    handle_IRQ_event() {\n 3)               |    /* (irq_handler_entry) irq\u003d28 handler\u003deth0 */\n 3)               |    e1000_intr_msi() {\n 3)   2.460 us    |      __napi_schedule();\n 3)   9.416 us    |    }\n 3)               |    /* (irq_handler_exit) irq\u003d28 handler\u003deth0 return\u003dhandled */\n 3) + 22.935 us   |  }\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mathieu Desnoyers \u003ccompudj@krystal.dyndns.org\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f17c75453b2d195eba0a90d9f16a3ba88c85b3b4",
      "tree": "2727a5965c34c11b11257db56fe87c432cd395ef",
      "parents": [
        "8316e38100c70cd1443ac90074eccdd033aa218d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 20:43:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 20:44:47 2009 +0100"
      },
      "message": "irq: name \u0027p\u0027 variables a bit better\n\n\u0027p\u0027 stands for pointer - make it clear in setup_irq() and free_irq()\nwhat kind of pointer it is.\n\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8316e38100c70cd1443ac90074eccdd033aa218d",
      "tree": "155392d9a76df31a1934c181d24467cd93294986",
      "parents": [
        "ae88a23b32fa7e0dc9fa7ce735966e68eb41b0bc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 20:28:29 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 20:28:29 2009 +0100"
      },
      "message": "irq: further clean up the free_irq() code flow\n\nLinus noticed that the \u0027pp\u0027 variable can be eliminated\naltogether, and the loop can be cleaned up further.\n\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ae88a23b32fa7e0dc9fa7ce735966e68eb41b0bc",
      "tree": "39f39938fe6d197e0c1c74ecec649833a3321a68",
      "parents": [
        "327ec5699c29454322d0136375f717f509c145b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 15 11:29:50 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 15 11:36:49 2009 +0100"
      },
      "message": "irq: refactor and clean up the free_irq() code flow\n\nImpact: cleanup\n\n- separate out the loop from the actual freeing logic, this wins us\n  two indentation levels allowing a number of followup prettifications\n\n- turn the WARN_ON() into a more informative WARN().\n\n- clean up the comments and the code flow some more\n\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "327ec5699c29454322d0136375f717f509c145b6",
      "tree": "6d7903906cd8e40c6075b695d29e1cf428319bd4",
      "parents": [
        "0e43785c57fee50fbc00ea0378e941efb61fa0c2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 15 11:21:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 15 11:21:37 2009 +0100"
      },
      "message": "irq: clean up manage.c\n\n- make printk message git-greppable\n- fix a few style details\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f8573ae9f5deefada6f5d64d0a52c9b39c730c7",
      "tree": "444d55bfb8a048ad3b13051cd55a64b688915a58",
      "parents": [
        "37bed90094fdb1eea6e4afec6a200d4e60143e55",
        "0e43785c57fee50fbc00ea0378e941efb61fa0c2",
        "005bf0e6fa0e9543933fe2e36322af649df7cacb",
        "548c8933801c9ee347b6f1bad2491e4286a4f3a2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 13 11:57:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 13 11:57:18 2009 +0100"
      },
      "message": "Merge branches \u0027irq/genirq\u0027, \u0027irq/sparseirq\u0027 and \u0027irq/urgent\u0027 into irq/core\n"
    },
    {
      "commit": "0e43785c57fee50fbc00ea0378e941efb61fa0c2",
      "tree": "f90ec1d34d987a48707fe455534f16b191702f8a",
      "parents": [
        "74296a8ed6aa3c5bf672808ada690de7ba323ecc"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Feb 13 04:38:04 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 13 10:52:07 2009 +0100"
      },
      "message": "irq: use GFP_KERNEL for action allocation in request_irq()\n\nrequest_irq() calls into proc code via __setup_irq() which is not safe\nin an atomic context, so request_irq() can itself use the more\nreliable GFP_KERNEL allocation for the action descriptor.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "249d51b53aea1b7cdb1be65a1a9a0c59d9e06f3e"
}
