)]}'
{
  "log": [
    {
      "commit": "7bb4568372856688bc070917265bce0b88bb7d4d",
      "tree": "e3ca3e7d233944bbc271c650c8b037c3a6652d98",
      "parents": [
        "43f12d47f0580e04e26c14c03cb19cea9687854e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Feb 24 14:42:06 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 25 15:32:34 2011 -0500"
      },
      "message": "mac80211: make tx() operation return void\n\nThe return value of the tx operation is commonly\nmisused by drivers, leading to errors. All drivers\nwill drop frames if they fail to TX the frame, and\nthey must also properly manage the queues (if they\ndidn\u0027t, mac80211 would already warn).\n\nRemoving the ability for drivers to return a BUSY\nvalue also allows significant cleanups of the TX\nTX handling code in mac80211.\n\nNote that this also fixes a bug in ath9k_htc, the\nold \"return -1\" there was wrong.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@googlemail.com\u003e [ath5k]\nAcked-by: Gertjan van Wingerde \u003cgwingerde@gmail.com\u003e [rt2x00]\nAcked-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e [b43, rtl8187, rtlwifi]\nAcked-by: Luciano Coelho \u003ccoelho@ti.com\u003e [wl12xx]\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b67afe7f43afd2f5cd98798993561920c1684c12",
      "tree": "e45a0e41c91a1d199fd865b011ed0d25f5497bb9",
      "parents": [
        "db28569adc692d9fb8a2d2d8e7ebab7fd5481f10",
        "28bec7b845e10b68e6ba1ade5de0fc566690fc61"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 18 17:03:41 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 18 17:03:41 2011 -0500"
      },
      "message": "Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\nConflicts:\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n"
    },
    {
      "commit": "db28569adc692d9fb8a2d2d8e7ebab7fd5481f10",
      "tree": "2e16f74ef5c73bc0735f43bc223c4330c57e1108",
      "parents": [
        "1a63e2ce4e67f6df74f032ec302314141816e432"
      ],
      "author": {
        "name": "Vivek Natarajan",
        "email": "vnatarajan@atheros.com",
        "time": "Fri Feb 18 17:18:03 2011 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 18 16:54:57 2011 -0500"
      },
      "message": "mac80211: Clear PS related flag on disabling power save.\n\nClear IEEE80211_STA_NULLFUNC_ACKED flag on disabling power\nsave. Without this fix, there is a chance of setting CONF_PS\nbefore sending nullfunc frame.\n\nSigned-off-by: Vivek Natarajan \u003cvnatarajan@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3ad97fbcc233a295f2ccc2c6bdeb32323e360a5e",
      "tree": "afd41efc01403af33b5c86bd21e74cb881a57571",
      "parents": [
        "3a2329f2680796b0c09ff207803ea880a481c3a4"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Feb 07 22:03:35 2011 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 07 16:18:28 2011 -0500"
      },
      "message": "mac80211: remove unneeded check\n\n\"ap\" is the address of sdata-\u003eu.ap so it can never be NULL here.  Also\nwe dereferenced it on the previous line.  I removed the check.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "fc7c976dc7a565213393ce700d4a6105f037bf20",
      "tree": "ab7b069f25f0d6ddce88be4a1c898d3101ed1c09",
      "parents": [
        "3dd823e6b86407aed1a025041d8f1df77e43a9c8"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Mon Feb 07 12:05:00 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 07 16:02:14 2011 -0500"
      },
      "message": "mac80211: fix the skb cloned check in the tx path\n\nUsing skb_header_cloned to check if it\u0027s safe to write to the skb is not\nenough - mac80211 also touches the tailroom of the skb.\nInitially this check was only used to increase a counter, however this\ncommit changed the code to also skip skb data reallocation if no extra\nhead/tailroom was needed:\n\ncommit 4cd06a344db752f513437138953af191cbe9a691\nmac80211: skip unnecessary pskb_expand_head calls\n\nIt added a regression at least with iwl3945, which is fixed by this patch.\n\nReported-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nTested-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b23b025fe246f3acc2988eb6d400df34c27cb8ae",
      "tree": "e1c8cd163dc4dc7c603652a9e101f8381cf66fdc",
      "parents": [
        "cb8d61de2d7f074654057b2b924da1efbf625ad4"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Fri Feb 04 11:54:17 2011 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 04 16:30:32 2011 -0500"
      },
      "message": "mac80211: Optimize scans on current operating channel.\n\nThis should decrease un-necessary flushes, on/off channel work,\nand channel changes in cases where the only scanned channel is\nthe current operating channel.\n\n* Removes SCAN_OFF_CHANNEL flag, uses SDATA_STATE_OFFCHANNEL\n  and is-scanning flags instead.\n\n* Add helper method to determine if we are currently configured\n  for the operating channel.\n\n* Do no blindly go off/on channel in work.c  Instead, only call\n  appropriate on/off code when we really need to change channels.\n  Always enable offchannel-ps mode when starting work,\n  and disable it when we are done.\n\n* Consolidate ieee80211_offchannel_stop_station and\n  ieee80211_offchannel_stop_beaconing, call it\n  ieee80211_offchannel_stop_vifs instead.\n\n* Accept non-beacon frames when scanning on operating channel.\n\n* Scan state machine optimized to minimize on/off channel\n  transitions.  Also, when going on-channel, go ahead and\n  re-enable beaconing.  We\u0027re going to be there for 200ms,\n  so seems like some useful beaconing could happen.\n  Always enable offchannel-ps mode when starting software\n  scan, and disable it when we are done.\n\n* Grab local-\u003emtx earlier in __ieee80211_scan_completed_finish\n  so that we are protected when calling hw_config(), etc.\n\n* Pass probe-responses up the stack if scanning on local\n  channel, so that mlme can take a look.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "512119b36f7945a650877cbc7e9b5f4cc4d92e4c",
      "tree": "324117fb41bff372ac9a5e669cf279106731cac1",
      "parents": [
        "4099e2f4404762add8ef2b0dadef3c5122117210"
      ],
      "author": {
        "name": "Christian Lamparter",
        "email": "chunkeey@googlemail.com",
        "time": "Mon Jan 31 20:48:44 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 04 16:29:49 2011 -0500"
      },
      "message": "mac80211: fix race between next beacon dtim and ieee80211_get_buffered_bc\n\nOn review of \u0027zd1211rw: implement beacon fetching and handling\nieee80211_get_buffered_bc()\u0027, Christian Lamparter noted that [1]:\n\n   Since zd_beacon_done also uploads the next beacon so long in advance,\n   there could be an equally long race between the outdated state of the\n   next beacon\u0027s DTIM broadcast traffic indicator (802.11-2007 7.3.2.6)\n   which -in your case- was uploaded almost a beacon interval ago and\n   the xmit of ieee80211_get_buffered_bc *now*.\n\n   The dtim bc/mc bit might be not set, when a mc/bc arrived after the\n   beacon was uploaded, but before the \"beacon done event\" from the\n   hardware. So, dozing stations don\u0027t expect the broadcast traffic\n   and of course, they might miss it completely.\n\n   It\u0027s probably better to fix this in mac80211 (see the attached hack).\n\n[1] http://marc.info/?l\u003dlinux-wireless\u0026m\u003d129435041117256\u0026w\u003d2\n\nCC: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nSigned-off-by: Jussi Kivilinna \u003cjussi.kivilinna@mbnet.fi\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8fd369eeaa81d05969787c9ddf9cf3f1a8c4e084",
      "tree": "9ab29670407547e03b00b4671687de151bbe0980",
      "parents": [
        "2cf22b897c63df65e7360a1897e5312c58617fbd"
      ],
      "author": {
        "name": "Arik Nemtsov",
        "email": "arik@wizery.com",
        "time": "Mon Jan 31 22:29:12 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Feb 03 16:44:44 2011 -0500"
      },
      "message": "mac80211: do not calc frame duration when using HW rate-control\n\nWhen rate-control is performed in HW, we cannot calculate frame\nduration as we do not have the skb transmission rate in SW.\n\nieee80211_tx_h_calculate_duration() should only be called when\nieee80211_tx_h_rate_ctrl() has been called before to initialize data\nin skb-\u003ecb. This doesn\u0027t happen for drivers with HW rate-control.\n\nFixes the following warning when operating in AP-mode\nin a driver with HW rate-control.\n\nWARNING: at net/mac80211/tx.c:57 ieee80211_duration+0x54/0x1d8 [mac80211]()\nModules linked in: wl1271_sdio wl1271 firmware_class crc7 mac80211 cfg80211\n[\u003cc0046090\u003e] (unwind_backtrace+0x0/0x124) from [\u003cc0064c10\u003e] (warn_slowpath_common+0x4c/0x64)\n[\u003cc0064c10\u003e] (warn_slowpath_common+0x4c/0x64) from [\u003cc0064c40\u003e] (warn_slowpath_null+0x18/0x1c)\n[\u003cc0064c40\u003e] (warn_slowpath_null+0x18/0x1c) from [\u003cbf040e34\u003e] (ieee80211_duration+0x54/0x1d8 [mac80211])\n[\u003cbf040e34\u003e] (ieee80211_duration+0x54/0x1d8 [mac80211]) from [\u003cbf04200c\u003e] (invoke_tx_handlers+0xfa0/0x1088 [mac80211])\n[\u003cbf04200c\u003e] (invoke_tx_handlers+0xfa0/0x1088 [mac80211]) from [\u003cbf042178\u003e] (ieee80211_tx+0x84/0x248 [mac80211])\n[\u003cbf042178\u003e] (ieee80211_tx+0x84/0x248 [mac80211]) from [\u003cbf042f44\u003e] (ieee80211_tx_pending+0x12c/0x278 [mac80211])\n[\u003cbf042f44\u003e] (ieee80211_tx_pending+0x12c/0x278 [mac80211]) from [\u003cc0069a9c\u003e] (tasklet_action+0x68/0xbc)\n[\u003cc0069a9c\u003e] (tasklet_action+0x68/0xbc) from [\u003cc006a044\u003e] (__do_softirq+0x84/0x114)\n[\u003cc006a044\u003e] (__do_softirq+0x84/0x114) from [\u003cc006a1b8\u003e] (do_softirq+0x48/0x54)\n[\u003cc006a1b8\u003e] (do_softirq+0x48/0x54) from [\u003cc006a4f8\u003e] (local_bh_enable+0x98/0xcc)\n[\u003cc006a4f8\u003e] (local_bh_enable+0x98/0xcc) from [\u003cbf074e60\u003e] (wl1271_rx+0x2e8/0x3a4 [wl1271])\n[\u003cbf074e60\u003e] (wl1271_rx+0x2e8/0x3a4 [wl1271]) from [\u003cbf071ae4\u003e] (wl1271_irq_work+0x230/0x310 [wl1271])\n[\u003cbf071ae4\u003e] (wl1271_irq_work+0x230/0x310 [wl1271]) from [\u003cc0076864\u003e] (process_one_work+0x208/0x350)\n[\u003cc0076864\u003e] (process_one_work+0x208/0x350) from [\u003cc0076e14\u003e] (worker_thread+0x1cc/0x300)\n[\u003cc0076e14\u003e] (worker_thread+0x1cc/0x300) from [\u003cc007bb88\u003e] (kthread+0x84/0x8c)\n[\u003cc007bb88\u003e] (kthread+0x84/0x8c) from [\u003cc0041494\u003e] (kernel_thread_exit+0x0/0x8)\n\nSigned-off-by: Arik Nemtsov \u003carik@wizery.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3e11210d46a4f252f41db6e442b46026aeddbb59",
      "tree": "b258375de649a5e04e8d567c850b47c41f8ceb11",
      "parents": [
        "3bf63e59e577cbecd41334c866f501c4cc5d54c5",
        "c7c1806098752c1f46943d8db2c69aff07f5d4bc"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 28 16:23:14 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 28 16:23:14 2011 -0500"
      },
      "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/ath/ath9k/init.c\n"
    },
    {
      "commit": "eb3e554b4b3a56386ef5214dbe0e3935a350178b",
      "tree": "7c107dadb64f044c7747c41e369f9780ab611cb1",
      "parents": [
        "bdc4bf652bc0271ba8f1f25bbd3dbac90bead44e"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Mon Jan 24 19:28:49 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 25 16:28:56 2011 -0500"
      },
      "message": "mac80211: fix a crash in ieee80211_beacon_get_tim on change_interface\n\nSome drivers (e.g. ath9k) do not always disable beacons when they\u0027re\nsupposed to. When an interface is changed using the change_interface op,\nthe mode specific sdata part is in an undefined state and trying to\nget a beacon at this point can produce weird crashes.\n\nTo fix this, add a check for ieee80211_sdata_running before using\nanything from the sdata.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ac1bd8464f161ed1475ef73c431b926256c6b5bb",
      "tree": "6a755cadfd24e1c988e75383d30c789c5b149b3d",
      "parents": [
        "4801416c76a3a355076d6d371c00270dfe332e1c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Jan 18 13:45:32 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 19 11:36:11 2011 -0500"
      },
      "message": "mac80211: don\u0027t return beacons when mesh is disabled\n\nWhen mesh is disabled, mac80211 was returning\nbeacons with an empty mesh ID. That isn\u0027t\ndesirable, even if drivers shouldn\u0027t be trying\nto get beacons to start with.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0a65169b1f602b955176cb5f0789139d0fccb041",
      "tree": "be2fcda442db0d8e678a79d8a346224a03afa528",
      "parents": [
        "115dad7a7f42e68840392767323ceb9306dbdb36"
      ],
      "author": {
        "name": "Wey-Yi Guy",
        "email": "wey-yi.w.guy@intel.com",
        "time": "Fri Jan 14 08:07:56 2011 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 19 11:36:09 2011 -0500"
      },
      "message": "mac80211: mesh only parameter mppath maybe unused\n\nmppath is mesh related parameter and maybe unused\n\nSigned-off-by: Wey-Yi Guy \u003cwey-yi.w.guy@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9d52501b421450ddd9e000c9788ac3be0e44ef1c",
      "tree": "e0a1c5a7b9fc179a5fd4822e4a7dff954084e56a",
      "parents": [
        "04cf53f465049c7c509aac7b776f75d38ef68e69"
      ],
      "author": {
        "name": "Joel A Fernandes",
        "email": "agnel.joel@gmail.com",
        "time": "Mon Jan 10 00:44:23 2011 -0600"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 19 11:36:07 2011 -0500"
      },
      "message": "mac80211: Rewrote code for checking if destinations are proxied.\n\nRewrote code for checking if the destination is proxied by a mesh portal, to facilitate better\nunderstanding of the functionality.\n\nSigned-off-by: Joel A Fernandes \u003cagnel.joel@gmail.com\u003e\nAcked-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c96e96354a6c9456cdf1f150eca504e2ea35301e",
      "tree": "751bec601fb8152116b8e31e0f1f83d687a37d6f",
      "parents": [
        "dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a",
        "33af88138b859f515b365a074e0a014d7cdbf846"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:06:25 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:06:25 2011 -0500"
      },
      "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\tnet/bluetooth/Makefile\n"
    },
    {
      "commit": "f76b57b47e5fd423f9827c7b0ba7bbd06cca6b9b",
      "tree": "8ff2b50bb0e57611f5d37fe6abaef75f9fcd34a6",
      "parents": [
        "1c30cc19081c16b1fe73ac13f2cb2abc009cdcc4"
      ],
      "author": {
        "name": "Joel A Fernandes",
        "email": "agnel.joel@gmail.com",
        "time": "Tue Dec 28 19:28:11 2010 -0600"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:43:01 2011 -0500"
      },
      "message": "mac80211: Fix mesh portal communication with other mesh nodes.\n\nFixed a bug where if a mesh interface has a different MAC address from its bridge\ninterface, then it would not be able to send data traffic to any other mesh node.\nThis also adds support for communication between mesh nodes and external bridged\nnodes by using a 6 address format if the source is a node within the mesh and the\ndestination is an external node proxied by a mesh portal.\n\nSigned-off-by: Joel A Fernandes \u003cagnel.joel@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e1e5406854378dfada3f33c7192b012083a5b8e0",
      "tree": "e878058f28b8f6db50ef5d73d09aed66dd9ad9f2",
      "parents": [
        "fe67c913f1ec2a01aaa9176c80ef36eaf87d705d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Nov 30 08:58:45 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 22 14:33:37 2010 -0500"
      },
      "message": "mac80211: add throughput based LED blink trigger\n\niwlwifi and other drivers like to blink their LED\nbased on throughput. Implement this generically in\nmac80211, based on a throughput table the driver\nspecifies. That way, drivers can set the blink\nfrequencies depending on their desired behaviour\nand max throughput.\n\nAll the drivers need to do is provide an LED class\ndevice, best with blink hardware offload.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f8a0a781488ec7288d1049e5d2022850aa98f7b6",
      "tree": "3acab2f7a781ce3ed83bcd5350ac14b133dc0e45",
      "parents": [
        "4cd06a344db752f513437138953af191cbe9a691"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sat Dec 18 19:30:50 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:52:17 2010 -0500"
      },
      "message": "mac80211: fix potentially redundant skb data copying\n\nWhen an skb is shared, it needs to be duplicated, along with its data buffer.\nIf the skb does not have enough headroom, using skb_copy might cause the data\nbuffer to be copied twice (once by skb_copy and once by pskb_expand_head).\nFix this by using skb_clone initially and letting ieee80211_skb_resize sort\nout the rest.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4cd06a344db752f513437138953af191cbe9a691",
      "tree": "ec6a52da07449e20a10e59f2ee669467dd56089e",
      "parents": [
        "489ee9195a7de9e6bc833d639ff6b553ffdad90e"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sat Dec 18 19:30:49 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:52:17 2010 -0500"
      },
      "message": "mac80211: skip unnecessary pskb_expand_head calls\n\nIf the skb is not cloned and we don\u0027t need any extra headroom, there\nis no point in reallocating the skb head.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "489ee9195a7de9e6bc833d639ff6b553ffdad90e",
      "tree": "fe32219b2530610e70f5fe2923f96f565b8b987a",
      "parents": [
        "ae29fbb189c7a80677500c718c9ce08095ccde01"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sat Dec 18 19:30:48 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:52:17 2010 -0500"
      },
      "message": "mac80211: fix initialization of skb-\u003ecb in ieee80211_subif_start_xmit\n\nThe change \u0027mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs\u0027\nadded a check for copying the skb if it\u0027s shared, however the tx info variable\nstill points at the cb of the old skb\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nAcked-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "61ad5394590c5c5338ab4ec50553d809a9996d50",
      "tree": "e10a19ac4a14124ff223c29ed18a97b624e5244b",
      "parents": [
        "3de135dba9341a3d10a7a5b9533ce11cb77d4f4d"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Thu Dec 16 17:23:34 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:49:47 2010 -0500"
      },
      "message": "mac80211: Remove unused third address from mesh address extension header.\n\nThe Mesh Control header only includes 0, 1 or 2 addresses. If there is\none address, it should be interpreted as Address 4.  If there are 2,\nthey are interpreted as Addresses 5 and 6 (Address 4 being the 4th\naddress in the 802.11 header).\n\nThe address extension used to hold up to 3 addresses instead of the current 2.\nI\u0027m not sure which draft version changed this, but it is very unlikely that it\nwill change again given the state of the approval process of this draft.  See\nsection 7.1.3.6.3 in current draft (8.0).\n\nAlso, note that the extra address that I\u0027m removing was not being used, so this\nchange has no effect on over-the-air frame formats.  But I thought I better\nremove it before someone does start using it.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c80d545da3f7c0e534ccd4a780f322f80a92cff1",
      "tree": "edd5c51676b4677fc1a0b2fc692ffe97df863f25",
      "parents": [
        "24bdd9f4c9af75b33b438d60381a67626de0128d"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Thu Dec 16 17:37:49 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:46:57 2010 -0500"
      },
      "message": "mac80211: Let userspace enable and configure vendor specific path selection.\n\nUserspace will now be allowed to toggle between the default path\nselection algorithm (HWMP, implemented in the kernel), and a vendor\nspecific alternative.  Also in the same patch, allow userspace to add\ninformation elements to mesh beacons.  This is accordance with the\nExtensible Path Selection Framework specified in version 7.0 of the\n802.11s draft.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f7e0104c1a4e77cc4f23d5969b0677bdc4f62c63",
      "tree": "6d1622ec2f6152b611867df1b7a0269471655b53",
      "parents": [
        "dbd2fd656f2060abfd3a16257f8b51ec60f6d2ed"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Dec 09 19:49:02 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:23:29 2010 -0500"
      },
      "message": "mac80211: support separate default keys\n\nAdd support for split default keys (unicast\nand multicast) in mac80211.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "393934c6b5c8d00f9d1ae20670d4a770f07a418a",
      "tree": "dad33cd2e4fc0e3d3b28dcbc36cfb44178cb046c",
      "parents": [
        "69f4aab1157d2a386e7ea4de77cc253629d1b4f2",
        "0a54917c3fc295cb61f3fb52373c173fd3b69f48"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 16:23:31 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 16:23:31 2010 -0500"
      },
      "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/ath/ath9k/ath9k.h\n\tdrivers/net/wireless/ath/ath9k/main.c\n\tdrivers/net/wireless/ath/ath9k/xmit.c\n"
    },
    {
      "commit": "7e2447075690860e2cea96b119fc9cadbaa7e83c",
      "tree": "1bede27944240867d96e0440fbadb254b04368cd",
      "parents": [
        "f933ebed7888a9a7d73ebeeb6bcbb3f710c423b4"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Thu Dec 02 18:44:09 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 15:23:48 2010 -0500"
      },
      "message": "mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs\n\nmac80211 doesn\u0027t handle shared skbs correctly at the moment. As a result\na possible resize can trigger a BUG in pskb_expand_head.\n\n[  676.030000] Kernel bug detected[#1]:\n[  676.030000] Cpu 0\n[  676.030000] $ 0   : 00000000 00000000 819662ff 00000002\n[  676.030000] $ 4   : 81966200 00000020 00000000 00000020\n[  676.030000] $ 8   : 819662e0 800043c0 00000002 00020000\n[  676.030000] $12   : 3b9aca00 00000000 00000000 00470000\n[  676.030000] $16   : 80ea2000 00000000 00000000 00000000\n[  676.030000] $20   : 818aa200 80ea2018 80ea2000 00000008\n[  676.030000] $24   : 00000002 800ace5c\n[  676.030000] $28   : 8199a000 8199bd20 81938f88 80f180d4\n[  676.030000] Hi    : 0000026e\n[  676.030000] Lo    : 0000757e\n[  676.030000] epc   : 801245e4 pskb_expand_head+0x44/0x1d8\n[  676.030000]     Not tainted\n[  676.030000] ra    : 80f180d4 ieee80211_skb_resize+0xb0/0x114 [mac80211]\n[  676.030000] Status: 1000a403    KERNEL EXL IE\n[  676.030000] Cause : 10800024\n[  676.030000] PrId  : 0001964c (MIPS 24Kc)\n[  676.030000] Modules linked in: mac80211_hwsim rt2800lib rt2x00soc rt2x00pci rt2x00lib mac80211 crc_itu_t crc_ccitt cfg80211 compat arc4 aes_generic deflate ecb cbc [last unloaded: rt2800pci]\n[  676.030000] Process kpktgend_0 (pid: 97, threadinfo\u003d8199a000, task\u003d81879f48, tls\u003d00000000)\n[  676.030000] Stack : ffffffff 00000000 00000000 00000014 00000004 80ea2000 00000000 00000000\n[  676.030000]         818aa200 80f180d4 ffffffff 0000000a 81879f78 81879f48 81879f48 00000018\n[  676.030000]         81966246 80ea2000 818432e0 80f1a420 80203050 81814d98 00000001 81879f48\n[  676.030000]         81879f48 00000018 81966246 818432e0 0000001a 8199bdd4 0000001c 80f1b72c\n[  676.030000]         80203020 8001292c 80ef4aa2 7f10b55d 801ab5b8 81879f48 00000188 80005c90\n[  676.030000]         ...\n[  676.030000] Call Trace:\n[  676.030000] [\u003c801245e4\u003e] pskb_expand_head+0x44/0x1d8\n[  676.030000] [\u003c80f180d4\u003e] ieee80211_skb_resize+0xb0/0x114 [mac80211]\n[  676.030000] [\u003c80f1a420\u003e] ieee80211_xmit+0x150/0x22c [mac80211]\n[  676.030000] [\u003c80f1b72c\u003e] ieee80211_subif_start_xmit+0x6f4/0x73c [mac80211]\n[  676.030000] [\u003c8014361c\u003e] pktgen_thread_worker+0xfac/0x16f8\n[  676.030000] [\u003c8002ebe8\u003e] kthread+0x7c/0x88\n[  676.030000] [\u003c80008e0c\u003e] kernel_thread_helper+0x10/0x18\n[  676.030000]\n[  676.030000]\n[  676.030000] Code: 24020001  10620005  2502001f \u003c0200000d\u003e 0804917a  00000000  2502001f  00441023  00531021\n\nFix this by making a local copy of shared skbs prior to mangeling them.\nTo avoid copying the skb unnecessarily move the skb_copy call below the\nchecks that don\u0027t need write access to the skb.\n\nAlso, move the assignment of nh_pos and h_pos below the skb_copy to point\nto the correct skb.\n\nIt would be possible to avoid another resize of the copied skb by using\nskb_copy_expand instead of skb_copy but that would make the patch more\ncomplex. Also, shared skbs are a corner case right now, so the resize\nshouldn\u0027t matter much.\n\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c1ce5a74d113f221d40625bd3ad83df2db2695b7",
      "tree": "29456d61473f3273d83420e3fa12f7476657adfd",
      "parents": [
        "5f79ed3b1aa7af260c82ba714b90907070aeca7a"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Wed Dec 01 16:34:45 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 15:58:43 2010 -0500"
      },
      "message": "mac80211: Update last_tx_rate only for data frames\n\nThe last_tx_rate field was also updated for non-data frames that are\noften sent with a lower rate (for example management frames at 1 Mbps).\nThis is confusing when the data rate is actually much higher.\n\nHence, only update the last_tx_rate field with tx rate information\ngathered from last data frames.\n\nIf the rate control algorithm filled in txrc.reported_rate we don\u0027t need\nto verify this information.\n\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "09f921f83faa49cdea25abfb98c439c01526b89d",
      "tree": "1e8ee5c8f14e0e57965eca81bc6725288fd3597b",
      "parents": [
        "4cebb34caa5122216a1e2451eae9e0fc47ec2589",
        "d89197c7f34934fbb0f96d938a0d6cfe0b8bcb1c"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 02 15:46:37 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 02 15:46:37 2010 -0500"
      },
      "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/ath/ath9k/ar9003_eeprom.c\n"
    },
    {
      "commit": "7dff3125534c1d035a910052335a3a39fbb31aa7",
      "tree": "533142aacfc3d49067449173fb006225f41bc459",
      "parents": [
        "46047784b8cdcfc916f6c1cccee0c18dd1223dfd"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "jouni.malinen@atheros.com",
        "time": "Fri Nov 26 20:41:55 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 29 14:41:28 2010 -0500"
      },
      "message": "mac80211: Fix frame injection using non-AP vif\n\nIn order for frame injection to work properly for some use cases\n(e.g., finding the station entry and keys for encryption), mac80211\nneeds to find the correct sdata entry. This works when the main vif\nis in AP mode, but commit a2c1e3dad516618cb0fbfb1a62c36d0b0744573a\nbroke this particular use case for station main vif. While this type of\ninjection is quite unusual operation, it has some uses and we should fix\nit. Do this by changing the monitor vif sdata selection to allow station\nvif to be selected instead of limiting it to just AP vifs. We still need\nto skip some iftypes to avoid selecting unsuitable vif for injection.\n\nSigned-off-by: Jouni Malinen \u003cjouni.malinen@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8f0729b16ae354f9db89394fc1d2d65003455d56",
      "tree": "260a562d0c0079ebfc1c507c9aa50e55a1592b6d",
      "parents": [
        "885a46d0f7942d76c2f3860acb45f75237d3bb42"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Thu Nov 11 15:07:23 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 16 16:39:08 2010 -0500"
      },
      "message": "mac80211: add support for setting the ad-hoc multicast rate\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f23a478075659db8a4fd62fa6e264a8bb052cc5b",
      "tree": "ba1492a4a781770644359b88e8ca2d8d3a00adc2",
      "parents": [
        "ca4a0831917d6541b45f03542257fcb20dc9cf4a"
      ],
      "author": {
        "name": "Arik Nemtsov",
        "email": "arik@wizery.com",
        "time": "Mon Nov 08 11:51:06 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 16 16:37:04 2010 -0500"
      },
      "message": "mac80211: support hardware TX fragmentation offload\n\nThe lower driver is notified when the fragmentation threshold changes\nand upon a reconfig of the interface.\n\nIf the driver supports hardware TX fragmentation, don\u0027t fragment\npackets in the stack.\n\nSigned-off-by: Arik Nemtsov \u003carik@wizery.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e31b82136d1adc7a599b6e99d3321e5831841f5a",
      "tree": "c72d78d4cccfd08587e909c7efe59956f1cbc23e",
      "parents": [
        "53f73c09d64f1fa7d7e6e8b6bb7468d42eddc92d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Oct 05 19:39:30 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 06 16:30:40 2010 -0400"
      },
      "message": "cfg80211/mac80211: allow per-station GTKs\n\nThis adds API to allow adding per-station GTKs,\nupdates mac80211 to support it, and also allows\ndrivers to remove a key from hwaccel again when\nthis may be necessary due to multiple GTKs.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1be7fe8de9f25e173282f8f989f83bc5b5decfe9",
      "tree": "e7b45e034560f6dc0f0403d098d85e1c94a3b3e1",
      "parents": [
        "e8347ebad2f1b15bddb6ed3ed5f767531eb52dc3"
      ],
      "author": {
        "name": "Bill Jordan",
        "email": "bjordan@rajant.com",
        "time": "Fri Oct 01 11:20:41 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Oct 05 13:35:25 2010 -0400"
      },
      "message": "mac80211: fix for WDS interfaces\n\nInitialize the rate table for WDS interfaces, and\nadd cases to allow WDS packets to pass the xmit and receive\ntests.\n\nSigned-off-by: Bill Jordan \u003cbjordan@rajant.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "740c1aa3b01251c3c324743f395621749b099065",
      "tree": "9fe20602ca607b45a93a4d3a595f48456ac7232d",
      "parents": [
        "a1e567c83f541432e687142570215b75bebb1338"
      ],
      "author": {
        "name": "Steve deRosier",
        "email": "steve@cozybit.com",
        "time": "Sat Sep 11 20:01:31 2010 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Sep 14 16:08:03 2010 -0400"
      },
      "message": "mac80211: Fix dangling pointer in ieee80211_xmit\n\nhdr pointer is left dangling after call to ieee80211_skb_resize. This\ncan cause guards around mesh path selection to fail.\n\nSigned-off-by: Steve deRosier \u003csteve@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2337db8db845ece2d4ab7673a343e285f1bfda85",
      "tree": "ec1a3c806b8638c08caf8acef1b9d411e1e612fd",
      "parents": [
        "a621fa4d6a7fdf9d34938d2e129a72624833eeeb"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Aug 27 13:36:49 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 27 13:27:08 2010 -0400"
      },
      "message": "mac80211: use subqueue helpers\n\nThere are subqueue helpers so that we don\u0027t\nneed to get the TX queue and then wake/stop\nit, use those helpers.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a621fa4d6a7fdf9d34938d2e129a72624833eeeb",
      "tree": "1b15e9fabbec3b2bdf04f5cd60526c0154a0dcc1",
      "parents": [
        "c0692b8fe29fb4d4dad33487aabf3ed7e1e880c0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Aug 27 14:26:54 2010 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 27 13:27:07 2010 -0400"
      },
      "message": "mac80211: allow changing port control protocol\n\nSome vendor specified mechanisms for 802.1X-style\nfunctionality use a different protocol than EAP\n(even if EAP is vendor-extensible). Support this\nin mac80211 via the cfg80211 API for it.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Juuso Oikarinen \u003cjuuso.oikarinen@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3ffc2a905b1faae4c0fe39d66f0752c3a4cbb3c7",
      "tree": "d50902e1e171877e4fb034e36c837f16984ab9b4",
      "parents": [
        "7d64b7cc1fc33bab24567903a93f699d11649c0b"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Aug 27 14:26:52 2010 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 27 13:27:07 2010 -0400"
      },
      "message": "mac80211: allow vendor specific cipher suites\n\nAllow drivers to specify their own set of cipher\nsuites to advertise vendor-specific ciphers. The\ndriver is then required to implement hardware\ncrypto offload for it.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Juuso Oikarinen \u003cjuuso.oikarinen@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ff67bb86d448c26cb9110e9681669dc4a8aa5e0a",
      "tree": "b8fed75d276b69d3265713469aebcfb60b51400e",
      "parents": [
        "3a59babbee409fa5f1b2dd8a14c40803b5eb288b"
      ],
      "author": {
        "name": "Wey-Yi Guy",
        "email": "wey-yi.w.guy@intel.com",
        "time": "Sat Aug 21 07:23:29 2010 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Aug 25 14:33:17 2010 -0400"
      },
      "message": "mac80211: fix warning for un-used parameter\n\nmesh_hdr only used when CONFIG_MAC80211_MESH is defined\n\nSigned-off-by: Wey-Yi Guy \u003cwey-yi.w.guy@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0fb9a9ec27718fbf7fa3153bc94becefb716ceeb",
      "tree": "8f5d6a5fa9f2c6b8b08273dc198d6187d0a70361",
      "parents": [
        "b62177a0aa0521fd07cd7501534c0c3b256ebce6"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Aug 20 16:25:38 2010 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Aug 25 14:33:17 2010 -0400"
      },
      "message": "net/mac80211: Use wiphy_\u003clevel\u003e\n\nStandardize logging messages from\n\tprintk(KERN_\u003clevel\u003e \"%s: \" fmt , wiphy_name(foo), args);\nto\n\twiphy_\u003clevel\u003e(foo, fmt, args);\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "97359d1235eaf634fe706c9faa6e40181cc95fb8",
      "tree": "5799455c94622eaa6a4fb065bd3b5c350bb705e0",
      "parents": [
        "915a824e30c503157c38115eb6a85f60bb653738"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Aug 10 09:46:38 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Aug 16 16:45:11 2010 -0400"
      },
      "message": "mac80211: use cipher suite selectors\n\nCurrently, mac80211 translates the cfg80211\ncipher suite selectors into ALG_* values.\nThat isn\u0027t all too useful, and some drivers\nbenefit from the distinction between WEP40\nand WEP104 as well. Therefore, convert it\nall to use the cipher suite selectors.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nAcked-by: Gertjan van Wingerde \u003cgwingerde@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e4ab7eb0aecbe56ac280486c61cd3f0f6c42870b",
      "tree": "10a03d37bc640f1c572541806e2a6541b5ea019b",
      "parents": [
        "099284bdecf6e0af78662371ed3f45b71d796aad"
      ],
      "author": {
        "name": "Yuri Ershov",
        "email": "ext-yuri.ershov@nokia.com",
        "time": "Tue Jun 29 15:08:06 2010 +0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jul 28 16:24:01 2010 -0400"
      },
      "message": "mac80211: Put some code under MESH macro\n\nIn the function ieee80211_subif_start_xmit the logic related with\nmeshdrlen is under CONFIG_MAC80211_MESH macro, but in one place it isn\u0027t.\nThis is some update for this\n\nSigned-off-by: Yuri Ershov \u003cext-yuri.ershov@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ec25acc46a62db98baaa9b221f33b66af09a1964",
      "tree": "78e577f444850b70415120bf9a68a642ee8960fa",
      "parents": [
        "bd75eb854300c7e09eaf067572498abdeb9d3424"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Jul 22 17:11:28 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jul 26 15:32:42 2010 -0400"
      },
      "message": "mac80211: fix sta assignment\n\nI just had the following:\nWARNING: at drivers/net/wireless/iwlwifi/iwl-agn-tx.c:574 iwlagn_tx_skb+0x1576/0x15f0 [iwlagn]()\nCall Trace:\n \u003cIRQ\u003e  [\u003cffffffff8105c5df\u003e] warn_slowpath_common+0x7f/0xc0\n [\u003cffffffff8105c63a\u003e] warn_slowpath_null+0x1a/0x20\n [\u003cffffffffa0290b46\u003e] iwlagn_tx_skb+0x1576/0x15f0 [iwlagn]\n [\u003cffffffffa027076c\u003e] iwl_mac_tx+0x5c/0x260 [iwlagn]\n [\u003cffffffffa01bdf5b\u003e] __ieee80211_tx+0x10b/0x1a0 [mac80211]\n [\u003cffffffffa01bfb86\u003e] ieee80211_tx_pending+0x186/0x2d0 [mac80211]\n [\u003cffffffff81062ea5\u003e] tasklet_action+0x125/0x130\n [\u003cffffffff810634a6\u003e] __do_softirq+0x106/0x270\n [\u003cffffffff8100c09c\u003e] call_softirq+0x1c/0x30\niwlagn 0000:02:00.0: Attempting to modify non-existing station 107\n\nNote that 107 \u003d\u003d 0x6b which is slab poison.\n\nThe reason is that mac80211 passed a freed station\npointer to mac80211, because as it happened iwlwifi\nreset itself while mac80211 was disconnecting from\nthe network.\n\nIt turns out that we do take care to look up the\nstation pointer in ieee80211_tx_pending_skb, but\nthen don\u0027t use it, which obviously is a bug. Fix\nthis by removing the ieee80211_tx_h_sta handler\nand assigning the station pointer directly.\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": "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": "a472e71b3c71619087d2485282955c3b62ebfde9",
      "tree": "7fb74948011e568c791de4686df0f48f86b71fb5",
      "parents": [
        "55f9321a024a2d03f71a23b74003792692ca1a38"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu May 06 14:45:17 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri May 07 14:55:55 2010 -0400"
      },
      "message": "mac80211: set IEEE80211_TX_CTL_FIRST_FRAGMENT for beacons\n\nAlso simplify the flags assignment into a single statement at the\nend of ieee80211_beacon_get_tim.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a2c40249a36d0b4d76d1caf6bf806e4ae5b06e8a",
      "tree": "5184590de0d70625572e8a7385e30fe26e4d42e4",
      "parents": [
        "a060bbfe4ee95d115e8f9705a66894ac34e2c475"
      ],
      "author": {
        "name": "Shanyu Zhao",
        "email": "shanyu.zhao@intel.com",
        "time": "Tue Apr 27 11:15:12 2010 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 27 16:09:23 2010 -0400"
      },
      "message": "mac80211: fix rts threshold check\n\nCurrently whenever rts thresold is set, every packet will use RTS\nprotection no matter its size exceeds the threshold or not. This is\ndue to a bug in the rts threshold check.\n\tif (len \u003e tx-\u003elocal-\u003ehw.wiphy-\u003erts_threshold) {\n\t\ttxrc.rts \u003d rts \u003d true;\n\t}\nBasically it is comparing an int (len) and a u32 (rts_threshold),\nand the variable len is assigned as:\n\tlen \u003d min_t(int, tx-\u003eskb-\u003elen + FCS_LEN,\n\t\t\t tx-\u003elocal-\u003ehw.wiphy-\u003efrag_threshold);\nHowever, when frag_threshold is \"-1\", len is always \"-1\", which is\n0xffffffff therefore rts is always set to true.\n\nCC: stable@kernel.org\nSigned-off-by: Shanyu Zhao \u003cshanyu.zhao@intel.com\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3393a608c4979a94d1887efc05b792849d361a65",
      "tree": "0aceeb1e67fd23f82844086fcc5fb6c16b24dafc",
      "parents": [
        "2aab4c273ad837fbcf2955aee32b9ec4706c2521"
      ],
      "author": {
        "name": "Juuso Oikarinen",
        "email": "juuso.oikarinen@nokia.com",
        "time": "Mon Apr 19 10:12:52 2010 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Apr 19 16:41:42 2010 -0400"
      },
      "message": "mac80211: Prevent running sta_cleanup timer unnecessarily\n\nThe sta_cleanup timer is used to periodically expire buffered frames from the\ntx buf. The timer is executing periodically, regardless of the need for it.\nThis is wasting resources.\n\nFix this simply by not restarting the sta_cleanup timer if the tx buffer was\nempty. Restart the timer when there is some more tx-traffic.\n\nCc: Janne Ylälehto \u003cjanne.ylalehto@nokia.com\u003e\nSigned-off-by: Juuso Oikarinen \u003cjuuso.oikarinen@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0f2df9eac70423838a1f8d410fd3899ddd88317b",
      "tree": "0617f723320d83eca5cef9c964c001014e74213f",
      "parents": [
        "8c11e4ab09ffb975a89802dde0e9aa52a53b8aa5",
        "1144601118507f8b3b676a9a392584d216d3f2cc"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Apr 08 13:34:54 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Apr 08 13:34:54 2010 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into merge\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/wireless/ath/ath5k/phy.c\n\tdrivers/net/wireless/iwlwifi/iwl-4965.c\n\tdrivers/net/wireless/iwlwifi/iwl-agn.c\n\tdrivers/net/wireless/iwlwifi/iwl-core.c\n\tdrivers/net/wireless/iwlwifi/iwl-core.h\n\tdrivers/net/wireless/iwlwifi/iwl-tx.c\n"
    },
    {
      "commit": "2b43ae6daf26f29cec49fa3a3f18025355495500",
      "tree": "00fe8423ecd266f55df3ad59ea18dc86cffb4e3f",
      "parents": [
        "e64b379574d6c92c15b4239ee0a5173317176547"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Apr 06 11:18:44 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 07 14:38:01 2010 -0400"
      },
      "message": "mac80211: remove irq disabling for sta lock\n\nAll other places except one in the TX path, which\nhas BHs disabled, and it also cannot be locked from\ninterrupts so disabling IRQs is not necessary.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ecbcd3243651ae8ac2b73a96c320992a4cf01c5b",
      "tree": "6bdb7da8ea5bdbffca4eb9246162e84dbc6b2b67",
      "parents": [
        "e69e95dbecfb73f76765cdd16dadc6219a9068e3"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "j@w1.fi",
        "time": "Mon Mar 29 23:35:23 2010 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Mar 31 14:46:42 2010 -0400"
      },
      "message": "mac80211: Fix BIP to be used only with group-addressed frames\n\nBIP (part of IEEE 802.11w) is only supposed to be used with\ngroup-addressed frames. We ended up picking it as a default mechanism\nfor every management whenever we did not have a STA entry for the\ndestination (e.g., for Probe Response to a STA that is not\nassociated). While the extra MMIE in the end of management frames\nshould not break frames completed in most cases, there is no point in\ndoing this. Fix key selection to pick the default management key only\nif the frame is sent to multicast/broadcast address and the frame is a\nrobust management frame.\n\nSigned-off-by: Jouni Malinen \u003cj@w1.fi\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7236fe29fd72d17074574ba312e7f1bb9d10abaa",
      "tree": "6afd1fed2871daca52f5a8b3070337ae1b6ada0d",
      "parents": [
        "05a9a1617026977422c7c5ed3aeac6f46fa2132c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon Mar 22 13:42:43 2010 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Mar 30 15:37:28 2010 -0400"
      },
      "message": "mac80211: move netdev queue enabling to correct spot\n\n\"mac80211: fix skb buffering issue\" still left a race\nbetween enabling the hardware queues and the virtual\ninterface queues. In hindsight it\u0027s totally obvious\nthat enabling the netdev queues for a hardware queue\nwhen the hardware queue is enabled is wrong, because\nit could well possible that we can fill the hw queue\nwith packets we already have pending. Thus, we must\nonly enable the netdev queues once all the pending\npackets have been processed and sent off to the device.\n\nIn testing, I haven\u0027t been able to trigger this race\ncondition, but it\u0027s clearly there, possibly only when\naggregation is being enabled.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "14b44974d5a3c1ca59f6809b7313d7229eb55fd8",
      "tree": "f1b8f13d2a558344da3e3669247fc7259027bc9b",
      "parents": [
        "4ac5541bdaea4d8e93710c58775cfa48ac82e09b"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Mar 24 14:56:41 2010 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Mar 24 16:04:33 2010 -0400"
      },
      "message": "mac80211: remove unneed variable from ieee80211_tx_pending()\n\nWe don\u0027t need \"sdata\" any more after:\n\td84f323477260e773d5317ad7cbe50f76115cb47\n\tmac80211: remove dev_hold/put calls\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\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": "33e5a2f776e331dc8a4379b6efb660d38f182d96",
      "tree": "8d89bc3f70063bec4d85d76dc5887cea19da064d",
      "parents": [
        "690680360cd22b55235481ca3421a3450a96138a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Feb 03 10:24:30 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 08 16:50:53 2010 -0500"
      },
      "message": "wireless: update radiotap parser\n\nUpstream radiotap has adopted the namespace\nproposal David Young made and I then took care\nof, for which I had adapted the radiotap parser\nas a library outside the kernel. This brings\nthe in-kernel parser up to speed.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b4d57adb727ec7c34020390eeb0eeb9e0a2959bc",
      "tree": "7819dc3d403d80788fdc1c4b5af337fff2989bcf",
      "parents": [
        "17ad353b8d9843731258b5d23556667b764939e9"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sun Jan 31 23:25:24 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 01 15:40:08 2010 -0500"
      },
      "message": "mac80211: fix sta lookup with AP VLAN interfaces and injected frames\n\nWhen injecting frames, mac80211 currently looks for the first AP\ninterface that matches the source address of the injected frame.\nThis breaks when such a frame is directed at a STA that has been moved\nto a VLAN. This patch fixes it by using sta_info_get_bss instead of\nsta_info_get, which also finds stations belonging to a VLAN interface\nof the same BSS as the AP interface.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "17ad353b8d9843731258b5d23556667b764939e9",
      "tree": "26c84253888ded3b008c7b1d8c29763646b673bf",
      "parents": [
        "4754ffd68bc14de8db01451c49bb07adebe1e422"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sun Jan 31 21:56:25 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 01 15:40:08 2010 -0500"
      },
      "message": "mac80211: fix monitor mode tx radiotap header handling\n\nWhen an injected frame gets buffered for a powersave STA or filtered\nand retransmitted, mac80211 attempts to parse the radiotap header\nagain, which doesn\u0027t work because it\u0027s gone at that point.\nThis patch adds a new flag for checking the availability of a radiotap\nheader, so that it only attempts to parse it once, reusing the tx info\non the next call to ieee80211_tx().\nThis fixes severe issues with rekeying in AP mode.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "382b16559d599c4260aeb82a5ea5ba44459d1cd2",
      "tree": "dcb1b16424bf90aea7712625c2975b60c9fe9dc0",
      "parents": [
        "1396b231b0369c4146988c2f42fb416ae19e2572"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Jan 25 11:36:16 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 25 16:36:29 2010 -0500"
      },
      "message": "mac80211: fix sw crypto\n\nWhat a stupid mistake. In\n\n    commit 813d76694043d00b59475baa1fbfaf54a2eb7fad\n    Author: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\n    Date:   Sun Jan 17 01:47:58 2010 +0100\n\n        mac80211: move control.hw_key assignment\n\nI inserted code testing the wrong flags field,\nwhich means that the test is almost always true\n(it\u0027s really testing for the peer\u0027s WMM support)\nand thus the later parts of the stack assume hw\ncrypto will be done even if that\u0027s not true.\n\nObviously, that broke software crypto. Maxim\nsaid so specifically, and Jochen probably uses\nsome cipher that iwl3945 doesn\u0027t support in\nhardware, which might also explain that Maxim\nreports that even hw crypto is broken.\n\nFix this to test the right flags field.\n\nReported-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nReported-by: Jochen Friedrich \u003cjochen@scram.de\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3b43a18743421cccd33902e29016fa49b2d52dbb",
      "tree": "eaaab22a16260625854a51076fe64d5787e98ac4",
      "parents": [
        "f12553ebe045a8a40ab33fa500fb57d10706e226"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@iki.fi",
        "time": "Sat Jan 23 20:27:14 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Sat Jan 23 16:47:00 2010 -0500"
      },
      "message": "mac80211: fix tx select key null pointer crash with hostapd\n\nPavel Roskin reported a crash in ieee80211_tx_h_select_key():\n\nhttp://marc.info/?l\u003dlinux-wireless\u0026m\u003d126419655108528\u0026w\u003d2\n\nThis is a regression from patch \"mac80211: move control.hw_key assignment\".\nFix it as suggested by Johannes, adding an else statement to make sure\nthat tx-\u003ekey is not accessed when it\u0027s null.\n\nCompile-tested only.\n\nReported-by: Pavel Roskin \u003cproski@gnu.org\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Kalle Valo \u003ckalle.valo@iki.fi\u003e\nTested-by: Bob Copeland \u003cme@bobcopeland.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f12553ebe045a8a40ab33fa500fb57d10706e226",
      "tree": "936682b710e2bb6e132a2ec4ecae9c96e64d42ec",
      "parents": [
        "b92f7d30830a319148df2943b7565989494e5ad1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jan 22 22:07:59 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 22 16:33:28 2010 -0500"
      },
      "message": "mac80211: add missing key check\n\nieee80211_tx_h_select_key might decide that a frame\nneed not be encrypted at all, in which case it will\nclear tx-\u003ekey. In that case it may crash if a key\nwas previously selected, e.g. as the default key.\n\nThis is also due to my patch\n\"mac80211: move control.hw_key assignment\".\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c6fcf6bcfc3cfc1c00cc7fd9610cfa2b1a18041f",
      "tree": "301713d3f65f3cc9cb99e374c655d6f8bf99c741",
      "parents": [
        "813d76694043d00b59475baa1fbfaf54a2eb7fad"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Jan 17 01:47:59 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 19 16:25:21 2010 -0500"
      },
      "message": "mac80211: re-enable re-transmission of filtered frames\n\nIn an earlier commit,\n\n    mac80211: disable software retry for now\n\n    Pavel Roskin reported a problem that seems to be due to\n    software retry of already transmitted frames. It turns\n    out that we\u0027ve never done that correctly, but due to\n    some recent changes it now crashes in the TX code. I\u0027ve\n    added a comment in the patch that explains the problem\n    better and also points to possible solutions -- which\n    I can\u0027t implement right now.\n\nI disabled software retry of failed/filtered frames\nbecause it was broken. With the work of the previous\npatches, it now becomes fairly easy to re-enable it\nby adding a flag indicating that the frame shouldn\u0027t\nbe modified, but still running it through the transmit\nhandlers to populate the control information.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "813d76694043d00b59475baa1fbfaf54a2eb7fad",
      "tree": "daad130ca0a9e90f7616d88e5433654df89af14a",
      "parents": [
        "a6bae9e7ab19876a157c91019852395539e4f20e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Jan 17 01:47:58 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 19 16:25:19 2010 -0500"
      },
      "message": "mac80211: move control.hw_key assignment\n\nWhen mac80211 asks a driver to encrypt a frame, it\nmust assign the control.hw_key pointer for it to\nknow which key to use etc. Currently, mac80211 does\nthis whenever it would software-encrypt a frame.\n\nChange the logic of this code to assign the hw_key\npointer when selecting the key, and later check it\nwhen deciding whether to encrypt the frame or let\nit be encrypted by the hardware. This allows us to\nlater simply skip the encryption function since it\nno longer modifies the TX control.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a6bae9e7ab19876a157c91019852395539e4f20e",
      "tree": "221b68a7d938c40e48782a208392554812b60d75",
      "parents": [
        "697e6a0fb0c8783695d4b4a5d7131476b296d623"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Jan 17 01:47:57 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 19 16:25:17 2010 -0500"
      },
      "message": "mac80211: remove useless setting of IEEE80211_TX_INTFL_DONT_ENCRYPT\n\nThere\u0027s no value in setting a flag that will\nnever be checked after this point, this seems\nto be legacy code -- I think previously the\nflag was used to check whether to encrypt the\nframe or not. Now, however, the flag need not\nbe set, and setting it actually interferes if\nthe frame will be processed again later.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "edc6ccb7b992bd9ea5db4555c8f0bf74c656f964",
      "tree": "e73676345e80609767d3c2b60f80e70324ac240b",
      "parents": [
        "8e9310c1790566ea2de2e8b6e1c04bacbbee648c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Jan 17 01:47:55 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 19 16:25:16 2010 -0500"
      },
      "message": "mac80211: move and rename misc tx handler\n\nThis TX handler is used only for assigning the\nstation pointer in the control information, so\ngive it a better name. Also move it before rate\ncontrol.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0c74211d19d83729c209ddcd4dc026c2aedeb29e",
      "tree": "31e81616c508d63aef0ad418dc4252b87d1be208",
      "parents": [
        "5c1b98a52c3af1044c2d3842af8bae9a89502ca9"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@nokia.com",
        "time": "Tue Jan 12 10:42:53 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 14:21:02 2010 -0500"
      },
      "message": "mac80211: check uapsd state for dynamic power save\n\nTo make U-APSD client mode effective, we must not wake up from dynamic power\nsave when transmitting frames. So if dynamic power save is enabled, it needs\ncheck the queue the transmitted packet is in and decide if we need to wake\nup or not.\n\nIn a perfect world, where all packets would have correct QoS tags, U-APSD\nenabled queues should not trigger wakeup from power save. But in the real\nworld, where very few packets have correct QoS tags, this won\u0027t work. For\nexample, if only voip class has U-APSD enabled and we send a packet in voip\nclass, but the packets we receive are in best effort class, we would receive\nthe packets with the legacy power save method. And that would increase\nlatencies too much from a voip application point of view.\n\nThe workaround is to enable U-APSD for all qeueus and still use dynamic ps\nwakeup for all other queues except voip. That way we can still save power\nwith a voip application and not sacrifice latency. Normal traffic (in\nbackground, best effort or video class) would still trigger wakeup from\ndynamic power save.\n\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5c1b98a52c3af1044c2d3842af8bae9a89502ca9",
      "tree": "6df9e13ba8fb0213238e56be04361efa3c1af139",
      "parents": [
        "50ae0cf15c3da2f6a8e4558de5010923e84736b2"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@nokia.com",
        "time": "Tue Jan 12 10:42:46 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 14:21:01 2010 -0500"
      },
      "message": "mac80211: create tx handler for dynamic ps\n\nCurrently dynamic ps check is in ieee80211_xmit(), but it\u0027s cleaner\nto have a separate tx handler for this. Also this is a prerequisite for\nU-APSD client mode which needs to know the queue frame is in.\n\nAlso need_dynamic_ps() function is embedded to the tx handler.\n\nNo functional changes expect that the code is run in a later phase than\noriginally.\n\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3f0e0b220f80075ce15483b20458192c0ac27426",
      "tree": "3e443253f6f96b71b1ee2013cdef5b0d930efb0a",
      "parents": [
        "0e5ded5a87c097760abd68521b86f1025dedc7d7"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Fri Jan 08 18:15:13 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 14:02:08 2010 -0500"
      },
      "message": "mac80211: do not transmit frames on unconfigured 4-addr vlan interfaces\n\nIf frames are transmitted on 4-addr ap vlan interfaces with no station,\nthey end up being transmitted unencrypted, even if the ap interface\nuses WPA. This patch add some sanity checking to make sure that this\ndoes not happen.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "05e54ea6cce400ac34528d705179b45244f61074",
      "tree": "d645290f4866b457795696c7c4e9f609a07a4e55",
      "parents": [
        "f7f70579340dba1e551c0e52349fde0370592174"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@nokia.com",
        "time": "Tue Jan 05 20:16:38 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 13:51:25 2010 -0500"
      },
      "message": "mac80211: create Probe Request template\n\nCertain type of hardware, for example wl1251 and wl1271, need a template\nfor the Probe Request. Create a function ieee80211_probereq_get() which\ncreates the template and drivers send it to hardware.\n\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7044cc565b45a898c140fb185174a66f2d68a163",
      "tree": "9933e1f178d0cfc8acf69eaf5b7652acaa8825e5",
      "parents": [
        "b3579d6adcf7b24464274967a96d12467cfb11a7"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@nokia.com",
        "time": "Tue Jan 05 20:16:19 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 13:51:24 2010 -0500"
      },
      "message": "mac80211: add functions to create PS Poll and Nullfunc templates\n\nSome hardware, for example wl1251 and wl1271, handle the transmission\nof power save related frames in hardware, but the driver is responsible\nfor creating the templates. It\u0027s better to create the templates in mac80211,\nthat way all drivers can benefit from this.\n\nAdd two new functions, ieee80211_pspoll_get() and ieee80211_nullfunc_get()\nwhich drivers need to call to get the frame. Drivers are also responsible\nfor updating the templates after each association.\n\nAlso new struct ieee80211_hdr_3addr is added to ieee80211.h to make it\neasy to calculate length of the Nullfunc frame.\n\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "37eb0b164cf9fa9f70c8500926f5cde7c652f48e",
      "tree": "9260e7045f32268c8c4ded718677711d371cd5ed",
      "parents": [
        "e00cfce0cb2a397859607bf515c6de9ce064b64a"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "jouni.malinen@atheros.com",
        "time": "Wed Jan 06 13:09:08 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 13:50:11 2010 -0500"
      },
      "message": "cfg80211/mac80211: Use more generic bitrate mask for rate control\n\nExtend struct cfg80211_bitrate_mask to actually use a bitfield mask\ninstead of just a single fixed or maximum rate index. This change\nitself does not modify the behavior (except for debugfs files), but it\nprepares cfg80211 and mac80211 for a new nl80211 command for setting\nwhich rates can be used in TX rate control.\n\nSince frames are now going through the rate control algorithm\nunconditionally, the internal IEEE80211_TX_INTFL_RCALGO flag can now\nbe removed. The RC implementations can use the rate_idx_mask value to\noptimize their behavior if only a single rate is enabled.\n\nThe old max_rate_idx in struct ieee80211_tx_rate_control is maintained\n(but commented as deprecated) for backwards compatibility with existing\nRC implementations. Once these implementations have been updated to\nuse the more generic rate_idx_mask, the max_rate_idx value can be\nremoved.\n\nSigned-off-by: Jouni Malinen \u003cjouni.malinen@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e00cfce0cb2a397859607bf515c6de9ce064b64a",
      "tree": "038d87e7d90a5bcdd8f689a563221eab883b0546",
      "parents": [
        "3dc1de0bf23816ed557ac8addf680cd5ee57e805"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "jouni.malinen@atheros.com",
        "time": "Tue Dec 29 12:59:19 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 12 13:50:09 2010 -0500"
      },
      "message": "mac80211: Select lowest rate based on basic rate set in AP mode\n\nIf the basic rate set is configured to not include the lowest rate\n(e.g., basic rate set \u003d 6, 12, 24 Mbps in IEEE 802.11g mode), the AP\nshould not send out broadcast frames at 1 Mbps. This type of\nconfiguration can be used to optimize channel usage in cases where\nthere is no need for backwards compatibility with IEEE 802.11b-only\ndevices.\n\nIn AP mode, mac80211 was unconditionally using the lowest rate for\nBeacon frames and similarly, with all rate control algorithms that use\nrate_control_send_low(), the lowest rate ended up being used for all\nbroadcast frames (and all unicast frames that are sent before\nassociation). Change this to take into account the basic rate\nconfiguration in AP mode, i.e., use the lowest rate in the basic rate\nset instead of the lowest supported rate when selecting the rate.\n\nSigned-off-by: Jouni Malinen \u003cjouni.malinen@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4f9b2a7dea2bf1dd81f280aa5e8a40ed910d2f0a",
      "tree": "52046049957a87103a383869155f43461963f089",
      "parents": [
        "f3f66b69c8ff08b46975d9e99c7ecb92a8b12eda",
        "7a4a77b7771164d61ce702a588067d1e1d66db7c"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 05 17:18:59 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 05 17:18:59 2010 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\nConflicts:\n\tnet/mac80211/iface.c\n"
    },
    {
      "commit": "cf0277e714a0db302a8f80e1b85fd61c32cf00b3",
      "tree": "b81c34eabc2560b804cfd59497ca2902f0d47a80",
      "parents": [
        "301a8234ea81938f0f083ae4e274d9c9296f3c86"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jan 05 18:00:58 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 05 16:21:40 2010 -0500"
      },
      "message": "mac80211: fix skb buffering issue\n\nSince I removed the master netdev, we\u0027ve been\nkeeping internal queues only, and even before\nthat we never told the networking stack above\nthe virtual interfaces about congestion. This\nmeans that packets are queued in mac80211 and\nthe upper layers never know, possibly leading\nto memory exhaustion and other problems.\n\nThis patch makes all interfaces multiqueue and\nuses ndo_select_queue to put the packets into\nqueues per AC. Additionally, when the driver\nstops a queue, we now stop all corresponding\nqueues for the virtual interfaces as well.\n\nThe injection case will use VO by default for\nnon-data frames, and BE for data frames, but\ndowngrade any data frames according to ACM. It\nneeds to be fleshed out in the future to allow\nchosing the queue/AC in radiotap.\n\nReported-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: stable@kernel.org [2.6.32]\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "891dc5e73783eeabd2a704a9425e2a199b39c9f9",
      "tree": "9b4478941c486d47a71bfce455b896c5dda7e811",
      "parents": [
        "e1781ed33a8809c58ad6c3b6d432d656446efa43",
        "55afc80b2ab100618c17af77915f75307b6bd5d1"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 30 15:25:08 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 30 15:25:08 2009 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\nConflicts:\n\tdrivers/net/wireless/libertas/scan.c\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": "b98c06b6debfe84c90200143bb1102f312f50a33",
      "tree": "65b8aba72d4350e3a77372e77796353a5ec3f580",
      "parents": [
        "5b479a076de091590423a9e6dfc2584126b28761"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Thu Dec 24 15:26:09 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 28 16:20:04 2009 -0500"
      },
      "message": "mac80211: fix race with suspend and dynamic_ps_disable_work\n\nWhen mac80211 suspends it calls a driver\u0027s suspend callback\nas a last step and after that the driver assumes no calls will\nbe made to it until we resume and its start callback is kicked.\nIf such calls are made, however, suspend can end up throwing\nhardware in an unexpected state and making the device unusable\nupon resume.\n\nFix this by preventing mac80211 to schedule dynamic_ps_disable_work\nby checking for when mac80211 starts to suspend and starts\nquiescing. Frames should be allowed to go through though as\nthat is part of the quiescing steps and we do not flush the\nmac80211 workqueue since it was already done towards the\nbeginning of suspend cycle.\n\nThe other mac80211 issue will be hanled in the next patch.\n\nFor further details see refer to the thread:\n\nhttp://marc.info/?t\u003d126144866100001\u0026r\u003d1\u0026w\u003d2\n\nCc: stable@kernel.org\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\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": "f64f9e719261a87818dd192a3a2352e5b20fbd0f",
      "tree": "b2d5cbaef3df615295f6061d8c4d6a912690556c",
      "parents": [
        "152b6a62aea2d43359dd37004e9c218bf7bdeb3b"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Nov 29 16:55:45 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 16:55:45 2009 -0800"
      },
      "message": "net: Move \u0026\u0026 and || to end of previous line\n\nNot including net/atm/\n\nCompiled tested x86 allyesconfig only\nAdded a \u003e 80 column line or two, which I ignored.\nExisting checkpatch plaints willfully, cheerfully ignored.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7351c6bd482712e5e3ec9dffc547de0e0863efb0",
      "tree": "1847c0470af79727b58611a69fa82384bd904d60",
      "parents": [
        "ad4bb6f8883a13bb0f65b194dae36c62a02ac779"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 19 01:08:30 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 19 11:08:56 2009 -0500"
      },
      "message": "mac80211: request TX status where needed\n\nRight now all frames mac80211 hands to the driver\nhave the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to\nrequest TX status. This isn\u0027t really necessary, only\nthe injected frames need TX status (the latter for\nhostapd) so move setting this flag.\n\nThe rate control algorithms also need TX status, but\nthey don\u0027t require it.\n\nAlso, rt2x00 uses that bit for its own purposes and\nseems to require it being set for all frames, but\nthat can be fixed in rt2x00.\n\nThis doesn\u0027t really change anything for any drivers\nbut in the future drivers using hw-rate control may\nopt to not report TX status for frames that don\u0027t\nhave the IEEE80211_TX_CTL_REQ_TX_STATUS flag set.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e [rt2x00 bits]\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9bc383de37090ba7ca3ff32a12c9d809dc5867f0",
      "tree": "2b502b918f585427b45357e5a9a781ea9f06c263",
      "parents": [
        "5be83de54c16944dea9c16c6a5a53c1fa75ed304"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 19 11:55:19 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 19 11:08:53 2009 -0500"
      },
      "message": "cfg80211: introduce capability for 4addr mode\n\nIt\u0027s very likely that not many devices will support\nfour-address mode in station or AP mode so introduce\ncapability bits for both modes, set them in mac80211\nand check them when userspace tries to use the mode.\nAlso, keep track of 4addr in cfg80211 (wireless_dev)\nand not in mac80211 any more. mac80211 can also be\nimproved for the VLAN case by not looking at the\n4addr flag but maintaining the station pointer for\nit correctly. However, keep track of use_4addr for\nstation mode in mac80211 to avoid all the derefs.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\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": "af65cd96dd4ea8ea5adc6ee850e61a407cd1067a",
      "tree": "fcdd50d2b9121bc26110329cb0fbefdeace99858",
      "parents": [
        "c95cf3d09adc9afe7816a13a920b6df36062a3fe"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Nov 17 18:18:36 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:24 2009 -0500"
      },
      "message": "mac80211: make software rate control optional\n\nSome devices implement the entire rate control in\nfirmware in some way, like wl1271 or like iwlwifi\nwhich does some things in software but not a lot.\nTherefore generic software rate control is rather\nuseless for them and just adds avoidable overhead\nto the transmit path.\n\nIt\u0027s fairly simple to let drivers indicate that\nthey do not need rate control, but they need to\nfulfil a number of conditions that we encode in\nWARN_ONs.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "15ff63653e507ec928a4a4386405a82446e096b1",
      "tree": "4e2ac0e39ab2142ae5115c4f1067e2962190e696",
      "parents": [
        "d84f323477260e773d5317ad7cbe50f76115cb47"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Nov 17 13:34:04 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:18 2009 -0500"
      },
      "message": "mac80211: use fixed broadcast address\n\nThe netdev broadcast address cannot change from\nall-ones so there\u0027s no need to use it; we can\ninstead hard-code it. Since we already have an\ninstance in tkip.c, which will be shared if it\nis marked static const, doing this reduces text\nsize at no data/bss cost.\n\nThe real motivation for this is, of course, the\ndesire to get rid of almost all uses of netdevs\nin mac80211 so that auditing their use becomes\neasier.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d84f323477260e773d5317ad7cbe50f76115cb47",
      "tree": "815047721ed953ab2b39aa606f95cee646fc5be6",
      "parents": [
        "5f0b7de59fae1e57b2481c9756cd4a0f6308530f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Nov 16 23:20:41 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:18 2009 -0500"
      },
      "message": "mac80211: remove dev_hold/put calls\n\nIf we move the rcu sections a little, there\u0027s\nno need to touch the device refcount.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "36f0d5f537885179c8fa92a70d4fcfb3a336b082",
      "tree": "0bc305e0eb1da753fc2302f72a677c936de0567b",
      "parents": [
        "77fa76bb7f5589cd336e4da4a02e2d685b70ce0a"
      ],
      "author": {
        "name": "Rui Paulo",
        "email": "rpaulo@gmail.com",
        "time": "Mon Nov 09 23:46:53 2009 +0000"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 13 17:43:55 2009 -0500"
      },
      "message": "mac80211: fix BSSID setup for beacon frames\n\nBSSID is now set to the TA.\n\nSigned-off-by: Rui Paulo \u003crpaulo@gmail.com\u003e\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nReviewed-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nTested-by: Brian Cavagnolo \u003cbrian@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f14543ee4d0681df1377b976cba704557ba220d3",
      "tree": "f148485869f6638030207c069742c1918647be6a",
      "parents": [
        "8b787643ca0a5130c647109d77fe512f89cfa611"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue Nov 10 20:10:05 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 11 17:02:10 2009 -0500"
      },
      "message": "mac80211: implement support for 4-address frames for AP and client mode\n\nIn some situations it might be useful to run a network with an\nAccess Point and multiple clients, but with each client bridged\nto a network behind it. For this to work, both the client and the\nAP need to transmit 4-address frames, containing both source and\ndestination MAC addresses.\nWith this patch, you can configure a client to communicate using\nonly 4-address frames for data traffic.\nOn the AP side you can enable 4-address frames for individual\nclients by isolating them in separate AP VLANs which are configured\nin 4-address mode.\nSuch an AP VLAN will be limited to one client only, and this client\nwill be used as the destination for all traffic on its interface,\nregardless of the destination MAC address in the packet headers.\nThe advantage of this mode compared to regular WDS mode is that it\u0027s\neasier to configure and does not require a static list of peer MAC\naddresses on any side.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "af81858172cc0f3da81946aab919c26e4b364efc",
      "tree": "8e7a4bf30ff7c23636d810c5a912ff7e3ddb7333",
      "parents": [
        "70d9f405d09e334b609702d88ee03b6119c4b45e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Nov 06 11:35:50 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 06 16:49:10 2009 -0500"
      },
      "message": "mac80211: async station powersave handling\n\nSome devices require that all frames to a station\nare flushed when that station goes into powersave\nmode before being able to send frames to that\nstation again when it wakes up or polls -- all in\norder to avoid reordering and too many or too few\nframes being sent to the station when it polls.\n\nNormally, this is the case unless the station\ngoes to sleep and wakes up very quickly again.\nBut in that case, frames for it may be pending\non the hardware queues, and thus races could\nhappen in the case of multiple hardware queues\nused for QoS/WMM. Normally this isn\u0027t a problem,\nbut with the iwlwifi mechanism we need to make\nsure the race doesn\u0027t happen.\n\nThis makes mac80211 able to cope with the race\nwith driver help by a new WLAN_STA_PS_DRIVER\nper-station flag that can be controlled by the\ndriver and tells mac80211 whether it can transmit\nframes or not. This flag must be set according to\nvery specific rules outlined in the documentation\nfor the function that controls it.\n\nWhen we buffer new frames for the station, we\nnormally set the TIM bit right away, but while\nthe driver has blocked transmission to that sta\nwe need to avoid that as well since we cannot\nrespond to the station if it wakes up due to the\nTIM bit. Once the driver unblocks, we can set\nthe TIM bit.\n\nSimilarly, when the station just wakes up, we\nneed to wait until all other frames are flushed\nbefore we can transmit frames to that station,\nso the same applies here, we need to wait for\nthe driver to give the OK.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9aa4aee30f4d155fc91abbaecfef9b3bb759699e",
      "tree": "219f55843fdc548e8def51daa8ffbdb3ae4dc180",
      "parents": [
        "86c34fe89e9cad9e1ba4d1a8bbf98259035f4caf"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Oct 29 08:43:48 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 02 15:39:41 2009 -0500"
      },
      "message": "mac80211: make CALL_TXH a statement\n\nThe multi-line code in this macro wasn\u0027t wrapped\nin do {} while (0) so we cannot use it in an if()\nbranch safely in the future -- fix that.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "62b517cb3e974624a2958ad0b603ebb59cd96e16",
      "tree": "8d1692b46c96570502c109ce56c53d005aab3020",
      "parents": [
        "c27f2fded51948edf40007f4f31350e9e0c6ba23"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Oct 29 12:19:21 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 30 16:50:39 2009 -0400"
      },
      "message": "mac80211: unconditionally set IEEE80211_TX_CTL_SEND_AFTER_DTIM\n\nWhen mac80211 is asked to buffer multicast frames\nin AP mode, it will not set the flag indicating\nthat the frames should be sent after the DTIM\nbeacon for those frames buffered in software. Fix\nthis little inconsistency by always setting that\nflag in the buffering code path.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "eddcbb94f75c3e8944503e9f13c1d29acd0d7052",
      "tree": "b5e4786dbafccea91d7ec42cb9e84af655414aca",
      "parents": [
        "750266646befe42ee8a3a9f9b6f692174635c5b8"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Oct 29 08:30:35 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 30 16:50:39 2009 -0400"
      },
      "message": "mac80211: introduce ieee80211_beacon_get_tim()\n\nCompared to ieee80211_beacon_get(), the new function\nieee80211_beacon_get_tim() returns information on the\nlocation and length of the TIM IE, which some drivers\nneed in order to generate the TIM on the device. The\nold function, ieee80211_beacon_get(), becomes a small\nstatic inline wrapper around the new one to not break\nall drivers.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a9685338ab9d331c25ca92b0e8a92631e14c6b45",
      "tree": "3c6def8eb28a1ee93a74fcb0c6d48a9fd5d5541d",
      "parents": [
        "ed620590de15021f6baf08ca098c90f47470efd7"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@nokia.com",
        "time": "Tue Oct 27 17:36:17 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 30 16:49:18 2009 -0400"
      },
      "message": "mac80211: fix dynamic power save for devices with nullfunc support in hw\n\nIn TX path it was assumed that dynamic power save works only if\nIEEE80211_HW_PS_NULLFUNC_STACK is set. But is not the case, there are\ndevices which have nullfunc support in hardware but need mac80211\nto handle dynamic power save timers, TI\u0027s wl1251 is one of them.\n\nThe fix is to not check for IEEE80211_HW_PS_NULLFUNC_STACK in\nis_dynamic_ps_enabled(), instead check IEEE80211_HW_SUPPORTS_PS and\nIEEE80211_HW_SUPPORTS_DYNAMIC_PS flags and act accordingly.\n\nTested with wl1251.\n\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ed620590de15021f6baf08ca098c90f47470efd7",
      "tree": "2d04e564a1b7d0559a62af1c652c49e09bd807ec",
      "parents": [
        "7bcfaf2f431c09c51fe776fc06638b25d3b421c5"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@nokia.com",
        "time": "Tue Oct 27 17:36:09 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 30 16:49:18 2009 -0400"
      },
      "message": "mac80211: refactor dynamic power save check\n\nRefactor dynamic power save checks to a function of it\u0027s own for better\nreadibility. No functional changes.\n\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9b1ce526eb917c8b5c8497c327768130ee683392",
      "tree": "dcd6dff3083e293d5ec8045f79c0e14f8640c583",
      "parents": [
        "d18ba452d7de12a22bd01a0a00e5b836eb0f4198"
      ],
      "author": {
        "name": "Björn Smedman",
        "email": "bjorn.smedman@venatech.se",
        "time": "Sat Oct 24 20:55:09 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Oct 27 16:29:48 2009 -0400"
      },
      "message": "mac80211: fix for incorrect sequence number on hostapd injected frames\n\nWhen hostapd injects a frame, e.g. an authentication or association\nresponse, mac80211 looks for a suitable access point virtual interface\nto associate the frame with based on its source address. This makes it\npossible e.g. to correctly assign sequence numbers to the frames.\n\nA small typo in the ethernet address comparison statement caused a\nfailure to find a suitable ap interface. Sequence numbers on such\nframes where therefore left unassigned causing some clients\n(especially windows-based 11b/g clients) to reject them and fail to\nauthenticate or associate with the access point. This patch fixes the\ntypo in the address comparison statement.\n\nSigned-off-by: Björn Smedman \u003cbjorn.smedman@venatech.se\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "fbc44bf7177dfd61381da55405550b693943a432",
      "tree": "9869e534f828dd3377cffd2917dfdb6cc72023d3",
      "parents": [
        "727c988593271599c9e5943699426afcce1a62d6"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Oct 01 22:06:29 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 07 16:33:49 2009 -0400"
      },
      "message": "mac80211: fix vlan and optimise RX\n\nWhen receiving data frames, we can send them only to\nthe interface they belong to based on transmitting\nstation (this doesn\u0027t work for probe requests). Also,\ndon\u0027t try to handle other frames for AP_VLAN at all\nsince those interface should only receive data.\n\nAdditionally, the transmit side must check that the\nstation we\u0027re sending a frame to is actually on the\ninterface we\u0027re transmitting on, and not transmit\npackets to functions that live on other interfaces,\nso validate that as well.\n\nAnother bug fix is needed in sta_info.c where in the\nVLAN case when adding/removing stations we overwrite\nthe sdata variable we still need.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1f08e84ff642294e42d138442a388989ffb20865",
      "tree": "b976fa8bba1e54d9361452c4f4da18e6bd9a227a",
      "parents": [
        "eb1cf0f8f7a9e5a6d573d5bd72c015686a042db0"
      ],
      "author": {
        "name": "Igor Perminov",
        "email": "igor.perminov@inbox.ru",
        "time": "Tue Sep 22 00:25:44 2009 +0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Sep 29 17:25:15 2009 -0400"
      },
      "message": "mac80211: Fix [re]association power saving issue on AP side\n\nConsider the following step-by step:\n1. A STA authenticates and associates with the AP and exchanges\ntraffic.\n2. The STA reports to the AP that it is going to PS state.\n3. Some time later the STA device goes to the stand-by mode (not only\nits wi-fi card, but the device itself) and drops the association state\nwithout sending a disassociation frame.\n4. The STA device wakes up and begins authentication with an\nAuth frame as it hasn\u0027t been authenticated/associated previously.\n\nAt the step 4 the AP \"remembers\" the STA and considers it is still in\nthe PS state, so the AP buffers frames, which it has to send to the STA.\nBut the STA isn\u0027t actually in the PS state and so it neither checks\nTIM bits nor reports to the AP that it isn\u0027t power saving.\nBecause of that authentication/[re]association fails.\n\nTo fix authentication/[re]association stage of this issue, Auth, Assoc\nResp and Reassoc Resp frames are transmitted disregarding of STA\u0027s power\nsaving state.\n\nN.B. This patch doesn\u0027t fix further data frame exchange after\nauthentication/[re]association. A patch in hostapd is required to fix\nthat.\n\nSigned-off-by: Igor Perminov \u003cigor.perminov@inbox.ru\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d0cf9c0dadcdc89a755bcb301cfc9c796eb28ccf",
      "tree": "c201ed345e104100288d57c8b3ae46d486b56118",
      "parents": [
        "0fc480987e69f22b9212f087545b4d1ca6950807"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:57 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:14:04 2009 -0700"
      },
      "message": "wireless: convert drivers to netdev_tx_t\n\nMostly just simple conversions:\n  * ray_cs had bogus return of NET_TX_LOCKED but driver\n    was not using NETIF_F_LLTX\n  * hostap and ipw2x00 had some code that returned value\n    from a called function that also had to change to return netdev_tx_t\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cca89496a8afe4ad12ce1e468e60cef1e27e4eee",
      "tree": "5dc3fc6541e2afaf66b500a922844d37dad89826",
      "parents": [
        "1fe90b033e04d7402b3deb392420fe2ff57986a5"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Mon Aug 10 17:29:29 2009 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 14 09:14:03 2009 -0400"
      },
      "message": "mac80211: Fix unresolved mesh frames queued without valid control.vif\n\nMesh frames that could not be immediately resolved were queued with a NULL\ninfo-\u003econtrol.vif.  This patch moves the call to mesh_nexthop_lookup closer to\nthe point where it is handed over to ieee80211_tx().  This ensures that the\nunresolved frames are ready to be sent once the path is resolved.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3c5772a5279de9eadfff7adb5ddea08106495fff",
      "tree": "297772521c18283ccfa19aacb090f396fa2b399e",
      "parents": [
        "a9e3091bf08ddea35f172549a8a21d5bd6ee6129"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Mon Aug 10 12:15:48 2009 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 14 09:14:00 2009 -0400"
      },
      "message": "mac80211: Use 3-address format for mesh broadcast frames.\n\nThe 11s task group recently changed the frame mesh multicast/broadcast frame\nformat to use 3-address.  This was done to avoid interactions with widely\ndeployed lazy-WDS access points.\n\nThis patch changes the format of group addressed frames, both mesh-originated\nand proxied, to use the data format defined in draft D2.08 and forward.  The\naddress fields used for group addressed frames is:\n\nIn 802.11 header\n ToDS:0  FromDS:1\n addr1: DA  (broadcast/multicast address)\n addr2: TA\n addr3: Mesh SA\n\nIn address extension header:\n addr4: SA  (only present if frame was proxied)\n\nNote that this change breaks backward compatibility with earlier mesh stack\nversions.\n\nSigned-off-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "62b1208e146af048e90a32bc4fe5fba85e4fa51e",
      "tree": "f6235e854de44dda3d0bf3d6af38617e55d0b5da",
      "parents": [
        "d0b69609dc50b6bf2637cf74e6f97c251adc65ed"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Aug 10 16:04:15 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 14 09:13:58 2009 -0400"
      },
      "message": "mac80211: small tx code cleanup\n\nIt\u0027s really easier to read if it\u0027s not indented\nas much, so invert the condition and rearrange\nthe code so the smaller chunk is indented instead.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d0b69609dc50b6bf2637cf74e6f97c251adc65ed",
      "tree": "b834227a9d1e9fe1083164cff5891547139e8139",
      "parents": [
        "feff1f2fea3fc7ee055e46d0fbdb2d25ad2b14c4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Aug 10 16:02:40 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 14 09:13:57 2009 -0400"
      },
      "message": "mac80211: sequence number micro-optimisation\n\nThere\u0027s no need to mask the variable with 0xFFF0\nsince we ever only use it as a u16 and the lowest\nfour bits can\u0027t ever be non-zero. The compiler\ncannot infer the latter, and therefore has to emit\ncode to do the masking.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "feff1f2fea3fc7ee055e46d0fbdb2d25ad2b14c4",
      "tree": "58cfb7fc4e89db0a75fbcd7d61cac0267c0a9856",
      "parents": [
        "5e68ff6563ef79d87296c70f8eb2bee454d3fe75"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Aug 10 16:01:54 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 14 09:13:57 2009 -0400"
      },
      "message": "mac80211: take statistics before encryption\n\nWhen encryption is used, the number of bytes\nsent to the peer increases by the IV and ICV.\nThis is accounted if software encryption is\nused, but not if the devices does hardware\nencryption. To make the numbers comparable,\nnever account for that overhead.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ad5351db89681515681c5d5659ddf4c69e3cc6f5",
      "tree": "3c77642d10862aa9eea9c9366090941c18b69ac3",
      "parents": [
        "ab5b5342fd0ba5b9a2f58a94c5d41dd074b7c48e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Aug 07 16:42:15 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 14 09:13:44 2009 -0400"
      },
      "message": "mac80211: allow DMA optimisation\n\nIf we have a lot of frames to transmit at once, for\ninstance with fragmentation, it can be an optimisation\nto only tell the DMA engine about them on the last\nfragment/frame to avoid banging the IO too much. This\npatch allows implementation such an optimisation by\ntelling the driver when more frames can be expected.\n\nCurrently, this is used by mac80211 only on fragmented\nframes, but could also be used in the future on other\nframes when the queue was full and there are multiple\nframes pending.\n\nNote that drivers need to be careful when using this\nflag, they need to kick their DMA engines not just\nwhen this flag is clear, but also when the queue gets\nfull so that progress can be made.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    }
  ],
  "next": "42935ecaf4e784d0815afa9a7e5fe7e141157ca3"
}
