)]}'
{
  "commit": "96f5e66e8a79810e2982cdcfa28e554f3d97da21",
  "tree": "d16a0e083b83ab488f20b995c56a496a4ec2c9c8",
  "parents": [
    "f3734ee6df3ac57151e02d091f47d5e52e646539"
  ],
  "author": {
    "name": "Johannes Berg",
    "email": "johannes@sipsolutions.net",
    "time": "Thu Feb 12 00:51:53 2009 +0100"
  },
  "committer": {
    "name": "John W. Linville",
    "email": "linville@tuxdriver.com",
    "time": "Fri Feb 27 14:51:42 2009 -0500"
  },
  "message": "mac80211: fix aggregation for hardware with ampdu queues\n\nHardware with AMPDU queues currently has broken aggregation.\n\nThis patch fixes it by making all A-MPDUs go over the regular AC queues,\nbut keeping track of the hardware queues in mac80211. As a first rough\nversion, it actually stops the AC queue for extended periods of time,\nwhich can be removed by adding buffering internal to mac80211, but is\ncurrently not a huge problem because people rarely use multiple TIDs\nthat are in the same AC (and iwlwifi currently doesn\u0027t operate as AP).\n\nThis is a short-term fix, my current medium-term plan, which I hope to\nexecute soon as well, but am not sure can finish before .30, looks like\nthis:\n 1) rework the internal queuing layer in mac80211 that we use for\n    fragments if the driver stopped queue in the middle of a fragmented\n    frame to be able to queue more frames at once (rather than just a\n    single frame with its fragments)\n 2) instead of stopping the entire AC queue, queue up the frames in a\n    per-station/per-TID queue during aggregation session initiation,\n    when the session has come up take all those frames and put them\n    onto the queue from 1)\n 3) push the ampdu queue layer abstraction this patch introduces in\n    mac80211 into the driver, and remove the virtual queue stuff from\n    mac80211 again\n\nThis plan will probably also affect ath9k in that mac80211 queues the\nframes instead of passing them down, even when there are no ampdu queues.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "88fa3e03e3e9dbf4746f59851c27cfd9407fe7bf",
      "old_mode": 33188,
      "old_path": "include/net/mac80211.h",
      "new_id": "31fd8bab217389ec5946f6ff60e4343dc6401aa5",
      "new_mode": 33188,
      "new_path": "include/net/mac80211.h"
    },
    {
      "type": "modify",
      "old_id": "1232d9f01ca9203e44f81d75c5b42adac014eb8b",
      "old_mode": 33188,
      "old_path": "net/mac80211/agg-tx.c",
      "new_id": "0217b68c47ca9d4fb6ab0d444ebf4b528cf7bf19",
      "new_mode": 33188,
      "new_path": "net/mac80211/agg-tx.c"
    },
    {
      "type": "modify",
      "old_id": "2cb743ed9f9c715dc830bc5a96357346fdaa5176",
      "old_mode": 33188,
      "old_path": "net/mac80211/ieee80211_i.h",
      "new_id": "e2bbd3f117979e5b28b838cde50a413e036a572d",
      "new_mode": 33188,
      "new_path": "net/mac80211/ieee80211_i.h"
    },
    {
      "type": "modify",
      "old_id": "795f8c4a9fa0464fa9df64e53aabb51452a2ee97",
      "old_mode": 33188,
      "old_path": "net/mac80211/main.c",
      "new_id": "e9181981adcd8b024bd005b39169140be8896dd0",
      "new_mode": 33188,
      "new_path": "net/mac80211/main.c"
    },
    {
      "type": "modify",
      "old_id": "634f65c0130e2ca0f21c8a2645d2d4f4352d7dd8",
      "old_mode": 33188,
      "old_path": "net/mac80211/sta_info.c",
      "new_id": "4ba3c540fcf3adedf2402833b67bf2cedc9d6b8a",
      "new_mode": 33188,
      "new_path": "net/mac80211/sta_info.c"
    },
    {
      "type": "modify",
      "old_id": "d9653231992fb1e882429ada4e871ba50e1a435d",
      "old_mode": 33188,
      "old_path": "net/mac80211/sta_info.h",
      "new_id": "a2921f15787b66b55e375ddfb65bec84c2d49aa1",
      "new_mode": 33188,
      "new_path": "net/mac80211/sta_info.h"
    },
    {
      "type": "modify",
      "old_id": "33926831c64889cc5836fafe065a6f9dd9d5cebd",
      "old_mode": 33188,
      "old_path": "net/mac80211/tx.c",
      "new_id": "6aca49897d5506cdf0ca024a2ff98f85a1d7b82f",
      "new_mode": 33188,
      "new_path": "net/mac80211/tx.c"
    },
    {
      "type": "modify",
      "old_id": "73c7d7345abd19877e320dc40f559ed7d9180611",
      "old_mode": 33188,
      "old_path": "net/mac80211/util.c",
      "new_id": "92ea1770461b5b85db3e827f68502bbb9b34ac89",
      "new_mode": 33188,
      "new_path": "net/mac80211/util.c"
    },
    {
      "type": "modify",
      "old_id": "ac71b38f7cb5cb217180bb2cef3bcfa4b6540b40",
      "old_mode": 33188,
      "old_path": "net/mac80211/wme.c",
      "new_id": "093a4ab7f28b3db97e2f26e842f0ee5cb3d58ad4",
      "new_mode": 33188,
      "new_path": "net/mac80211/wme.c"
    },
    {
      "type": "modify",
      "old_id": "bc62f28a4d3df6951ecb02b7f0e70e0ce6aad30f",
      "old_mode": 33188,
      "old_path": "net/mac80211/wme.h",
      "new_id": "7520d2e014dce1f83deec7fc628ca20cc2beadfd",
      "new_mode": 33188,
      "new_path": "net/mac80211/wme.h"
    }
  ]
}
