)]}'
{
  "commit": "b57e6b560fc2a2742910ac5ca0eb2c46e45aeac2",
  "tree": "f658087c4d280d8887b4f5e8a90be3380eb61136",
  "parents": [
    "e81a7bd55531a77d8c16d44766db4089c2983f1b"
  ],
  "author": {
    "name": "Mohammed Shafi Shajakhan",
    "email": "mohammed@qca.qualcomm.com",
    "time": "Thu Feb 09 19:59:43 2012 +0530"
  },
  "committer": {
    "name": "John W. Linville",
    "email": "linville@tuxdriver.com",
    "time": "Thu Feb 09 15:16:04 2012 -0500"
  },
  "message": "mac80211: Fix a rwlock bad magic bug\n\nread_lock(\u0026tpt_trig-\u003etrig.leddev_list_lock) is accessed via the path\nieee80211_open (-\u003e) ieee80211_do_open (-\u003e) ieee80211_mod_tpt_led_trig\n(-\u003e) ieee80211_start_tpt_led_trig (-\u003e) tpt_trig_timer before initializing\nit.\nthe intilization of this read/write lock happens via the path\nieee80211_led_init (-\u003e) led_trigger_register, but we are doing\n\u0027ieee80211_led_init\u0027  after \u0027ieeee80211_if_add\u0027 where we\nregister netdev_ops.\nso we access leddev_list_lock before initializing it and causes the\nfollowing bug in chrome laptops with AR928X cards with the following\nscript\n\nwhile true\ndo\nsudo modprobe -v ath9k\nsleep 3\nsudo modprobe -r ath9k\nsleep 3\ndone\n\n\tBUG: rwlock bad magic on CPU#1, wpa_supplicant/358, f5b9eccc\n\tPid: 358, comm: wpa_supplicant Not tainted 3.0.13 #1\n\tCall Trace:\n\n\t[\u003c8137b9df\u003e] rwlock_bug+0x3d/0x47\n\t[\u003c81179830\u003e] do_raw_read_lock+0x19/0x29\n\t[\u003c8137f063\u003e] _raw_read_lock+0xd/0xf\n\t[\u003cf9081957\u003e] tpt_trig_timer+0xc3/0x145 [mac80211]\n\t[\u003cf9081f3a\u003e] ieee80211_mod_tpt_led_trig+0x152/0x174 [mac80211]\n\t[\u003cf9076a3f\u003e] ieee80211_do_open+0x11e/0x42e [mac80211]\n\t[\u003cf9075390\u003e] ? ieee80211_check_concurrent_iface+0x26/0x13c [mac80211]\n\t[\u003cf9076d97\u003e] ieee80211_open+0x48/0x4c [mac80211]\n\t[\u003c812dbed8\u003e] __dev_open+0x82/0xab\n\t[\u003c812dc0c9\u003e] __dev_change_flags+0x9c/0x113\n\t[\u003c812dc1ae\u003e] dev_change_flags+0x18/0x44\n\t[\u003c8132144f\u003e] devinet_ioctl+0x243/0x51a\n\t[\u003c81321ba9\u003e] inet_ioctl+0x93/0xac\n\t[\u003c812cc951\u003e] sock_ioctl+0x1c6/0x1ea\n\t[\u003c812cc78b\u003e] ? might_fault+0x20/0x20\n\t[\u003c810b1ebb\u003e] do_vfs_ioctl+0x46e/0x4a2\n\t[\u003c810a6ebb\u003e] ? fget_light+0x2f/0x70\n\t[\u003c812ce549\u003e] ? sys_recvmsg+0x3e/0x48\n\t[\u003c810b1f35\u003e] sys_ioctl+0x46/0x69\n\t[\u003c8137fa77\u003e] sysenter_do_call+0x12/0x2\n\nCc: \u003cstable@vger.kernel.org\u003e\nCc: Gary Morain \u003cgmorain@google.com\u003e\nCc: Paul Stewart \u003cpstew@google.com\u003e\nCc: Abhijit Pradhan \u003cabhijit@qca.qualcomm.com\u003e\nCc: Vasanthakumar Thiagarajan \u003cvthiagar@qca.qualcomm.com\u003e\nCc: Rajkumar Manoharan \u003crmanohar@qca.qualcomm.com\u003e\nAcked-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nTested-by: Mohammed Shafi Shajakhan \u003cmohammed@qca.qualcomm.com\u003e\nSigned-off-by: Mohammed Shafi Shajakhan \u003cmohammed@qca.qualcomm.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0a0d94ad9b08374fe90e0f653da4d4b352e8f6c9",
      "old_mode": 33188,
      "old_path": "net/mac80211/main.c",
      "new_id": "b142bd4c239096f51fbf0e79e9b507a2bf35d1d0",
      "new_mode": 33188,
      "new_path": "net/mac80211/main.c"
    }
  ]
}
