)]}'
{
  "log": [
    {
      "commit": "659fb32d1b67476f4ade25e9ea0e2642a5b9c4b5",
      "tree": "a875904f1c457f321563060491956266a57c6514",
      "parents": [
        "d30e1521b2afb5e6f21ca8bc1a4b6ec2afc93597"
      ],
      "author": {
        "name": "Simon Guinot",
        "email": "sguinot@lacie.com",
        "time": "Wed Jul 06 12:41:31 2011 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 07 16:02:26 2011 +0000"
      },
      "message": "genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n\nThis fixes a regression introduced by e59347a \"arm: orion:\nUse generic irq chip\".\n\nDepending on the device, interrupts acknowledgement is done by setting\nor by clearing a dedicated register. Replace irq_gc_ack() with some\n{set,clr}_bit variants allows to handle both cases.\n\nNote that this patch affects the following SoCs: Davinci, Samsung and\nOrion. Except for this last, the change is minor: irq_gc_ack() is just\nrenamed into irq_gc_ack_set_bit().\n\nFor the Orion SoCs, the edge GPIO interrupts support is currently\nbroken. irq_gc_ack() try to acknowledge a such interrupt by setting\nthe corresponding cause register bit. The Orion GPIO device expect the\nopposite. To fix this issue, the irq_gc_ack_clr_bit() variant is used.\n\nTested on Network Space v2.\n\nReported-by: Joey Oravec \u003cjoravec@drewtech.com\u003e\nSigned-off-by: Simon Guinot \u003csguinot@lacie.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "cfefd21e693dca791bf9ecfc9dd3794facad533c",
      "tree": "20915250e5c9749eea148cab17534b70c094386f",
      "parents": [
        "7d8280624797bbe2f5170bd3c85c75a8c9c74242"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Apr 15 22:36:08 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Apr 23 15:56:24 2011 +0200"
      },
      "message": "genirq: Add chip suspend and resume callbacks\n\nThese callbacks are only called in the syscore suspend/resume code on\ninterrupt chips which have been registered via the generic irq chip\nmechanism. Calling those callbacks per irq would be rather icky, but\nwith the generic irq chip mechanism we can call this per registered\nchip.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: linux-arm-kernel@lists.infradead.org\n"
    },
    {
      "commit": "7d8280624797bbe2f5170bd3c85c75a8c9c74242",
      "tree": "8028581a9a51eeb3c168409b5645c68b7a32e7dd",
      "parents": [
        "7f1b1244e159a8490d7fb13667c6cb7e1e75046b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Apr 03 11:42:53 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Apr 23 15:56:24 2011 +0200"
      },
      "message": "genirq: Implement a generic interrupt chip\n\nImplement a generic interrupt chip, which is configurable and is able\nto handle the most common irq chip implementations.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: linux-arm-kernel@lists.infradead.org\nTested-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nTested-by: Tony Lindgren \u003ctony@atomide.com\u003e\nTested-by; Kevin Hilman \u003ckhilman@ti.com\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": "0911f124bf55357803d53197cc1ae5479f5e37e2",
      "tree": "1c12a540ebc2527c14872183a51c2ddf2c5c3ae9",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Apr 10 11:01:51 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Apr 23 15:56:23 2011 +0200"
      },
      "message": "genirq: Forgotten updates/deletions after removal of compat code\n\ncommit 0c6f8a8b917ad361319c8ace3e9f28e69bfdb4c1 (\"genirq: Remove compat code\")\nremoved the compat code, but forgot to update some references in comments and\ndelete some of its documentation.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nLink: http://lkml.kernel.org/r/%3C1302426113-13808-1-git-send-email-geert%40linux-m68k.org%3E\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "28959f268f910b2cd1c25e838b63c342062e28f2",
      "tree": "d1771510d76f7f6b5bae15a2e9dacc0bd6517600",
      "parents": [
        "380a26be7d5af83f3831c3b6697031dffbb1c8f3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 30 00:37:41 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 30 00:37:41 2011 +0200"
      },
      "message": "genirq: Remove obsolete comment\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "851d7cf647e0d31668eb5dc496f7698a2f6136b4",
      "tree": "15a292814827ef43cbfa6d28e41c7058bf71ebf7",
      "parents": [
        "0c6f8a8b917ad361319c8ace3e9f28e69bfdb4c1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 29 02:51:13 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 29 14:50:32 2011 +0200"
      },
      "message": "genirq: Remove move_*irq leftovers\n\nAll users converted to new interface.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "30398bf6c684a77274dbdabf7efc1f24e4a99028",
      "tree": "d4ee5d514a53fbb8186bdbc726a525bb488c7dcf",
      "parents": [
        "ee38c04b58983a236b43bae71b2415d38bceaf75"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Mar 18 09:33:56 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 20:13:57 2011 +0200"
      },
      "message": "genirq: Fix new kernel-doc warnings\n\nFix new irq-related kernel-doc warnings in 2.6.38:\n\nWarning(kernel/irq/manage.c:149): No description found for parameter \u0027mask\u0027\nWarning(kernel/irq/manage.c:149): Excess function parameter \u0027cpumask\u0027 description in \u0027irq_set_affinity\u0027\nWarning(include/linux/irq.h:161): No description found for parameter \u0027state_use_accessors\u0027\nWarning(include/linux/irq.h:161): Excess struct/union/enum/typedef member \u0027state_use_accessor\u0027 description in \u0027irq_data\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nLKML-Reference: \u003c20110318093356.b939558d.randy.dunlap@oracle.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ee38c04b58983a236b43bae71b2415d38bceaf75",
      "tree": "85c4c5d2ed68a7338743a74cde89643783551ce5",
      "parents": [
        "9cff60dfc3d54b60bc069627cee5624bfaa3f823"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 17:11:13 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 17:31:40 2011 +0200"
      },
      "message": "genirq: Add setter for AFFINITY_SET in irq_data state\n\nSome archs want to prevent the default affinity being set on their\nchips in the reqeust_irq() path.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9cff60dfc3d54b60bc069627cee5624bfaa3f823",
      "tree": "488202912c3d197baaf63202db61f9393201760f",
      "parents": [
        "33b054b867b84015173a38d9cd9ff513b6498818"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 16:41:14 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 16:55:12 2011 +0200"
      },
      "message": "genirq: Provide setter inline for IRQD_IRQ_INPROGRESS\n\nSpecial function for demultiplexing handlers which can be disabled via\ndisable_irq().\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "33b054b867b84015173a38d9cd9ff513b6498818",
      "tree": "341f935d57af66fe82d384940b577fa9215ce5e6",
      "parents": [
        "6829310548a76d343205029bb41c14e75bf6a7fb"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 16:27:31 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 28 16:55:11 2011 +0200"
      },
      "message": "genirq: Remove handle_IRQ_event\n\nLast user gone.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "c2d0c555c22242c3a76e366074c4d83ef9fa3b8c",
      "tree": "7426945b566129163639229fa0a5f420cdce13a8",
      "parents": [
        "b3d422329f2e061d66af4f933ef316e50e5edcac"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Fri Mar 25 12:38:50 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 27 17:45:59 2011 +0200"
      },
      "message": "genirq: Split irq_set_affinity() so it can be called with lock held.\n\nThe .irq_cpu_online() and .irq_cpu_offline() functions may need to\nadjust affinity, but they are called with the descriptor lock held.\nCreate __irq_set_affinity_locked() which is called with the lock held.\nMake irq_set_affinity() just a wrapper that acquires the lock.\n\n[ tglx: Changed the argument to irq_data, added a !desc check and\n        moved the !irq_set_affinity check where it belongs ]\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-4-git-send-email-ddaney@caviumnetworks.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "ab7798ffcf98b11a9525cf65bacdae3fd58d357f",
      "tree": "834ed73e8ab309895934bcf8bfe9e531ec10b32b",
      "parents": [
        "08f1b807355c8d355885a71e7fd462fe9d499411"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 25 16:48:50 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 25 17:04:20 2011 +0100"
      },
      "message": "genirq: Expand generic show_interrupts()\n\nSome archs want to print extra information for certain irq_chips which\nis per irq and not per chip. Allow them to provide a chip callback to\nprint the chip name and the extra information.\n\nPowerPC wants to print the LEVEL/EDGE type information. Make it configurable.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d209a699a0b975ad47f399d70ddc3791f1b84496",
      "tree": "225ee2dd5e51acc769cd272ce86d36405e933ed2",
      "parents": [
        "d9936bb3952a08d701f7b03f8f62d158f94d8085"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 11 21:22:14 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 12 11:12:58 2011 +0100"
      },
      "message": "genirq: Add chip flag to force mask on suspend\n\nOn suspend we disable all interrupts in the core code, but this does\nnot mask the interrupt line in the default implementation as we use a\nlazy disable approach. That means we mark the interrupt disabled, but\nleave the hardware unmasked. That\u0027s an optimization because we avoid\nthe hardware access for the common case where no interrupt happens\nafter we marked it disabled. If an interrupt happens, then the\ninterrupt flow handler masks the line at the hardware level and marks\nit pending.\n\nSuspend makes use of this delayed disable as it \"disables\" all\ninterrupts when preparing the suspend transition. Right before the\nsystem goes into hardware suspend state it checks whether one of the\ninterrupts which is marked as a wakeup interrupt came in after\ndisabling it.\n\nMost interrupt chips have a separate register which selects the\ninterrupts which can wake up the system from suspend, so we don\u0027t have\nto mask any on the non wakeup interrupts.\n\nBut now we have to deal with brilliant designed hardware which lacks\nsuch a wakeup configuration facility. For such hardware it\u0027s necessary\nto mask all non wakeup interrupts before going into suspend in order\nto avoid the wakeup from random interrupts.\n\nRather than working around this in the affected interrupt chip\nimplementations we can solve this elegant in the core code itself.\n\nAdd a flag IRQCHIP_MASK_ON_SUSPEND which can be set by the irq chip\nimplementation to indicate, that the interrupts which are not selected\nas wakeup sources must be masked in the suspend path. Mask them in the\nloop which checks the wakeup interrupts pending flag.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1103112112310.2787@localhost6.localdomain6\u003e\n\n"
    },
    {
      "commit": "a439520f8b18917b322f576be04c54aba84bb044",
      "tree": "b835a4b32c057408ed35292c02ad214341e317ed",
      "parents": [
        "77694b408abb8f92195ad5ed6ce5492f1d794c77"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 04 18:46:16 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:25 2011 +0100"
      },
      "message": "genirq: Implement irq_data based move_*_irq() versions\n\nNo need to lookup the irq descriptor when calling from a chip callback\nfunction which has irq_data already handy.\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": "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": "7f94226f03299f1ca32f118f02f2a0295e0e5e93",
      "tree": "049a83a3c264d4378f341991800c345bf4eeb5a5",
      "parents": [
        "d4d5e08960844a062da8387ee5f16ca7a33200d0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 19:46:26 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:22 2011 +0100"
      },
      "message": "genirq: Move wakeup state to irq_data\n\nSome irq_chips need to know the state of wakeup mode for\nsetting the trigger type etc. Reflect it in irq_data state.\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": "2bff17ad2107c66fc8ca96501a7128dd7fa7a390",
      "tree": "a022acf5cdc290b1ede54f3d4a26b6365c3cc94b",
      "parents": [
        "5d4d8fc9ac3e9a90bbdf90bae6864cb2c01f2208"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 13:08:38 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:21 2011 +0100"
      },
      "message": "genirq: Add flags to irq_chip\n\nLooking through irq_chip implementations I noticed that some of them\nhave special requirements, like setting the type masked and therefor\nfiddle in irq_desc-\u003estatus. Add a flag field, so the core code can\nhandle it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5d4d8fc9ac3e9a90bbdf90bae6864cb2c01f2208",
      "tree": "5ec451adff8792ed345bac22c91d8565b11ba61a",
      "parents": [
        "f9e4989eb8183a1f33581fa1b99274287b0639d2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 17:27:18 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:21 2011 +0100"
      },
      "message": "genirq: Cleanup irq.h\n\nPut the constants into an enum and document them.\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": "2bdd10558c8d93009cb6c32ce9e30800fbb08add",
      "tree": "f25b36c02faa8709628e2dbb93748f370678bb52",
      "parents": [
        "bce43032ad79fae0ce5b6174ce1321e643ceb54b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 17:22:00 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:20 2011 +0100"
      },
      "message": "genirq: Move IRQ_AFFINITY_SET to core\n\nKeep status in sync until last abuser is gone.\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": "8f53f92404bead2ab2154d45c8f508880bb5d95d",
      "tree": "08a3f21df856f7d9b9561e6cf14462092cee8d0d",
      "parents": [
        "6a58fb3bad099076f36f0f30f44507bc3275cdb6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 16:50:00 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:19 2011 +0100"
      },
      "message": "genirq: Make CHECK_IRQ_PER_CPU an inline and deprecate it\n\nIts\u0027 too ugly and needs to go. The only users are core code and\nparisc. Core code does not need it and parisc gets a new check once\nIRQ_PER_CPU is reflected in irq_data.state.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6a58fb3bad099076f36f0f30f44507bc3275cdb6",
      "tree": "9a40117c941d914b1ef13463436657ae9721fea3",
      "parents": [
        "f230b6d5c48f8d12f4dfa1f8b5ab0b0320076d21"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 15:40:05 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:19 2011 +0100"
      },
      "message": "genirq: Remove CONFIG_IRQ_PER_CPU\n\nThe saving of this switch is minimal versus the ifdef mess it\ncreates. Simple enable PER_CPU unconditionally and remove the config\nswitch.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f230b6d5c48f8d12f4dfa1f8b5ab0b0320076d21",
      "tree": "d4d30f77ab196930dd2d2982e90b1f2b5fd9bbe2",
      "parents": [
        "91c499178139d6597e68db19638e4135510a34b8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 05 15:20:04 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:18 2011 +0100"
      },
      "message": "genirq: Add IRQ_MOVE_PENDING to irq_data.state\n\nchip implementations need to know about it. Keep status in sync until\nall users are fixed. \n\nAccessor function: irqd_is_setaffinity_pending(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": "91c499178139d6597e68db19638e4135510a34b8",
      "tree": "9f2a58301e73178009d99e181d8de417659eda60",
      "parents": [
        "6d2cd17fde1fc3e93302815f049f255bb2b3123e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 03 20:48:29 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:18 2011 +0100"
      },
      "message": "genirq: Add state field to irq_data\n\nSome chip implementations need to access certain status flags. With\nsparse irqs that requires a lookup of the irq descriptor. Add a state\nfield which contains such flags.\n\nName it in a way which will make coders happy to access it with the\nproper accessor functions. And it\u0027s easy to grep for.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c531e8361f1968d664e6e97fbd3bfa4cf0e62e42",
      "tree": "45b5dbd85203033af684a9588224044289236b0c",
      "parents": [
        "6e40262ea43c4b0e3f435b3a083e4461ef921c17"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 12:44:58 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:18 2011 +0100"
      },
      "message": "genirq: Move IRQ_SUSPENDED to core\n\nNo users outside of core.\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": "7acdd53e5b2c55b6f7e3427e85e2f91fa814a4f9",
      "tree": "4806536bae32605a3107d6c4384547693eda566c",
      "parents": [
        "bd062e7667ac173afef57fbfe9327f3b914a9d4c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 20:40:54 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:15 2011 +0100"
      },
      "message": "genirq: Move IRQ_SPURIOUS_DISABLED to core state\n\nNo users outside.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bd062e7667ac173afef57fbfe9327f3b914a9d4c",
      "tree": "29e798cb397311abec53ad45b73efdede1fc37b7",
      "parents": [
        "e6bea9c404699223322d7411c6f2ceaec02fa83c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 20:25:25 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:15 2011 +0100"
      },
      "message": "genirq: Move IRQ_AUTODETECT to internal state\n\nNo users outside of core\n\nSigned-off-by: Thomas Gleixner \u003ctglx@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": "3b8249e759c701c4a82f99d957be651a7657bf6f",
      "tree": "f758675da3bb37282eefd50e57456d09b208b452",
      "parents": [
        "569bda8df11effa03e618729293c7961696abb10"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 07 16:02:20 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:07 2011 +0100"
      },
      "message": "genirq: Do not copy affinity before set\n\nWhile rumaging through arch code I found that there are a few\nworkarounds which deal with the fact that the initial affinity setting\nfrom request_irq() copies the mask into irq_data-\u003eaffinity before the\nchip code is called. In the normal path we unconditionally copy the\nmask when the chip code returns 0.\n\nCopy after the code is called and add a return code\nIRQ_SET_MASK_OK_NOCOPY for the chip functions, which prevents the\ncopy. That way we see the real mask when the chip function decided to\ntruncate it further as some arches do. IRQ_SET_MASK_OK is 0, which is\nthe current behaviour.\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": "872434d69c644b8aa5088b835598dc3cd9832aff",
      "tree": "82f55a0ff9ed1fc9eb814fb80dfb5e605f47e07a",
      "parents": [
        "44f2c5c841da1b1e0864d768197ab1497b5c2cc1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 05 16:25:25 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 05 16:33:56 2011 +0100"
      },
      "message": "genirq: Add missing status flags to modification mask\n\nThe mask which filters out the valid bits which can be set via\nirq_modify_status() is missing IRQ_NO_BALANCING, which breaks UV.\n\nAdd IRQ_PER_CPU as well to avoid another one line patch for 39.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "639bd12f778d55a2632fde5af7d0719abc1871b9",
      "tree": "cb065e0919d261e5b8faffe34edb948967a5e7e5",
      "parents": [
        "2656c36699677238edc9ec1fea79039f1fddbcb6"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue Oct 26 16:19:13 2010 +0900"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 26 10:33:27 2010 +0200"
      },
      "message": "genirq: Add single IRQ reservation helper\n\nFor cases that wish to reserve a single IRQ at a given place simply\nprovide a wrapper in to the ranged reservation routine.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nLKML-Reference: \u003c20101026071912.GD4733@linux-sh.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\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": "10ba1e0eeef6a3c9453d96364e28cb4d911e1ac3",
      "tree": "c535feadce8d57e5e96f401e156617c7e9ab4237",
      "parents": [
        "1a0730d6649113c820217387a011a17dd4aff3ad"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 11 12:21:18 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:53:43 2010 +0200"
      },
      "message": "genirq: Remove irq_2_iommu\n\nirq_2_iommu is now in the x86 code where it belongs. Remove all\nleftovers.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "b683de2b3cb17bb10fa6fd4af614dc75b5749fe0",
      "tree": "e1a799293b218f5c13d4903c57fab144b2f433b3",
      "parents": [
        "aa99ec0f3f26bf2bcd0fa5176de93598427f1e5e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 20:55:03 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:08 2010 +0200"
      },
      "message": "genirq: Query arch for number of early descriptors\n\nsparse irq sets up NR_IRQS_LEGACY irq descriptors and archs then go\nahead and allocate more.\n\nUse the unused return value of arch_probe_nr_irqs() to let the\narchitecture return the number of early allocations. Fix up all users.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "06f6c3399e9f9ff6eafc200e80f9226c3cee0eaf",
      "tree": "f4d8fc67194b1a50bfe501634088b3776ca6bbd4",
      "parents": [
        "a98d24b71b6e229965f18dc00d28dc71cb8fe324"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 12:31:46 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:07 2010 +0200"
      },
      "message": "genirq: Implement irq reservation\n\nMark a range of interrupts as allocated. In the SPARSE_IRQ\u003dn case we\nneed this to update the bitmap for the legacy irqs so the enumerator\nvia irq_get_next_irq() works.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1f5a5b87f78fade3ae48dfd55e8765d1d622ea4e",
      "tree": "762a5dbf40129ffd9667a170b2503a77c95320f7",
      "parents": [
        "1318a481fc37c503a901b96ae06b692ca2b21af5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 17:48:26 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:07 2010 +0200"
      },
      "message": "genirq: Implement a sane sparse_irq allocator\n\nThe current sparse_irq allocator has several short comings due to\nfailures in the design or the lack of it:\n\n - Requires iteration over the number of active irqs to find a free slot\n   (Some architectures have grown their own workarounds for this)\n - Removal of entries is not possible\n - Racy between create_irq_nr and destroy_irq (plugged by horrible\n   callbacks)\n - Migration of active irq descriptors is not possible\n - No bulk allocation of irq ranges\n - Sprinkeled irq_desc references all over the place outside of kernel/irq/\n   (The previous chip functions series is addressing this issue)\n\nImplement a sane allocator which fixes the above short comings (though\nmigration of active descriptors needs a full tree wide cleanup of the\ndirect and mostly unlocked access to irq_desc).\n\nThe new allocator still uses a radix_tree, but uses a bitmap for\nkeeping track of allocated irq numbers. That allows:\n\n - Fast lookup of a free slot\n - Allows the removal of descriptors\n - Prevents the create/destroy race\n - Bulk allocation of consecutive irq ranges\n - Basic design is ready for migration of life descriptors after\n   further cleanups\n\nThe bitmap is also used in the SPARSE_IRQ\u003dn case for lookup and\nraceless (de)allocation of irq numbers. So it removes the requirement\nfor looping through the descriptor array to find slots.\n\nRight now it uses sparse_irq_lock to protect the bitmap and the radix\ntree, but after cleaning up all users we should be able convert that\nto a mutex and to switch the radix_tree and decriptor allocations to\nGFP_KERNEL.\n\n[ Folded in a bugfix from Yinghai Lu ]\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": "3a3856d00c74560a7b8d9f8a13c1ca94ee786b78",
      "tree": "c161c40e8c443547d936e276689587bd340da855",
      "parents": [
        "e144710b302525de5b90b9c3ba43562458d8957f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 13:47:12 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:05 2010 +0200"
      },
      "message": "genirq: Remove unsused inline\n\nmove_irq() has no users. Remove it and simplify the ifdef forrest while at it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e144710b302525de5b90b9c3ba43562458d8957f",
      "tree": "0a6ef61ccb4957512ebf4a1887ba3bc54e78f99e",
      "parents": [
        "fe21221386e46b8e0f2cbd83559a29680c28473b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Oct 01 16:03:45 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:04 2010 +0200"
      },
      "message": "genirq: Distangle irq.h\n\nMove irq_desc and internal functions out of irq.h\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\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": "f8822657e799b02c55556c99a601261e207a299d",
      "tree": "5a263bd4df600d7b090d1216e2b8462c121a7588",
      "parents": [
        "6b8ff3120c758340505dddf08ad685ebb841d5d5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:32 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:43:32 2010 +0200"
      },
      "message": "genirq: Provide advanced irq chip functions\n\nThe low level irq chip functions want access to irq_desc-\u003eirq_data.\nProvide new functions which hand down irq_data instead of the irq\nnumber so these functions avoid to call irq_to_desc() which is a radix\ntree lookup in case of sparse irq.\n\nThis provides all the old functions except one: end(). end() is a\nrelict of __do_IRQ() and will just go away with the __do_IRQ() code.\n\nThe replacement for set_affinity() has an extra argument \"bool\nforce\". The reason for this is to notify the low level code, that the\nmove has to be done right away and cannot be delayed until the next\ninterrupt happens. That\u0027s necessary to handle the irq fixup on cpu\nunplug in the generic code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121841.742126604@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": "ff7dcd44dd446db2c3e13bdedf2d52b8e0127f16",
      "tree": "ca03e829ea08aa536124a7777d99233dbbd89984",
      "parents": [
        "3bb9808e99bcc36eecb8e082bf70efb2a0bcdcb7"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 12:44:25 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 04 12:27:16 2010 +0200"
      },
      "message": "genirq: Create irq_data\n\nLow level chip functions need access to irq_desc-\u003ehandler_data,\nirq_desc-\u003echip_data and irq_desc-\u003emsi_desc. We hand down the irq\nnumber to the low level functions, so they need to lookup irq_desc.\nWith sparse irq this means a radix tree lookup.\n\nWe could hand down irq_desc itself, but low level chip functions have\nno need to fiddle with it directly and we want to restrict access to\nirq_desc further.\n\nPreparatory patch for new chip functions.\n\nNote, that the ugly anon union/struct is there to avoid a full tree\nwide clean up for now. This is not going to last 3 years like __do_IRQ()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20100927121841.645542300@linutronix.de\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\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": "e7a297b0d7d6049bd4e423ac1e17da31e4c401b8",
      "tree": "f10f12806a637b09bec89ef5428d981c4c1a4bc9",
      "parents": [
        "6932bf37bed45ce8ed531928b1b0f98162fe6df6"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Fri Apr 30 14:44:50 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 03 11:50:57 2010 +0200"
      },
      "message": "genirq: Add CPU mask affinity hint\n\nThis patch adds a cpumask affinity hint to the irq_desc structure,\nalong with a registration function and a read-only proc entry for each\ninterrupt.\n\nThis affinity_hint handle for each interrupt can be used by underlying\ndrivers that need a better mechanism to control interrupt affinity.\nThe underlying driver can register a cpumask for the interrupt, which\nwill allow the driver to provide the CPU mask for the interrupt to\nanything that requests it.  The intent is to extend the userspace\ndaemon, irqbalance, to help hint to it a preferred CPU mask to balance\nthe interrupt into.\n\n[ tglx: Fixed compile warnings, added WARN_ON, made SMP only ]\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nCc: davem@davemloft.net\nCc: arjan@linux.jf.intel.com\nCc: bhutchings@solarflare.com\nLKML-Reference: \u003c20100430214445.3992.41647.stgit@ppwaskie-hc2.jf.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "fb7b096d949fa852442ed9d8f982bce526ccfe7e",
      "tree": "883e7e43331d9962bcc6050a3bf88615a8c61063",
      "parents": [
        "a626b46e17d0762d664ce471d40bc506b6e721ab",
        "fad539956c9e69749a03f7817d22d1bab87657bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 08:15:37 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 08:15:37 2010 -0800"
      },
      "message": "Merge branch \u0027x86-apic-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-apic-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits)\n  x86: Fix out of order of gsi\n  x86: apic: Fix mismerge, add arch_probe_nr_irqs() again\n  x86, irq: Keep chip_data in create_irq_nr and destroy_irq\n  xen: Remove unnecessary arch specific xen irq functions.\n  smp: Use nr_cpus\u003d to set nr_cpu_ids early\n  x86, irq: Remove arch_probe_nr_irqs\n  sparseirq: Use radix_tree instead of ptrs array\n  sparseirq: Change irq_desc_ptrs to static\n  init: Move radix_tree_init() early\n  irq: Remove unnecessary bootmem code\n  x86: Add iMac9,1 to pci_reboot_dmi_table\n  x86: Convert i8259_lock to raw_spinlock\n  x86: Convert nmi_lock to raw_spinlock\n  x86: Convert ioapic_lock and vector_lock to raw_spinlock\n  x86: Avoid race condition in pci_enable_msix()\n  x86: Fix SCI on IOAPIC !\u003d 0\n  x86, ia32_aout: do not kill argument mapping\n  x86, irq: Move __setup_vector_irq() before the first irq enable in cpu online path\n  x86, irq: Update the vector domain for legacy irqs handled by io-apic\n  x86, irq: Don\u0027t block IRQ0_VECTOR..IRQ15_VECTOR\u0027s on all cpu\u0027s\n  ...\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": "599faa0e264fe2e7f563f87b4aad8c83e9dc46d1",
      "tree": "6800280e4f882709767d30e1e5329b4e507e74f6",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jan 05 13:29:58 2010 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 11:14:18 2010 +0100"
      },
      "message": "genirq: Fix documentation of default chip disable()\n\nThe documentation says that by default disable() will be\nchip-\u003emask but in fact default_disable() is a noop.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nLKML-Reference: \u003c1262698198-30392-1-git-send-email-broonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "bebd04cc4569844effbdae49c01a48e57fa77864",
      "tree": "0752a50a6d3670a533592b6a198def0a98a927f6",
      "parents": [
        "af901ca181d92aac3a7dc265144a9081a86d8f39"
      ],
      "author": {
        "name": "Krzysztof Halasa",
        "email": "khc@pm.waw.pl",
        "time": "Sun Nov 15 18:57:24 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:57 2009 +0100"
      },
      "message": "doc: Fix IRQ chip docs\n\nThis patch updates the IRQ docs to match reality.\n\nSigned-off-by: Krzysztof Halasa \u003ckhc@pm.waw.pl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d90a7e86401ffea2163a4337f3a47f3909c4e255",
      "tree": "afe3d4aa24849c561bb1e6c04c4c54808cbedb47",
      "parents": [
        "12a499612e1ff439bdad240c7f86c55366941d4d",
        "4dbc9ca219b0f294332e734528f7b82211700170"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:21:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:21:31 2009 -0700"
      },
      "message": "Merge branch \u0027irq-threaded-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-threaded-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Do not mask oneshot edge type interrupts\n  genirq: Support nested threaded irq handling\n  genirq: Add buslock support\n  genirq: Add oneshot support\n"
    },
    {
      "commit": "31b47cf7609288893a10706c648faa932c7aef90",
      "tree": "11ab785f6cfc82411699b85c92626c4a91373646",
      "parents": [
        "daedc71836e5a398fd0cc0e12c5cb43539478485"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 24 20:28:04 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 25 10:05:05 2009 +0200"
      },
      "message": "genirq: Add prototype for handle_nested_irq()\n\nThe function is supposed to be called from the primary IRQ\nhandler for a demultiplexing chip so make a protype visible for\nthem.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nLKML-Reference: \u003c1251142084-9852-1-git-send-email-broonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "96ccd4a43a4d80c80be636cd025a69959cf47424",
      "tree": "8e73da9a77470da66fd9bff9c57fab3fea4c1739",
      "parents": [
        "8e4a718ff38d8539938ec3421935904c27e00c39"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 05 12:47:52 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 05 12:47:52 2009 +0200"
      },
      "message": "genirq: Remove obsolete defines and typedefs\n\nThe defines and typedefs (hw_interrupt_type, no_irq_type, irq_desc_t)\nhave been kept around for migration reasons. The last users are gone,\nremove them.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2453d6ff6ffc5f0d496b7b14f509a26f99bf115e",
      "tree": "9e4e709bdb932889b0b9cfc5b2b767cfcf750b83",
      "parents": [
        "12e24f34cb0d55efd08c18b2112507d4bf498008",
        "ab33dcff40d7a9a28587e4425621e4cbc4089e03"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:30:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:30:01 2009 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq, irq.h: Fix kernel-doc warnings\n  genirq: fix comment to say IRQ_WAKE_THREAD\n"
    },
    {
      "commit": "ab33dcff40d7a9a28587e4425621e4cbc4089e03",
      "tree": "7c8b70645bab2abb880b5b158a8582705f09e1a0",
      "parents": [
        "39a2eddb9b62959dc55c6978b5eaeb3dd57c5ff2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Jun 13 20:01:00 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jun 14 09:08:30 2009 +0200"
      },
      "message": "genirq, irq.h: Fix kernel-doc warnings\n\nFix kernel-doc warnings in linux/irq.h:\n\n  Warning(include/linux/irq.h:201): No description found for parameter \u0027node\u0027\n  Warning(include/linux/irq.h:201): Excess struct/union/enum/typedef member \u0027cpu\u0027 description in \u0027irq_desc\u0027\n  Warning(include/linux/irq.h:434): No description found for parameter \u0027node\u0027\n  Warning(include/linux/irq.h:434): Excess function parameter \u0027cpu\u0027 description in \u0027alloc_desc_masks\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nLKML-Reference: \u003c4A3467EC.50006@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38c7fed2f5ffee17e1fa3e0f78b0e1bf43d52d13",
      "tree": "52544d8dcfadbd5347872eae23939fe387d7c78b",
      "parents": [
        "a5f4f52e82114e85aa1a066bd1a450acc19a464d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon May 25 15:10:58 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 19:27:07 2009 +0300"
      },
      "message": "x86: remove some alloc_bootmem_cpumask_var calling\n\nNow that we set up the slab allocator earlier, we can get rid of some\nalloc_bootmem_cpumask_var() calls in boot code.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "15e957d08dd4a841359cfec59ecb74041e0097aa",
      "tree": "e18a8b70751c552ba2bd7248660f137a735938ea",
      "parents": [
        "56b581ea9591b5767b1e0204c6a06c7d0c49396e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Apr 30 01:17:50 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 01 19:01:12 2009 +0200"
      },
      "message": "x86/irq: use move_irq_desc() in create_irq_nr()\n\nmove_irq_desc() will try to move irq_desc to the home node if\nthe allocated one is not correct, in create_irq_nr().\n\n( This can happen on devices that are on different nodes that\n  are using MSI, when drivers are loaded and unloaded randomly. )\n\nv2: fix non-smp build\nv3: add NUMA_IRQ_DESC to eliminate #ifdefs\n\n[ Impact: improve irq descriptor locality on NUMA systems ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49F95EAE.2050903@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d047f53a2ecce37e3bdf79eac5a326fbaadb3628",
      "tree": "1097e49b711d07c77071c93d2c3a5f7f63d5cf05",
      "parents": [
        "024154cfdd802654cb236a18c78b6e37351e2c49"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 18:02:23 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:18 2009 +0200"
      },
      "message": "x86/irq: change MSI irq_desc to be more numa aware\n\nTry to get irq_desc on the home node in create_irq_nr().\n\nv2: don\u0027t check if we can move it when sparse_irq is not used\nv3: use move_irq_des, if that node is not what we want\n\n[ Impact: optimization, make MSI IRQ descriptors more NUMA aware ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49F6559F.7070005@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85ac16d033370caf6f48d743c8dc8103700f5cc5",
      "tree": "04a73af31c07a8ad29780b777b3f9d041fa236fa",
      "parents": [
        "57b150cce8e004ddd36330490a68bfb59b7271e9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 18:00:38 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:17 2009 +0200"
      },
      "message": "x86/irq: change irq_desc_alloc() to take node instead of cpu\n\nThis simplifies the node awareness of the code. All our allocators\nonly deal with a NUMA node ID locality not with CPU ids anyway - so\nthere\u0027s no need to maintain (and transform) a CPU id all across the\nIRq layer.\n\nv2: keep move_irq_desc related\n\n[ Impact: cleanup, prepare IRQ code to be NUMA-aware ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nLKML-Reference: \u003c49F65536.2020300@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d5dedd4507d307eb3f35f21b6e16f336fdc0d82a",
      "tree": "2c31b00395bde49ec4c5a415b081daaec44d3dab",
      "parents": [
        "fcef5911c7ea89b80d5bfc727f402f37c9eefd57"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 17:59:21 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:16 2009 +0200"
      },
      "message": "irq: change -\u003eset_affinity() to return status\n\naccording to Ingo, change set_affinity() in irq_chip should return int,\nbecause that way we can handle failure cases in a much cleaner way, in\nthe genirq layer.\n\nv2: fix two typos\n\n[ Impact: extend API ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: linux-arch@vger.kernel.org\nLKML-Reference: \u003c49F654E9.4070809@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fcef5911c7ea89b80d5bfc727f402f37c9eefd57",
      "tree": "e37ad2cda662933b01b2ba6e28e570a18ef1edc2",
      "parents": [
        "9ec4fa271faf2db3b8e1419c998da1ca6b094eb6"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 17:58:23 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:15 2009 +0200"
      },
      "message": "x86/irq: remove leftover code from NUMA_MIGRATE_IRQ_DESC\n\nThe original feature of migrating irq_desc dynamic was too fragile\nand was causing problems: it caused crashes on systems with lots of\ncards with MSI-X when user-space irq-balancer was enabled.\n\nWe now have new patches that create irq_desc according to device\nnuma node. This patch removes the leftover bits of the dynamic balancer.\n\n[ Impact: remove dead code ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49F654AF.8000808@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ec4fa271faf2db3b8e1419c998da1ca6b094eb6",
      "tree": "2dd817bd41526fc1d1252e50b0b1a0714ae34a7f",
      "parents": [
        "e25c2c873f59c57cf1c2b1979cc8fb01958305ef"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 17:57:18 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:14 2009 +0200"
      },
      "message": "irq, cpumask: correct CPUMASKS_OFFSTACK typo and fix fallout\n\nCPUMASKS_OFFSTACK is not defined anywhere (it is CPUMASK_OFFSTACK).\nIt is a typo and init_allocate_desc_masks() is called before it set\naffinity to all cpus...\n\nSplit init_alloc_desc_masks() into all_desc_masks() and init_desc_masks().\n\nAlso use CPUMASK_OFFSTACK in alloc_desc_masks().\n\n[ Impact: fix smp_affinity copying/setup when moving irq_desc between CPUs ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nLKML-Reference: \u003c49F6546E.3040406@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "422a253483aa5de71a2bcdc27b0aa023053f97f8",
      "tree": "3e25aaf65b8eaf275bb01982a89fb0cd631c4367",
      "parents": [
        "91e58b6e95a9c6b9efd928ae352eae5e75ae598c",
        "022624a758dc9489388a99ad29577b4c8c09237c",
        "9756b15e1b58453a6fd54b85c1ad8515209e10bb",
        "8f2e586567b1bad72dac7c3810fe9a2ef7117506"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 10:35:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 09 10:35:30 2009 -0700"
      },
      "message": "Merge branches \u0027core-fixes-for-linus\u0027, \u0027irq-fixes-for-linus\u0027 and \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  printk: fix wrong format string iter for printk\n  futex: comment requeue key reference semantics\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq: fix cpumask memory leak on offstack cpumask kernels\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  posix-timers: fix RLIMIT_CPU \u0026\u0026 setitimer(CPUCLOCK_PROF)\n  posix-timers: fix RLIMIT_CPU \u0026\u0026 fork()\n  timers: add missing kernel-doc\n"
    },
    {
      "commit": "9efe21cb82b5dbe3b0b2ae4de4eccc64ecb94e95",
      "tree": "7ff8833745d2f268f897f6fa4a27263b4a572245",
      "parents": [
        "de18836e447c2dc30120c0919b8db8ddc0401cc4",
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 06 01:41:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 06 01:41:22 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/threaded\n\nConflicts:\n\tinclude/linux/irq.h\n\tkernel/irq/handle.c\n"
    },
    {
      "commit": "9756b15e1b58453a6fd54b85c1ad8515209e10bb",
      "tree": "1b6ba55e845bbd07460c0c4e061641564b9a69b2",
      "parents": [
        "8fe74cf053de7ad2124a894996f84fa890a81093"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Mar 30 20:37:20 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 19:14:44 2009 +0200"
      },
      "message": "irq: fix cpumask memory leak on offstack cpumask kernels\n\nNeed to free the old cpumask for affinity and pending_mask.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49D18FF0.50707@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a0c5168df270a50e3518e4f12bddb31f8f5f38f",
      "tree": "ea1e392fef9d52a7b81c9010580c09317a4d707d",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:33:49 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Introduce functions for suspending and resuming device interrupts\n\nIntroduce helper functions allowing us to prevent device drivers from\ngetting any interrupts (without disabling interrupts on the CPU)\nduring suspend (or hibernation) and to make them start to receive\ninterrupts again during the subsequent resume.  These functions make it\npossible to keep timer interrupts enabled while the \"late\" suspend and\n\"early\" resume callbacks provided by device drivers are being\nexecuted.  In turn, this allows device drivers\u0027 \"late\" suspend and\n\"early\" resume callbacks to sleep, execute ACPI callbacks etc.\n\nThe functions introduced here will be used to rework the handling of\ninterrupts during suspend (hibernation) and resume.  Namely,\ninterrupts will only be disabled on the CPU right before suspending\nsysdevs, while device drivers will be prevented from receiving\ninterrupts, with the help of the new helper function, before their\n\"late\" suspend callbacks run (and analogously during resume).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "503e57630309643562c12f09d4c8a96eb629ee33",
      "tree": "789fbe20f4ea1c9876a7c8181f6e3c53fcb87c39",
      "parents": [
        "d5ac537e5fb6fc12384c9f3ed6a15e912dfbbc2a"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sun Mar 29 12:59:50 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 29 08:19:09 2009 -0700"
      },
      "message": "Fix build error in \u003clinux/irq.h\u003e\n\n\u003clinux/irq.h\u003e relies on \u003clinux/gfp.h\u003e and \u003clinux/topology.h\u003e having been\nincluded previous.  If not, the errors like below will result.\n\n    CC      arch/mips/mti-malta/malta-int.o\n  In file included from arch/mips/mti-malta/malta-int.c:25:\n  include/linux/irq.h: In function ‘init_alloc_desc_masks’:\n  include/linux/irq.h:444: error: implicit declaration of function ‘cpu_to_node’\n  include/linux/irq.h:446: error: ‘GFP_ATOMIC’ undeclared (first use in this function)\n  include/linux/irq.h:446: error: (Each undeclared identifier is reported only once\n  include/linux/irq.h:446: error: for each function it appears in.)\n  make[3]: *** [arch/mips/mti-malta/malta-int.o] Error 1\n  make[2]: *** [arch/mips/mti-malta] Error 2\n  make[1]: *** [sub-make] Error 2\n\nFixed by including the two missing headers.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "3aa551c9b4c40018f0e261a178e3d25478dc04a9",
      "tree": "2a696109273fcc421d774cc8fefa4180331a85ad",
      "parents": [
        "80c5520811d3805adcb15c570ea5e2d489fa5d0b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 23 18:28:15 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 24 12:15:23 2009 +0100"
      },
      "message": "genirq: add threaded interrupt handler support\n\nAdd support for threaded interrupt handlers:\n\nA device driver can request that its main interrupt handler runs in a\nthread. To achive this the device driver requests the interrupt with\nrequest_threaded_irq() and provides additionally to the handler a\nthread function. The handler function is called in hard interrupt\ncontext and needs to check whether the interrupt originated from the\ndevice. If the interrupt originated from the device then the handler\ncan either return IRQ_HANDLED or IRQ_WAKE_THREAD. IRQ_HANDLED is\nreturned when no further action is required. IRQ_WAKE_THREAD causes\nthe genirq code to invoke the threaded (main) handler. When\nIRQ_WAKE_THREAD is returned handler must have disabled the interrupt\non the device level. This is mandatory for shared interrupt handlers,\nbut we need to do it as well for obscure x86 hardware where disabling\nan interrupt on the IO_APIC level redirects the interrupt to the\nlegacy PIC interrupt lines.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n"
    },
    {
      "commit": "80c5520811d3805adcb15c570ea5e2d489fa5d0b",
      "tree": "ae797a7f4af39f80e77526533d06ac23b439f0ab",
      "parents": [
        "b3e3b302cf6dc8d60b67f0e84d1fa5648889c038",
        "8c083f081d0014057901c68a0a3e0f8ca7ac8d23"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 23 14:50:03 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 23 21:20:20 2009 +0100"
      },
      "message": "Merge branch \u0027cpus4096\u0027 into irq/threaded\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tkernel/irq/handle.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "edb35028e40515beb2f94808aff8b3e71fb9f35a",
      "tree": "153da9f8ca1934b30474bb15478feb14a7bd5b75",
      "parents": [
        "8f8573ae9f5deefada6f5d64d0a52c9b39c730c7",
        "cb065c06b6cc615a58860d619d7fa7952cd6a18b",
        "5bee17f18b595937e6beafeee5197868a3f74a06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:20:13 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:20:13 2009 +0100"
      },
      "message": "Merge branches \u0027irq/genirq\u0027 and \u0027linus\u0027 into irq/core\n"
    },
    {
      "commit": "bedd30d986a05e32dc3eab874e4b9ed8a38058bb",
      "tree": "2da3b52decc7f2c407d96664cd3be8c5659cc14c",
      "parents": [
        "c8e2aeef0b8ac9fb8821b8b3734c031579d0b77a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 30 23:14:27 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 13 14:32:29 2009 +0100"
      },
      "message": "genirq: make irqreturn_t an enum\n\nImpact: cleanup\n\nRemove the 2.4 compabiliy cruft\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n\n"
    },
    {
      "commit": "3dd3d46b78c22503957230ca5981849b7bb29b9a",
      "tree": "27946d271509bb3070e3200042c73a46eccfefa0",
      "parents": [
        "eb53b4e8fef10ccccb49a6dbb5e19ca84ba5a305"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 09 21:48:32 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 13 14:32:28 2009 +0100"
      },
      "message": "genirq: remove unused hw_irq_controller typedef\n\nhw_irq_controller is unused. Remove the typedef\n\nImpact: cleanup\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cbf94f06824780183e4bba165c7c29d5c7bd9a51",
      "tree": "e1cfa04aee8ba76d79737526061c706defb1552c",
      "parents": [
        "f21cfb258df6dd3ea0b3e56d75c7e994edb81b35"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Thu Mar 12 21:05:51 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 12 13:16:33 2009 +0100"
      },
      "message": "irq: match remove_irq() args with setup_irq()\n\nModify remove_irq() to match setup_irq().\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nLKML-Reference: \u003c20090312120551.2926.43942.sendpatchset@rx1.opensource.se\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "f21cfb258df6dd3ea0b3e56d75c7e994edb81b35"
}
