)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "f21cfb258df6dd3ea0b3e56d75c7e994edb81b35",
      "tree": "63d2c11d1857bdffab6bf3ed036af8e03d16abd7",
      "parents": [
        "f8cb22cbb8383c9f41e6ccbcd4fb94edb1048bda"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Thu Mar 12 21:05:42 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 12 13:16:32 2009 +0100"
      },
      "message": "irq: add remove_irq() for freeing of setup_irq() irqs\n\nImpact: add new API\n\nThis patch adds a remove_irq() function for releasing\ninterrupts requested with setup_irq().\n\nWithout this patch we have no way of releasing such\ninterrupts since free_irq() today tries to kfree()\nthe irqaction passed with setup_irq().\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nLKML-Reference: \u003c20090312120542.2926.56609.sendpatchset@rx1.opensource.se\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d52a61c04c6c0814ca270a088feedb126436598e",
      "tree": "c216da41e04b856d639cc8b85e3b495cb1e240e4",
      "parents": [
        "e81838d2555e77c893f720c25bfb0c0e5782ef57"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Jan 22 00:38:56 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 22 10:18:58 2009 +0100"
      },
      "message": "irq: clean up irq stat methods\n\nDavid Miller suggested, related to a kstat_irqs related build breakage:\n\n\u003e Either linux/kernel_stat.h provides the kstat_incr_irqs_this_cpu\n\u003e interface or linux/irq.h does, not both.\n\nSo move them to kernel_stat.h.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "802bf931f2688ad125b73db597ce63cc842fb27a",
      "tree": "e3715fce62ffeaac7f06f352dc538dccac215216",
      "parents": [
        "651f8118cf0a5724f23fe1de4a3d9d36b2e01c2e"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Sat Jan 10 21:58:09 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 19:13:02 2009 +0100"
      },
      "message": "cpumask: fix bug in use cpumask_var_t in irq_desc\n\nImpact: fix bug where new irq_desc uses old cpumask pointers which are freed.\n\nAs Yinghai pointed out, init_copy_one_irq_desc() copies the old desc to\nthe new desc overwriting the cpumask pointers.  Since the old_desc and\nthe cpumask pointers are freed, then memory corruption will occur if\nthese old pointers are used.\n\nMove the allocation of these pointers to after the copy.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "7f7ace0cda64c99599c23785f8979a072e118058",
      "tree": "13f2826e64e09ebaef94a3e7fd9c21cfbd31ec3f",
      "parents": [
        "c59765042f53a79a7a65585042ff463b69cb248c"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Sat Jan 10 21:58:08 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 19:12:46 2009 +0100"
      },
      "message": "cpumask: update irq_desc to use cpumask_var_t\n\nImpact: reduce memory usage, use new cpumask API.\n\nReplace the affinity and pending_masks with cpumask_var_t\u0027s.  This adds\nto the significant size reduction done with the SPARSE_IRQS changes.\n\nThe added functions (init_alloc_desc_masks \u0026 init_copy_desc_masks) are\nin the include file so they can be inlined (and optimized out for the\n!CONFIG_CPUMASKS_OFFSTACK case.)  [Naming chosen to be consistent with\nthe other init*irq functions, as well as the backwards arg declaration\nof \"from, to\" instead of the more common \"to, from\" standard.]\n\nIncludes a slight change to the declaration of struct irq_desc to embed\nthe pending_mask within ifdef(CONFIG_SMP) to be consistent with other\nreferences, and some small changes to Xen.\n\nTested: sparse/non-sparse/cpumask_offstack/non-cpumask_offstack/nonuma/nosmp on x86_64\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: virtualization@lists.osdl.org\nCc: xen-devel@lists.xensource.com\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\n"
    },
    {
      "commit": "d7e51e66899f95dabc89b4d4c6674a6e50fa37fc",
      "tree": "5b4cc72a4e411d6962ce9ce7258abf2bac0204d4",
      "parents": [
        "e8b722f487589a1f60ca27adc695494f188d404e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Jan 07 15:03:13 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 04:46:26 2009 +0100"
      },
      "message": "sparseirq: make some func to be used with genirq\n\nImpact: clean up sparseirq fallout on random.c\n\nIngo suggested to change some ifdef from SPARSE_IRQ to GENERIC_HARDIRQS\nso we could some #ifdef later if all arch support genirq\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b840d79631c882786925303c2b0f4fefc31845ed",
      "tree": "cda60a95d4507fe1321fc285af38982d7eb9693b",
      "parents": [
        "597b0d21626da4e6f09f132442caf0cc2b0eb47c",
        "c3d80000e3a812fe5a200d6bde755fbd7fa65481"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 11:44:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 11:44:09 2009 -0800"
      },
      "message": "Merge branch \u0027cpus4096-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)\n  x86: export vector_used_by_percpu_irq\n  x86: use logical apicid in x2apic_cluster\u0027s x2apic_cpu_mask_to_apicid_and()\n  sched: nominate preferred wakeup cpu, fix\n  x86: fix lguest used_vectors breakage, -v2\n  x86: fix warning in arch/x86/kernel/io_apic.c\n  sched: fix warning in kernel/sched.c\n  sched: move test_sd_parent() to an SMP section of sched.h\n  sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc\u003e0\n  sched: activate active load balancing in new idle cpus\n  sched: bias task wakeups to preferred semi-idle packages\n  sched: nominate preferred wakeup cpu\n  sched: favour lower logical cpu number for sched_mc balance\n  sched: framework for sched_mc/smt_power_savings\u003dN\n  sched: convert BALANCE_FOR_xx_POWER to inline functions\n  x86: use possible_cpus\u003dNUM to extend the possible cpus allowed\n  x86: fix cpu_mask_to_apicid_and to include cpu_online_mask\n  x86: update io_apic.c to the new cpumask code\n  x86: Introduce topology_core_cpumask()/topology_thread_cpumask()\n  x86: xen: use smp_call_function_many()\n  x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c\n  ...\n\nFixed up trivial conflict in kernel/time/tick-sched.c manually\n"
    },
    {
      "commit": "43a256322ac1fc105c181b3cade3b9bfc0b63ca1",
      "tree": "6f4b6fc286451598d20222af8b511fe0a3fcdcfc",
      "parents": [
        "b2e2fe99628c4f944c3075258e536197b5a4f3f8"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sun Dec 28 16:01:13 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 29 12:15:49 2008 +0100"
      },
      "message": "sparseirq: move __weak symbols into separate compilation unit\n\nGCC has a bug with __weak alias functions: if the functions are in\nthe same compilation unit as their call site, GCC can decide to\ninline them - and thus rob the linker of the opportunity to override\nthe weak alias with the real thing.\n\nSo move all the IRQ handling related __weak symbols to kernel/irq/chip.c.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "13a0c3c269b223f60abfac8a9811d77111a8b4ba",
      "tree": "b57a92eb9eb7c8c1de30bbe29b6a461289e75c62",
      "parents": [
        "793f7b12a0c95e7bfec1badf9628043fb78fd440"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Dec 26 02:05:47 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Dec 27 13:24:00 2008 +0100"
      },
      "message": "sparseirq: work around compiler optimizing away __weak functions\n\nImpact: fix panic on null pointer with sparseirq\n\nSome GCC versions seem to inline the weak global function,\nwhen that function is empty.\n\nWork it around, by making the functions return a (dummy) integer.\n\nSigned-off-by: Yinghai \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f9af0e70911e9d6cc9a68f784dca86415486084d",
      "tree": "58a83c34cc8a511b5e05d48425251621e9b471a1",
      "parents": [
        "51bc39f4ba35bae153b32145077fb1109bcae14c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Dec 26 12:24:24 2008 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 26 09:48:17 2008 +0100"
      },
      "message": "irq: for_each_irq_desc() move to irqnr.h\n\nImpact: cleanup\n\nbefore CONFIG_SPARSE_IRQ age, for_each_irq_desc() sat in irqnr.h and\ncould be called from generic code.\n\nCONFIG_SPARSE_IRQ breaks this assumption, but SPARSE_IRQ version\nfor_each_irq_desc() also can move into irqnr.h easily.\n\nAlso, this patch unifies CONFIG_SPARSE_IRQ and !CONFIG_SPARSE_IRQ\nfor_each_irq_desc().\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "860cf8894b326e4b89720f520540604834337b72",
      "tree": "27c1363ea7224e9bf722b7292309f6d2a1ebbe61",
      "parents": [
        "e262a7ba31f0cd4dae225e6d2e9037e5ac6108e8",
        "973656fe1afb4adf95d7b9ab75d4660cd3821ea1",
        "f2b662da8d6bd44673537f3f64220afefdca369f",
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 16:27:54 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 16:27:54 2008 +0100"
      },
      "message": "Merge branches \u0027irq/sparseirq\u0027, \u0027irq/genirq\u0027 and \u0027irq/urgent\u0027; commit \u0027v2.6.28\u0027 into irq/core\n"
    },
    {
      "commit": "078a55db075bf4dcc03115dc94875b3dd83f69d4",
      "tree": "b9492847ce2edfd4be6c379a551349d2454b63ff",
      "parents": [
        "74c8a6130486bed224e960790f4aa72dd09c061e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Dec 18 16:57:52 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 02:06:53 2008 +0100"
      },
      "message": "sparseirq: add kernel-doc notation for new member in irq_desc, -v2\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "948a7b2b5e2bf126fb697aeb11ff379b2c85dd2e",
      "tree": "727c744438a44d85f7dc340b1bfcb3b127c84f13",
      "parents": [
        "9466d6036f73481104039fbe99338baed11c8fea",
        "17483a1f34c970e6c2cb8c082d4441bfabbe88a9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 17 13:16:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 17 13:16:08 2008 +0100"
      },
      "message": "Merge branch \u0027irq/sparseirq\u0027 into cpus4096\n\nConflicts:\n\tarch/x86/kernel/io_apic.c\n\nMerge irq/sparseirq here, to resolve conflicts.\n"
    },
    {
      "commit": "48a1b10aff588833b73994704c47bbd0deb73e9c",
      "tree": "deb3c7b486346c3afa54014b3c3516344c2708f2",
      "parents": [
        "13bd41bc227a48d6cf8992a3286bf6eba3c71a0c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Dec 11 00:15:01 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 17 00:14:01 2008 +0100"
      },
      "message": "x86, sparseirq: move irq_desc according to smp_affinity, v7\n\nImpact: improve NUMA handling by migrating irq_desc on smp_affinity changes\n\nif CONFIG_NUMA_MIGRATE_IRQ_DESC is set:\n\n-  make irq_desc to go with affinity aka irq_desc moving etc\n-  call move_irq_desc in irq_complete_move()\n-  legacy irq_desc is not moved, because they are allocated via static array\n\nfor logical apic mode, need to add move_desc_in_progress_in_same_domain,\notherwise it will not be moved \u003d\u003d\u003e also could need two phases to get\nirq_desc moved.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "968ea6d80e395cf11a51143cfa1b9a14ada676df",
      "tree": "dc2acec8c9bdced33afe1e273ee5e0b0b93d2703",
      "parents": [
        "7be7585393d311866653564fbcd10a3232773c0b",
        "8299608f140ae321e4eb5d1306184265d2b9511e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:55:51 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:55:51 2008 +1030"
      },
      "message": "Merge ../linux-2.6-x86\n\nConflicts:\n\n\tarch/x86/kernel/io_apic.c\n\tkernel/sched.c\n\tkernel/sched_stats.h\n"
    },
    {
      "commit": "0de26520c7cabf36e1de090ea8092f011a6106ce",
      "tree": "3d02e509b6315fdfd9cdb8c9e0b9ed0a30cf9384",
      "parents": [
        "29c0177e6a4ac094302bed54a1d4bbb6b740a9ef"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:20:26 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:20:26 2008 +1030"
      },
      "message": "cpumask: make irq_set_affinity() take a const struct cpumask\n\nImpact: change existing irq_chip API\n\nNot much point with gentle transition here: the struct irq_chip\u0027s\nsetaffinity method signature needs to change.\n\nFortunately, not widely used code, but hits a few architectures.\n\nNote: In irq_select_affinity() I save a temporary in by mangling\nirq_desc[irq].affinity directly.  Ingo, does this break anything?\n\n(Folded in fix from KOSAKI Motohiro)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nReviewed-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: ralf@linux-mips.org\nCc: grundler@parisc-linux.org\nCc: jeremy@xensource.com\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "240d367b4e6c6e3c5075e034db14dba60a6f5fa7",
      "tree": "9750876ae9afcfa265fc15185134d5aea13eb530",
      "parents": [
        "50dd94e017ec39f85c26b6c10ed9fb2d7a7d8042"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Dec 08 14:06:17 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 09 04:16:54 2008 +0100"
      },
      "message": "sparseirq: fix Alpha build failure\n\nImpact: build fix on Alpha\n\n-tip testing found this build failure on the Alpha defconfig:\n\n/home/mingo/tip/fs/proc/stat.c: In function \u0027show_stat\u0027:\n/home/mingo/tip/fs/proc/stat.c:48: error: implicit declaration of function \u0027for_each_irq_desc\u0027\n/home/mingo/tip/fs/proc/stat.c:48: error: expected \u0027;\u0027 before \u0027{\u0027 token\n\ncan not use irq_desc() in stat.c on older architectures.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.orgg\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b8f1efad30bd58f89961b82dfe68b9edf8fd2ac",
      "tree": "239251bad791fd60af8c0f2ba365b7188395c83f",
      "parents": [
        "218d11a8b071b23b76c484fd5f72a4fe3306801e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Dec 05 18:58:31 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 14:31:51 2008 +0100"
      },
      "message": "sparse irq_desc[] array: core kernel and x86 changes\n\nImpact: new feature\n\nProblem on distro kernels: irq_desc[NR_IRQS] takes megabytes of RAM with\nNR_CPUS set to large values. The goal is to be able to scale up to much\nlarger NR_IRQS value without impacting the (important) common case.\n\nTo solve this, we generalize irq_desc[NR_IRQS] to an (optional) array of\nirq_desc pointers.\n\nWhen CONFIG_SPARSE_IRQ\u003dy is used, we use kzalloc_node to get irq_desc,\nthis also makes the IRQ descriptors NUMA-local (to the site that calls\nrequest_irq()).\n\nThis gets rid of the irq_cfg[] static array on x86 as well: irq_cfg now\nuses desc-\u003echip_data for x86 to store irq_cfg.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e262a7ba31f0cd4dae225e6d2e9037e5ac6108e8",
      "tree": "338d892cf8d120341fa206ad8ed6350eb5bedd79",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Sun Nov 23 14:34:43 2008 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 16:15:00 2008 +0100"
      },
      "message": "irq.h: remove padding from irq_desc on 64bits\n\nImpact: reduce struct irq_desc size\n\nstruct irq_desc: reorder to remove padding on 64bits\n\nshrinks irq_desc to 128 bytes which saves data space \u0026 cache lines\n\nOn a generic x86_64/SMP build this reduces the reported data size by\n64k.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ed1cdcf9a83205d1343f29b630abff232eaa72c",
      "tree": "97304ced8d05b5b7497e37b661abbce4540f0194",
      "parents": [
        "9f1441644213e5f6faa150206399fe511eba2eb6"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Nov 21 16:59:57 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:45 2008 +0100"
      },
      "message": "irq.h: fix missing/extra kernel-doc\n\nImpact: fix kernel-doc build\n\nFix missing \u0026 excess irq.h kernel-doc:\n\nWarning(include/linux/irq.h:182): No description found for parameter \u0027irq\u0027\nWarning(include/linux/irq.h:182): Excess struct/union/enum/typedef member \u0027affinity_entry\u0027 description in \u0027irq_desc\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "f6d87f4bd259cf33e092cd1a8fde05f291c47af1"
}
