)]}'
{
  "log": [
    {
      "commit": "95acac61ba66c4abd40e038dae8c1ed2e176c7b1",
      "tree": "8a1737bc3a2ca8af0031e1c2cda07608965ad282",
      "parents": [
        "2fcf282471f04f465d0368e46e973e01504292b3"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Jul 12 12:30:59 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jul 13 14:49:43 2011 -0400"
      },
      "message": "mac80211: allow driver to disconnect after resume\n\nIn WoWLAN, devices may use crypto keys for TX/RX\nand could also implement GTK rekeying. If the\ndriver isn\u0027t able to retrieve replay counters and\nsimilar information from the device upon resume,\nor if the device isn\u0027t responsive due to platform\nissues, it isn\u0027t safe to keep the connection up\nas GTK rekey messages from during the sleep time\ncould be replayed against it.\n\nThe only protection against that is disconnecting\nfrom the AP. Modifying mac80211 to do that while\nit is resuming would be very complex and invasive\nin the case that the driver requires a reconfig,\nso do it after it has resumed completely. In that\ncase, however, packets might be replayed since it\ncan then only happen after TX/RX are up again, so\nmark keys for interfaces that need to disconnect\nas \"tainted\" and drop all packets that are sent\nor received with those keys.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3bff1865186c6bb97855f0c13e3850543dce9cef",
      "tree": "4a9150f82cbb83a01f8fb82b3bf2d69028230928",
      "parents": [
        "252e735d64880b011f6cdeb41ebcac2eaeb58fd3"
      ],
      "author": {
        "name": "Yogesh Ashok Powar",
        "email": "yogeshp@marvell.com",
        "time": "Tue Jun 28 18:41:37 2011 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jul 05 15:26:50 2011 -0400"
      },
      "message": "mac80211: Skip tailroom reservation for full HW-crypto devices with race fix\n\nBased on inputs from Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nfrom http://article.gmane.org/gmane.linux.kernel.wireless.general/68193\nand http://article.gmane.org/gmane.linux.kernel.wireless.general/71702\n\nIn xmit path, devices that do full hardware crypto (including\nMMIC and ICV) need no tailroom. For such devices, tailroom\nreservation can be skipped if all the keys are programmed into\nthe hardware (i.e software crypto is not used for any of the\nkeys) and none of the keys wants software to generate Michael\nMIC and IV.\n\nv2: Added check for IV along with MMIC.\nReported-by: Fabio Rossi \u003crossi.f@inwind.it\u003e\nTested-by: Fabio Rossi \u003crossi.f@inwind.it\u003e\nSigned-off-by: Mohammed Shafi Shajakhan \u003cmshajakhan@atheros.com\u003e\nCc: Mohammed Shafi Shajakhan \u003cmshajakhan@atheros.com\u003e\n\nv3: Fixing races to avoid WARNING: at net/mac80211/wpa.c:397\n    ccmp_encrypt_skb+0xc4/0x1f0\nReported-by: Andreas Hartmann \u003candihartmann@01019freenet.de\u003e\nTested-by: Andreas Hartmann \u003candihartmann@01019freenet.de\u003e\n\nv4: Added links with message ID\n\nSigned-off-by: Yogesh Ashok Powar \u003cyogeshp@marvell.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ab6a44ce1da48d35fe7ec95fa068aa617bd7e8dd",
      "tree": "fa8cc877e369e5da15a6daead490d3a87f15909f",
      "parents": [
        "d2ac49fe3c7c4730323c1042fb53a2e008643b6a"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 06 14:35:27 2011 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 06 15:23:53 2011 -0400"
      },
      "message": "Revert \"mac80211: Skip tailroom reservation for full HW-crypto devices\"\n\nThis reverts commit aac6af5534fade2b18682a0b9efad1a6c04c34c6.\n\nConflicts:\n\n\tnet/mac80211/key.c\n\nThat commit has a race that causes a warning, as documented in the thread\nhere:\n\n\thttp://marc.info/?l\u003dlinux-wireless\u0026m\u003d130717684914101\u0026w\u003d2\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9cbc94eabb0791906051bbfac024ef2c2be8e079",
      "tree": "41ba194e687c6c60f5c883f98737ac83257d0c00",
      "parents": [
        "1d1652cbdb9885e4d73972263e4cdbe1b0beebfe",
        "7cc31a9ae1477abc79d5992b3afe889f25c50c99"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 17 17:33:11 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 17 17:33:11 2011 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/vmxnet3/vmxnet3_ethtool.c\n\tnet/core/dev.c\n"
    },
    {
      "commit": "40b275b69ee660274b77fb612b0db31fd282fc3f",
      "tree": "29a4f82a44a12edcf9db5de6a3c6df9615a5799e",
      "parents": [
        "ec034b208dc8aa5dc73ec46c3f27e34c5efbf113"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri May 13 14:15:49 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon May 16 14:10:41 2011 -0400"
      },
      "message": "mac80211: sparse RCU annotations\n\nThis adds sparse RCU annotations to most of\nmac80211, only the mesh code remains to be\ndone.\n\nDue the the previous patches, the annotations\nare pretty simple. The only thing that this\nactually changes is removing the RCU usage of\nkey-\u003esta in debugfs since this pointer isn\u0027t\nactually an RCU-managed pointer (it only has\na single assignment done before the key even\ngoes live). As that is otherwise harmless, I\ndecided to make it part of this patch.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "28104cae63708d1790cd71db8a45af50d5ea5a92",
      "tree": "035b490c6db1cf1f17e38adf66aab103540ff735",
      "parents": [
        "9b84b80891e5e25ae21c855bb135b05274125a29"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Tue May 03 16:57:17 2011 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed May 11 14:50:35 2011 -0400"
      },
      "message": "mac80211: Move call to mpp_path_lookup inside RCU-read section\n\nPROVE_RCU caught that one:\n\n[  431.214070] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  431.215341] [ INFO: suspicious rcu_dereference_check() usage. ]\n[  431.215674] ---------------------------------------------------\n[  431.216043] net/mac80211/mesh_pathtbl.c:184 invoked\nrcu_dereference_check() without protection!\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5db1c07ced19b2eec3a149a3c624d88e02e246ae",
      "tree": "873165bf02bfdbb5822fe6e9a5f0ba96dd70f2db",
      "parents": [
        "16b345d89686ca0482a9ca741a1167def1abdd7f"
      ],
      "author": {
        "name": "Luciano Coelho",
        "email": "coelho@ti.com",
        "time": "Tue May 03 21:40:08 2011 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue May 10 15:35:43 2011 -0400"
      },
      "message": "mac80211: don\u0027t start the dynamic ps timer if not associated\n\nWhen we are disconnecting, we set PS off, but this happens before we\nsend the deauth/disassoc request.  When the deauth/disassoc frames are\nsent, we trigger the dynamic ps timer, which then times out and turns\nPS back on.  Thus, PS remains on after disconnecting, causing problems\nwhen associating again.\n\nThis can be fixed by preventing the timer to start when we\u0027re not\nassociated anymore.\n\nSigned-off-by: Luciano Coelho \u003ccoelho@ti.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4c468fe559f7910b1c6b10d3d223943fdd1b653c",
      "tree": "fb7293c13da3fa79d2472aa2adff8c4341a6e6e3",
      "parents": [
        "cbe8c735f1af88037c3dab570f816e3a77896cc7"
      ],
      "author": {
        "name": "Arik Nemtsov",
        "email": "arik@wizery.com",
        "time": "Tue May 03 11:53:07 2011 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu May 05 14:59:06 2011 -0400"
      },
      "message": "mac80211: set TID of internal mgmt packets to 7\n\nThe queue mapping of internal mgmt packets is set to VO. Set the TID\nvalue to match the queue mapping. Otherwise drivers that only look at\nthe TID might get confused.\n\nSigned-off-by: Arik Nemtsov \u003carik@wizery.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "aac6af5534fade2b18682a0b9efad1a6c04c34c6",
      "tree": "786840d7b3dc0ea942e91075ffe6f2cf5ba9d5d9",
      "parents": [
        "e2186b7c25ef9cdb6d631c8dd6a672f41abe22d5"
      ],
      "author": {
        "name": "Yogesh Ashok Powar",
        "email": "yogeshp@marvell.com",
        "time": "Wed Apr 27 18:40:29 2011 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Apr 28 14:53:21 2011 -0400"
      },
      "message": "mac80211: Skip tailroom reservation for full HW-crypto devices\n\nIn xmit path, devices that do full hardware crypto (including\nTKIP MMIC) need no tailroom. For such devices, tailroom\nreservation can be skipped if all the keys are programmed into\nthe hardware (i.e software crypto is not used for any of the\nkeys) and none of the keys wants software to generate Michael\nMIC.\n\nSigned-off-by: Yogesh Ashok Powar \u003cyogeshp@marvell.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0915cba394268e68b6a8242b15f8c7283453df43",
      "tree": "184498cf778c3feefd6b78d2856f082135e14f04",
      "parents": [
        "334df731976ee4042c9bf18b2eec9c0a71f45389"
      ],
      "author": {
        "name": "Rajkumar Manoharan",
        "email": "rmanoharan@atheros.com",
        "time": "Mon Apr 25 15:56:17 2011 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 26 15:50:31 2011 -0400"
      },
      "message": "mac80211: Fix warnings due to -Wunused-but-set-variable\n\nThese warnings are exposed by gcc 4.6.\nnet/mac80211/sta_info.c: In function \u0027sta_info_cleanup_expire_buffered\u0027:\nnet/mac80211/sta_info.c:590:32: warning: variable \u0027sdata\u0027 set but not used\nnet/mac80211/ibss.c: In function \u0027ieee80211_rx_mgmt_auth_ibss\u0027:\nnet/mac80211/ibss.c:43:34: warning: variable \u0027status_code\u0027 set but not used\nnet/mac80211/work.c: In function \u0027ieee80211_send_assoc\u0027:\nnet/mac80211/work.c:203:9: warning: variable \u0027len\u0027 set but not used\nnet/mac80211/tx.c: In function \u0027__ieee80211_parse_tx_radiotap\u0027:\nnet/mac80211/tx.c:1039:35: warning: variable \u0027sband\u0027 set but not used\nnet/mac80211/mesh.c: In function \u0027ieee80211_mesh_rx_queued_mgmt\u0027:\nnet/mac80211/mesh.c:616:28: warning: variable \u0027ifmsh\u0027 set but not used\n ...\n\nSigned-off-by: Rajkumar Manoharan \u003crmanoharan@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "581a8b0feeed8877aab3a8ca4c972419790cd07f",
      "tree": "36ef0e86b367e0abeb0a50fbf59840f125efdbc7",
      "parents": [
        "a22e93f5d819f11d2a2d6332e20ff5b462e5c208"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Thu Apr 07 15:08:27 2011 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 12 16:57:37 2011 -0400"
      },
      "message": "nl80211: rename NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE\n\nTo NL80211_MESH_SETUP_IE. This reflects our ability to insert any ie\ninto a mesh beacon, not simply path selection ies.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e16b396ce314b2bcdfe6c173fe075bf8e3432368",
      "tree": "640f0f56f2ea676647af4eb42d32fa56be2ee549",
      "parents": [
        "7fd23a24717a327a66f3c32d11a20a2f169c824f",
        "e6e8dd5055a974935af1398c8648d4a9359b0ecb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)\n  doc: CONFIG_UNEVICTABLE_LRU doesn\u0027t exist anymore\n  Update cpuset info \u0026 webiste for cgroups\n  dcdbas: force SMI to happen when expected\n  arch/arm/Kconfig: remove one to many l\u0027s in the word.\n  asm-generic/user.h: Fix spelling in comment\n  drm: fix printk typo \u0027sracth\u0027\n  Remove one to many n\u0027s in a word\n  Documentation/filesystems/romfs.txt: fixing link to genromfs\n  drivers:scsi Change printk typo initate -\u003e initiate\n  serial, pch uart: Remove duplicate inclusion of linux/pci.h header\n  fs/eventpoll.c: fix spelling\n  mm: Fix out-of-date comments which refers non-existent functions\n  drm: Fix printk typo \u0027failled\u0027\n  coh901318.c: Change initate to initiate.\n  mbox-db5500.c Change initate to initiate.\n  edac: correct i82975x error-info reported\n  edac: correct i82975x mci initialisation\n  edac: correct commented info\n  fs: update comments to point correct document\n  target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c\n  ...\n\nTrivial conflict in fs/eventpoll.c (spelling vs addition)\n"
    },
    {
      "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": "0a9d59a2461477bd9ed143c01af9df3f8f00fa81",
      "tree": "df997d1cfb0786427a0df1fbd6f0640fa4248cf4",
      "parents": [
        "a23ce6da9677d245aa0aadc99f4197030350ab54",
        "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\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": "42b16b3fbb5ee4555f5dee6220f3ccaa6e1ebe47",
      "tree": "966c1266afca5dd0e59cace37f7cd49577bdf0e2",
      "parents": [
        "f0940cee222790e6e995a23f25c4ffb23f939a24"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Jan 17 00:09:38 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jan 19 15:43:08 2011 +0100"
      },
      "message": "Kill off warning: ‘inline’ is not at beginning of declaration\n\nFix a bunch of\n\twarning: ‘inline’ is not at beginning of declaration\nmessages when building a \u0027make allyesconfig\u0027 kernel with -Wextra.\n\nThese warnings are trivial to kill, yet rather annoying when building with\n-Wextra.\nThe more we can cut down on pointless crap like this the better (IMHO).\n\nA previous patch to do this for a \u0027allnoconfig\u0027 build has already been\nmerged. This just takes the cleanup a little further.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\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"
    }
  ],
  "next": "62b517cb3e974624a2958ad0b603ebb59cd96e16"
}
