)]}'
{
  "log": [
    {
      "commit": "44271488b91c9eecf249e075a1805dd887e222d2",
      "tree": "7c0bb66a9ac50d2f583f4020847d6f7c69563b44",
      "parents": [
        "918df629d6a558ab9eb53350493f618812239a4c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Oct 05 21:40:33 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 06 15:58:29 2010 -0400"
      },
      "message": "mac80211: delete AddBA response timer\n\nWe never delete the addBA response timer, which\nis typically fine, but if the station it belongs\nto is deleted very quickly after starting the BA\nsession, before the peer had a chance to reply,\nthe timer may fire after the station struct has\nbeen freed already. Therefore, we need to delete\nthe timer in a suitable spot -- best when the\nsession is being stopped (which will happen even\nthen) in which case the delete will be a no-op\nmost of the time.\n\nI\u0027ve reproduced the scenario and tested the fix.\n\nThis fixes the crash reported at\nhttp://mid.gmane.org/4CAB6F96.6090701@candelatech.com\n\nCc: stable@kernel.org\nReported-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "73a72a81d27b71f9ace31668d2dd7f3ac1c8228e",
      "tree": "114b1a333c53a328d1a55551ea591fe8f3b5d2d7",
      "parents": [
        "85ad181ea78861f69b007599cec9e6ba33fcdf8a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:50 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:28 2010 -0400"
      },
      "message": "mac80211: update aggregation documentation\n\nEven before the recent changes, the documentation\nfor TX aggregation was somewhat out of date. Update\nit and also add documentation for the RX side.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "cfcdbde35e2b621cf56bedc38a3a81e8c28addb9",
      "tree": "cd0664681dc4629f7ce9a3319868eebb005060ff",
      "parents": [
        "83a5cbf73a13d0c8be019b22afec4407e4285aed"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:48 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:28 2010 -0400"
      },
      "message": "mac80211: change TX aggregation locking\n\nTo prepare for allowing drivers to sleep in\nampdu_action, change the locking in the TX\naggregation code to use the mutex the RX part\nalready uses. The spinlock is still necessary\naround some code to avoid races with TX, but\nnow we can also synchronize_net() to avoid\ngetting an inconsistent sequence number.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "83a5cbf73a13d0c8be019b22afec4407e4285aed",
      "tree": "3ac77e38aa5dd7891b101f45e963df7b9a5b9d38",
      "parents": [
        "a93e364430de7f7a5f4eedd604ad1ab3d825dde5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:47 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:28 2010 -0400"
      },
      "message": "mac80211: defer TX agg session teardown to work\n\nSince we want the code to be able to sleep\nin the future, it must not be called from\nthe timer directly. To achieve that, simply\ncall the function drivers would call, and\nalso use RCU in the timer to get the struct\nso we don\u0027t need to rely on the spinlock in\nthe future.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "67c282c00c9c06733aae229662d209957f6d23a7",
      "tree": "698270941e46c873e2c34fda0428ea457cd1926b",
      "parents": [
        "0ab337032a0dfcd5f2527d3306d3deeba5f95b59"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:43 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:27 2010 -0400"
      },
      "message": "mac80211: move BA session work\n\nMove the block-ack session works into common\ncode, since it will be needed for RX agg too\nin the next patches.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0ab337032a0dfcd5f2527d3306d3deeba5f95b59",
      "tree": "88795edc149fd88574fece0c8f23774ee8a9155c",
      "parents": [
        "a6a67db2bc89d2b1ff07e0817f11235c20d2c329"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:42 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:27 2010 -0400"
      },
      "message": "mac80211: make TX aggregation start/stop request async\n\nWhen the driver or rate control requests starting\nor stopping an aggregation session, that currently\ncauses a direct callback into the driver, which\ncould potentially cause locking problems. Also,\nthe functions need to be callable from contexts\nthat cannot sleep, and thus will interfere with\nmaking the ampdu_action callback sleeping.\n\nTo address these issues, add a new work item for\neach station that will process any start or stop\nrequests out of line.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a6a67db2bc89d2b1ff07e0817f11235c20d2c329",
      "tree": "1096c42ede83af4dbae34387246f91c0d6649baf",
      "parents": [
        "5d22c89b9bea17a0e48e7534a9b237885e2c0809"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:41 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:27 2010 -0400"
      },
      "message": "mac80211: refcount aggregation queue stop\n\nmac80211 currently maintains the ampdu_lock to\navoid starting a queue due to one aggregation\nsession while another aggregation session needs\nthe queue stopped.\n\nWe can do better, however, and instead refcount\nthe queue stops for this particular purpose,\nthus removing the need for the lock. This will\nhelp making ampdu_action able to sleep.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5d22c89b9bea17a0e48e7534a9b237885e2c0809",
      "tree": "ed4f1de2efaa41368a2774adc0e07d903f65ed98",
      "parents": [
        "a622ab72b4dcfdf53e24b16e9530cb876979a00c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:40 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:27 2010 -0400"
      },
      "message": "mac80211: remove non-irqsafe aggregation callbacks\n\nThe non-irqsafe aggregation start/stop done\ncallbacks are currently only used by ath9k_htc,\nand can cause callbacks into the driver again.\nThis might lead to locking issues, which will\nonly get worse as we modify locking. To avoid\ntrouble, remove the non-irqsafe versions and\nchange ath9k_htc to use those instead.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a622ab72b4dcfdf53e24b16e9530cb876979a00c",
      "tree": "170d2ccf3a594f3675b5fa58378319031054e806",
      "parents": [
        "a87f736d942c86255e3088c606f0e3eab6bbf784"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:39 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:27 2010 -0400"
      },
      "message": "mac80211: use RCU for TX aggregation\n\nCurrently we allocate some memory for each TX\naggregation session and additionally keep a\nstate bitmap indicating the state it is in.\nBy using RCU to protect the pointer, moving\nthe state into the structure and some locking\ntrickery we can avoid locking when the TX agg\nsession is fully operational.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c1475ca99edcc7216ddc45838ab2c3281c14ba22",
      "tree": "3f1a5fd9c2fce428382cf49e3140c281a49e006b",
      "parents": [
        "344eec67c7b8557234e149d254bca2ae9614d61e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jun 10 10:21:37 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 14 15:39:27 2010 -0400"
      },
      "message": "mac80211: move aggregation callback processing\n\nThis moves the aggregation callback processing\nto the per-sdata skb queue and a work function\nrather than the tasklet.\n\nUnfortunately, this means that it extends the\npkt_type hack to that skb queue. However, it\nwill enable making ampdu_action API changes\ngradually, my current plan is to get rid of\nthis again by forcing drivers to only return\nfrom ampdu_action() when everything is done,\nthus removing the callbacks completely.\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": "9d88477c41904127ab9ae1f3b5b4a39bf6474043",
      "tree": "f50d5185ac89a9fd76d7cb087b952d5c55d5063b",
      "parents": [
        "11b7c60988e5fbabb4e150612931cc068559af16",
        "35dd0509b21e4b5bab36b9eb80c8dab0322f5007"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 07 15:13:46 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 07 15:13:46 2010 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\nConflicts:\n\tdrivers/net/wireless/iwlwifi/iwl-core.h\n"
    },
    {
      "commit": "6a8579d0e62c0eac428184ce45e86bc46677724a",
      "tree": "192d3adc84985598ad6006df43d246adce002f7e",
      "parents": [
        "2b2c009ecf71f4c66ff8420b63dddbc9737e04e3"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu May 27 14:41:07 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 03 14:10:45 2010 -0400"
      },
      "message": "mac80211: clean up ieee80211_stop_tx_ba_session\n\nThere\u0027s no sense in letting anything but internal\nmac80211 functions set the initiator to anything\nbut WLAN_BACK_INITIATOR, since WLAN_BACK_RECIPIENT\nis only valid when we have received a frame from\nthe peer, which we react to directly in mac80211.\n\nThe debugfs code I recently added got this wrong\nas well.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "51a0d38de26226f2779912d92f155b93d539da9a",
      "tree": "9f74cc26000dcebf79c93081c9afa62b787895ff",
      "parents": [
        "8ae5977ff95c03fe6c36a5721c57dcb4bfe4f290"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon May 31 12:00:12 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jun 01 14:33:02 2010 -0400"
      },
      "message": "mac80211: fix dialog token allocator\n\nThe dialog token allocator has apparently been broken\nsince b83f4e15 (\"mac80211: fix deadlock in sta-\u003elock\")\nbecause it got moved out under the spinlock. Fix it.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3b51cc996e81d8a113416d8094fa4a88f8360a51",
      "tree": "e75b98b228bb4e456c30673fcc4b56ffa1d09cf5",
      "parents": [
        "c68ed255265968c3948fa2678bf59d15c471b055",
        "672724403b42da1d276c6cf811e8e34d15efd964"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Apr 23 14:43:45 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Apr 23 14:43:45 2010 -0400"
      },
      "message": "Merge branch \u0027master\u0027 into for-davem\n\nConflicts:\n\tdrivers/net/wireless/ath/ath9k/phy.c\n\tdrivers/net/wireless/iwlwifi/iwl-6000.c\n\tdrivers/net/wireless/iwlwifi/iwl-debugfs.c\n"
    },
    {
      "commit": "87eb367003887cdc81a5d183efea227b5b488961",
      "tree": "40f617e25a9364d573e3cd2189c9e7fa56c8a0fe",
      "parents": [
        "ccb7c7732e2ceb4e81a7806faf1670be9681ccd2",
        "05d17608a69b3ae653ea5c9857283bef3439c733"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 21 01:14:25 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 21 01:14:25 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/iwlwifi/iwl-6000.c\n\tnet/core/dev.c\n"
    },
    {
      "commit": "e46754f8c9333170f11780d8e3a70da1b1a88338",
      "tree": "9b7ac1c7cb4c147c69767908c6dcb7633fb03f12",
      "parents": [
        "ef9e83c1ab2981769f16e626179dd56895041b38",
        "fe6f212ce12341df18ef9b890bea739b4547157b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 17:57:56 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 17:57:56 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "67e0f392779e35a96c43bc240ef5d30a701d153e",
      "tree": "637fd3aed6aa2769fb434f4732da5e70d4e1a4df",
      "parents": [
        "088899c43ce8bc54c6de519e4b1a1fc41b95867e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Apr 19 11:03:13 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Apr 19 16:45:20 2010 -0400"
      },
      "message": "mac80211: add missing newline\n\nOne HT debugging printk is missing a newline,\nadd it.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b4bb5c3fd9333024044362df67e23e96158489ed",
      "tree": "180405311d50e63ac6f6dd67eefefeb2c2c110bc",
      "parents": [
        "f2fa1b015e9c199e45c836c769d94db595150731"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Apr 19 10:48:38 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Apr 19 16:34:11 2010 -0400"
      },
      "message": "mac80211: remove bogus TX agg state assignment\n\nWhen the addba timer expires but has no work to do,\nit should not affect the state machine. If it does,\nTX will not see the successfully established and we\ncan also crash trying to re-establish the session.\n\nCc: stable@kernel.org [2.6.32, 2.6.33]\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5c01d5669356e13f0fb468944c1dd4c6a7e978ad",
      "tree": "fa43345288d7b25fac92b3b35360a177c4947313",
      "parents": [
        "fea069152614cdeefba4b2bf80afcddb9c217fc8",
        "a5e944f1d955f3819503348426763e21e0413ba6"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Apr 15 16:21:34 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Apr 15 16:21:34 2010 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/wireless/ath/ath5k/phy.c\n\tdrivers/net/wireless/wl12xx/wl1271_main.c\n"
    },
    {
      "commit": "b5878a2dc5e7e7f031a52c3e15b571224cb6b540",
      "tree": "4d035602f4a4d6e021eaf261f3665d4a5439cfd8",
      "parents": [
        "403820edc4ba1f2fb2514c022f2662c498ce0d11"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Apr 07 16:48:40 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Apr 08 15:24:13 2010 -0400"
      },
      "message": "mac80211: enhance tracing\n\nEnhance tracing by adding tracing for a variety of\ncallbacks that the drivers call, and also for\ninternal calls (currently limited to queue status).\nThis can aid debugging what is going on in mac80211\nin interaction with drivers, since we can now see\nwhat drivers call and not just what mac80211 calls\nin the driver.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\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": "55f98938b5cea8949077c79813c4f86ef0018858",
      "tree": "41cd00bc85a26387eadd831b9770ac59d10286a4",
      "parents": [
        "d28667f871991e0eea983b398421b8db2c8bdf8c"
      ],
      "author": {
        "name": "Frans Pop",
        "email": "elendil@planet.nl",
        "time": "Wed Mar 24 19:46:29 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Mar 31 14:38:51 2010 -0400"
      },
      "message": "wireless: remove trailing space in messages\n\nAlso correct indentation in net/wireless/reg.c.\n\nSigned-off-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "4cad6c7c38930618d77e65af82c1403d63879eee",
      "tree": "9e8c14e0819c42c8ac290f6a0bba5ca45a3ecef2",
      "parents": [
        "f32338319f10c4ca5499c19edc5b3618896920ba"
      ],
      "author": {
        "name": "Sujith",
        "email": "Sujith.Manoharan@atheros.com",
        "time": "Wed Feb 10 14:52:21 2010 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Feb 10 16:36:52 2010 -0500"
      },
      "message": "mac80211: Deny TX BA session requests during disassociation\n\nIn associated state, when bringing an interface down, existing\nBA sessions are torn down. When this is in progress, nothing\nprevents mac80211 from accepting another BA session start request.\n\nUse a new station flag to fix this.\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": "3dc1de0bf23816ed557ac8addf680cd5ee57e805",
      "tree": "11b9100e398ed8daecf67bcde6f8d43c36d0be9a",
      "parents": [
        "6e08d228b6d8e93d7b25b3573c6da7da179c2ae1"
      ],
      "author": {
        "name": "Zhu Yi",
        "email": "yi.zhu@intel.com",
        "time": "Mon Dec 28 16:57:15 2009 +0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 13:50:08 2010 -0500"
      },
      "message": "mac80211: quit addba_resp_timer if Tx BA session is torn down\n\nMake addba_resp_timer aware the HT_AGG_STATE_REQ_STOP_BA_MSK mask\nso that when ___ieee80211_stop_tx_ba_session() is issued the timer\nwill quit. Otherwise when suspend happens before the timer expired,\nthe timer handler will be called immediately after resume and\nmesses up driver status.\n\nSigned-off-by: Zhu Yi \u003cyi.zhu@intel.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f3f66b69c8ff08b46975d9e99c7ecb92a8b12eda",
      "tree": "63b0a068a8d3e9df5f2e76fd85a03d3b8e19176d",
      "parents": [
        "341c97918ab7e84a155ea8b18759425304d213b6"
      ],
      "author": {
        "name": "Christian Lamparter",
        "email": "chunkeey@googlemail.com",
        "time": "Mon Jan 04 00:52:56 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 05 17:13:36 2010 -0500"
      },
      "message": "mac80211: fix ampdu_action tx_start ssn\n\nThe start_seq_num is taken from the station\u0027s tid_seq[tid].\nThis is fine, except tid_seq sequence counter is shifted\nby 4 bits to accommodate for frame fragmentation.\n\nBoth (iwlagn \u0026 ath9k) were unaffected by this minor glitch,\nbecause they don\u0027t read the *ssn for the AMPDU_TX_START action.\n\nSigned-off-by: Christian Lamparter \u003cchunkeey@googlemail.com\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": "abe60632f311d515b082b450504ee24006023951",
      "tree": "a51fc3b135fa8a31cc0d7953be43502ecc6433c6",
      "parents": [
        "15920d8afc87861672e16fa95ae2764b065d6dd3"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Nov 25 17:46:18 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 21 18:38:51 2009 -0500"
      },
      "message": "mac80211: make station management completely depend on vif\n\nThe station management currently uses the virtual\ninterface, but you cannot add the same station to\nmultiple virtual interfaces if you\u0027re communicating\nwith it in multiple ways.\n\nThis restriction should be lifted so that in the\nfuture we can, for instance, support bluetooth 3\nwith an access point that mac80211 is already\nassociated to.\n\nWe can do that by requiring all sta_info_get users\nto provide the virtual interface and making the RX\ncode aware that an address may match more than one\nstation struct. Thanks to the previous patches this\none isn\u0027t all that large and except for the RX and\nTX status paths changes has low complexity.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ff9c38bba37937adb909cceb2a6521f2e92e17c6",
      "tree": "93bd6152d9fa28348be99ef1c788040cc7b7a94d",
      "parents": [
        "65c0cfafce9575319fb6f70080fbe226e5617e3b",
        "b2722b1c3a893ec6021508da15b32282ec79f4da"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/ht.c\n"
    },
    {
      "commit": "827d42c9ac91ddd728e4f4a31fefb906ef2ceff7",
      "tree": "e29371d79d63d0a3ec2cb6d010b71147853fc771",
      "parents": [
        "4253119acf412fd686ef4bd8749b5a4d70ea3a51"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Nov 22 12:28:41 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 30 13:55:51 2009 -0500"
      },
      "message": "mac80211: fix spurious delBA handling\n\nLennert Buytenhek noticed that delBA handling in mac80211\nwas broken and has remotely triggerable problems, some of\nwhich are due to some code shuffling I did that ended up\nchanging the order in which things were done -- this was\n\n  commit d75636ef9c1af224f1097941879d5a8db7cd04e5\n  Author: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\n  Date:   Tue Feb 10 21:25:53 2009 +0100\n\n    mac80211: RX aggregation: clean up stop session\n\nand other parts were already present in the original\n\n  commit d92684e66091c0f0101819619b315b4bb8b5bcc5\n  Author: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\n  Date:   Mon Jan 28 14:07:22 2008 +0200\n\n      mac80211: A-MPDU Tx add delBA from recipient support\n\nThe first problem is that I moved a BUG_ON before various\nchecks -- thereby making it possible to hit. As the comment\nindicates, the BUG_ON can be removed since the ampdu_action\ncallback must already exist when the state is !\u003d IDLE.\n\nThe second problem isn\u0027t easily exploitable but there\u0027s a\nrace condition due to unconditionally setting the state to\nOPERATIONAL when a delBA frame is received, even when no\naggregation session was ever initiated. All the drivers\naccept stopping the session even then, but that opens a\nrace window where crashes could happen before the driver\naccepts it. Right now, a WARN_ON may happen with non-HT\ndrivers, while the race opens only for HT drivers.\n\nFor this case, there are two things necessary to fix it:\n 1) don\u0027t process spurious delBA frames, and be more careful\n    about the session state; don\u0027t drop the lock\n\n 2) HT drivers need to be prepared to handle a session stop\n    even before the session was really started -- this is\n    true for all drivers (that support aggregation) but\n    iwlwifi which can be fixed easily. The other HT drivers\n    (ath9k and ar9170) are behaving properly already.\n\nReported-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4253119acf412fd686ef4bd8749b5a4d70ea3a51",
      "tree": "44dc3e4ea5a6c2eb21a0e0c04de1c04e1662549d",
      "parents": [
        "3e9848403ad59c53b31facb30b43ca80135ae0b9"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Nov 20 09:15:51 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 30 13:52:21 2009 -0500"
      },
      "message": "mac80211: fix two remote exploits\n\nLennert Buytenhek noticed a remotely triggerable problem\nin mac80211, which is due to some code shuffling I did\nthat ended up changing the order in which things were\ndone -- this was in\n\n  commit d75636ef9c1af224f1097941879d5a8db7cd04e5\n  Author: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\n  Date:   Tue Feb 10 21:25:53 2009 +0100\n\n    mac80211: RX aggregation: clean up stop session\n\nThe problem is that the BUG_ON moved before the various\nchecks, and as such can be triggered.\n\nAs the comment indicates, the BUG_ON can be removed since\nthe ampdu_action callback must already exist when the\nstate is OPERATIONAL.\n\nA similar code path leads to a WARN_ON in\nieee80211_stop_tx_ba_session, which can also be removed.\n\nCc: stable@kernel.org [2.6.29+]\nCc: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9b963e5d0e01461099a40117b05480f24b63381f",
      "tree": "4756d554e37bf4ab7202f2c564cbe629af98b576",
      "parents": [
        "3b8626ba01a8a745a3fdf22dd347edd708b0af13",
        "5fdd4baef6195a1f2960e901c8877e2105f832ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:57:15 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:57:15 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/ieee802154/fakehard.c\n\tdrivers/net/e1000e/ich8lan.c\n\tdrivers/net/e1000e/phy.c\n\tdrivers/net/netxen/netxen_nic_init.c\n\tdrivers/net/wireless/ath/ath9k/main.c\n"
    },
    {
      "commit": "62ae67be31c2346b6d74653a148ddbd1b9a94424",
      "tree": "91f59c821a4e3f91a529887d97989b1969720f65",
      "parents": [
        "875405a7793e9c35fab33819e7e5df7a98b6064c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Nov 18 18:42:05 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:27 2009 -0500"
      },
      "message": "mac80211: remove encrypt parameter from ieee80211_tx_skb\n\nSince the flags moved into skb-\u003ecb, there\u0027s no\nlonger a need to have the encrypt bool passed\ninto the function, anyone who requires it set\nto 0 (false) can just set the flag directly.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0bc6b1871c111d8f2eb2ac022a705de4cf21f572",
      "tree": "92abeacaf7e71dd8c1e8bde713f663c88a700085",
      "parents": [
        "24b6b15f7d07d26330f73057d618089976a08792"
      ],
      "author": {
        "name": "Sujith",
        "email": "Sujith.Manoharan@atheros.com",
        "time": "Wed Nov 18 11:42:14 2009 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:25 2009 -0500"
      },
      "message": "mac80211: Fix panic in aggregation handling\n\nNot assigning the vif pointer causes an oops.\nThis patch fixes it.\n\nSigned-off-by: Sujith \u003cSujith.Manoharan@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c951ad3550ab40071bb0f222ba6125845769c08a",
      "tree": "9db1d3c110b359a34a3d706eaf40285cfa01550b",
      "parents": [
        "3b53fde8ac40c4321389def14d7f4a9e14092fd3"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Nov 16 12:00:38 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:15 2009 -0500"
      },
      "message": "mac80211: convert aggregation to operate on vifs/stas\n\nThe entire aggregation code currently operates on the\nhw pointer and station addresses, but that needs to\nchange to make stations purely per-vif; As one step\npreparing for that make the aggregation code callable\nwith the station, or by the combination of virtual\ninterface and station address.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8ade00824607fcfa8842572012d4393b40a74a94",
      "tree": "e88b9ce6d6743294e5287d6c3729bbb215cabb3e",
      "parents": [
        "70e3bb504ccfe6ba725ab120bdb516d205d834f9"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Nov 18 17:15:06 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:01:47 2009 -0500"
      },
      "message": "mac80211: fix addba timer (again...)\n\ncommit 2171abc58644e09dbba546d91366b12743115396\n  Author: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\n  Date:   Thu Oct 29 08:34:00 2009 +0100\n\n      mac80211: fix addba timer\n\nleft a problem in there, even if the timer was\nnever started it could be deleted and then added.\n\nLinus pointed out that del_timer_sync() isn\u0027t\nactually needed if we make the timer able to\ndeal with no longer being needed when it gets\nqueued _while_ we\u0027re in the locked section that\nalso deletes it. For that the timer function only\nneeds to check the HT_ADDBA_RECEIVED_MSK bit as\nwell as the HT_ADDBA_REQUESTED_MSK bit, only if\nthe former is clear should it do anything.\n\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2171abc58644e09dbba546d91366b12743115396",
      "tree": "b4b75fad9bb425034f71cf995586dd4898c93c2f",
      "parents": [
        "e55ea2b152569f09ef6bb28d5a341a4e5a21f5ce"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Oct 29 08:34:00 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 30 15:50:25 2009 -0400"
      },
      "message": "mac80211: fix addba timer\n\nThe addba timer function acquires the sta spinlock,\nbut at the same time we try to del_timer_sync() it\nunder the spinlock which can produce deadlocks.\n\nTo fix this, always del_timer_sync() the timer in\nieee80211_process_addba_resp() and add it again\nafter checking the conditions, if necessary.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "cf9911166113e471e1796eaf273982d8e43b138d",
      "tree": "141ca87902690967620d6297c88746e2adb6dae5",
      "parents": [
        "deeb16dc24b68cbdca72dc717ae82178a6644801",
        "88512935a24305fea7aecc9ba4d675869e97fc2a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 14 16:07:21 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 14 16:07:21 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "416fbdff2137e8d8cc8f23f517bee3a26b11526f",
      "tree": "83ad1a5397c100fc9d08fd239b5e1b105b96028b",
      "parents": [
        "839d1624b9dcf31fdc02e47359043bb7bd71d6ca"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Tue Aug 11 13:10:33 2009 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Aug 13 14:47:42 2009 -0400"
      },
      "message": "mac80211: fix panic when splicing unprepared TIDs\n\nWe splice skbs from the pending queue for a TID\nonto the local pending queue when tearing down a\nblock ack request. This is not necessary unless we\nactually have received a request to start a block ack\nrequest (rate control, for example). If we never received\nthat request we should not be splicing the tid pending\nqueue as it would be null, causing a panic.\n\nNot sure yet how exactly we allowed through a call when the\ntid state does not have at least HT_ADDBA_REQUESTED_MSK set,\nthat will require some further review as it is not quite\nobvious.\n\nFor more information see the bug report:\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13922\n\nThis fixes this oops:\n\nBUG: unable to handle kernel NULL pointer dereference at 00000030\nIP: [\u003cf8806c70\u003e] ieee80211_agg_splice_packets+0x40/0xc0 [mac80211]\n*pdpt \u003d 0000000002d1e001 *pde \u003d 0000000000000000\nThread overran stack, or stack corrupted\nOops: 0000 [#1] SMP\nlast sysfs file: /sys/module/aes_generic/initstate\nModules linked in: \u003cbleh\u003e\n\nPid: 0, comm: swapper Not tainted (2.6.31-rc5-wl #2) Dell DV051\nEIP: 0060:[\u003cf8806c70\u003e] EFLAGS: 00010292 CPU: 0\nEIP is at ieee80211_agg_splice_packets+0x40/0xc0 [mac80211]\nEAX: 00000030 EBX: 0000004c ECX: 00000003 EDX: 00000000\nESI: c1c98000 EDI: f745a1c0 EBP: c076be58 ESP: c076be38\n DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\nProcess swapper (pid: 0, ti\u003dc076a000 task\u003dc0709160 task.ti\u003dc076a000)\nStack: \u003cbleh2\u003e\nCall Trace:\n [\u003cf8806edb\u003e] ? ieee80211_stop_tx_ba_cb+0xab/0x150 [mac80211]\n [\u003cf8802f1e\u003e] ? ieee80211_tasklet_handler+0xce/0x110 [mac80211]\n [\u003cc04862ff\u003e] ? net_rx_action+0xef/0x1d0\n [\u003cc0149378\u003e] ? tasklet_action+0x58/0xc0\n [\u003cc014a0f2\u003e] ? __do_softirq+0xc2/0x190\n [\u003cc018eb48\u003e] ? handle_IRQ_event+0x58/0x140\n [\u003cc01205fe\u003e] ? ack_apic_level+0x7e/0x270\n [\u003cc014a1fd\u003e] ? do_softirq+0x3d/0x40\n [\u003cc014a345\u003e] ? irq_exit+0x65/0x90\n [\u003cc010a6af\u003e] ? do_IRQ+0x4f/0xc0\n [\u003cc014a35d\u003e] ? irq_exit+0x7d/0x90\n [\u003cc011d547\u003e] ? smp_apic_timer_interrupt+0x57/0x90\n [\u003cc01094a9\u003e] ? common_interrupt+0x29/0x30\n [\u003cc010fd9e\u003e] ? mwait_idle+0xbe/0x100\n [\u003cc0107e42\u003e] ? cpu_idle+0x52/0x90\n [\u003cc054b1a5\u003e] ? rest_init+0x55/0x60\n [\u003cc077492d\u003e] ? start_kernel+0x315/0x37d\n [\u003cc07743ce\u003e] ? unknown_bootoption+0x0/0x1f9\n [\u003cc0774099\u003e] ? i386_start_kernel+0x79/0x81\nCode: \u003cbleh3\u003e\nEIP: [\u003cf8806c70\u003e] ieee80211_agg_splice_packets+0x40/0xc0 [mac80211] SS:ESP 0068:c076be38\nCR2: 0000000000000030\n\nCc: stable@kernel.org\nTestedy-by: Jack Lau \u003cjackelectronics@hotmail.com\u003e\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3b8d81e020f77c9da8b85b0685c8cd2ca7c7b150",
      "tree": "a19fcddbf28fecdbd13ad009fe07b8afc5e95c90",
      "parents": [
        "c4029083e2acb82229c43b791c07afb089d972ff"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jun 17 17:43:56 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jul 24 15:05:30 2009 -0400"
      },
      "message": "mac80211: remove master netdev\n\nWith the internal \u0027pending\u0027 queue system in place, we can simply\nput packets there instead of pushing them off to the master dev,\ngetting rid of the master interface completely.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "736708bd04b7a8941fddda32211982cab5d14431",
      "tree": "c80f9c15307caf20ed7c11916138719fc2c206d6",
      "parents": [
        "558f6d3229ddb9f11ca4ffee0439046c283882ff"
      ],
      "author": {
        "name": "Vasanthakumar Thiagarajan",
        "email": "vasanth@atheros.com",
        "time": "Tue Jun 09 14:11:46 2009 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 10 13:28:38 2009 -0400"
      },
      "message": "mac80211: Fix the way ADDBA request count being modified\n\naddba_req_num[tid] is supposed to have the count of consecutive\naddba request attempts on \u0027tid\u0027 which failed. This count is checked\nagainst a retry threshold (3 times) before starting the addba negotiation.\nThis patch fixes the way this addba count is incremented/reset and thereby\navoids indefinite addba attempts.\n\nSigned-off-by: Vasanthakumar Thiagarajan \u003cvasanth@atheros.com\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": "e4e72fb4de93e3d4047a4ee3f08778422e17ed0d",
      "tree": "dd133a749e6fa6960c9aa708041d996110f6440e",
      "parents": [
        "cd8ffc800ce18e558335c4946b2217864fc16045"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Mar 23 17:28:42 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Mar 27 20:13:23 2009 -0400"
      },
      "message": "mac80211/iwlwifi: move virtual A-MDPU queue bookkeeping to iwlwifi\n\nThis patch removes all the virtual A-MPDU-queue bookkeeping from\nmac80211. Curiously, iwlwifi already does its own bookkeeping, so\nit doesn\u0027t require much changes except where it needs to handle\nstarting and stopping the queues in mac80211.\n\nTo handle the queue stop/wake properly, we rewrite the software\nqueue number for aggregation frames and internally to iwlwifi keep\ntrack of the queues that map into the same AC queue, and only talk\nto mac80211 about the AC queue. The implementation requires calling\ntwo new functions, iwl_stop_queue and iwl_wake_queue instead of the\nmac80211 counterparts.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Reinette Chattre \u003creinette.chatre@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "cd8ffc800ce18e558335c4946b2217864fc16045",
      "tree": "e9bb8c3d6011e89374f9df353ff1f15d45a63590",
      "parents": [
        "a220858d30604902f650074bfac5a7598bc97ea4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Mar 23 17:28:41 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Mar 27 20:13:22 2009 -0400"
      },
      "message": "mac80211: fix aggregation to not require queue stop\n\nInstead of stopping the entire AC queue when enabling aggregation\n(which was only done for hardware with aggregation queues) buffer\nthe packets for each station, and release them to the pending skb\nqueue once aggregation is turned on successfully.\n\nWe get a little more code, but it becomes conceptually simpler and\nwe can remove the entire virtual queue mechanism from mac80211 in\na follow-up patch.\n\nThis changes how mac80211 behaves towards drivers that support\naggregation but have no hardware queues -- those drivers will now\nnot be handed packets while the aggregation session is being\nestablished, but only after it has been fully established.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b1720231ca07dee3382980f3b25e6581bd2e54e9",
      "tree": "4258dec3d4774ee5968f181533c77766c8584b79",
      "parents": [
        "1870cd71e87da1a1afb904f2c84086f487a07135"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Mar 23 17:28:39 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Mar 27 20:13:22 2009 -0400"
      },
      "message": "mac80211: unify and fix TX aggregation start\n\nWhen TX aggregation becomes operational, we do a number of steps:\n 1) print a debug message\n 2) wake the virtual queue\n 3) notify the driver\n\nUnfortunately, 1) and 3) are only done if the driver is first to\nreply to the aggregation request, it is, however, possible that the\nremote station replies before the driver! Thus, unify the code for\nthis and call the new function ieee80211_agg_tx_operational in both\nplaces where TX aggregation can become operational.\n\nAdditionally, rename the driver notification from\nIEEE80211_AMPDU_TX_RESUME to IEEE80211_AMPDU_TX_OPERATIONAL.\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": "469002983fc90c2ff0959e2b03335c0fe2e4d5a9",
      "tree": "fdcf78dcdaeadba897abd86d39d0275e236803b3",
      "parents": [
        "96f5e66e8a79810e2982cdcfa28e554f3d97da21"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Feb 15 12:44:28 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 27 14:51:42 2009 -0500"
      },
      "message": "mac80211: split IBSS/managed code\n\nThis patch splits out the ibss code and data from managed (station) mode.\nThe reason to do this is to better separate the state machines, and have\nthe code be contained better so it gets easier to determine what exactly\na given change will affect, that in turn makes it easier to understand.\n\nThis is quite some churn, especially because I split sdata-\u003eu.sta into\nsdata-\u003eu.mgd and sdata-\u003eu.ibss, but I think it\u0027s easier to maintain that\nway. I\u0027ve also shuffled around some code -- null function sending is only\napplicable to managed interfaces so put that into that file, some other\nfunctions are needed from various places so put them into util, and also\nrearranged the prototypes in ieee80211_i.h accordingly.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "96f5e66e8a79810e2982cdcfa28e554f3d97da21",
      "tree": "d16a0e083b83ab488f20b995c56a496a4ec2c9c8",
      "parents": [
        "f3734ee6df3ac57151e02d091f47d5e52e646539"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Feb 12 00:51:53 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 27 14:51:42 2009 -0500"
      },
      "message": "mac80211: fix aggregation for hardware with ampdu queues\n\nHardware with AMPDU queues currently has broken aggregation.\n\nThis patch fixes it by making all A-MPDUs go over the regular AC queues,\nbut keeping track of the hardware queues in mac80211. As a first rough\nversion, it actually stops the AC queue for extended periods of time,\nwhich can be removed by adding buffering internal to mac80211, but is\ncurrently not a huge problem because people rarely use multiple TIDs\nthat are in the same AC (and iwlwifi currently doesn\u0027t operate as AP).\n\nThis is a short-term fix, my current medium-term plan, which I hope to\nexecute soon as well, but am not sure can finish before .30, looks like\nthis:\n 1) rework the internal queuing layer in mac80211 that we use for\n    fragments if the driver stopped queue in the middle of a fragmented\n    frame to be able to queue more frames at once (rather than just a\n    single frame with its fragments)\n 2) instead of stopping the entire AC queue, queue up the frames in a\n    per-station/per-TID queue during aggregation session initiation,\n    when the session has come up take all those frames and put them\n    onto the queue from 1)\n 3) push the ampdu queue layer abstraction this patch introduces in\n    mac80211 into the driver, and remove the virtual queue stuff from\n    mac80211 again\n\nThis plan will probably also affect ath9k in that mac80211 queues the\nframes instead of passing them down, even when there are no ampdu queues.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "849b7967818995a32c3017542e33eb3155944368",
      "tree": "afd0a98e50c3b9a851a2b46682f6a3767df2ca04",
      "parents": [
        "d75636ef9c1af224f1097941879d5a8db7cd04e5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Feb 10 21:25:54 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 13 13:45:48 2009 -0500"
      },
      "message": "mac80211: further cleanups to stopping BA sessions\n\nEssentially consisting of passing the sta_info pointer around,\ninstead of repeatedly doing hash lookups.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "23e6a7ea5cb1a902d37ab0c783709c178fa834df",
      "tree": "0fa4e1f792dbfb0d57426b0e2f3c0cb7a2125402",
      "parents": [
        "86ab6c5a6c5204f6c25281b9039330b8f5e9b692"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Feb 10 21:25:50 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 13 13:45:41 2009 -0500"
      },
      "message": "mac80211: fix race in TX aggregation\n\nWhen disabling TX aggregation because it was rejected or from\nthe timer (it was not accepted), there is a window where we\nfirst set the state to operation, unlock, and then undo the\nwhole thing. Avoid that by splitting up the stop function.\nAlso get rid of the pointless sta_info indirection in the timer.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "86ab6c5a6c5204f6c25281b9039330b8f5e9b692",
      "tree": "b9b5471d84a0f9212927c34a99a9e334ffefff95",
      "parents": [
        "955d3fe3e8b38de19761e4ac7afdb9d7a33b9566"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Feb 10 21:25:49 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 13 13:45:39 2009 -0500"
      },
      "message": "mac80211: document TX aggregation (and small cleanup)\n\nAdd documentation and move ieee80211_start_tx_ba_cb_irqsafe to right\nafter ieee80211_start_tx_ba_cb.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "955d3fe3e8b38de19761e4ac7afdb9d7a33b9566",
      "tree": "2f45485f88b9e9bc61aaddc6f9f187285cfc6501",
      "parents": [
        "8abd3f9bc476b5b7f6de1b6fb576b87ba338f7fd"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Feb 10 21:25:48 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 13 13:45:38 2009 -0500"
      },
      "message": "mac80211: hardware should not deny going back to legacy\n\nDoing so would be an MLME protocol violation when the peer disabled\nthe aggregation session. Quick driver review indicates that there are\nerror codes passed all over the drivers but cannot ever be nonzero\nexcept in error conditions that would indicate mac80211 bugs.\n\nNo real changes here, since no drivers currently can return -EBUSY.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8abd3f9bc476b5b7f6de1b6fb576b87ba338f7fd",
      "tree": "1b830fde0f97686721a3843375453e03e4555c37",
      "parents": [
        "b8695a8fe6d89140f8d17668e99ebd39358d7c0b"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Feb 10 21:25:47 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 13 13:45:36 2009 -0500"
      },
      "message": "mac80211: restrict aggregation to supported interface modes\n\nWe can only support aggregation on AP/STA right now. HT isn\u0027t defined\nfor IBSS, WDS or MESH. In the WDS/MESH cases it\u0027s not clear what to\nput into the IBSS field, and we don\u0027t handle that in the code at all.\nAlso fix the code to handle VLAN correctly.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b8695a8fe6d89140f8d17668e99ebd39358d7c0b",
      "tree": "39d207ee3fc0fa0c4418225c522674f5cd4b45a7",
      "parents": [
        "20ad19d0ac7389b04b566ebf3e0e497974f63ffa"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Feb 10 21:25:46 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 13 13:45:34 2009 -0500"
      },
      "message": "mac80211: restructure HT code\n\nCreate two new files, agg-tx.c and agg-rx.c to make it clearer\nwhich code is common (ht.c) and which is specific (agg-*.c).\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    }
  ]
}
