)]}'
{
  "log": [
    {
      "commit": "339a7c41c913035bf58579f6e47b4ba29da83795",
      "tree": "ef9c696d9d73f34f75c3470c0a1997964b2256eb",
      "parents": [
        "e340a90e6e07bba6e6b3fc39dd5fa76f95579d7c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun May 04 17:59:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 04 17:59:30 2008 -0700"
      },
      "message": "mac80211: Do not free net device after it is unregistered.\n\nThe error path in ieee80211_register_hw() may call the unregister_netdev()\nand right after it - the free_netdev(), which is wrong, since the\nunregister releases the device itself.\n\nSo the proposed fix is to NULL the local-\u003emdev after unregister is done\nand check this before calling free_netdev().\n\nI checked - no code uses the local-\u003emdev after unregister in this error\npath (but even if some did this would be a BUG).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "636c5d488bc0b349e01cf5bfbf85588134af70a0",
      "tree": "c1d823f345b1b6f23cd93a3c1eb6eef0ae04ae30",
      "parents": [
        "e94e106831403d5028e7bb73c3163951134de1ba"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Apr 24 14:18:37 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 30 20:34:26 2008 -0400"
      },
      "message": "mac80211: insert WDS peer after adding interface\n\nThis reorders the open code so that WDS peer STA info entries\nare added after the corresponding interface is added to the\ndriver so that driver callbacks aren\u0027t invoked out of order.\nAlso make any master device startup fatal.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e94e106831403d5028e7bb73c3163951134de1ba",
      "tree": "9d27e03504f390a747c4ef36e6bb93e0cd2c1f8e",
      "parents": [
        "8b808bf29bdafe9270cb283ea093bb87f5a3be19"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Apr 24 14:16:36 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 30 20:34:26 2008 -0400"
      },
      "message": "mac80211: don\u0027t allow invalid WDS peer addresses\n\nRather than just disallowing the zero address, disallow all\ninvalid ones.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8b808bf29bdafe9270cb283ea093bb87f5a3be19",
      "tree": "d0f8bf9fd140fa18f1f51417a331357fbd3e0bd8",
      "parents": [
        "51ceddade0fb1e15f080b2555f3b3e1d68c6707e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Apr 23 23:35:09 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 30 20:34:26 2008 -0400"
      },
      "message": "mac80211: assign conf.beacon_control for mesh\n\nDrivers can rightfully assume that they get a beacon_control\nif the beacon is set.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b16bd15c379410f2aa47837aa4a0de5712856ad5",
      "tree": "fd391bb12b146aaf001ae169a4c98f7088299edd",
      "parents": [
        "6b914c521687ae6cb8923c7235fd69b7bc027703"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Apr 11 21:40:35 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 16 15:59:57 2008 -0400"
      },
      "message": "mac80211: fix spinlock recursion\n\nWhen STAs are expired, we need to hold the sta_lock. Using\nthe same lock for keys too would then mean we\u0027d need another\nkey free function, and that\u0027ll just lead to confusion, so just\nuse a new spinlock for all key lists.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2c8dccc77420fb7433da5674818959d3499d35be",
      "tree": "2da037732b78a4796254b485f0c591d9625b7d1e",
      "parents": [
        "3b96766f0e643f52ae19e134664df6730c737e87"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Apr 08 15:14:40 2008 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 08 16:44:45 2008 -0400"
      },
      "message": "mac80211: rename files\n\nThis patch renames all mac80211 files (except ieee80211_i.h) to get rid\nof the useless ieee80211_ prefix.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3b96766f0e643f52ae19e134664df6730c737e87",
      "tree": "b1707d94a14c9777f09b1aab33970e7741190d4c",
      "parents": [
        "7d1559f1737d5ca27b267b0392015f42b3bbe2fa"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Apr 08 17:56:52 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 08 16:44:45 2008 -0400"
      },
      "message": "mac80211: fix key vs. sta locking problems\n\nUp to now, key manipulation is supposed to run under RTNL to\navoid concurrent manipulations and also allow the set_key()\nhardware callback to sleep. This is not feasible because STA\nstructs are rcu-protected and thus a lot of operations there\ncannot take the RTNL. Also, key references are rcu-protected\nso we cannot do things atomically.\n\nThis patch changes key locking completely:\n * key operations are now atomic\n * hardware crypto offload is enabled and disabled from\n   a workqueue, due to that key freeing is also delayed\n * debugfs code is also run from a workqueue\n * keys reference STAs (and vice versa!) so during STA\n   unlink the STAs key reference is removed but not the\n   keys STA reference, to avoid races key todo work is\n   run before STA destruction.\n * fewer STA operations now need the RTNL which was\n   required due to key operations\n\nThis fixes the locking problems lockdep pointed out and also\nmakes things more light-weight because the rtnl isn\u0027t required\nas much.\n\nNote that the key todo lock/key mutex are global locks, this\nis not required, of course, they could be per-hardware instead.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "513a1025fd91008316a8e9b4803d1bfcbb2bf256",
      "tree": "8f39f9459932b1ec0da1e14b5c6d58a8d39422b6",
      "parents": [
        "8cf6a31e8d30cae1fbec8c782842f00472a4495c"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Mon Apr 07 10:16:56 2008 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 08 16:44:44 2008 -0400"
      },
      "message": "mac80211: BA session debug prints changes\n\nThis patch contains next issues:\n1 - prevents \"stop BA session\" multiple warnings\n2 - adds debug print to stop Rx BA session flow\n3 - adds EOL in one debug print\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: Reinette Chatre \u003creinette.chatre@intel.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "38668c059f5202f5fd9612391f9aa1b38a97241b",
      "tree": "bf331e19aa1a8a8586b3cc2905c284b6f6b03cbd",
      "parents": [
        "9788ba7500c3a6268ceb63296a0f37f34d450beb"
      ],
      "author": {
        "name": "Tomas Winkler",
        "email": "tomas.winkler@intel.com",
        "time": "Fri Mar 28 16:33:32 2008 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 08 15:05:56 2008 -0400"
      },
      "message": "mac80211: eliminate conf_ht\n\nThis patch eliminates the use of conf_ht, replacing it with\nbss_info_changed.\n\nSigned-off-by: Tomas Winkler \u003ctomas.winkler@intel.com\u003e\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a",
      "tree": "4e1ca325dde22f1ac21c9da0be509e87e922e604",
      "parents": [
        "c0f39322c335412339dec16ebfd2a05ceba5ebcf",
        "802fb176d8c635ae42da31b80841c26e8c7338a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/s2io.c\n"
    },
    {
      "commit": "93e5deb1ae39b56f4743955e76c72251256f23c1",
      "tree": "415d4f11449452822bdd1a97760de67ffd8c452d",
      "parents": [
        "97bff8ecf4e4e26749a67dcfbb7565d8a0f4acb4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Apr 01 15:21:00 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 01 17:14:10 2008 -0400"
      },
      "message": "mac80211: automatically free sta struct when insertion fails\n\nWhen STA structure insertion fails, it has been allocated but isn\u0027t\nreally alive yet, it isn\u0027t reachable by any other code and also can\u0027t\nyet have much configured. This patch changes the code so that when\nthe insertion fails, the resulting STA pointer is no longer valid\nbecause it is freed.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "64f851e410ae37a0990212ae34f0c96b641478f7",
      "tree": "6ff8af643731d195b1d9439f77b4168f53fe0c62",
      "parents": [
        "f83f1768f833cb45bc93429fdc552252a4f55ac3"
      ],
      "author": {
        "name": "Jan Niehusmann",
        "email": "jan@gondor.com",
        "time": "Sun Mar 23 20:23:56 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Apr 01 15:44:07 2008 -0400"
      },
      "message": "mac80211: trigger ieee80211_sta_work after opening interface\n\nieee80211_sta_work is disabled while network interface\nis down. Therefore, if you configure wireless parameters\nbefore bringing the interface up, these configurations are\nnot yet effective and association fails.\n\nA workaround from userspace is calling a command like\n\u0027iwconfig wlan0 ap any\u0027 after the interface is brought up.\n\nTo fix this behaviour, trigger execution of ieee80211_sta_work from\nieee80211_open when in STA or IBSS mode.\n\nSigned-off-by: Jan Niehusmann \u003cjan@gondor.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "cee24a3e580f1062c8bb8b1692b95014d882bc7d",
      "tree": "e7df5e0f987a817ff0c9b14142a4efc583d39fa2",
      "parents": [
        "6c507cd0400cb51dd2ee251c1b8756b9375a1128"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Wed Mar 26 20:36:03 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 27 16:03:20 2008 -0400"
      },
      "message": "mac80211: A-MPDU MLME use dynamic allocation\n\nThis patch alters the A-MPDU MLME in sta_info to use dynamic allocation,\nthus drastically improving memory usage - from a constant ~2 Kbyte in\nthe previous (static) allocation to a lower limit of ~200 Byte and an upper\nlimit of ~2 Kbyte.\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: Tomas Winkler \u003ctomas.winkler@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "85249e5fab13edb89258fa6d551cd4a3a4f0d569",
      "tree": "793767bc2d889127b2713fefa440aa3928a305d6",
      "parents": [
        "7b9d44cd6b393cb1032ce201307ae87e5677bfa7"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Tue Mar 18 15:00:32 2008 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Mar 25 16:41:57 2008 -0400"
      },
      "message": "mac80211: tear down of block ack sessions\n\nThis patch adds a clean tear down for all block ack sessions if interface\ngoes down or if a deauthentication is done.\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: Tomas Winkler \u003ctomas.winkler@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d9357136ac4729f589543afb6b1d17d443ae4f71",
      "tree": "00d7e5966faec86f820713136b196821b5e622bd",
      "parents": [
        "7524d7d6de5d5d3f081de8cf5479819fad339661"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Mar 04 15:26:15 2008 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 13 16:02:31 2008 -0400"
      },
      "message": "the scheduled rc80211-simple.c removal\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "44213b5e13c907bf4aa2e73941944f90184c8772",
      "tree": "db680fc6b4913b072a8f85cf0fac622aea2edb5d",
      "parents": [
        "693b1bbcc47b3fd436068f294147357f90cd1296"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Feb 25 16:27:49 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 06 15:30:47 2008 -0500"
      },
      "message": "mac80211: remove STA entries when taking down interface\n\nWhen we take down an interface, we need to remove the STA info\nitems that belong to it because otherwise we might invoke a\nsta_notify() callback in the driver when we later delete the\nSTA entries, but in that case the driver will already have\nremoved its knowledge of the interface they belonged to leading\nto confusion. Also, we could invoke the set_tim() callback after\nthe driver removed its knowledge of the interface, which can\nlead to a crash if it requests a beacon with a then-invalid vif\npointer!\n\nA side effect of this patch is that, because it was easier, it\ndisallows changing the WDS peer while an interface is up. Should\nthat actually be necessary, it can be added back, but the WDS\npeer STA entry may not be added while the interface is UP so for\nnow I\u0027ve simplified the WDS peer\u0027s STA entry lifetime management.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "73651ee6396c499ccb59ebc84c9274db01ed026d",
      "tree": "1d59027cbdaec732f3e1378770cbf7b42b48cd70",
      "parents": [
        "d0709a65181beb787ef3f58cfe45536a2bb254c8"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Feb 25 16:27:47 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 06 15:30:47 2008 -0500"
      },
      "message": "mac80211: split sta_info_add\n\nsta_info_add() has two functions: allocating a station info\nstructure and inserting it into the hash table/list. Splitting\nthese two functions allows allocating with GFP_KERNEL in many\nplaces instead of GFP_ATOMIC which is now required by the RCU\nprotection. Additionally, in many places RCU protection is now\nno longer needed at all because between sta_info_alloc() and\nsta_info_insert() the caller owns the structure.\n\nThis fixes a few race conditions with setting initial flags\nand similar, but not all (see comments in ieee80211_sta.c and\ncfg.c). More documentation on the existing races will be in\na follow-up patch.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d0709a65181beb787ef3f58cfe45536a2bb254c8",
      "tree": "29e5f36583b0e0a3f11b291347e57672eab41dad",
      "parents": [
        "5cf121c3cdb955583bf0c5d28c992b7968a4aa1a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Feb 25 16:27:46 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 06 15:30:46 2008 -0500"
      },
      "message": "mac80211: RCU-ify STA info structure access\n\nThis makes access to the STA hash table/list use RCU to protect\nagainst freeing of items. However, it\u0027s not a true RCU, the\ncopy step is missing: whenever somebody changes a STA item it\nis simply updated. This is an existing race condition that is\nnow somewhat understandable.\n\nThis patch also fixes the race key freeing vs. STA destruction\nby making sure that sta_info_destroy() is always called under\nRTNL and frees the key.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "902acc7896d7649fb30e4b22bd4e643c7f34b02c",
      "tree": "8d8f2838fead8417e16e801383ddb2691a89719f",
      "parents": [
        "f7a921443740d7dafc65b17aa32531730d358f50"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sat Feb 23 15:17:19 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 06 15:30:42 2008 -0500"
      },
      "message": "mac80211: clean up mesh code\n\nVarious cleanups, reducing the #ifdef mess and other things.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f7a921443740d7dafc65b17aa32531730d358f50",
      "tree": "0629d16849547d50b4d37b1669841f57ee4a8700",
      "parents": [
        "c5dd9c2bd0b2422dbcd57fe8158d1d7d36c07dd9"
      ],
      "author": {
        "name": "Luis Carlos Cobo",
        "email": "luisca@cozybit.com",
        "time": "Sat Feb 23 15:17:18 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 06 15:30:42 2008 -0500"
      },
      "message": "mac80211: complete the mesh (interface handling) code\n\nThis completes the mesh interface handling code and a few other\nbits about the mac80211 module.\n\nSigned-off-by: Luis Carlos Cobo \u003cluisca@cozybit.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ee3858551ae6d044578f598f8001db5f1a9fd52e",
      "tree": "5a9b61aecccb65210e29850c34801f3cfe6259a9",
      "parents": [
        "33b64eb2b1b1759cbdafbe5c59df652f1e7c746e"
      ],
      "author": {
        "name": "Luis Carlos Cobo",
        "email": "luisca@cozybit.com",
        "time": "Sat Feb 23 15:17:11 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 06 15:30:41 2008 -0500"
      },
      "message": "mac80211: mesh data structures and first mesh changes\n\nIncludes integration in struct sta_info of mesh peer link elements, previously\non their own mesh peer link table.\n\nSigned-off-by: Luis Carlos Cobo \u003cluisca@cozybit.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "6032f934c818e5c3435c9f17274fe1983f53c6b4",
      "tree": "c095cb07ffb67dd81df0d4d0573e060e132fe082",
      "parents": [
        "2ec600d672e74488f8d1acf67a0a2baed222564c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sat Feb 23 15:17:07 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Mar 06 15:30:41 2008 -0500"
      },
      "message": "mac80211: add mesh interface type\n\nThis adds the mesh interface type.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "665e8aafb4e0826caec9db25617b186ea3f3ec91",
      "tree": "156b30cba36776dfd13752f8f51445e3ea11c852",
      "parents": [
        "43ba7e958f2ca05e4e9171a15402288419289d71"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Feb 21 01:10:07 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:41:36 2008 -0500"
      },
      "message": "mac80211: Disallow concurrent IBSS/STA mode interfaces\n\nDisallow having more than one IBSS interface up at any time\nbecause of beacon distribution issues, and for now also disallow\nhaving more than one IBSS/STA interface up at the same time\nbecause we use the master interface\u0027s BSS struct which would\nbe completely corrupted when we have more than one up.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "43ba7e958f2ca05e4e9171a15402288419289d71",
      "tree": "15b7a04a7db402dd286f83cc56c21b336189da09",
      "parents": [
        "d46e144b65bf053b25d134ec9f52a38e63e04bb4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Feb 21 14:09:30 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:41:34 2008 -0500"
      },
      "message": "mac80211: atomically check whether STA exists already\n\nWhen a STA structure is added, it is often checked whether it\nalready exists before adding it. This, however, isn\u0027t done\natomically so there is a race condition that could lead to two\nSTA structures being added with the same MAC address. This\npatch changes sta_info_add() to return an ERR_PTR in case\nof failure and adds the failure mode -EEXIST when the STA\nalready exists.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Luis Carlos Cobo \u003cluisca@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d46e144b65bf053b25d134ec9f52a38e63e04bb4",
      "tree": "95a3e4ea7660511375f71c54335045a5d1441b1a",
      "parents": [
        "d97cf01576e1867d26b5c8de360380f815a1b7df"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Feb 20 23:59:33 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:41:32 2008 -0500"
      },
      "message": "mac80211: rework TX filtered frame code\n\nThis reworks the code for TX filtered frames, splitting it out to\na new function to handle those cases, making the clear instruction\na flag and renaming a few things to be easier to understand and\nless Atheros hardware specific. Finally, it also makes the comments\nexplain more.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "96d510566e4908f77f03ff1436c78ae7162a17d0",
      "tree": "76b9abb66bcaf870a3ec4ee71e00f20d668e712b",
      "parents": [
        "4688be308f35f1e0099140a179d95c5e63b2319d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Feb 08 09:48:13 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:37:06 2008 -0500"
      },
      "message": "mac80211: defer master netdev allocation to ieee80211_register_hw\n\nWhen we want to go multiqueue, we will need to know the number of\nqueues the hardware has for registering the master netdev. This\nnumber is only available in ieee80211_register_hw() rather than\nieee80211_alloc_hw(), so defer allocation of the master device to\nieee80211_register_hw().\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3d30d949cf3f9763393f3457721bca3ac2426e42",
      "tree": "d80d1490f8a5263d74b4ed105835a7ef21eb6b80",
      "parents": [
        "8944b79fe9b1fe249c599e7e51f1bfad539aab6d"
      ],
      "author": {
        "name": "Michael Wu",
        "email": "flamingice@sourmilk.net",
        "time": "Thu Jan 31 19:48:27 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:37:03 2008 -0500"
      },
      "message": "mac80211: Add cooked monitor mode support\n\nThis adds \"cooked\" monitor mode to mac80211. A monitor interface\nin \"cooked\" mode will see all frames that mac80211 has not used\ninternally.\n\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "589052904a60f00dd2cbc1d3488ee3f520a7de21",
      "tree": "7fa7c83895b38ae84ec12ff035862bb3291952d9",
      "parents": [
        "2c9745e5684ad75d02020bcaa31ab6d4b498e1e1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Jan 31 19:48:25 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:37:03 2008 -0500"
      },
      "message": "mac80211: remove \"dynamic\" RX/TX handlers\n\nIt doesn\u0027t really make sense to have extra pointers to the RX/TX\nhandler arrays instead of just using the arrays directly, that\nalso allows us to make them static.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8cc9a73914b07b5908d8a59320f4557fc9639f2e",
      "tree": "34ad48b7fa4078c04bd83a45e7cef75b0f49176a",
      "parents": [
        "66f7ac50ed7cc5c19a62bc97e8f6e7891004a03a"
      ],
      "author": {
        "name": "Michael Wu",
        "email": "flamingice@sourmilk.net",
        "time": "Thu Jan 31 19:48:23 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:37:02 2008 -0500"
      },
      "message": "mac80211: Use monitor configuration flags\n\nTake advantage of the monitor configuration flags now provided by cfg80211.\n\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "238814fd9a9624e3076c47ef0c003101927c7818",
      "tree": "634070fcdd922cc8992ecb52147d0efc3e3cf574",
      "parents": [
        "69d464d5938ca0f4fb3447b3e32872e0ca79efc1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Jan 28 17:19:37 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:19:33 2008 -0500"
      },
      "message": "mac80211: remove port control enable switch, clean up sta flags\n\nThis patch removes the 802.1X port acess control enable flag\nsince it is not required. Instead, set the authorized flag for\neach station that we normally communicate with (WDS peers, IBSS\npeers and APs we\u0027re associated to) and require hostapd to set\nthe authorized flag for all stations when port control is not\nenabled.\n\nAlso, since I was working in that area, this documents station\nflags and removes the unused \"permanent\" one.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8318d78a44d49ac1edf2bdec7299de3617c4232e",
      "tree": "d434634418edd7399737801615d247be06616fdd",
      "parents": [
        "10b6b80145cc93887dd8aab99bfffa375e9add31"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Jan 24 19:38:38 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:19:32 2008 -0500"
      },
      "message": "cfg80211 API for channels/bitrates, mac80211 and driver conversion\n\nThis patch creates new cfg80211 wiphy API for channel and bitrate\nregistration and converts mac80211 and drivers to the new API. The\nold mac80211 API is completely ripped out. All drivers (except ath5k)\nare updated to the new API, in many cases I expect that optimisations\ncan be done.\n\nAlong with the regulatory code I\u0027ve also ripped out the\nIEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED flag, I believe it to be\nunnecessary if the hardware simply gives us whatever channels it wants\nto support and we then enable/disable them as required, which is pretty\nmuch required for travelling.\n\nAdditionally, the patch adds proper \"basic\" rate handling for STA\nmode interface, AP mode interface will have to have new API added\nto allow userspace to set the basic rate set, currently it\u0027ll be\nempty... However, the basic rate handling will need to be moved to\nthe BSS conf stuff.\n\nI do expect there to be bugs in this, especially wrt. transmit\npower handling where I\u0027m basically clueless about how it should work.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "38f3714d66b5679aee2a4fe23b1235c3829fcce4",
      "tree": "375e30764e348fd4afb4babb3a54b056e3332894",
      "parents": [
        "145de9b693943f052c2c15efbc31b2851fedb6e0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jan 29 17:07:43 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:19:21 2008 -0500"
      },
      "message": "mac80211: dissolve pre-rx handlers\n\nThese handlers do not really return a status and the compiler\ncan do a much better job when they\u0027re simply static functions\nthat it can inline if appropriate. Also makes the code shorter.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9e7234923789897858e1a475c579b5e2e6ad5b74",
      "tree": "69e97df9ff34f9237bfddee6e99100e8e16e1da1",
      "parents": [
        "eadc8d9e9047266a8914eb2ed4d36e797ce540d1"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Mon Jan 28 14:07:18 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:19:17 2008 -0500"
      },
      "message": "mac80211: A-MPDU Tx adding qdisc support\n\nThis patch allows qdisc support in A-MPDU Tx. a method to\nhandle QoS \u003c-\u003e TID switches is present in this patch.\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "eadc8d9e9047266a8914eb2ed4d36e797ce540d1",
      "tree": "d4abb405e46c279aae81f32106000090f70e9a53",
      "parents": [
        "80656c20315558a9bc5c5b7f7c6949fa72277afd"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Mon Jan 28 14:07:17 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 29 15:19:14 2008 -0500"
      },
      "message": "mac80211: A-MPDU Tx adding basic functionality\n\nThis patch adds the following abilities to mac80211:\n - start A-MPDU Tx session\n - stop A-MPDU Tx session\n - call backs to start/stop A-MPDU Tx session\n - sending addBA request\n - processing addBA response\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ceffefd15aac78841432230627308b8a382dbcfc",
      "tree": "e38604708026f2c48475651dc8d59cb8afb61d04",
      "parents": [
        "db433febbadaf1fa9862fb5068b119be1d312d76"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Sun Feb 10 14:16:52 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 15 13:44:19 2008 -0500"
      },
      "message": "mac80211: Fix initial hardware configuration\n\nOn the initial device-open we need to defer the hardware reconfiguration\nafter we incremented the open_count, because the hw_config checks this flag\nand won\u0027t call the lowlevel driver in case it is zero.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3eadf5f4f635ed6a6cd921195c320d58b5f9a185",
      "tree": "c784b178435b8554bc570a106a78577bb28c443a",
      "parents": [
        "f0b9205cfb77d992e8c0f727de3099159c80dbbd"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Jan 31 19:33:53 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 01 16:15:40 2008 -0500"
      },
      "message": "mac80211: fix initialisation error path\n\nThe error handling in ieee80211_init() is broken when any of\nthe built-in rate control algorithms fail to initialise, fix\nit and rename the error labels.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5b3d71d90ec554a2b145db7fcb245e64bf28dda7",
      "tree": "66e42f78b2a8e865cdd089fd6040c49d789ec481",
      "parents": [
        "0f7054e32fab251af5cab116da0ef6624a1a0c8b"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Sun Jan 13 18:21:58 2008 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:10:09 2008 -0800"
      },
      "message": "mac80211: A-MPDU Rx stop aggregation on proper dev\n\nThis patch adds a check to insure that Rx A-MPDU will be stopped only\nfor the proper device.\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "471b3efdfccc257591331724145f8ccf8b3217e1",
      "tree": "c9e576442c7b62c8c667ae1046e560323f0821fd",
      "parents": [
        "2bc454b0b30b3645d114689b64321cb49be99923"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Dec 28 14:32:58 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:09:43 2008 -0800"
      },
      "message": "mac80211: add unified BSS configuration\n\nThis patch (based on Ron Rindjunsky\u0027s) creates a framework for\na unified way to pass BSS configuration to drivers that require\nthe information, e.g. for implementing power save mode.\n\nThis patch introduces new ieee80211_bss_conf structure that is\npassed to the driver via the new bss_info_changed() callback\nwhen the BSS configuration changes.\n\nThis new BSS configuration infrastructure adds the following\nnew features:\n * drivers are notified of their association AID\n * drivers are notified of association status\n\nand replaces the erp_ie_changed() callback. The patch also does\nthe relevant driver updates for the latter change.\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5dfdaf58d61f06a458529430c24b1191ea4d1a27",
      "tree": "bd3fac57f66e80bf2a31d253af19093f4020ba79",
      "parents": [
        "51fb61e76d952e6bc2fbdd9f0d38425fbab1cf31"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 19 02:03:33 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:09:38 2008 -0800"
      },
      "message": "mac80211: add beacon configuration via cfg80211\n\nThis patch implements the cfg80211 hooks for configuring beaconing\non an access point interface in mac80211. While doing so, it fixes\na number of races that could badly crash the machine when the\nbeacon is changed while being requested by the driver.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "51fb61e76d952e6bc2fbdd9f0d38425fbab1cf31",
      "tree": "09618b395aae1b91fbc8dec7ea9397a9654a9f0f",
      "parents": [
        "32bfd35d4b63bd63de4bb0d791ef049c3c868726"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 19 01:31:27 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:09:37 2008 -0800"
      },
      "message": "mac80211: move interface type to vif structure\n\nDrivers that support mixed AP/STA operation may well need to\nknow the type of a virtual interface when iterating over them.\nThe easiest way to support that is to move the interface type\nvariable into the vif structure.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "32bfd35d4b63bd63de4bb0d791ef049c3c868726",
      "tree": "c1c213a35a00bcbe71a2ecc6521e19dec66cf6eb",
      "parents": [
        "f653211197f3841f383fa9757ef8ce182c6cf627"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 19 01:31:26 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:09:36 2008 -0800"
      },
      "message": "mac80211: dont use interface indices in drivers\n\nThis patch gets rid of the if_id stuff where possible in favour of\na new per-virtual-interface structure \"struct ieee80211_vif\". This\nstructure is located at the end of the per-interface structure and\ncontains a variable length driver-use data area.\n\nThis has two advantages:\n * removes the need to look up interfaces by if_id, this is better\n   for working with network namespaces and performance\n * allows drivers to store and retrieve per-interface data without\n   having to allocate own lists/hash tables\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "cdcb006fbe7a74b5f7827f5c5c27e11399a2fab7",
      "tree": "6141a5b4315775bea971d3457191071d36061822",
      "parents": [
        "df26e7ea049abe5104062f1f3e9ee7ede9d5104f"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "ivdoorn@gmail.com",
        "time": "Mon Jan 07 19:45:24 2008 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:04 2008 -0800"
      },
      "message": "mac80211: Add radio led trigger\n\nSome devices have a seperate LED which indicates if the radio is\nenabled or not. This adds a LED trigger to mac80211 where drivers\ncan hook into when they are interested in radio status changes.\n\nv2: Check hw.conf.radio_enabled when calling start().\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b475898ec9dc6e62cebcb8fc0b3495c986a4590",
      "tree": "8409a6865f3d83965228fd8f6fae3b05e1e106ed",
      "parents": [
        "688b88a4886834d7e3457711cd4feef6611d3232"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jan 02 15:17:03 2008 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:02 2008 -0800"
      },
      "message": "mac80211: better rate control algorithm selection\n\nThis patch changes mac80211\u0027s Kconfig/Makefile to:\n * select between the PID and the SIMPLE rate control\n   algorithm as default\n * always allow tri-state for the rate control algorithms,\n   building those that are selected \u0027y\u0027 into the mac80211\n   module (if that is a module, otherwise all into the kernel)\n * force the default rate control algorithm to be built into\n   mac80211\n\nIt also makes both rate control algorithms proper modules again\nwith MODULE_LICENSE etc.\n\nOnly if EMBEDDED is the user allowed to select \"NONE\" as default\nwhich will cause no algorithm to be selected, this will work\nonly when the driver brings one itself (e.g. iwlwifi drivers).\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "07db218396650933abff3c5c1ad1e2a6e0cfedeb",
      "tree": "e81672015dba20e146b2eea30aea9449f5833a44",
      "parents": [
        "5aae2880618471cfa679ca22531b88990bee9bf8"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Tue Dec 25 17:00:33 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:00:59 2008 -0800"
      },
      "message": "mac80211: A-MPDU Rx adding basic functionality\n\nThis patch adds the basic needed abilities and functions for A-MPDU Rx session\nchanged functions:\n - ieee80211_sta_process_addba_request - Rx A-MPDU initialization enabled\n - ieee80211_stop - stops all A-MPDU Rx in case interface goes down\nadded functions:\n - ieee80211_send_delba - used for sending out Del BA in A-MPDU sessions\n - ieee80211_sta_stop_rx_BA_session - stopping Rx A-MPDU session\n - sta_rx_agg_session_timer_expired - stops A-MPDU Rx use if load is too\nlow\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "678f5f7117d5780d3a51b201c9f44b7bf90f6a76",
      "tree": "ddf555061ec729e3e14eabc506d0c3b8f32f25b8",
      "parents": [
        "ce3edf6d0b979fa4d5da7204fd8c6f77f2b8622a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 19 01:31:23 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:59:46 2008 -0800"
      },
      "message": "mac80211: clean up eapol handling in TX path\n\nThe previous patch left only one user of the ieee80211_is_eapol()\nfunction and that user can be eliminated easily by introducing\na new \"frame is EAPOL\" flag to handle the frame specially (we\nalready have this information) instead of doing the (expensive)\nieee80211_is_eapol() all the time.\n\nAlso, allow unencrypted frames to be sent when they are injected.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c21b39aca4f8f4975784e54cd3a1b80bab80dcc0",
      "tree": "bcf9b8ab5ecdb77fbd7ff7e56bc6474334a5d008",
      "parents": [
        "b92edbe0b8a36a833c16b0cbafb6e899b81ffc08"
      ],
      "author": {
        "name": "Stefano Brivio",
        "email": "stefano.brivio@polimi.it",
        "time": "Wed Dec 19 01:26:16 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:59:41 2008 -0800"
      },
      "message": "mac80211: make PID rate control algorithm the default\n\nThis makes the new PID TX rate control algorithm the default instead of the\nrc80211_simple rate control algorithm. The simple algorithm was flawed in\nseveral ways: it wasn\u0027t responsive at all and didn\u0027t age the information it was\nrelying on properly. The PID algorithm allows us to tune characteristics such\nas responsiveness by adjusting parameters and was found to generally behave\nbetter.\n\nThe default algorithm can be overridden to select simple instead. Which\never algorithm is the default is included as part of the mac80211\nmodule automatically. The other algorithm (simple vs. pid) can\nbe selected for inclusion as well. If EMBEDDED is selected then\nthe choice is available to have no default specified and neither\nalgorithm included in mac80211. The default algorithm can be set\nthrough a modparam.\n\nWhile at it, mark rc80211-simple as deprecated, and schedule it\nfor removal.\n\nSigned-off-by: Stefano Brivio \u003cstefano.brivio@polimi.it\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ad01837593338f13508463fa11c8dbf8109a1e5d",
      "tree": "77b521a6b8e7f8357505449fe812a9d41d40afb2",
      "parents": [
        "1abbe498e4b5e4f2000dfc30a0fa25be9553530e"
      ],
      "author": {
        "name": "Mattias Nissler",
        "email": "mattias.nissler@gmx.de",
        "time": "Wed Dec 19 01:25:57 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:59:18 2008 -0800"
      },
      "message": "mac80211: add PID controller based rate control algorithm\n\nAdd a new rate control algorithm based on a PID controller. It samples the\npercentage of failed frames over time, feeds the result into the controller and\nuses its output to control the TX rate.\n\nSigned-off-by: Mattias Nissler \u003cmattias.nissler@gmx.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1abbe498e4b5e4f2000dfc30a0fa25be9553530e",
      "tree": "8f899d2f623b2316f874fd8ae4b84838ad4e8b40",
      "parents": [
        "98f0b0a3a412eade153c7cf00c6b863600980d89"
      ],
      "author": {
        "name": "Mattias Nissler",
        "email": "mattias.nissler@gmx.de",
        "time": "Thu Dec 20 13:50:07 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:59:17 2008 -0800"
      },
      "message": "mac80211: clean up rate selection\n\nMove some code out of rc80211_simple since it\u0027s probably needed for all rate\nselection algorithms, and fix iwlwifi accordingly. While at it, clean up the\nrate_control_get_rate() interface.\n\nSigned-off-by: Stefano Brivio \u003cstefano.brivio@polimi.it\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3c990fb26b78f60614885d9ecaf7b7686b7b098",
      "tree": "4948049e6b1bd1ee0392173380e8444e69baa8c5",
      "parents": [
        "fd4c7f2fce1737105208c564e1458c885918982d"
      ],
      "author": {
        "name": "Ron Rindjunsky",
        "email": "ron.rindjunsky@intel.com",
        "time": "Mon Nov 26 16:14:34 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:33 2008 -0800"
      },
      "message": "mac80211: adding 802.11n configuration flows\n\nThis patch configures the 802.11n mode of operation\ninternally in ieee80211_conf structure and in the low-level\ndriver as well (through op conf_ht).\nIt does not include AP configuration flows.\n\nSigned-off-by: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ece8edddf067d21c4e5abfe3f1205da1588edbb2",
      "tree": "25450d1aedc630a538ca2f13aa0fa47100256182",
      "parents": [
        "f68635e627f9b21db05102e2d8fcd2894493d6bc"
      ],
      "author": {
        "name": "Zhu Yi",
        "email": "yi.zhu@intel.com",
        "time": "Thu Nov 22 10:53:21 2007 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:27 2008 -0800"
      },
      "message": "mac80211: hardware scan rework\n\nThe scan code in mac80211 makes the software scan assumption in various\nplaces. For example, we stop the Tx queue during a software scan so that\nall the Tx packets will be queued by the stack. We also drop frames not\nrelated to scan in the software scan process. But these are not true for\nhardware scan.\n\nSome wireless hardwares (for example iwl3945/4965) has the ability to\nperform the whole scan process by hardware and/or firmware. The hardware\nscan is relative powerful in that it tries to maintain normal network\ntraffic while doing a scan in the background. Some drivers (i.e iwlwifi)\ndo provide a way to tune the hardware scan parameters (for example if the\nSTA is associated, what\u0027s the max time could the STA leave from the\nassociated channel, how long the scans get suspended after returning to\nthe service channel, etc). But basically this is transparent to the\nstack. mac80211 should not stop Tx queues or drop Rx packets during a\nhardware scan.\n\nThis patch resolves the above problem by spliting the current scan\nindicator local-\u003esta_scanning into local-\u003esta_sw_scanning and\nlocal-\u003esta_hw_scanning. It then changes the scan related code to be aware\nof hardware scan or software scan in various places. With this patch,\niwlwifi performs much better in the scan-while-associated condition and\ndisable_hw_scan\u003d1 should never be required.\n\nCc: Mohamed Abbas \u003cmohamed.abbas@intel.com\u003e\nCc: Ben Cahill \u003cben.m.cahill@intel.com\u003e\nSigned-off-by: Zhu Yi \u003cyi.zhu@intel.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3333590e94262aebb5d0fb767cc7ed8b2359705c",
      "tree": "ddd3da4a857c3eae92d3924e1fe1b2da1ff0af65",
      "parents": [
        "2d192d9552881f4cf88e62072047c72ef2b5aa7f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 12 16:31:52 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Dec 19 16:43:46 2007 -0800"
      },
      "message": "mac80211: fix header ops\n\nWhen using recvfrom() on a SOCK_DGRAM packet socket, I noticed that the MAC\naddress passed back for wireless frames was always completely wrong. The\nreason for this is that the header parse function assigned to our virtual\ninterfaces is a function parsing an 802.11 rather than 802.3 header. This\npatch fixes it by keeping the default ethernet header operations assigned.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "75e7766680b4b196073bdc941b8a6570b9f777af",
      "tree": "71ce4e83878a3dd9a83559c7d51ec549668cef3a",
      "parents": [
        "b7e0fe9f81e19c4f2a1369b324c3c062c1738be4",
        "53cb4791c156908ae634de31949f7f25f8de002b"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Nov 30 23:29:27 2007 +1100"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Nov 30 23:29:27 2007 +1100"
      },
      "message": "Merge branch \u0027fixes-davem\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "8b393f1dc76acbe65a97a4e51f8144f4a65fa1c9",
      "tree": "ff1466c1fe5ebd700cc06bde1512900ffcbf5be7",
      "parents": [
        "01e1f045e65b683fe7203b1e16a915bbb94c15fe"
      ],
      "author": {
        "name": "Michael Wu",
        "email": "flamingice@sourmilk.net",
        "time": "Wed Nov 28 01:57:08 2007 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 29 18:08:47 2007 -0500"
      },
      "message": "mac80211: Fix behavior of ieee80211_open and ieee80211_close\n\nThis patch fixes:\n- Incorrect calls to ieee80211_hw_config when the radiotap flag is set.\n- Failure to actually unset the radiotap flag when all monitors are down.\n- Failure to call ieee80211_hw_config after successful interface start.\n\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a10605e599a7873417043fe2bb559abe719f8a1a",
      "tree": "03447d2c1c0834289d6570e95445043630090615",
      "parents": [
        "d9f8bcbf67a0ee67c8cb0734f003dfe916bb5248"
      ],
      "author": {
        "name": "Zhu Yi",
        "email": "yi.zhu@intel.com",
        "time": "Thu Nov 22 11:10:22 2007 +0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 29 18:08:47 2007 -0500"
      },
      "message": "mac80211: free ifsta-\u003eextra_ie and clear IEEE80211_STA_PRIVACY_INVOKED\n\nI\u0027m not sure if this is best choice, someone might have better\nsolutions. But this patch fixed the connection problem when switching\nfrom a WPA enabled AP (using wpa_supplicant) to an open AP (using\niwconfig). The root cause is when we connect to a WPA enabled AP,\nwpa_supplicant sets the ifsta-\u003eextra_ie thru SIOCSIWGENIE. But if we\nstop wpa_supplicant and connect to an open AP with iwconfig, there is\nno way to clear the extra_ie so that mac80211 keeps connecting with that.\n\nSomeone could argue wpa_supplicant should clear the extra_ie during\nits shutdown. But mac80211 should also handle the unexpected shutdown\ncase (ie. killall -9 wpa_supplicant).\n\nOn Wed, 2007-11-21 at 16:19 +0100, Johannes Berg wrote:\n\u003e Yeah. Can you amend the patch to also clear the\n\u003e IEEE80211_STA_PRIVACY_INVOKED flag?\n\nSigned-off-by: Zhu Yi \u003cyi.zhu@intel.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c1428b3f45d152a300e4f18638ebf30ceafda6c3",
      "tree": "b20a916281f23052a0001771c95d49d3364960a9",
      "parents": [
        "b52f2198ac889561d341c6990d669a671f93f450"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Nov 16 02:54:53 2007 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 20 16:20:31 2007 -0500"
      },
      "message": "mac80211: fix allmulti/promisc behaviour\n\nWhen an interface with promisc/allmulti bit is taken down,\nthe mac80211 state can become confused. This fixes it by\nmaking mac80211 keep track of all *active* interfaces that\nhave the promisc/allmulti bit set in the sdata, we sync\nthe interface bit into sdata at set_multicast_list() time\nso this works.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b52f2198ac889561d341c6990d669a671f93f450",
      "tree": "7455ca159f383f4a359d74a3dd5c08fcf8d216a1",
      "parents": [
        "d9f8bcbf67a0ee67c8cb0734f003dfe916bb5248"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Nov 16 01:49:11 2007 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 20 16:20:30 2007 -0500"
      },
      "message": "mac80211: fix ieee80211_set_multicast_list\n\nI recently experienced unexplainable behaviour with the b43\ndriver when I had broken firmware uploaded. The cause may have\nbeen that promisc mode was not correctly enabled or disabled\nand this bug may have been the cause.\n\nNote how the values are compared later in the function so\njust doing the \u0026 will result in the wrong thing being\ncompared and the test being false almost always.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "830f903866a1611e9ce53f3e35202302bb938946",
      "tree": "c1e6d73661aedd19bb3ef356fa14685389bfb082",
      "parents": [
        "999acd9c339a761a18d625b13001612ac396ee00"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Oct 28 14:51:05 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Nov 10 21:59:54 2007 -0800"
      },
      "message": "mac80211: allow driver to ask for a rate control algorithm\n\nThis allows a driver to ask for a specific rate control algorithm.\nThe rate control algorithm asked for must be registered and be\navailable as a module or built-in.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ac71c691e6a5ce991fe221d3bdb0c972f617aa37",
      "tree": "a3641b416579fbb8368e04e1a88f68e0da8dfe39",
      "parents": [
        "8a8f1c0437a77cce29c1cb6089f01f22a6d9ca6e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Oct 28 14:17:44 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Nov 10 21:59:23 2007 -0800"
      },
      "message": "mac80211: make simple rate control algorithm built-in\n\nToo frequently people do not have module autoloading enabled\nor fail to install the rate control module correctly, hence\ntheir hardware probing fails due to no rate control algorithm\nbeing available. This makes the \u0027simple\u0027 algorithm built into\nthe mac80211 module unless EMBEDDED is enabled in which case\nit can be disabled (eg. if the wanted driver requires another\nrate control algorithm.)\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ddd3d2be85e3207c47f2b3c431723e6c758b4b0d",
      "tree": "126bb0b470f94e82d4a7f7c0c88bac0b35c95623",
      "parents": [
        "58d4185e36913d4fc94afa4b4daccb3c9aa01957"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Sep 26 17:53:20 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:19 2007 -0700"
      },
      "message": "[MAC80211]: make userspace-mlme a per-interface setting\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f9d540ee5f7e480339911df8d7389ef4c435ab54",
      "tree": "89381e4aa0f8ea31662dc21e890c339d715f8271",
      "parents": [
        "a28975525016ddcbdaab8225666df1cf2dc9cb2d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Sep 28 14:02:09 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:15 2007 -0700"
      },
      "message": "[MAC80211]: remove management interface\n\nRemoves the management interface since it is only required\nfor hostapd/userspace MLME, will not be in the final tree\nat least in this form and hostapd/userspace MLME currently\ndo not work against this tree anyway.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a28975525016ddcbdaab8225666df1cf2dc9cb2d",
      "tree": "5043b4c24c3c6c40d3d844259e2c47421204436d",
      "parents": [
        "f7c4daed99fba15e4e48df464031f4ac7c32e4c9"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Sep 28 14:01:25 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:15 2007 -0700"
      },
      "message": "[MAC80211]: add \"invalid\" interface type\n\nSince I cannot convince the lazy driver authors (hello Michael)\nto stop (ab)using the MGMT interface type internally in their\ndrivers, this patch introduces a new _INVALID type especially\nfor their use and changes all affected drivers to use it.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f7c4daed99fba15e4e48df464031f4ac7c32e4c9",
      "tree": "bc696ea937c08b83a414d5572bac422f84a468cf",
      "parents": [
        "05b64b364822863974c0121359b01d7ba0f22205"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Mon Sep 24 18:41:49 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:14 2007 -0700"
      },
      "message": "[MAC80211]: Check open_count before calling config callback.\n\nAlso remove the check for ops-\u003econfig!\u003dNULL, as it can never be NULL.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4010e08907bdafe8bf4a3fe7ef9b52ddec4dda5",
      "tree": "10651fb231ff00dac4735d14079e8e241d44c6ce",
      "parents": [
        "51617f0b76389b29740aa9d7736df99b75d1d9ec"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Sep 26 15:19:50 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:17 2007 -0700"
      },
      "message": "[PATCH] mac80211: remove generic IE for AP interfaces\n\nThis is not useful since we do not support probe response\noffload to hardware at this time and beacons are set in\nanother way.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "53918994b7c8c3bf0af5f641e1f299856799d883",
      "tree": "63338872613d3c08473acfb46c8a57490f85350b",
      "parents": [
        "50741ae05a4742cae99361f57d84b5f8d33822a4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Sep 26 15:19:47 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:16 2007 -0700"
      },
      "message": "[PATCH] mac80211: fix iff_promiscs, iff_allmultis race\n\nWhen we update the counters iff_promiscs and iff_allmultis\nin struct ieee80211_local we have no common lock held to\nprotect them. The problem is that the update to each counter\nmay not be atomic, so we could end up with iff_promiscs \u003d\u003d -1\nin unfortunate conditions. To fix it, use atomic_t values.\nIt doesn\u0027t matter whether the two counters are updated\ntogether atomically or not, if there are two invocations\nof set_multicast_list we will end up with multiple\nconfigure_filter() invocations of which the latter will always\nbe correct.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "fb1c1cd6c5a8988b14c5c6c0dfe55542df3a34c6",
      "tree": "9dec818b2b6aea9c9823902e9c5b0108134d5747",
      "parents": [
        "af1a90da397f071d7ee893145a1e7b2124689376"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Sep 26 15:19:43 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:15 2007 -0700"
      },
      "message": "[PATCH] mac80211: fix vlan bug\n\nVLAN interfaces have yet another bug: they aren\u0027t accounted\nfor properly in the receive path in prepare_for_handlers().\nI noticed this by code inspection, but it would be easy for\nthe compiler to catch such things if we\u0027d just use the proper\nenum where appropriate.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5b2812e925c8e976852867f8d760637c5926d817",
      "tree": "5e8ba3ec4fa8273822334eb64bb899a0b3afcbd3",
      "parents": [
        "b4219952356baa162368f2f5dab6421a5dbc5e15"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Sep 26 14:27:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:11 2007 -0700"
      },
      "message": "[PATCH] mac80211: fix interface initialisation and deinitialisation\n\nWhen an interface is registered it is still uninitialised so\nieee80211_if_reinit() can\u0027t be called on it (it will oops.)\nHence, we need to move the uninit method assignment.\n\nAlso, this patch fixes the bug that the master device is never\ninitialised nor deinitialised at all. Oddly, the deinit code\nhad an if statement to not run some code when running for the\nmaster interface (which never happened), but that if statement\nis also wrong. Fix that too.\n\nNow that the uninit code is run for the master device, another\nbug surfaced: it tries to remove all dependent interfaces and\nthat oopses or BUGs at some point, either because it unregisters\nalready unregistered interfaces (missing list_del bug) or due\nto trying to iterate a list that has had other things removed.\nFix this too by handling the master interface specially.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "79010420cc3f78eab911598bfdd29c4b06a83e1f",
      "tree": "a9031164d7944f8aa90a455d297780b241f3d865",
      "parents": [
        "ea49c359f36d5b40bf033c45a08332cb73777aa2"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Sep 18 17:29:21 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:00 2007 -0700"
      },
      "message": "[PATCH] mac80211: fix virtual interface locking\n\nFlorian Lohoff noticed a bug in mac80211: when bringing the\nmaster interface down while other virtual interfaces are up\nwe call dev_close() under a spinlock which is not allowed.\nThis patch removes the sub_if_lock used by mac80211 in favour\nof using an RCU list. All list manipulations are already done\nunder rtnl so are well protected against each other, and the\nread-side locks we took in the RX and TX code are already in\nRCU read-side critical sections.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Florian Lohoff \u003cflo@rfc822.org\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Michal Piotrowski \u003cmichal.k.k.piotrowski@gmail.com\u003e\nCc: Satyam Sharma \u003csatyam@infradead.org\u003e\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0ec3ca445931ff0e7ad6ac61d6c5d2aaafe7a9f5",
      "tree": "a9e5fab14a3f928df6536a913ca8aba5e0ab2632",
      "parents": [
        "4150c57212ad134765dd78c654a4b9906252b66d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Sep 17 01:29:24 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:57 2007 -0700"
      },
      "message": "[PATCH] mac80211: validate VLAN interfaces better\n\nThis patch changes mac80211 to verify that VLAN interfaces\nare valid and not bother drivers about them any more.\nVLAN interfaces are now only valid when an AP interface\nis up with the same MAC address, and are automatically\nturned off when the AP interface is set down.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Jouni Malinen \u003cj@w1.fi\u003e\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4150c57212ad134765dd78c654a4b9906252b66d",
      "tree": "c37ab7a3f75532a623ed00339782d769514422d2",
      "parents": [
        "070ac3a2651e3c1c4d277c5f1981517427c386a7"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Sep 17 01:29:23 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:57 2007 -0700"
      },
      "message": "[PATCH] mac80211: revamp interface and filter configuration\n\nDrivers are currently supposed to keep track of monitor\ninterfaces if they allow so-called \"hard\" monitor, and\nthey are also supposed to keep track of multicast etc.\n\nThis patch changes that, replaces the set_multicast_list()\ncallback with a new configure_filter() callback that takes\nfilter flags (FIF_*) instead of interface flags (IFF_*).\nFor a driver, this means it should open the filter as much\nas necessary to get all frames requested by the filter flags.\nAccordingly, the filter flags are named \"positively\", e.g.\nFIF_ALLMULTI.\n\nMulticast filtering is a bit special in that drivers that\nhave no multicast address filters need to allow multicast\nframes through when either the FIF_ALLMULTI flag is set or\nwhen the mc_count value is positive.\n\nAt the same time, drivers are no longer notified about\nmonitor interfaces at all, this means they now need to\nimplement the start() and stop() callbacks and the new\nchange_filter_flags() callback. Also, the start()/stop()\nordering changed, start() is now called *before* any\nadd_interface() as it really should be, and stop() after\nany remove_interface().\n\nThe patch also changes the behaviour of setting the bssid\nto multicast for scanning when IEEE80211_HW_NO_PROBE_FILTERING\nis set; the IEEE80211_HW_NO_PROBE_FILTERING flag is removed\nand the filter flag FIF_BCN_PRBRESP_PROMISC introduced.\nThis is a lot more efficient for hardware like b43 that\nsupports it and other hardware can still set the BSSID\nto all-ones.\n\nDriver modifications by Johannes Berg (b43 \u0026 iwlwifi), Michael Wu\n(rtl8187, adm8211, and p54), Larry Finger (b43legacy), and\nIvo van Doorn (rt2x00).\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3b04ddde02cf1b6f14f2697da5c20eca5715017f",
      "tree": "9da1341a5a399a507b5ea6bf5a3047506b8d8f8f",
      "parents": [
        "b95cce3576813ac3f86bafa6b5daaaaf7574b0fe"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:40:57 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:52 2007 -0700"
      },
      "message": "[NET]: Move hardware header operations out of netdevice.\n\nSince hardware header operations are part of the protocol class\nnot the device instance, make them into a separate object and\nsave memory.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b95cce3576813ac3f86bafa6b5daaaaf7574b0fe",
      "tree": "54da3f245ee145722623a8e0eaab5fc49ea78511",
      "parents": [
        "0c4e85813d0a94eeb8bf813397a4907bdd7bb610"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Sep 26 22:13:38 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:51 2007 -0700"
      },
      "message": "[NET]: Wrap hard_header_parse\n\nWrap the hard_header_parse function to simplify next step of\nheader_ops conversion.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e0eb68596232788bc352368f2fbc3cb088e42e41",
      "tree": "0cba5b7f58a3d9a842b5c8890dbd2d472f5da662",
      "parents": [
        "d86ec781ef9627a3fcd64a7a91d1b79a74d3927b"
      ],
      "author": {
        "name": "Michael Wu",
        "email": "flamingice@sourmilk.net",
        "time": "Tue Sep 18 17:29:21 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:34 2007 -0700"
      },
      "message": "[MAC80211]: rename ieee80211_cfg.h to cfg.h\n\nMight as well rename ieee80211_cfg.h to cfg.h to keep things consistent.\n\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd1cd4c620c174ebbdf78dc01b924115a06de5d3",
      "tree": "a04517b9ee2ede228ec4a8ab96099460060c4245",
      "parents": [
        "9c7d7728baf79c63ae58df95fb39ea13db487599"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Sep 18 17:29:20 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:32 2007 -0700"
      },
      "message": "[MAC80211]: print out wiphy name instead of master device\n\nThis makes mac80211 print out the wiphy name instead of the\nmaster device name where appropriate.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "011bfcc4f3d3444b140da3880ae30a62cc93529e",
      "tree": "2c856fefcd132ed308623b1da5cd47a22177d7af",
      "parents": [
        "72abd81b980ef7ffb83ecb4ac4a7627d9d575f50"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Sep 17 01:29:25 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:29 2007 -0700"
      },
      "message": "[MAC80211]: remove key threshold stuff\n\nThis patch removes the key threshold stuff from mac80211.\nI have patches for later that add it as a per-key setting\nto nl/cfg80211.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61609bc0e4d3bc677ecdccf216a0a77563f52457",
      "tree": "218ad785638f05c357571b400e0cb3fc21787ece",
      "parents": [
        "501d857ec93e797d4872d6b9b265b7472b455ddf"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Thu Sep 20 22:06:39 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:23 2007 -0700"
      },
      "message": "[MAC80211]: Add support for setting TX power and radio status\n\nThis adds support for disabling the radio and setting the TXpower\nthrough wext.\nThis also fixes the prism TXpower ioctl (It always overwrote the TXpower\nvalue in ieee80211_hw_config())\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0795af5729b18218767fab27c44b1384f72dc9ad",
      "tree": "67c16df84aa6ec219340b8ea1b5cfb0e8150a216",
      "parents": [
        "95ea36275f3c9a1d3d04c217b4b576c657c4e70e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Oct 03 17:59:30 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:42 2007 -0700"
      },
      "message": "[NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()\n\nThis is nicer than the MAC_FMT stuff.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68aae11674b9d6598b660d1148ffba9eef3f895f",
      "tree": "d5213c5b624e9908b948f2642b7e15721021b4ee",
      "parents": [
        "24338793eea9dcc0865826e1115af86a19af8d18"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Fri Aug 24 11:29:34 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:31 2007 -0700"
      },
      "message": "[MAC80211]: use internal network device stats\n\nStats are now available for device usage inside network_device\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b708e610622cff07f4374a2b4410884f964b8489",
      "tree": "77aee49d680178df819437a35ba23cce9ad14e18",
      "parents": [
        "d4e46a3d9869563c6210b01bb651c40cbe65da80"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Sep 14 11:10:25 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:27 2007 -0700"
      },
      "message": "[MAC80211]: remove turbo modes\n\nThis patch removes all mention of the atheros turbo modes that\ncan\u0027t possibly work properly anyway since in some places we don\u0027t\ncheck for them when we should.\n\nI have no idea what the iwlwifi drivers were doing with these but\nit can\u0027t possibly have been correct.\n\nCc: Zhu Yi \u003cyi.zhu@intel.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "881d966b48b035ab3f3aeaae0f3d3f9b584f45b2",
      "tree": "c579d59a4107cbbe9e2b85939bc0d496b815c887",
      "parents": [
        "b4b510290b056b86611757ce1175a230f1080f53"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Sep 17 11:56:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:10 2007 -0700"
      },
      "message": "[NET]: Make the device list and device lookups per namespace.\n\nThis patch makes most of the generic device layer network\nnamespace safe.  This patch makes dev_base_head a\nnetwork namespace variable, and then it picks up\na few associated variables.  The functions:\ndev_getbyhwaddr\ndev_getfirsthwbytype\ndev_get_by_flags\ndev_get_by_name\n__dev_get_by_name\ndev_get_by_index\n__dev_get_by_index\ndev_ioctl\ndev_ethtool\ndev_load\nwireless_process_ioctl\n\nwere modified to take a network namespace argument, and\ndeal with it.\n\nvlan_ioctl_set and brioctl_set were modified so their\nhooks will receive a network namespace argument.\n\nSo basically anthing in the core of the network stack that was\naffected to by the change of dev_base was modified to handle\nmultiple network namespaces.  The rest of the network stack was\nsimply modified to explicitly use \u0026init_net the initial network\nnamespace.  This can be fixed when those components of the network\nstack are modified to handle multiple network namespaces.\n\nFor now the ifindex generator is left global.\n\nFundametally ifindex numbers are per namespace, or else\nwe will have corner case problems with migration when\nwe get that far.\n\nAt the same time there are assumptions in the network stack\nthat the ifindex of a network device won\u0027t change.  Making\nthe ifindex number global seems a good compromise until\nthe network stack can cope with ifindex changes when\nyou change namespaces, and the like.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11a843b7e16062389c53ba393c7913956e034eb2",
      "tree": "7f557a55220a0de38f0eafe1a5147487ec39b790",
      "parents": [
        "3aefaa3294193c931b20a574f718efee6baf27d4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Aug 28 17:01:55 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:53 2007 -0700"
      },
      "message": "[MAC80211]: rework key handling\n\nThis moves all the key handling code out from ieee80211_ioctl.c\ninto key.c and also does the following changes including documentation\nupdates in mac80211.h:\n\n 1) Turn off hardware acceleration for keys when the interface\n    is down. This is necessary because otherwise monitor\n    interfaces could be decrypting frames for other interfaces\n    that are down at the moment. Also, it should go some way\n    towards better suspend/resume support, in any case the\n    routines used here could be used for that as well.\n    Additionally, this makes the driver interface nicer, keys\n    for a specific local MAC address are only ever present\n    while an interface with that MAC address is enabled.\n\n 2) Change driver set_key() callback interface to allow only\n    return values of -ENOSPC, -EOPNOTSUPP and 0, warn on all\n    other return values. This allows debugging the stack when\n    a driver notices it\u0027s handed a key while it is down.\n\n 3) Invert the flag meaning to KEY_FLAG_UPLOADED_TO_HARDWARE.\n\n 4) Remove REMOVE_ALL_KEYS command as it isn\u0027t used nor do we\n    want to use it, we\u0027ll use DISABLE_KEY for each key. It is\n    hard to use REMOVE_ALL_KEYS because we can handle multiple\n    virtual interfaces with different key configuration, so we\u0027d\n    have to keep track of a lot of state for this and that isn\u0027t\n    worth it.\n\n 5) Warn when disabling a key fails, it musn\u0027t.\n\n 6) Remove IEEE80211_HW_NO_TKIP_WMM_HWACCEL in favour of per-key\n    IEEE80211_KEY_FLAG_WMM_STA to let driver sort it out itself.\n\n 7) Tell driver that a (non-WEP) key is used only for transmission\n    by using an all-zeroes station MAC address when configuring.\n\n 8) Change the set_key() callback to have access to the local MAC\n    address the key is being added for.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f20fc24986a083228823d9b68adca20714b254e",
      "tree": "b5d7638b913649c7a181d6703ccd72e35ca06de9",
      "parents": [
        "13262ffd4902805acad2618c12b41fcaa6c50791"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Aug 28 17:01:54 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:51 2007 -0700"
      },
      "message": "[MAC80211]: embed key conf in key, fix driver interface\n\nThis patch embeds the struct ieee80211_key_conf into struct ieee80211_key\nand thus avoids allocations and having data present twice.\n\nThis required some more changes:\n 1) The removal of the IEEE80211_KEY_DEFAULT_TX_KEY key flag.\n    This flag isn\u0027t used by drivers nor should it be since\n    we have a set_key_idx() callback. Maybe that callback needs\n    to be extended to include the key conf, but only a driver that\n    requires it will tell.\n 2) The removal of the IEEE80211_KEY_DEFAULT_WEP_ONLY key flag.\n    This flag is global, so it shouldn\u0027t be passed in the key\n    conf structure. Pass it to the function instead.\n\nAlso, this patch removes the AID parameter to the set_key() callback\nbecause it is currently unused and the hardware currently cannot know\nabout the AID anyway. I suspect this was used with some hardware that\nactually selected the AID itself, but that functionality was removed.\n\nAdditionally, I\u0027ve removed the ALG_NULL key algorithm since we have\nALG_NONE.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13262ffd4902805acad2618c12b41fcaa6c50791",
      "tree": "2c5c250435c8464aa4c36253b3a86804e3a54814",
      "parents": [
        "d6f2da5b33911a31eb61e1790ef8e555e9605837"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Tue Aug 28 17:01:54 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:50 2007 -0700"
      },
      "message": "[MAC80211]: Remove bitfields from struct ieee80211_sub_if_data\n\nmac80211, remove bitfields from struct ieee80211_sub_if_data\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6f2da5b33911a31eb61e1790ef8e555e9605837",
      "tree": "14dbd81d232b3d942fc093e24a7a70193f613f3e",
      "parents": [
        "badffb725c86cc2d46f7cb3f520f58f1c863b56c"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Tue Aug 28 17:01:54 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:50 2007 -0700"
      },
      "message": "[MAC80211]: Remove bitfields from struct ieee80211_if_sta\n\nmac80211, remove bitfields from struct ieee80211_if_sta\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e8bf96495cd67090b4900ddaf8e8672a17ec39fa",
      "tree": "00630b109a928733217dc25ea1f5aefbf8b48a46",
      "parents": [
        "cf966838cd5596ca61d3e9949050442a943f6238"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Tue Aug 28 17:01:54 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:48 2007 -0700"
      },
      "message": "[MAC80211]: Remove bitfields from struct ieee80211_tx_packet_data\n\nremove bitfields from struct ieee80211_tx_packet_data\n\n[Johannes: completely clear flags in ieee80211_remove_tx_extra]\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b2446b36800948586f1d1b8ef05803bba5f7489e",
      "tree": "49687896b02ae79999cd57abb629d12c8ab14fec",
      "parents": [
        "3017b80bf0c4d6a44ccf0d35db9dadf01092b54e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Aug 28 17:01:53 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:45 2007 -0700"
      },
      "message": "[MAC80211]: remove unused ioctls (1)\n\nThe ioctls\n\n * PRISM2_PARAM_ANTENNA_MODE\n * PRISM2_PARAM_STAT_TIME\n\nare not used by hostapd or wpa_supplicant.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "82f716056fb1c214289fe6c284b0316858c1b70c",
      "tree": "913ab04947109bfeff815d3076117842f651f26d",
      "parents": [
        "643856729e2fde781f63eb84ecb43bbad35bf1ae"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Aug 28 17:01:53 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:43 2007 -0700"
      },
      "message": "[MAC80211]: remove radar stuff\n\nUnused in drivers, userspace and mac80211.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a8a9a88fc1b18f5c45244d0ef8a5352f6cf761f",
      "tree": "be45f7673455ebceb88bc405a33ae1254bc9e62f",
      "parents": [
        "4b6aa59999a3a12dd4740a52299c6c33e85a8747"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Aug 28 17:01:52 2007 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:39 2007 -0700"
      },
      "message": "[MAC80211]: avoid copying packets to interfaces that are down\n\nDavid Woodhouse noticed that under some circumstances the number of slab\nallocations kept growing. After looking a bit, this seemed to happen\nwhen you had a management mode interface that was *down*.\n\nThe reason for this is that when the device is down, all management\nframes get queued to the in-kernel MLME (via ieee80211_sta_rx_mgmt) but\nthen the sta work is invoked but doesn\u0027t run when the netif is down.\nWhen you then bring the interface up, all such frames are freed, but if\nyou change the mode all of them are lost because the skb queue is\nreinitialised as soon as you go back to managed mode. The skb queue is\ncorrectly cleared when the interface is brought down, but the code\ndoesn\u0027t account for the fact that it may be filled while it is not up.\n\nThis patch should fix the issue by simply ignoring all interfaces that\nare down when going through the RX handlers.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1bec3f1a3ec5d922d1040c7845b82cd496c02d90",
      "tree": "59707c55193c4b61ec4a5d14d704d4d3e767d872",
      "parents": [
        "9b8a74e3482f9fc077a88c13fa0ceca8feb0b772"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:24 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:41 2007 -0700"
      },
      "message": "[MAC80211]: fix add_interface monitor mode behaviour\n\nThis makes it behave the same whether we have monitor during operation\nor not.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d9430a32886f70c0c16d67c525f6cda2df7906ee",
      "tree": "9d531b23206e62033a6bb9d03ac572ce6ab4c7f1",
      "parents": [
        "7e9ed18874f0df84b6651f0636e1cfdac43bc610"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Fri Jul 27 15:43:24 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:39 2007 -0700"
      },
      "message": "[MAC80211]: implement ERP info change notifications\n\nzd1211rw and bcm43xx are interested in being notified when ERP IE conditions\nchange, so that they can reprogram a register which affects how control frames\nare transmitted.\n\nThis patch adds an interface similar to the one that can be found in softmac.\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8a69aa93d54cb56017159b08512c80ede2263060",
      "tree": "4fbb506416233a10ae4f16a14fe6466ae7742b70",
      "parents": [
        "be8755e1804d6f60e6a96a46ac6bc46ce6dfca53"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Fri Jul 27 15:43:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:37 2007 -0700"
      },
      "message": "[MAC80211]: STA reassociation improvements\n\nMy cheapy D-Link AP behaves strangely w.r.t reassociations.\n\nThe following sequence of commands causes me to lose association and to be\nunable to regain it:\n\n\tifconfig eth8 down\n\tifconfig eth8 up\n\tiwconfig eth8 essid \u003cx\u003e\n\nThis is because mac80211 tries to reassociate, rather than just associate.\nMy AP replies with an association response (not a reassociation response...)\ndenying the association with code 12: \"Association denied due to reason\noutside the scope of this standard\"\n\nmac80211 tries this reassociation another 4 times or so before finally giving\nup.\n\nI see 2 problems here:\n 1. bringing the interface down and up again should be resetting interface state\n    i.e. after the interface is brought down, it should have no memory of if or\n         where it was previously associated\n 2. after the first reassociation fails, mac80211 should fall back to\n    standard association for the next attempt\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "be8755e1804d6f60e6a96a46ac6bc46ce6dfca53",
      "tree": "a3038a924114f49aa2372ab7c9417d4e072c4b20",
      "parents": [
        "c2d1560ad8c2f6e0dd0d34102d022f3709325c26"
      ],
      "author": {
        "name": "Michael Wu",
        "email": "flamingice@sourmilk.net",
        "time": "Fri Jul 27 15:43:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:37 2007 -0700"
      },
      "message": "[MAC80211]: improve locking of sta_info related structures\n\nThe sta_info code has some awkward locking which prevents some driver\ncallbacks from being allowed to sleep. This patch makes the locking more\nfocused so code that calls driver callbacks are allowed to sleep. It also\nconverts sta_lock to a rwlock.\n\nSigned-off-by: Michael Wu \u003cflamingice@sourmilk.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c2d1560ad8c2f6e0dd0d34102d022f3709325c26",
      "tree": "40a64238627c8d6f9e20fa8ac33a1f35ff7315de",
      "parents": [
        "b2c258fb11b3fc77a73f8b0453ff1256de812bc6"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:36 2007 -0700"
      },
      "message": "[MAC80211]: introduce util.c\n\nIntroduce a new file util.c and move a whole bunch of functions into it.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b2c258fb11b3fc77a73f8b0453ff1256de812bc6",
      "tree": "5b0e7cd774d43c33644a8510019e4f114ccacd5b",
      "parents": [
        "ff6880892990aece71a3271425dfde35344d51bb"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:35 2007 -0700"
      },
      "message": "[MAC80211]: reorder interface related functions\n\nThis patch groups a whole bunch of functions together to make\nieee80211.c more maintainable.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ff6880892990aece71a3271425dfde35344d51bb",
      "tree": "6a6c5f61c0e060a9080345324df5a16e33a94f7e",
      "parents": [
        "1f5a7e47ae58cc23c623c09f1c9d97b7a8cf6344"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:35 2007 -0700"
      },
      "message": "[MAC80211]: move some rate control functions out of ieee80211.c\n\nI think these can go with rate control just as well and it makes\nieee80211.c more readable.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1f5a7e47ae58cc23c623c09f1c9d97b7a8cf6344",
      "tree": "bccb233ff41737569c0dd397d80405f5402aafa5",
      "parents": [
        "75c35aa4e2931b22e8e95fa2d6380eebac229f30"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:34 2007 -0700"
      },
      "message": "[MAC80211]: split out some key functions from ieee80211.c\n\ninto a new file key.c which doesn\u0027t have much code right now but\nit makes ieee80211.c easier to read.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "75c35aa4e2931b22e8e95fa2d6380eebac229f30",
      "tree": "6086d19d20c0d88822f0cd574f47597fe7f63bdf",
      "parents": [
        "e2ebc74d7e3d71600640db6fbb28cc2f362184c1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:22 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:34 2007 -0700"
      },
      "message": "[MAC80211]: remove some unnecessary includes\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e2ebc74d7e3d71600640db6fbb28cc2f362184c1",
      "tree": "7f9a830869b9f6157ee8235feb4953df7a639dbd",
      "parents": [
        "340e11f332c695c43f506e82b1d39d00716c5005"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:22 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:33 2007 -0700"
      },
      "message": "[MAC80211]: split TX path into own file\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "571ecf676d66735f59be6b950360e4074f02f47d",
      "tree": "727292ad7a7412841ec8c326f15f759dc7683f63",
      "parents": [
        "bbf25010f1a6b761914430f5fca081ec8c7accd1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 27 15:43:22 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:29 2007 -0700"
      },
      "message": "[MAC80211]: split RX handlers into own file\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ca9938fea576ebbb8d8c4fbe8a5bcc937e49e1ca",
      "tree": "b14b31646f48d181cfd0f7c241655e27b97a7f3d",
      "parents": [
        "136e83d6b8999f4ef680ff9cf2a67e1e1ccbd94e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Sep 11 12:50:32 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Sep 25 22:55:45 2007 -0700"
      },
      "message": "[PATCH] mac80211: fix initialisation when built-in\n\nWhen mac80211 is built into the kernel it needs to init earlier\nso that device registrations are run after it has initialised.\nThe same applies to rate control algorithms.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7b7ed879254ad43990c9d67f95be3427401c3392",
      "tree": "bd0e5d1e8ffe32b9b26137c853b902b174b69bbb",
      "parents": [
        "39d3520c92cf7a28c07229ca00cc35a1e8026c77"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Aug 07 10:23:57 2007 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Aug 14 16:48:23 2007 -0400"
      },
      "message": "[PATCH] mac80211: fix tx status frame code\n\nWhen I added the monitor for outgoing frames somehow a break\nstatement slipped in. Remove it.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    }
  ],
  "next": "0e7088de6ce5a64d9bb7b11eba4ee98ca5b654e8"
}
