)]}'
{
  "commit": "36e6fea84905512ea776707e82b5b435220efc17",
  "tree": "db588e7dbbfcf0fa47f4954344a03961e960c898",
  "parents": [
    "70bdb6b275d789ddf05c3a858e6b57715539394b"
  ],
  "author": {
    "name": "Johannes Berg",
    "email": "johannes@sipsolutions.net",
    "time": "Wed Aug 12 22:21:21 2009 +0200"
  },
  "committer": {
    "name": "John W. Linville",
    "email": "linville@tuxdriver.com",
    "time": "Fri Aug 14 09:14:07 2009 -0400"
  },
  "message": "cfg80211: check for and abort dangling scan requests\n\nIf you trigger a scan request on an interface and then\ntake it down, or rmmod the module or unplug the device\nthe driver might \"forget\" to cancel the scan request.\nThat is a bug in the driver, but the current behaviour\nis that we just hang endlessly waiting for the netdev\nrefcount to become 0 which it never will. To improve\nrobustness, check for this situation in cfg80211, warn\nabout it and clean up behind the driver. I don\u0027t just\nclean up silently because it\u0027s likely that the driver\nalso has some internal state it has now leaked.\n\nAdditionally, this fixes a locking bug, clearing the\nscan_req pointer should be done under the rdev lock.\n\nFinally, we also need to _wait_ for the scan work and\nnot just abort it since it might be pending and wanting\nto do a cleanup.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e630648fef79e27064293c02688833a7a6df86a7",
      "old_mode": 33188,
      "old_path": "net/wireless/core.c",
      "new_id": "35d83bedfe5b16792466f436ae112640437b994c",
      "new_mode": 33188,
      "new_path": "net/wireless/core.c"
    },
    {
      "type": "modify",
      "old_id": "f7be3a9b427e712dd86d0cbec5873c676462a09f",
      "old_mode": 33188,
      "old_path": "net/wireless/core.h",
      "new_id": "c603f528632641acafdf8a8a3fe85e2f4928c038",
      "new_mode": 33188,
      "new_path": "net/wireless/core.h"
    },
    {
      "type": "modify",
      "old_id": "e6c1f11595da05ec2e87976475e693bbd89d4022",
      "old_mode": 33188,
      "old_path": "net/wireless/scan.c",
      "new_id": "fe575a24c95c1196d7b8a1fab66d16471193505e",
      "new_mode": 33188,
      "new_path": "net/wireless/scan.c"
    }
  ]
}
