)]}'
{
  "commit": "d136f1bd366fdb7e747ca7e0218171e7a00a98a5",
  "tree": "cee39b3249c36aba4b765cae6d9d3579c9f10a2d",
  "parents": [
    "8be8057e72d7d319f8e97b26e16de8021fe63988"
  ],
  "author": {
    "name": "Johannes Berg",
    "email": "johannes@sipsolutions.net",
    "time": "Sat Sep 12 03:03:15 2009 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Sep 14 17:02:50 2009 -0700"
  },
  "message": "genetlink: fix netns vs. netlink table locking\n\nSince my commits introducing netns awareness into\ngenetlink we can get this problem:\n\nBUG: scheduling while atomic: modprobe/1178/0x00000002\n2 locks held by modprobe/1178:\n #0:  (genl_mutex){+.+.+.}, at: [\u003cffffffff8135ee1a\u003e] genl_register_mc_grou\n #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff8135eeb5\u003e] genl_register_mc_g\nPid: 1178, comm: modprobe Not tainted 2.6.31-rc8-wl-34789-g95cb731-dirty #\nCall Trace:\n [\u003cffffffff8103e285\u003e] __schedule_bug+0x85/0x90\n [\u003cffffffff81403138\u003e] schedule+0x108/0x588\n [\u003cffffffff8135b131\u003e] netlink_table_grab+0xa1/0xf0\n [\u003cffffffff8135c3a7\u003e] netlink_change_ngroups+0x47/0x100\n [\u003cffffffff8135ef0f\u003e] genl_register_mc_group+0x12f/0x290\n\nbecause I overlooked that netlink_table_grab() will\nschedule, thinking it was just the rwlock. However,\nin the contention case, that isn\u0027t actually true.\n\nFix this by letting the code grab the netlink table\nlock first and then the RCU for netns protection.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0fbecbbe8e9e950b39f0b45b916c960e39acd4c8",
      "old_mode": 33188,
      "old_path": "include/linux/netlink.h",
      "new_id": "080f6ba9e73a35063a8b0b6ae8a797b6a9b107da",
      "new_mode": 33188,
      "new_path": "include/linux/netlink.h"
    },
    {
      "type": "modify",
      "old_id": "d0ff382c40ca96cfe66752379039218714c966a1",
      "old_mode": 33188,
      "old_path": "net/netlink/af_netlink.c",
      "new_id": "c5aab6a368ce250badd33ab0d30e858292f91521",
      "new_mode": 33188,
      "new_path": "net/netlink/af_netlink.c"
    },
    {
      "type": "modify",
      "old_id": "66f6ba0bab11932c9b1302a555f9bcefb52065dd",
      "old_mode": 33188,
      "old_path": "net/netlink/genetlink.c",
      "new_id": "566941e03363fbdd7591ded5ed16b41f0a903c7c",
      "new_mode": 33188,
      "new_path": "net/netlink/genetlink.c"
    }
  ]
}
