)]}'
{
  "log": [
    {
      "commit": "9d88c7f6709aab0e4342d80fad6fb7d3f7efc7ff",
      "tree": "c9e46b2f5e9bc9c1661b2727f243e14e141a870a",
      "parents": [
        "682dd04b37bc6b36356adda31e5435da8a246499"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kubakici@wp.pl",
        "time": "Thu Feb 23 02:17:48 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 27 14:06:40 2012 -0500"
      },
      "message": "mac80211: use proper sub_if_data on suspend path\n\nUse interface data from sta instead of invalid pointer\nto list head in calls to drv_sta_state.\n\nSigned-off-by: Jakub Kicinski \u003ckubakici@wp.pl\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a4ec45a421b80bc36fd37578accf081f32527a7f",
      "tree": "2eed7b4fbdece2358be059773b010b6acc3806b0",
      "parents": [
        "f09603a259ffef69ad4516a04eb06cd65ac522fe"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Jan 20 13:55:22 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:48:25 2012 -0500"
      },
      "message": "mac80211: implement sta_add/sta_remove in sta_state\n\nInstead of maintaining separate sta_add/sta_remove\ncallsites, implement it in sta_state when the driver\nhas no sta_state implementation.\n\nThe only behavioural change this should cause is in\nsecure mesh mode: with this the station entries will\nonly be created after the stations are set to AUTH.\nGiven which drivers support mesh, this seems to not\nbe a problem.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f09603a259ffef69ad4516a04eb06cd65ac522fe",
      "tree": "3f826769c697eb15a76771e25291bbb54f9f58ab",
      "parents": [
        "71ec375c75095002f36f083ceb32bbb8725734ae"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Jan 20 13:55:21 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:48:24 2012 -0500"
      },
      "message": "mac80211: add sta_state callback\n\n(based on Eliad\u0027s patch)\n\nAdd a callback to notify the low-level driver whenever\nthe state of a station changes. The driver is only\nnotified when the station is actually in the mac80211\nhash table, not for pre-insert state transitions.\n\nTo allow the driver to replace sta_add/remove calls\nwith this, call extra transitions with the NOTEXIST\nstate.\n\nThis callback can fail, so we need to be careful in\nhandling it when a station is inserted, particularly\nin the IBSS case where we still keep the station entry\naround for mac80211 purposes.\n\nSigned-off-by: Eliad Peller \u003celiad@wizery.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "077f49392819608084c6d8d20e3dcca230afe07d",
      "tree": "7b19e4537933e9c7e0524421d16701576c4b74b2",
      "parents": [
        "c8987876e9bf9b7b83e75b325586bc77ea8ac825"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Jan 20 13:55:18 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:48:24 2012 -0500"
      },
      "message": "mac80211: simplify AP_VLAN handling\n\nSetting keys and updating TKIP keys must use the\nBSS sdata (not AP_VLAN), so we translate. Move\nthe translation into driver-ops wrappers instead\nof having it inline in the code to simplify the\nnormal code flow.\n\nThe same can be done for sta_add/remove which\nalready does the translation in the wrapper.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7b7eab6fc1bc8852d9649541b59283cd89cc526f",
      "tree": "7b071ee01187bc3ee843c86b88189cc4eab73cf1",
      "parents": [
        "6e3e939f3b1bf8534b32ad09ff199d88800835a0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Nov 03 14:41:13 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 09 16:01:02 2011 -0500"
      },
      "message": "mac80211: verify virtual interfaces in driver API\n\nThe driver is never informed about monitor or\nAP_VLAN interfaces, so whenever we pass those\nto it later this is a bug. Verify we don\u0027t as\nthere are some cases where this could happen.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c2c98fdeb5c897499644eb247285c8e3dacc6450",
      "tree": "aaa9c0f8dd16ab896308470e21a0813041094670",
      "parents": [
        "deeaee197b0fa694ba6c8f02cdb57b3be7115b4f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Sep 29 16:04:36 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Sep 30 15:57:19 2011 -0400"
      },
      "message": "mac80211: optimise station flags\n\nThe flaglock in struct sta_info has long been\nsomething that I wanted to get rid of, this\nfinally does the conversion to atomic bitops.\n\nThe conversion itself is straight-forward in\nmost places, a few things needed to change a\nbit since we can no longer use multiple bits\nat the same time.\n\nOn x86-64, this is a fairly significant code\nsize reduction:\n   text\t   data\t    bss\t    dec\t    hex\n 427861\t  23648\t   1008\t 452517\t  6e7a5\tbefore\n 425383\t  23648\t    976\t 450007\t  6ddd7\tafter\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "94f9b97be5b3bf67392e43fb7f567721b09142c2",
      "tree": "4ffbf7480eeb60baf40f63070439f96e9a92c7e7",
      "parents": [
        "3f29c522184ffb44fd475fdbe6083023ab1506f8"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jul 14 16:48:54 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jul 15 13:39:42 2011 -0400"
      },
      "message": "mac80211: be more careful in suspend/resume\n\nWhen suspending with all netdevs down, the device\nis stopped but we still call a number of driver\ncallbacks that the driver might not expect. The\nsame happens during resume, we might call a few\ncallbacks without starting the driver. Fix this\nby checking open_count around more things and\nexiting quickly if it is 0.\n\nAlso, while at this I noticed that the coverage\nclass isn\u0027t reprogrammed after resume, so add\nthat.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2b4562dfd6ad3579951de21168cb9d266ed3f1bd",
      "tree": "38b43f58644fc02ffeb0930009b979542362ea88",
      "parents": [
        "304e21bbeab0d208dc7e6142fb75db8a466d5217"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Sat Jul 02 00:02:01 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jul 05 15:26:56 2011 -0400"
      },
      "message": "mac80211: allow driver to impose WoWLAN restrictions\n\nIf the driver can\u0027t support WoWLAN in the current\nstate, this patch allows it to return 1 from the\nsuspend callback to do the normal deconfiguration\ninstead of using suspend/resume calls. Note that\nif it does this, resume won\u0027t be called.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "77572fd13d7f468216b85e68a006000726a59e89",
      "tree": "4bb3f93ded198ba6770afea08ca75d5967795f91",
      "parents": [
        "6392cb387cb629a5aa488e6a2eab9383b574a7ef"
      ],
      "author": {
        "name": "Eliad Peller",
        "email": "eliad@wizery.com",
        "time": "Thu Jun 16 11:49:33 2011 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 20 15:34:18 2011 -0400"
      },
      "message": "mac80211: quiesce vif before suspending\n\nCancel all relevant timers/works before suspending (wowlan).\n\nThis patch handles the following warning:\nWARNING: at net/mac80211/util.c:565 queueing ieee80211 work while going to suspend\nBacktrace:\n[\u003cbf07b598\u003e] (ieee80211_can_queue_work+0x0/0x4c [mac80211])\n[\u003cbf07c28c\u003e] (ieee80211_queue_work+0x0/0x30 [mac80211])\n[\u003cbf0690dc\u003e] (ieee80211_sta_timer+0x0/0x3c [mac80211])\n[\u003cc00a3008\u003e] (run_timer_softirq+0x0/0x220)\n[\u003cc009e530\u003e] (__do_softirq+0x0/0x130)\n[\u003cc009e660\u003e] (irq_exit+0x0/0xb4)\n[\u003cc004c4a0\u003e] (ipi_timer+0x0/0x4c)\n[\u003cc0046350\u003e] (do_local_timer+0x0/0x88)\n[\u003cc00488ec\u003e] (cpu_idle+0x0/0xe0)\n[\u003cc05294e8\u003e] (rest_init+0x0/0xe0)\n[\u003cc0008958\u003e] (start_kernel+0x0/0x314)\n\nSigned-off-by: Eliad Peller \u003celiad@wizery.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "eecc48000afe2ca6da22122d553b7cad294e42fc",
      "tree": "ade8a18351be5ca63b14d24f3f4db47909486fba",
      "parents": [
        "ff1b6e69ad4f31fb3c9c6da2665655f2e798dd70"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed May 04 15:37:29 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu May 05 14:59:20 2011 -0400"
      },
      "message": "mac80211: add basic support for WoWLAN\n\nThis adds basic support for the new WoWLAN\nconfiguration in mac80211. The behaviour is\ncompletely offloaded to the driver though,\nwith two new callbacks (suspend/resume).\n\nOptions for the driver include a complete\nreconfiguration after wakeup, and exposing\nall the triggers it wants to support.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ca45de77ad706e86b135b8564e21aa2c8a63f09b",
      "tree": "4a4163de4e22d610bb34b7cfc86fd69767c7645f",
      "parents": [
        "31d291a769b4318cbf7943ca149e04d201e2c931"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Apr 21 13:38:00 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Apr 25 14:50:16 2011 -0400"
      },
      "message": "mac80211: tear down BA sessions properly on suspend\n\nCurrently, the code to tear down BA sessions will\nexecute after queues are stopped, but attempt to\nsend frames, so those frames will just get queued,\nwhich isn\u0027t intended. Move this code to before to\ntear down the sessions properly.\n\nAdditionally, after stopping queues, flush the TX\nqueues in the driver driver to make sure all the\nframes went out.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4136c4224ccf1907d309e1cdfaefef9da97dbc5e",
      "tree": "be65af6057850d068b7858f5679a00b64fb2e92d",
      "parents": [
        "e229f844d7223b7063bea1e649203ac521a58fe1"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Wed Oct 06 11:22:10 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 06 16:30:42 2010 -0400"
      },
      "message": "mac80211: assure we also cancel deferred scan request\n\nThis is partial revert and fix for commit\n85f72bc839705294b32b6c16b491c0422f0a71b3 \"mac80211: only cancel\nsoftware-based scans on suspend\"\n\nWhen cfg80211 request the scan and mac80211 perform some management work,\nwe defer the scan request. We do not canceling such requests when calling\nieee80211_scan_cancel(), because of SCAN_SW_SCANNING bit check just\nbefore the call. So fix that problem.\n\nAnother problem, which commit 85f72bc839705294b32b6c16b491c0422f0a71b3\ntries to solve, is we can not cancel HW scan. Hence patch make\nieee80211_scan_cancel() ignore HW scan (see code comments). Keeping\nlocal-\u003emtx lock assures that the deferred scan will not become\n\"working\" HW scan.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "53f73c09d64f1fa7d7e6e8b6bb7468d42eddc92d",
      "tree": "a9284928f65ad33b3cbef9625871bb0c0116f875",
      "parents": [
        "845d708e62f08a45ff716fdb270c52585cad31d0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Oct 05 19:37:40 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 06 16:30:40 2010 -0400"
      },
      "message": "mac80211: avoid transmitting delBA to old AP\n\nWhen roaming while we have active BA session,\nwe can end up transmitting delBA frames to\nthe old AP while we\u0027re already on the new AP\u0027s\nchannel, which can cause warnings.\n\nSimply avoid sending those frames, but still\ntear down the internal session state, since\nthey are not really necessary anyway as we\nwill implicitly disassociate when sending the\nassociation to the new AP.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nAcked-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "85f72bc839705294b32b6c16b491c0422f0a71b3",
      "tree": "c2aec95a5b7315cc7e5bff44a28eb26d045d64e5",
      "parents": [
        "18145c69349f2ab60c470798f83b3a2639e2a8d9"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Sep 01 16:12:28 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Sep 01 16:12:28 2010 -0400"
      },
      "message": "mac80211: only cancel software-based scans on suspend\n\nOtherwise the hardware scan handler could access an invalid scan request\nstructure.  The driver should cancel any pending hardware scans during\nthe suspend process anyway, so also add a warning if the hardware scan\nis still pending when the device resumes.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "64592c8fc0e99d445fc3fdedddeb6088e20086f1",
      "tree": "2493358821abc4050b25f8a0bd813b763b188d38",
      "parents": [
        "35f20c14a103ca2c7062999e934a513b83d84de6"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:31 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:38:17 2010 -0400"
      },
      "message": "mac80211: use common work struct\n\nIBSS, managed and mesh modes all have their\nown work struct, and in the future we want\nto also use it in other modes to process\nframes from the now common skb queue.\n\nThis also makes the skb queue and work safe\nto use from other interface types.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2a419056c15478d2df3f3e9d4fa64e34eb1faa7d",
      "tree": "680342d6b883c18eec9003f2b93abd8ffd1e6ae6",
      "parents": [
        "9d38d85de0270e3927bffab94973a9c78d1dc800"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:29 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:38:16 2010 -0400"
      },
      "message": "mac80211: simplify station/aggregation code\n\nA number of places use RCU locking for accessing\nthe station list, even though they do not need\nto. Use mutex locking instead to prepare for the\nlocking changes I want to make. The mlme code is\nalso using a WLAN_STA_DISASSOC flag that has the\nsame meaning as WLAN_STA_BLOCK_BA, so use that.\n\nWhile doing so, combine places where we loop\nover stations twice, and optimise away some of\nthe loops by checking if the hardware supports\naggregation at all first.\n\nAlso fix a more theoretical race condition: right\nnow we could resume, set up an aggregation session,\nand right after tear it down again due to the code\nthat is needed for hardware reconfiguration here.\nAlso mark add a comment to that code marking it as\na workaround.\n\nFinally, remove a pointless aggregation disabling\nloop when an interface is stopped, directly after\nthat we remove all stations from it which will also\ndisable all aggregation sessions that may still be\nactive, and does so in a race-free way unlike the\ncurrent loop that doesn\u0027t block new sessions.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "618f356b95e37ca0c30b3b513898fda54abd52a6",
      "tree": "950d67d39fa3e6b70a5cbf593b85f53416fa051e",
      "parents": [
        "66b0470aeef10a3b0f9a6a1c60d908b5a06c62ae"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Apr 06 11:18:46 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 07 14:38:04 2010 -0400"
      },
      "message": "mac80211: rename WLAN_STA_SUSPEND to WLAN_STA_BLOCK_BA\n\nI want to use it during station destruction as well\nso rename it to WLAN_STA_BLOCK_BA which is also the\nonly use of it now.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "34e895075e21be3e21e71d6317440d1ee7969ad0",
      "tree": "217fe70e32e54ef0134f477510472f3992655d79",
      "parents": [
        "070bb5477fb4029131aad4941d7aaf0093db0c38"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Feb 03 13:59:58 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 08 16:50:53 2010 -0500"
      },
      "message": "mac80211: allow station add/remove to sleep\n\nMany drivers would like to sleep during station\naddition and removal, and currently have a high\ncomplexity there from not being able to.\n\nThis introduces two new callbacks sta_add() and\nsta_remove() that drivers can implement instead\nof using sta_notify() and that can sleep, and\nthe new sta_add() callback is also allowed to\nfail.\n\nThe reason we didn\u0027t do this previously is that\nthe IBSS code wants to insert stations from the\nRX path, which is a tasklet, so cannot sleep.\nThis patch will keep the station allocation in\nthat path, but moves adding the station to the\ndriver out of line. Since the addition can now\nfail, we can have IBSS peer structs the driver\nrejected -- in that case we still talk to the\nstation but never tell the driver about it in\nthe control.sta pointer. If there will ever be\na driver that has a low limit on the number of\nstations and that cannot talk to any stations\nthat are not known to it, we need to do come up\nwith a new strategy of handling larger IBSSs,\nmaybe quicker expiry or rejecting peers.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1ed32e4fc8cfc9656cc1101e7f9617d485fcbe7b",
      "tree": "81697637a36eb4776df39c81a77a9e09ec951a1a",
      "parents": [
        "98b6218388e345064c3f2d3c161383a18274c638"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 23 13:15:45 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 28 16:55:07 2009 -0500"
      },
      "message": "mac80211: remove struct ieee80211_if_init_conf\n\nAll its members (vif, mac_addr, type) are now available\nin the vif struct directly, so we can pass that instead\nof the conf struct. I generated this patch (except the\nmac80211 and header file changes) with this semantic\npatch:\n\n@@\nidentifier conf, fn, hw;\ntype tp;\n@@\ntp fn(struct ieee80211_hw *hw,\n-struct ieee80211_if_init_conf *conf)\n+struct ieee80211_vif *vif)\n{\n\u003c...\n(\n-conf-\u003etype\n+vif-\u003etype\n|\n-conf-\u003emac_addr\n+vif-\u003eaddr\n|\n-conf-\u003evif\n+vif\n)\n...\u003e\n}\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9607e6b66a0d25ca63b70d54a4283fa13d8f7c9d",
      "tree": "706cb2c2db2df69fa446eb3848b27107b67f2d25",
      "parents": [
        "d30506e0357e5448c7d38bb3739c451dbe4c174e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 23 13:15:31 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 28 16:54:49 2009 -0500"
      },
      "message": "mac80211: add ieee80211_sdata_running\n\nInstead of always using netif_running(sdata-\u003edev)\nuse ieee80211_sdata_running(sdata) now which is\njust an inline containing netif_running() for now.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "12375ef933fa8271396ed0c1e318cb1bd2e2689d",
      "tree": "b05ccc4573cb8f0a1b89edeeae7e6c5805f75f67",
      "parents": [
        "47846c9b0c10808d9337d2e7d09361f3e0a0a71a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Nov 25 20:30:31 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 21 18:38:54 2009 -0500"
      },
      "message": "mac80211: trace interface name\n\nIt\u0027s not all that useful to have the vif/sdata pointer,\nwe\u0027d rather refer to the interfaces by their name.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "47846c9b0c10808d9337d2e7d09361f3e0a0a71a",
      "tree": "8e5d0dbf3309b7868fa73a888f9561ffea1580e3",
      "parents": [
        "abe60632f311d515b082b450504ee24006023951"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Nov 25 17:46:19 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 21 18:38:52 2009 -0500"
      },
      "message": "mac80211: reduce reliance on netdev\n\nFor bluetooth 3, we will most likely not have\na netdev for a virtual interface (sdata), so\nprepare for that by reducing the reliance on\nhaving a netdev. This patch moves the name\nand address fields into the sdata struct and\nuses them from there all over. Some work is\nneeded to keep them sync\u0027ed, but that\u0027s not\na lot of work and in slow paths anyway.\n\nIn doing so, this also reduces the number of\npointer dereferences in many places, because\nof things like sdata-\u003edev-\u003edev_addr becoming\nsdata-\u003evif.addr.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "84f6a01ce05fa671f7745b6e041e698a2d1f1341",
      "tree": "9d27eb23cf2c310b572193cbef290b6b84eb0259",
      "parents": [
        "5eb6ba83aa326e2f2cf9109d20df5d6a497b36bb"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Aug 20 20:02:20 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 28 14:40:25 2009 -0400"
      },
      "message": "mac80211: fix configure_filter invocation after stop\n\nSince configure_filter can sleep now, any multicast\nconfiguration needed to be postponed to a work struct.\nThis, however, lead to a problem that we could queue\nthe work, stop the device and then afterwards invoke\nconfigure_filter which may lead to driver hangs and is\na bug. To fix this, we can just cancel the filter work\nsince it\u0027s unnecessary to do after stopping the hw.\n\nSince there are various places that call drv_stop, and\ntwo of them do very similar things, the code for them\ncan be put into a shared function at the same time.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nReported-by: Lennert Buytenhek \u003cbuytenh@wantstofly.org\u003e\nTested-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "42935ecaf4e784d0815afa9a7e5fe7e141157ca3",
      "tree": "dc0a0dcfff761e98d8a2a23a7edc8f9182c2774c",
      "parents": [
        "64344d78228f6346a0462ba2d5fc03494aef4e6b"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Wed Jul 29 20:08:07 2009 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Aug 04 16:44:14 2009 -0400"
      },
      "message": "mac80211: redefine usage of the mac80211 workqueue\n\nThe mac80211 workqueue exists to enable mac80211 and drivers\nto queue their own work on a single threaded workqueue. mac80211\ntakes care to flush the workqueue during suspend but we never\nreally had requirements on drivers for how they should use\nthe workqueue in consideration for suspend.\n\nWe extend mac80211 to document how the mac80211 workqueue should\nbe used, how it should not be used and finally move raw access to\nthe workqueue to mac80211 only. Drivers and mac80211 use helpers\nto queue work onto the mac80211 workqueue:\n\n  * ieee80211_queue_work()\n  * ieee80211_queue_delayed_work()\n\nThese helpers will now warn if mac80211 already completed its\nsuspend cycle and someone is trying to queue work. mac80211\nflushes the mac80211 workqueue prior to suspend a few times,\nbut we haven\u0027t taken the care to ensure drivers won\u0027t add more\nwork after suspend. To help with this we add a warning when\nsomeone tries to add work and mac80211 already completed the\nsuspend cycle.\n\nDrivers should ensure they cancel any work or delayed work\nin the mac80211 stop() callback.\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "97af743207466ff8b477e14bfb7af0ba2c93375b",
      "tree": "9fc275981b34346284c1aedd370c54854f5369ae",
      "parents": [
        "ad2f34b41fd6e2b84c896ccf321d5de0a7c7cd52"
      ],
      "author": {
        "name": "Bob Copeland",
        "email": "me@bobcopeland.com",
        "time": "Wed Jul 29 10:13:03 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Aug 04 16:43:23 2009 -0400"
      },
      "message": "mac80211: disable beacons before removing the associated interface\n\nWhen downing interfaces, it\u0027s a good idea to tell the driver to\nstop sending beacons; that way the driver doesn\u0027t need special\ncode in ops-\u003eremove_interface() when it should already handle the\ncase in bss_info_changed().\n\nThis fixes a potential crash with at least ath5k since the vif\npointer will be nullified while beacon interrupts are still active.\n\nSigned-off-by: Bob Copeland \u003cme@bobcopeland.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "89c3a8aca28e6d57f2ae945d97858a372d624b81",
      "tree": "e6ab04353cfc202bc7ecbd58d57c2d1790381a7c",
      "parents": [
        "57921c312e8cef72ba35a4cfe870b376da0b1b87"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jul 28 18:10:17 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jul 29 14:52:01 2009 -0400"
      },
      "message": "mac80211: fix suspend\n\nJan reported that his b43-based laptop hangs during suspend.\nThe problem turned out to be mac80211 asking the driver to\nstop the hardware before removing interfaces, and interface\nremoval caused b43 to touch the hardware (while down, which\ncauses the hang).\n\nThis patch fixes mac80211 to do reorder these operations to\nhave them in the correct order -- first remove interfaces\nand then stop the hardware. Some more code is necessary to\nbe able to do so in a race-free manner, in particular it is\nnecessary to not process frames received during quiescing.\n\nFixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d13337.\n\nReported-by: Jan Scholz \u003cscholz@fias.uni-frankfurt.de\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5bb644a0fd25a5e083ecbfaa92a211db99aa6ef7",
      "tree": "d2a6d5ff2323db0c475be15c63bb8fc55482a1e2",
      "parents": [
        "cc32abd494c0a8f76f2638e3f3a76e01c68bc9ea"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun May 17 11:40:42 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed May 20 14:46:25 2009 -0400"
      },
      "message": "mac80211: cancel/restart all timers across suspend/resume\n\nWe forgot to cancel all timers in mac80211 when suspending.\nIn particular we forgot to deal with some things that can\ncause hardware reconfiguration -- while it is down.\n\nWhile at it we go ahead and add a warning in ieee80211_sta_work()\nif its run while the suspend-\u003eresume cycle is in effect. This\nshould not happen and if it does it would indicate there is\na bug lurking in either mac80211 or mac80211 drivers.\n\nWith this now wpa_supplicant doesn\u0027t blink when I go to suspend\nand resume where as before there where issues with some timers\nrunning during the suspend-\u003eresume cycle. This caused a lot of\nincorrect assumptions and would at times bring back the device\nin an incoherent, but mostly recoverable, state.\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2448798133d747ad339e57099e32a1d1e68aca1c",
      "tree": "ee09385f5dca9e243c38f5f888baa02605423bd7",
      "parents": [
        "2d0ddec5b2b859f06116f631fc0ffe94fbceb556"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Apr 23 18:52:52 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed May 06 15:14:37 2009 -0400"
      },
      "message": "mac80211: add driver ops wrappers\n\nIn order to later add tracing or verifications to the driver\ncalls mac80211 makes, this patch adds static inline wrappers\nfor all operations.\n\nAll calls are now written as\n\n\tdrv_\u003cop\u003e(local, ...);\n\ninstead of\n\n\tlocal-\u003eops-\u003e\u003cop\u003e(\u0026local-\u003ehw, ...);\n\nWhere necessary, the wrappers also do existence checking and\nreturn default values as appropriate.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f2753ddbadb0873a98421415882318251bbd9eaa",
      "tree": "daad40232be13d91835b30234e5743dfdd582f19",
      "parents": [
        "a1c555802a62c845520d2486d783c9bb1d5e68a9"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Apr 14 10:09:24 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 22 16:57:14 2009 -0400"
      },
      "message": "mac80211: add hardware restart function\n\nSome hardware defects may require the hardware to be re-initialised\ncompletely from scratch. Drivers would need much information (for\ninstance the current MAC address, crypto keys, beaconing information,\netc.) stored duplicated from mac80211 to be able to do this, so let\nmac80211 help them.\n\nThe new ieee80211_restart_hw() function requires the same code as\nresuming, so move that code into a new ieee80211_reconfig() function\nin util.c and leave only the suspend code in pm.c.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4499b23933b44bf9e56d1a29b51d9a62941f9fa4",
      "tree": "464d5b3b334341c60644a759a352065a3baf6aaa",
      "parents": [
        "e45d8e534b67580eedd9b4910ccc16d6dd3cceff"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Apr 08 02:55:34 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 22 16:54:41 2009 -0400"
      },
      "message": "mac80211: re-upload keys only after telling driver about association\n\nIn the normal WPA or RSN case keys are only configured after\nassociating, so we should do that in that order when resuming\nas well. It shouldn\u0027t really matter since we do not send any\ndata at either point, but iwlwifi prefers it this way and it\ndoes seem more natural.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "827b1fb44b7e41377a5498b9d070a11dfae2c283",
      "tree": "5a54acadb35e35d64e4db0cfde5a7105c85916e2",
      "parents": [
        "3e3ccb3d9b8d5a1b65b34e1be2decf213ba3bebb"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Mar 13 11:44:18 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Mar 27 20:13:03 2009 -0400"
      },
      "message": "mac80211: resume properly, add suspend/resume test\n\nWhen mac80211 resumes, it currently doesn\u0027t reconfigure the interfaces\nentirely and also doesn\u0027t reconfigure BSS information -- fix this.\n\nAlso, to be able to test this, add a debugfs file that just calls\nthe suspend/resume code to see what happens when we go through that,\nwithout needing the time-consuming suspend/resume cycle.\n\n(Original version broke the build for CONFIG_PM\u003dn.  Define alternative\nfunctions for that situation. -- JWL)\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "722f069a6dc95d7c6c2cdfbe3413899a3b768f9c",
      "tree": "3f9ccbd9e2fdf75bd27675c48b238adc911ae626",
      "parents": [
        "e23a9014fd4d502a419255a83e2479ab804c6f16"
      ],
      "author": {
        "name": "Sujith",
        "email": "Sujith.Manoharan@atheros.com",
        "time": "Tue Mar 17 08:50:06 2009 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Mar 27 20:12:55 2009 -0400"
      },
      "message": "mac80211: Tear down aggregation sessions for suspend/resume\n\nWhen the driver has been notified with a STA_REMOVE, it tears down\nthe internal ADDBA state. On resume, trying to initiate aggregation would\nfail because mac80211 has not cleared the operational state for that \u003cTID,STA\u003e.\nThis can be fixed by tearing down the existing sessions on a suspend.\n\nAlso, the driver can initiate a new BA session when suspend is in progress.\nThis is fixed by marking the station as being in suspend state and\ndenying ADDBA requests for such STAs.\n\nSigned-off-by: Sujith \u003cSujith.Manoharan@atheros.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7f0216a49bea717b9606b81c60f2f0b6152123eb",
      "tree": "8e28ac84644a13fbb68e79d4c307cc7ea40a167a",
      "parents": [
        "8fdc621dc743b87879ccf0177969864b09388d9a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sat Mar 14 09:42:49 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Mar 27 20:12:53 2009 -0400"
      },
      "message": "mac80211: acquire sta_lock for station suspend/resume\n\nTo avoid concurrent manipulations of the sta list (which shouldn\u0027t\nbe possible at this point, but anyway) we need to hold the sta_lock\naround iterating the list.\n\nAt the same time, we do not need to iterate the list at all if\nthe driver doesn\u0027t want to be notified.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Bob Copeland \u003cme@bobcopeland.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "25420604c8967ff24f087dd7b9cd4b278567d39a",
      "tree": "b5a1c0edcca74cf64abce8bd6699774c0c387838",
      "parents": [
        "b5bde374f0f61f5d97114d400ade8fc96bf6f10d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Mar 13 11:43:36 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Mar 27 20:12:52 2009 -0400"
      },
      "message": "mac80211: stop queues across suspend/resume\n\nEven though userland probably cannot submit packets, there might\nstill be some coming, and that\u0027s no good when the driver doesn\u0027t\nexpect them. Stop the queues across suspend/resume.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e874e6585539f6706b8e5f96125c9fca89cce716",
      "tree": "e934e488406b2de0c82e138601ff38243f13ca1f",
      "parents": [
        "30d3ef41b4395d9bee5f481395eef2d3b8b6ee50"
      ],
      "author": {
        "name": "Bob Copeland",
        "email": "me@bobcopeland.com",
        "time": "Sat Jan 24 13:21:14 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jan 29 16:01:42 2009 -0500"
      },
      "message": "mac80211: flush workqueue a second time in suspend()\n\nDrivers can theoretically queue more work in one of their callbacks\nfrom mac80211 suspend, so let\u0027s flush it once more to be on the safe\nside, just before calling -\u003estop().\n\nSigned-off-by: Bob Copeland \u003cme@bobcopeland.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "665af4fc8979734d8f73c9a6732be07e545ce4cc",
      "tree": "e6efab304166f0f4f30b75906930def19b1a3fb8",
      "parents": [
        "0378b3f1c49d48ed524eabda7e4340163d9483c9"
      ],
      "author": {
        "name": "Bob Copeland",
        "email": "me@bobcopeland.com",
        "time": "Mon Jan 19 11:20:53 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jan 29 16:00:52 2009 -0500"
      },
      "message": "mac80211: add suspend/resume callbacks\n\nThis patch introduces suspend and resume callbacks to mac80211,\nallowing mac80211 to quiesce its state (bringing down interfaces,\nremoving keys, etc) in preparation for suspend.  cfg80211 will call\nthe suspend hook before the device suspend, and resume hook after\nthe device resume.\n\nSigned-off-by: Bob Copeland \u003cme@bobcopeland.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    }
  ]
}
