)]}'
{
  "commit": "5efbabe09d986f25c02d19954660238fcd7f008a",
  "tree": "9ed3958ab9e81e79d17362c6867e6aa35b91b259",
  "parents": [
    "f1b3929c232784580e5d8ee324b6bc634e709575"
  ],
  "author": {
    "name": "Gavin Shan",
    "email": "gwshan@linux.vnet.ibm.com",
    "time": "Mon Aug 11 19:16:20 2014 +1000"
  },
  "committer": {
    "name": "Benjamin Herrenschmidt",
    "email": "benh@kernel.crashing.org",
    "time": "Wed Aug 13 15:13:47 2014 +1000"
  },
  "message": "powerpc/pseries: Avoid deadlock on removing ddw\n\nFunction remove_ddw() could be called in of_reconfig_notifier and\nwe potentially remove the dynamic DMA window property, which invokes\nof_reconfig_notifier again. Eventually, it leads to the deadlock as\nfollowing backtrace shows.\n\nThe patch fixes the above issue by deferring releasing the dynamic\nDMA window property while releasing the device node.\n\n\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n3.16.0+ #428 Tainted: G        W\n---------------------------------------------\ndrmgr/2273 is trying to acquire lock:\n ((of_reconfig_chain).rwsem){.+.+..}, at: [\u003cc000000000091890\u003e] \\\n .__blocking_notifier_call_chain+0x40/0x78\n\nbut task is already holding lock:\n ((of_reconfig_chain).rwsem){.+.+..}, at: [\u003cc000000000091890\u003e] \\\n .__blocking_notifier_call_chain+0x40/0x78\n\nother info that might help us debug this:\n Possible unsafe locking scenario:\n\n       CPU0\n       ----\n  lock((of_reconfig_chain).rwsem);\n  lock((of_reconfig_chain).rwsem);\n *** DEADLOCK ***\n\n May be due to missing lock nesting notation\n\n2 locks held by drmgr/2273:\n #0:  (sb_writers#4){.+.+.+}, at: [\u003cc0000000001cbe70\u003e] \\\n      .vfs_write+0xb0/0x1f8\n #1:  ((of_reconfig_chain).rwsem){.+.+..}, at: [\u003cc000000000091890\u003e] \\\n      .__blocking_notifier_call_chain+0x40/0x78\n\nstack backtrace:\nCPU: 17 PID: 2273 Comm: drmgr Tainted: G        W     3.16.0+ #428\nCall Trace:\n[c0000000137e7000] [c000000000013d9c] .show_stack+0x88/0x148 (unreliable)\n[c0000000137e70b0] [c00000000083cd34] .dump_stack+0x7c/0x9c\n[c0000000137e7130] [c0000000000b8afc] .__lock_acquire+0x128c/0x1c68\n[c0000000137e7280] [c0000000000b9a4c] .lock_acquire+0xe8/0x104\n[c0000000137e7350] [c00000000083588c] .down_read+0x4c/0x90\n[c0000000137e73e0] [c000000000091890] .__blocking_notifier_call_chain+0x40/0x78\n[c0000000137e7490] [c000000000091900] .blocking_notifier_call_chain+0x38/0x48\n[c0000000137e7520] [c000000000682a28] .of_reconfig_notify+0x34/0x5c\n[c0000000137e75b0] [c000000000682a9c] .of_property_notify+0x4c/0x54\n[c0000000137e7650] [c000000000682bf0] .of_remove_property+0x30/0xd4\n[c0000000137e76f0] [c000000000052a44] .remove_ddw+0x144/0x168\n[c0000000137e7790] [c000000000053204] .iommu_reconfig_notifier+0x30/0xe0\n[c0000000137e7820] [c00000000009137c] .notifier_call_chain+0x6c/0xb4\n[c0000000137e78c0] [c0000000000918ac] .__blocking_notifier_call_chain+0x5c/0x78\n[c0000000137e7970] [c000000000091900] .blocking_notifier_call_chain+0x38/0x48\n[c0000000137e7a00] [c000000000682a28] .of_reconfig_notify+0x34/0x5c\n[c0000000137e7a90] [c000000000682e14] .of_detach_node+0x44/0x1fc\n[c0000000137e7b40] [c0000000000518e4] .ofdt_write+0x3ac/0x688\n[c0000000137e7c20] [c000000000238430] .proc_reg_write+0xb8/0xd4\n[c0000000137e7cd0] [c0000000001cbeac] .vfs_write+0xec/0x1f8\n[c0000000137e7d70] [c0000000001cc3b0] .SyS_write+0x58/0xa0\n[c0000000137e7e30] [c00000000000a064] syscall_exit+0x0/0x98\n\nCc: stable@vger.kernel.org\nSigned-off-by: Gavin Shan \u003cgwshan@linux.vnet.ibm.com\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "33b552ffbe576d4b452f31aa22af5b6a16a9cd0c",
      "old_mode": 33188,
      "old_path": "arch/powerpc/platforms/pseries/iommu.c",
      "new_id": "4642d6a4d35641d5219a2378ce917409cea4c850",
      "new_mode": 33188,
      "new_path": "arch/powerpc/platforms/pseries/iommu.c"
    }
  ]
}
