)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "853aefbd184bfeec03783686abd92bf3ee0de36e",
      "old_mode": 33188,
      "old_path": "kernel/irq/manage.c",
      "new_id": "7230d914eaa28b86eaba939b5644c899d9872ce3",
      "new_mode": 33188,
      "new_path": "kernel/irq/manage.c"
    }
  ]
}
