)]}'
{
  "log": [
    {
      "commit": "51906e779f2b13b38f8153774c4c7163d412ffd9",
      "tree": "970633752f6a5cea156226cd31457289ba16f1c5",
      "parents": [
        "4cca6ea04d31c22a7d0436949c072b27bde41f86"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "agordeev@redhat.com",
        "time": "Mon Nov 19 16:01:29 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 24 17:25:12 2013 +0100"
      },
      "message": "x86/MSI: Support multiple MSIs in presense of IRQ remapping\n\nThe MSI specification has several constraints in comparison with\nMSI-X, most notable of them is the inability to configure MSIs\nindependently. As a result, it is impossible to dispatch\ninterrupts from different queues to different CPUs. This is\nlargely devalues the support of multiple MSIs in SMP systems.\n\nAlso, a necessity to allocate a contiguous block of vector\nnumbers for devices capable of multiple MSIs might cause a\nconsiderable pressure on x86 interrupt vector allocator and\ncould lead to fragmentation of the interrupt vectors space.\n\nThis patch overcomes both drawbacks in presense of IRQ remapping\nand lets devices take advantage of multiple queues and per-IRQ\naffinity assignments.\n\nSigned-off-by: Alexander Gordeev \u003cagordeev@redhat.com\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/c8bd86ff56b5fc118257436768aaa04489ac0a4c.1353324359.git.agordeev@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "293a7a0a165c4f8327bbcf396cee9ec672727c98",
      "tree": "6f4dca36e85e5d7cd3648bb322b7db9c29fb8c85",
      "parents": [
        "1e207eb1c3f0e8b690401f02fe08e7b53903f010"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 16 15:07:49 2012 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Nov 01 12:11:31 2012 +0100"
      },
      "message": "genirq: Provide means to retrigger parent\n\nAttempts to retrigger nested threaded IRQs currently fail because they\nhave no primary handler. In order to support retrigger of nested\nIRQs, the parent IRQ needs to be retriggered.\n\nTo fix, when an IRQ needs to be resent, if the interrupt has a parent\nIRQ and runs in the context of the parent IRQ, then resend the parent.\n\nAlso, handle_nested_irq() needs to clear the replay flag like the\nother handlers, otherwise check_irq_resend() will set it and it will\nnever be cleared.  Without clearing, it results in the first resend\nworking fine, but check_irq_resend() returning early on subsequent\nresends because the replay flag is still set.\n\nProblem discovered on ARM/OMAP platforms where a nested IRQ that\u0027s\nalso a wakeup IRQ happens late in suspend and needed to be retriggered\nduring the resume process.\n\n[khilman@ti.com: changelog edits, clear IRQS_REPLAY in handle_nested_irq()]\n\nReported-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nLink: http://lkml.kernel.org/r/1350425269-11489-1-git-send-email-khilman@deeprootsystems.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b3ae66f209e8929db62b5a5f874ab2cdcf5ef1d4",
      "tree": "d7c2a3fcfc9fb7e7a7d01c9463803a4e43abb3ec",
      "parents": [
        "d9875690d9b89a866022ff49e3fcea892345ad92"
      ],
      "author": {
        "name": "Kuninori Morimoto",
        "email": "kuninori.morimoto.gx@renesas.com",
        "time": "Mon Jul 30 22:39:06 2012 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Aug 21 16:14:23 2012 +0200"
      },
      "message": "genirq: Export irq_set_chip_and_handler_name()\n\nExport irq_set_chip_and_handler_name() to modules to allow them to\ndo things such as\n\n\tirq_set_chip_and_handler(....);\n\nThis fixes\n\n\tERROR: \"irq_set_chip_and_handler_name\" \\\n\t          [drivers/gpio/gpio-pcf857x.ko] undefined!\n\nwhen gpio-pcf857x.c is being built as a module.\n\nSigned-off-by: Kuninori Morimoto \u003ckuninori.morimoto.gx@renesas.com\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Greg KH \u003cgregkh@linuxfoundation.org\u003e\nLink: http://lkml.kernel.org/r/873948trpk.wl%25kuninori.morimoto.gx@renesas.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "23812b9d9e497580d38c62ebdc6f308733b0a32a",
      "tree": "5093189b4bea411380c112a35b9183b5b7deea95",
      "parents": [
        "f9369910a6225b8d4892c3f20ae740a711cd5ace"
      ],
      "author": {
        "name": "Ning Jiang",
        "email": "ning.n.jiang@gmail.com",
        "time": "Tue May 22 00:19:20 2012 +0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 24 22:27:45 2012 +0200"
      },
      "message": "genirq: Add IRQS_PENDING for nested and simple irq\n\nEvery interrupt which is an active wakeup source needs the ability to\nabort suspend if there is a pending irq. Right now only edge and level\nirqs can do that.\n\n            |\n       +---------+\n       |   INTC  |\n       +---------+\n               | GPIO_IRQ\n            +------------+\n            |  gpio-exp  |\n            +------------+\n              |        |\n         GPIO0_IRQ  GPIO1_IRQ\n\nIn the above diagram, gpio expander has irq number GPIO_IRQ, it is\nconnected with two sub GPIO pins, GPIO0 and GPIO1.\n\nDuring suspend, we set IRQF_NO_SUSPEND for GPIO_IRQ so that gpio\nexpander driver can handle the sub irq GPIO0_IRQ and GPIO1_IRQ, and\nthese two irqs themselves can further be handled by simple or nested\nirq in some drivers(typically gpio and mfd driver). If they are used\nas wakeup sources during suspend, we want them to be able to abort\nsuspend too.\n\nSetting IRQS_PENDING flag in handle_nested_irq() and handle_simple_irq()\nwhen the irq is disabled allows check_wakeup_irqs() to identify such\nirqs as source for aborting suspend.\n\nSigned-off-by: Ning Jiang \u003cning.n.jiang@gmail.com\u003e\nCc: rjw@sisk.pl\nLink: http://lkml.kernel.org/r/CAH3Oq6T905%2B3fkF43NAMMFvJvq7dsk_so6T2vQ8ZJrA5xiU3YA@mail.gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "471368557a734c6c486ee757952c902b36e7fd01",
      "tree": "f192a77d2cb70b1d135e7be62418806e8c590a3e",
      "parents": [
        "cb60e3e65c1b96a4d6444a7a13dc7dd48bc15a2b",
        "e0d8ffd1df44518cb9ac9b1807d1f13cc100fc2f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 20:33:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 20:33:19 2012 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull core irq changes from Ingo Molnar:\n \"A collection of small fixes.\"\n\nBy Thomas Gleixner\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  hexagon: Remove select of not longer existing Kconfig switches\n  arm: Select core options instead of redefining them\n  genirq: Do not consider disabled wakeup irqs\n  genirq: Allow check_wakeup_irqs to notice level-triggered interrupts\n  genirq: Be more informative on irq type mismatch\n  genirq: Reject bogus threaded irq requests\n  genirq: Streamline irq_action\n"
    },
    {
      "commit": "3911ff30f5d1175e2e67e73244405e3492b35c79",
      "tree": "9727439d23b9308b6c26710db3aadf0406b1998b",
      "parents": [
        "b6255ee3d82798eb1eee9fb1cca713317b5afae8"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun May 13 12:13:15 2012 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 15 08:10:07 2012 -0700"
      },
      "message": "genirq: export handle_edge_irq() and irq_to_desc()\n\nExport handle_edge_irq() and irq_to_desc() to modules to allow them to\ndo things such as\n\n\t__irq_set_handler_locked(...., handle_edge_irq);\n\nThis fixes\n\n\tERROR: \"handle_edge_irq\" [drivers/gpio/gpio-pch.ko] undefined!\n\tERROR: \"irq_to_desc\" [drivers/gpio/gpio-pch.ko] undefined!\n\nwhen gpio-pch is being built as a module.\n\nThis was introduced by commit df9541a60af0 (\"gpio: pch9: Use proper flow\ntype handlers\") that added\n\n\t__irq_set_handler_locked(d-\u003eirq, handle_edge_irq);\n\nbut handle_edge_irq() was not exported for modules (and inlined\n__irq_set_handler_locked() requires irq_to_desc() exported as well)\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4dc0f90d243fb54cfbca6601c9a7c5a758e437f",
      "tree": "c868d2debe4a4f8d802ad6bbaa257bb5be83dd22",
      "parents": [
        "f5d89470f91f2e67eeaf350c730ae8412c3a98e3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 25 12:54:54 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 04 23:38:50 2012 +0200"
      },
      "message": "genirq: Allow check_wakeup_irqs to notice level-triggered interrupts\n\nLevel triggered interrupts do not cause IRQS_PENDING to be set when\nthey fire while \"disabled\" as the \u0027pending\u0027 state is always present in\nthe level - they automatically refire where re-enabled.\n\nHowever the IRQS_PENDING flag is also used to abort a suspend cycle -\nif any \u0027is_wakeup_set\u0027 interrupt is PENDING, check_wakeup_irqs() will\ncause suspend to abort. Without IRQS_PENDING, suspend won\u0027t abort.\n\nConsequently, level-triggered interrupts that fire during the \u0027noirq\u0027\nphase of suspend do not currently abort suspend.\n\nSo set IRQS_PENDING even for level triggered interrupts, and make sure\nto clear the flag in check_irq_resend.\n\n[ Changelog by courtesy of Neil ]\n\nTested-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
      "tree": "0dbb83e57260ea7fc0dc421f214d5f1b26262005",
      "parents": [
        "0bbfcaff9b2a69c71a95e6902253487ab30cb498",
        "bea95c152dee1791dd02cbc708afbb115bb00f9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf events changes for v3.4 from Ingo Molnar:\n\n - New \"hardware based branch profiling\" feature both on the kernel and\n   the tooling side, on CPUs that support it.  (modern x86 Intel CPUs\n   with the \u0027LBR\u0027 hardware feature currently.)\n\n   This new feature is basically a sophisticated \u0027magnifying glass\u0027 for\n   branch execution - something that is pretty difficult to extract from\n   regular, function histogram centric profiles.\n\n   The simplest mode is activated via \u0027perf record -b\u0027, and the result\n   looks like this in perf report:\n\n\t$ perf record -b any_call,u -e cycles:u branchy\n\n\t$ perf report -b --sort\u003dsymbol\n\t    52.34%  [.] main                   [.] f1\n\t    24.04%  [.] f1                     [.] f3\n\t    23.60%  [.] f1                     [.] f2\n\t     0.01%  [k] _IO_new_file_xsputn    [k] _IO_file_overflow\n\t     0.01%  [k] _IO_vfprintf_internal  [k] _IO_new_file_xsputn\n\t     0.01%  [k] _IO_vfprintf_internal  [k] strchrnul\n\t     0.01%  [k] __printf               [k] _IO_vfprintf_internal\n\t     0.01%  [k] main                   [k] __printf\n\n   This output shows from/to branch columns and shows the highest\n   percentage (from,to) jump combinations - i.e.  the most likely taken\n   branches in the system.  \"branches\" can also include function calls\n   and any other synchronous and asynchronous transitions of the\n   instruction pointer that are not \u0027next instruction\u0027 - such as system\n   calls, traps, interrupts, etc.\n\n   This feature comes with (hopefully intuitive) flat ascii and TUI\n   support in perf report.\n\n - Various \u0027perf annotate\u0027 visual improvements for us assembly junkies.\n   It will now recognize function calls in the TUI and by hitting enter\n   you can follow the call (recursively) and back, amongst other\n   improvements.\n\n - Multiple threads/processes recording support in perf record, perf\n   stat, perf top - which is activated via a comma-list of PIDs:\n\n\tperf top -p 21483,21485\n\tperf stat -p 21483,21485 -ddd\n\tperf record -p 21483,21485\n\n - Support for per UID views, via the --uid paramter to perf top, perf\n   report, etc.  For example \u0027perf top --uid mingo\u0027 will only show the\n   tasks that I am running, excluding other users, root, etc.\n\n - Jump label restructurings and improvements - this includes the\n   factoring out of the (hopefully much clearer) include/linux/static_key.h\n   generic facility:\n\n\tstruct static_key key \u003d STATIC_KEY_INIT_FALSE;\n\n\t...\n\n\tif (static_key_false(\u0026key))\n\t        do unlikely code\n\telse\n\t        do likely code\n\n\t...\n\tstatic_key_slow_inc();\n\t...\n\tstatic_key_slow_inc();\n\t...\n\n   The static_key_false() branch will be generated into the code with as\n   little impact to the likely code path as possible.  the\n   static_key_slow_*() APIs flip the branch via live kernel code patching.\n\n   This facility can now be used more widely within the kernel to\n   micro-optimize hot branches whose likelihood matches the static-key\n   usage and fast/slow cost patterns.\n\n - SW function tracer improvements: perf support and filtering support.\n\n - Various hardenings of the perf.data ABI, to make older perf.data\u0027s\n   smoother on newer tool versions, to make new features integrate more\n   smoothly, to support cross-endian recording/analyzing workflows\n   better, etc.\n\n - Restructuring of the kprobes code, the splitting out of \u0027optprobes\u0027,\n   and a corner case bugfix.\n\n - Allow the tracing of kernel console output (printk).\n\n - Improvements/fixes to user-space RDPMC support, allowing user-space\n   self-profiling code to extract PMU counts without performing any\n   system calls, while playing nice with the kernel side.\n\n - \u0027perf bench\u0027 improvements\n\n - ... and lots of internal restructurings, cleanups and fixes that made\n   these features possible.  And, as usual this list is incomplete as\n   there were also lots of other improvements\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (120 commits)\n  perf report: Fix annotate double quit issue in branch view mode\n  perf report: Remove duplicate annotate choice in branch view mode\n  perf/x86: Prettify pmu config literals\n  perf report: Enable TUI in branch view mode\n  perf report: Auto-detect branch stack sampling mode\n  perf record: Add HEADER_BRANCH_STACK tag\n  perf record: Provide default branch stack sampling mode option\n  perf tools: Make perf able to read files from older ABIs\n  perf tools: Fix ABI compatibility bug in print_event_desc()\n  perf tools: Enable reading of perf.data files from different ABI rev\n  perf: Add ABI reference sizes\n  perf report: Add support for taken branch sampling\n  perf record: Add support for sampling taken branch\n  perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK\n  x86/kprobes: Split out optprobe related code to kprobes-opt.c\n  x86/kprobes: Fix a bug which can modify kernel code permanently\n  x86/kprobes: Fix instruction recovery on optimized path\n  perf: Add callback to flush branch_stack on context switch\n  perf: Disable PERF_SAMPLE_BRANCH_* when not supported\n  perf/x86: Add LBR software filter support for Intel CPUs\n  ...\n"
    },
    {
      "commit": "df8d291f28aa1e8437c8f7816328a6516379c71b",
      "tree": "26ae585aa259584ddd0d9088933547c065c37086",
      "parents": [
        "5234ffb9f74cfa8993d174782bc861dd9b7b5bfb",
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 13 16:34:48 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 13 16:35:16 2012 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/core\n\nReason: Get upstream fixes integrated before further modifications.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a09b659cd68c10ec6a30cb91ebd2c327fcd5bfe5",
      "tree": "ea0b9390262eb337db89514e492968b92dc3dc04",
      "parents": [
        "986cb48c5a4de0085db94d343b4e7dcf54355ec1"
      ],
      "author": {
        "name": "Russell King",
        "email": "linux@arm.linux.org.uk",
        "time": "Mon Mar 05 15:07:25 2012 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 06 13:33:27 2012 +0100"
      },
      "message": "genirq: Fix long-term regression in genirq irq_set_irq_type() handling\n\nIn 2008, commit 0c5d1eb77a8be (\"genirq: record trigger type\") modified the\nway set_irq_type() handles the \u0027no trigger\u0027 condition.  However, this has\nan adverse effect on PCMCIA support on Intel StrongARM and probably PXA\nplatforms.\n\nPCMCIA has several status signals on the socket which can trigger\ninterrupts; some of these status signals depend on the card\u0027s mode\n(whether it is configured in memory or IO mode).  For example, cards have\na \u0027Ready/IRQ\u0027 signal: in memory mode, this provides an indication to\nPCMCIA that the card has finished its power up initialization.  In IO\nmode, it provides the device interrupt signal.  Other status signals\nswitch between on-board battery status and loud speaker output.\n\nIn classical PCMCIA implementations, where you have a specific socket\ncontroller, the controller provides a method to mask interrupts from the\nsocket, and importantly ignore any state transitions on the pins which\ncorrespond with interrupts once masked.  This masking prevents unwanted\nevents caused by the removal and application of socket power being\nforwarded.\n\nHowever, on platforms where there is no socket controller, the PCMCIA\nstatus and interrupt signals are routed to standard edge-triggered GPIOs. \nThese GPIOs can be configured to interrupt on rising edge, falling edge,\nor never.  This is where the problems start.\n\nEdge triggered interrupts are required to record events while disabled via\nthe usual methods of {free,request,disable,enable}_irq() to prevent\nproblems with dropped interrupts (eg, the 8390 driver uses disable_irq()\nto defer the delivery of interrupts).  As a result, these interfaces can\nnot be used to implement the desired behaviour.\n\nThe side effect of this is that if the \u0027Ready/IRQ\u0027 GPIO is disabled via\ndisable_irq() on suspend, and enabled via enable_irq() after resume, we\nwill record the state transitions caused by powering events as valid\ninterrupts, and foward them to the card driver, which may attempt to\naccess a card which is not powered up.\n\nThis leads delays resume while drivers spin in their interrupt handlers,\nand complaints from drivers before they realize what\u0027s happened.\n\nMoreover, in the case of the \u0027Ready/IRQ\u0027 signal, this is requested and\nfreed by the card driver itself; the PCMCIA core has no idea whether the\ninterrupt is requested, and, therefore, whether a call to disable_irq()\nwould be valid.  (We tried this around 2.4.17 / 2.5.1 kernel era, and\nended up throwing it out because of this problem.)\n\nTherefore, it was decided back in around 2002 to disable the edge\ntriggering instead, resulting in all state transitions on the GPIO being\nignored.  That\u0027s what we actually need the hardware to do.\n\nThe commit above changes this behaviour; it explicitly prevents the \u0027no\ntrigger\u0027 state being selected.\n\nThe reason that request_irq() does not accept the \u0027no trigger\u0027 state is\nfor compatibility with existing drivers which do not provide their desired\ntriggering configuration.  The set_irq_type() function is \u0027new\u0027 and not\nused by non-trigger aware drivers.\n\nTherefore, revert this change, and restore previously working platforms\nback to their former state.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: linux@arm.linux.org.uk\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "737f24bda723fdf89ecaacb99fa2bf5683c32799",
      "tree": "35495fff3e9956679cb5468e74e6814c8e44ee66",
      "parents": [
        "8eedce996556d7d06522cd3a0e6069141c8dffe0",
        "b7c924274c456499264d1cfa3d44063bb11eb5db"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 09:20:08 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 09:20:08 2012 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nConflicts:\n\ttools/perf/builtin-record.c\n\ttools/perf/builtin-top.c\n\ttools/perf/perf.h\n\ttools/perf/util/top.h\n\nMerge reason: resolve these cherry-picking conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b4bc724e82e80478cba5fe9825b62e71ddf78757",
      "tree": "81f2ba0bcbb1ac50837c1c0e5ae8b606e22d47da",
      "parents": [
        "ac5637611150281f398bb7a47e3fcb69a09e7803"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 08 11:57:52 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 11:56:59 2012 +0100"
      },
      "message": "genirq: Handle pending irqs in irq_startup()\n\nAn interrupt might be pending when irq_startup() is called, but the\nstartup code does not invoke the resend logic. In some cases this\nprevents the device from issuing another interrupt which renders the\ndevice non functional.\n\nCall the resend function in irq_startup() to keep things going.\n\nReported-and-tested-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ac5637611150281f398bb7a47e3fcb69a09e7803",
      "tree": "b23a336c4409ad3cf00f211f0c709c8c757d9fd3",
      "parents": [
        "7ada1dd62804ca9ce1cb8666c6e563cd92fa50c1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 07 17:58:03 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 11:56:59 2012 +0100"
      },
      "message": "genirq: Unmask oneshot irqs when thread was not woken\n\nWhen the primary handler of an interrupt which is marked IRQ_ONESHOT\nreturns IRQ_HANDLED or IRQ_NONE, then the interrupt thread is not\nwoken and the unmask logic of the interrupt line is never\ninvoked. This keeps the interrupt masked forever.\n\nThis was not noticed as most IRQ_ONESHOT users wake the thread\nunconditionally (usually because they cannot access the underlying\ndevice from hard interrupt context). Though this behaviour was nowhere\ndocumented and not necessarily intentional. Some drivers can avoid the\nthread wakeup in certain cases and run into the situation where the\ninterrupt line s kept masked.\n\nHandle it gracefully.\n\nReported-and-tested-by: Lothar Wassmann \u003clw@karo-electronics.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f069686e4bdc60a637d210ea3eea25fcdb82df88",
      "tree": "5a8f9fcafb2edaaf785c0b7f22d176b4cc87ea02",
      "parents": [
        "ac483c446b67870444c9eeaf8325d3d2af9b91bc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jan 25 20:18:55 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 03 09:48:19 2012 -0500"
      },
      "message": "tracing/softirq: Move __raise_softirq_irqoff() out of header\n\nThe __raise_softirq_irqoff() contains a tracepoint. As tracepoints in headers\ncan cause issues, and not to mention, bloats the kernel when they are\nin a static inline, it is best to move the function that contains the\ntracepoint out of the header and into softirq.c.\n\nLink: http://lkml.kernel.org/r/20120118120711.GB14863@elte.hu\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "31d9d9b6d83030f748d013e61502fa5477e2ac0e",
      "tree": "503670b94d594c09daa83c047b426e7b5328aa76",
      "parents": [
        "60f96b41f71d2a13d1c0a457b8b77958f77142d1"
      ],
      "author": {
        "name": "Marc Zyngier",
        "email": "marc.zyngier@arm.com",
        "time": "Fri Sep 23 17:03:06 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 03 15:35:26 2011 +0200"
      },
      "message": "genirq: Add support for per-cpu dev_id interrupts\n\nThe ARM GIC interrupt controller offers per CPU interrupts (PPIs),\nwhich are usually used to connect local timers to each core. Each CPU\nhas its own private interface to the GIC, and only sees the PPIs that\nare directly connect to it.\n\nWhile these timers are separate devices and have a separate interrupt\nline to a core, they all use the same IRQ number.\n\nFor these devices, request_irq() is not the right API as it assumes\nthat an IRQ number is visible by a number of CPUs (through the\naffinity setting), but makes it very awkward to express that an IRQ\nnumber can be handled by all CPUs, and yet be a different interrupt\nline on each CPU, requiring a different dev_id cookie to be passed\nback to the handler.\n\nThe *_percpu_irq() functions is designed to overcome these\nlimitations, by providing a per-cpu dev_id vector:\n\nint request_percpu_irq(unsigned int irq, irq_handler_t handler,\n\t\t   const char *devname, void __percpu *percpu_dev_id);\nvoid free_percpu_irq(unsigned int, void __percpu *);\nint setup_percpu_irq(unsigned int irq, struct irqaction *new);\nvoid remove_percpu_irq(unsigned int irq, struct irqaction *act);\nvoid enable_percpu_irq(unsigned int irq);\nvoid disable_percpu_irq(unsigned int irq);\n\nThe API has a number of limitations:\n- no interrupt sharing\n- no threading\n- common handler across all the CPUs\n\nOnce the interrupt is requested using setup_percpu_irq() or\nrequest_percpu_irq(), it must be enabled by each core that wishes its\nlocal interrupt to be delivered.\n\nBased on an initial patch by Thomas Gleixner.\n\nSigned-off-by: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nLink: http://lkml.kernel.org/r/1316793788-14500-2-git-send-email-marc.zyngier@arm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ed585a651681e822089087b426e6ebfb6d3d9873",
      "tree": "d16e78437208dd660e05974506449c5260e479c5",
      "parents": [
        "d0a77454c70d0449a5f87087deb8f0cb15145e90"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Sep 11 13:59:27 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 12 09:38:53 2011 +0200"
      },
      "message": "genirq: Make irq_shutdown() symmetric vs. irq_startup again\n\nIf an irq_chip provides .irq_shutdown(), but neither of .irq_disable() or\n.irq_mask(), free_irq() crashes when jumping to NULL.\nFix this by only trying .irq_disable() and .irq_mask() if there\u0027s no\n.irq_shutdown() provided.\n\nThis revives the symmetry with irq_startup(), which tries .irq_startup(),\n.irq_enable(), and irq_unmask(), and makes it consistent with the comment for\nirq_chip.irq_shutdown() in \u003clinux/irq.h\u003e, which says:\n\n * @irq_shutdown:\tshut down the interrupt (defaults to -\u003edisable if NULL)\n\nThis is also how __free_irq() behaved before the big overhaul, cfr. e.g.\n3b56f0585fd4c02d047dc406668cb40159b2d340 (\"genirq: Remove bogus conditional\"),\nwhere the core interrupt code always overrode .irq_shutdown() to\n.irq_disable() if .irq_shutdown() was NULL.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: linux-m68k@lists.linux-m68k.org\nLink: http://lkml.kernel.org/r/1315742394-16036-2-git-send-email-geert@linux-m68k.org\nCc: stable@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "edf76f8307c350bcb81f0c760118a991b3e62956",
      "tree": "35adb6aa29f61f64f5841b1ccb2e6a50eb250529",
      "parents": [
        "fe12bc2c996d3e492b2920e32ac79f7bbae3e15d"
      ],
      "author": {
        "name": "Jonathan Cameron",
        "email": "jic23@cam.ac.uk",
        "time": "Wed May 18 10:39:04 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 18 14:59:08 2011 +0200"
      },
      "message": "irq: Export functions to allow modular irq drivers\n\nExport handle_simple_irq, irq_modify_status, irq_alloc_descs,\nirq_free_descs and generic_handle_irq to allow their usage in\nmodules. First user is IIO, which wants to be built modular, but needs\nto be able to create irq chips, allocate and configure interrupt\ndescriptors and handle demultiplexing interrupts.\n\n[ tglx: Moved the uninlinig of generic_handle_irq to a separate patch ]\n\nSigned-off-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nLink: http://lkml.kernel.org/r/%3C1305711544-505-1-git-send-email-jic23%40cam.ac.uk%3E\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7f1b1244e159a8490d7fb13667c6cb7e1e75046b",
      "tree": "1d5f5ff0ec14e3ac84d4ec17b0de4d43dacf8118",
      "parents": [
        "770767787c23040dc152e7ae230597ff55b39470"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Apr 07 06:01:44 2011 +0900"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Apr 23 15:56:24 2011 +0200"
      },
      "message": "genirq: Support per-IRQ thread disabling.\n\nThis adds support for disabling threading on a per-IRQ basis via the IRQ\nstatus instead of the IRQ flow, which is necessary for interrupts that\ndon\u0027t follow the natural IRQ flow channels, such as those that are\nvirtually created.\n\nThe new APIs added are simply:\n\n\tirq_set_thread()\n\tirq_set_nothread()\n\nwhich follow the rest of the IRQ status routines.\n\nChained handlers also have IRQ_NOTHREAD set on them automatically, making\nthe lack of threading explicit rather than implicit. Subsequently, the\nnothread flag can be viewed through the standard genirq debugging\nfacilities.\n\n[ tglx: Fixed cleanup fallout ]\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nLink: http://lkml.kernel.org/r/%3C20110406210135.GF18426%40linux-sh.org%3E\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "ac0e0447be3b7a3dd583193b0230bfe3ddef0442",
      "tree": "215ed76c15b6d95f7444fc845635253628dc33ba",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Wed Mar 30 10:55:12 2011 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 29 17:04:39 2011 -0700"
      },
      "message": "genirq: fix CONFIG_IRQ_EDGE_EOI_HANDLER build\n\nFixes these errors:\n\n  kernel/irq/chip.c: In function \u0027handle_edge_eoi_irq\u0027:\n  kernel/irq/chip.c:517: warning: label \u0027out_unlock\u0027 defined but not used\n  kernel/irq/chip.c:503: error: label \u0027out_eoi\u0027 used but not defined\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c6f8a8b917ad361319c8ace3e9f28e69bfdb4c1",
      "tree": "b4b0cb4b619368bc93ff883f4b667e05a185549b",
      "parents": [
        "dced35aeb0367dda2636ee9ee914bda14510dcc9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 13:32:20 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 29 14:48:19 2011 +0200"
      },
      "message": "genirq: Remove compat code\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "0ef5ca1e1f0de71300142b8f730f26ded6a0c2f3",
      "tree": "f8eb0e5e63b7d3115c27f110e59a762fd871d693",
      "parents": [
        "a6aeddd1c4e464a2150f97ca2d1c3d68cfbd9296"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 21:59:37 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 29 01:41:22 2011 +0200"
      },
      "message": "genirq; Fix cleanup fallout\n\nI missed the CONFIG_GENERIC_PENDING_IRQ dependency in the affinity\nrelated functions and the IRQ_LEVEL propagation into irq_data\nstate. Did not pop up on my main test platforms. :(\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: David Daney \u003cddaney@caviumnetworks.com\u003e\n"
    },
    {
      "commit": "0521c8fbb3da45c2a58cd551ca6e9644983f6028",
      "tree": "d2ed3452a75f1d3ff516cd02c86f4371db81e06e",
      "parents": [
        "32f4125ebffee4f3c4dbc6a437fc656129eb9e60"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 16:13:24 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 16:55:11 2011 +0200"
      },
      "message": "genirq: Provide edge_eoi flow handler\n\nThis is a replacment for the cell flow handler which is in the way of\ncleanups. Must be selected to avoid general bloat.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "32f4125ebffee4f3c4dbc6a437fc656129eb9e60",
      "tree": "d64c6bb7ba40c33734896303734416ea5b4f3290",
      "parents": [
        "c2d0c555c22242c3a76e366074c4d83ef9fa3b8c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 14:10:52 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 16:55:10 2011 +0200"
      },
      "message": "genirq: Move INPROGRESS, MASKED and DISABLED state flags to irq_data\n\nWe really need these flags for some of the interrupt chips. Move it\nfrom internal state to irq_data and provide proper accessors.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: David Daney \u003cddaney@caviumnetworks.com\u003e\n"
    },
    {
      "commit": "b3d422329f2e061d66af4f933ef316e50e5edcac",
      "tree": "530100dd1733e24a017f4b3df4959c667369d236",
      "parents": [
        "0fdb4b259ed3e91b687ac26848202f5e7c217e62"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 27 16:05:36 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 27 17:45:58 2011 +0200"
      },
      "message": "genirq: Add chip flag for restricting cpu_on/offline calls\n\nAdd a flag which indicates that the on/offline callback should only be\ncalled on enabled interrupts.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "0fdb4b259ed3e91b687ac26848202f5e7c217e62",
      "tree": "52503c0c5c35f95ab88a9867fc46c43fc7d9c200",
      "parents": [
        "801a0e9ae36e9b487092e31699d28c0b9a21ad52"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Fri Mar 25 12:38:49 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 27 17:45:58 2011 +0200"
      },
      "message": "genirq: Add chip hooks for taking CPUs on/off line.\n\n[ tglx: Removed the enabled argument as this is now available in\nirq_data ]\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: linux-mips@linux-mips.org\nCc: ralf@linux-mips.org\nLKML-Reference: \u003c1301081931-11240-3-git-send-email-ddaney@caviumnetworks.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "801a0e9ae36e9b487092e31699d28c0b9a21ad52",
      "tree": "c448d150797272b09417f5410e7570742e59368b",
      "parents": [
        "d72274e5895d11570a0a4a3214a1933c86d5ccb7"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 27 11:02:49 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 27 17:45:58 2011 +0200"
      },
      "message": "genirq: Add irq disabled flag to irq_data state\n\nSome irq_chip implementation require to know the disabled state of the\ninterrupt in certain callbacks. Add a state flag and accessor to\nirq_data.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d72274e5895d11570a0a4a3214a1933c86d5ccb7",
      "tree": "3925786563e67241cc5798ebbbcf79c0ce738f69",
      "parents": [
        "16c29dafcc86024048f1dbb8349d31cb22c7c55a"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Fri Mar 25 12:38:48 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 27 17:45:58 2011 +0200"
      },
      "message": "genirq: Reserve the irq when calling irq_set_chip()\n\nThe helper macros and functions like for_each_active_irq() don\u0027t work\nunless the irq is in the allocated_irqs set.\n\nIn the case of !CONFIG_SPARSE_IRQ, instead of forcing all users of the\nirq infrastructure to explicitly call irq_reserve_irq(), do it for\nthem.\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: linux-mips@linux-mips.org\nCc: ralf@linux-mips.org\nLKML-Reference: \u003c1301081931-11240-2-git-send-email-ddaney@caviumnetworks.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c69e3758ff56d03e161187355791ec992c574276",
      "tree": "d423ff265f61d84d43c29b7e72c428ea2a3f68bc",
      "parents": [
        "8d32a307e4faa8b123dc8a9cd56d1a7525f69ad3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 02 11:49:21 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 02 11:49:21 2011 +0100"
      },
      "message": "genirq: Fixup fasteoi handler for oneshot mode\n\nThe fasteoi handler must mask the interrupt line in oneshot mode\notherwise we end up with an irq storm.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a61d825808a0ce9935afebc225dcd602d5339e14",
      "tree": "136d068ca3a58c9d6d3d28786a246c1204452c8c",
      "parents": [
        "a439520f8b18917b322f576be04c54aba84bb044"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 21 12:54:34 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 21 21:19:59 2011 +0100"
      },
      "message": "genirq: Fix misplaced status update in irq_disable()\n\nWe lazy disable interrupt lines, so only mark the line masked, when\nthe chip provides an irq_disable callback.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "77694b408abb8f92195ad5ed6ce5492f1d794c77",
      "tree": "a0f7e81a0a155523f69146cd560cc2f49543a99e",
      "parents": [
        "781295762defc709a609efc01d8bb065276cd9a2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 15 10:33:57 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:24 2011 +0100"
      },
      "message": "genirq; Add fasteoi irq_chip quirk\n\nSome chips want irq_eoi() only called when an interrupt is actually\nhandled. So they have checks for INPROGRESS and DISABLED in their\nirq_eoi callbacks. Add a chip flag, which allows to handle that in the\ngeneric code. No impact on the fastpath.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "781295762defc709a609efc01d8bb065276cd9a2",
      "tree": "21f035b5f92571c8c3559b5e94eb0e1aa4113a36",
      "parents": [
        "3836ca08aad4575c120ccf328652f3873eea9063"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 15:14:20 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:24 2011 +0100"
      },
      "message": "genirq: Add preflow handler support\n\nsparc64 needs to call a preflow handler on certain interrupts befor\ncalling the action chain. Integrate it into handle_fasteoi_irq. Must\nbe enabled via CONFIG_IRQ_FASTEOI_PREFLOW. No impact when disabled.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3836ca08aad4575c120ccf328652f3873eea9063",
      "tree": "d5aa92880d2a44836cb7f3decdae761d0a780068",
      "parents": [
        "02725e7471b8dd58fa96f6604bdb5dde45405a2e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 14 20:09:19 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:23 2011 +0100"
      },
      "message": "genirq: Consolidate set_chip_handler functions\n\nNo need to have separate functions if we have one plus inline wrappers.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "02725e7471b8dd58fa96f6604bdb5dde45405a2e",
      "tree": "7c5243d0a2e33f2165d1531febbe9752fad389c7",
      "parents": [
        "d5eb4ad2dfb2dfae43fd51bc8630b4fc3ef00e92"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 12 10:37:36 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:23 2011 +0100"
      },
      "message": "genirq: Use irq_get/put functions\n\nConvert the management functions to use the common irq_get/put\nfunction.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "091738a266fc74329ae186f22ff2b3f01319112d",
      "tree": "75190438b74ad345753a2a8c239724995cee40ea",
      "parents": [
        "a6967caf00ebbb2d4acdebcb72a25f2e9ba43fd2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 14 20:16:43 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:23 2011 +0100"
      },
      "message": "genirq: Remove real old transition functions\n\nThese transition helpers are stale for years now. Remove them.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e1ef824146131709d7466e37f889f2dab24ca98e",
      "tree": "d66f8423fce8e4d04aa509e1cbbaea2fb99a812c",
      "parents": [
        "7f94226f03299f1ca32f118f02f2a0295e0e5e93"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 22:25:31 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:22 2011 +0100"
      },
      "message": "genirq: Reflect IRQ_MOVE_PCNTXT in irq_data state\n\nRequired by x86.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d4d5e08960844a062da8387ee5f16ca7a33200d0",
      "tree": "1154fd87e25595ae9391740a1d9a3d60f69770de",
      "parents": [
        "2bff17ad2107c66fc8ca96501a7128dd7fa7a390"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 13:16:14 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:22 2011 +0100"
      },
      "message": "genirq: Add IRQCHIP_SET_TYPE_MASKED flag\n\nirq_chips, which require to mask the chip before changing the trigger\ntype should set this flag. So the core takes care of it and the\nrequirement for looking into desc-\u003estatus in the chip goes away.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\n"
    },
    {
      "commit": "1ccb4e612f68ceefb888c2c6c1def6294ea8666d",
      "tree": "f3cae56489a56ebc54e06871abdf63193dc5a4bb",
      "parents": [
        "876dbd4cc1b35c1a4cb96a2be1d43ea0eabce3b4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 09 14:44:17 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:21 2011 +0100"
      },
      "message": "genirq: Wrap the remaning IRQ_* flags\n\nUse wrappers to keep them away from the core code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "876dbd4cc1b35c1a4cb96a2be1d43ea0eabce3b4",
      "tree": "9be1e7e4cd4a4c9fadd98a9ac637020417215521",
      "parents": [
        "2bdd10558c8d93009cb6c32ce9e30800fbb08add"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 17:28:12 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:20 2011 +0100"
      },
      "message": "genirq: Mirror irq trigger type bits in irq_data.state\n\nThat\u0027s the data structure chip functions get provided. Also allow them\nto signal the core code that they updated the flags in irq_data.state\nby returning IRQ_SET_MASK_OK_NOCOPY. The default is unchanged.\n\nThe type bits should be accessed via:\n\nval \u003d irqd_get_trigger_type(irqdata);\nand\nirqd_set_trigger_type(irqdata, val);\n\nCoders who access them directly will be tracked down and slapped with\nstinking trouts.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a005677b3dd05decdd8880cf3044ae709856f58f",
      "tree": "529d1454940fe8c6723bd54f01e009d9be2ab840",
      "parents": [
        "1ce6068dac1924f7095be5850481e790cbf1b3c1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 17:11:03 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:20 2011 +0100"
      },
      "message": "genirq: Mirror IRQ_PER_CPU and IRQ_NO_BALANCING in irq_data.state\n\nThat\u0027s the right data structure to look at for arch code.\n\nAccessor functions are provided.\n\n\t irqd_is_per_cpu(irqdata);\n\t irqd_can_balance(irqdata);\n\nCoders who access them directly will be tracked down and slapped with\nstinking trouts.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6e40262ea43c4b0e3f435b3a083e4461ef921c17",
      "tree": "4548c1607f81701b77c0d63b544096cdee8ccde0",
      "parents": [
        "2a0d6fb335d4428285dab2d254911748e6040807"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 12:36:06 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:17 2011 +0100"
      },
      "message": "genirq: Move IRQ_MASKED to core\n\nKeep status in sync until all users are fixed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2a0d6fb335d4428285dab2d254911748e6040807",
      "tree": "16090086899df6886436b89cc76e6d0d5b36d083",
      "parents": [
        "c1594b77e46124bb462f961e536120e471c67446"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 12:17:57 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:17 2011 +0100"
      },
      "message": "genirq: Move IRQ_PENDING flag to core\n\nKeep status in sync until all users are fixed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c1594b77e46124bb462f961e536120e471c67446",
      "tree": "3f52ad5809125ab5be6db1fd4b1212fe6127df66",
      "parents": [
        "163ef3091195f514a06f064b12914597d2644c55"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 22:11:30 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:17 2011 +0100"
      },
      "message": "genirq: Move IRQ_DISABLED to core\n\nKeep status in sync until all abusers are fixed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "163ef3091195f514a06f064b12914597d2644c55",
      "tree": "a6e222b1a7366aa93c884257063aa36ef17cf91f",
      "parents": [
        "3d67baec7f1b01fc289ac1a2f1a7e6d5e43391c6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 11:39:15 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:16 2011 +0100"
      },
      "message": "genirq: Move IRQ_REPLAY and IRQ_WAITING to core\n\nNo users outside of core.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3d67baec7f1b01fc289ac1a2f1a7e6d5e43391c6",
      "tree": "f496998278faa653174e185924acb0c74ac2e1b2",
      "parents": [
        "009b4c3b8ad584b3462734127a5bec680d5d6af4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 21:02:10 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:16 2011 +0100"
      },
      "message": "genirq: Move IRQ_ONESHOT to core\n\nNo users outside of core.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "009b4c3b8ad584b3462734127a5bec680d5d6af4",
      "tree": "f7cb860dde86ba96afcc085ec7a75ca2a41e49b6",
      "parents": [
        "6954b75b488dd740950573f244ddd66fd28620aa"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 21:48:49 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:16 2011 +0100"
      },
      "message": "genirq: Add IRQ_INPROGRESS to core\n\nWe need to maintain the flag for now in both fields status and istate.\nAdd a CONFIG_GENERIC_HARDIRQS_NO_COMPAT switch to allow testing w/o\nthe status one. Wrap the access to status IRQ_INPROGRESS in a inline\nwhich can be turned of with CONFIG_GENERIC_HARDIRQS_NO_COMPAT along\nwith the define.\n\nThere is no reason that anything outside of core looks at this. That\nneeds some modifications, but we\u0027ll get there.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6954b75b488dd740950573f244ddd66fd28620aa",
      "tree": "66a423d8d09c19d428e3e73373944a826f31f38e",
      "parents": [
        "6f91a52d9bb28396177662f1da0f2e2cef9cf5d0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 20:55:35 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:15 2011 +0100"
      },
      "message": "genirq: Move IRQ_POLL_INPROGRESS to core\n\nNo users outside of core.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6f91a52d9bb28396177662f1da0f2e2cef9cf5d0",
      "tree": "0be983e2d1c1a622716cff61354f02e85ef3352e",
      "parents": [
        "7acdd53e5b2c55b6f7e3427e85e2f91fa814a4f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 14 13:33:16 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:15 2011 +0100"
      },
      "message": "genirq: Use modify_status for set_irq_nested_thread\n\nNo need for a separate function in the core code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "35e857cbeb24e75c6f9a9312ac30454eee8c5950",
      "tree": "3f420843de7a59adf6a9f501980e00b45d8a7e61",
      "parents": [
        "c78b9b65faa291def628dbd8539649f58299f0f3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 12:20:23 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:13 2011 +0100"
      },
      "message": "genirq: Fixup core code namespace fallout\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "849f061c25f8951d11c7dd88f44950ccde296392",
      "tree": "b04284d1031f5ba4dd14b81b050ea8c662b2ec42",
      "parents": [
        "a60a5dc2db3b08b3c2900614c43b1262410c2d8c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 01:25:41 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:12 2011 +0100"
      },
      "message": "genirq: Use handle_perpcu_event() in handle_percpu_irq()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a60a5dc2db3b08b3c2900614c43b1262410c2d8c",
      "tree": "74fc245bc6ddc7c134daa29bab83e43dd8258611",
      "parents": [
        "a7ae4de5c8ae8110556f0f9c7241093ef984605c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 01:24:07 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:12 2011 +0100"
      },
      "message": "genirq: Use handle_irq_event() in handle_edge_irq()\n\nIt\u0027s safe to drop the IRQ_INPROGRESS flag between action chain walks\nas we are protected by desc-\u003elock.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a7ae4de5c8ae8110556f0f9c7241093ef984605c",
      "tree": "091189ede3ce3f56c0ba460a038010174c0ee03e",
      "parents": [
        "1529866c63d789925de9b4250646d82d033e4b95"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 01:23:07 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:12 2011 +0100"
      },
      "message": "genirq: Use handle_irq_event() in handle_fasteoi_irq()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1529866c63d789925de9b4250646d82d033e4b95",
      "tree": "3f5373e5729b7a7d24da7c294f908bca3f743ad2",
      "parents": [
        "107781e72192067b95a7d373bfa460434a13c6ae"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 01:22:17 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:12 2011 +0100"
      },
      "message": "genirq: Use handle_irq_event() in handle_level_irq()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "107781e72192067b95a7d373bfa460434a13c6ae",
      "tree": "e451b9dbf1c1cc40bf86a1a87847a4f17c9c47c3",
      "parents": [
        "4912609f228da4a3d2bfbdf0f31de3d9eab2b7f8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 01:21:02 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:11 2011 +0100"
      },
      "message": "genirq: Use handle_irq_event() in handle_simple_irq()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d78f8dd36b90626106ce19cb2e6828b0dc39447e",
      "tree": "bf142bff631dda1f129dccd08cf162acac6df07c",
      "parents": [
        "3aae994fb0f43f6d94a31c33536a83869504abdf"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 21:41:17 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:11 2011 +0100"
      },
      "message": "genirq: Do not fiddle with IRQ_MASKED in handle_edge_irq()\n\nIRQ_MASKED is set in mask_ack_irq() anyway. Remove it from\nhandle_edge_irq() to allow simpler ab^HHreuse of that function.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20110202212551.918484270@linutronix.de\u003e\n"
    },
    {
      "commit": "3aae994fb0f43f6d94a31c33536a83869504abdf",
      "tree": "f928d2067cecfbb89c1133a8b513f84c890f7e9d",
      "parents": [
        "50f7c0327513d5acefbe26fd33498af18d1ffac5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 04 10:17:52 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:11 2011 +0100"
      },
      "message": "genirq: Consolidate IRQ_DISABLED\n\nHandle IRQ_DISABLED consistent.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "50f7c0327513d5acefbe26fd33498af18d1ffac5",
      "tree": "cab9352b720cccbe0b230b97b26b2bc40ca0405b",
      "parents": [
        "87923470c712dff00b101ffb6b6fbc27bd7a6df5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 03 13:23:54 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:10 2011 +0100"
      },
      "message": "genirq: Remove default magic\n\nNow that everything uses the wrappers, we can remove the default\nfunctions. None of those functions is performance critical.\n\nThat makes the IRQ_MASKED flag tracking fully consistent.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "87923470c712dff00b101ffb6b6fbc27bd7a6df5",
      "tree": "35dc1a0adec4d00bbc872ce096c481cf0d69314a",
      "parents": [
        "4699923861513671d3f6ade8efb4e56a9a7ecadf"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 03 12:27:44 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:10 2011 +0100"
      },
      "message": "genirq: Consolidate disable/enable\n\nCreate irq_disable/enable and use them to keep the flags consistent.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4699923861513671d3f6ade8efb4e56a9a7ecadf",
      "tree": "862cda99b9af6fe96fda955107f24a7b5cc97a18",
      "parents": [
        "3b56f0585fd4c02d047dc406668cb40159b2d340"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 21:41:14 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:10 2011 +0100"
      },
      "message": "genirq: Consolidate startup/shutdown of interrupts\n\nAside of duplicated code some of the startup/shutdown sites do not\nhandle the MASKED/DISABLED flags and the depth field at all. Move that\nto a helper function and take care of it there.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20110202212551.787481468@linutronix.de\u003e\n"
    },
    {
      "commit": "fe200ae48ef5c79bf7941fe8046ff9505c570ff6",
      "tree": "767d2cf011437a266a655ce2ec39360cb85f7f28",
      "parents": [
        "d05c65fff0ef672be75429266751f0e015b54d94"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 10:34:30 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:09 2011 +0100"
      },
      "message": "genirq: Mark polled irqs and defer the real handler\n\nWith the chip.end() function gone we might run into a situation where\na poll call runs and the real interrupt comes in, sees IRQ_INPROGRESS\nand disables the line. That might be a perfect working one, which will\nthen be masked forever.\n\nSo mark them polled while the poll runs. When the real handler sees\nIRQ_INPROGRESS it checks the poll flag and waits for the polling to\ncomplete. Add the necessary amount of sanity checks to it to avoid\ndeadlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a0cd9ca2b907d7ee26575e7b63ac92dad768a75e",
      "tree": "4b46f7951b9cd76531caf6d4d68d687e1b622336",
      "parents": [
        "43abe43ce0619d744c7a5bb15cce075e532b53b7"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 11:36:33 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:06 2011 +0100"
      },
      "message": "genirq: Namespace cleanup\n\nThe irq namespace has become quite convoluted. My bad.  Clean it up\nand deprecate the old functions. All new functions follow the scheme:\n\nirq number based:\n    irq_set/get/xxx/_xxx(unsigned int irq, ...)\n\nirq_data based:\n\t irq_data_set/get/xxx/_xxx(struct irq_data *d, ....)\n\nirq_desc based:\n\t irq_desc_get_xxx(struct irq_desc *desc)\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "43abe43ce0619d744c7a5bb15cce075e532b53b7",
      "tree": "f915103a0d1d671d2f537c7852869b7ca4a0078b",
      "parents": [
        "e7bcecb7b1d29b9ad5af939149a945658620ca8f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 12 12:10:49 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:06 2011 +0100"
      },
      "message": "genirq: Add missing buslock to set_irq_type(), set_irq_wake()\n\nchips behind a slow bus cannot update the chip under desc-\u003elock, but\nwe miss the chip_buslock/chip_bus_sync_unlock() calls around the set\ntype and set wake functions.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b7b29338dc7111ed8bd4d6555d84afae13ebe752",
      "tree": "4c3159ea8bb0489ba463a061d3e6446dbfb45af2",
      "parents": [
        "b7d0d8258a9f71949b810e0f82a3d75088f4d364"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 29 18:46:55 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:53:44 2010 +0200"
      },
      "message": "genirq: Sanitize dynamic irq handling\n\nUse the cleanup functions of the dynamic allocator. No need to have\nseparate implementations.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1318a481fc37c503a901b96ae06b692ca2b21af5",
      "tree": "2b1bb8f52af5938759af38efdfa8a868b02d5804",
      "parents": [
        "d895f51ebb54cefe367bda135fcf2cd734d51d03"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 21:01:37 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:06 2010 +0200"
      },
      "message": "genirq: Provide default irq init flags\n\nArch code sets it\u0027s own irq_desc.status flags right after boot and for\ndynamically allocated interrupts. That might involve iterating over a\nhuge array.\n\nAllow ARCH_IRQ_INIT_FLAGS to set separate flags aside of IRQ_DISABLED\nwhich is the default.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f303a6dd127b5ec6de90d1cd79ed19820c7e9658",
      "tree": "8060ccc63ab56406e6a9535b21cca29f17956052",
      "parents": [
        "442471848f5abb55b99cba1229301655f67492b4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 28 17:34:01 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:05 2010 +0200"
      },
      "message": "genirq: Sanitize irq_data accessors\n\nGet the data structure from the core and provide inline wrappers to\naccess the irq_data members.\n\nProvide accessor inlines for irq_data as well.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "442471848f5abb55b99cba1229301655f67492b4",
      "tree": "4265a98a62db515d2b0a63d95a7c7e5badb1dbc0",
      "parents": [
        "3a3856d00c74560a7b8d9f8a13c1ca94ee786b78"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 28 10:40:18 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:05 2010 +0200"
      },
      "message": "genirq: Provide status modifier\n\nProvide a irq_desc.status modifier function to cleanup the direct\naccess to irq_desc in arch and driver code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n"
    },
    {
      "commit": "bd151412263a67b5321e9dd1d5b4bf6d96fdebf3",
      "tree": "7571b3eaf7ebc2ef200fb00688543f00a451c5f9",
      "parents": [
        "21e2b8c62cca8f7dbec0c8c131ca1637e4a5670f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Oct 01 15:17:14 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 13:40:24 2010 +0200"
      },
      "message": "genirq: Provide config option to disable deprecated code\n\nThis option covers now the old chip functions and the irq_desc data\nfields which are moving to struct irq_data. More stuff will follow.\n\nPretty handy for testing a conversion, whether something broke or not.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21e2b8c62cca8f7dbec0c8c131ca1637e4a5670f",
      "tree": "8810be220dc49cf78c055ba960b1083cd1459a21",
      "parents": [
        "2f7e99bb9be6a2d8d7b808dc86037710cc8b7bf1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:45:53 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:50 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eretrigger()\n\nWrap the old chip function retrigger() until the migration is complete\nand the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121843.025801092@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2f7e99bb9be6a2d8d7b808dc86037710cc8b7bf1",
      "tree": "c620f5e8eb1a160bebb73a330fecd95a430977ed",
      "parents": [
        "b2ba2c30033c10cca2454f8b44bf98f5249e61c6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:45:50 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:48 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eset_wake()\n\nWrap the old chip function set_wake() until the migration is complete\nand the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.927527393@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b2ba2c30033c10cca2454f8b44bf98f5249e61c6",
      "tree": "a168cbcd1314f76edccecd5984d75793773b5239",
      "parents": [
        "c96b3b3c448592a0b87ef20306deb8b1fb4878c7"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:45:47 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:47 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eset_type()\n\nWrap the old chip function set_type() until the migration is complete\nand the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.832261548@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c96b3b3c448592a0b87ef20306deb8b1fb4878c7",
      "tree": "744c6879a585b9ab07ed51315930f8a673c09aed",
      "parents": [
        "37e12df709f09eac17314d79a52190ac46746e33"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:45:41 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:46 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eset_affinity()\n\nWrap the old chip function set_affinity() until the migration is\ncomplete and the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.732894108@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37e12df709f09eac17314d79a52190ac46746e33",
      "tree": "78159578101faddef22c5b13ccc200542cb3d2b6",
      "parents": [
        "bc310dda41be6439364c8f3b9fe7c9d743d22b1c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:45:38 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:44 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003estartup()\n\nWrap the old chip function startup() until the migration is complete and\nthe old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.635152961@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bc310dda41be6439364c8f3b9fe7c9d743d22b1c",
      "tree": "86a8b4da3d9e81aad104b61023858813454b0f35",
      "parents": [
        "c5f756344c390f629243b4a28c2bd198fdfd7ee9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:45:02 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:43 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003edisable()/shutdown()\n\nWrap the old chip functions disable() and shutdown() until the\nmigration is complete and the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.532070631@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5f756344c390f629243b4a28c2bd198fdfd7ee9",
      "tree": "9bd1ce01615c9e29ccf970a6478d5eb75fe1ddde",
      "parents": [
        "0c5c15572ac096001f52d37b416f2a4be9aebb80"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:56 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:42 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eenable()\n\nWrap the old chip function enable() until the migration is complete and\nthe old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.437159182@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0c5c15572ac096001f52d37b416f2a4be9aebb80",
      "tree": "54c2559cac7e6ee71e31d6b41a1980a392f202b3",
      "parents": [
        "9205e31d1af0f725e71bbae10d199c6b9e8d6dd8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:53 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:41 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eeoi()\n\nWrap the old chip function eoi() until the migration is complete and\nthe old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.339657617@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9205e31d1af0f725e71bbae10d199c6b9e8d6dd8",
      "tree": "9ed35cf7a968ed94395ade073880c7b951f5aa92",
      "parents": [
        "22a49163e90dd7088f801dd54e25b04e1f337e9b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:50 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:40 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003emask_ack()\n\nWrap the old chip function mask_ack() until the migration is complete\nand the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.240806983@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22a49163e90dd7088f801dd54e25b04e1f337e9b",
      "tree": "4b1e13b29959be2a03ae6892b469f1f11bb08823",
      "parents": [
        "0eda58b7f3a30c9a13d83db1cfaab00e1c452055"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:47 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:38 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eack()\n\nWrap the old chip function ack() until the migration is complete and\nthe old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.142624725@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0eda58b7f3a30c9a13d83db1cfaab00e1c452055",
      "tree": "6e6efb689188f20271d8dd290008652d3c3defd8",
      "parents": [
        "e2c0f8ff0fc26959952fbfa89f732fef928df77f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:44 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:37 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003eunmask()\n\nWrap the old chip function unmask() until the migration is complete\nand the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121842.043608928@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2c0f8ff0fc26959952fbfa89f732fef928df77f",
      "tree": "3a85e05d69b4c48c86bcd3b032d8f6e239a3c126",
      "parents": [
        "3876ec9ef3775d062345b3760d3271ecb8cd3fea"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:42 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:36 2010 +0200"
      },
      "message": "genirq: Provide compat handling for chip-\u003emask()\n\nWrap the old chip function mask() until the migration is complete and\nthe old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121841.940355859@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3876ec9ef3775d062345b3760d3271ecb8cd3fea",
      "tree": "6c1cd233753fe09d48bdf107da34b4dbe4e003fc",
      "parents": [
        "a77c4635915021c646cc017f22239e66d1aab4d5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:35 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:35 2010 +0200"
      },
      "message": "genirq: Provide compat handling for bus_lock/bus_sync_unlock\n\nWrap the old chip functions for bus_lock/bus_sync_unlock until the\nmigration is complete and the old chip functions are removed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121841.842536121@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6b8ff3120c758340505dddf08ad685ebb841d5d5",
      "tree": "794eed27c6f9a8931b8fdf4a7ae60a1560b237fc",
      "parents": [
        "ff7dcd44dd446db2c3e13bdedf2d52b8e0127f16"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Oct 01 12:58:38 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:36:26 2010 +0200"
      },
      "message": "genirq: Convert core code to irq_data\n\nConvert all references in the core code to orq, chip, handler_data,\nchip_data, msi_desc, affinity to irq_data.*\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d1ea13c6e2cce0106531852daaa93dd97aec9580",
      "tree": "9a49b1029af4e63e08267d2b4d6e2f66396be0aa",
      "parents": [
        "a800c7cc5380fbb6b4f2f3bd89f6776eb3da2242"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 23 18:40:07 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 23 19:12:26 2010 +0200"
      },
      "message": "genirq: Cleanup irq_chip-\u003etypename leftovers\n\n3 years transition phase is enough. Cleanup the last users and remove\nthe cruft.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "249d51b53aea1b7cdb1be65a1a9a0c59d9e06f3e",
      "tree": "7fc06930e46ee13d394f5b031166c40206af3189",
      "parents": [
        "44581a28e805a31661469c4b466b9cd14b36e7b6",
        "8e4921515c1a379539607eb443d51c30f4f7f338"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 14:58:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 14:58:11 2009 +0100"
      },
      "message": "Merge commit \u0027v2.6.29-rc4\u0027 into core/percpu\n\nConflicts:\n\tarch/x86/mach-voyager/voyager_smp.c\n\tarch/x86/mm/fault.c\n"
    },
    {
      "commit": "0f3c2a89c1451cdf6328f99977bd9decd4f708e1",
      "tree": "5f06396e409410e5d506f72fe6abebc376a5e689",
      "parents": [
        "4d87c5bec5389625d80b71108795aecf82cd670d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Sun Feb 08 16:18:03 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 08:55:08 2009 +0100"
      },
      "message": "irq: clear kstat_irqs\n\nImpact: get correct kstat_irqs [/proc/interrupts] for msi/msi-x etc\n\nneed to call clear_kstat_irqs(), so when we reuse that irq_desc,\nwe get correct kstat in /proc/interrupts.\n\nThis makes /proc/interrupts not have \u003cNULL\u003e entries.\n\nDon\u0027t need to worry about arch that doesn\u0027t support genirq, because they\nwill not call dynamic_irq_cleanup().\n\nv2: simplify and make clear_kstat_irqs more robust\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a2dd72abdae75ea2960145e0549635ce4e0be96",
      "tree": "44dba0119c75679a17215200f92ab23bdde9efc2",
      "parents": [
        "efdc64f0c792ea744bcc9203f35b908e66d42f41",
        "7cb36b6ccdca03bd87e8faca7fd920643dd1aec7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 16 17:46:22 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 16 17:46:22 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/genirq\n"
    }
  ],
  "next": "14819ea1e0bcbdc9b084cd60a6a24d5d786324ef"
}
