)]}'
{
  "log": [
    {
      "commit": "82694f764dad783a123394e2220b92b9be721b43",
      "tree": "3ff12e550b9048a153a20d2b9583bc75491196f7",
      "parents": [
        "681c4d07dd5b2ce2ad9f6dbbf7841e479fbc7754"
      ],
      "author": {
        "name": "Luciano Coelho",
        "email": "coelho@ti.com",
        "time": "Wed Jan 12 15:18:11 2011 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jan 13 15:46:45 2011 -0500"
      },
      "message": "mac80211: use maximum number of AMPDU frames as default in BA RX\n\nWhen the buffer size is set to zero in the block ack parameter set\nfield, we should use the maximum supported number of subframes.  The\nexisting code was bogus and was doing some unnecessary calculations\nthat lead to wrong values.\n\nThanks Johannes for helping me figure this one out.\n\nCc: stable@kernel.org\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Luciano Coelho \u003ccoelho@ti.com\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "681c4d07dd5b2ce2ad9f6dbbf7841e479fbc7754",
      "tree": "095ffe7e63cc61951095b5642a38136557502a21",
      "parents": [
        "8d661f1e462d50bd83de87ee628aaf820ce3c66c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Jan 12 13:40:33 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jan 13 15:46:45 2011 -0500"
      },
      "message": "mac80211: fix lockdep warning\n\nSince the introduction of the fixes for the\nreorder timer, mac80211 will cause lockdep\nwarnings because lockdep confuses\nlocal-\u003eskb_queue and local-\u003erx_skb_queue\nand treats their lock as the same.\n\nHowever, their locks are different, and are\nvalid in different contexts (the former is\nused in IRQ context, the latter in BH only)\nand the only thing to be done is mark the\nformer as a different lock class so that\nlockdep can tell the difference.\n\nReported-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nReported-by: Sujith \u003cm.sujith@gmail.com\u003e\nReported-by: Miles Lane \u003cmiles.lane@gmail.com\u003e\nTested-by: Sujith \u003cm.sujith@gmail.com\u003e\nTested-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "06778b1c383afbdb88ffd837e117bec06a76f450",
      "tree": "1f6461cbedd144b35b7ea4044ba626afac3c8e15",
      "parents": [
        "90fc4b3a5ba24f09af2a8c4a723651a328949460"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Dec 22 10:15:52 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:07:12 2011 -0500"
      },
      "message": "mac80211: remove stray extern\n\nSomehow this snuck into my earlier patch, and\nonly now did I see a compiler warning:\n\nnet/mac80211/led.c:218:13: warning: function \u0027__ieee80211_create_tpt_led_trigger\u0027 with external linkage has definition\n\nRemove the stray extern.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "90fc4b3a5ba24f09af2a8c4a723651a328949460",
      "tree": "0ec7031f451f8a7eb38259b6fe80ec52cf780b43",
      "parents": [
        "21f83589644bb2ed98079bf1e2154c8e70ca6a6c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Sat Dec 18 17:20:48 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:07:12 2011 -0500"
      },
      "message": "mac80211: implement off-channel TX using hw r-o-c offload\n\nWhen the driver has remain-on-channel offload,\nimplement off-channel transmission using that\nprimitive.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "21f83589644bb2ed98079bf1e2154c8e70ca6a6c",
      "tree": "ede391a8c788a43f7c4ea3baa3367e020d45f179",
      "parents": [
        "c96e96354a6c9456cdf1f150eca504e2ea35301e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Sat Dec 18 17:20:47 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:07:12 2011 -0500"
      },
      "message": "mac80211: implement hardware offload for remain-on-channel\n\nThis allows drivers to support remain-on-channel\noffload if they implement smarter timing or need\nto use a device implementation like iwlwifi.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c96e96354a6c9456cdf1f150eca504e2ea35301e",
      "tree": "751bec601fb8152116b8e31e0f1f83d687a37d6f",
      "parents": [
        "dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a",
        "33af88138b859f515b365a074e0a014d7cdbf846"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:06:25 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:06:25 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n\nConflicts:\n\tnet/bluetooth/Makefile\n"
    },
    {
      "commit": "6303710d7aa62bfb154cd13ab5ab12cfa8baaf91",
      "tree": "4718ca3186d92819b3d617f32813eab6a1896b91",
      "parents": [
        "db98a6cfcc9ac951067c9a2cb60459b618fd7b10",
        "d2460f4b2fa6dbdeec800414f9cf5b1fc8b71197"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 14:35:41 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 14:35:41 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "b5c34f662a3519d34f9634a14d8de638fdbe0ca3",
      "tree": "0de22e8f97feedf9ad2b729802b338237ae5d6f3",
      "parents": [
        "cc72128750700d01c31f583a355c5f8f809498bb"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon Jan 03 19:51:09 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:46:14 2011 -0500"
      },
      "message": "mac80211: fix some key comments and code\n\nThe key documentation is slightly out of date, fix\nthat. Also, the list entry in the key struct is no\nlonger used that way, so list_del_init() isn\u0027t\nnecessary any more there.\n\nFinally, ieee80211_key_link() is no longer invoked\nunder RCU read lock, but rather with an appropriate\nstation lock held.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "707e634326448190bfe2d937c44ec05c8dea63c4",
      "tree": "5aa8d4976d01b7b189c2e1dd858a3012347d0158",
      "parents": [
        "24a8fdad35835e8d71f7c4b978a246fafed2e7b4"
      ],
      "author": {
        "name": "Christian Lamparter",
        "email": "chunkeey@googlemail.com",
        "time": "Thu Dec 30 17:29:53 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:46:13 2011 -0500"
      },
      "message": "Revert \"mac80211: temporarily disable reorder release timer\"\n\nThis reverts enables the reorder release timer once again.\n\nThe issues laid out in:\n\u003chttp://www.spinics.net/lists/linux-wireless/msg57214.html\u003e\n\nHave been addressed by:\n\tmac80211: serialize rx path workers\n\tmac80211: ignore PSM bit of reordered frames\n\nSigned-off-by: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "24a8fdad35835e8d71f7c4b978a246fafed2e7b4",
      "tree": "3ee2b5710b802dca6fe43cbedf461c54e0f2be93",
      "parents": [
        "1186488b4a4d4871e40cb1604ba3ede3d4b7cc90"
      ],
      "author": {
        "name": "Christian Lamparter",
        "email": "chunkeey@googlemail.com",
        "time": "Thu Dec 30 17:25:29 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:46:13 2011 -0500"
      },
      "message": "mac80211: serialize rx path workers\n\nThis patch addresses the issue of serialization between\nthe main rx path and various reorder release timers.\n\n\u003chttp://www.spinics.net/lists/linux-wireless/msg57214.html\u003e\n\nIt converts the previously local \"frames\" queue into\na global rx queue [rx_skb_queue]. This way, everyone\n(be it the main rx-path or some reorder release timeout)\ncan add frames to it.\n\nOnly one active rx handler worker [ieee80211_rx_handlers]\nis needed. All other threads which have lost the race of\n\"runnning_rx_handler\" can now simply \"return\", knowing that\nthe thread who had the \"edge\" will also take care of their\nworkload.\n\nSigned-off-by: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f76b57b47e5fd423f9827c7b0ba7bbd06cca6b9b",
      "tree": "8ff2b50bb0e57611f5d37fe6abaef75f9fcd34a6",
      "parents": [
        "1c30cc19081c16b1fe73ac13f2cb2abc009cdcc4"
      ],
      "author": {
        "name": "Joel A Fernandes",
        "email": "agnel.joel@gmail.com",
        "time": "Tue Dec 28 19:28:11 2010 -0600"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:43:01 2011 -0500"
      },
      "message": "mac80211: Fix mesh portal communication with other mesh nodes.\n\nFixed a bug where if a mesh interface has a different MAC address from its bridge\ninterface, then it would not be able to send data traffic to any other mesh node.\nThis also adds support for communication between mesh nodes and external bridged\nnodes by using a 6 address format if the source is a node within the mesh and the\ndestination is an external node proxied by a mesh portal.\n\nSigned-off-by: Joel A Fernandes \u003cagnel.joel@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4cfda47b69d0a37e5fc0292addba6d0f5f671a14",
      "tree": "4a39ef3560c429b388e96a7479ac8fc27d4fd0c7",
      "parents": [
        "5af3c1d195a6169a925a929e800dc4fce2a545ae"
      ],
      "author": {
        "name": "Christian Lamparter",
        "email": "chunkeey@googlemail.com",
        "time": "Mon Dec 27 23:21:26 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:35:15 2011 -0500"
      },
      "message": "mac80211: ignore PSM bit of reordered frames\n\nThis patch tackles one of the problems of my\nreorder release timer patch from August.\n\n\u003chttp://www.spinics.net/lists/linux-wireless/msg57214.html\u003e\n\u003d\u003e\nWhat if the reorder release triggers and ap_sta_ps_end\n(called by ieee80211_rx_h_sta_process) accidentally clears\nthe WLAN_STA_PS_STA flag, because 100ms ago - when the STA\nwas still active - frames were put into the reorder buffer.\n\nSigned-off-by: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d2460f4b2fa6dbdeec800414f9cf5b1fc8b71197",
      "tree": "01ce2bf5ec6b29143b3e0003ffbf05812f6bb7c0",
      "parents": [
        "919bbad580445801c22ef6ccbe624551fee652bd"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon Jan 03 19:42:24 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:17:23 2011 -0500"
      },
      "message": "mac80211: add missing synchronize_rcu\n\ncommit ad0e2b5a00dbec303e4682b403bb6703d11dcdb2\nAuthor: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nDate:   Tue Jun 1 10:19:19 2010 +0200\n\n    mac80211: simplify key locking\n\nremoved the synchronization against RCU and thus\nopened a race window where we can use a key for\nTX while it is already freed. Put a synchronisation\ninto the right place to close that window.\n\nReported-by: Jussi Kivilinna \u003cjussi.kivilinna@mbnet.fi\u003e\nCc: stable@kernel.org [2.6.36+]\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "919bbad580445801c22ef6ccbe624551fee652bd",
      "tree": "dce1f537c484cd05912eac54c9009024ff98b1cb",
      "parents": [
        "554d1d027b19265c4aa3f718b3126d2b86e09a08"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Thu Dec 30 02:01:03 2010 -0600"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 04 14:17:23 2011 -0500"
      },
      "message": "mac80211: fix mesh forwarding when ratelimited too\n\nCommit b51aff057c9d0ef6c529dc25fd9f775faf7b6c63 said:\n\n    Under memory pressure, the mac80211 mesh code\n    may helpfully print a message that it failed\n    to clone a mesh frame and then will proceed\n    to crash trying to use it anyway. Fix that.\n\nAvoid the reference whenever the frame copy is unsuccessful\nregardless of the debug message being suppressed or printed.\n\nCc: stable@kernel.org [2.6.27+]\nSigned-off-by: Milton Miller \u003cmiltonm@bga.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "17f7f4d9fcce8f1b75b5f735569309dee7665968",
      "tree": "14d7e49ca0053a0fcab3c33b5023bf3f90c5c08a",
      "parents": [
        "041110a439e21cd40709ead4ffbfa8034619ad77",
        "d7c1255a3a21e98bdc64df8ccf005a174d7e6289"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/fib_frontend.c\n"
    },
    {
      "commit": "d7c1255a3a21e98bdc64df8ccf005a174d7e6289",
      "tree": "ded861029cdacd09b6c2e2de2896a671f71b02cf",
      "parents": [
        "d3c7e1ab043abd7706db4fbccf327df9e62f7990",
        "fc75fc8339e7727167443469027540b283daac71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 26 12:06:56 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 26 12:06:56 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)\n  ipv4: dont create routes on down devices\n  epic100: hamachi: yellowfin: Fix skb allocation size\n  sundance: Fix oopses with corrupted skb_shared_info\n  Revert \"ipv4: Allow configuring subnets as local addresses\"\n  USB: mcs7830: return negative if auto negotiate fails\n  irda: prevent integer underflow in IRLMP_ENUMDEVICES\n  tcp: fix listening_get_next()\n  atl1c: Do not use legacy PCI power management\n  mac80211: fix mesh forwarding\n  MAINTAINERS: email address change\n  net: Fix range checks in tcf_valid_offset().\n  net_sched: sch_sfq: fix allot handling\n  hostap: remove netif_stop_queue from init\n  mac80211/rt2x00: add ieee80211_tx_status_ni()\n  typhoon: memory corruption in typhoon_get_drvinfo()\n  net: Add USB PID for new MOSCHIP USB ethernet controller MCS7832 variant\n  net_sched: always clone skbs\n  ipv6: Fragment locally generated tunnel-mode IPSec6 packets as needed.\n  netlink: fix gcc -Wconversion compilation warning\n  asix: add USB ID for Logitec LAN-GTJ U2A\n  ...\n"
    },
    {
      "commit": "172128468f61e16e1427238278b9ad775584aa89",
      "tree": "2089bf1afd912c0b3ee0d486ed4be3a94517ca41",
      "parents": [
        "db7ec38d8e99f449856c11ffaef363a8eb5af90f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Dec 22 10:15:30 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 22 15:44:22 2010 -0500"
      },
      "message": "mac80211: cleanup select_queue\n\nThere\u0027s a redundant rcu_read_lock/unlock pair, a\nredundant variable, and a few redundant accesses\nto the 1d_to_ac array. Fix this to make the code\nneater and easier to follow.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "65a6538a56d4c7ae8465f2a8420ddc65877b6779",
      "tree": "b811e0bdd3b03bf5efcedb0039e1841fd57de981",
      "parents": [
        "67408c8c7b9daf28b50e33be3541334c07d15789"
      ],
      "author": {
        "name": "Luciano Coelho",
        "email": "luciano.coelho@nokia.com",
        "time": "Tue Dec 21 16:02:17 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 22 14:36:05 2010 -0500"
      },
      "message": "mac80211: check for CONFIG_MAC80211_LEDS in the tpt_led_trigger declaration\n\nIf CONFIG_MAC80211_LEDS is not set, ieee80211_i.h was failing to compile,\nbecause struct led_trigger is only declared when CONFIG_LEDS_TRIGGERS is\nset.\n\nThis patch adds ifdefs around the tpt_led_trigger declaration in\nieee80211_i.h to avoid the problem.\n\nSigned-off-by: Luciano Coelho \u003cluciano.coelho@nokia.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "67408c8c7b9daf28b50e33be3541334c07d15789",
      "tree": "ac11ea966add7f7187274fcf9e647c5227099108",
      "parents": [
        "e1e5406854378dfada3f33c7192b012083a5b8e0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Nov 30 08:59:23 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 22 14:33:37 2010 -0500"
      },
      "message": "mac80211: selective throughput LED trigger active\n\nThe throughput LED trigger was always active when\nthe radio was enabled. In most cases that\u0027s likely\nthe desired behaviour, but iwlwifi requires it to\nbe only active when one of the virtual interfaces\nis actually \"connected\" in some way.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e1e5406854378dfada3f33c7192b012083a5b8e0",
      "tree": "e878058f28b8f6db50ef5d73d09aed66dd9ad9f2",
      "parents": [
        "fe67c913f1ec2a01aaa9176c80ef36eaf87d705d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Nov 30 08:58:45 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 22 14:33:37 2010 -0500"
      },
      "message": "mac80211: add throughput based LED blink trigger\n\niwlwifi and other drivers like to blink their LED\nbased on throughput. Implement this generically in\nmac80211, based on a throughput table the driver\nspecifies. That way, drivers can set the blink\nfrequencies depending on their desired behaviour\nand max throughput.\n\nAll the drivers need to do is provide an LED class\ndevice, best with blink hardware offload.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "fe67c913f1ec2a01aaa9176c80ef36eaf87d705d",
      "tree": "4ac91b417d1693ac9b49cf46872bd90c4dceae2b",
      "parents": [
        "63e35cd9bd4c8ae085c8b9a70554595b529c4100"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Sat Nov 27 20:02:59 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 22 14:33:37 2010 -0500"
      },
      "message": "mac80211: make LED trigger names available early\n\nThe throughput trigger will require doing LED\nclassdev/trigger handling before register_hw(),\nso drivers should have access to the trigger\nnames before it. If trigger registration fails,\nthis will still make the trigger name available,\nbut that\u0027s not a big problem since the default\ntrigger will the simply not be found.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b51aff057c9d0ef6c529dc25fd9f775faf7b6c63",
      "tree": "57f268b9553fa77f5a5337fb5be4355c63b44d1b",
      "parents": [
        "b2b7ab22fa2e619c20917e825c0da7212ca2efc9"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Dec 22 10:15:07 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 22 13:36:35 2010 -0500"
      },
      "message": "mac80211: fix mesh forwarding\n\nUnder memory pressure, the mac80211 mesh code\nmay helpfully print a message that it failed\nto clone a mesh frame and then will proceed\nto crash trying to use it anyway. Fix that.\n\nCc: stable@kernel.org [2.6.27+]\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nAcked-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f8a0a781488ec7288d1049e5d2022850aa98f7b6",
      "tree": "3acab2f7a781ce3ed83bcd5350ac14b133dc0e45",
      "parents": [
        "4cd06a344db752f513437138953af191cbe9a691"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sat Dec 18 19:30:50 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:52:17 2010 -0500"
      },
      "message": "mac80211: fix potentially redundant skb data copying\n\nWhen an skb is shared, it needs to be duplicated, along with its data buffer.\nIf the skb does not have enough headroom, using skb_copy might cause the data\nbuffer to be copied twice (once by skb_copy and once by pskb_expand_head).\nFix this by using skb_clone initially and letting ieee80211_skb_resize sort\nout the rest.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4cd06a344db752f513437138953af191cbe9a691",
      "tree": "ec6a52da07449e20a10e59f2ee669467dd56089e",
      "parents": [
        "489ee9195a7de9e6bc833d639ff6b553ffdad90e"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sat Dec 18 19:30:49 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:52:17 2010 -0500"
      },
      "message": "mac80211: skip unnecessary pskb_expand_head calls\n\nIf the skb is not cloned and we don\u0027t need any extra headroom, there\nis no point in reallocating the skb head.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "489ee9195a7de9e6bc833d639ff6b553ffdad90e",
      "tree": "fe32219b2530610e70f5fe2923f96f565b8b987a",
      "parents": [
        "ae29fbb189c7a80677500c718c9ce08095ccde01"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sat Dec 18 19:30:48 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:52:17 2010 -0500"
      },
      "message": "mac80211: fix initialization of skb-\u003ecb in ieee80211_subif_start_xmit\n\nThe change \u0027mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs\u0027\nadded a check for copying the skb if it\u0027s shared, however the tx info variable\nstill points at the cb of the old skb\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nAcked-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "61ad5394590c5c5338ab4ec50553d809a9996d50",
      "tree": "e10a19ac4a14124ff223c29ed18a97b624e5244b",
      "parents": [
        "3de135dba9341a3d10a7a5b9533ce11cb77d4f4d"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Thu Dec 16 17:23:34 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:49:47 2010 -0500"
      },
      "message": "mac80211: Remove unused third address from mesh address extension header.\n\nThe Mesh Control header only includes 0, 1 or 2 addresses. If there is\none address, it should be interpreted as Address 4.  If there are 2,\nthey are interpreted as Addresses 5 and 6 (Address 4 being the 4th\naddress in the 802.11 header).\n\nThe address extension used to hold up to 3 addresses instead of the current 2.\nI\u0027m not sure which draft version changed this, but it is very unlikely that it\nwill change again given the state of the approval process of this draft.  See\nsection 7.1.3.6.3 in current draft (8.0).\n\nAlso, note that the extra address that I\u0027m removing was not being used, so this\nchange has no effect on over-the-air frame formats.  But I thought I better\nremove it before someone does start using it.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c7108a7111cd9e592d6ad498be37276dbea75d2b",
      "tree": "dab25dbb5607c4151629bf747ee10b4487772419",
      "parents": [
        "c80d545da3f7c0e534ccd4a780f322f80a92cff1"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Thu Dec 16 17:37:50 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:46:58 2010 -0500"
      },
      "message": "mac80211: Send mesh non-HWMP path selection frames to userspace\n\nLet path selection frames for protocols other than HWMP be sent to\nuserspace via NL80211_CMD_REGISTER_FRAME.  Also allow userspace to send\nand receive mesh path selection frames.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c80d545da3f7c0e534ccd4a780f322f80a92cff1",
      "tree": "edd5c51676b4677fc1a0b2fc692ffe97df863f25",
      "parents": [
        "24bdd9f4c9af75b33b438d60381a67626de0128d"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Thu Dec 16 17:37:49 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:46:57 2010 -0500"
      },
      "message": "mac80211: Let userspace enable and configure vendor specific path selection.\n\nUserspace will now be allowed to toggle between the default path\nselection algorithm (HWMP, implemented in the kernel), and a vendor\nspecific alternative.  Also in the same patch, allow userspace to add\ninformation elements to mesh beacons.  This is accordance with the\nExtensible Path Selection Framework specified in version 7.0 of the\n802.11s draft.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "24bdd9f4c9af75b33b438d60381a67626de0128d",
      "tree": "f5ff8c4f9ec2a7cdb976f419532179f2c46b06e8",
      "parents": [
        "8a09d6d80c90c02f2f8c89f69c702cab0c8d9b42"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Thu Dec 16 17:37:48 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 20 14:46:57 2010 -0500"
      },
      "message": "mac80211: Rename mesh_params to mesh_config to prepare for mesh_setup\n\nMesh parameters can be to setup a mesh or to configure it.\nThis patch renames the ambiguous name mesh_params to mesh_config\nin preparation for mesh_setup.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "cf4e594ea7e55555e81647b74a3a8e8b2826a529",
      "tree": "794013429d9613ef253111fb50f993600ab14a55",
      "parents": [
        "5928b91acae97622a6f2e679eb7a9f19bed68e3e"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "j@w1.fi",
        "time": "Thu Dec 16 00:52:40 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 16 15:22:30 2010 -0500"
      },
      "message": "nl80211: Add notification for dropped Deauth/Disassoc\n\nAdd a new notification to indicate that a received, unprotected\nDeauthentication or Disassociation frame was dropped due to\nmanagement frame protection being in use. This notification is\nneeded to allow user space (e.g., wpa_supplicant) to implement\nSA Query procedure to recover from association state mismatch\nbetween an AP and STA.\n\nThis is needed to avoid getting stuck in non-working state when MFP\n(IEEE 802.11w) is used and a protected Deauthentication or\nDisassociation frame is dropped for any reason. After that, the\nstation would silently discard any unprotected Deauthentication or\nDisassociation frame that could be indicating that the AP does not\nhave association for the STA (when the Reason Code would be 6 or 7).\nIEEE Std 802.11w-2009, 11.13 describes this recovery mechanism.\n\nSigned-off-by: Jouni Malinen \u003cj@w1.fi\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "38cd6b4f52a75926fd81fc85f53f5067dcd809f7",
      "tree": "12c532a77c4ee615fbd53b097d098f09fbfdf220",
      "parents": [
        "2b7e6bce41b6b944bd4302cf0914e2a6f4bc704b"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Wed Dec 15 14:27:28 2010 +0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 15 17:04:08 2010 -0500"
      },
      "message": "wireless:mac80211: kill unuse macro MESH_CFG_CMP_LEN in mesh.h\n\nCommit 00d3f14c has removed the references of this macro,\nbut left it only. So remove this definition.\n\ncommit 00d3f14cf9f12c21428121026a5e1d5f65926447\nAuthor: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nDate:   Tue Feb 10 21:26:00 2009 +0100\n\n    mac80211: use cfg80211s BSS infrastructure\n\n    Remove all the code from mac80211 to keep track of BSSes\n    and use the cfg80211-provided code completely.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "bd2ce6e43f65127bc723e7fcc044758cf8113260",
      "tree": "46eeb3f454619549d563addd8eff3b4d5475179f",
      "parents": [
        "a293911d4fd5e8593dbf478399a77f990d466269"
      ],
      "author": {
        "name": "Sujith Manoharan",
        "email": "Sujith.Manoharan@atheros.com",
        "time": "Wed Dec 15 07:47:10 2010 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 15 17:03:59 2010 -0500"
      },
      "message": "mac80211: Add timeout to BA session start API\n\nAllow drivers or rate control algorithms to specify BlockAck session\ntimeout when initiating an ADDBA transaction. This is useful in cases\nwhere maintaining persistent BA sessions does not incur any overhead.\n\nThe current timeout value of 5000 TUs is retained for all non ath9k/ath9k_htc\ndrivers.\n\nSigned-off-by: Sujith Manoharan \u003cSujith.Manoharan@atheros.com\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a293911d4fd5e8593dbf478399a77f990d466269",
      "tree": "826f614f178e915c4d2c08aba9ca5b2a38f78c75",
      "parents": [
        "14a085e77063090fb12ad391d0f4d46e593be225"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Dec 14 17:54:28 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 15 17:03:56 2010 -0500"
      },
      "message": "nl80211: advertise maximum remain-on-channel duration\n\nWith the upcoming hardware offload implementation,\nsome devices will have a different maximum duration\nfor the remain-on-channel command. Advertise the\nmaximum duration in mac80211, and make mac80211 set\nit.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1fcfe76a760e78d7774a254608557c84071b0cfb",
      "tree": "2659028625a15a6bcbef350d16ace21982f714d4",
      "parents": [
        "0c8173385e549f95cd80c3fff5aab87b4f881d8d",
        "56e6417b49132d4f56e9f2241d31942b90b46315"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 15 16:33:28 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 15 16:33:28 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\nConflicts:\n\tdrivers/net/wireless/iwlwifi/iwl-1000.c\n\tdrivers/net/wireless/iwlwifi/iwl-6000.c\n\tdrivers/net/wireless/iwlwifi/iwl-core.h\n"
    },
    {
      "commit": "b4fe2a03422e6bd20bd8df5e428109a85c9ea961",
      "tree": "b6505c0599251421fef39c9fa0655f255aac9ed6",
      "parents": [
        "85cb7f1264c4d9e60ccdce52740238222e77ccd0",
        "2a27a03d3a891e87ca33d27a858b4db734a4cbab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 14 17:33:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 14 17:33:40 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (75 commits)\n  pppoe.c: Fix kernel panic caused by __pppoe_xmit\n  WAN: Fix a TX IRQ causing BUG() in PC300 and PCI200SYN drivers.\n  bnx2x: Advance a version number to 1.60.01-0\n  bnx2x: Fixed a compilation warning\n  bnx2x: LSO code was broken on BE platforms\n  qlge: Fix deadlock when cancelling worker.\n  net: fix skb_defer_rx_timestamp()\n  cxgb4vf: Ingress Queue Entry Size needs to be 64 bytes\n  phy: add the IC+ IP1001 driver\n  atm: correct sysfs \u0027device\u0027 link creation and parent relationships\n  MAINTAINERS: remove me from tulip\n  SCTP: Fix SCTP_SET_PEER_PRIMARY_ADDR to accpet v4mapped address\n  enic: Bug Fix: Pass napi reference to the isr that services receive queue\n  ipv6: fix nl group when advertising a new link\n  connector: add module alias\n  net: Document the kernel_recvmsg() function\n  r8169: Fix runtime power management\n  hso: IP checksuming doesn\u0027t work on GE0301 option cards\n  xfrm: Fix xfrm_state_migrate leak\n  net: Convert netpoll blocking api in bonding driver to be a counter\n  ...\n"
    },
    {
      "commit": "207aba6018a7b1757b5248ced2b280d20790c498",
      "tree": "389a28450425d266f077d6bb8119d5e6e1666779",
      "parents": [
        "9abbfb27dd96361187bb3872b2c349a76f5e09e9"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Dec 10 17:10:44 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:23:30 2010 -0500"
      },
      "message": "mac80211: support IBSS RSN with SW crypto\n\nWhen software crypto is used, mac80211 will\nsupport IBSS RSN, it doesn\u0027t depend on the\ndriver in that case.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "91f44b02992f632ac6c070f985cd58d5acee4199",
      "tree": "2227e620b444c41398e88d2570fd0838dd856bd3",
      "parents": [
        "42ab135fe78025910bed8ff56e00a375f2b04db1"
      ],
      "author": {
        "name": "Tim Harvey",
        "email": "harvey.tim@gmail.com",
        "time": "Thu Dec 09 13:15:45 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:23:29 2010 -0500"
      },
      "message": "mac80211 default tx_last_beacon false (congestion)\n\nThe 802.11 spec states that the STA that generated the last Beacon frame shall\nbe the STA that response to a probe request.  This is important for congestion\nreduction when a probe request is received - only 1 node in an adhoc BSS\nwill transmit a response.  While mac80211 drivers should provide the\ntx_last_beacon function to report if they transmitted the last beacon many\ndo not.  As an attempt to reduce probe response congestion default this\nto 0 such that a node not implementing this capability does not contribute\nto unnecessary congestion.\n\nIn a modern medium sized office environment I see upwards of 100 probe\nrequests per second received at a given node from various hardware/OS/drivers\ndoing zeroconf \u0027active probing\u0027 as opposed to passively listening for beacons.\nWith a modest 10-node adhoc network consisting of drivers that do not implement\nthis tx_last_beacon feature, I have seen this result in the simultaneous xmit\nof probe responses accumulating to 500 probe responses per second because of\ncollisions which brings the adhoc network to its knees as well as causes\nneedless congestion.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f7e0104c1a4e77cc4f23d5969b0677bdc4f62c63",
      "tree": "6d1622ec2f6152b611867df1b7a0269471655b53",
      "parents": [
        "dbd2fd656f2060abfd3a16257f8b51ec60f6d2ed"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Dec 09 19:49:02 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:23:29 2010 -0500"
      },
      "message": "mac80211: support separate default keys\n\nAdd support for split default keys (unicast\nand multicast) in mac80211.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dbd2fd656f2060abfd3a16257f8b51ec60f6d2ed",
      "tree": "71e61430bd8593f2ad8f1c741b5a8a8be4a9d690",
      "parents": [
        "897bed8b4320774e56f282cdc1cceb4d77442797"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Dec 09 19:58:59 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:23:28 2010 -0500"
      },
      "message": "cfg80211/nl80211: separate unicast/multicast default TX keys\n\nAllow userspace to specify that a given key\nis default only for unicast and/or multicast\ntransmissions. Only WEP keys are for both,\nWPA/RSN keys set here are GTKs for multicast\nonly. For more future flexibility, allow to\nspecify all combiations.\n\nWireless extensions can only set both so use\nnl80211; WEP keys (connect keys) must be set\nas default for both (but 802.1X WEP is still\npossible).\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "897bed8b4320774e56f282cdc1cceb4d77442797",
      "tree": "5b0a61044ec2a1b3e41d2435ed3dff652eebac82",
      "parents": [
        "f33fdcf1b3a02fb92971a577d194ec6c579374af"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Dec 09 19:49:00 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:23:28 2010 -0500"
      },
      "message": "mac80211: clean up RX key checks\n\nUsing the default key for \"any key set\" isn\u0027t\nquite what we should do. It works, but with the\nupcoming changes it makes life unnecessarily\ncomplex, so do something better here and really\ncheck for \"any key\".\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8808f64171deec62346888e156e3adb636e2a31a",
      "tree": "7f34fd8c560b0fdb4426fe4dfcf16029a8ccb3c6",
      "parents": [
        "16cad7fba037b34ca32cc0adac65bc089d969fb8"
      ],
      "author": {
        "name": "Herton Ronaldo Krzesinski",
        "email": "herton@mandriva.com.br",
        "time": "Mon Dec 13 11:43:51 2010 -0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 14:55:08 2010 -0500"
      },
      "message": "mac80211: avoid calling ieee80211_work_work unconditionally\n\nOn suspend, there might be usb wireless drivers which wrongly trigger\nthe warning in ieee80211_work_work. If an usb driver doesn\u0027t have a\nsuspend hook, the usb stack will disconnect the device. On disconnect,\na mac80211 driver calls ieee80211_unregister_hw, which calls dev_close,\nwhich calls ieee80211_stop, and in the end calls ieee80211_work_purge-\u003e\nieee80211_work_work.\n\nThe problem is that this call to ieee80211_work_purge comes after\nmac80211 is suspended, triggering the warning even when we don\u0027t have\nwork queued in work_list (the expected case when already suspended),\nbecause it always calls ieee80211_work_work.\n\nSo, just call ieee80211_work_work in ieee80211_work_purge if we really\nhave to abort work. This addresses the warning reported at\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d24402\n\nSigned-off-by: Herton Ronaldo Krzesinski \u003cherton@mandriva.com.br\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c926d006c1514cfb3572893f41f2324e96823661",
      "tree": "b76f1ac5f172f7a5ee47da767cdc31bd4e164e32",
      "parents": [
        "4a55d5852adbe66722fb1636c82c7864cd5be441"
      ],
      "author": {
        "name": "Tim Harvey",
        "email": "harvey.tim@gmail.com",
        "time": "Thu Dec 09 10:43:13 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 14:53:46 2010 -0500"
      },
      "message": "mac80211: Fix NULL-pointer deference on ibss merge when not ready\n\ndev_open will eventually call ieee80211_ibss_join which sets up the\nskb used for beacons/probe-responses however it is possible to\nreceive beacons that attempt to merge before this occurs causing\na null pointer dereference.  Check ssid_len as that is the last\nthing set in ieee80211_ibss_join.\n\nThis occurs quite easily in the presence of adhoc nodes with hidden SSID\u0027s\n\nrevised previous patch to check further up based on irc feedback\n\nSigned-off-by: Tim Harvey \u003charvey.tim@gmail.com\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "393934c6b5c8d00f9d1ae20670d4a770f07a418a",
      "tree": "dad33cd2e4fc0e3d3b28dcbc36cfb44178cb046c",
      "parents": [
        "69f4aab1157d2a386e7ea4de77cc253629d1b4f2",
        "0a54917c3fc295cb61f3fb52373c173fd3b69f48"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 16:23:31 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 16:23:31 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\nConflicts:\n\tdrivers/net/wireless/ath/ath9k/ath9k.h\n\tdrivers/net/wireless/ath/ath9k/main.c\n\tdrivers/net/wireless/ath/ath9k/xmit.c\n"
    },
    {
      "commit": "2f886750118c1781d3b53268bf25519aef1d4d71",
      "tree": "6cac9d2513ad1cf09ee970eea4e7d8a5c3bdd98b",
      "parents": [
        "155180803c95c7b14b355f60431bef45116c151e"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Tue Dec 07 11:27:01 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 15:38:44 2010 -0500"
      },
      "message": "mac80211: Show max number of probe tries in debug message.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "80d7e403c97b712e302ec37e9beceff1dbdc9402",
      "tree": "43c158c73afe35160fc7b5415e7f1cac821b1689",
      "parents": [
        "50b12f597be354a5a224f05c65c54c0667e57aec"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Fri Nov 19 12:40:26 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 15:38:43 2010 -0500"
      },
      "message": "mac80211: Apply ht_opmode changes in ieee80211_change_bss\n\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7e2447075690860e2cea96b119fc9cadbaa7e83c",
      "tree": "1bede27944240867d96e0440fbadb254b04368cd",
      "parents": [
        "f933ebed7888a9a7d73ebeeb6bcbb3f710c423b4"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Thu Dec 02 18:44:09 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 08 15:23:48 2010 -0500"
      },
      "message": "mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs\n\nmac80211 doesn\u0027t handle shared skbs correctly at the moment. As a result\na possible resize can trigger a BUG in pskb_expand_head.\n\n[  676.030000] Kernel bug detected[#1]:\n[  676.030000] Cpu 0\n[  676.030000] $ 0   : 00000000 00000000 819662ff 00000002\n[  676.030000] $ 4   : 81966200 00000020 00000000 00000020\n[  676.030000] $ 8   : 819662e0 800043c0 00000002 00020000\n[  676.030000] $12   : 3b9aca00 00000000 00000000 00470000\n[  676.030000] $16   : 80ea2000 00000000 00000000 00000000\n[  676.030000] $20   : 818aa200 80ea2018 80ea2000 00000008\n[  676.030000] $24   : 00000002 800ace5c\n[  676.030000] $28   : 8199a000 8199bd20 81938f88 80f180d4\n[  676.030000] Hi    : 0000026e\n[  676.030000] Lo    : 0000757e\n[  676.030000] epc   : 801245e4 pskb_expand_head+0x44/0x1d8\n[  676.030000]     Not tainted\n[  676.030000] ra    : 80f180d4 ieee80211_skb_resize+0xb0/0x114 [mac80211]\n[  676.030000] Status: 1000a403    KERNEL EXL IE\n[  676.030000] Cause : 10800024\n[  676.030000] PrId  : 0001964c (MIPS 24Kc)\n[  676.030000] Modules linked in: mac80211_hwsim rt2800lib rt2x00soc rt2x00pci rt2x00lib mac80211 crc_itu_t crc_ccitt cfg80211 compat arc4 aes_generic deflate ecb cbc [last unloaded: rt2800pci]\n[  676.030000] Process kpktgend_0 (pid: 97, threadinfo\u003d8199a000, task\u003d81879f48, tls\u003d00000000)\n[  676.030000] Stack : ffffffff 00000000 00000000 00000014 00000004 80ea2000 00000000 00000000\n[  676.030000]         818aa200 80f180d4 ffffffff 0000000a 81879f78 81879f48 81879f48 00000018\n[  676.030000]         81966246 80ea2000 818432e0 80f1a420 80203050 81814d98 00000001 81879f48\n[  676.030000]         81879f48 00000018 81966246 818432e0 0000001a 8199bdd4 0000001c 80f1b72c\n[  676.030000]         80203020 8001292c 80ef4aa2 7f10b55d 801ab5b8 81879f48 00000188 80005c90\n[  676.030000]         ...\n[  676.030000] Call Trace:\n[  676.030000] [\u003c801245e4\u003e] pskb_expand_head+0x44/0x1d8\n[  676.030000] [\u003c80f180d4\u003e] ieee80211_skb_resize+0xb0/0x114 [mac80211]\n[  676.030000] [\u003c80f1a420\u003e] ieee80211_xmit+0x150/0x22c [mac80211]\n[  676.030000] [\u003c80f1b72c\u003e] ieee80211_subif_start_xmit+0x6f4/0x73c [mac80211]\n[  676.030000] [\u003c8014361c\u003e] pktgen_thread_worker+0xfac/0x16f8\n[  676.030000] [\u003c8002ebe8\u003e] kthread+0x7c/0x88\n[  676.030000] [\u003c80008e0c\u003e] kernel_thread_helper+0x10/0x18\n[  676.030000]\n[  676.030000]\n[  676.030000] Code: 24020001  10620005  2502001f \u003c0200000d\u003e 0804917a  00000000  2502001f  00441023  00531021\n\nFix this by making a local copy of shared skbs prior to mangeling them.\nTo avoid copying the skb unnecessarily move the skb_copy call below the\nchecks that don\u0027t need write access to the skb.\n\nAlso, move the assignment of nh_pos and h_pos below the skb_copy to point\nto the correct skb.\n\nIt would be possible to avoid another resize of the copied skb by using\nskb_copy_expand instead of skb_copy but that would make the patch more\ncomplex. Also, shared skbs are a corner case right now, so the resize\nshouldn\u0027t matter much.\n\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7659a193f94c0003dd06e9e874d19bade1a8c952",
      "tree": "a7f69f67f61f21ee7733f943ecedd1dceaac1a2e",
      "parents": [
        "cae6b74d907e2abd22d496fe30417b088d3302cf"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Tue Dec 07 10:41:47 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Dec 07 17:08:09 2010 -0500"
      },
      "message": "mac80211: Fix compilation error when mesh is disabled\n\nWrap mesh sections inside CONFIG_MAC80211_MESH to fix compilation\nproblems reported by Stephen Rothwell, Larry Finger and Bruno Randolf.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c658e5db01117bf2a321a9a782754dd5b10e2f15",
      "tree": "a68f935abc84b9af0446fa1979477bd08f429d51",
      "parents": [
        "22d8d9f81b8b054df2f7f82daffcb71608f411e4"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue Dec 07 04:40:18 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Dec 07 17:08:06 2010 -0500"
      },
      "message": "mac80211: fix a compiler warning\n\nnet/mac80211/mlme.c: In function \u0027ieee80211_sta_work\u0027:\nnet/mac80211/mlme.c:1981: warning: too many arguments for format\n\nIntroduced by commit 04ac3c0ee2c773c321ec472d892635a20556f34d\n(\"mac80211: speed up AP probing using nullfunc frames\").\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0ab82b04ac83a05bda3ef8499f415fc6fd6ee206",
      "tree": "42fd6de641a1d620469df84c787340b6e089eaa7",
      "parents": [
        "329b32fedc94fd9158f1635ac64f4ae6a00d374c"
      ],
      "author": {
        "name": "Eliad Peller",
        "email": "eliad@wizery.com",
        "time": "Fri Dec 03 02:16:23 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Dec 07 16:09:13 2010 -0500"
      },
      "message": "mac80211: fix dynamic-ps/pm_qos magic numbers\n\nmac80211 uses pm_qos (/dev/network_latency) in order to determine the\ndynamic ps timeout (or disable the dynamic-ps at all in some cases).\n\ncommit ff616381 added a comparison for the current network_latency\nagainst one high value (1900ms), and against the default value\n(2000sec, rather than the commented 2sec).\n\nhowever, the representation of 1900ms was incorrect:\n1900ms \u003d 1900000us ( !\u003d 1900000000 )\n\nfix it by using USEC_TO_MSEC/SEC consts.\n\nSigned-off-by: Eliad Peller \u003celiad@wizery.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "541a45a142df281c974d74eac2066138fc107b23",
      "tree": "b96f4808c3f17f2f560db9569ca2b08dba9eab67",
      "parents": [
        "22de94de7de78b8de2fb1f2df5aa85b5556cfcfd"
      ],
      "author": {
        "name": "Bruno Randolf",
        "email": "br1@einfach.org",
        "time": "Thu Dec 02 19:12:43 2010 +0900"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Dec 07 16:09:12 2010 -0500"
      },
      "message": "nl80211/mac80211: Report signal average\n\nExtend nl80211 to report an exponential weighted moving average (EWMA) of the\nsignal value. Since the signal value usually fluctuates between different\npackets, an average can be more useful than the value of the last packet.\n\nThis uses the recently added generic EWMA library function.\n\n--\nv2:\tfix ABI breakage and change factor to be a power of 2.\n\nSigned-off-by: Bruno Randolf \u003cbr1@einfach.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "29cbe68c516a48a9a88b3226878570c6cbd83c02",
      "tree": "4774f8a3a244236234a521baa4d1ae5b3e1494ba",
      "parents": [
        "bd90fdcc5fbd99a2a778999610420cf793bd1be2"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Dec 03 09:20:44 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 16:01:29 2010 -0500"
      },
      "message": "cfg80211/mac80211: add mesh join/leave commands\n\nInstead of tying mesh activity to interface up,\nadd join and leave commands for mesh. Since we\nmust be backward compatible, let cfg80211 handle\njoining a mesh if a mesh ID was pre-configured\nwhen the device goes up.\n\nNote that this therefore must modify mac80211 as\nwell since mac80211 needs to lose the logic to\nstart the mesh on interface up.\n\nWe now allow querying mesh parameters before the\nmesh is connected, which simply returns defaults.\nSetting them (internally renamed to \"update\") is\nonly allowed while connected. Specify them with\nthe new mesh join command instead where needed.\n\nIn mac80211, beaconing must now also follow the\nmesh enabled/not enabled state, which is done\nby testing the mesh ID.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f9e10ce4cf86945eb5efcab31284c971877ed012",
      "tree": "a56ec8ed84019901bf92aa969e366afb8b8ce36b",
      "parents": [
        "09b174702601079c3a04806754be30ffbd70db4d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Dec 03 09:20:42 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 16:01:28 2010 -0500"
      },
      "message": "cfg80211: require add_virtual_intf to return new dev\n\ncfg80211 used to do all its bookkeeping in\nthe notifier, but some new stuff will have\nto use local variables so make the callback\nreturn the netdev pointer.\n\nTested-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "09b174702601079c3a04806754be30ffbd70db4d",
      "tree": "a98e00fafeb106a8d9fb3d336250bb4220be09ac",
      "parents": [
        "45904f21655cf4f0ae7d0fab5906fe51bf56ecf4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Dec 03 09:20:41 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 16:01:28 2010 -0500"
      },
      "message": "mac80211: move mesh filter adjusting\n\nLogically, the filter adjusting belongs with\nstarting/stopping mesh, not interface up/down,\nso move it there.\n\nTested-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "45904f21655cf4f0ae7d0fab5906fe51bf56ecf4",
      "tree": "fd023d65b881b6cfcf1529eed7c1ad2523c166e1",
      "parents": [
        "b9e61f11f47035e3b4545b51fb547fef48eb3096"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Fri Dec 03 09:20:40 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 16:01:28 2010 -0500"
      },
      "message": "nl80211/mac80211: define and allow configuring mesh element TTL\n\nThe TTL in path selection information elements is different from\nthe mesh ttl used in mesh data frames.  Version 7.03 of the 11s\ndraft calls this ttl \u0027Element TTL\u0027.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "04ac3c0ee2c773c321ec472d892635a20556f34d",
      "tree": "e9a3bf81d8feec787fa5b4c5c156652de5313c83",
      "parents": [
        "75706d0e9d19601534446982b70102bb9327169b"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Thu Dec 02 21:01:08 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 15:58:44 2010 -0500"
      },
      "message": "mac80211: speed up AP probing using nullfunc frames\n\nIf the nullfunc frame used to probe the AP was not acked, there is no point\nin waiting for the probe timeout, so advance to the next try (or disconnect)\nimmediately.\nIf we do reach the probe timeout without having received a tx status, the\nconnection is probably really bad and worth disconnecting.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "75706d0e9d19601534446982b70102bb9327169b",
      "tree": "9379d9325198b2afab9d83bbb684fe7cdb2cd800",
      "parents": [
        "af5568843594fb71055debe36e521fa8072fcecc"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Thu Dec 02 21:01:07 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 15:58:43 2010 -0500"
      },
      "message": "mac80211: remove a redundant check\n\nieee80211_is_nullfunc() implies ieee80211_is_data()\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c1ce5a74d113f221d40625bd3ad83df2db2695b7",
      "tree": "29456d61473f3273d83420e3fa12f7476657adfd",
      "parents": [
        "5f79ed3b1aa7af260c82ba714b90907070aeca7a"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Wed Dec 01 16:34:45 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 15:58:43 2010 -0500"
      },
      "message": "mac80211: Update last_tx_rate only for data frames\n\nThe last_tx_rate field was also updated for non-data frames that are\noften sent with a lower rate (for example management frames at 1 Mbps).\nThis is confusing when the data rate is actually much higher.\n\nHence, only update the last_tx_rate field with tx rate information\ngathered from last data frames.\n\nIf the rate control algorithm filled in txrc.reported_rate we don\u0027t need\nto verify this information.\n\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0bae35e14b68f5e7075bc96e5ea608b42bdf8f59",
      "tree": "c7aaf04160c9278d2d4f9466980dfca501258442",
      "parents": [
        "e172662d113ceb22db727a979bb35b9c02f703b5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Dec 02 14:31:14 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 02 14:51:15 2010 -0800"
      },
      "message": "leds: fix up dependencies\n\nIt\u0027s not useful to build LED triggers when there\u0027s no LEDs that can be\ntriggered by them.  Therefore, fix up the dependencies so that this\ncannot happen, and fix a few users that select triggers to depend on\nLEDS_CLASS as well (there is also one user that also selects LEDS_CLASS,\nwhich is OK).\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arnd Hannemann \u003carnd@arndnet.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Richard Purdie \u003crpurdie@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09f921f83faa49cdea25abfb98c439c01526b89d",
      "tree": "1e8ee5c8f14e0e57965eca81bc6725288fd3597b",
      "parents": [
        "4cebb34caa5122216a1e2451eae9e0fc47ec2589",
        "d89197c7f34934fbb0f96d938a0d6cfe0b8bcb1c"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 02 15:46:37 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 02 15:46:37 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\nConflicts:\n\tdrivers/net/wireless/ath/ath9k/ar9003_eeprom.c\n"
    },
    {
      "commit": "08ca944eb240b2299e743c76b43fbc7c2dd251de",
      "tree": "9782965ad4754969685cfd440b81ded25d4d6023",
      "parents": [
        "20ed3166c84d145589a89d8cde12aa32cf2d17f4"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Tue Nov 30 12:19:34 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 30 13:58:07 2010 -0500"
      },
      "message": "mac80211: Minor optimization in ieee80211_rx_h_data\n\nRemove a superfluous ieee80211_is_data check as that was checked a few\nlines before already and we wont\u0027t get here for non-data frames at all.\n\nSecond, the frame was already converted to 802.3 header format and\nreading the fc and addr1 fields was only possible because the 802.3\nheader is short enough and didn\u0027t overwrite the relevant parts of the\n802.11 header. Make the code more obvious by checking the ethernet\nheader\u0027s h_dest field.\n\nFurthermore reorder the conditions to reduce the number of checks\nwhen dynamic powersave is not needed (AP mode for example).\n\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8e26d5ad2f9c038609d42eebc676cd1107709eef",
      "tree": "64faf31c3f8dcc4000b06c21a6df147f2f522d18",
      "parents": [
        "2c31333a8fde7e26936a9f5371d02ff12c490993"
      ],
      "author": {
        "name": "Senthil Balasubramanian",
        "email": "senthilkumar@atheros.com",
        "time": "Tue Nov 30 20:15:38 2010 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 30 13:45:02 2010 -0500"
      },
      "message": "mac80211: Fix STA disconnect due to MIC failure\n\nTh commit titled \"mac80211: clean up rx handling wrt. found_sta\"\nremoved found_sta variable which caused a MIC failure event\nto be reported twice for a single failure to supplicant resulted\nin STA disconnect.\n\nThis should fix WPA specific countermeasures WiFi test case (5.2.17)\nissues with mac80211 based drivers which report MIC failure events in\nrx status.\n\nCc: Stable \u003cstable@kernel.org\u003e (2.6.37)\nSigned-off-by: Senthil Balasubramanian \u003csenthilkumar@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2c31333a8fde7e26936a9f5371d02ff12c490993",
      "tree": "75bb0fc716caa240e7afc0245da0b5089bd3e420",
      "parents": [
        "cf63495d0dbe435b475a44672f5dee150da6471b"
      ],
      "author": {
        "name": "Christian Lamparter",
        "email": "chunkeey@googlemail.com",
        "time": "Mon Nov 29 20:53:23 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 30 13:23:06 2010 -0500"
      },
      "message": "mac80211: ignore non-bcast mcast deauth/disassoc franes\n\nThis patch fixes an curious issue due to insufficient\nrx frame filtering.\n\nSaqeb Akhter reported frequent disconnects while streaming\nvideos over samba: \u003chttp://marc.info/?m\u003d128600031109136\u003e\n\u003e [ 1166.512087] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)\n\u003e [ 1526.059997] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)\n\u003e [ 2125.324356] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)\n\u003e [...]\n\nThe reason is that the device generates frames with slightly\nbogus SA/TA addresses.\n\ne.g.:\n [ 2314.402316] Ignore 9f:1f:31:f8:64:ff\n [ 2314.402321] Ignore 9f:1f:31:f8:64:ff\n [ 2352.453804] Ignore 0d:1f:31:f8:64:ff\n [ 2352.453808] Ignore 0d:1f:31:f8:64:ff\n \t\t\t\t\t   ^^ the group-address flag is set!\n (the correct SA/TA would be: 00:1f:31:f8:64:ff)\n\nSince the AP does not know from where the frames come, it\ngenerates a DEAUTH response for the (invalid) mcast address.\nThis mcast deauth frame then passes through all filters and\ntricks the stack into thinking that the AP brutally kicked\nus!\n\nThis patch fixes the problem by simply ignoring\nnon-broadcast, group-addressed deauth/disassoc frames.\n\nCc: Jouni Malinen \u003cj@w1.fi\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nReported-by: Saqeb Akhter \u003csaqeb.akhter@gmail.com\u003e\nSigned-off-by: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dd318575ff0aae91ac4cbcc5b60c184e59267212",
      "tree": "140a0104b99b8edef7b961b4de9182e092782cf9",
      "parents": [
        "8b7f8532d15631776ce8bec2bbbc58f6aad738d1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon Nov 29 11:09:16 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 29 15:30:30 2010 -0500"
      },
      "message": "mac80211: fix RX aggregation locking\n\nThe RX aggregation locking documentation was\nwrong, which led Christian to also code the\ntimer timeout handling for it somewhat wrongly.\n\nFix the documentation, the two places that\nneed to hold the reorder lock across accesses\nto the structure, and the debugfs code that\nshould just use RCU.\n\nAlso, remove acquiring the sta-\u003elock across\nreorder timeouts since it isn\u0027t necessary, and\nchange a few places to GFP_KERNEL because the\ncode path here doesn\u0027t need atomic allocations\nas I noticed when reviewing all this.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nAcked-by: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f30221e4ec62d905b56d5e8f7ccab6b406a97cf5",
      "tree": "07d3a4cf6da15a3622dd79c1d72e0e5c9201566a",
      "parents": [
        "f7ca38dfe58c20cb1aa2ed9643187e8b194b5bae"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Nov 25 10:02:30 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 29 15:24:35 2010 -0500"
      },
      "message": "mac80211: implement off-channel mgmt TX\n\nThis implements the new off-channel TX API\nin mac80211 with a new work item type. The\noperation doesn\u0027t add a new work item when\nwe\u0027re on the right channel and there\u0027s no\nwait time so that for example p2p probe\nresponses will be transmitted without delay.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f7ca38dfe58c20cb1aa2ed9643187e8b194b5bae",
      "tree": "42db54588fd5fa769a16def75708117903577b40",
      "parents": [
        "9a67d761b39614c0495dcab9a204e21a9f4c4d31"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Nov 25 10:02:29 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 29 15:24:35 2010 -0500"
      },
      "message": "nl80211/cfg80211: extend mgmt-tx API for off-channel\n\nWith p2p, it is sometimes necessary to transmit\na frame (typically an action frame) on another\nchannel than the current channel. Enable this\nthrough the CMD_FRAME API, and allow it to wait\nfor a response. A new command allows that wait\nto be aborted.\n\nHowever, allow userspace to specify whether or\nnot it wants to allow off-channel TX, it may\nactually want to use the same channel only.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7dff3125534c1d035a910052335a3a39fbb31aa7",
      "tree": "533142aacfc3d49067449173fb006225f41bc459",
      "parents": [
        "46047784b8cdcfc916f6c1cccee0c18dd1223dfd"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "jouni.malinen@atheros.com",
        "time": "Fri Nov 26 20:41:55 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 29 14:41:28 2010 -0500"
      },
      "message": "mac80211: Fix frame injection using non-AP vif\n\nIn order for frame injection to work properly for some use cases\n(e.g., finding the station entry and keys for encryption), mac80211\nneeds to find the correct sdata entry. This works when the main vif\nis in AP mode, but commit a2c1e3dad516618cb0fbfb1a62c36d0b0744573a\nbroke this particular use case for station main vif. While this type of\ninjection is quite unusual operation, it has some uses and we should fix\nit. Do this by changing the monitor vif sdata selection to allow station\nvif to be selected instead of limiting it to just AP vifs. We still need\nto skip some iftypes to avoid selecting unsuitable vif for injection.\n\nSigned-off-by: Jouni Malinen \u003cjouni.malinen@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "99ba2a14283be96a682e04455061c08a46bbf4ec",
      "tree": "120520c075528d7ef5a32bb8782c82b7c7e972eb",
      "parents": [
        "c063dbf52b998b852122dff07a8b8dd430b38437"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Nov 24 08:10:06 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:36 2010 -0500"
      },
      "message": "mac80211: implement packet loss notification\n\nFor drivers that have accurate TX status reporting\nwe can report the number of consecutive lost packets\nto userspace using the new cfg80211 CQM event. The\nthreshold is fixed right now, this may need to be\nimproved in the future.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "48124d1a91fb77defc9734b4556350d59671fb2c",
      "tree": "7c483ce5f2e99258ca7317e47bf2dd149431e226",
      "parents": [
        "c8b576061d87e2a4fb100e70c6a6dae189b3a310"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Tue Nov 23 15:05:02 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:36 2010 -0500"
      },
      "message": "mac80211: avoid aggregation for VO traffic\n\nThis should help with latency issues which can happen when\nusing aggregation.\n\nCc: Felix Fietkau \u003cnbd@openwrt.org\u003e\nCc: Matt Smith \u003cmatt.smith@atheros.com\u003e\nCc: Senthil Balasubramanian \u003csenthilkumar@atheros.com\u003e\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "72a8a3edd630995662bdc85957206685f376f9c4",
      "tree": "d905f67383577abb06761b99c9e0fdea03681024",
      "parents": [
        "4e5ff37692df35c8826f1291204841b174d3c3ce"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue Nov 23 03:10:32 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:35 2010 -0500"
      },
      "message": "mac80211: reduce the number of retries for nullfunc probing\n\nSince nullfunc frames are transmitted as unicast frames, they\u0027re more\nreliable than the broadcast probe requests, so we need fewer retries\nto figure out whether the AP is really gone.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4e5ff37692df35c8826f1291204841b174d3c3ce",
      "tree": "2a4cd6250de19b1e7b895e94136c537c78bcd928",
      "parents": [
        "dd5b4cc71cd09c33e1579cc6d5720656e94e52de"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue Nov 23 03:10:31 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:35 2010 -0500"
      },
      "message": "mac80211: use nullfunc instead of probe request for connection monitoring\n\nnullfunc frames are better for connection monitoring, because probe requests\nare answered even if the AP has already dropped the connection, whereas\nnullfunc frames from an unassociated station will trigger a disassoc/deauth\nframe from the AP (WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA), which allows\nthe station to reconnect immediately instead of waiting until it attempts to\ntransmit the next unicast frame.\n\nThis only works on hardware with reliable tx ACK reporting, any other hardware\nneeds to fall back to the probe request method.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dd5b4cc71cd09c33e1579cc6d5720656e94e52de",
      "tree": "86a27c86480109d9b6bbedddc083095035fbef2d",
      "parents": [
        "46090979a55a0dc2cdb3d939f94fa47742108194"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Mon Nov 22 20:58:24 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:35 2010 -0500"
      },
      "message": "cfg80211/mac80211: improve ad-hoc multicast rate handling\n\n- store the multicast rate as an index instead of the rate value\n  (reduces cpu overhead in a hotpath)\n- validate the rate values (must match a bitrate in at least one sband)\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "46090979a55a0dc2cdb3d939f94fa47742108194",
      "tree": "4aedd5ca8bfc21dd5d97661d8a8262214d9e8ae7",
      "parents": [
        "7ccc8bd7593634d827e8bc55898a5038e29848b5"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue Nov 23 20:28:03 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:34 2010 -0500"
      },
      "message": "mac80211: probe the AP when resuming\n\nCheck the connection by probing the AP (either using nullfunc or a\nprobe request). If nullfunc probing is supported and the assoc is no\nlonger valid, the AP will send a disassoc/deauth immediately.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7ccc8bd7593634d827e8bc55898a5038e29848b5",
      "tree": "c01c231a2f7448be34796c4c11358ffec42225aa",
      "parents": [
        "c8a7972c3b3633bf90daf50b135665d8ca4838c4"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Fri Nov 19 22:55:38 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:34 2010 -0500"
      },
      "message": "mac80211: calculate beacon loss time accurately\n\nInstead of using a fixed 2 second timeout, calculate beacon loss interval\nfrom the advertised beacon interval and a frame count.  With this beacon\nloss happens after N (default 7) consecutive frames are missed which\nfor a typical setup (100TU beacon interval) is ~700ms (or ~1/3 previous).\n\nSigned-off-by: Sam Leffler \u003csleffler@chromium.org\u003e\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c8a7972c3b3633bf90daf50b135665d8ca4838c4",
      "tree": "09c379661a81f51da5ee7880e66414e133731f15",
      "parents": [
        "0b81c23d2e3a8589514fa69b2f153f006a4ad773"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Fri Nov 19 22:55:37 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:34 2010 -0500"
      },
      "message": "mac80211: restart beacon miss timer on system resume from suspend\n\nSigned-off-by: Paul Stewart \u003cpstew@google.com\u003e\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d7a066c92394f3e777351de0c903beeb8a08af76",
      "tree": "f54ce8ac77d32b4c3166b4a2ca92525174a3213b",
      "parents": [
        "ccb14354017272ddac002e859a2711610b6af174",
        "e476a5a41ad67d0e2b4a652820c49a3923eb936b"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:24 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:19:24 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "ccb14354017272ddac002e859a2711610b6af174",
      "tree": "fa39f9b944508e596763c49b0088dc1cc2e263ca",
      "parents": [
        "f8afa42b01c7a9f45b7cbaadb0481a0eeb96f18d"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:18:36 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:18:36 2010 -0500"
      },
      "message": "Revert \"nl80211/mac80211: Report signal average\"\n\nThis reverts commit 86107fd170bc379869250eb7e1bd393a3a70e8ae.\n\nThis patch inadvertantly changed the userland ABI.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "18890d4b89d8507ad09289f6f57a71591c7e9e83",
      "tree": "a183e9035f004f4e7676c59aab5679c74661c961",
      "parents": [
        "b2e253cf300c5e33f49b7dd8b593bfc722177401"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Fri Nov 19 08:11:01 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 22 15:48:51 2010 -0500"
      },
      "message": "mac80211: Disable hw crypto for GTKs on AP VLAN interfaces\n\nWhen using AP VLAN interfaces, each VLAN interface should be in its own\nbroadcast domain. Hostapd achieves this by assigning different GTKs to\ndifferent AP VLAN interfaces.\n\nHowever, mac80211 drivers are not aware of AP VLAN interfaces and as\nsuch mac80211 sends the GTK to the driver in the context of the base AP\nmode interface. This causes problems when multiple AP VLAN interfaces\nare used since the driver will use the same key slot for the different\nGTKs (there\u0027s no way for the driver to distinguish the different GTKs\nfrom different AP VLAN interfaces). Thus, only the clients associated\nto one AP VLAN interface (the one that was created last) can actually\nuse broadcast traffic.\n\nFix this by not programming any GTKs for AP VLAN interfaces into the hw\nbut fall back to using software crypto. The GTK for the underlying AP\ninterface is still sent to the driver.\n\nThat means, broadcast traffic to stations associated to an AP VLAN\ninterface is encrypted in software whereas broadcast traffic to\nstations associated to the non-VLAN AP interface is encrypted in\nhardware.\n\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "86107fd170bc379869250eb7e1bd393a3a70e8ae",
      "tree": "579ee24be87e94246450420f4de57d8eda942848",
      "parents": [
        "eef39befaae2a1559efe197d795c376a317af2af"
      ],
      "author": {
        "name": "Bruno Randolf",
        "email": "br1@einfach.org",
        "time": "Tue Nov 16 10:58:48 2010 +0900"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 18 14:22:20 2010 -0500"
      },
      "message": "nl80211/mac80211: Report signal average\n\nExtend nl80211 to report an exponential weighted moving average (EWMA) of the\nsignal value. Since the signal value usually fluctuates between different\npackets, an average can be more useful than the value of the last packet.\n\nThis uses the recently added generic EWMA library function.\n\nSigned-off-by: Bruno Randolf \u003cbr1@einfach.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "50a9432daeece6fc1309bef1dc0a7b8fde8204cb",
      "tree": "11b8bdf724dd9951391ea7f963e6539ca86ea4b6",
      "parents": [
        "4bce22b9b84032c77c7e038b07b24fcc706dfc10"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Nov 16 11:50:28 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 17 16:19:33 2010 -0500"
      },
      "message": "mac80211: fix powersaving clients races\n\nThe code to handle powersaving stations has a race:\nwhen the powersave flag is lifted from a station,\nwe could transmit a packet that is being processed\nfor TX at the same time right away, even if there\nare other frames queued for it. This would cause\nframe reordering. To fix this, lift the flag only\nunder the appropriate lock that blocks TX.\n\nAdditionally, the code to allow drivers to block a\nstation while frames for it are on the HW queue is\nnever re-enabled the station, so traffic would get\nstuck indefinitely. Fix this by clearing the flag\nfor this appropriately.\n\nFinally, as an optimisation, don\u0027t do anything if\nthe driver unblocks an already unblocked station.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4bce22b9b84032c77c7e038b07b24fcc706dfc10",
      "tree": "3c4ee91f19ca703d98956d8aa9f352df8ca10505",
      "parents": [
        "488f6ba75b5deaa7e89d6cdac07e0f2120899b6f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Nov 16 11:49:58 2010 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 17 16:19:31 2010 -0500"
      },
      "message": "mac80211: defines for AC numbers\n\nIn many places we\u0027ve just hardcoded the\nAC numbers -- which is a relic from the\noriginal mac80211 (d80211). Add constants\nfor them so we know what we\u0027re talking\nabout.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8f0729b16ae354f9db89394fc1d2d65003455d56",
      "tree": "260a562d0c0079ebfc1c507c9aa50e55a1592b6d",
      "parents": [
        "885a46d0f7942d76c2f3860acb45f75237d3bb42"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Thu Nov 11 15:07:23 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 16 16:39:08 2010 -0500"
      },
      "message": "mac80211: add support for setting the ad-hoc multicast rate\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a619a4c0e1fd4e8c360c63d0df3fa0a401107d69",
      "tree": "c9eb89d30834140f252c77bdf578528b11716678",
      "parents": [
        "4e8c14e9587c38f4cce8049c766935629fdb8d46"
      ],
      "author": {
        "name": "Juuso Oikarinen",
        "email": "juuso.oikarinen@nokia.com",
        "time": "Thu Nov 11 08:50:18 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 16 16:37:08 2010 -0500"
      },
      "message": "mac80211: Add function to get probe request template for current AP\n\nChipsets with hardware based connection monitoring need to autonomically\nsend directed probe-request frames to the AP (in the event of beacon loss,\nfor example.)\n\nFor the hardware to be able to do this, it requires a template for the frame\nto transmit to the AP, filled in with the BSSID and SSID of the AP, but also\nthe supported rate IE\u0027s.\n\nThis patch adds a function to mac80211, which allows the hardware driver to\nfetch this template after association, so it can be configured to the hardware.\n\nSigned-off-by: Juuso Oikarinen \u003cjuuso.oikarinen@nokia.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "15d967532148a5fcda075282b82a271b6595a386",
      "tree": "e1913502e74768e685f6793b1d24426ac849b1da",
      "parents": [
        "afe0cbf87500f0585d217deb8c6fd329793a7957"
      ],
      "author": {
        "name": "Bruno Randolf",
        "email": "br1@einfach.org",
        "time": "Wed Nov 10 12:50:56 2010 +0900"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 16 16:37:05 2010 -0500"
      },
      "message": "mac80211: Add antenna configuration\n\nAllow antenna configuration by calling driver\u0027s function for it.\n\nWe disallow antenna configuration if the wiphy is already running, mainly to\nmake life easier for 802.11n drivers which need to recalculate HT capabilites.\n\nSigned-off-by: Bruno Randolf \u003cbr1@einfach.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f23a478075659db8a4fd62fa6e264a8bb052cc5b",
      "tree": "ba1492a4a781770644359b88e8ca2d8d3a00adc2",
      "parents": [
        "ca4a0831917d6541b45f03542257fcb20dc9cf4a"
      ],
      "author": {
        "name": "Arik Nemtsov",
        "email": "arik@wizery.com",
        "time": "Mon Nov 08 11:51:06 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 16 16:37:04 2010 -0500"
      },
      "message": "mac80211: support hardware TX fragmentation offload\n\nThe lower driver is notified when the fragmentation threshold changes\nand upon a reconfig of the interface.\n\nIf the driver supports hardware TX fragmentation, don\u0027t fragment\npackets in the stack.\n\nSigned-off-by: Arik Nemtsov \u003carik@wizery.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ffa56e540c3949c4560dcce45eca247819e183c1",
      "tree": "014fb3286ef0e879c6b78196ded7c87baccde252",
      "parents": [
        "723fc7af5300dba9eac40cb23dbefa67589e5181"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Nov 04 22:59:56 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 15 13:26:11 2010 -0500"
      },
      "message": "mac80211: Remove redundant checks for NULL before calls to crypto_free_cipher()\n\ncrypto_free_cipher() is a wrapper around crypto_free_tfm() which is a\nwrapper around crypto_destroy_tfm() and the latter can handle being passed\na NULL pointer, so checking for NULL in the\nieee80211_aes_key_free()/ieee80211_aes_cmac_key_free() wrappers around\ncrypto_free_cipher() is pointless and just increase object code size\nneedlesly and makes us execute extra test/branch instructions that we\ndon\u0027t need.\nBtw; don\u0027t we have to many wrappers around wrappers ad nauseam here?\nAnyway, this patch removes the redundant conditionals.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "07caf9d6c9135ae25a760867f37aab90c1008380",
      "tree": "528409cde06c5927a311d453a4e59206fca0beb5",
      "parents": [
        "6a6733f256f18cbcf4875e13f59eedb593b755a8"
      ],
      "author": {
        "name": "Eliad Peller",
        "email": "eliad@wizery.com",
        "time": "Wed Oct 27 14:58:29 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 15 13:24:48 2010 -0500"
      },
      "message": "mac80211: refactor debugfs function generation code\n\nrefactor mac80211 debugfs code by using a format\u0026copy function, instead of\nduplicating the code for each generated function.\n\nthis change reduces about 600B from mac80211.ko\n\nSigned-off-by: Eliad Peller \u003celiad@wizery.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c7317e41df30c7e04dca46360e5ebb0cb36dda45",
      "tree": "0bb263d5199d54da70942182d0a234d1cbfb8070",
      "parents": [
        "ff32d9cd2c4107224a28f39d3c72eec66d566e09"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Thu Oct 21 02:47:25 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 15 13:24:21 2010 -0500"
      },
      "message": "mac80211: minstrel_ht - reduce the overhead of rate sampling\n\n- reduce the number of retransmission attempts for sample rates\n- sample lower rates less often\n- do not use RTS/CTS for sampling frames\n- increase the time between sampling attempts\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "352ffad646c0e0c5cf9ae8cea99710ee0d66ee27",
      "tree": "41987fe0c7e00dfc3aa6871f1a51007e42f22c03",
      "parents": [
        "fbb078fcd2fa83646ad9504d8e4c54a67b8729ae"
      ],
      "author": {
        "name": "Brian Cavagnolo",
        "email": "brian@cozybit.com",
        "time": "Thu Nov 04 16:59:28 2010 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 08 16:53:47 2010 -0500"
      },
      "message": "mac80211: unset SDATA_STATE_OFFCHANNEL when cancelling a scan\n\nFor client STA interfaces, ieee80211_do_stop unsets the relevant\ninterface\u0027s SDATA_STATE_RUNNING state bit prior to cancelling an\ninterrupted scan.  When ieee80211_offchannel_return is invoked as\npart of cancelling the scan, it doesn\u0027t bother unsetting the\nSDATA_STATE_OFFCHANNEL bit because it sees that the interface is\ndown.  Normally this doesn\u0027t matter because when the client STA\ninterface is brought back up, it will probably issue a scan.  But\nin some cases (e.g., the user changes the interface type while it\nis down), the SDATA_STATE_OFFCHANNEL bit will remain set.  This\nprevents the interface queues from being started.  So we\ncancel the scan before unsetting the SDATA_STATE_RUNNING bit.\n\nSigned-off-by: Brian Cavagnolo \u003cbrian@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "520efd1ace3f826120482e57a95d649b4e1c1684",
      "tree": "04445d2fde489b7b7a3d8fa4898a0731817f6ca0",
      "parents": [
        "731b2034999bbfe86c9074f1b0d611940bf7c323"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Fri Oct 29 16:10:26 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 29 14:33:26 2010 -0400"
      },
      "message": "mac80211: fix failure to check kmalloc return value in key_key_read\n\nI noticed two small issues in mac80211/debugfs_key.c::key_key_read while\nreading through the code. Patch below.\n\nThe key_key_read() function returns ssize_t and the value that\u0027s actually\nreturned is the return value of simple_read_from_buffer() which also\nreturns ssize_t, so let\u0027s hold the return value in a ssize_t local\nvariable rather than a int one.\n\nAlso, memory is allocated dynamically with kmalloc() which can fail, but\nthe return value of kmalloc() is not checked, so we may end up operating\non a null pointer further on. So check for a NULL return and bail out with\n-ENOMEM in that case.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dc9f48ce7c7d345be31208def51572a8250a4a03",
      "tree": "c8989c1905d740bb49c1b186b909b8408c1a4315",
      "parents": [
        "d654567dec75782d6fd9add4b7b9c50e0926d369"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "j@w1.fi",
        "time": "Wed Oct 27 13:40:33 2010 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 27 15:46:51 2010 -0400"
      },
      "message": "mac80211: Fix scan_ies_len to include DS Params\n\nCommit 651b52254fc061f02d965524e71de4333a009a5a added DS Parameter Set\ninformation into Probe Request frames that are transmitted on 2.4 GHz\nband, but it failed to increment local-\u003escan_ies_len to cover this new\ninformation. This variable needs to be updated to match the maximum IE\ndata length so that the extra buffer need gets reduced from the driver\nlimit.\n\nSigned-off-by: Jouni Malinen \u003cj@w1.fi\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c8716d9dc13c7f6ee92f2bfc6cc3b723b417bff8",
      "tree": "3714709813e4e529de7210cb679d1e34b20a59d9",
      "parents": [
        "30115c2252fcf9d21aae029ff0e27f4cc962ef44"
      ],
      "author": {
        "name": "Rajkumar Manoharan",
        "email": "rmanoharan@atheros.com",
        "time": "Sat Oct 23 10:59:57 2010 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Oct 25 14:45:56 2010 -0400"
      },
      "message": "mac80211: Fix ibss station got expired immediately\n\nStation addition in ieee80211_ibss_rx_queued_mgmt is not updating\nsta-\u003elast_rx which is causing station expiry in ieee80211_ibss_work\npath. So sta addition and deletion happens repeatedly.\n\nCC: stable@kernel.org\nSigned-off-by: Rajkumar Manoharan \u003crmanoharan@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5f4e6b2d3c74c1adda1cbfd9d9d30da22c7484fc",
      "tree": "b6790e3f195491139d2af7642ef3f4f51408ca10",
      "parents": [
        "cae7f953e8afa9b1ce234fd0907183b643cc5ab8"
      ],
      "author": {
        "name": "Christian Lamparter",
        "email": "chunkeey@googlemail.com",
        "time": "Sat Oct 16 18:49:15 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Oct 25 14:43:13 2010 -0400"
      },
      "message": "mac80211: don\u0027t sanitize invalid rates\n\nI found this bug while poking around with a pure-gn AP.\n\nCommit:\ncfg80211/mac80211: Use more generic bitrate mask for rate control\n\nAdded some sanity checks to ensure that each tx rate index\nis included in the configured mask and it would change any\nrate indexes if it wasn\u0027t.\n\nBut, the current implementation doesn\u0027t take into account\nthat the invalid rate index \"-1\" has a special meaning\n(\u003d no further attempts) and it should not be \"changed\".\n\nSigned-off-by: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "99b88a0ecbdbc6df03527292571b2b442965814a",
      "tree": "71a5c8b9e0dcb6e6a07c182e05b97bff8095a348",
      "parents": [
        "229aebb873e29726b91e076161649cf45154b0bf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 15 17:35:28 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Oct 25 14:43:12 2010 -0400"
      },
      "message": "mac80211: cancel restart_work explicitly instead of depending on flush_scheduled_work()\n\niee80211_hw-\u003erestart_work is the only work which uses the system\nworkqueue.  Instead of calling flush_scheduled_work() during\niee80211_exit(), cancel the work during unregistration.\n\nThis is to prepare for the deprecation and removal of\nflush_scheduled_work().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0",
      "tree": "7851ef1c93aa1aba7ef327ca4b75fd35e6d10f29",
      "parents": [
        "02f36038c568111ad4fc433f6fa760ff5e38fab4",
        "ec37a48d1d16c30b655ac5280209edf52a6775d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)\n  bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.\n  vlan: Calling vlan_hwaccel_do_receive() is always valid.\n  tproxy: use the interface primary IP address as a default value for --on-ip\n  tproxy: added IPv6 support to the socket match\n  cxgb3: function namespace cleanup\n  tproxy: added IPv6 support to the TPROXY target\n  tproxy: added IPv6 socket lookup function to nf_tproxy_core\n  be2net: Changes to use only priority codes allowed by f/w\n  tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled\n  tproxy: added tproxy sockopt interface in the IPV6 layer\n  tproxy: added udp6_lib_lookup function\n  tproxy: added const specifiers to udp lookup functions\n  tproxy: split off ipv6 defragmentation to a separate module\n  l2tp: small cleanup\n  nf_nat: restrict ICMP translation for embedded header\n  can: mcp251x: fix generation of error frames\n  can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set\n  can-raw: add msg_flags to distinguish local traffic\n  9p: client code cleanup\n  rds: make local functions/variables static\n  ...\n\nFix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and\ndrivers/net/wireless/ath/ath9k/debug.c as per David\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "c64557d666eb62eb5f296c6b93bd0a5525ed1e36",
      "tree": "1e25cc32521d06ae876de18bb8e48b3cf9d30808",
      "parents": [
        "1a63c353c856c9f6d44a533afb6ad6dbbcdea683",
        "0d91f22b75347d9503b17a42b6c74d3f7750acd6"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 15 16:11:56 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 15 16:11:56 2010 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "e4b55957eb695b43055b6badec026628b24fe80a",
      "tree": "a8a2c293b8b4386a2c8b0bf248cd97a0df22949a",
      "parents": [
        "9c1d8e4affe6748d884a677cf5db19ae0c20ef07"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Oct 13 19:23:21 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 13 15:45:23 2010 -0400"
      },
      "message": "mac80211: fix SMPS request\n\nIt looks like I submitted a different patch\nthan I tested, because clearly the code in\nmac80211 is missing actually propagating the\nrequested SMPS mode. Fix that!\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7be5086d4cb7cceb71d724a9524d5e927785d04f",
      "tree": "eaf0b7d527b9b91c704c8f339d855923c0a34571",
      "parents": [
        "271733cf844a2f5f186ef3b40c26d6397b71039a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Oct 13 12:06:24 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 13 15:45:22 2010 -0400"
      },
      "message": "mac80211: add probe request filter flag\n\nUsing the frame registration notification, we\ncan see when probe requests are requested and\nnotify the low-level driver via filtering. The\nflag is also set in AP and IBSS modes.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    }
  ],
  "next": "15d46f38df87f89242e470f5797120fa384c1fc3"
}
