)]}'
{
  "log": [
    {
      "commit": "e955b5398b660a204854bdff059d050b44090879",
      "tree": "6c12159e98d47166541d00daff0ab07382a2c2de",
      "parents": [
        "efa2559f65167989f1893cb065e3126d4f13ba60"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 19 20:50:37 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:54 2008 +0200"
      },
      "message": "sparseirq: fix lockdep\n\n-tip testing found this lockdep splat:\n\n[    0.000000] Initializing CPU#0\n[    0.000000] found new irq_desc for irq 0\n[    0.000000] INFO: trying to register non-static key.\n[    0.000000] the code is fine but needs lockdep annotation.\n[    0.000000] turning off the locking correctness validator.\n[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.27-rc3-tip-00191-g98ccb89-dirty #1\n[    0.000000]  [\u003cc0153c22\u003e] register_lock_class+0x3d2/0x400\n[    0.000000]  [\u003cc0104d87\u003e] ? mcount_call+0x5/0xa\n[    0.000000]  [\u003cc0154f3a\u003e] __lock_acquire+0x22a/0x5d0\n[    0.000000]  [\u003cc0104d87\u003e] ? mcount_call+0x5/0xa\n[    0.000000]  [\u003cc0155351\u003e] lock_acquire+0x71/0xa0\n[    0.000000]  [\u003cc016d61f\u003e] ? set_irq_chip+0x3f/0x90\n[    0.000000]  [\u003cc070f148\u003e] _spin_lock_irqsave+0x58/0x90\n[    0.000000]  [\u003cc016d61f\u003e] ? set_irq_chip+0x3f/0x90\n[    0.000000]  [\u003cc016d61f\u003e] set_irq_chip+0x3f/0x90\n[    0.000000]  [\u003cc016d7e0\u003e] ? handle_level_irq+0x0/0xe0\n[    0.000000]  [\u003cc016da1a\u003e] set_irq_chip_and_handler_name+0x1a/0x40\n[    0.000000]  [\u003cc0a396c1\u003e] init_ISA_irqs+0x51/0xa0\n[    0.000000]  [\u003cc0a4a365\u003e] pre_intr_init_hook+0x25/0x30\n[    0.000000]  [\u003cc0a39723\u003e] native_init_IRQ+0x13/0x370\n[    0.000000]  [\u003cc015569c\u003e] ? lock_release+0xcc/0x1d0\n[    0.000000]  [\u003cc0104d87\u003e] ? mcount_call+0x5/0xa\n[    0.000000]  [\u003cc070dc22\u003e] ? __mutex_unlock_slowpath+0x92/0x110\n[    0.000000]  [\u003cc070dcad\u003e] ? mutex_unlock+0xd/0x10\n[    0.000000]  [\u003cc0135f62\u003e] ? cpu_maps_update_done+0x12/0x20\n[    0.000000]  [\u003cc06c6743\u003e] ? register_cpu_notifier+0x23/0x30\n[    0.000000]  [\u003cc011e8ae\u003e] init_IRQ+0xe/0x10\n[    0.000000]  [\u003cc0a357a5\u003e] start_kernel+0x1c5/0x340\n[    0.000000]  [\u003cc0a35280\u003e] ? unknown_bootoption+0x0/0x210\n[    0.000000]  [\u003cc0a3506b\u003e] i386_start_kernel+0x6b/0x80\n[    0.000000]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[    0.000000] found new irq_desc for irq 1\n[    0.000000] found new irq_desc for irq 2\n[    0.000000] found new irq_desc for irq 3\n\nthis:\n\n static void init_one_irq_desc(struct irq_desc *desc)\n {\n         memcpy(desc, \u0026irq_desc_init, sizeof(struct irq_desc));\n #ifdef CONFIG_TRACE_IRQFLAGS\n         lockdep_set_class(\u0026desc-\u003elock, \u0026irq_desc_lock_class);\n #endif\n }\n\nshould be unconditional.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b8e8c1bf7275eca859fe551dfa484134eaf013b",
      "tree": "3e2f950a8f34f419a59a31ddd12e9d7331911e3d",
      "parents": [
        "6d50bc26836e16a9589e0b128d527c29e30d722a"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:23 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:52 2008 +0200"
      },
      "message": "x86: remove irqbalance in kernel for 32 bit\n\nThis has been deprecated for years, the user space irqbalanced utility\nworks better with numa, has configurable policies, etc...\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmai.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "67fb283e148e9bd761f73691d3173b6eab9ba8db",
      "tree": "88ba8337dc5bc90e5f95d84d981f750bb7173dd2",
      "parents": [
        "cb5bc83225a86ca53bbb889ed8439e4fd6cf44ac"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:18 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:51 2008 +0200"
      },
      "message": "irq: separate sparse_irqs from sparse_irqs_free\n\nso later don\u0027t need compare with -1U\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb5bc83225a86ca53bbb889ed8439e4fd6cf44ac",
      "tree": "d2c43413adbc86562ab63498e3ce14e36ba253ed",
      "parents": [
        "1d5f6b36c4736af1dac396d6267eb53dcc8c0021"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:17 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:51 2008 +0200"
      },
      "message": "x86_64: rename irq_desc/irq_desc_alloc\n\nchange names:\n\n          irq_desc() \u003d\u003d\u003e irq_desc_alloc\n\t__irq_desc() \u003d\u003d\u003e irq_desc\n\nAlso split a few of the uses in lowlevel x86 code.\n\nv2: need to check if desc is null in smp_irq_move_cleanup\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "46926b67fc663d357a1a8174328998a9e49da0b8",
      "tree": "33870a6c416bbc4d246ecfbf015a78c61943a36d",
      "parents": [
        "7d94f7ca401dd7f445fda9a971a48aa5427b3e55"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:15 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:50 2008 +0200"
      },
      "message": "generic: add irq_desc in function in parameter\n\nSo we could remove some duplicated calling to irq_desc\n\nv2: make sure irq_desc in  init/main.c is not used without generic_hardirqs\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d94f7ca401dd7f445fda9a971a48aa5427b3e55",
      "tree": "8f4d4b73966fd0aa54df2da5bbcf67ea0a7ff43a",
      "parents": [
        "46b8214d12c274bd4265aae482ab7ffe69d94818"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:14 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:50 2008 +0200"
      },
      "message": "irq: remove \u003e\u003d nr_irqs checking with config_have_sparse_irq\n\nremove irq limit checks - nr_irqs is dynamic and we expand anytime.\n\nv2: fix checking about result irq_cfg_without_new, so could use msi again\nv3: use irq_desc_without_new to check irq is valid\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c6927a38f65b53b62f86158fba29a068c4e8b6a",
      "tree": "4f23cf5689c8fbaed771219b4afd3f785d8048bc",
      "parents": [
        "9059d8fa4a3a9153da53da890039f7f956cc9d19"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:11 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:33 2008 +0200"
      },
      "message": "irq: replace loop with nr_irqs with for_each_irq_desc\n\nThere are a handful of loops that go from 0 to nr_irqs and use\nget_irq_desc() on them. These would allocate all the irq_desc\nentries, regardless of the need for them.\n\nUse the smarter for_each_irq_desc() iterator that will only iterate\nover the present ones.\n\nv2: make sure arch without GENERIC_HARDIRQS work too\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9059d8fa4a3a9153da53da890039f7f956cc9d19",
      "tree": "142f12d7843a4000eb9be7dd8a4a933ce2955f72",
      "parents": [
        "7f95ec9e4c12fd067febfd57532da1166d75d858"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:10 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:32 2008 +0200"
      },
      "message": "irq: add irq_desc_without_new\n\nadd an irq_desc accessor that will not allocate any sparse entry\nbut returns failure if there\u0027s no entry present.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f95ec9e4c12fd067febfd57532da1166d75d858",
      "tree": "b395b6776485f60e3f5d9d820ad665161ef76771",
      "parents": [
        "3060d6fe28570640c2d7d66d38b9eaa848c3b9e3"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:09 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:32 2008 +0200"
      },
      "message": "x86: move kstat_irqs from kstat to irq_desc\n\nbased on Eric\u0027s patch ...\n\ntogether mold it with dyn_array for irq_desc, will allcate kstat_irqs for\nnr_irq_desc alltogether if needed. -- at that point nr_cpus is known already.\n\nv2: make sure system without generic_hardirqs works they don\u0027t have irq_desc\nv3: fix merging\nv4: [mingo@elte.hu] fix typo\n\n[ mingo@elte.hu ] irq: build fix\n\nfix:\n\n arch/x86/xen/spinlock.c: In function \u0027xen_spin_lock_slow\u0027:\n arch/x86/xen/spinlock.c:90: error: \u0027struct kernel_stat\u0027 has no member named \u0027irqs\u0027\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3bf52a4df3ccd25d4154797977c556a2a8b3bc1e",
      "tree": "d4024218a8f88ab2ae1aa37aaf93df3a579cd216",
      "parents": [
        "08678b0841267c1d00d771fe01548d86043d065e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 19 20:50:29 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:30 2008 +0200"
      },
      "message": "irq: sparse irqs, fix IRQ auto-probe crash\n\nfix:\n\n[   10.631533] calling  yenta_socket_init+0x0/0x20\n[   10.631533] Yenta: CardBus bridge found at 0000:15:00.0 [17aa:2012]\n[   10.631533] Yenta: Using INTVAL to route CSC interrupts to PCI\n[   10.631533] Yenta: Routing CardBus interrupts to PCI\n[   10.631533] Yenta TI: socket 0000:15:00.0, mfunc 0x01d01002, devctl 0x64\n[   10.731599] BUG: unable to handle kernel NULL pointer dereference at 00000040\n[   10.731838] IP: [\u003cc0c95b5f\u003e] _spin_lock_irq+0xf/0x20\n[   10.732221] *pde \u003d 00000000\n[   10.732741] Oops: 0002 [#1] SMP\n[   10.733453]\n[   10.734253] Pid: 1, comm: swapper Tainted: G        W (2.6.27-rc3-tip-00173-gd7eaa4f-dirty #1)\n[   10.735188] EIP: 0060:[\u003cc0c95b5f\u003e] EFLAGS: 00010002 CPU: 0\n[   10.735523] EIP is at _spin_lock_irq+0xf/0x20\n[   10.735523] EAX: 00000040 EBX: 00000000 ECX: f6e04c90 EDX: 00000100\n[   10.735523] ESI: 000000df EDI: f6e04c90 EBP: f7867df0 ESP: f7867df0\n[   10.735523]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n[   10.735523] Process swapper (pid: 1, ti\u003df7867000 task\u003df7870000 task.ti\u003df7867000)\n[   10.735523] Stack: f7867e04 c0155fbd 00000000 00000000 f6e04c90 f7867e5c c0c6e319 c0f6a074\n[   10.735523]        f6e04c90 000017aa 00002012 c112b648 f791f240 c112b5e0 f7867e44 c010440b\n[   10.735523]        f791f240 f791f29c c112b8ec f791f240 00000000 f7867e5c c048f893 03c0b648\n[   10.735523] Call Trace:\n[   10.735523]  [\u003cc0155fbd\u003e] ? probe_irq_on+0x3d/0x140\n[   10.735523]  [\u003cc0c6e319\u003e] ? yenta_probe+0x529/0x640\n[   10.735523]  [\u003cc010440b\u003e] ? mcount_call+0x5/0xa\n[   10.735523]  [\u003cc048f893\u003e] ? pci_match_device+0xa3/0xb0\n[   10.735523]  [\u003cc048fc1e\u003e] ? pci_device_probe+0x5e/0x80\n[   10.735523]  [\u003cc0515423\u003e] ? driver_probe_device+0x83/0x180\n[   10.735523]  [\u003cc0515594\u003e] ? __driver_attach+0x74/0x80\n[   10.735523]  [\u003cc0514b69\u003e] ? bus_for_each_dev+0x49/0x70\n[   10.735523]  [\u003cc051528e\u003e] ? driver_attach+0x1e/0x20\n[   10.735523]  [\u003cc0515520\u003e] ? __driver_attach+0x0/0x80\n[   10.735523]  [\u003cc05150d3\u003e] ? bus_add_driver+0x1a3/0x220\n[   10.735523]  [\u003cc048fb60\u003e] ? pci_device_remove+0x0/0x40\n[   10.735523]  [\u003cc05157f4\u003e] ? driver_register+0x54/0x130\n[   10.735523]  [\u003cc048fe2f\u003e] ? __pci_register_driver+0x4f/0x90\n[   10.735523]  [\u003cc11e9419\u003e] ? yenta_socket_init+0x19/0x20\n[   10.735523]  [\u003cc0101125\u003e] ? do_one_initcall+0x35/0x160\n[   10.735523]  [\u003cc11e9400\u003e] ? yenta_socket_init+0x0/0x20\n[   10.735523]  [\u003cc01391a6\u003e] ? __queue_work+0x36/0x50\n[   10.735523]  [\u003cc013922d\u003e] ? queue_work_on+0x3d/0x50\n[   10.735523]  [\u003cc11a2758\u003e] ? kernel_init+0x148/0x210\n[   10.735523]  [\u003cc11a2610\u003e] ? kernel_init+0x0/0x210\n[   10.735523]  [\u003cc01043f3\u003e] ? kernel_thread_helper+0x7/0x10\n[   10.735523]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[   10.735523] Code: 10 38 f2 74 06 f3 90 8a 10 eb f6 5d 89 c8 c3 8d b6 00 00 00 00 8d bc 27 00 00 00 00 55 89 e5 e8 a4 e8 46 ff fa ba 00 01 00 00 90 \u003c66\u003e 0f c1 10 38 f2 74 06 f3 90 8a 10 eb f6 5d c3 90 55 89 e5 53\n\nas auto-probing wants to iterate over existing irqs.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08678b0841267c1d00d771fe01548d86043d065e",
      "tree": "7debb21f9e9a768ced43077f7376797a0c46f8c0",
      "parents": [
        "bfea1238beac9d306eeac081c67de5ca6aec4c7a"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:05 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:29 2008 +0200"
      },
      "message": "generic: sparse irqs: use irq_desc() together with dyn_array, instead of irq_desc[]\n\nadd CONFIG_HAVE_SPARSE_IRQ to for use condensed array.\nGet rid of irq_desc[] array assumptions.\n\nPreallocate 32 irq_desc, and irq_desc() will try to get more.\n\n( No change in functionality is expected anywhere, except the odd build\n  failure where we missed a code site or where a crossing commit itroduces\n  new irq_desc[] usage. )\n\nv2: according to Eric, change get_irq_desc() to irq_desc()\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa42d10dd5e1ff373061c0526f272106512301f9",
      "tree": "17bea35293b743cbc1a9f97fde3d81dd9e054170",
      "parents": [
        "d60458b224d6b997a582a05cb8c4b9bed9e17a1d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 19 20:50:30 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:08 2008 +0200"
      },
      "message": "irq: sparse irqs, export nr_irqs\n\nfix:\n\n  Building modules, stage 2.\n  MODPOST 458 modules\n  ERROR: \"nr_irqs\" [drivers/serial/8250.ko] undefined!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d60458b224d6b997a582a05cb8c4b9bed9e17a1d",
      "tree": "122710312c443069cb8e25a27032f09572550c45",
      "parents": [
        "5aeecaf4908499b1fd006d313ccbacde6a6bac43"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:00 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:07 2008 +0200"
      },
      "message": "irq: make irq_desc to use dyn_array\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85c0f90978bf50596dbd23854648020f1f9b5bfd",
      "tree": "f66c598bb37b925dd6c74e4ce1fb06345c742c01",
      "parents": [
        "6da55c3e8da88e8a7cb6452160776ad6706798ad"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:49:47 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:05 2008 +0200"
      },
      "message": "irq: introduce nr_irqs\n\nat this point nr_irqs is equal NR_IRQS\n\nconvert a few easy users from NR_IRQS to dynamic nr_irqs.\n\nv2: according to Eric, we need to take care of arch without generic_hardirqs\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fef06e8c8c52aa7170dbbb068aa996d83738d38",
      "tree": "f46a1eefd68863bdae57afa004e5281801a6b61e",
      "parents": [
        "0c5d1eb77a8be917b638344a22afe1398236482b",
        "278429cff8809958d25415ba0ed32b59866ab1a8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:51:32 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:51:32 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into genirq\n"
    },
    {
      "commit": "0c5d1eb77a8be917b638344a22afe1398236482b",
      "tree": "57d57c9b270cc10428f818cfec9725a1344b78ce",
      "parents": [
        "d6d5aeb661fc14655c417f3582ae7ec52985d2a8"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 01 14:46:18 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 02 10:24:09 2008 +0200"
      },
      "message": "genirq: record trigger type\n\nGenirq hasn\u0027t previously recorded the trigger type used by any given IRQ,\nalthough some irq_chip support has done so.  That data can be useful when\ntroubleshooting.  This patch records it in the relevant irq_desc.status\nbits, and improves consistency between the two driver-visible calls\naffected:\n\n - Make set_irq_type() usage match request_irq() usage:\n    * IRQ_TYPE_NONE should be a NOP; succeed, so irq_chip methods\n      won\u0027t have to handle that case any more (many do it wrong).\n    * IRQ_TYPE_PROBE is ignored; any buggy out-of-tree callers\n      might need to switch over to the real IRQ probing code.\n    * emit the same diagnostics (from shared utility code)\n\n - Their kerneldoc now reflects usage:\n    * request_irq() flags include IRQF_TRIGGER_* to specify\n      active edge(s)/level ... docs previously omitted that\n    * set_irq_type() is declared in \u003clinux/irq.h\u003e so callers\n      should use the (bit-equivalent) IRQ_TYPE_* symbols there\n\nAlso: adds a warning about shared IRQs that don\u0027t end up using the\nrequested trigger mode; and fix an unrelated \"sparse\" warning.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6d5aeb661fc14655c417f3582ae7ec52985d2a8",
      "tree": "5e168da05cb28d10b5accc74718428cfd5527201",
      "parents": [
        "7e6e178ab1548c8d894a77593e757acf4510b8ba",
        "94aca1dac6f6d21f4b07e4864baf7768cabcc6e7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 02 10:21:26 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 02 10:21:26 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.27-rc8\u0027 into genirq\n"
    },
    {
      "commit": "7e6e178ab1548c8d894a77593e757acf4510b8ba",
      "tree": "1bbebd67a2a80573f277e39e7746c2d9c19dfcf4",
      "parents": [
        "377bf1e4ac2d894791733270604594c7c851ef83"
      ],
      "author": {
        "name": "Pawel MOLL",
        "email": "pawel.moll@st.com",
        "time": "Mon Sep 01 10:12:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 20:36:38 2008 +0200"
      },
      "message": "genirq: irq_chip-\u003estartup() usage in setup_irq and set_irq_chained handler\n\nThis patch clarifies usage of irq_chip-\u003estartup() callback:\n\n1. The \"if (startup) startup(); else enabled();\" code in setup_irq()\n   is unnecessary, as startup() falls back to enabled() via\n   default callbacks, set by irq_chip_set_defaults().\n\n2. When using set_irq_chained_handler() the startup() was never called,\n   which is not good at all... Fixed. And again - when startup() is not\n   defined the call will fall back to enable() than to unmask() via\n   default callbacks.\n\nSigned-off-by: Pawel Moll \u003cpawel.moll@st.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "377bf1e4ac2d894791733270604594c7c851ef83",
      "tree": "955bb2e540d8ae5b5290982dcadb3ff18673ba2c",
      "parents": [
        "8d00a6c8f6b08e7167bc03bf955cdc7e47c5132e"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Thu Aug 21 22:58:28 2008 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 22 08:07:21 2008 +0200"
      },
      "message": "genirq: fix irq_desc-\u003edepth handling with DEBUG_SHIRQ\n\nWhen DEBUG_SHIRQ is selected, a spurious IRQ is issued before\nthe setup_irq() initializes the desc-\u003edepth. An IRQ handler may\ncall disable_irq_nosync(), but then setup_irq() will overwrite\ndesc-\u003edepth, and upon enable_irq() we\u0027ll catch this WARN:\n\n------------[ cut here ]------------\nBadness at kernel/irq/manage.c:180\nNIP: c0061ab8 LR: c0061f10 CTR: 00000000\nREGS: cf83be50 TRAP: 0700   Not tainted  (2.6.27-rc3-23450-g74919b0)\nMSR: 00021032 \u003cME,IR,DR\u003e  CR: 22042022  XER: 20000000\nTASK \u003d cf829100[5] \u0027events/0\u0027 THREAD: cf83a000\nGPR00: c0061f10 cf83bf00 cf829100 c038e674 00000016 00000000 cf83bef8 00000038\nGPR08: c0298910 00000000 c0310d28 cf83a000 00000c9c 1001a1a8 0fffe000 00800000\nGPR16: ffffffff 00000000 007fff00 00000000 007ffeb0 c03320a0 c031095c c0310924\nGPR24: cf8292ec cf807190 cf83a000 00009032 c038e6a4 c038e674 cf99b1cc c038e674\nNIP [c0061ab8] __enable_irq+0x20/0x80\nLR [c0061f10] enable_irq+0x50/0x70\nCall Trace:\n[cf83bf00] [c038e674] irq_desc+0x630/0x9000 (unreliable)\n[cf83bf10] [c0061f10] enable_irq+0x50/0x70\n[cf83bf30] [c01abe94] phy_change+0x68/0x108\n[cf83bf50] [c0046394] run_workqueue+0xc4/0x16c\n[cf83bf90] [c0046834] worker_thread+0x74/0xd4\n[cf83bfd0] [c004ab7c] kthread+0x48/0x84\n[cf83bff0] [c00135e0] kernel_thread+0x44/0x60\nInstruction dump:\n4e800020 3d20c031 38a94214 4bffffcc 9421fff0 7c0802a6 93e1000c 7c7f1b78\n90010014 8123001c 2f890000 409e001c \u003c0fe00000\u003e 80010014 83e1000c 38210010\n\nThat trace corresponds to this line:\nWARN(1, KERN_WARNING \"Unbalanced enable for IRQ %d\\n\", irq);\n\nThe patch fixes the problem by moving the SHIRQ code below the\nsetup_irq().\n\nUnfortunately we can\u0027t easily move the SHIRQ code inside the\nsetup_irq(), since it grabs a spinlock, so to prvent a \u0027real\u0027\nIRQ from interfere us we should disable that IRQ.\n\np.s. The driver in question is drivers/net/phy/phy.c.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51ca3c679194e7435c25b8e77b0a73c597e41ae9",
      "tree": "a681dca369607ab0f371d5246b0f75140b860a8a",
      "parents": [
        "b55793f7528ce1b73c25b3ac8a86a6cda2a0f9a4",
        "b635acec48bcaa9183fcbf4e3955616b0d4119b5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 14 14:58:01 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 14 14:58:01 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/core\n\nConflicts:\n\tarch/x86/kernel/genapic_64.c\n\tinclude/asm-x86/kvm_host.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f18e439d1035d059534d261c414af33f89aee89a",
      "tree": "3acd22b961fdcf2340eb0e9527fd9f6b810ee3b3",
      "parents": [
        "50ac2d694f2dd1658341cf97bcf2ffb836d772cb"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Aug 12 15:09:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:07:30 2008 -0700"
      },
      "message": "genirq: switch /proc/irq/*/smp_affinity et al to seqfiles\n\nSwitch /proc/irq/*/smp_affinity , /proc/irq/default_smp_affinity to\nseq_files.\n\ncat(1) reads with 1024 chunks by default, with high enough NR_CPUS, there\nwill be -EINVAL.\n\nAs side effect, there are now two less users of the -\u003eread_proc interface.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c69ad71bcdecbaab82cfacb1dc967bd7fd967a3b",
      "tree": "0554837705dd0e63d18522085c22ab0c2c1467ff",
      "parents": [
        "5b2becc8cffdccdd60c63099f592ddd35aa6c34f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Tue Aug 05 13:01:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 05 14:33:47 2008 -0700"
      },
      "message": "genirq: better warning on irqchip-\u003eset_type() failure\n\nWhile I\u0027m glad to finally see the hole fixed whereby passing an invalid\nIRQ trigger type to request_irq() would be ignored, the current diagnostic\nisn\u0027t quite useful.  Fixed by also listing the trigger type which was\nrejected.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Uwe Kleine-König \u003cUwe.Kleine-Koenig@digi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15dd859cacf312f606f54502d1f66537a1e5c78c",
      "tree": "e50e125eaa6da83fa715704e53c1bde013d1ef8e",
      "parents": [
        "b2d9d33412b9d13a40cd314d93ab517950fc5950",
        "6e86841d05f371b5b9b86ce76c02aaee83352298"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 30 19:33:48 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 30 19:33:48 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.27-rc1\u0027 into x86/core\n\nConflicts:\n\n\tinclude/asm-x86/dma-mapping.h\n\tinclude/asm-x86/namei.h\n\tinclude/asm-x86/uaccess.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "261c40c1191ad8d7a2e49fa2bb5f6a84e3d44b10",
      "tree": "31660b2632ffaa1ea43107eb941670d5c95d3fce",
      "parents": [
        "4c8573e25f27b60b495aaa23089032f685ffd5ba"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "use WARN() in kernel/irq/chip.c\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message\nbecomes part of the warning section for better reporting/collection.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8c512f6190e313df69060bae4a161c5c044e272",
      "tree": "4b36b2ff66f5139141058d8d63f3dc219281bb5d",
      "parents": [
        "51cc50685a4275c6a02653670af9f108a64e01cf"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in kernel/irq/manage.c\n\nReplace a printk+WARN_ON() by a WARN(); this increases the chance of the\nstring making it into the bugreport (ie: it goes inside the\n---[ cut here ]--- section)\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6dec3a10a7a6093af10cef7ac56021150afd6451",
      "tree": "f4d8511f023e3e0c203baf889d4a0f3925882381",
      "parents": [
        "29308333fbe2cc61258c1c470f9403960428beb2",
        "10a010f6953b5a14ba2f0be40a4fce1bea220875"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:29:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:29:23 2008 +0200"
      },
      "message": "Merge branch \u0027x86/x2apic\u0027 into x86/core\n\nConflicts:\n\n\tinclude/asm-x86/i8259.h\n\tinclude/asm-x86/msidef.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7a2c477069fbd32f91598f05334003979b987a39",
      "tree": "fe4ac84819050159a45752ad4c03b2abc971ad06",
      "parents": [
        "a8f18b909c0a3f22630846207035c8b84bb252b8"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 01:45:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:29 2008 -0700"
      },
      "message": "kernel/irq/manage.c: replace a printk + WARN_ON() to a WARN()\n\nReplace a printk+WARN_ON() by a WARN(); this increases the chance of the\nstring making it into the bugreport (ie: it goes inside the\n---[ cut here ]--- section)\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10a010f6953b5a14ba2f0be40a4fce1bea220875",
      "tree": "19aadf718c796bc7fae0a1a1c970d84d67c541d4",
      "parents": [
        "510b37258dfd61693ca6c039865c78bd996e3718",
        "fb2e405fc1fc8b20d9c78eaa1c7fd5a297efde43"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 25 13:08:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 25 13:08:16 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/x2apic\n\nConflicts:\n\n\tdrivers/pci/dmar.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82736f4d1d2b7063b829cc93171a6e5aea8a9c49",
      "tree": "3e0e7bf57638dcb1321496440a11623beb005458",
      "parents": [
        "f606ddf42fd4edc558eeb48bfee66d2c591571d2"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "Uwe.Kleine-Koenig@digi.com",
        "time": "Wed Jul 23 21:28:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:24 2008 -0700"
      },
      "message": "generic irqs: handle failure of irqchip-\u003eset_type in setup_irq\n\nset_type returns an int indicating success or failure, but up to now\nsetup_irq ignores that.\n\nIn my case this resulted in a machine hang:\n\ngpio-keys requested IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, but\narm/ns9xxx can only trigger on one direction so set_type didn\u0027t touch\nthe configuration which happens do default to a level sensitiveness and\nreturned -EINVAL.  setup_irq ignored that and unmasked the irq.  This\nresulted in an endless triggering of the gpio-key interrupt service\nroutine which effectively killed the machine.\n\nWith this patch applied setup_irq propagates the error to the caller.\n\nNote that before in the case\n\n\tchip \u0026\u0026 !chip-\u003eset_type \u0026\u0026 !chip-\u003ename\n\na NULL pointer was feed to printk.  This is fixed, too.\n\nSigned-off-by: Uwe Kleine-König \u003cUwe.Kleine-Koenig@digi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2db873211ba47ef704c301f9ecf4a33413a0b649",
      "tree": "1d406d7b446da8e677f6014b4fd101456e485466",
      "parents": [
        "1bad879a078111748ebc27fb0d29e8c916556835"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "Uwe.Kleine-Koenig@digi.com",
        "time": "Wed Jul 23 14:42:25 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 09:35:53 2008 -0700"
      },
      "message": "set_irq_wake: fix return code and wake status tracking\n\nSince 15a647eba94c3da27ccc666bea72e7cca06b2d19 set_irq_wake returned -ENXIO\nif another device had it already enabled.  Zero is the right value to\nreturn in this case.  Moreover the change to desc-\u003estatus was not reverted\nif desc-\u003echip-\u003eset_wake returned an error.\n\nSigned-off-by: Uwe Kleine-König \u003cUwe.Kleine-Koenig@digi.com\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d00a6c8f6b08e7167bc03bf955cdc7e47c5132e",
      "tree": "afce128afbd4e8c669204476912df9e1a26699b4",
      "parents": [
        "f84dbb912f344270f31d5cce974f12908a47798d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 22 08:39:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 22 08:39:57 2008 +0200"
      },
      "message": "genirq: remove last NO_IDLE_HZ leftovers\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a208f37a465e222218974ab20a31b42b7b4893b2",
      "tree": "77c6acdd4be32024330a14f2618b814126ce7a20",
      "parents": [
        "511d9d34183662aada3890883e860b151d707e22",
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 22:50:34 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 22:50:34 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/x2apic\n"
    },
    {
      "commit": "f84dbb912f344270f31d5cce974f12908a47798d",
      "tree": "0eb8543dc2f9455decd0c69f07d40f03e1868932",
      "parents": [
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 10 14:48:54 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 19:21:13 2008 +0200"
      },
      "message": "genirq: enable polling for disabled screaming irqs\n\nWhen we disable a screaming irq we never see it again.  If the irq\nline is shared or if the driver half works this is a real pain.  So\nperiodically poll the handlers for screaming interrupts.\n\nI use a timer instead of the classic irq poll technique of working off\nthe timer interrupt because when we use the local apic timers\nnote_interrupt is never called (bug?).  Further on a system with\ndynamic ticks the timer interrupt might not even fire unless there is\na timer telling it it needs to.\n\nI forced this case on my test system with an e1000 nic and my ssh\nsession remained responsive despite the interrupt handler only being\ncalled every 10th of a second.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "72b1e22dfcad1daca6906148fd956ffe404bb0bc",
      "tree": "9ca9c198c7bd592528c322002bada84bc3e9d84d",
      "parents": [
        "b6fcb33ad6c05f152a672f7c96c1fab006527b80"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jul 10 11:16:45 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 12 08:44:55 2008 +0200"
      },
      "message": "x64, x2apic/intr-remap: generic irq migration support from process context\n\nGeneric infrastructure for migrating the irq from the process context in the\npresence of CONFIG_GENERIC_PENDING_IRQ.\n\nThis will be used later for migrating irq in the presence of\ninterrupt-remapping.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: akpm@linux-foundation.org\nCc: arjan@linux.intel.com\nCc: andi@firstfloor.org\nCc: ebiederm@xmission.com\nCc: jbarnes@virtuousgeek.org\nCc: steiner@sgi.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48627d8d23c34106c1365563604739a50343edaf",
      "tree": "8e73b8abfe222a4f9dee54ec94e4e9195599aac3",
      "parents": [
        "18404756765c713a0be4eb1082920c04822ce588"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 10 07:01:13 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 10 07:01:13 2008 +0200"
      },
      "message": "genirq: remove extraneous checks in manage.c\n\nIn http://bugzilla.kernel.org/show_bug.cgi?id\u003d9580 it was pointed out\nthat the desc-\u003echip checks are extraneous. In fact these are left\novers from early development and can be removed safely.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "18404756765c713a0be4eb1082920c04822ce588",
      "tree": "ed426f8fe90bff1ffd854074a2e4b370dd6821f8",
      "parents": [
        "c3b25b32e8bef526cca748e1ba023c6bdd705a99"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Thu May 29 11:02:52 2008 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 05 15:18:30 2008 +0200"
      },
      "message": "genirq: Expose default irq affinity mask (take 3)\n\nCurrent IRQ affinity interface does not provide a way to set affinity\nfor the IRQs that will be allocated/activated in the future.\nThis patch creates /proc/irq/default_smp_affinity that lets users set\ndefault affinity mask for the newly allocated IRQs. Changing the default\ndoes not affect affinity masks for the currently active IRQs, they\nhave to be changed explicitly.\n\nUpdated based on Paul J\u0027s comments and added some more documentation.\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: pj@sgi.com\nCc: a.p.zijlstra@chello.nl\nCc: tglx@linutronix.de\nCc: rdunlap@xenotime.net\nCc: mingo@elte.hu\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1adb0850a1254333d81e64121c80af100c6d6e06",
      "tree": "61835b06e78eb6f556c038ceabc706440f339d3a",
      "parents": [
        "886c35fbcf6fb2eee15687efc2d64d99b6ad9a4a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Apr 28 17:01:56 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 02 13:40:34 2008 +0200"
      },
      "message": "genirq: reenable a nobody cared disabled irq when a new driver arrives\n\nUwe Kleine-Koenig has some strange hardware where one of the shared\ninterrupts can be asserted during boot before the appropriate driver\nloads. Requesting the shared irq line from another driver result in a\nspurious interrupt storm which finally disables the interrupt line.\n\nI have seen similar behaviour on resume before (the hardware does not\nwork anymore so I can not verify).\n\nChange the spurious disable logic to increment the disable depth and\nmark the interrupt with an extra flag which allows us to reenable the\ninterrupt when a new driver arrives which requests the same irq\nline. In the worst case this will disable the irq again via the\nspurious trap, but there is a decent chance that the new driver is the\none which can handle the already asserted interrupt and makes the box\nusable again.\n\nEric Biederman said further: This case also happens on a regular basis\nin kdump kernels where we deliberately don\u0027t shutdown the hardware\nbefore starting the new kernel.  This patch should reduce the need for\nusing irqpoll in that situation by a small amount.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-and-Acked-by: Uwe Kleine-König \u003cUwe.Kleine-Koenig@digi.com\u003e\n\n"
    },
    {
      "commit": "1aeb272cf09f9e2cbc62163b9f37a9b4d1c7e81d",
      "tree": "17c76e18fa145affedae790460cff724f965646b",
      "parents": [
        "3a2e7f47d71e1df86acc1dda6826890b6546a4e1"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Tue Apr 29 00:59:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:04 2008 -0700"
      },
      "message": "kernel: explicitly include required header files under kernel/\n\nFollowing an experimental deletion of the unnecessary directive\n\n #include \u003clinux/slab.h\u003e\n\nfrom the header file \u003clinux/percpu.h\u003e, these files under kernel/ were exposed\nas needing to include one of \u003clinux/slab.h\u003e or \u003clinux/gfp.h\u003e, so explicit\nincludes were added where necessary.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d366f8cbc16882e93538d9a52423c2f50dad7c06",
      "tree": "64202cd91a942dc3ea9b88adb6da562c2fb191a8",
      "parents": [
        "f46bdf2db25dfaff3b611c9711705645cdb03acc"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:12 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:58 2008 +0200"
      },
      "message": "cpumask: Cleanup more uses of CPU_MASK and NODE_MASK\n\n *  Replace usages of CPU_MASK_NONE, CPU_MASK_ALL, NODE_MASK_NONE,\n    NODE_MASK_ALL to reduce stack requirements for large NR_CPUS\n    and MAXNODES counts.\n\n *  In some cases, the cpumask variable was initialized but then overwritten\n    with another value.  This is the case for changes like this:\n\n    -       cpumask_t oldmask \u003d CPU_MASK_ALL;\n    +       cpumask_t oldmask;\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "89d694b9dbe769ca1004e01db0ca43964806a611",
      "tree": "b8fd51348034a4b09547ea0137d4ac467f6987fa",
      "parents": [
        "188fd89d539d899bfca2bc83534e5508e0161139"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 18 18:25:17 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 19 10:43:58 2008 +0100"
      },
      "message": "genirq: do not leave interupts enabled on free_irq\n\nThe default_disable() function was changed in commit:\n\n 76d2160147f43f982dfe881404cfde9fd0a9da21\n genirq: do not mask interrupts by default\n\nIt removed the mask function in favour of the default delayed\ninterrupt disabling. Unfortunately this also broke the shutdown in\nfree_irq() when the last handler is removed from the interrupt for\nthose architectures which rely on the default implementations. Now we\ncan end up with a enabled interrupt line after the last handler was\nremoved, which can result in spurious interrupts.\n\nFix this by adding a default_shutdown function, which is only\ninstalled, when the irqchip implementation does provide neither a\nshutdown nor a disable function.\n\n[@stable: affected versions: .21 - .24 ]\n\nPointed-out-by: Michael Hennerich \u003cMichael.Hennerich@analog.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: stable@kernel.org\nTested-by: Michael Hennerich \u003cMichael.Hennerich@analog.com\u003e\n\n"
    },
    {
      "commit": "188fd89d539d899bfca2bc83534e5508e0161139",
      "tree": "ffe14a3752c248b2b452f2b13a203a1de982cfae",
      "parents": [
        "9a4c8546f3e7c893888bccc2b3416d6214f2664a"
      ],
      "author": {
        "name": "S.Caglar Onur",
        "email": "caglar@pardus.org.tr",
        "time": "Thu Feb 14 17:36:51 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 19 10:43:58 2008 +0100"
      },
      "message": "genirq: spurious.c: use time_* macros\n\nThe functions time_before, time_before_eq, time_after, and\ntime_after_eq are more robust for comparing jiffies against other\nvalues.\n\nSo following patch implements usage of the time_after() macro, defined\nat linux/jiffies.h, which deals with wrapping correctly\n\nSigned-off-by: S.Caglar Onur \u003ccaglar@pardus.org.tr\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "46f4f8f665080900e865392f4b3593be463bf0d8",
      "tree": "d4d1cb04b461b4ddd841396647d911fdc08819ef",
      "parents": [
        "922f9cfa79b52c85b6002d96cb0eefd13437c58c"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Feb 08 04:22:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:42 2008 -0800"
      },
      "message": "IRQ_NOPROBE helper functions\n\nProbing non-ISA interrupts using the handle_percpu_irq as their handle_irq\nmethod may crash the system because handle_percpu_irq does not check\nIRQ_WAITING.  This for example hits the MIPS Qemu configuration.\n\nThis patch provides two helper functions set_irq_noprobe and set_irq_probe to\nset rsp.  clear the IRQ_NOPROBE flag.  The only current caller is MIPS code\nbut this really belongs into generic code.\n\nAs an aside, interrupt probing these days has become a mostly obsolete if not\ndangerous art.  I think Linux interrupts should be changed to default to\nnon-probing but that\u0027s subject of this patch.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-and-tested-by: Rob Landley \u003crob@landley.net\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ad5b3a505e68cfdc342933d6e0fc0eaa5e0a4f7",
      "tree": "6715ffd8df509d3d53dea581bb97418a21bc7cbc",
      "parents": [
        "fc9b52cd8f5f459b88adcf67c47668425ae31a78"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "kernel: remove fastcall in kernel/*\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70edcd77a0d6d0f8731c826764f5eb6732f521e9",
      "tree": "1ea618a73c784c11b52168046d5a27197398520a",
      "parents": [
        "17abecfe651c862cd31b1f9e8ef6cfc29083f00d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:24 2008 +0100"
      },
      "message": "genirq: stackdump after the \"Trying to free already-free IRQ\" message\n\nthese bugs are harder to find than they seem, a stackdump helps.\n\nmake it dependent on CONFIG_DEBUG_SHIRQ so that people can turn it off\nif it annoys them.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "96d97cf03b3d68e6c857623da93acd522b2b7e1a",
      "tree": "f31885e66849ca2e20d9dffd72ecd556204dbb45",
      "parents": [
        "9e094c17ee2b85130ab7b2ea37456f6867eb687a"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 30 13:32:48 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:32:48 2008 +0100"
      },
      "message": "x86: add /proc/irq/*/spurious to dump the spurious irq debugging state\n\nThis is useful to debug problems with interrupt handlers that return\nsometimes IRQ_NONE.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9e094c17ee2b85130ab7b2ea37456f6867eb687a",
      "tree": "ca4723bbf4e62b623869be0f73c2f74807f3384c",
      "parents": [
        "b899c5ed2ef3af3429abd8046197255f179ea496"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 30 13:32:48 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:32:48 2008 +0100"
      },
      "message": "genirq: turn irq debugging options into module params\n\nThis allows to change them at runtime using sysfs. No need to\nreboot to set them.\n\nI only added aliases (kernel.noirqdebug etc.) so the old options\nstill work.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "971e5b35fb02c5088d49e6c024aab73582a35b71",
      "tree": "3d90abcd2d4ff8ed66dc0110af9f8d3e63c1043a",
      "parents": [
        "213fde71024223abcdd7d9e5349d1ea2679227b5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Dec 18 18:05:58 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 18 18:05:58 2007 +0100"
      },
      "message": "genirq: revert lazy irq disable for simple irqs\n\nIn commit 76d2160147f43f982dfe881404cfde9fd0a9da21 lazy irq disabling\nwas implemented, and the simple irq handler had a masking set to it.\n\nRemy Bohmer discovered that some devices in the ARM architecture\nwould trigger the mask, but never unmask it. His patch to do the\nunmasking was questioned by Russell King about masking simple irqs\nto begin with. Looking further, it was discovered that the problems\nRemy was seeing was due to improper use of the simple handler by\ndevices, and he later submitted patches to fix those. But the issue\nthat was uncovered was that the simple handler should never mask.\n\nThis patch reverts the masking in the simple handler.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "c642b8391cf8efc3622cc97329a0f46e7cbb70b8",
      "tree": "34a8892a55563c3885cfed1500f9933b49f04abe",
      "parents": [
        "57d5f66b86079efac5c9a7843cce2a9bcbe58fb8"
      ],
      "author": {
        "name": "Russ Anderson",
        "email": "rja@sgi.com",
        "time": "Wed Nov 14 17:00:15 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:43 2007 -0800"
      },
      "message": "__do_IRQ does not check IRQ_DISABLED when IRQ_PER_CPU is set\n\nIn __do_IRQ(), the normal case is that IRQ_DISABLED is checked and if set\nthe handler (handle_IRQ_event()) is not called.\n\nEarlier in __do_IRQ(), if IRQ_PER_CPU is set the code does not check\nIRQ_DISABLED and calls the handler even though IRQ_DISABLED is set.  This\nbehavior seems unintentional.\n\nOne user encountering this behavior is the CPE handler (in\narch/ia64/kernel/mca.c).  When the CPE handler encounters too many CPEs\n(such as a solid single bit error), it sets up a polling timer and disables\nthe CPE interrupt (to avoid excessive overhead logging the stream of single\nbit errors).  disable_irq_nosync() is called which sets IRQ_DISABLED.  The\nIRQ_PER_CPU flag was previously set (in ia64_mca_late_init()).  The net\nresult is the CPE handler gets called even though it is marked disabled.\n\nIf the behavior of not checking IRQ_DISABLED when IRQ_PER_CPU is set is\nintentional, it would be worthy of a comment describing the intended\nbehavior.  disable_irq_nosync() does call chip-\u003edisable() to provide a\nchipset specifiec interface for disabling the interrupt, which avoids this\nissue when used.\n\nSigned-off-by: Russ Anderson \u003crja@sgi.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a98ce5c6feead6bfedefabd46cb3d7f5be148d9a",
      "tree": "7bbd027e40805966ad908e40f09ffd412a72a88b",
      "parents": [
        "48d2268473a66fe3aa78fb13b09ee59d6ee95073"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Oct 23 11:26:25 2007 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 23 09:01:31 2007 -0700"
      },
      "message": "Fix synchronize_irq races with IRQ handler\n\nAs it is some callers of synchronize_irq rely on memory barriers\nto provide synchronisation against the IRQ handlers.  For example,\nthe tg3 driver does\n\n\ttp-\u003eirq_sync \u003d 1;\n\tsmp_mb();\n\tsynchronize_irq();\n\nand then in the IRQ handler:\n\n\tif (!tp-\u003eirq_sync)\n\t\tnetif_rx_schedule(dev, \u0026tp-\u003enapi);\n\nUnfortunately memory barriers only work well when they come in\npairs.  Because we don\u0027t actually have memory barriers on the\nIRQ path, the memory barrier before the synchronize_irq() doesn\u0027t\nactually protect us.\n\nIn particular, synchronize_irq() may return followed by the\nresult of netif_rx_schedule being made visible.\n\nThis patch (mostly written by Linus) fixes this by using spin\nlocks instead of memory barries on the synchronize_irq() path.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28e3fed8b79c76450f264e77c58d0f5fbd2dd739",
      "tree": "3e1b2f8e5a5f9f15fdaae2a307eead82e38c450c",
      "parents": [
        "b4471cbb09c4694e54092d02715c09fda2eb45ed"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 16 23:30:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:00 2007 -0700"
      },
      "message": "Compile handle_percpu_irq even for uniprocessor kernels\n\nCompiling handle_percpu_irq only on uniprocessor generates an artificial\nspecial case so a typical use like:\n\n  set_irq_chip_and_handler(irq, \u0026some_irq_type, handle_percpu_irq);\n\nneeds to be conditionally compiled only on SMP systems as well and an\nalternative UP construct is usually needed - for no good reason.\n\nThis fixes uniprocessor configurations for some MIPS SMP systems.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d99493b3a68e40e56459ea3565d4402fb6e5f3a",
      "tree": "362ebcf8871e0fad07aa754bb5194de3a2cd64d3",
      "parents": [
        "f13ef7754f724842dbf5ae6d85d0604fff0d1a84"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Oct 16 23:26:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:49 2007 -0700"
      },
      "message": "Fix CONFIG_DEBUG_SHIRQ trigger on free_irq()\n\nAndy Gospodarek pointed out that because we return in the middle of the\nfree_irq() function, we never actually do call the IRQ handler that just\ngot deregistered. This should fix it, although I expect Andrew will want\nto convert those \u0027return\u0027s to \u0027break\u0027. That\u0027s a separate change though.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Andy Gospodarek \u003candy@greyhouse.net\u003e\nCc: Fernando Luis Vzquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59845b1ffd9121e5ef474ea5f27405fd7a83c85b",
      "tree": "9f7c073327138b7c5bb0193229244dbdd5444113",
      "parents": [
        "2aeb3db17fc33443d21b11d7121c5627d55717c6"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@o2.pl",
        "time": "Thu Aug 30 23:56:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Aug 31 01:42:23 2007 -0700"
      },
      "message": "request_irq: fix DEBUG_SHIRQ handling\n\nMariusz Kozlowski reported lockdep\u0027s warning:\n\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e [ INFO: inconsistent lock state ]\n\u003e 2.6.23-rc2-mm1 #7\n\u003e ---------------------------------\n\u003e inconsistent {in-hardirq-W} -\u003e {hardirq-on-W} usage.\n\u003e ifconfig/5492 [HC0[0]:SC0[0]:HE1:SE1] takes:\n\u003e  (\u0026tp-\u003elock){+...}, at: [\u003cde8706e0\u003e] rtl8139_interrupt+0x27/0x46b [8139too]\n\u003e {in-hardirq-W} state was registered at:\n\u003e   [\u003cc0138eeb\u003e] __lock_acquire+0x949/0x11ac\n\u003e   [\u003cc01397e7\u003e] lock_acquire+0x99/0xb2\n\u003e   [\u003cc0452ff3\u003e] _spin_lock+0x35/0x42\n\u003e   [\u003cde8706e0\u003e] rtl8139_interrupt+0x27/0x46b [8139too]\n\u003e   [\u003cc0147a5d\u003e] handle_IRQ_event+0x28/0x59\n\u003e   [\u003cc01493ca\u003e] handle_level_irq+0xad/0x10b\n\u003e   [\u003cc0105a13\u003e] do_IRQ+0x93/0xd0\n\u003e   [\u003cc010441e\u003e] common_interrupt+0x2e/0x34\n...\n\u003e other info that might help us debug this:\n\u003e 1 lock held by ifconfig/5492:\n\u003e  #0:  (rtnl_mutex){--..}, at: [\u003cc0451778\u003e] mutex_lock+0x1c/0x1f\n\u003e\n\u003e stack backtrace:\n...\n\u003e  [\u003cc0452ff3\u003e] _spin_lock+0x35/0x42\n\u003e  [\u003cde8706e0\u003e] rtl8139_interrupt+0x27/0x46b [8139too]\n\u003e  [\u003cc01480fd\u003e] free_irq+0x11b/0x146\n\u003e  [\u003cde871d59\u003e] rtl8139_close+0x8a/0x14a [8139too]\n\u003e  [\u003cc03bde63\u003e] dev_close+0x57/0x74\n...\n\nThis shows that a driver\u0027s irq handler was running both in hard interrupt\nand process contexts with irqs enabled. The latter was done during\nfree_irq() call and was possible only with CONFIG_DEBUG_SHIRQ enabled.\nThis was fixed by another patch.\n\nBut similar problem is possible with request_irq(): any locks taken from\nirq handler could be vulnerable - especially with soft interrupts. This\npatch fixes it by disabling local interrupts during handler\u0027s run. (It\nseems, disabling softirqs should be enough, but it needs more checking\non possible races or other special cases).\n\nReported-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@o2.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b7f07155f8ee1536da2f9590f1aa9383afefb6b",
      "tree": "d4f0fcf4a96734c33ed9e0470fcb28be523070a0",
      "parents": [
        "436bbd431d41e0fd3bfedb0312ab764b291ddf82"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Aug 22 14:01:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:44 2007 -0700"
      },
      "message": "free_irq(): fix DEBUG_SHIRQ handling\n\nIf we\u0027re going to run the handler from free_irq() then we must do it with\nlocal irq\u0027s disabled.  Otherwise lockdep complains that the handler is taking\nirq-safe spinlocks in a non-irq-safe fashion.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2464286ace55b3abddfb9cc30ab95e2dac1de9a6",
      "tree": "0ef5493e17325c99dc8bbb0c77d4eb4bf9944713",
      "parents": [
        "496634217e5671ed876a0348e9f5b7165e830b20"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Aug 12 15:46:35 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Aug 12 11:05:45 2007 -0700"
      },
      "message": "genirq: suppress resend of level interrupts\n\nLevel type interrupts are resent by the interrupt hardware when they are\nstill active at irq_enable().\n\nSuppress the resend mechanism for interrupts marked as level.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "496634217e5671ed876a0348e9f5b7165e830b20",
      "tree": "b7614ffeca67d328ec70d9d886c4ae63ce225f44",
      "parents": [
        "963c6527e0a0e285736ad482b8142d098f9c2288"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Aug 12 15:46:34 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Aug 12 11:05:45 2007 -0700"
      },
      "message": "genirq: cleanup mismerge artifact\n\nCommit 5a43a066b11ac2fe84cf67307f20b83bea390f83: \"genirq: Allow fasteoi\nhandler to retrigger disabled interrupts\" was erroneously applied to\nhandle_level_irq().  This added the irq retrigger / resend functionality\nto the level irq handler.\n\nRevert the offending bits.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88ffc3505988196ef5cfdc0278ad89025c2a7b1a",
      "tree": "25db60136e1eb156fdaa4793800a7c3f34153927",
      "parents": [
        "175fc484256e9c85e043f599ec2f6bc0d2e6c443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Aug 09 08:10:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Aug 09 08:10:16 2007 -0700"
      },
      "message": "Revert \"genirq: temporary fix for level-triggered IRQ resend\"\n\nThis reverts commit 0fc4969b866671dfe39b1a9119d0fdc7ea0f63e5.  It was\nalways meant to be temporary, but it\u0027s generating more useless noise\nthan anything else, and we probably should never have done it in the\ngeneric kernel (only had the people involved test it on their own).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0fc4969b866671dfe39b1a9119d0fdc7ea0f63e5",
      "tree": "05e644d8c1e0071b07ac5b6aee83d8dc3eaf664e",
      "parents": [
        "fd0cbdd378258fdf44eac5ea091256a4a665315b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 01 17:13:19 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 01 20:46:22 2007 -0700"
      },
      "message": "genirq: temporary fix for level-triggered IRQ resend\n\nMarcin Slusarz reported a ne2k-pci \"hung network interface\" regression.\n\ndelayed disable relies on the ability to re-trigger the interrupt in the\ncase that a real interrupt happens after the software disable was set.\nIn this case we actually disable the interrupt on the hardware level\n_after_ it occurred.\n\nOn enable_irq, we need to re-trigger the interrupt. On i386 this relies\non a hardware resend mechanism (send_IPI_self()).\n\nActually we only need the resend for edge type interrupts. Level type\ninterrupts come back once enable_irq() re-enables the interrupt line.\n\nI assume that the interrupt in question is level triggered because it is\nshared and above the legacy irqs 0-15:\n\n\t17:         12   IO-APIC-fasteoi   eth1, eth0\n\nLooking into the IO_APIC code, the resend via send_IPI_self() happens\nunconditionally. So the resend is done for level and edge interrupts.\nThis makes the problem more mysterious.\n\nThe code in question lib8390.c does\n\n\tdisable_irq();\n\tfiddle_with_the_network_card_hardware()\n\tenable_irq();\n\nThe fiddle_with_the_network_card_hardware() might cause interrupts,\nwhich are cleared in the same code path again,\n\nMarcin found that when he disables the irq line on the hardware level\n(removing the delayed disable) the card is kept alive.\n\nSo the difference is that we can get a resend on enable_irq, when an\ninterrupt happens during the time, where we are in the disabled region.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0af3678f7c5872836d1cc8d7c659abd62c3c5ae7",
      "tree": "d74ee34e24b3fc85a9ac66675a4e70cadfe76c58",
      "parents": [
        "2d954d06acbcf9a5f7668a1897850c9b7be6b8f3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Jul 27 14:24:33 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 28 19:42:22 2007 -0700"
      },
      "message": "rip some includes from linux/interrupt.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42ee2b74140b69fa24da1c671b03c9f8019e6f62",
      "tree": "1a5fdf2743d90185fd9716bbaa9bdcd6140f8ae8",
      "parents": [
        "78b599aed61a1098444558e74c93745f22eda6cb"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Jul 21 17:09:54 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 18:37:07 2007 -0700"
      },
      "message": "x86_64: Report the pending irq if available in smp_affinity\n\nOtherwise smp_affinity would only update after the next interrupt\non x86 systems.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f27c00bf80f122513d3a5be16ed851573164534",
      "tree": "2abad49c1e5c93d2d8698c558eb490b99bd35b87",
      "parents": [
        "f3dc8c189a20dc5d115b8f0d07ac620e69eff05c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Jul 15 23:40:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:46 2007 -0700"
      },
      "message": "Improve behaviour of spurious IRQ detect\n\nCurrently we handle spurious IRQ activity based upon seeing a lot of\ninvalid interrupts, and we clear things back on the base of lots of valid\ninterrupts.\n\nUnfortunately in some cases you get legitimate invalid interrupts caused by\ntiming asynchronicity between the PCI bus and the APIC bus when disabling\ninterrupts and pulling other tricks.  In this case although the spurious\nIRQs are not a problem our unhandled counters didn\u0027t clear and they act as\na slow running timebomb.  (This is effectively what the serial port/tty\nproblem that was fixed by clearing counters when registering a handler\nshowed up)\n\nIt\u0027s easy enough to add a second parameter - time.  This means that if we\nsee a regular stream of harmless spurious interrupts which are not harming\nprocessing we don\u0027t go off and do something stupid like disable the IRQ\nafter a month of running.  OTOH lockups and performance killers show up a\nlot more than 10/second\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92ea77275b5345c1300433f28689493dc4163f24",
      "tree": "8813e2453b081d700ae32b7dc6f056f2eba8ebe7",
      "parents": [
        "db2668fdbeb2e3c95ebadf95856c9e31a8a8d569"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 24 08:37:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 24 08:37:14 2007 -0700"
      },
      "message": "Fix crash with irqpoll due to the IRQF_IRQPOLL flag testing\n\nWith irqpoll enabled, trying to test the IRQF_IRQPOLL flag in the\nactions would cause a NULL pointer dereference if no action was\ninstalled (for example, the driver might have been unloaded with\ninterrupts still pending).\n\nSo be a bit more careful about testing the flag by making sure to test\nfor that case.\n\n(The actual _change_ is trivial, the patch is more than a one-liner\nbecause I rewrote the testing to also be much more readable.\n\nOriginal (discarded) bugfix by Bernhard Walle.\n\nCc: Bernhard Walle \u003cbwalle@suse.de\u003e\nTested-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25d61578daae697c4a0eb817f42a868af9824f82",
      "tree": "ec4ac10132f0b12a822dba6a53d05bab78ec3760",
      "parents": [
        "3e3d32770204ea24cf71919a90d9ccfc2bd407dd"
      ],
      "author": {
        "name": "John Keller",
        "email": "jpk@sgi.com",
        "time": "Thu May 10 22:42:44 2007 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Fri May 11 09:35:38 2007 -0700"
      },
      "message": "[IA64] SN: validate smp_affinity mask on intr redirect\n\nOn SN, only allow one bit to be set in the smp_affinty mask when\nredirecting an interrupt.  Currently setting multiple bits is allowed, but\nonly the first bit is used in determining the CPU to redirect to.  This has\ncaused confusion among some customers.\n\n[akpm@linux-foundation.org: fixes]\nSigned-off-by: John Keller \u003cjpk@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "cb0c78cc94a63871cad051674516b38e4a8aef95",
      "tree": "2f90ad36bcfebf29caa3bc38cc5775e53ac58a54",
      "parents": [
        "231f7e9d029a710c14352bff3b8d3753cb9bfde8"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed May 09 02:33:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "Fix Linuxdoc comment\n\nA linuxdoc comment had fallen out of date - it refers to an argument which no\nlonger exists.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d85a60d85ea5b7c597508c1510c88e657773d378",
      "tree": "2b5d1a5311074de8c12811e7ddf26e3cda4a41a0",
      "parents": [
        "951744fea0aea9adbd7c8cacb3605f2d69a66f96"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "bwalle@suse.de",
        "time": "Tue May 08 00:35:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:22 2007 -0700"
      },
      "message": "Add IRQF_IRQPOLL flag (common code)\n\nirqpoll is broken on some architectures that don\u0027t use the IRQ 0 for the timer\ninterrupt like IA64.  This patch adds a IRQF_IRQPOLL flag.\n\nEach architecture is handled in a separate pach.  As I left the irq \u003d\u003d 0 as\ncondition, this should not break existing architectures that use timer_irq \u003d\u003d\n0 and that I did\u0027t address with that patch (because I don\u0027t know).\n\nThis patch:\n\nThis patch adds a IRQF_IRQPOLL flag that the interrupt registration code could\nuse for the interrupt it wants to use for IRQ polling.\n\nBecause this must not be the timer interrupt, an additional flag was added\ninstead of re-using the IRQF_TIMER constant.  Until all architectures will\nhave an IRQF_IRQPOLL interrupt, irq \u003d\u003d 0 will stay as alternative as it should\nnot break anything.\n\nAlso, note_interrupt() is called on CPU-specific interrupts to be used as\ninterrupt source for IRQ polling.\n\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Grant Grundler \u003cgrundler@google.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e729aa16b168fb202d1a20f936028cb7c2a0278d",
      "tree": "d0267225ebfadbaa4f55f55c3025597d86ff1c5f",
      "parents": [
        "428e6ce023c5890cfecc8ad10335da3f28dbf893"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Tue May 08 00:29:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "Pad irq_desc to internode cacheline size\n\nWe noticed a drop in n/w performance due to the irq_desc being cacheline\naligned rather than internode aligned.  We see 50% of expected performance\nwhen two e1000 nics local to two different nodes have consecutive irq\ndescriptors allocated, due to false sharing.\n\nNote that this patch does away with cacheline padding for the UP case, as\nit does not seem useful for UP configurations.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f75d222b836f7febfab0954c7612b23059d748cb",
      "tree": "229ff362a000daca8aa4c45c3c7216efdb4bfb94",
      "parents": [
        "3367b994fe4f131ab1240600682a1981de7cad0c"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Tue May 08 00:27:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:06 2007 -0700"
      },
      "message": "IRQ: check for PERCPU flag only when adding first irqaction\n\nAn irqaction structure won\u0027t be added to an IRQ descriptor irqaction list if\nit doesn\u0027t agree with other irqactions on the IRQF_PERCPU flag.  Don\u0027t check\nfor this flag to change IRQ descriptor `status\u0027 for every irqaction added to\nthe list, Doing the check only for the first irqaction added is enough.\n\nSigned-off-by: Ahmed S. Darwish \u003cdarwish.07@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2d9433a4c84c9e7ed78d633fdbffb35d5afda17",
      "tree": "5a9fb2c9531bec148f21fc499d49493b5576e79c",
      "parents": [
        "c467a388ae9f236c039d4d0f4c4be07c7deebe97"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Tue May 08 00:27:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "kernel/irq/proc.c: unprotected iteration over the IRQ action list in name_unique()\n\nsetup_irq() releases a desc-\u003elock before calling register_handler_proc(), so\nthe iteration over the IRQ action list is not protected.\n\n(akpm: the check itself is still racy, but at least it probably won\u0027t oops\nnow).\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fe3730de729b758e9f69b862b9255d998671b5f",
      "tree": "2fc0cf3a003aaf6e8c257a32b748941e3eec93b2",
      "parents": [
        "f282b97021ddc95c6092b9016f667c0963858fb1"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Wed Apr 18 19:39:21 2007 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 19:02:38 2007 -0700"
      },
      "message": "MSI: arch must connect the irq and the msi_desc\n\nset_irq_msi() currently connects an irq_desc to an msi_desc. The archs call\nit at some point in their setup routine, and then the generic code sets up the\nreverse mapping from the msi_desc back to the irq.\n\nset_irq_msi() should do both connections, making it the one and only call\nrequired to connect an irq with it\u0027s MSI desc and vice versa.\n\nThe arch code MUST call set_irq_msi(), and it must do so only once it\u0027s sure\nit\u0027s not going to fail the irq allocation.\n\nGiven that there\u0027s no need for the arch to return the irq anymore, the return\nvalue from the arch setup routine just becomes 0 for success and anything else\nfor failure.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7f30e49ee1c2c1e95ce9d2ccce5221ddb793dd60",
      "tree": "06af277806d645ce7c970c64c56613b682f071e4",
      "parents": [
        "995f054f2a342f8505fed4f8395d12c0f5966414"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Apr 07 14:59:41 2007 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Apr 07 10:05:21 2007 -0700"
      },
      "message": "[PATCH] irq-devres: fix failure path of devm_request_irq()\n\ndevres should be deallocated with devres_free() not kfree().  This bug\ncorrupts slab on IRQ request failure.  Fix it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a786b452eba900324c29a8fcf5c96d5b1c01000",
      "tree": "4b19d0c6b9dff736051448bee81ae274088dd701",
      "parents": [
        "610142927b5bc149da92b03c7ab08b8b5f205b74"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 23 04:46:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 26 10:34:08 2007 -0800"
      },
      "message": "[PATCH] genirq: Mask irqs when migrating them.\n\nmove_native_irqs tries to do the right thing when migrating irqs\nby disabling them.  However disabling them is a software logical\nthing, not a hardware thing.  This has always been a little flaky\nand after Ingo\u0027s latest round of changes it is guaranteed to not\nmask the apic.\n\nSo this patch fixes move_native_irq to directly call the mask and\nunmask chip methods to guarantee that we mask the irq when we\nare migrating it.  We must do this as it is required by\nall code that call into the path.\n\nSince we don\u0027t know the masked status when IRQ_DISABLED is\nset so we will not be able to restore it.   The patch makes the code\njust give up and trying again the next time this routing is called.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5575ddf75ca7e61d6f69b96368e03dd88edd4604",
      "tree": "31226bbad6f6ff1cd2123570ef965a20682b8b52",
      "parents": [
        "472900b8b02bf3782b06dcf0acdef26811c2b995"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Fri Feb 16 01:28:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:14:00 2007 -0800"
      },
      "message": "[PATCH] small irq management simplification\n\nUse mask_ack_irq() where possible.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "472900b8b02bf3782b06dcf0acdef26811c2b995",
      "tree": "0aa22b5fd11d4172ffbfd09b14a237cc68cc3004",
      "parents": [
        "d7e25f3394ba05a6d64cb2be42c2765fe72ea6b2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Feb 16 01:28:25 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:14:00 2007 -0800"
      },
      "message": "[PATCH] IRQ kernel-doc fixes\n\nFix kernel-doc warnings in IRQ management.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76d2160147f43f982dfe881404cfde9fd0a9da21",
      "tree": "5140d838f64e8494abd4942b4e2ddf2ddee69046",
      "parents": [
        "1f2ea0837dbc263ce2a2512c4e73c83df68a6a55"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 16 01:28:24 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:14:00 2007 -0800"
      },
      "message": "[PATCH] genirq: do not mask interrupts by default\n\nNever mask interrupts immediately upon request.  Disabling interrupts in\nhigh-performance codepaths is rare, and on the other hand this change could\nrecover lost edges (or even other types of lost interrupts) by conservatively\nonly masking interrupts after they happen.  (NOTE: with this change the\nhighlevel irq-disable code still soft-disables this IRQ line - and if such an\ninterrupt happens then the IRQ flow handler keeps the IRQ masked.)\n\nMark i8529A controllers as \u0027never loses an edge\u0027.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "771ee3b04eaac6184312825eb600b4c598f027a5",
      "tree": "f0db1cca6b9849855c1d2fd6a16828084311e03c",
      "parents": [
        "950f4427c2ddc921164088a20f01304cf231437c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:27:25 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:56 2007 -0800"
      },
      "message": "[PATCH] Add a function to handle interrupt affinity setting\n\nProvide funtions to:\n - check, whether an interrupt can set the affinity\n - pin the interrupt to a given cpu\n\nNecessary for the ability to setup clocksources more flexible (e.g.  use the\ndifferent HPET channels per CPU)\n\n[akpm@osdl.org: alpha build fix]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "950f4427c2ddc921164088a20f01304cf231437c",
      "tree": "8fd3fb1ad045a47dbd2c6ac238c6ff1c1c5aa6c6",
      "parents": [
        "b463fc60730bea6cdd73fec6edc6ec4658d47d37"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:27:24 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:56 2007 -0800"
      },
      "message": "[PATCH] Add irq flag to disable balancing for an interrupt\n\nAdd a flag so we can prevent the irq balancing of an interrupt.  Move the\nbits, so we have room for more :)\n\nNecessary for the ability to setup clocksources more flexible (e.g.  use the\ndifferent HPET channels per CPU)\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38515e908ba3a9c467ad3bf347b9bce69216df94",
      "tree": "3bb0287ad4ea18d61cb3cad74337343ef5034b5d",
      "parents": [
        "3159f06dc2303630c02d1ad2eeaeaf341414c9df"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 14 00:33:16 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] Scheduled removal of SA_xxx interrupt flags fixups\n\nThe obsolete SA_xxx interrupt flags have been used despite the scheduled\nremoval.  Fixup the remaining users.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Wim Van Sebroeck \u003cwim@iguana.be\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: James Simmons \u003cjsimmons@infradead.org\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f0504471536a2b6978b9a99ed1c222950fff07a",
      "tree": "173f4554a2bcf2d27dbbe6aeeed562afc8bb6847",
      "parents": [
        "a304e1b82808904c561b7b149b467e338c53fcce"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Feb 12 00:52:04 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:28 2007 -0800"
      },
      "message": "[PATCH] kernel: shut up the IRQ mismatch messages\n\nThe problem is various drivers legally validly and sensibly try to claim\nIRQs but the kernel insists on vomiting forth a giant irrelevant debugging\nspew when the types clash.\n\nEdit kernel/irq/manage.c go down to mismatch: in setup_irq() and ifdef out\nthe if clause that checks for mismatches.  It\u0027ll then just do the right\nthing and work sanely.\n\nFor the current -mm kernel this will do the trick (and moves it into shared\nirq debugging as in debug mode the info spew is useful).  I\u0027ve had a\nvariant of this in my private tree for some time as I got fed up on the\nmess on boxes where old legacy IRQs get reused.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a304e1b82808904c561b7b149b467e338c53fcce",
      "tree": "068b68c37f6f11de116288886eb211f267d790f7",
      "parents": [
        "f9e4acf3befd3b2903e01b3ef1bd344f03299826"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Feb 12 00:52:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:28 2007 -0800"
      },
      "message": "[PATCH] Debug shared irqs\n\nDrivers registering IRQ handlers with SA_SHIRQ really ought to be able to\nhandle an interrupt happening before request_irq() returns.  They also\nought to be able to handle an interrupt happening during the start of their\ncall to free_irq().  Let\u0027s test that hypothesis....\n\n[bunk@stusta.de: Kconfig fixes]\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ea8176994003483a18c8fed580901e2125f8a83",
      "tree": "0712ec9cd3384fbd897eb454ce9c0f907289ab51",
      "parents": [
        "2835fdfa4a7f1400986d76d054237809a9392406"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Feb 11 15:41:31 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 11:18:07 2007 -0800"
      },
      "message": "[PATCH] sort the devres mess out\n\n* Split the implementation-agnostic stuff in separate files.\n* Make sure that targets using non-default request_irq() pull\n  kernel/irq/devres.o\n* Introduce new symbols (HAS_IOPORT and HAS_IOMEM) defaulting to positive;\n  allow architectures to turn them off (we needed these symbols anyway for\n  dependencies of quite a few drivers).\n* protect the ioport-related parts of lib/devres.o with CONFIG_HAS_IOPORT.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b653d081c17e26101980c858a9808740533b78b4",
      "tree": "907b6e6d97f30b61840cf4b1654f88a1df56945c",
      "parents": [
        "891dcd2f7ab15e2aaad07f6925b3a53fd8d5c02f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Feb 10 01:45:54 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] proc: remove useless (and buggy) -\u003enlink settings\n\nBug: pnx8550 code creates directory but resets -\u003enlink to 1.\n\ncreate_proc_entry() et al will correctly set -\u003enlink for you.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Corey Minyard \u003cminyard@acm.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ac7849e35f705830f7b016ff272b0ff1f7ff759",
      "tree": "7f17cdff87e154937a15cc2ec8da9b4e6018ce8e",
      "parents": [
        "77a527eadb425b60db3f5f0aae6a4c51c38e35e5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:36 2007 -0500"
      },
      "message": "devres: device resource management\n\nImplement device resource management, in short, devres.  A device\ndriver can allocate arbirary size of devres data which is associated\nwith a release function.  On driver detach, release function is\ninvoked on the devres data, then, devres data is freed.\n\ndevreses are typed by associated release functions.  Some devreses are\nbetter represented by single instance of the type while others need\nmultiple instances sharing the same release function.  Both usages are\nsupported.\n\ndevreses can be grouped using devres group such that a device driver\ncan easily release acquired resources halfway through initialization\nor selectively release resources (e.g. resources for port 1 out of 4\nports).\n\nThis patch adds devres core including documentation and the following\nmanaged interfaces.\n\n* alloc/free\t: devm_kzalloc(), devm_kzfree()\n* IO region\t: devm_request_region(), devm_release_region()\n* IRQ\t\t: devm_request_irq(), devm_free_irq()\n* DMA\t\t: dmam_alloc_coherent(), dmam_free_coherent(),\n\t\t  dmam_declare_coherent_memory(), dmam_pool_create(),\n\t\t  dmam_pool_destroy()\n* PCI\t\t: pcim_enable_device(), pcim_pin_device(), pci_is_managed()\n* iomap\t\t: devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),\n\t\t  devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),\n\t\t  pcim_iomap(), pcim_iounmap()\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5b912c108c8b1fcecbfe13d6d9a183db97b682d3",
      "tree": "0267f65fd9237a41207e4359e09d09e60f6cd754",
      "parents": [
        "1c659d61cfbd8dc3926688c1bbf12d80f4cfb5c2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Jan 28 12:52:03 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 15:50:08 2007 -0800"
      },
      "message": "msi: Kill the msi_desc array.\n\nWe need to be able to get from an irq number to a struct msi_desc.\nThe msi_desc array in msi.c had several short comings the big one was\nthat it could not be used outside of msi.c.  Using irq_data in struct\nirq_desc almost worked except on some architectures irq_data needs to\nbe used for something else.\n\nSo this patch adds a msi_desc pointer to irq_desc, adds the appropriate\nwrappers and changes all of the msi code to use them.\n\nThe dynamic_irq_init/cleanup code was tweaked to ensure the new\nfield is left in a well defined state.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8528b0f1de1101c6002036fd53638fb21111d0ea",
      "tree": "fd4c21fbf54ae23b2edaf3ccd1d4423a55f2a14f",
      "parents": [
        "d227e87e6c939c6071def92bc7691ad774c733ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 23 14:16:31 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 23 14:16:31 2007 -0800"
      },
      "message": "Clear spurious irq stat information when adding irq handler\n\nAny newly added irq handler may obviously make any old spurious irq\nstatus invalid, since the new handler may well be the thing that is\nsupposed to handle any interrupts that came in.\n\nSo just clear the statistics when adding handlers.\n\nPointed-out-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "343cde51b3b856470eea24a89f00166b8e2d7272",
      "tree": "4810d97be6827887f734d754399c171c1a68b9f5",
      "parents": [
        "7c8809aef0c71cc92ffc7d922e8824c04a36f44b"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@in.ibm.com",
        "time": "Thu Jan 11 01:52:44 2007 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Thu Jan 11 01:52:44 2007 +0100"
      },
      "message": "[PATCH] x86-64: Make noirqdebug_setup function non init to fix modpost warning\n\no noirqdebug_setup() is __init but it is being called by\n  quirk_intel_irqbalance() which if of type __devinit. If CONFIG_HOTPLUG\u003dy,\n  quirk_intel_irqbalance() is put into text section and it is wrong to\n  call a function in __init section.\n\no MODPOST flags this on i386 if CONFIG_RELOCATABLE\u003dy\n\nWARNING: vmlinux - Section mismatch: reference to .init.text:noirqdebug_setup from .text between \u0027quirk_intel_irqbalance\u0027 (at offset 0xc010969e) and \u0027i8237A_suspend\u0027\n\no Make noirqdebug_setup() non-init.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "9d7ac8be4b48737ad1cebd94ed754a269f360708",
      "tree": "a6f57e44a3a5fa993145f9bf6a9af7dc8f481623",
      "parents": [
        "e903387f1ebe3a7ddb93cd49c38341d3632df528"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 22 01:08:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:48 2006 -0800"
      },
      "message": "[PATCH] genirq: fix irq flow handler uninstall\n\nThe sanity check for no_irq_chip in __set_irq_hander() is unconditional on\nboth install and uninstall of an handler.  This triggers false warnings and\nreplaces no_irq_chip by dummy_irq_chip in the uninstall case.\n\nCheck only, when a real handler is installed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Sylvain Munaut \u003ctnt@246tNt.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b039db8eeab0b3cee66dcf9820526dd9cfb04f6b",
      "tree": "769b176e2904b0db21c2c8a29bdd8c97de8b7da3",
      "parents": [
        "4604096768d3be37ee1a05aee424aceed3e1b56f"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Wed Dec 20 15:59:48 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 00:08:27 2006 -0800"
      },
      "message": "[PATCH] __set_irq_handler bogus space\n\n__set_irq_handler: Kill a bogus space\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e2ac66470976ad7f57e0948572669b2bdfea2d0",
      "tree": "aa1e9c2888bae27d96363c5458a871a4c39cbfd2",
      "parents": [
        "aad094701c6355cb2b3d74a07ec0496f4a48c787"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Fri Dec 08 02:35:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:37 2006 -0800"
      },
      "message": "[PATCH] CPEI gets warning at kernel/irq/migration.c:27/move_masked_irq()\n\nWhile running my MCA test (hardware error injection) on 2.6.19,\nI got some warning like following:\n\n\u003e BUG: warning at kernel/irq/migration.c:27/move_masked_irq()\n\u003e\n\u003e Call Trace:\n\u003e  [\u003ca000000100013d20\u003e] show_stack+0x40/0xa0\n\u003e                                 sp\u003de00000006b2578d0 bsp\u003de00000006b2510b0\n\u003e  [\u003ca000000100013db0\u003e] dump_stack+0x30/0x60\n\u003e                                 sp\u003de00000006b257aa0 bsp\u003de00000006b251098\n\u003e  [\u003ca0000001000de430\u003e] move_masked_irq+0xb0/0x240\n\u003e                                 sp\u003de00000006b257aa0 bsp\u003de00000006b251070\n\u003e  [\u003ca0000001000de6a0\u003e] move_native_irq+0xe0/0x180\n\u003e                                 sp\u003de00000006b257aa0 bsp\u003de00000006b251040\n\u003e  [\u003ca00000010004ff50\u003e] iosapic_end_level_irq+0x30/0xe0\n\u003e                                 sp\u003de00000006b257aa0 bsp\u003de00000006b251020\n\u003e  [\u003ca0000001000d94d0\u003e] __do_IRQ+0x170/0x400\n\u003e                                 sp\u003de00000006b257aa0 bsp\u003de00000006b250fd8\n\u003e  [\u003ca0000001000116f0\u003e] ia64_handle_irq+0x1b0/0x260\n\u003e                                 sp\u003de00000006b257aa0 bsp\u003de00000006b250fa8\n\u003e  [\u003ca00000010000c3a0\u003e] ia64_leave_kernel+0x0/0x280\n\u003e                                 sp\u003de00000006b257aa0 bsp\u003de00000006b250fa8\n\u003e  [\u003ca000000100690cf0\u003e] _spin_unlock_irqrestore+0x30/0x60\n\u003e                                 sp\u003de00000006b257c70 bsp\u003de00000006b250f90\n\nIt comes from:\n\n[kernel/irq/migration.c]\n  26         if (CHECK_IRQ_PER_CPU(desc-\u003estatus)) {\n  27                 WARN_ON(1);\n  28                 return;\n  29         }\n\nBy putting some printk in kernel, I found that irqbalance is trying to\nmove CPEI which is handled as PER_CPU irq. That\u0027s why.\n\nCPEI(Corrected Platform Error Interrupt) is ia64 specific irq, is\nallowed to pin to particular processor which selected by the platform, and\neven it is PER_CPU but it has set_affinity handler (\u003diosapic_set_affinity)\nas same as other IO-SAPIC-level interrupts. (I don\u0027t know why, but\nI guess that there would be typical situation where the handler for\nmigration is needed, such as hotplug - the processor going to be\noffline/hot-removed.)\n\nTo shut up this warning, there are 2 way at least:\n a) fix CPEI stuff\n b) prohibit setting affinity to PER_CPU irq\n\nI\u0027m not sure what stuff of CPEI need to be fixed, but I think that\nreturning error to attempting move PER_CPU irq is useful for all\napplications since it will never work.\n\nFollowing small patch takes b) style.\nIt works, the warning disappeared and irqbalance still runs well.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6cfd76a26d9fe2ba54b9d496a48c1d9285e5c5ed",
      "tree": "1114a0630c5045d0650c6d78a8097fdea6f94d8e",
      "parents": [
        "a4c410f00f7ca4bd448b0d63f6f882fd244dc991"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 06 20:37:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:36 2006 -0800"
      },
      "message": "[PATCH] lockdep: name some old style locks\n\nName some of the remaning \u0027old_style_spin_init\u0027 locks\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b42172fc7b569a0ef2b0fa38d71382969074c0e2",
      "tree": "2fe6141c936421d339a9443a6ad6af4dd4d2386b",
      "parents": [
        "0f9005a6f7a82f4aacbd72f7b92322a8ca1c3f97"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Nov 22 09:32:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Nov 22 09:32:06 2006 -0800"
      },
      "message": "Don\u0027t call \"note_interrupt()\" with irq descriptor lock held\n\nThis reverts commit f72fa707604c015a6625e80f269506032d5430dc, and solves\nthe problem that it tried to fix by simply making \"__do_IRQ()\" call the\nnote_interrupt() function without the lock held, the way everybody else\ndoes.\n\nIt should be noted that all interrupt handling code must never allow the\ndescriptor actors to be entered \"recursively\" (that\u0027s why we do all the\nmagic IRQ_PENDING stuff in the first place), so there actually is\nexclusion at that much higher level, even in the absense of locking.\n\nAcked-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nAcked-by:Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b86432b42eba5671969a9e6483ee219674b7ee25",
      "tree": "78b33862865d7ae6d122b3e58c4ae7133491ed0b",
      "parents": [
        "b48f5457b4e9d64d9c1117a4ece247d98b4db49f"
      ],
      "author": {
        "name": "Zhang, Yanmin",
        "email": "yanmin_zhang@linux.intel.com",
        "time": "Thu Nov 16 01:19:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Nov 16 11:43:37 2006 -0800"
      },
      "message": "[PATCH] some irq_chip variables point to NULL\n\nI got an oops when booting 2.6.19-rc5-mm1 on my ia64 machine.\n\nBelow is the log.\n\nOops 11012296146944 [1]\nModules linked in: binfmt_misc dm_mirror dm_multipath dm_mod thermal processor f\nan container button sg eepro100 e100 mii\n\nPid: 0, CPU 0, comm:              swapper\npsr : 0000121008022038 ifs : 800000000000040b ip  : [\u003ca0000001000e1411\u003e]    Not\ntainted\nip is at __do_IRQ+0x371/0x3e0\nunat: 0000000000000000 pfs : 000000000000040b rsc : 0000000000000003\nrnat: 656960155aa56aa5 bsps: a00000010058b890 pr  : 656960155aa55a65\nldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c0270033f\ncsd : 0000000000000000 ssd : 0000000000000000\nb0  : a0000001000e1390 b6  : a0000001005beac0 b7  : e00000007f01aa00\nf6  : 000000000000000000000 f7  : 0ffe69090000000000000\nf8  : 1000a9090000000000000 f9  : 0ffff8000000000000000\nf10 : 1000a908ffffff6f70000 f11 : 1003e0000000000000909\nr1  : a000000100fbbff0 r2  : 0000000000010002 r3  : 0000000000010001\nr8  : fffffffffffbffff r9  : a000000100bd8060 r10 : a000000100dd83b8\nr11 : fffffffffffeffff r12 : a000000100bcbbb0 r13 : a000000100bc4000\nr14 : 0000000000010000 r15 : 0000000000010000 r16 : a000000100c01aa8\nr17 : a000000100d2c350 r18 : 0000000000000000 r19 : a000000100d2c300\nr20 : a000000100c01a88 r21 : 0000000080010100 r22 : a000000100c01ac0\nr23 : a0000001000108e0 r24 : e000000477980004 r25 : 0000000000000000\nr26 : 0000000000000000 r27 : e00000000913400c r28 : e0000004799ee51c\nr29 : e0000004778b87f0 r30 : a000000100d2c300 r31 : a00000010005c7e0\n\nCall Trace:\n [\u003ca000000100014600\u003e] show_stack+0x40/0xa0\n                                sp\u003da000000100bcb760 bsp\u003da000000100bc4f40\n [\u003ca000000100014f00\u003e] show_regs+0x840/0x880\n                                sp\u003da000000100bcb930 bsp\u003da000000100bc4ee8\n [\u003ca000000100037fb0\u003e] die+0x250/0x320\n                                sp\u003da000000100bcb930 bsp\u003da000000100bc4ea0\n [\u003ca00000010005e5f0\u003e] ia64_do_page_fault+0x8d0/0xa20\n                                sp\u003da000000100bcb950 bsp\u003da000000100bc4e50\n [\u003ca00000010000caa0\u003e] ia64_leave_kernel+0x0/0x290\n                                sp\u003da000000100bcb9e0 bsp\u003da000000100bc4e50\n [\u003ca0000001000e1410\u003e] __do_IRQ+0x370/0x3e0\n                                sp\u003da000000100bcbbb0 bsp\u003da000000100bc4df0\n [\u003ca000000100011f50\u003e] ia64_handle_irq+0x170/0x220\n                                sp\u003da000000100bcbbb0 bsp\u003da000000100bc4dc0\n [\u003ca00000010000caa0\u003e] ia64_leave_kernel+0x0/0x290\n                                sp\u003da000000100bcbbb0 bsp\u003da000000100bc4dc0\n [\u003ca000000100012390\u003e] ia64_pal_call_static+0x90/0xc0\n                                sp\u003da000000100bcbd80 bsp\u003da000000100bc4d78\n [\u003ca000000100015630\u003e] default_idle+0x90/0x160\n                                sp\u003da000000100bcbd80 bsp\u003da000000100bc4d58\n [\u003ca000000100014290\u003e] cpu_idle+0x1f0/0x440\n                                sp\u003da000000100bcbe20 bsp\u003da000000100bc4d18\n [\u003ca000000100009980\u003e] rest_init+0xc0/0xe0\n                                sp\u003da000000100bcbe20 bsp\u003da000000100bc4d00\n [\u003ca0000001009f8ea0\u003e] start_kernel+0x6a0/0x6c0\n                                sp\u003da000000100bcbe20 bsp\u003da000000100bc4ca0\n [\u003ca0000001000089f0\u003e] __end_ivt_text+0x6d0/0x6f0\n                                sp\u003da000000100bcbe30 bsp\u003da000000100bc4c00\n \u003c0\u003eKernel panic - not syncing: Aiee, killing interrupt handler!\n\nThe root cause is that some irq_chip variables, especially ia64_msi_chip,\ninitiate their memeber end to point to NULL. __do_IRQ doesn\u0027t check\nif irq_chip-\u003eend is null and just calls it after processing the interrupt.\n\nAs irq_chip-\u003eend is called at many places, so I fix it by reinitiating\nirq_chip-\u003eend to dummy_irq_chip.end, e.g., a noop function.\n\nSigned-off-by: Zhang Yanmin \u003cyanmin.zhang@intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b126b77536186eef69d408eb7959ce7f558f251",
      "tree": "09d29a919c92af36151c3d97ba6bf2e182ee6acb",
      "parents": [
        "0579e303553655245e8a6616bd8b4428b07d63a2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Nov 14 02:03:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Nov 14 09:09:26 2006 -0800"
      },
      "message": "[PATCH] setup_irq(): better mismatch debugging\n\nWhen we get a mismatch between handlers on the same IRQ, all we get is \"IRQ\nhandler type mismatch for IRQ n\".  Let\u0027s print the name of the\npresently-registered handler with which we got the mismatch.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f72fa707604c015a6625e80f269506032d5430dc",
      "tree": "d7701d7a0e6fef020e78f690041486a052bc9bb3",
      "parents": [
        "0130b0b32ee53dc7add773fcea984f6a26ef1da3"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Fri Nov 10 12:27:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 13 07:40:43 2006 -0800"
      },
      "message": "[PATCH] Fix misrouted interrupts deadlocks\n\nWhile testing kernel on machine with \"irqpoll\" option I\u0027ve caught such a\nlockup:\n\n\t__do_IRQ()\n\t   spin_lock(\u0026desc-\u003elock);\n           desc-\u003echip-\u003eack(); /* IRQ is ACKed */\n\tnote_interrupt()\n\tmisrouted_irq()\n\thandle_IRQ_event()\n           if (...)\n\t      local_irq_enable_in_hardirq();\n\t/* interrupts are enabled from now */\n\t...\n\t__do_IRQ() /* same IRQ we\u0027ve started from */\n\t   spin_lock(\u0026desc-\u003elock); /* LOCKUP */\n\nLooking at misrouted_irq() code I\u0027ve found that a potential deadlock like\nthis can also take place:\n\n1CPU:\n__do_IRQ()\n   spin_lock(\u0026desc-\u003elock); /* irq \u003d A */\nmisrouted_irq()\n   for (i \u003d 1; i \u003c NR_IRQS; i++) {\n      spin_lock(\u0026desc-\u003elock); /* irq \u003d B */\n      if (desc-\u003estatus \u0026 IRQ_INPROGRESS) {\n\n2CPU:\n__do_IRQ()\n   spin_lock(\u0026desc-\u003elock); /* irq \u003d B */\nmisrouted_irq()\n   for (i \u003d 1; i \u003c NR_IRQS; i++) {\n      spin_lock(\u0026desc-\u003elock); /* irq \u003d A */\n      if (desc-\u003estatus \u0026 IRQ_INPROGRESS) {\n\nAs the second lock on both CPUs is taken before checking that this irq is\nbeing handled in another processor this may cause a deadlock.  This issue\nis only theoretical.\n\nI propose the attached patch to fix booth problems: when trying to handle\nmisrouted IRQ active desc-\u003elock may be unlocked.\n\nAcked-by: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a460e745e8f9c75a0525ff94154a0629f9d3e05d",
      "tree": "38ef71d81c2ca2f979319b0a91f34f0cf9998643",
      "parents": [
        "308ba5fcf89b6e328f9290067181c1e4d772fdc9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 17 00:10:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:45 2006 -0700"
      },
      "message": "[PATCH] genirq: clean up irq-flow-type naming\n\nIntroduce desc-\u003ename and eliminate the handle_irq_name() hack.  Add\nset_irq_chip_and_handler_name() to set the flow type and name at once.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01a3ee2b203e511e20f98b85a9172fd32c53e87c",
      "tree": "0dd90d81dc86f231828af23bdb97522405b06cab",
      "parents": [
        "39484e53bb00f55b6303a908070db133608ef2a5"
      ],
      "author": {
        "name": "Reinette Chatre",
        "email": "reinette.chatre@linux.intel.com",
        "time": "Wed Oct 11 01:21:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:22 2006 -0700"
      },
      "message": "[PATCH] bitmap: parse input from kernel and user buffers\n\nlib/bitmap.c:bitmap_parse() is a library function that received as input a\nuser buffer.  This seemed to have originated from the way the write_proc\nfunction of the /proc filesystem operates.\n\nThis has been reworked to not use kmalloc and eliminates a lot of\nget_user() overhead by performing one access_ok before using __get_user().\n\nWe need to test if we are in kernel or user space (is_user) and access the\nbuffer differently.  We cannot use __get_user() to access kernel addresses\nin all cases, for example in architectures with separate address space for\nkernel and user.\n\nThis function will be useful for other uses as well; for example, taking\ninput for /sysfs instead of /proc, so it was changed to accept kernel\nbuffers.  We have this use for the Linux UWB project, as part as the\nupcoming bandwidth allocator code.\n\nOnly a few routines used this function and they were changed too.\n\nSigned-off-by: Reinette Chatre \u003creinette.chatre@linux.intel.com\u003e\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e317c8ccaaf900abf39cc3240e4dc5ba82a3cc67",
      "tree": "327b25cecd21d97097b1249fe73a5c9ff2a6bcc6",
      "parents": [
        "b7696ee3c050a76a6cebccdbadfc93896b336e44"
      ],
      "author": {
        "name": "Frederik Deweerdt",
        "email": "deweerdt@free.fr",
        "time": "Fri Oct 06 18:58:24 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 06 12:11:08 2006 -0700"
      },
      "message": "[PATCH] ixp4xxdefconfig arm fixes\n\nWith the following patch, the ixp4xxdefconfig builds correctly.  I\u0027ll\ntest some more configs if I get some time.\n\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7d12e780e003f93433d49ce78cfedf4b4c52adc5",
      "tree": "6748550400445c11a306b132009f3001e3525df8",
      "parents": [
        "da482792a6d1a3fbaaa25fae867b343fb4db3246"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 14:55:46 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 15:10:12 2006 +0100"
      },
      "message": "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers\n\nMaintain a per-CPU global \"struct pt_regs *\" variable which can be used instead\nof passing regs around manually through all ~1800 interrupt handlers in the\nLinux kernel.\n\nThe regs pointer is used in few places, but it potentially costs both stack\nspace and code to pass it around.  On the FRV arch, removing the regs parameter\nfrom all the genirq function results in a 20% speed up of the IRQ exit path\n(ie: from leaving timer_interrupt() to leaving do_IRQ()).\n\nWhere appropriate, an arch may override the generic storage facility and do\nsomething different with the variable.  On FRV, for instance, the address is\nmaintained in GR28 at all times inside the kernel as part of general exception\nhandling.\n\nHaving looked over the code, it appears that the parameter may be handed down\nthrough up to twenty or so layers of functions.  Consider a USB character\ndevice attached to a USB hub, attached to a USB controller that posts its\ninterrupts through a cascaded auxiliary interrupt controller.  A character\ndevice driver may want to pass regs to the sysrq handler through the input\nlayer which adds another few layers of parameter passing.\n\nI\u0027ve build this code with allyesconfig for x86_64 and i386.  I\u0027ve runtested the\nmain part of the code on FRV and i386, though I can\u0027t test most of the drivers.\nI\u0027ve also done partial conversion for powerpc and MIPS - these at least compile\nwith minimal configurations.\n\nThis will affect all archs.  Mostly the changes should be relatively easy.\nTake do_IRQ(), store the regs pointer at the beginning, saving the old one:\n\n\tstruct pt_regs *old_regs \u003d set_irq_regs(regs);\n\nAnd put the old one back at the end:\n\n\tset_irq_regs(old_regs);\n\nDon\u0027t pass regs through to generic_handle_irq() or __do_IRQ().\n\nIn timer_interrupt(), this sort of change will be necessary:\n\n\t-\tupdate_process_times(user_mode(regs));\n\t-\tprofile_tick(CPU_PROFILING, regs);\n\t+\tupdate_process_times(user_mode(get_irq_regs()));\n\t+\tprofile_tick(CPU_PROFILING);\n\nI\u0027d like to move update_process_times()\u0027s use of get_irq_regs() into itself,\nexcept that i386, alone of the archs, uses something other than user_mode().\n\nSome notes on the interrupt handling in the drivers:\n\n (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in\n     the input_dev struct.\n\n (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does\n     something different depending on whether it\u0027s been supplied with a regs\n     pointer or not.\n\n (*) Various IRQ handler function pointers have been moved to type\n     irq_handler_t.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)\n"
    },
    {
      "commit": "da482792a6d1a3fbaaa25fae867b343fb4db3246",
      "tree": "138c187e669bbaf997780a999299fbc977568e1c",
      "parents": [
        "57a58a9435aef3e0342ba4b2c97e0ddfea6f2c7f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 13:06:34 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 13:28:27 2006 +0100"
      },
      "message": "IRQ: Typedef the IRQ handler function type\n\nTypedef the IRQ handler function type.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 1356d1e5fd256997e3d3dce0777ab787d0515c7a commit)\n"
    },
    {
      "commit": "57a58a9435aef3e0342ba4b2c97e0ddfea6f2c7f",
      "tree": "35603f6385edf3dcd20e80a2fcf4c66c7cdc34a7",
      "parents": [
        "d223a60106891bfe46febfacf46b20cd8509aaad"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 13:06:34 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 13:28:06 2006 +0100"
      },
      "message": "IRQ: Typedef the IRQ flow handler function type\n\nTypedef the IRQ flow handler function type.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 8e973fbdf5716b93a0a8c0365be33a31ca0fa351 commit)\n"
    },
    {
      "commit": "1f80025e624bb14fefadfef7e80fbfb9740d4714",
      "tree": "1d6f18ebd2855e882213922036d8df8cd7e88db4",
      "parents": [
        "8b955b0dddb35e398b07e217a81f8bd49400796f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Oct 04 02:16:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:29 2006 -0700"
      },
      "message": "[PATCH] msi: simplify msi sanity checks by adding with generic irq code\n\nCurrently msi.c is doing sanity checks that make certain before an irq is\ndestroyed it has no more users.\n\nBy adding irq_has_action I can perform the test is a generic way, instead of\nrelying on a msi specific data structure.\n\nBy performing the core check in dynamic_irq_cleanup I ensure every user of\ndynamic irqs has a test present and we don\u0027t free resources that are in use.\n\nIn msi.c this allows me to kill the attrib.state member of msi_desc and all of\nthe assciated code to maintain it.\n\nTo keep from freeing data structures when irq cleanup code is called to soon\nchanging dyanamic_irq_cleanup is insufficient because there are msi specific\ndata structures that are also not safe to free.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a16d713626735f3016da0521b7bf251cd78e836",
      "tree": "39147d40b681391a578b19fceb50dfe5a7a4a1ab",
      "parents": [
        "92db6d10bc1bc43330a4c540fa5b64c83d9d865f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Oct 04 02:16:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:27 2006 -0700"
      },
      "message": "[PATCH] genirq: irq: add a dynamic irq creation API\n\nWith the msi support comes a new concept in irq handling, irqs that are\ncreated dynamically at run time.\n\nCurrently the msi code allocates irqs backwards.  First it allocates a\nplatform dependent routing value for an interrupt the ``vector\u0027\u0027 and then it\nfigures out from the vector which irq you are on.\n\nThis msi backwards allocator suffers from two basic problems.  The allocator\nsuffers because it is trying to do something that is architecture specific in\na generic way making it brittle, inflexible, and tied to tightly to the\narchitecture implementation.  The alloctor also suffers from it\u0027s very\nbackwards nature as it has tied things together that should have no\ndependencies.\n\nTo solve the basic dynamic irq allocation problem two new architecture\nspecific functions are added: create_irq and destroy_irq.\n\ncreate_irq takes no input and returns an unused irq number, that won\u0027t be\nreused until it is returned to the free poll with destroy_irq.  The irq then\ncan be used for any purpose although the only initial consumer is the msi\ncode.\n\ndestroy_irq takes an irq number allocated with create_irq and returns it to\nthe free pool.\n\nMaking this functionality per architecture increases the simplicity of the irq\nallocation code and increases it\u0027s flexibility.\n\ndynamic_irq_init() and dynamic_irq_cleanup() are added to automate the\nirq_desc initializtion that should happen for dynamic irqs.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Rajesh Shah \u003crajesh.shah@intel.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: \"Protasevich, Natalie\" \u003cNatalie.Protasevich@UNISYS.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "e7b946e98a456077dd6897f726f3d6197bd7e3b9"
}
