)]}'
{
  "log": [
    {
      "commit": "ff9c38bba37937adb909cceb2a6521f2e92e17c6",
      "tree": "93bd6152d9fa28348be99ef1c788040cc7b7a94d",
      "parents": [
        "65c0cfafce9575319fb6f70080fbe226e5617e3b",
        "b2722b1c3a893ec6021508da15b32282ec79f4da"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/ht.c\n"
    },
    {
      "commit": "65c0cfafce9575319fb6f70080fbe226e5617e3b",
      "tree": "e1e0a276860f74ee0fe6747c8455a8ec0e7c2d03",
      "parents": [
        "671011720baa222b6de667cd688aed4dc8908924"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 15:46:17 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:16:00 2009 -0800"
      },
      "message": "net: remove [un]register_pernet_gen_... and update the docs.\n\nNo that all of the callers have been updated to set fields in\nstruct pernet_operations, and simplified to let the network\nnamespace core handle the allocation and freeing of the storage\nfor them, remove the surpurpflous methods and update the docs\nto the new style.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f875bae065334907796da12523f9df85c89f5712",
      "tree": "6f14819d128e3fa7b4cc8c274c6eff5326622fc8",
      "parents": [
        "2b035b39970740722598f7a9d548835f9bdd730f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 22:25:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:51 2009 -0800"
      },
      "message": "net: Automatically allocate per namespace data.\n\nTo get the full benefit of batched network namespace cleanup netowrk\ndevice deletion needs to be performed by the generic code.  When\nusing register_pernet_gen_device and freeing the data in exit_net\nit is impossible to delay allocation until after exit_net has called\nas the device uninit methods are no longer safe.\n\nTo correct this, and to simplify working with per network namespace data\nI have moved allocation and deletion of per network namespace data into\nthe network namespace core.  The core now frees the data only after\nall of the network namespace exit routines have run.\n\nNow it is only required to set the new fields .id and .size\nin the pernet_operations structure if you want network namespace\ndata to be managed for you automatically.\n\nThis makes the current register_pernet_gen_device and\nregister_pernet_gen_subsys routines unnecessary.  For the moment\nI have left them as compatibility wrappers in net_namespace.h\nThey will be removed once all of the users have been updated.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b035b39970740722598f7a9d548835f9bdd730f",
      "tree": "a240b595c380b50f783fe8b3d3d4e9cb612cbb30",
      "parents": [
        "dcbccbd4f1f6ad0f0e169d4b2e816e42bde06f82"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "eric@conroxe.ebiederm.org",
        "time": "Sun Nov 29 22:25:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:51 2009 -0800"
      },
      "message": "net: Batch network namespace destruction.\n\nIt is fairly common to kill several network namespaces at once.  Either\nbecause they are nested one inside the other or because they are cooperating\nin multiple machine networking experiments.  As the network stack control logic\ndoes not parallelize easily batch up multiple network namespaces existing\ntogether.\n\nTo get the full benefit of batching the virtual network devices to be\nremoved must be all removed in one batch.  For that purpose I have added\na loop after the last network device operations have run that batches\nup all remaining network devices and deletes them.\n\nAn extra benefit is that the reorganization slightly shrinks the size\nof the per network namespace data structures replaceing a work_struct\nwith a list_head.\n\nIn a trivial test with 4K namespaces this change reduced the cost of\na destroying 4K namespaces from 7+ minutes (at 12% cpu) to 44 seconds\n(at 60% cpu).  The bulk of that 44s was spent in inet_twsk_purge.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcbccbd4f1f6ad0f0e169d4b2e816e42bde06f82",
      "tree": "2a2accb2cedfea63ecaafbe1156fc44b4f2acff1",
      "parents": [
        "a5ee155136b4a8f4ab0e4c9c064b661da475e298"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 22:25:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:50 2009 -0800"
      },
      "message": "net: Implement for_each_netdev_reverse.\n\nI will need this shortly to implement network namespace shutdown\nbatching.  For sanity sake network devices should be removed in\nthe reverse order they were created in.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a5ee155136b4a8f4ab0e4c9c064b661da475e298",
      "tree": "10c113756ff0dcc860735d96ed141701bffa3476",
      "parents": [
        "5a5b6f6f62ac684a5856121d8cffd3c3253dc890"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 15:45:58 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:50 2009 -0800"
      },
      "message": "net: NETDEV_UNREGISTER_PERNET -\u003e NETDEV_UNREGISTER_BATCH\n\nThe motivation for an additional notifier in batched netdevice\nnotification (rt_do_flush) only needs to be called once per batch not\nonce per namespace.\n\nFor further batching improvements I need a guarantee that the\nnetdevices are unregistered in order allowing me to unregister an all\nof the network devices in a network namespace at the same time with\nthe guarantee that the loopback device is really and truly\nunregistered last.\n\nAdditionally it appears that we moved the route cache flush after\nthe final synchronize_net, which seems wrong and there was no\nexplanation.  So I have restored the original location of the final\nsynchronize_net.\n\nCc: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f13a48bd798a159291ca583b95453171b88b7448",
      "tree": "a644293386e30ed5ab297e5943e57658e1d11e6a",
      "parents": [
        "df87f8c06c7f562ef9d93b9d674eebf2ffb96f6a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 01 15:36:11 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 01 08:20:31 2009 -0800"
      },
      "message": "SLOW_WORK: Move slow_work\u0027s proc file to debugfs\n\nMove slow_work\u0027s debugging proc file to debugfs.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nRequested-and-acked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29e553631b2a0d4eebd23db630572e1027a9967a",
      "tree": "a891e02cc245ac9c14dc47528120e262d0298698",
      "parents": [
        "ed9fd93e9a0c327e5d02313ba6e233c8e76da118",
        "827d42c9ac91ddd728e4f4a31fefb906ef2ceff7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 16:47:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 16:47:16 2009 -0800"
      },
      "message": "Merge branch \u0027security\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n\n* \u0027security\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6:\n  mac80211: fix spurious delBA handling\n  mac80211: fix two remote exploits\n"
    },
    {
      "commit": "ed9fd93e9a0c327e5d02313ba6e233c8e76da118",
      "tree": "77b3ac9a1243e29bad14e5d3cb80f1ffe8d60bb6",
      "parents": [
        "52c7b3f45dbf19359be60a95b8678656e73ce42b",
        "4e46bf89972b9d98a9f282a9fed2359756a5e34e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 15:21:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 15:21:50 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:\n  [SCSI] fix crash when disconnecting usb storage\n  [SCSI] fix async scan add/remove race resulting in an oops\n  [SCSI] sd: Return correct error code for DIF\n"
    },
    {
      "commit": "cd79bf7b1c061752dbee723bccf60c85d6c2d45d",
      "tree": "bc892e172aa64aa80b087767dfce767559ae4795",
      "parents": [
        "d0964c37b539c2b76752b1ff8b0a618c5f82f077",
        "0cae200eec6330cd2c20b24279597be1da50dc93"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 14:01:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 14:01:36 2009 -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  b44: Fix wedge when using netconsole.\n  wan: cosa: drop chan-\u003ewsem on error path\n  ep93xx-eth: check for zero MAC address on probe, not on device open\n  NET: smc91x: Fix irq flags\n  smsc9420: prevent BUG() if ethtool is called with interface down\n  r8169: restore mac addr in rtl8169_remove_one and rtl_shutdown\n  ipv4: additional update of dev_net(dev) to struct *net in ip_fragment.c, NULL ptr OOPS\n  e100: Use pci pool to work around GFP_ATOMIC order 5 memory allocation failure\n  sctp: on T3_RTX retransmit all the in-flight chunks\n  pktgen: Fix netdevice unregister\n  macvlan: fix gso_max_size setting\n  rfkill: fix miscdev ops\n  ath9k: set ps_default as false\n  hso: fix soft-lockup\n  hso: fix debug routines\n  pktgen: Fix device name compares\n  stmmac: do not fail when the timer cannot be used.\n  stmmac: fixed a compilation error when use the external timer\n  netfilter: xt_limit: fix invalid return code in limit_mt_check()\n  Au1x00: fix crash when trying register_netdev()\n  ...\n"
    },
    {
      "commit": "6e80133f7f247f313da1638af4ce30f2bac303cc",
      "tree": "318afcc1c1c434135849cef50e3d89be505ad011",
      "parents": [
        "e3a41d7b99e7f97d9a50bec2a8f4eb237ce1d504",
        "4fa9f4ede88b4e2ff135b6e5717499d734508c62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:33:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:33:48 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache: (31 commits)\n  FS-Cache: Provide nop fscache_stat_d() if CONFIG_FSCACHE_STATS\u003dn\n  SLOW_WORK: Fix GFS2 to #include \u003clinux/module.h\u003e before using THIS_MODULE\n  SLOW_WORK: Fix CIFS to pass THIS_MODULE to slow_work_register_user()\n  CacheFiles: Don\u0027t log lookup/create failing with ENOBUFS\n  CacheFiles: Catch an overly long wait for an old active object\n  CacheFiles: Better showing of debugging information in active object problems\n  CacheFiles: Mark parent directory locks as I_MUTEX_PARENT to keep lockdep happy\n  CacheFiles: Handle truncate unlocking the page we\u0027re reading\n  CacheFiles: Don\u0027t write a full page if there\u0027s only a partial page to cache\n  FS-Cache: Actually requeue an object when requested\n  FS-Cache: Start processing an object\u0027s operations on that object\u0027s death\n  FS-Cache: Make sure FSCACHE_COOKIE_LOOKING_UP cleared on lookup failure\n  FS-Cache: Add a retirement stat counter\n  FS-Cache: Handle pages pending storage that get evicted under OOM conditions\n  FS-Cache: Handle read request vs lookup, creation or other cache failure\n  FS-Cache: Don\u0027t delete pending pages from the page-store tracking tree\n  FS-Cache: Fix lock misorder in fscache_write_op()\n  FS-Cache: The object-available state can\u0027t rely on the cookie to be available\n  FS-Cache: Permit cache retrieval ops to be interrupted in the initial wait phase\n  FS-Cache: Use radix tree preload correctly in tracking of pages to be stored\n  ...\n"
    },
    {
      "commit": "827d42c9ac91ddd728e4f4a31fefb906ef2ceff7",
      "tree": "e29371d79d63d0a3ec2cb6d010b71147853fc771",
      "parents": [
        "4253119acf412fd686ef4bd8749b5a4d70ea3a51"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Nov 22 12:28:41 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Nov 30 13:55:51 2009 -0500"
      },
      "message": "mac80211: fix spurious delBA handling\n\nLennert Buytenhek noticed that delBA handling in mac80211\nwas broken and has remotely triggerable problems, some of\nwhich are due to some code shuffling I did that ended up\nchanging the order in which things were done -- this was\n\n  commit d75636ef9c1af224f1097941879d5a8db7cd04e5\n  Author: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\n  Date:   Tue Feb 10 21:25:53 2009 +0100\n\n    mac80211: RX aggregation: clean up stop session\n\nand other parts were already present in the original\n\n  commit d92684e66091c0f0101819619b315b4bb8b5bcc5\n  Author: Ron Rindjunsky \u003cron.rindjunsky@intel.com\u003e\n  Date:   Mon Jan 28 14:07:22 2008 +0200\n\n      mac80211: A-MPDU Tx add delBA from recipient support\n\nThe first problem is that I moved a BUG_ON before various\nchecks -- thereby making it possible to hit. As the comment\nindicates, the BUG_ON can be removed since the ampdu_action\ncallback must already exist when the state is !\u003d IDLE.\n\nThe second problem isn\u0027t easily exploitable but there\u0027s a\nrace condition due to unconditionally setting the state to\nOPERATIONAL when a delBA frame is received, even when no\naggregation session was ever initiated. All the drivers\naccept stopping the session even then, but that opens a\nrace window where crashes could happen before the driver\naccepts it. Right now, a WARN_ON may happen with non-HT\ndrivers, while the race opens only for HT drivers.\n\nFor this case, there are two things necessary to fix it:\n 1) don\u0027t process spurious delBA frames, and be more careful\n    about the session state; don\u0027t drop the lock\n\n 2) HT drivers need to be prepared to handle a session stop\n    even before the session was really started -- this is\n    true for all drivers (that support aggregation) but\n    iwlwifi which can be fixed easily. The other HT drivers\n    (ath9k and ar9170) are behaving properly already.\n\nReported-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9b963e5d0e01461099a40117b05480f24b63381f",
      "tree": "4756d554e37bf4ab7202f2c564cbe629af98b576",
      "parents": [
        "3b8626ba01a8a745a3fdf22dd347edd708b0af13",
        "5fdd4baef6195a1f2960e901c8877e2105f832ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:57:15 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:57:15 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/ieee802154/fakehard.c\n\tdrivers/net/e1000e/ich8lan.c\n\tdrivers/net/e1000e/phy.c\n\tdrivers/net/netxen/netxen_nic_init.c\n\tdrivers/net/wireless/ath/ath9k/main.c\n"
    },
    {
      "commit": "5789d290cda6854b03986031df02b965572279df",
      "tree": "4887dba43e9ab3fd0616ce53e2a555e5b6c16a1e",
      "parents": [
        "91152c3242f32d3b68396c26c638250d2a00eb05"
      ],
      "author": {
        "name": "PJ Waskiewicz",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Wed Nov 25 00:11:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:34:00 2009 -0800"
      },
      "message": "ethtool: Add Direct Attach support to connector port reporting\n\nThis patch allows a base driver to specify Direct Attach as the\ntype of port through the ethtool interface.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f5517aefcfbdd7fdf0f03b13d292a10d445887f",
      "tree": "dfceca6e5ce5a6de91f33f1d0f20e50fd55361ed",
      "parents": [
        "9f950f72e57fe4bf9b16ace67e4cc5ffcee79d00"
      ],
      "author": {
        "name": "andrew hendry",
        "email": "andrew.hendry@gmail.com",
        "time": "Tue Nov 24 15:15:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:24:59 2009 -0800"
      },
      "message": "X25: Move SYSCTL ifdefs into header\n\nMoves the CONFIG_SYSCTL ifdefs in x25_init into header.\n\nSigned-off-by: Andrew Hendry \u003candrew.hendry@gmail.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5656b6ca19c602a7074effae360e5a4dcfdc8170",
      "tree": "13eb8138999a3c6a8e6f92fb98b0cc54b7240c6a",
      "parents": [
        "c1ac403bfa240617da2bce861ea5c3a907a65612",
        "4814326b59db0cfd18ac652626d955ad3f57fb0f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:16:22 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:16:22 2009 -0800"
      },
      "message": "Merge branch \u0027net-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vxy/lksctp-dev\n"
    },
    {
      "commit": "5fdd4baef6195a1f2960e901c8877e2105f832ca",
      "tree": "198a3f2df2bea3c5239c95957e21f3680908ddf6",
      "parents": [
        "3e9848403ad59c53b31facb30b43ca80135ae0b9"
      ],
      "author": {
        "name": "Andrei Pelinescu-Onciul",
        "email": "andrei@iptel.org",
        "time": "Sun Nov 29 00:14:02 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:14:02 2009 -0800"
      },
      "message": "sctp: on T3_RTX retransmit all the in-flight chunks\n\nWhen retransmitting due to T3 timeout, retransmit all the\nin-flight chunks for the corresponding  transport/path, including\nchunks sent less then 1 rto ago.\nThis is the correct behaviour according to rfc4960 section 6.3.3\nE3 and\n\"Note: Any DATA chunks that were sent to the address for which the\n T3-rtx timer expired but did not fit in one MTU (rule E3 above)\n should be marked for retransmission and sent as soon as cwnd\n allows (normally, when a SACK arrives). \".\n\nThis fixes problems when more then one path is present and the T3\nretransmission of the first chunk that timeouts stops the T3 timer\nfor the initial active path, leaving all the other in-flight\nchunks waiting forever or until a new chunk is transmitted on the\nsame path and timeouts (and this will happen only if the cwnd\nallows sending new chunks, but since cwnd was dropped to MTU by\nthe timeout \u003d\u003e it will wait until the first heartbeat).\n\nExample: 10 packets in flight, sent at 0.1 s intervals on the\nprimary path. The primary path is down and the first packet\ntimeouts. The first packet is retransmitted on another path, the\nT3 timer for the primary path is stopped and cwnd is set to MTU.\nAll the other 9 in-flight packets will not be retransmitted\n(unless more new packets are sent on the primary path which depend\non cwnd allowing it, and even in this case the 9 packets will be\nretransmitted only after a new packet timeouts which even in the\nbest case would be more then RTO).\n\nThis commit reverts d0ce92910bc04e107b2f3f2048f07e94f570035d and\nalso removes the now unused transport-\u003elast_rto, introduced in\n b6157d8e03e1e780660a328f7183bcbfa4a93a19.\n\np.s  The problem is not only when multiple paths are there.  It\ncan happen in a single homed environment.  If the application\nstops sending data, it possible to have a hung association.\n\nSigned-off-by: Andrei Pelinescu-Onciul \u003candrei@iptel.org\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e7565930524410f097f5b04f8aba663089a6ffc",
      "tree": "7575fb4b06fdad1e2e9796e0dc99ca011e59980e",
      "parents": [
        "cc83f6d6922018a1b762f67af539867a6b05398e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Nov 25 07:54:54 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 26 16:00:36 2009 -0800"
      },
      "message": "vlan: support \"loose binding\" to the underlying network device\n\nCurrently the UP/DOWN state of VLANs is synchronized to the state of the\nunderlying device, meaning all VLANs are set down once the underlying\ndevice is set down. This causes all routes to the VLAN devices to vanish.\n\nAdd a flag to specify a \"loose binding\" mode, in which only the operstate\nis transfered, but the VLAN device state is independant.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27c0b1a850cdea6298f573d835782f3337be913c",
      "tree": "447d5db320dfa2d558a73f841c76b04b975e6ee0",
      "parents": [
        "618e1b7482f7a8a4c6c6e8ccbe140e4c331df4e9"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Nov 26 06:07:11 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 26 15:53:10 2009 -0800"
      },
      "message": "macvlan: export macvlan mode through netlink\n\nIn order to support all three modes of macvlan at\nruntime, extend the existing netlink protocol\nto allow choosing the mode per macvlan slave\ninterface.\n\nThis depends on a matching patch to iproute2\nin order to become accessible in user land.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "445409602c09219767c06497c0dc2285eac244ed",
      "tree": "5cfbd6d94f737107f3e6356fca2457ab3a66bb44",
      "parents": [
        "1bda8aa86b89d4c9b668000127ff87172f2daa10"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Nov 26 06:07:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 26 15:52:58 2009 -0800"
      },
      "message": "veth: move loopback logic to common location\n\nThe veth driver contains code to forward an skb\nfrom the start_xmit function of one network\ndevice into the receive path of another device.\n\nMoving that code into a common location lets us\nreuse the code for direct forwarding of data\nbetween macvlan ports, and possibly in other\ndrivers.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "860dc73608a091e0b325218acc2701709d5f221a",
      "tree": "2527b226e1991c459ac02de4a6ba5c98a4639add",
      "parents": [
        "3bf3583b6a49c318f7ed350862d7a217b500e71c"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Nov 19 17:48:29 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Nov 26 09:43:39 2009 -0600"
      },
      "message": "[SCSI] fix async scan add/remove race resulting in an oops\n\nAsync scanning introduced a very wide window where the SCSI device is\nup and running but has not yet been added to sysfs.  We delay the\nadding until all scans have completed to retain the same ordering as\nsync scanning.\n\nThis delay in visibility causes an oops if a device is removed before\nwe make it visible because the SCSI removal routines have an inbuilt\nassumption that if a device is in SDEV_RUNNING state, it must be\nvisible (which is not necessarily true in the async scanning case).\n\nFix this by introducing an additional is_visible flag which we can use\nto condition the tear down so we do the right thing for running but\nnot yet made visible.\n\nReported-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "4447bb33f09444920a8f1d89e1540137429351b6",
      "tree": "0aeadd5f09b412380974d3155255ba8db27dd1ed",
      "parents": [
        "4e242d1616781f9f1f0b01abf878700b259cd8b5"
      ],
      "author": {
        "name": "Martin Willi",
        "email": "martin@strongswan.org",
        "time": "Wed Nov 25 00:29:52 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 25 15:48:38 2009 -0800"
      },
      "message": "xfrm: Store aalg in xfrm_state with a user specified truncation length\n\nAdding a xfrm_state requires an authentication algorithm specified\neither as xfrm_algo or as xfrm_algo_auth with a specific truncation\nlength. For compatibility, both attributes are dumped to userspace,\nand we also accept both attributes, but prefer the new syntax.\n\nIf no truncation length is specified, or the authentication algorithm\nis specified using xfrm_algo, the truncation length from the algorithm\ndescription in the kernel is used.\n\nSigned-off-by: Martin Willi \u003cmartin@strongswan.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e242d1616781f9f1f0b01abf878700b259cd8b5",
      "tree": "9dbfba661b5a5466da155f6f25fc9c30513e801b",
      "parents": [
        "a661c4199b300503dae694efa21f1354f763b97c"
      ],
      "author": {
        "name": "Martin Willi",
        "email": "martin@strongswan.org",
        "time": "Wed Nov 25 00:29:51 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 25 15:48:37 2009 -0800"
      },
      "message": "xfrm: Define new XFRM netlink auth attribute with specified truncation bits\n\nThe new XFRMA_ALG_AUTH_TRUNC attribute taking a xfrm_algo_auth as\nargument allows the installation of authentication algorithms with\na truncation length specified in userspace, i.e. SHA256 with 128 bit\ninstead of 96 bit truncation.\n\nSigned-off-by: Martin Willi \u003cmartin@strongswan.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ba3eb034fb6fd1990ccc5a6d71d5abcda37b905",
      "tree": "0789ba36d96dba330416a1e6a9a68e891a78802a",
      "parents": [
        "35700212b45ea9f98fa682cfc1bc1a67c9ccc34b",
        "18b6c9a2213d3b6e0212e8b225abf95f7564206a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 24 15:01:29 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 24 15:01:29 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "46d5a808558181e03a4760d2188cc9879445738a",
      "tree": "a51cc59d64042f61518d25ef4ecc71924f243084",
      "parents": [
        "a5b03ad2143c5bc9ae76533e8321fe66258b4f35"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:54:00 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:54:00 2009 -0500"
      },
      "message": "sctp: Update max.burst implementation\n\nCurrent implementation of max.burst ends up limiting new\ndata during cwnd decay period.  The decay is happening becuase\nthe connection is idle and we are allowed to fill the congestion\nwindow.  The point of max.burst is to limit micro-bursts in response\nto large acks.  This still happens, as max.burst is still applied\nto each transmit opportunity.  It will also apply if a very large\nsend is made (greater then allowed by burst).\n\nTested-by: Florian Niederbacher \u003cflorian.niederbacher@student.uibk.ac.at\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "a5b03ad2143c5bc9ae76533e8321fe66258b4f35",
      "tree": "3c726dd6fd3d6d3bb711711018ea4808eb791e51",
      "parents": [
        "245cba7e55929dc2b10b7d915bfba0168eeeed17"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:59 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:59 2009 -0500"
      },
      "message": "sctp: Turn the enum socket options into defines\n\nRecent attempt to remove deprecated socket options demonstrated\nthat removing options from the enum space will have severe\nbinary compatibility issues.  The reason is that it changes\nthe subsequent enum space and causes option values to be redefined.\nTo solve this, and to get rid of the ugly double statements for\nevery option, we simply convert to the #define scheme.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "245cba7e55929dc2b10b7d915bfba0168eeeed17",
      "tree": "768264e6c1666552ba30cf7849ef4a5c1549a6e5",
      "parents": [
        "a242b41dedfe0fd51ab1c906daa703c09b196744"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:58 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:58 2009 -0500"
      },
      "message": "sctp: Remove useless last_time_used variable\n\nThe transport last_time_used variable is rather useless.\nIt was only used when determining if CWND needs to be updated\ndue to idle transport.  However, idle transport detection was\nbased on a Heartbeat timer and last_time_used was not incremented\nwhen sending Heartbeats.  As a result the check for cwnd reduction\nwas always true.  We can get rid of the variable and just base\nour cwnd manipulation on the HB timer (like the code comment sais).\nWe also have to call into the cwnd manipulation function regardless\nof whether HBs are enabled or not.  That way we will detect idle\ntransports if the user has disabled Heartbeats.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "a242b41dedfe0fd51ab1c906daa703c09b196744",
      "tree": "6c52f80cf5a0f8d73fc43d595cacd9d2f0154e3d",
      "parents": [
        "37051f73862d15862aecc08b887b2884137af327"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Mon Nov 23 15:53:58 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:58 2009 -0500"
      },
      "message": "sctp: remove deprecated SCTP_GET_*_OLD stuffs\n\nSCTP_GET_*_OLD stuffs are schedlued to be removed.\n\nCc: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "90f2f5318b3a5b0898fef0fec9b91376c7de7a2c",
      "tree": "33622d2b9e2064c36c17cd108c9b3a23af1fd6a4",
      "parents": [
        "e0e9db178a5ba4dbb5f16f958f1affbdc63d2cc4"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:57 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:57 2009 -0500"
      },
      "message": "sctp: Update SWS avaoidance receiver side algorithm\n\nWe currently send window update SACKs every time we free up 1 PMTU\nworth of data.  That a lot more SACKs then necessary.  Instead, we\u0027ll\nnow send back the actuall window every time we send a sack, and do\nwindow-update SACKs when a fraction of the receive buffer has been\nopened.  The fraction is controlled with a sysctl.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "6383cfb3ed3c5c0bea06da0099c219ef4237ecf5",
      "tree": "e3bfb43500b664c5a572d0a9456d7e7ec4f7aeab",
      "parents": [
        "b93d6471748de2ce02cc24774b774deb306a57a8"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:56 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:56 2009 -0500"
      },
      "message": "sctp: Fix malformed \"Invalid Stream Identifier\" error\n\nThe \"Invalid Stream Identifier\" error has a 16 bit reserved\nfield at the end, thus making the parameter length be 8 bytes.\nWe\u0027ve never supplied that reserved field making wireshark\ntag the packet as malformed.\n\nReported-by: Chris Dischino \u003ccdischino@sonusnet.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "b93d6471748de2ce02cc24774b774deb306a57a8",
      "tree": "98c69d791297d3805d00f9d8ce2fa04dfbd63c9a",
      "parents": [
        "6dc7694f9df20f148076d82d00cb3663afb0b000"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Mon Nov 23 15:53:56 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:56 2009 -0500"
      },
      "message": "sctp: implement the sender side for SACK-IMMEDIATELY extension\n\nThis patch implement the sender side for SACK-IMMEDIATELY\nextension.\n\n  Section 4.1.  Sender Side Considerations\n\n  Whenever the sender of a DATA chunk can benefit from the\n  corresponding SACK chunk being sent back without delay, the sender\n  MAY set the I-bit in the DATA chunk header.\n\n  Reasons for setting the I-bit include\n\n  o  The sender is in the SHUTDOWN-PENDING state.\n\n  o  The application requests to set the I-bit of the last DATA chunk\n     of a user message when providing the user message to the SCTP\n     implementation.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "475cba4ec8ee6b427cc3567692e6f48dd483c069",
      "tree": "bb62796f5ec2dc242ab83c7efd5d332b6b452dfd",
      "parents": [
        "dc63d3771cc6492220f53caf5fded6090d45d9ce"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Mon Nov 23 15:53:52 2009 -0500"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Nov 23 15:53:52 2009 -0500"
      },
      "message": "sctp: implement definition for SACK-IMMEDIATELY extension\n\nThis patch implement the definition for SACK-IMMEDIATELY\nextension.\n\nSection 3.  The I-bit in the DATA Chunk Header\n\n   The following Figure 1 shows the extended DATA chunk.\n\n    0                   1                   2                   3\n    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n   |   Type \u003d 0    |  Res  |I|U|B|E|           Length              |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n   |                              TSN                              |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n   |        Stream Identifier      |     Stream Sequence Number    |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n   |                  Payload Protocol Identifier                  |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n   \\                                                               \\\n   /                           User Data                           /\n   \\                                                               \\\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\n                                 Figure 1\n\n   The only difference between the DATA chunk in Figure 1 and the DATA\n   chunk defined in [RFC4960] is the addition of the I-bit in the flags\n   field of the chunk header.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "8964be4a9a5ca8cab1219bb046db2f6d1936227c",
      "tree": "8838c73a03cc69c010b55928fce3725d17bc26a9",
      "parents": [
        "fa9a6fed87df1b50804405e700f8d30251d3aaf1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Nov 20 15:35:04 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 20 15:35:04 2009 -0800"
      },
      "message": "net: rename skb-\u003eiif to skb-\u003eskb_iif\n\nTo help grep games, rename iif to skb_iif\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ced24c8973f79113444d1e00ee8bd9e74fbf43e",
      "tree": "aeab7b72d009b15f918b0dfeb17bfc5a1603b071",
      "parents": [
        "b2f125bcf5eac41a6d74f75ac573b77753213b74"
      ],
      "author": {
        "name": "Kevin Wells",
        "email": "kevin.wells@nxp.com",
        "time": "Thu Nov 12 00:23:00 2009 +0100"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Fri Nov 20 00:25:42 2009 +0000"
      },
      "message": "i2c: i2c-pnx: Made buf type unsigned to prevent sign extension\n\nMade buf type unsigned to prevent sign extension\n\nSigned-off-by: Kevin Wells \u003ckevin.wells@nxp.com\u003e\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\n"
    },
    {
      "commit": "308efab5e231d1510cd35931d87629bf5171caae",
      "tree": "f477e28706603dac927e352f2b0c23034f981808",
      "parents": [
        "5854d9c8d18359b1fc2f23c0ef2d51dd53281bd6"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Nov 19 13:30:36 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 19 13:43:06 2009 -0800"
      },
      "message": "vt: Fix use of \"new\" in a struct field\n\nAs this struct is exposed to user space and the API was added for this\nrelease it\u0027s a bit of a pain for the C++ world and we still have time to\nfix it. Rename the fields before we end up with that pain in an actual\nrelease.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nReported-by: Olivier Goffart\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fee096deb4f33897937b974cb2c5168bab7935be",
      "tree": "c86e5ed5b3435ff0f0266f343b19f8cc7be63340",
      "parents": [
        "d0e27b7808dc667f3015be0b6888f6d680e222c8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:05 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:05 2009 +0000"
      },
      "message": "CacheFiles: Catch an overly long wait for an old active object\n\nCatch an overly long wait for an old, dying active object when we want to\nreplace it with a new one.  The probability is that all the slow-work threads\nare hogged, and the delete can\u0027t get a look in.\n\nWhat we do instead is:\n\n (1) if there\u0027s nothing in the slow work queue, we sleep until either the dying\n     object has finished dying or there is something in the slow work queue\n     behind which we can queue our object.\n\n (2) if there is something in the slow work queue, we return ETIMEDOUT to\n     fscache_lookup_object(), which then puts us back on the slow work queue,\n     presumably behind the deletion that we\u0027re blocked by.  We are then\n     deferred for a while until we work our way back through the queue -\n     without blocking a slow-work thread unnecessarily.\n\nA backtrace similar to the following may appear in the log without this patch:\n\n\tINFO: task kslowd004:5711 blocked for more than 120 seconds.\n\t\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n\tkslowd004     D 0000000000000000     0  5711      2 0x00000080\n\t ffff88000340bb80 0000000000000046 ffff88002550d000 0000000000000000\n\t ffff88002550d000 0000000000000007 ffff88000340bfd8 ffff88002550d2a8\n\t 000000000000ddf0 00000000000118c0 00000000000118c0 ffff88002550d2a8\n\tCall Trace:\n\t [\u003cffffffff81058e21\u003e] ? trace_hardirqs_on+0xd/0xf\n\t [\u003cffffffffa011c4d8\u003e] ? cachefiles_wait_bit+0x0/0xd [cachefiles]\n\t [\u003cffffffffa011c4e1\u003e] cachefiles_wait_bit+0x9/0xd [cachefiles]\n\t [\u003cffffffff81353153\u003e] __wait_on_bit+0x43/0x76\n\t [\u003cffffffff8111ae39\u003e] ? ext3_xattr_get+0x1ec/0x270\n\t [\u003cffffffff813531ef\u003e] out_of_line_wait_on_bit+0x69/0x74\n\t [\u003cffffffffa011c4d8\u003e] ? cachefiles_wait_bit+0x0/0xd [cachefiles]\n\t [\u003cffffffff8104c125\u003e] ? wake_bit_function+0x0/0x2e\n\t [\u003cffffffffa011bc79\u003e] cachefiles_mark_object_active+0x203/0x23b [cachefiles]\n\t [\u003cffffffffa011c209\u003e] cachefiles_walk_to_object+0x558/0x827 [cachefiles]\n\t [\u003cffffffffa011a429\u003e] cachefiles_lookup_object+0xac/0x12a [cachefiles]\n\t [\u003cffffffffa00aa1e9\u003e] fscache_lookup_object+0x1c7/0x214 [fscache]\n\t [\u003cffffffffa00aafc5\u003e] fscache_object_state_machine+0xa5/0x52d [fscache]\n\t [\u003cffffffffa00ab4ac\u003e] fscache_object_slow_work_execute+0x5f/0xa0 [fscache]\n\t [\u003cffffffff81082093\u003e] slow_work_execute+0x18f/0x2d1\n\t [\u003cffffffff8108239a\u003e] slow_work_thread+0x1c5/0x308\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810821d5\u003e] ? slow_work_thread+0x0/0x308\n\t [\u003cffffffff8104be91\u003e] kthread+0x7a/0x82\n\t [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n\t [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n\t [\u003cffffffff8104be17\u003e] ? kthread+0x0/0x82\n\t [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\t1 lock held by kslowd004/5711:\n\t #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#7/1){+.+.+.}, at: [\u003cffffffffa011be64\u003e] cachefiles_walk_to_object+0x1b3/0x827 [cachefiles]\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "a17754fb8c28af19cd70dcbec6d5b0773b94e0c1",
      "tree": "d7c25b217c684153eadbac78ab9b1bbff08b75f6",
      "parents": [
        "868411be3f445a83fafbd734f3e426400138add5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:52 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:52 2009 +0000"
      },
      "message": "CacheFiles: Don\u0027t write a full page if there\u0027s only a partial page to cache\n\ncachefiles_write_page() writes a full page to the backing file for the last\npage of the netfs file, even if the netfs file\u0027s last page is only a partial\npage.\n\nThis causes the EOF on the backing file to be extended beyond the EOF of the\nnetfs, and thus the backing file will be truncated by cachefiles_attr_changed()\ncalled from cachefiles_lookup_object().\n\nSo we need to limit the write we make to the backing file on that last page\nsuch that it doesn\u0027t push the EOF too far.\n\nAlso, if a backing file that has a partial page at the end is expanded, we\ndiscard the partial page and refetch it on the basis that we then have a hole\nin the file with invalid data, and should the power go out...  A better way to\ndeal with this could be to record a note that the partial page contains invalid\ndata until the correct data is written into it.\n\nThis isn\u0027t a problem for netfs\u0027s that discard the whole backing file if the\nfile size changes (such as NFS).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "60d543ca724be155c2b6166e36a00c80b21bd810",
      "tree": "90ec6edd77ddb7666dbf7069aa2e001f155cea49",
      "parents": [
        "d461d26dde901b0523c46b0317e7fccf574a3933"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:45 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:45 2009 +0000"
      },
      "message": "FS-Cache: Start processing an object\u0027s operations on that object\u0027s death\n\nStart processing an object\u0027s operations when that object moves into the DYING\nstate as the object cannot be destroyed until all its outstanding operations\nhave completed.\n\nFurthermore, make sure that read and allocation operations handle being woken\nup on a dead object.  Such events are recorded in the Allocs.abt and\nRetrvls.abt statistics as viewable through /proc/fs/fscache/stats.\n\nThe code for waiting for object activation for the read and allocation\noperations is also extracted into its own function as it is much the same in\nall cases, differing only in the stats incremented.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "201a15428bd54f83eccec8b7c64a04b8f9431204",
      "tree": "326fcce64ce96657253fd141a3f4a767ac95418a",
      "parents": [
        "e3d4d28b1c8cc7c26536a50b43d86ccd39878550"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:35 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:35 2009 +0000"
      },
      "message": "FS-Cache: Handle pages pending storage that get evicted under OOM conditions\n\nHandle netfs pages that the vmscan algorithm wants to evict from the pagecache\nunder OOM conditions, but that are waiting for write to the cache.  Under these\nconditions, vmscan calls the releasepage() function of the netfs, asking if a\npage can be discarded.\n\nThe problem is typified by the following trace of a stuck process:\n\n\tkslowd005     D 0000000000000000     0  4253      2 0x00000080\n\t ffff88001b14f370 0000000000000046 ffff880020d0d000 0000000000000007\n\t 0000000000000006 0000000000000001 ffff88001b14ffd8 ffff880020d0d2a8\n\t 000000000000ddf0 00000000000118c0 00000000000118c0 ffff880020d0d2a8\n\tCall Trace:\n\t [\u003cffffffffa00782d8\u003e] __fscache_wait_on_page_write+0x8b/0xa7 [fscache]\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffffa0078240\u003e] ? __fscache_check_page_write+0x63/0x70 [fscache]\n\t [\u003cffffffffa00b671d\u003e] nfs_fscache_release_page+0x4e/0xc4 [nfs]\n\t [\u003cffffffffa00927f0\u003e] nfs_release_page+0x3c/0x41 [nfs]\n\t [\u003cffffffff810885d3\u003e] try_to_release_page+0x32/0x3b\n\t [\u003cffffffff81093203\u003e] shrink_page_list+0x316/0x4ac\n\t [\u003cffffffff8109372b\u003e] shrink_inactive_list+0x392/0x67c\n\t [\u003cffffffff813532fa\u003e] ? __mutex_unlock_slowpath+0x100/0x10b\n\t [\u003cffffffff81058df0\u003e] ? trace_hardirqs_on_caller+0x10c/0x130\n\t [\u003cffffffff8135330e\u003e] ? mutex_unlock+0x9/0xb\n\t [\u003cffffffff81093aa2\u003e] shrink_list+0x8d/0x8f\n\t [\u003cffffffff81093d1c\u003e] shrink_zone+0x278/0x33c\n\t [\u003cffffffff81052d6c\u003e] ? ktime_get_ts+0xad/0xba\n\t [\u003cffffffff81094b13\u003e] try_to_free_pages+0x22e/0x392\n\t [\u003cffffffff81091e24\u003e] ? isolate_pages_global+0x0/0x212\n\t [\u003cffffffff8108e743\u003e] __alloc_pages_nodemask+0x3dc/0x5cf\n\t [\u003cffffffff81089529\u003e] grab_cache_page_write_begin+0x65/0xaa\n\t [\u003cffffffff8110f8c0\u003e] ext3_write_begin+0x78/0x1eb\n\t [\u003cffffffff81089ec5\u003e] generic_file_buffered_write+0x109/0x28c\n\t [\u003cffffffff8103cb69\u003e] ? current_fs_time+0x22/0x29\n\t [\u003cffffffff8108a509\u003e] __generic_file_aio_write+0x350/0x385\n\t [\u003cffffffff8108a588\u003e] ? generic_file_aio_write+0x4a/0xae\n\t [\u003cffffffff8108a59e\u003e] generic_file_aio_write+0x60/0xae\n\t [\u003cffffffff810b2e82\u003e] do_sync_write+0xe3/0x120\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810b18e1\u003e] ? __dentry_open+0x1a5/0x2b8\n\t [\u003cffffffff810b1a76\u003e] ? dentry_open+0x82/0x89\n\t [\u003cffffffffa00e693c\u003e] cachefiles_write_page+0x298/0x335 [cachefiles]\n\t [\u003cffffffffa0077147\u003e] fscache_write_op+0x178/0x2c2 [fscache]\n\t [\u003cffffffffa0075656\u003e] fscache_op_execute+0x7a/0xd1 [fscache]\n\t [\u003cffffffff81082093\u003e] slow_work_execute+0x18f/0x2d1\n\t [\u003cffffffff8108239a\u003e] slow_work_thread+0x1c5/0x308\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810821d5\u003e] ? slow_work_thread+0x0/0x308\n\t [\u003cffffffff8104be91\u003e] kthread+0x7a/0x82\n\t [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n\t [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n\t [\u003cffffffff8102ef83\u003e] ? tg_shares_up+0x171/0x227\n\t [\u003cffffffff8104be17\u003e] ? kthread+0x0/0x82\n\t [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\nIn the above backtrace, the following is happening:\n\n (1) A page storage operation is being executed by a slow-work thread\n     (fscache_write_op()).\n\n (2) FS-Cache farms the operation out to the cache to perform\n     (cachefiles_write_page()).\n\n (3) CacheFiles is then calling Ext3 to perform the actual write, using Ext3\u0027s\n     standard write (do_sync_write()) under KERNEL_DS directly from the netfs\n     page.\n\n (4) However, for Ext3 to perform the write, it must allocate some memory, in\n     particular, it must allocate at least one page cache page into which it\n     can copy the data from the netfs page.\n\n (5) Under OOM conditions, the memory allocator can\u0027t immediately come up with\n     a page, so it uses vmscan to find something to discard\n     (try_to_free_pages()).\n\n (6) vmscan finds a clean netfs page it might be able to discard (possibly the\n     one it\u0027s trying to write out).\n\n (7) The netfs is called to throw the page away (nfs_release_page()) - but it\u0027s\n     called with __GFP_WAIT, so the netfs decides to wait for the store to\n     complete (__fscache_wait_on_page_write()).\n\n (8) This blocks a slow-work processing thread - possibly against itself.\n\nThe system ends up stuck because it can\u0027t write out any netfs pages to the\ncache without allocating more memory.\n\nTo avoid this, we make FS-Cache cancel some writes that aren\u0027t in the middle of\nactually being performed.  This means that some data won\u0027t make it into the\ncache this time.  To support this, a new FS-Cache function is added\nfscache_maybe_release_page() that replaces what the netfs releasepage()\nfunctions used to do with respect to the cache.\n\nThe decisions fscache_maybe_release_page() makes are counted and displayed\nthrough /proc/fs/fscache/stats on a line labelled \"VmScan\".  There are four\ncounters provided: \"nos\u003dN\" - pages that weren\u0027t pending storage; \"gon\u003dN\" -\npages that were pending storage when we first looked, but weren\u0027t by the time\nwe got the object lock; \"bsy\u003dN\" - pages that we ignored as they were actively\nbeing written when we looked; and \"can\u003dN\" - pages that we cancelled the storage\nof.\n\nWhat I\u0027d really like to do is alter the behaviour of the cancellation\nheuristics, depending on how necessary it is to expel pages.  If there are\nplenty of other pages that aren\u0027t waiting to be written to the cache that\ncould be ejected first, then it would be nice to hold up on immediate\ncancellation of cache writes - but I don\u0027t see a way of doing that.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "1bccf513ac49d44604ba1cddcc29f5886e70f1b6",
      "tree": "096ba75a3d02018c5f6e1857aaf1d41471733850",
      "parents": [
        "6897e3df8fc37bd4a58bbcdef8306da7fc175584"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:25 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:25 2009 +0000"
      },
      "message": "FS-Cache: Fix lock misorder in fscache_write_op()\n\nFS-Cache has two structs internally for keeping track of the internal state of\na cached file: the fscache_cookie struct, which represents the netfs\u0027s state,\nand fscache_object struct, which represents the cache\u0027s state.  Each has a\npointer that points to the other (when both are in existence), and each has a\nspinlock for pointer maintenance.\n\nSince netfs operations approach these structures from the cookie side, they get\nthe cookie lock first, then the object lock.  Cache operations, on the other\nhand, approach from the object side, and get the object lock first.  It is not\nthen permitted for a cache operation to get the cookie lock whilst it is\nholding the object lock lest deadlock occur; instead, it must do one of two\nthings:\n\n (1) increment the cookie usage counter, drop the object lock and then get both\n     locks in order, or\n\n (2) simply hold the object lock as certain parts of the cookie may not be\n     altered whilst the object lock is held.\n\nIt is also not permitted to follow either pointer without holding the lock at\nthe end you start with.  To break the pointers between the cookie and the\nobject, both locks must be held.\n\nfscache_write_op(), however, violates the locking rules: It attempts to get the\ncookie lock without (a) checking that the cookie pointer is a valid pointer,\nand (b) holding the object lock to protect the cookie pointer whilst it follows\nit.  This is so that it can access the pending page store tree without\ninterference from __fscache_write_page().\n\nThis is fixed by splitting the cookie lock, such that the page store tracking\ntree is protected by its own lock, and checking that the cookie pointer is\nnon-NULL before we attempt to follow it whilst holding the object lock.\n\nThe new lock is subordinate to both the cookie lock and the object lock, and so\nshould be taken after those.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4fbf4291aa15926cd4fdca0ffe9122e89d0459db",
      "tree": "ec2195c39ef8117acea598af4a5c20c77f67aa0b",
      "parents": [
        "440f0affe247e9990c8f8778f1861da4fd7d5e50"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:04 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:04 2009 +0000"
      },
      "message": "FS-Cache: Allow the current state of all objects to be dumped\n\nAllow the current state of all fscache objects to be dumped by doing:\n\n\tcat /proc/fs/fscache/objects\n\nBy default, all objects and all fields will be shown.  This can be restricted\nby adding a suitable key to one of the caller\u0027s keyrings (such as the session\nkeyring):\n\n\tkeyctl add user fscache:objlist \"\u003crestrictions\u003e\" @s\n\nThe \u003crestrictions\u003e are:\n\n\tK\tShow hexdump of object key (don\u0027t show if not given)\n\tA\tShow hexdump of object aux data (don\u0027t show if not given)\n\nAnd paired restrictions:\n\n\tC\tShow objects that have a cookie\n\tc\tShow objects that don\u0027t have a cookie\n\tB\tShow objects that are busy\n\tb\tShow objects that aren\u0027t busy\n\tW\tShow objects that have pending writes\n\tw\tShow objects that don\u0027t have pending writes\n\tR\tShow objects that have outstanding reads\n\tr\tShow objects that don\u0027t have outstanding reads\n\tS\tShow objects that have slow work queued\n\ts\tShow objects that don\u0027t have slow work queued\n\nIf neither side of a restriction pair is given, then both are implied.  For\nexample:\n\n\tkeyctl add user fscache:objlist KB @s\n\nshows objects that are busy, and lists their object keys, but does not dump\ntheir auxiliary data.  It also implies \"CcWwRrSs\", but as \u0027B\u0027 is given, \u0027b\u0027 is\nnot implied.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "440f0affe247e9990c8f8778f1861da4fd7d5e50",
      "tree": "0012732ac8af0245005403d9a3b0a2b1209edf32",
      "parents": [
        "3bde31a4ac225cb5805be02eff6eaaf7e0766ccd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:01 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:01 2009 +0000"
      },
      "message": "FS-Cache: Annotate slow-work runqueue proc lines for FS-Cache work items\n\nAnnotate slow-work runqueue proc lines for FS-Cache work items.  Objects\ninclude the object ID and the state.  Operations include the object ID, the\noperation ID and the operation type and state.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3bde31a4ac225cb5805be02eff6eaaf7e0766ccd",
      "tree": "9fb757ab7d46e0c37fb5e88d3185f1861fbc794e",
      "parents": [
        "31ba99d304494cb28fa8671ccc769c5543e1165d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:57 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:57 2009 +0000"
      },
      "message": "SLOW_WORK: Allow a requeueable work item to sleep till the thread is needed\n\nAdd a function to allow a requeueable work item to sleep till the thread\nprocessing it is needed by the slow-work facility to perform other work.\n\nSometimes a work item can\u0027t progress immediately, but must wait for the\ncompletion of another work item that\u0027s currently being processed by another\nslow-work thread.\n\nIn some circumstances, the waiting item could instead - theoretically - put\nitself back on the queue and yield its thread back to the slow-work facility,\nthus waiting till it gets processing time again before attempting to progress.\nThis would allow other work items processing time on that thread.\n\nHowever, this only works if there is something on the queue for it to queue\nbehind - otherwise it will just get a thread again immediately, and will end\nup cycling between the queue and the thread, eating up valuable CPU time.\n\nSo, slow_work_sleep_till_thread_needed() is provided such that an item can put\nitself on a wait queue that will wake it up when the event it is actually\ninterested in occurs, then call this function in lieu of calling schedule().\n\nThis function will then sleep until either the item\u0027s event occurs or another\nwork item appears on the queue.  If another work item is queued, but the\nitem\u0027s event hasn\u0027t occurred, then the work item should requeue itself and\nyield the thread back to the slow-work facility by returning.\n\nThis can be used by CacheFiles for an object that is being created on one\nthread to wait for an object being deleted on another thread where there is\nnothing on the queue for the creation to go and wait behind.  As soon as an\nitem appears on the queue that could be given thread time instead, CacheFiles\ncan stick the creating object back on the queue and return to the slow-work\nfacility - assuming the object deletion didn\u0027t also complete.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "31ba99d304494cb28fa8671ccc769c5543e1165d",
      "tree": "ea2d839fb70798cf6a3b55ccc87f749e14e14f1d",
      "parents": [
        "8fba10a42d191de612e60e7009c8f0313f90a9b3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:53 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:53 2009 +0000"
      },
      "message": "SLOW_WORK: Allow the owner of a work item to determine if it is queued or not\n\nAdd a function (slow_work_is_queued()) to permit the owner of a work item to\ndetermine if the item is queued or not.\n\nThe work item is counted as being queued if it is actually on the queue, not\njust if it is pending.  If it is executing and pending, then it is not on the\nqueue, but will rather be put back on the queue when execution finishes.\n\nThis permits a caller to quickly work out if it may be able to put another,\ndependent work item on the queue behind it, or whether it will have to wait\ntill that is finished.\n\nThis can be used by CacheFiles to work out whether the creation a new object\ncan be immediately deferred when it has to wait for an old object to be\ndeleted, or whether a wait must take place.  If a wait is necessary, then the\nslow-work thread can otherwise get blocked, preventing the deletion from\ntaking place.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "8fba10a42d191de612e60e7009c8f0313f90a9b3",
      "tree": "1e772fcc7ad3eb5bb3ca1c6cd156171295e6db25",
      "parents": [
        "6b8268b17a1ffc942bc72d7d00274e433d6b6719"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:51 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:51 2009 +0000"
      },
      "message": "SLOW_WORK: Allow the work items to be viewed through a /proc file\n\nAllow the executing and queued work items to be viewed through a /proc file\nfor debugging purposes.  The contents look something like the following:\n\n    THR PID   ITEM ADDR        FL MARK  DESC\n    \u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d \u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n      0  3005 ffff880023f52348  a 952ms FSC: OBJ17d3: LOOK\n      1  3006 ffff880024e33668  2 160ms FSC: OBJ17e5 OP60d3b: Write1/Store fl\u003d2\n      2  3165 ffff8800296dd180  a 424ms FSC: OBJ17e4: LOOK\n      3  4089 ffff8800262c8d78  a 212ms FSC: OBJ17ea: CRTN\n      4  4090 ffff88002792bed8  2 388ms FSC: OBJ17e8 OP60d36: Write1/Store fl\u003d2\n      5  4092 ffff88002a0ef308  2 388ms FSC: OBJ17e7 OP60d2e: Write1/Store fl\u003d2\n      6  4094 ffff88002abaf4b8  2 132ms FSC: OBJ17e2 OP60d4e: Write1/Store fl\u003d2\n      7  4095 ffff88002bb188e0  a 388ms FSC: OBJ17e9: CRTN\n    vsq     - ffff880023d99668  1 308ms FSC: OBJ17e0 OP60f91: Write1/EnQ fl\u003d2\n    vsq     - ffff8800295d1740  1 212ms FSC: OBJ16be OP4d4b6: Write1/EnQ fl\u003d2\n    vsq     - ffff880025ba3308  1 160ms FSC: OBJ179a OP58dec: Write1/EnQ fl\u003d2\n    vsq     - ffff880024ec83e0  1 160ms FSC: OBJ17ae OP599f2: Write1/EnQ fl\u003d2\n    vsq     - ffff880026618e00  1 160ms FSC: OBJ17e6 OP60d33: Write1/EnQ fl\u003d2\n    vsq     - ffff880025a2a4b8  1 132ms FSC: OBJ16a2 OP4d583: Write1/EnQ fl\u003d2\n    vsq     - ffff880023cbe6d8  9 212ms FSC: OBJ17eb: LOOK\n    vsq     - ffff880024d37590  9 212ms FSC: OBJ17ec: LOOK\n    vsq     - ffff880027746cb0  9 212ms FSC: OBJ17ed: LOOK\n    vsq     - ffff880024d37ae8  9 212ms FSC: OBJ17ee: LOOK\n    vsq     - ffff880024d37cb0  9 212ms FSC: OBJ17ef: LOOK\n    vsq     - ffff880025036550  9 212ms FSC: OBJ17f0: LOOK\n    vsq     - ffff8800250368e0  9 212ms FSC: OBJ17f1: LOOK\n    vsq     - ffff880025036aa8  9 212ms FSC: OBJ17f2: LOOK\n\nIn the \u0027THR\u0027 column, executing items show the thread they\u0027re occupying and\nqueued threads indicate which queue they\u0027re on.  \u0027PID\u0027 shows the process ID of\na slow-work thread that\u0027s executing something.  \u0027FL\u0027 shows the work item flags.\n\u0027MARK\u0027 indicates how long since an item was queued or began executing.  Lastly,\nthe \u0027DESC\u0027 column permits the owner of an item to give some information.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6b8268b17a1ffc942bc72d7d00274e433d6b6719",
      "tree": "bd293facd4b805fc05588fcaf024e964a0bb1cca",
      "parents": [
        "0160950297c08f8233c89b9f9e7dd59cfb080809"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 19 18:10:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:47 2009 +0000"
      },
      "message": "SLOW_WORK: Add delayed_slow_work support\n\nThis adds support for starting slow work with a delay, similar\nto the functionality we have for workqueues.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "0160950297c08f8233c89b9f9e7dd59cfb080809",
      "tree": "4910bfb7ab5b4000a1679fd165d217ff48226268",
      "parents": [
        "4d8bb2cbccf6dccaada509aafeb01c6205c9d8c4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 19 18:10:43 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:43 2009 +0000"
      },
      "message": "SLOW_WORK: Add support for cancellation of slow work\n\nAdd support for cancellation of queued slow work and delayed slow work items.\nThe cancellation functions will wait for items that are pending or undergoing\nexecution to be discarded by the slow work facility.\n\nAttempting to enqueue work that is in the process of being cancelled will\nresult in ECANCELED.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3d7a641e544e428191667e8b1f83f96fa46dbd65",
      "tree": "172aa672eca96b94f5531885b82abb82b43c7d8a",
      "parents": [
        "66b00a7c93ec782d118d2c03bd599cfd041e80a1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:23 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:23 2009 +0000"
      },
      "message": "SLOW_WORK: Wait for outstanding work items belonging to a module to clear\n\nWait for outstanding slow work items belonging to a module to clear when\nunregistering that module as a user of the facility.  This prevents the put_ref\ncode of a work item from being taken away before it returns.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "a58ce43f2fb17b728395ff530f019ca53c80145f",
      "tree": "1de5d2680d42de12902ccb85e99bc86f63eebf58",
      "parents": [
        "7351c6bd482712e5e3ec9dffc547de0e0863efb0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 19 12:45:42 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 19 11:09:02 2009 -0500"
      },
      "message": "mac80211: avoid spurious deauth frames/messages\n\nWith WEXT, it happens frequently that the SME\nrequests an authentication but then deauthenticates\nright away because some new parameters came along.\nEvery time this happens we print a deauth message\nand send a deauth frame, but both of that is rather\nconfusing. Avoid it by aborting the authentication\nprocess silently, and telling cfg80211 about that.\n\nThe patch looks larger than it really is:\n__cfg80211_auth_remove() is split out from\ncfg80211_send_auth_timeout(), there\u0027s no new code\nexcept __cfg80211_auth_canceled() (a one-liner) and\nthe mac80211 bits (7 new lines of code).\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7351c6bd482712e5e3ec9dffc547de0e0863efb0",
      "tree": "1847c0470af79727b58611a69fa82384bd904d60",
      "parents": [
        "ad4bb6f8883a13bb0f65b194dae36c62a02ac779"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 19 01:08:30 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 19 11:08:56 2009 -0500"
      },
      "message": "mac80211: request TX status where needed\n\nRight now all frames mac80211 hands to the driver\nhave the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to\nrequest TX status. This isn\u0027t really necessary, only\nthe injected frames need TX status (the latter for\nhostapd) so move setting this flag.\n\nThe rate control algorithms also need TX status, but\nthey don\u0027t require it.\n\nAlso, rt2x00 uses that bit for its own purposes and\nseems to require it being set for all frames, but\nthat can be fixed in rt2x00.\n\nThis doesn\u0027t really change anything for any drivers\nbut in the future drivers using hw-rate control may\nopt to not report TX status for frames that don\u0027t\nhave the IEEE80211_TX_CTL_REQ_TX_STATUS flag set.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e [rt2x00 bits]\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ad4bb6f8883a13bb0f65b194dae36c62a02ac779",
      "tree": "b395936203ac891b9a537c26b4602f727c4387d0",
      "parents": [
        "9bc383de37090ba7ca3ff32a12c9d809dc5867f0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 19 00:56:30 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 19 11:08:54 2009 -0500"
      },
      "message": "cfg80211: disallow bridging managed/adhoc interfaces\n\nA number of people have tried to add a wireless interface\n(in managed mode) to a bridge and then complained that it\ndoesn\u0027t work. It cannot work, however, because in 802.11\nnetworks all packets need to be acknowledged and as such\nneed to be sent to the right address. Promiscuous doesn\u0027t\nhelp here. The wireless address format used for these\nlinks has only space for three addresses, the\n * transmitter, which must be equal to the sender (origin)\n * receiver (on the wireless medium), which is the AP in\n   the case of managed mode\n * the recipient (destination), which is on the APs local\n   network segment\n\nIn an IBSS, it is similar, but the receiver and recipient\nmust match and the third address is used as the BSSID.\n\nTo avoid such mistakes in the future, disallow adding a\nwireless interface to a bridge.\n\nFelix has recently added a four-address mode to the AP\nand client side that can be used (after negotiating that\nit is possible, which must happen out-of-band by setting\nup both sides) for bridging, so allow that case.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9bc383de37090ba7ca3ff32a12c9d809dc5867f0",
      "tree": "2b502b918f585427b45357e5a9a781ea9f06c263",
      "parents": [
        "5be83de54c16944dea9c16c6a5a53c1fa75ed304"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 19 11:55:19 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 19 11:08:53 2009 -0500"
      },
      "message": "cfg80211: introduce capability for 4addr mode\n\nIt\u0027s very likely that not many devices will support\nfour-address mode in station or AP mode so introduce\ncapability bits for both modes, set them in mac80211\nand check them when userspace tries to use the mode.\nAlso, keep track of 4addr in cfg80211 (wireless_dev)\nand not in mac80211 any more. mac80211 can also be\nimproved for the VLAN case by not looking at the\n4addr flag but maintaining the station pointer for\nit correctly. However, keep track of use_4addr for\nstation mode in mac80211 to avoid all the derefs.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5be83de54c16944dea9c16c6a5a53c1fa75ed304",
      "tree": "dd251d9331a07ec73c7a4992c79ce30f0553db40",
      "parents": [
        "9bd568a50c446433038dec2a5186c5c57c3dbd23"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 19 00:56:28 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 19 11:08:50 2009 -0500"
      },
      "message": "cfg80211: convert bools into flags\n\nWe\u0027ve accumulated a number of options for wiphys\nwhich make more sense as flags as we keep adding\nmore. Convert the existing ones.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "386e50cc7d82b3799ea6f53267f04f123ae05afe",
      "tree": "6134850a72bbb21e11c2318d84eba0667d7dcf54",
      "parents": [
        "0e4817470be8d233fb58b5af7b938185dae94d67"
      ],
      "author": {
        "name": "Andrew Hendry",
        "email": "andrew.hendry@gmail.com",
        "time": "Wed Nov 18 23:30:41 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 23:30:41 2009 -0800"
      },
      "message": "X25: Enable setting of cause and diagnostic fields\n\nAdds SIOCX25SCAUSEDIAG, allowing X.25 programs to set the cause and\ndiagnostic fields.\n\nNormally used to indicate status upon closing connections.\n\nSigned-off-by: Andrew Hendry \u003candrew.hendry@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3505d1a9fd65e2d3e00827857b6795d9d8983658",
      "tree": "941cfafdb57c427bb6b7ebf6354ee93b2a3693b5",
      "parents": [
        "dfef948ed2ba69cf041840b5e860d6b4e16fa0b1",
        "66b00a7c93ec782d118d2c03bd599cfd041e80a1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 22:19:03 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 22:19:03 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/sfc/sfe4001.c\n\tdrivers/net/wireless/libertas/cmd.c\n\tdrivers/staging/Kconfig\n\tdrivers/staging/Makefile\n\tdrivers/staging/rtl8187se/Kconfig\n\tdrivers/staging/rtl8192e/Kconfig\n"
    },
    {
      "commit": "486bfe5c7ca6184f35b93b9f2bf3fa3baa1b65e4",
      "tree": "3cec2570aca8ec88da087398d0bdd52054dfa697",
      "parents": [
        "5cbb0601bfddfc55d6ea409651313c13e3d6e90a",
        "70e3bb504ccfe6ba725ab120bdb516d205d834f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 18 14:54:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 18 14:54:45 2009 -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  cxgb3: fix premature page unmap\n  ibm_newemac: Fix EMACx_TRTR[TRT] bit shifts\n  vlan: Fix register_vlan_dev() error path\n  gro: Fix illegal merging of trailer trash\n  sungem: Fix Serdes detection.\n  net: fix mdio section mismatch warning\n  ppp: fix BUG on non-linear SKB (multilink receive)\n  ixgbe: Fixing EEH handler to handle more than one error\n  net: Fix the rollback test in dev_change_name()\n  Revert \"isdn: isdn_ppp: Use SKB list facilities instead of home-grown implementation.\"\n  TI Davinci EMAC : Fix Console Hang when bringing the interface down\n  smsc911x: Fix Console Hang when bringing the interface down.\n  mISDN: fix error return in HFCmulti_init()\n  forcedeth: mac address fix\n  r6040: fix version printing\n  Bluetooth: Fix regression with L2CAP configuration in Basic Mode\n  Bluetooth: Select Basic Mode as default for SOCK_SEQPACKET\n  Bluetooth: Set general bonding security for ACL by default\n  r8169: Fix receive buffer length when MTU is between 1515 and 1536\n  can: add the missing netlink get_xstats_size callback\n  ...\n"
    },
    {
      "commit": "136cfa28615ccce0f9374811480e0b81c4191ea5",
      "tree": "9a07d6f316d19f85fd989b17e75d931f907c7d1a",
      "parents": [
        "fe7a5d5c1ad659bf0ec7dc171e122aeefa16ac25"
      ],
      "author": {
        "name": "Rui Paulo",
        "email": "rpaulo@gmail.com",
        "time": "Wed Nov 18 18:40:00 2009 +0000"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:27 2009 -0500"
      },
      "message": "mac80211: use a structure to hold the mesh config information element\n\nSigned-off-by: Rui Paulo \u003crpaulo@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "875405a7793e9c35fab33819e7e5df7a98b6064c",
      "tree": "7696916f19a3e69ac06c76bd4ca3124e4360ea50",
      "parents": [
        "0878c3504f92f1bf063d0890a9960d4b9e6c4618"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Nov 18 16:48:01 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:26 2009 -0500"
      },
      "message": "rfkill: Add constant for RFKILL_TYPE_FM radio devices\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Janakiram Sistla \u003cjanakiram.sistla@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0878c3504f92f1bf063d0890a9960d4b9e6c4618",
      "tree": "3c909d19fca965dcf1a1dbe9a0821c16937b0317",
      "parents": [
        "a2fb0ad30aa52bdfd6e0870702444bae6090520f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Nov 18 16:48:00 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:26 2009 -0500"
      },
      "message": "rfkill: Add missing description for RFKILL_TYPE_GPS\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Janakiram Sistla \u003cjanakiram.sistla@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "af65cd96dd4ea8ea5adc6ee850e61a407cd1067a",
      "tree": "fcdd50d2b9121bc26110329cb0fbefdeace99858",
      "parents": [
        "c95cf3d09adc9afe7816a13a920b6df36062a3fe"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Nov 17 18:18:36 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:24 2009 -0500"
      },
      "message": "mac80211: make software rate control optional\n\nSome devices implement the entire rate control in\nfirmware in some way, like wl1271 or like iwlwifi\nwhich does some things in software but not a lot.\nTherefore generic software rate control is rather\nuseless for them and just adds avoidable overhead\nto the transmit path.\n\nIt\u0027s fairly simple to let drivers indicate that\nthey do not need rate control, but they need to\nfulfil a number of conditions that we encode in\nWARN_ONs.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c95cf3d09adc9afe7816a13a920b6df36062a3fe",
      "tree": "6f7b922526c4ae4fa1d593d8bcd89738d37a2784",
      "parents": [
        "7010193ad8e64dfbc006b167c2ee712d4441292c"
      ],
      "author": {
        "name": "David-John Willis",
        "email": "John.Willis@Distant-earth.com",
        "time": "Tue Nov 17 18:50:09 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:24 2009 -0500"
      },
      "message": "wl1251: add NVS in EEPROM support\n\nwl1251 supports also that NVS is stored in a separate EEPROM, add support\nfor that.\n\nkvalo: use platform data instead Kconfig and use kernel style\n\nSigned-off-by: David-John Willis \u003cJohn.Willis@Distant-earth.com\u003e\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c951ad3550ab40071bb0f222ba6125845769c08a",
      "tree": "9db1d3c110b359a34a3d706eaf40285cfa01550b",
      "parents": [
        "3b53fde8ac40c4321389def14d7f4a9e14092fd3"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Nov 16 12:00:38 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:15 2009 -0500"
      },
      "message": "mac80211: convert aggregation to operate on vifs/stas\n\nThe entire aggregation code currently operates on the\nhw pointer and station addresses, but that needs to\nchange to make stations purely per-vif; As one step\npreparing for that make the aggregation code callable\nwith the station, or by the combination of virtual\ninterface and station address.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "599bf6a4d64d8399e99514e0e1ef02e97e43238f",
      "tree": "870498289546f57a6d96f5c272fde5a8aaca1f2c",
      "parents": [
        "3e5b1101f59fb3e17a8eb32cca100ae07fd7100e"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sun Nov 15 23:07:30 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 18 17:09:10 2009 -0500"
      },
      "message": "mac80211: add the total ampdu length to tx info\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dfef948ed2ba69cf041840b5e860d6b4e16fa0b1",
      "tree": "eab385cabe589346bcf19385c997ab8dabaef7bd",
      "parents": [
        "ea31ba359c55e0734ff895692185d4c50cf0c537",
        "c85e9d7739fc8d879c4293ea020760926d6f87cd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 10:55:32 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 10:55:32 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "eeb74a9d45f781ec6f47b9e0a75a6a427b53f165",
      "tree": "e996e55e190f6003e33b4fbe41600ff8528a100b",
      "parents": [
        "d90310243fd750240755e217c5faa13e24f41536"
      ],
      "author": {
        "name": "Rémi Denis-Courmont",
        "email": "remi.denis-courmont@nokia.com",
        "time": "Wed Nov 18 10:08:26 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 10:08:26 2009 -0800"
      },
      "message": "Phonet: convert devices list to RCU\n\nSigned-off-by: Rémi Denis-Courmont \u003cremi.denis-courmont@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e014debecd3ee3832e6476b3a9c948edfcfd1250",
      "tree": "9b73836a5dc3c1df92b17037a12bbbfaf5f495d3",
      "parents": [
        "e2ce146848c81af2f6d42e67990191c284bf0c33"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 17 05:59:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 05:03:11 2009 -0800"
      },
      "message": "linkwatch: linkwatch_forget_dev() to speedup device dismantle\n\nHerbert Xu a écrit :\n\u003e On Tue, Nov 17, 2009 at 04:26:04AM -0800, David Miller wrote:\n\u003e\u003e Really, the link watch stuff is just due for a redesign.  I don\u0027t\n\u003e\u003e think a simple hack is going to cut it this time, sorry Eric :-)\n\u003e\n\u003e I have no objections against any redesigns, but since the only\n\u003e caller of linkwatch_forget_dev runs in process context with the\n\u003e RTNL, it could also legally emit those events.\n\nThanks guys, here an updated version then, before linkwatch surgery ?\n\nIn this version, I force the event to be sent synchronously.\n\n[PATCH net-next-2.6] linkwatch: linkwatch_forget_dev() to speedup device dismantle\n\ntime ip link del eth3.103 ; time ip link del eth3.104 ; time ip link del eth3.105\n\nreal\t0m0.266s\nuser\t0m0.000s\nsys\t0m0.001s\n\nreal\t0m0.770s\nuser\t0m0.000s\nsys\t0m0.000s\n\nreal\t0m1.022s\nuser\t0m0.000s\nsys\t0m0.000s\n\nOne problem of current schem in vlan dismantle phase is the\nholding of device done by following chain :\n\nvlan_dev_stop() -\u003e\n\tnetif_carrier_off(dev) -\u003e\n\t\tlinkwatch_fire_event(dev) -\u003e\n\t\t\tdev_hold() ...\n\nAnd __linkwatch_run_queue() runs up to one second later...\n\nA generic fix to this problem is to add a linkwatch_forget_dev() method\nto unlink the device from the list of watched devices.\n\ndev-\u003elink_watch_next becomes dev-\u003elink_watch_list (and use a bit more memory),\nto be able to unlink device in O(1).\n\nAfter patch :\ntime ip link del eth3.103 ; time ip link del eth3.104 ; time ip link del eth3.105\n\nreal    0m0.024s\nuser    0m0.000s\nsys     0m0.000s\n\nreal    0m0.032s\nuser    0m0.000s\nsys     0m0.001s\n\nreal    0m0.033s\nuser    0m0.000s\nsys     0m0.000s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "395264d509aec45149745843d9a737140a1ece16",
      "tree": "3a62939d8989232f5bb15f6386ed649ef8de8001",
      "parents": [
        "fccaf71011b171883efee5bae321eac4760584d1"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "opurdila@ixiacom.com",
        "time": "Mon Nov 16 13:49:35 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 05:03:03 2009 -0800"
      },
      "message": "net: introduce NETDEV_UNREGISTER_PERNET\n\nThis new event is called once for each unique net namespace in batched\nunregister operations (with the argument set to a random device from\nthat namespace) and once per device in non-batched unregister\noperations.\n\nIt allows us to factorize some device unregister work such as clearing the\nrouting cache.\n\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d83345adf96bc13a5e360f4649a2e68ef968dec0",
      "tree": "015fe31fde6b5ea6abc6ebb75aa446fa63fcbb79",
      "parents": [
        "b038b0401f9697ee1d7df40021b96e7de0564938"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 16 03:36:51 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 23:51:52 2009 -0800"
      },
      "message": "net: add dev_txq_stats_fold() helper\n\nSome drivers ndo_get_stats() method need to perform txqueue stats folding.\n\nMove folding from dev_get_stats() to a new dev_txq_stats_fold() function\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "978b4053aefd422713f289f2a315ce2acba62018",
      "tree": "3cd4ce678526885c81264568220549f1d659875e",
      "parents": [
        "9ebd4eba761b624a6a6c9189335adeddcb1fa0e0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 17 14:06:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "fcntl: rename F_OWNER_GID to F_OWNER_PGRP\n\nThis is for consistency with various ioctl() operations that include the\nsuffix \"PGRP\" in their names, and also for consistency with PRIO_PGRP,\nused with setpriority() and getpriority().  Also, using PGRP instead of\nGID avoids confusion with the common abbreviation of \"group ID\".\n\nI\u0027m fine with anything that makes it more consistent, and if PGRP is what\nis the predominant abbreviation then I see no need to further confuse\nmatters by adding a third one.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ad696d2cf535772dff659298ec7e7260e344595",
      "tree": "2f4d4d088a7bc8203473dcb96a1d1f0591f3de94",
      "parents": [
        "9398180097e359646d46083c3e079a54e20bee82"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Nov 17 14:06:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "mm: allow memory hotplug and hibernation in the same kernel\n\nAllow memory hotplug and hibernation in the same kernel\n\nMemory hotplug and hibernation were exclusive in Kconfig.  This is\nobviously a problem for distribution kernels who want to support both in\nthe same image.\n\nAfter some discussions with Rafael and others the only problem is with\nparallel memory hotadd or removal while a hibernation operation is in\nprocess.  It was also working for s390 before.\n\nThis patch removes the Kconfig level exclusion, and simply makes the\nmemory add / remove functions grab the pm_mutex to exclude against\nhibernation.\n\nFixes a regression - old kernels didn\u0027t exclude memory hotadd and\nhibernation.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23f268fa2db4cbe6c4c668d6c277fae906f54922",
      "tree": "05e4baecce7415daedd591df0f3173872da53b07",
      "parents": [
        "ac50e950784cae1c26ad9e09ebd8f8c706131eb3",
        "1a0f437235ccb15361bfe0a37c7023f6234c2e9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 11:01:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 11:01:54 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:\n  [SCSI] bfa: declare MODULE_FIRMWARE\n  [SCSI] gdth: Prevent negative offsets in ioctl CVE-2009-3080\n  [SCSI] libsas: do not set res \u003d 0 in sas_ex_discover_dev()\n  [SCSI] Fix incorrect reporting of host protection capabilities\n  [SCSI] pmcraid: Fix ppc64 driver build for using cpu_to_le32 on U8 data type\n  [SCSI] ipr: add workaround for MSI interrupts on P7\n  [SCSI] scsi_transport_fc: Fix WARN message for FC passthru failure paths\n  [SCSI] bfa: fix test in bfad_os_fc_host_init()\n"
    },
    {
      "commit": "82abc2a97a4a3c7635c40e6dff571816062ec506",
      "tree": "bdafbd1d1030a1d4717b52d07d8d0c3a37e8a693",
      "parents": [
        "cb20c28a9c41052c2d7220325dae60c16f417ded",
        "18dafac1a4c6c88867a50f9a82492976f20383d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:15:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:15:18 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  nilfs2: deleted inconsistent comment in nilfs_load_inode_block()\n  nilfs2: deleted struct nilfs_dat_group_desc\n  nilfs2: fix lock order reversal in chcp operation\n"
    },
    {
      "commit": "c85e9d7739fc8d879c4293ea020760926d6f87cd",
      "tree": "b896cf651a17aa7328d41803ba34a412de62f16e",
      "parents": [
        "b23709248fc9b6d5877f9c741d639a160ed21ff6"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 17 10:16:32 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 17 10:16:32 2009 -0500"
      },
      "message": "znet: fix build failure from i82593.h relocation\n\nznet was including \"wireless/i82593.h\" (which is a bit wierd), and I\nmissed that when I relocated i82593.h to drivers/staging/wavelan.  Since\nI don\u0027t have ISA turned-on in my normal .config, I didn\u0027t see the build\nfailures -- mea culpa!\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a2bfbc072e279ff81e6b336acff612b9bc2e5281",
      "tree": "89cfe21911e1539e1b7f89d8a10d42abecba2a18",
      "parents": [
        "5c427ff9e4cc61625d48172ea082ae99e21eea6a",
        "82b3cc1a2f5e46300a9dec4a8cc8106dc20a4c23"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/can/Kconfig\n"
    },
    {
      "commit": "e29d4363174949a7a4e46f670993d7ff43342c1c",
      "tree": "ee0752cb07190784c1738cfa4bf4a2f4522f3ce6",
      "parents": [
        "5bfa2a17f2b79eb6a63c5d47ce89d5798bba086a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 15 22:23:47 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 15 22:23:47 2009 -0800"
      },
      "message": "Revert \"isdn: isdn_ppp: Use SKB list facilities instead of home-grown implementation.\"\n\nThis reverts commit 38783e671399b5405f1fd177d602c400a9577ae6.\n\nIt causes kernel bugzilla #14594\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b9f5d52670c27e71f04c466aee77e3a2eeca8080",
      "tree": "fb0cc0e35c95d336529d6e1ad2f13ddc118edb4f",
      "parents": [
        "2d6682db114cb53bc94991659478756302e6a600"
      ],
      "author": {
        "name": "Marin Mitov",
        "email": "mitov@issp.bas.bg",
        "time": "Fri Nov 13 07:58:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 15 22:21:34 2009 -0800"
      },
      "message": "remove deprecated and not used: print_mac()\n\nThe function print_mac in net/ethernet/eth.c is marked __deprecated\nand not used. Remove it.\n\nSigned-off-by: Marin Mitov \u003cmitov@issp.bas.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a1654ba0b50402a6bd03c7b0fe9b0200a5ea7b1",
      "tree": "3defd37672da2069e6c0ffd86b0b99c694324985",
      "parents": [
        "cb43e23435a66d5ed90f804af9efe9096503979f"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Sun Nov 15 07:20:12 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 15 22:08:33 2009 -0800"
      },
      "message": "net: Optimize hard_start_xmit() return checking\n\nRecent changes in the TX error propagation require additional checking\nand masking of values returned from hard_start_xmit(), mainly to\nseparate cases where skb was consumed. This aim can be simplified by\nchanging the order of NETDEV_TX and NET_XMIT codes, because the latter\nare treated similarly to negative (ERRNO) values.\n\nAfter this change much simpler dev_xmit_complete() is also used in\nsch_direct_xmit(), so it is moved to netdevice.h.\n\nAdditionally NET_RX definitions in netdevice.h are moved up from\nbetween TX codes to avoid confusion while reading the TX comment.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a7af63108f07637504300671a72432c34e10021",
      "tree": "9cd2e6b79a02ea5c4287adbf063500a51121311b",
      "parents": [
        "c1ea985c710f41e97f1c72c29bbf367375370f0b"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Sun Nov 15 13:49:44 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 15 17:17:38 2009 +0900"
      },
      "message": "nilfs2: deleted struct nilfs_dat_group_desc\n\nstruct nilfs_dat_group_desc is not used both in kernel and user spaces.\nstruct nilfs_palloc_group_desc is used instead.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "cd4ca27d3dedfff09000586e4ae67771608696a0",
      "tree": "8ebf6b0b4b2e52585c4853d192c47d1866ec7ec6",
      "parents": [
        "0e70613b1c26bf23909d0e778de52d0cc6d88835",
        "3d4c3aa938fcbfee1c7a6d66ee23288448fb97e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 14 13:00:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 14 13:00:17 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: psmouse - remove unneeded \u0027\\n\u0027 from psmouse.proto parameter\n  Input: atkbd - restore LED state at reconnect\n  Input: force LED reset on resume\n  Input: fix locking in memoryless force-feedback devices\n"
    },
    {
      "commit": "2c1409a0a2b88585ec0c03f1de0aafa178c56313",
      "tree": "e9fc25badfb716e5368079535f548cc8e4b5576a",
      "parents": [
        "234b27c3fd58fc0e15c04dd0fbf4337fac9c2a06"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Nov 12 09:33:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 20:46:58 2009 -0800"
      },
      "message": "inetpeer: Optimize inet_getid()\n\nWhile investigating for network latencies, I found inet_getid() was a\ncontention point for some workloads, as inet_peer_idlock is shared\nby all inet_getid() users regardless of peers.\n\nOne way to fix this is to make ip_id_count an atomic_t instead\nof __u16, and use atomic_add_return().\n\nIn order to keep sizeof(struct inet_peer) \u003d 64 on 64bit arches\ntcp_ts_stamp is also converted to __u32 instead of \"unsigned long\".\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5256f2ef3a40d784b8369035bff3f4dc637a9801",
      "tree": "f588bd4048ea8d21a2dc70e1f8bada886a0af378",
      "parents": [
        "eec4df9885f7822cdeca82577a25cac4598fa7cf"
      ],
      "author": {
        "name": "Lucian Adrian Grijincu",
        "email": "lgrijincu@ixiacom.com",
        "time": "Thu Nov 12 05:07:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 20:46:56 2009 -0800"
      },
      "message": "inet: fix inet_bind_bucket_for_each\n\nThe first \"node\" is supposed to be the cursor used in the for_each.\n\nThe second \"node\" is ment literally and should not be macro expanded:\nit\u0027s the name of the hlist_node field from the inet_bind_bucket.\n\nThis currently works because when inet_bind_bucket_for_each is called\nit\u0027s argument is still \"node\".\n\nSigned-off-by: Lucian Adrian Grijincu \u003clgrijincu@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce81b76a39835a721cd168e0c0bcfe7132f1f66b",
      "tree": "ed725dd6163f328d4717fb3ed28c9e6c2691bc88",
      "parents": [
        "bee7ca9ec03a26676ea2b1c28dc4039348eff3e1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 11 17:34:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 20:38:49 2009 -0800"
      },
      "message": "ipv6: use RCU to walk list of network devices\n\nNo longer need read_lock(\u0026dev_base_lock), use RCU instead.\nWe also can avoid taking references on inet6_dev structs.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bee7ca9ec03a26676ea2b1c28dc4039348eff3e1",
      "tree": "652832d73252d7c9ede928a4242763f570070b0e",
      "parents": [
        "cbbef5e183079455763fc470ccf69008f92ab4b6"
      ],
      "author": {
        "name": "William Allen Simpson",
        "email": "william.allen.simpson@gmail.com",
        "time": "Tue Nov 10 09:51:18 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 20:38:48 2009 -0800"
      },
      "message": "net: TCP_MSS_DEFAULT, TCP_MSS_DESIRED\n\nDefine two symbols needed in both kernel and user space.\n\nRemove old (somewhat incorrect) kernel variant that wasn\u0027t used in\nmost cases.  Default should apply to both RMSS and SMSS (RFC2581).\n\nReplace numeric constants with defined symbols.\n\nStand-alone patch, originally developed for TCPCT.\n\nSigned-off-by: William.Allen.Simpson@gmail.com\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "409b95aff3583c05ac7a9247fa3d8c9aa7f9cae3",
      "tree": "a8cd8135f974b8f1c6ef9d092755e1ac5b190b2f",
      "parents": [
        "d792c1006fe92448217b71513d3955868358271d"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Tue Nov 10 08:57:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 19:56:50 2009 -0800"
      },
      "message": "sctp: Set source addresses on the association before adding transports\n\nRecent commit 8da645e101a8c20c6073efda3c7cc74eec01b87f\n\tsctp: Get rid of an extra routing lookup when adding a transport\nintroduced a regression in the connection setup.  The behavior was\n\ndifferent between IPv4 and IPv6.  IPv4 case ended up working because the\nroute lookup routing returned a NULL route, which triggered another\nroute lookup later in the output patch that succeeded.  In the IPv6 case,\na valid route was returned for first call, but we could not find a valid\nsource address at the time since the source addresses were not set on the\nassociation yet.  Thus resulted in a hung connection.\n\nThe solution is to set the source addresses on the association prior to\nadding peers.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61fa713c751683da915fa0c1aa502be85822c357",
      "tree": "a4f286a2bb59b9afd1f3b836cb62a8e81bafee98",
      "parents": [
        "a043897a314e8bcfc821d54fe4e591efed5936a3"
      ],
      "author": {
        "name": "Holger Schurig",
        "email": "holgerschurig@gmail.com",
        "time": "Wed Nov 11 12:25:40 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 13 17:43:58 2009 -0500"
      },
      "message": "cfg80211: return channel noise via survey API\n\nThis patch implements the NL80211_CMD_GET_SURVEY command and an get_survey()\nops that a driver can implement. The goal of this command is to allow a\ndrivers to report channel survey data (e.g. channel noise, channel\noccupation).\n\nFor now, only the mechanism to report back channel noise has been\nimplemented.\n\nIn future, there will either be a survey-trigger command --- or the existing\nscan-trigger command will be enhanced. This will allow user-space to\nrequest survey for arbitrary channels.\n\nNote: any driver that cannot report channel noise should not report\nany value at all, e.g. made-up -92 dBm.\n\nSigned-off-by: Holger Schurig \u003cholgerschurig@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "63c5723bc3af8d4e86984dd4ff0c78218de418d0",
      "tree": "fe900ef2a92377c49c6b3124bb5741a1ac04d436",
      "parents": [
        "e304bfd30f356f7b75d30cad0029ecca705fd590"
      ],
      "author": {
        "name": "Rui Paulo",
        "email": "rpaulo@gmail.com",
        "time": "Mon Nov 09 23:46:57 2009 +0000"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 13 17:43:57 2009 -0500"
      },
      "message": "mac80211: add nl80211/cfg80211 handling of the new mesh root mode option.\n\nSigned-off-by: Rui Paulo \u003crpaulo@gmail.com\u003e\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nReviewed-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nTested-by: Brian Cavagnolo \u003cbrian@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d19b3bf6384e66ac6e11a61ee31ed2cfe149f4d8",
      "tree": "2ec825639458dafddecc7e3d0f83afff9cff0cfa",
      "parents": [
        "be125c60e46e165fbfe33db36a4a9d943d560a5b"
      ],
      "author": {
        "name": "Rui Paulo",
        "email": "rpaulo@gmail.com",
        "time": "Mon Nov 09 23:46:55 2009 +0000"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 13 17:43:56 2009 -0500"
      },
      "message": "mac80211: replace \"destination\" with \"target\" to follow the spec\n\nResulting object files have the same MD5 as before.\n\nSigned-off-by: Rui Paulo \u003crpaulo@gmail.com\u003e\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nReviewed-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nTested-by: Brian Cavagnolo \u003cbrian@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "90a5e16992fa6105f7ebf3f29f5cf5feb1bbf7dc",
      "tree": "be20480aca5f74c63371e7808e19ef7812a65204",
      "parents": [
        "41a2617064a8458178ccdf31ed2be2b4eade4a2a"
      ],
      "author": {
        "name": "Rui Paulo",
        "email": "rpaulo@gmail.com",
        "time": "Wed Nov 11 00:01:31 2009 +0000"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 13 17:43:54 2009 -0500"
      },
      "message": "mac80211: implement RANN processing and forwarding\n\nProcess the RANN (Root Annoucement) Frame and try to find the HWMP\nroot station by sending a PREQ.\n\nSigned-off-by: Rui Paulo \u003crpaulo@gmail.com\u003e\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nReviewed-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nTested-by: Brian Cavagnolo \u003cbrian@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "572a9d7b6fc7f20f573664063324c086be310c42",
      "tree": "0ab3655fdfa923b0b9c6c1ee51a2e31e97e9549f",
      "parents": [
        "9ea2bdab11da97b2ac6f87d79976d25fa6d27295"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Nov 10 06:14:14 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 14:07:32 2009 -0800"
      },
      "message": "net: allow to propagate errors through -\u003endo_hard_start_xmit()\n\nCurrently the -\u003endo_hard_start_xmit() callbacks are only permitted to return\none of the NETDEV_TX codes. This prevents any kind of error propagation for\nvirtual devices, like queue congestion of the underlying device in case of\nlayered devices, or unreachability in case of tunnels.\n\nThis patches changes the NET_XMIT codes to avoid clashes with the NETDEV_TX\ncodes and changes the two callers of dev_hard_start_xmit() to expect either\nerrno codes, NET_XMIT codes or NETDEV_TX codes as return value.\n\nIn case of qdisc_restart(), all non NETDEV_TX codes are mapped to NETDEV_TX_OK\nsince no error propagation is possible when using qdiscs. In case of\ndev_queue_xmit(), the error is propagated upwards.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b87e5e2b8ed9336566100c8c796ab6dd52436881",
      "tree": "a55dc24691745c5a2029b8596352a62554864d28",
      "parents": [
        "80647b959f97fa20a4714dde3e07b7f69d896556"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Wed Nov 11 14:26:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:57 2009 -0800"
      },
      "message": "serial: add support for the Lava Quattro PCI quad-port 16550A card\n\nThis seems to be a different model (with a different PCI ID) than the\n\"Quatro\" card that is also in the list.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@wantstofly.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71ccb83cfc487354d2647e315c8196e5872198ab",
      "tree": "412436ad5744718820e4907d9fb6dbc9497309bb",
      "parents": [
        "e00e431612c3a6e437a01f2129fd3843da0c982a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 11 14:26:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:56 2009 -0800"
      },
      "message": "alpha: fix F_SETOWN_EX and F_GETLK64 conflict\n\nFix a bug in\n\n    commit ba0a6c9f6fceed11c6a99e8326f0477fe383e6b5\n    Author:     Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n    AuthorDate: Wed Sep 23 15:57:03 2009 -0700\n    Commit:     Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n    CommitDate: Thu Sep 24 07:21:01 2009 -0700\n\n        fcntl: add F_[SG]ETOWN_EX\n\nIn asm-generic/fcntl.h, F_SETOWN_EX and F_GETLK64 both have value 12, and\nF_GETOWN_EX and F_SETLK64 both have value 13.\n\nReported-by: \"Joseph S. Myers\" \u003cjoseph@codesourcery.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Andreas Schwab \u003cschwab@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5c15d0b37ab1cd3969b8ce7828ab41c79f36f77",
      "tree": "a12aaef93ef8cc75eb5488294c64c5bf9d01546c",
      "parents": [
        "9d0ed60fe9cd1fbf57f755cd27a23ae9114d7210"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Wed Nov 11 14:26:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:56 2009 -0800"
      },
      "message": "fb: remove fb_save_state() and fb_restore_state operations\n\nRemove fb_save_state() and fb_restore_state operations from frame buffer layer.\nThey are used only in two drivers:\n1. savagefb  - and cause bug #11248\n2. uvesafb\n\nUsage of these operations is misunderstood in both drivers so kill these\noperations, fix the bug #11248 and avoid confusion in the future.\n\nTested on Savage 3D/MV card and the patch fixes the bug #11248.\n\nThe frame buffer layer uses these funtions during switch between graphics\nand text mode of the console, but these drivers saves state before\nswitching of the frame buffer (in the fb_open) and after releasing it (in\nthe fb_release).  This defeats the purpose of these operations.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d11248\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nReported-by: Jochen Hein \u003cjochen@jochen.org\u003e\nTested-by: Jochen Hein \u003cjochen@jochen.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b787643ca0a5130c647109d77fe512f89cfa611",
      "tree": "b3b0f74c57843a90f8a3822d37237d637c8dcfd0",
      "parents": [
        "1460dd158a520447b87661aea4afda1997d69cde"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue Nov 10 18:53:10 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 11 17:02:07 2009 -0500"
      },
      "message": "nl80211: add a parameter for using 4-address frames on virtual interfaces\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3491707a070c1183c709516b2f876f798c7a9a84",
      "tree": "ff12e29a8009b18cfb859ca780902cef5daa1e8e",
      "parents": [
        "ac9d1a7bef71afa4837769ef38edb0f7e2ef8028"
      ],
      "author": {
        "name": "Rui Paulo",
        "email": "rpaulo@gmail.com",
        "time": "Mon Nov 09 23:46:39 2009 +0000"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 11 15:23:56 2009 -0500"
      },
      "message": "mac80211: update meshconf IE\n\nThis updates the Mesh Configuration IE according to the latest\ndraft (3.03).\nNotable changes include the simplified protocol IDs.\n\nSigned-off-by: Rui Paulo \u003crpaulo@gmail.com\u003e\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nReviewed-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nTested-by: Brian Cavagnolo \u003cbrian@cozybit.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "fe8bc91c4c30122b357d197117705cfd4fabaf28",
      "tree": "33e2895847d812204209444db4093af9a2c3623d",
      "parents": [
        "ea0174a7137c8ca9f130ca681f3a99c872da6778"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Oct 16 19:26:15 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 11 15:22:49 2009 +0100"
      },
      "message": "ext3: Wait for proper transaction commit on fsync\n\nWe cannot rely on buffer dirty bits during fsync because pdflush can come\nbefore fsync is called and clear dirty bits without forcing a transaction\ncommit. What we do is that we track which transaction has last changed\nthe inode and which transaction last changed allocation and force it to\ndisk on fsync.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "254245d23396aca1f9100d500163d7bd6019ab6f",
      "tree": "3176ba0db8478094d4d5187c20d00be9880d9acf",
      "parents": [
        "856540ee3116ac04a49bc06c2f30f54dd3faf7db"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Nov 10 07:54:47 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 10 22:26:29 2009 -0800"
      },
      "message": "netdev: add netdev_continue_rcu\n\nThis adds an RCU macro for continuing search, useful for some\nnetwork devices like vlan.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf3204cbff7d2606e758afb0994e8da6ae1c6c26",
      "tree": "01951b829d2af6a52b82bec35cc05261dcf77fe2",
      "parents": [
        "558a5e296a02266ef43d6e933ee35df9976de987"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Nov 06 21:39:07 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 10 21:13:32 2009 -0800"
      },
      "message": "Input: fix locking in memoryless force-feedback devices\n\nNow that input core acquires dev-\u003eevent_lock spinlock and disables\ninterrupts when propagating input events, using spin_lock_bh() in\nff-memless driver is not allowed. Actually, the timer_lock itself\nis not needed anymore, we should simply use dev-\u003eevent_lock\nas well.\n\nAlso do a small cleanup in force-feedback core.\n\nReported-by: kerneloops.org\nReported-by: http://www.kerneloops.org/searchweek.php?search\u003dml_ff_set_gain\nReported-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "37e8273cd30592d3a82bcb70cbb1bdc4eaeb6b71",
      "tree": "079b4bc5a6450e06b6310c083fcb4ab5ee543452",
      "parents": [
        "8cbd9623da7e7a99c6bd0f0b7d21d17c233c6abb"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Wed Nov 04 15:29:52 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 10 20:54:40 2009 -0800"
      },
      "message": "usbnet: Set link down initially for drivers that update link state\n\nSome usbnet drivers update link state while others do not due to\nhardware limitations.  Add a flag to distinguish those that do, and\nset the link down initially for their devices.\n\nThis is intended to fix this bug: http://bugs.debian.org/444043\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30fff9231fad757c061285e347b33c5149c2c2e4",
      "tree": "79d07aba4b8de4367090442292e412d1ccf961ef",
      "parents": [
        "0ab365f463b9c5c8b76476a1808dfde1c38f6f19"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 09 05:26:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 10 20:54:38 2009 -0800"
      },
      "message": "udp: bind() optimisation\n\nUDP bind() can be O(N^2) in some pathological cases.\n\nThanks to secondary hash tables, we can make it O(N)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b0d07ba152893b40f1014a9db8da5aa564aa00e",
      "tree": "012470cadabfe9307f9c4fbc1b2eb56efbb6edc7",
      "parents": [
        "4a9b5e5053a184ada2e9b19aee12b6200bb8980f"
      ],
      "author": {
        "name": "Rémi Denis-Courmont",
        "email": "remi.denis-courmont@nokia.com",
        "time": "Mon Nov 09 02:17:01 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 10 20:54:33 2009 -0800"
      },
      "message": "Phonet: put sockets in a hash table\n\nSigned-off-by: Rémi Denis-Courmont \u003cremi.denis-courmont@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "f6d773cd4f3c18c40ab25a5cb92453756237840e"
}
