)]}'
{
  "log": [
    {
      "commit": "7acd72eb85f1c7a15e8b5eb554994949241737f1",
      "tree": "76712bb9f38690d8cf9c2f91bef811e4413d1aa3",
      "parents": [
        "e64c026dd09b73faf20707711402fc5ed55a8e70"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:56 2009 -0800"
      },
      "message": "kfifo: rename kfifo_put... into kfifo_in... and kfifo_get... into kfifo_out...\n\nrename kfifo_put...  into kfifo_in...  to prevent miss use of old non in\nkernel-tree drivers\n\nditto for kfifo_get...  -\u003e kfifo_out...\n\nImprove the prototypes of kfifo_in and kfifo_out to make the kerneldoc\nannotations more readable.\n\nAdd mini \"howto porting to the new API\" in kfifo.h\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e64c026dd09b73faf20707711402fc5ed55a8e70",
      "tree": "4780736e021824f15329a0826eff3cc27d3f9646",
      "parents": [
        "c1e13f25674ed564948ecb7dfe5f83e578892896"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:56 2009 -0800"
      },
      "message": "kfifo: cleanup namespace\n\nchange name of __kfifo_* functions to kfifo_*, because the prefix __kfifo\nshould be reserved for internal functions only.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1e13f25674ed564948ecb7dfe5f83e578892896",
      "tree": "24fac07b3e2b66dff01c3127b34077de1de4c101",
      "parents": [
        "45465487897a1c6d508b14b904dc5777f7ec7e04"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:56 2009 -0800"
      },
      "message": "kfifo: move out spinlock\n\nMove the pointer to the spinlock out of struct kfifo.  Most users in\ntree do not actually use a spinlock, so the few exceptions now have to\ncall kfifo_{get,put}_locked, which takes an extra argument to a\nspinlock.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45465487897a1c6d508b14b904dc5777f7ec7e04",
      "tree": "935c8dae68dc793ff2f795d57cf027531475cd53",
      "parents": [
        "2ec91eec47f713e3d158ba5b28a24a85a2cf3650"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:55 2009 -0800"
      },
      "message": "kfifo: move struct kfifo in place\n\nThis is a new generic kernel FIFO implementation.\n\nThe current kernel fifo API is not very widely used, because it has to\nmany constrains.  Only 17 files in the current 2.6.31-rc5 used it.\nFIFO\u0027s are like list\u0027s a very basic thing and a kfifo API which handles\nthe most use case would save a lot of development time and memory\nresources.\n\nI think this are the reasons why kfifo is not in use:\n\n - The API is to simple, important functions are missing\n - A fifo can be only allocated dynamically\n - There is a requirement of a spinlock whether you need it or not\n - There is no support for data records inside a fifo\n\nSo I decided to extend the kfifo in a more generic way without blowing up\nthe API to much.  The new API has the following benefits:\n\n - Generic usage: For kernel internal use and/or device driver.\n - Provide an API for the most use case.\n - Slim API: The whole API provides 25 functions.\n - Linux style habit.\n - DECLARE_KFIFO, DEFINE_KFIFO and INIT_KFIFO Macros\n - Direct copy_to_user from the fifo and copy_from_user into the fifo.\n - The kfifo itself is an in place member of the using data structure, this save an\n   indirection access and does not waste the kernel allocator.\n - Lockless access: if only one reader and one writer is active on the fifo,\n   which is the common use case, no additional locking is necessary.\n - Remove spinlock - give the user the freedom of choice what kind of locking to use if\n   one is required.\n - Ability to handle records. Three type of records are supported:\n   - Variable length records between 0-255 bytes, with a record size\n     field of 1 bytes.\n   - Variable length records between 0-65535 bytes, with a record size\n     field of 2 bytes.\n   - Fixed size records, which no record size field.\n - Preserve memory resource.\n - Performance!\n - Easy to use!\n\nThis patch:\n\nSince most users want to have the kfifo as part of another object,\nreorganize the code to allow including struct kfifo in another data\nstructure.  This requires changing the kfifo_alloc and kfifo_init\nprototypes so that we pass an existing kfifo pointer into them.  This\npatch changes the implementation and all existing users.\n\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "292be57e152ef6881089a62298c6ec885ed46f0e",
      "tree": "2f6d79a372be4d6659c7eb393cd7f57ecb1ee869",
      "parents": [
        "1814f2da5ebd7a516805e0a62047cb45eee10bdc",
        "b74665606962456af7f92b1e448cee30ce70967b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 21 10:12:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 21 10:12:25 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:\n  bnx2: Fix bnx2_netif_stop() merge error.\n  gianfar: Fix bit definitions of IMASK_GRSC and IMASK_GTSC\n  gianfar: Fix stats support\n  gianfar: Fix a filer bug\n  bnx2: fixing a timout error due not refreshing TX timers correctly\n  can/at91: don\u0027t check platform_get_irq\u0027s return value against zero\n  mISDN: use DECLARE_COMPLETION_ONSTACK for non-constant completion\n  bnx2: reset_task is crashing the kernel. Fixing it.\n  ipv6: fix an oops when force unload ipv6 module\n  TI DaVinci EMAC: Fix MDIO bus frequency configuration\n  e100: Fix broken cbs accounting due to missing memset.\n  broadcom: bcm54xx_shadow_read() errors ignored in bcm54xx_adjust_rxrefclk()\n  e1000e: LED settings in EEPROM ignored on 82571 and 82572\n  netxen: use module parameter correctly\n  netns: fix net.ipv6.route.gc_min_interval_ms in netns\n  Bluetooth: Prevent ill-timed autosuspend in USB driver\n  Bluetooth: Fix L2CAP locking scheme regression\n  Bluetooth: Ack L2CAP I-frames before retransmit missing packet\n  Bluetooth: Fix unset of RemoteBusy flag for L2CAP\n  Bluetooth: Fix PTR_ERR return of wrong pointer in hidp_setup_hid()\n"
    },
    {
      "commit": "3705e11a21bcdffe7422ee7870e1b23fe4ac70f4",
      "tree": "80212be3720cb7cab44c1c4b809dc7d4a133aecb",
      "parents": [
        "f9c4171e01f6befdf5d15346070b819d341c9c73"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Fri Dec 18 20:25:13 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 18 20:25:13 2009 -0800"
      },
      "message": "ipv6: fix an oops when force unload ipv6 module\n\nWhen I do an ipv6 module force unload,I got the following oops:\n#rmmod -f ipv6\n------------[ cut here ]------------\nkernel BUG at mm/slub.c:2969!\ninvalid opcode: 0000 [#1] SMP\nlast sysfs file: /sys/devices/pci0000:00/0000:00:11.0/0000:02:03.0/net/eth2/ifindex\nModules linked in: ipv6(-) dm_multipath uinput ppdev tpm_tis tpm tpm_bios pcspkr pcnet32 mii parport_pc i2c_piix4 parport i2c_core floppy mptspi mptscsih mptbase scsi_transport_spi\n\nPid: 2530, comm: rmmod Tainted: G  R        2.6.32 #2 440BX Desktop Reference Platform/VMware Virtual Platform\nEIP: 0060:[\u003cc04b73f2\u003e] EFLAGS: 00010246 CPU: 0\nEIP is at kfree+0x6a/0xdd\nEAX: 00000000 EBX: c09e86bc ECX: c043e4dd EDX: c14293e0\nESI: e141f1d8 EDI: e140fc31 EBP: dec58ef0 ESP: dec58ed0\n DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\nProcess rmmod (pid: 2530, ti\u003ddec58000 task\u003ddecb1940 task.ti\u003ddec58000)\nStack:\n c14293e0 00000282 df624240 c0897d08 c09e86bc c09e86bc e141f1d8 dec58f1c\n\u003c0\u003e dec58f00 e140fc31 c09e84c4 e141f1bc dec58f14 c0689d21 dec58f1c e141f1bc\n\u003c0\u003e 00000000 dec58f2c c0689eff c09e84d8 c09e84d8 e141f1bc bff33a90 dec58f38\nCall Trace:\n [\u003ce140fc31\u003e] ? ipv6_frags_exit_net+0x22/0x32 [ipv6]\n [\u003cc0689d21\u003e] ? ops_exit_list+0x19/0x3d\n [\u003cc0689eff\u003e] ? unregister_pernet_operations+0x2a/0x51\n [\u003cc0689f70\u003e] ? unregister_pernet_subsys+0x17/0x24\n [\u003ce140fbfe\u003e] ? ipv6_frag_exit+0x21/0x32 [ipv6]\n [\u003ce141a361\u003e] ? inet6_exit+0x47/0x122 [ipv6]\n [\u003cc045f5de\u003e] ? sys_delete_module+0x198/0x1f6\n [\u003cc04a8acf\u003e] ? remove_vma+0x57/0x5d\n [\u003cc070f63f\u003e] ? do_page_fault+0x2e7/0x315\n [\u003cc0403218\u003e] ? sysenter_do_call+0x12/0x28\nCode: 86 00 00 00 40 c1 e8 0c c1 e0 05 01 d0 89 45 e0 66 83 38 00 79 06 8b 40 0c 89 45 e0 8b 55 e0 8b 02 84 c0 78 14 66 a9 00 c0 75 04 \u003c0f\u003e 0b eb fe 8b 45 e0 e8 35 15 fe ff eb 5d 8b 45 04 8b 55 e0 89\nEIP: [\u003cc04b73f2\u003e] kfree+0x6a/0xdd SS:ESP 0068:dec58ed0\n---[ end trace 4475d1a5b0afa7e5 ]---\n\nIt\u0027s because in ip6_frags_ns_sysctl_register,\n\"table\" only alloced when \"net\" is not equals\nto \"init_net\".So when we free \"table\" in \nip6_frags_ns_sysctl_unregister,we should check\nthis first.\n\nThis patch fix the problem.\n\nSigned-off-by: Yang Hongyang \u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c69fabe789b0eb468a0c7031ae7bb850760aea8",
      "tree": "037e504110bfc23d6fadecb41dc21645e8c58333",
      "parents": [
        "652fd781a52ad6e24b908cd8b83d12699754f253"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Dec 18 20:11:03 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 18 20:11:03 2009 -0800"
      },
      "message": "netns: fix net.ipv6.route.gc_min_interval_ms in netns\n\nsysctl table was copied, all right, but -\u003edata for net.ipv6.route.gc_min_interval_ms\nwas not reinitialized for \"!\u003d \u0026init_net\" case.\n\nIn init_net everthing works by accident due to correct -\u003edata initialization\nin source table.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b13f5860447a98daf0358a51fbff66154ac0663a",
      "tree": "fc4c752e4b8ab5649d421955de3de399953f12d9",
      "parents": [
        "186ee8cf0130993dea8ab8867ff1af8a148f9ae6"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Tue Dec 15 11:38:04 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 17 12:07:25 2009 -0800"
      },
      "message": "Bluetooth: Fix L2CAP locking scheme regression\n\nWhen locking was introduced the error path branch was not taken\ninto account. Error was found in sparse code checking. Kudos to\nJani Nikula.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nAcked-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "186ee8cf0130993dea8ab8867ff1af8a148f9ae6",
      "tree": "dd65c1c454625194b85f6c458ccf96c1a7ef062a",
      "parents": [
        "186de9a33803c7ee20d9af75c9049b50e68a3a08"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Tue Dec 15 20:13:27 2009 -0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 17 12:06:23 2009 -0800"
      },
      "message": "Bluetooth: Ack L2CAP I-frames before retransmit missing packet\n\nMoving the Ack to before l2cap_retransmit_frame() we can avoid the\ncase where txWindow is full and the packet can\u0027t be retransmited.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "186de9a33803c7ee20d9af75c9049b50e68a3a08",
      "tree": "4ec1d2f0b8c7624271cbbff21c6b8b134203574f",
      "parents": [
        "971beb83aeb2a309175682cf5683d64fd4591841"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Tue Dec 15 15:56:34 2009 -0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 17 12:04:08 2009 -0800"
      },
      "message": "Bluetooth: Fix unset of RemoteBusy flag for L2CAP\n\nRemoteBusy flag need to be unset before l2cap_ertm_send(), otherwise\nl2cap_ertm_send() will return without sending packets because it checks\nthat flag before start sending.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "971beb83aeb2a309175682cf5683d64fd4591841",
      "tree": "0d119998a04d94bb41da4b22d2c310c569ae3b4f",
      "parents": [
        "503914cf4a4b5dbe3f844e0a92f412ae99fde70e"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Mon Dec 07 14:23:21 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 17 11:47:20 2009 -0800"
      },
      "message": "Bluetooth: Fix PTR_ERR return of wrong pointer in hidp_setup_hid()\n\nReturn the PTR_ERR of the correct pointer.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a3a065e3f13da8a3470ed09c7f38aad256083726",
      "tree": "03e36f66709fe3d1679b0f0036f2ad3449d92dee",
      "parents": [
        "b9aff027b2c1d6019d237382c78fd396f9de2ea5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Nov 18 05:30:19 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 17 10:51:40 2009 -0500"
      },
      "message": "fs: no games with DCACHE_UNHASHED\n\nFilesystems outside the regular namespace do not have to clear DCACHE_UNHASHED\nin order to have a working /proc/$pid/fd/XXX. Nothing in proc prevents the\nfd link from being used if its dentry is not in the hash.\n\nAlso, it does not get put into the dcache hash if DCACHE_UNHASHED is clear;\nthat depends on the filesystem calling d_add or d_rehash.\n\nSo delete the misleading comments and needless code.\n\nAcked-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bac5e54c29f352d962a2447d22735316b347b9f1",
      "tree": "7642993fa93164835ffaa2dacd341388193f1979",
      "parents": [
        "529e89430d6c0d64db8ac474cb95e68e2527c79a",
        "c05c4edd876b7ae92787d1295868afcb89b6a348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (38 commits)\n  direct I/O fallback sync simplification\n  ocfs: stop using do_sync_mapping_range\n  cleanup blockdev_direct_IO locking\n  make generic_acl slightly more generic\n  sanitize xattr handler prototypes\n  libfs: move EXPORT_SYMBOL for d_alloc_name\n  vfs: force reval of target when following LAST_BIND symlinks (try #7)\n  ima: limit imbalance msg\n  Untangling ima mess, part 3: kill dead code in ima\n  Untangling ima mess, part 2: deal with counters\n  Untangling ima mess, part 1: alloc_file()\n  O_TRUNC open shouldn\u0027t fail after file truncation\n  ima: call ima_inode_free ima_inode_free\n  IMA: clean up the IMA counts updating code\n  ima: only insert at inode creation time\n  ima: valid return code from ima_inode_alloc\n  fs: move get_empty_filp() deffinition to internal.h\n  Sanitize exec_permission_lite()\n  Kill cached_lookup() and real_lookup()\n  Kill path_lookup_open()\n  ...\n\nTrivial conflicts in fs/direct-io.c\n"
    },
    {
      "commit": "e4bdda1bc3123a9e65f4dd93a23041fde8ed3dc2",
      "tree": "c2f75cc08bb4c5cbd9103e14399ea5ab66ce960d",
      "parents": [
        "74f3ae743427b87e43b5cb9f4257021ae8ad4267",
        "380454126f1357db9270f9d1ca05dfe1a6e4ad47"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:47:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:47:44 2009 -0800"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFSv4: Fix a regression in the NFSv4 state manager\n  NFSv4: Release the sequence id before restarting a CLOSE rpc call\n  nfs41: fix session fore channel negotiation\n  nfs41: do not zero seqid portion of stateid on close\n  nfs: run state manager in privileged mode\n  nfs: make recovery state manager operations privileged\n  nfs: enforce FIFO ordering of operations trying to acquire slot\n  rpc: add a new priority in RPC task\n  nfs: remove rpc_task argument from nfs4_find_slot\n  rpc: add rpc_queue_empty function\n  nfs: change nfs4_do_setlk params to identify recovery type\n  nfs: do not do a LOOKUP after open\n  nfs: minor cleanup of session draining\n"
    },
    {
      "commit": "37c24b37fb2454e95136139d10bb6828967105bf",
      "tree": "d5c3fa61fa689567caeb2a7cb5891473e444ff7d",
      "parents": [
        "5ac4d630eb87656bd4dc313b910776d54d88ea28",
        "7663dacd926584093dfc350892792054692b6cb3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:43:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:43:34 2009 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux: (42 commits)\n  nfsd: remove pointless paths in file headers\n  nfsd: move most of nfsfh.h to fs/nfsd\n  nfsd: remove unused field rq_reffh\n  nfsd: enable V4ROOT exports\n  nfsd: make V4ROOT exports read-only\n  nfsd: restrict filehandles accepted in V4ROOT case\n  nfsd: allow exports of symlinks\n  nfsd: filter readdir results in V4ROOT case\n  nfsd: filter lookup results in V4ROOT case\n  nfsd4: don\u0027t continue \"under\" mounts in V4ROOT case\n  nfsd: introduce export flag for v4 pseudoroot\n  nfsd: let \"insecure\" flag vary by pseudoflavor\n  nfsd: new interface to advertise export features\n  nfsd: Move private headers to source directory\n  vfs: nfsctl.c un-used nfsd #includes\n  lockd: Remove un-used nfsd headers #includes\n  s390: remove un-used nfsd #includes\n  sparc: remove un-used nfsd #includes\n  parsic: remove un-used nfsd #includes\n  compat.c: Remove dependence on nfsd private headers\n  ...\n"
    },
    {
      "commit": "59be2e04e50ac9947e4356c10099f49977f5f74d",
      "tree": "56aa00a4499a1543da8728cb84b10bec5b211280",
      "parents": [
        "e69381b4175ba162229646f6753ff1d87c24d468",
        "503914cf4a4b5dbe3f844e0a92f412ae99fde70e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:33:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:33:18 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: (26 commits)\n  net: sh_eth alignment fix for sh7724 using NET_IP_ALIGN V2\n  ixgbe: allow tx of pre-formatted vlan tagged packets\n  ixgbe: Fix 82598 premature copper PHY link indicatation\n  ixgbe: Fix tx_restart_queue/non_eop_desc statistics counters\n  bcm63xx_enet: fix compilation failure after get_stats_count removal\n  packet: dont call sleeping functions while holding rcu_read_lock()\n  tcp: Revert per-route SACK/DSACK/TIMESTAMP changes.\n  ipvs: zero usvc and udest\n  netfilter: fix crashes in bridge netfilter caused by fragment jumps\n  ipv6: reassembly: use seperate reassembly queues for conntrack and local delivery\n  sky2: leave PCI config space writeable\n  sky2: print Optima chip name\n  x25: Update maintainer.\n  ipvs: fix synchronization on connection close\n  netfilter: xtables: document minimal required version\n  drivers/net/bonding/: : use pr_fmt\n  can: CAN_MCP251X should depend on HAS_DMA\n  drivers/net/usb: Correct code taking the size of a pointer\n  drivers/net/cpmac.c: Correct code taking the size of a pointer\n  drivers/net/sfc: Correct code taking the size of a pointer\n  ...\n"
    },
    {
      "commit": "e69381b4175ba162229646f6753ff1d87c24d468",
      "tree": "ac4c03f6a0a1a0426832aa4f5c3b7732080c51cc",
      "parents": [
        "238ccbb050a243e935bb3fc679c2e4bbff7004aa",
        "14f369d1d61e7ac6578c54ca9ce3caaf4072412c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:32:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:32:31 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (45 commits)\n  RDMA/cxgb3: Fix error paths in post_send and post_recv\n  RDMA/nes: Fix stale ARP issue\n  RDMA/nes: FIN during MPA startup causes timeout\n  RDMA/nes: Free kmap() resources\n  RDMA/nes: Check for zero STag\n  RDMA/nes: Fix Xansation test crash on cm_node ref_count\n  RDMA/nes: Abnormal listener exit causes loopback node crash\n  RDMA/nes: Fix crash in nes_accept()\n  RDMA/nes: Resource not freed for REJECTed connections\n  RDMA/nes: MPA request/response error checking\n  RDMA/nes: Fix query of ORD values\n  RDMA/nes: Fix MAX_CM_BUFFER define\n  RDMA/nes: Pass correct size to ioremap_nocache()\n  RDMA/nes: Update copyright and branding string\n  RDMA/nes: Add max_cqe check to nes_create_cq()\n  RDMA/nes: Clean up struct nes_qp\n  RDMA/nes: Implement IB_SIGNAL_ALL_WR as an iWARP extension\n  RDMA/nes: Add additional SFP+ PHY uC status check and PHY reset\n  RDMA/nes: Correct fast memory registration implementation\n  IB/ehca: Fix error paths in post_send and post_recv\n  ...\n"
    },
    {
      "commit": "2c48b9c45579a9b5e3e74694eebf3d2451f3dbd3",
      "tree": "cecbf786ae0650368a8136bdd90910e05d9b95c3",
      "parents": [
        "a95161aaa801c18c52b2e7cf3d6b4b141c00a20a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Aug 09 00:52:35 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:42 2009 -0500"
      },
      "message": "switch alloc_file() to passing struct path\n\n... and have the caller grab both mnt and dentry; kill\nleak in infiniband, while we are at it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cc3808f8c354889982e7e323050f1e50ad99a009",
      "tree": "60c07432cf9f5d4b7bac5a07abcb6bf81aa91b7b",
      "parents": [
        "6b18662e239a032f908b7f6e164bdf7e2e0a32c9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 06 09:43:59 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:42 2009 -0500"
      },
      "message": "switch sock_alloc_file() to alloc_file()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b18662e239a032f908b7f6e164bdf7e2e0a32c9",
      "tree": "b63bf63d7d2b0d0fac2529a3c3bd906f85388c79",
      "parents": [
        "7cbe66b6b53b6615f1033bd5b3dbad8162886373"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Aug 06 02:02:43 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:41 2009 -0500"
      },
      "message": "9p connect fixes\n\n* if we fail in p9_conn_create(), we shouldn\u0027t leak references to struct file.\n  Logics in -\u003eclose() doesn\u0027t help - -\u003etrans is already gone by the time it\u0027s\n  called.\n* sock_create_kern() can fail.\n* use of sock_map_fd() is all fscked up; I\u0027d fixed most of that, but the\n  rest will have to wait for a bit more work in net/socket.c (we still are\n  violating the basic rule of working with descriptor table: \"once the reference\n  is installed there, don\u0027t rely on finding it there again\").\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7cbe66b6b53b6615f1033bd5b3dbad8162886373",
      "tree": "d7e0a229155fec3e3841d9d3272d0ae1a3a393eb",
      "parents": [
        "198de4d7ac3a0f1351c6377ff657950457ed0038"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 05 19:59:08 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:41 2009 -0500"
      },
      "message": "merge sock_alloc_fd/sock_attach_fd into a new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "198de4d7ac3a0f1351c6377ff657950457ed0038",
      "tree": "0451461b303cc3d4d514acadc09b8dee1a260818",
      "parents": [
        "732741274d0269718ba20c520cf72530bb038641"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 05 19:29:23 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:41 2009 -0500"
      },
      "message": "reorder alloc_fd/attach_fd in socketpair()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "28dfef8febe48f59cf1e7596e1992a6a1893ca24",
      "tree": "eb2df6dd75e72db066062950f91c9ab2e8215280",
      "parents": [
        "5116fa2b3a0a3ec625a10445ae45667f094c125b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Dec 15 16:46:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:05 2009 -0800"
      },
      "message": "const: constify remaining pipe_buf_operations\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a35ca80c1db7279c3c0655063f6d3490e399b17",
      "tree": "3ff2f23730c2bc6ea8af20232d02dad65ae63f0a",
      "parents": [
        "81e839efc22361e3fa7ee36f99fd57c57d0d1871"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Dec 15 05:47:03 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 15 21:12:21 2009 -0800"
      },
      "message": "packet: dont call sleeping functions while holding rcu_read_lock()\n\ncommit 654d1f8a019dfa06d (packet: less dev_put() calls)\nintroduced a problem, calling potentially sleeping functions from a\nrcu_read_lock() protected section.\n\nFix this by releasing lock before the sock_wmalloc()/memcpy_fromiovec() calls.\n\nAfter skb allocation and copy from user space, we redo device\nlookup and appropriate tests.\n\nReported-and-tested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81e839efc22361e3fa7ee36f99fd57c57d0d1871",
      "tree": "eac3550c8773ff0e6ccb91c280b930efc50b0e42",
      "parents": [
        "bb5b7c11263dbbe78253cd05945a6bf8f55add8e",
        "258c889362aa95d0ab534b38ce8c15d3009705b1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 15 21:08:53 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 15 21:08:53 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6\n"
    },
    {
      "commit": "bb5b7c11263dbbe78253cd05945a6bf8f55add8e",
      "tree": "7a639cbd6d6ad968ca22427f2b8697aadb37a907",
      "parents": [
        "166a0fd4c788ec7f10ca8194ec6d526afa12db75"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 15 20:56:42 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 15 20:56:42 2009 -0800"
      },
      "message": "tcp: Revert per-route SACK/DSACK/TIMESTAMP changes.\n\nIt creates a regression, triggering badness for SYN_RECV\nsockets, for example:\n\n[19148.022102] Badness at net/ipv4/inet_connection_sock.c:293\n[19148.022570] NIP: c02a0914 LR: c02a0904 CTR: 00000000\n[19148.023035] REGS: eeecbd30 TRAP: 0700   Not tainted  (2.6.32)\n[19148.023496] MSR: 00029032 \u003cEE,ME,CE,IR,DR\u003e  CR: 24002442  XER: 00000000\n[19148.024012] TASK \u003d eee9a820[1756] \u0027privoxy\u0027 THREAD: eeeca000\n\nThis is likely caused by the change in the \u0027estab\u0027 parameter\npassed to tcp_parse_options() when invoked by the functions\nin net/ipv4/tcp_minisocks.c\n\nBut even if that is fixed, the -\u003econn_request() changes made in\nthis patch series is fundamentally wrong.  They try to use the\nlistening socket\u0027s \u0027dst\u0027 to probe the route settings.  The\nlistening socket doesn\u0027t even have a route, and you can\u0027t\nget the right route (the child request one) until much later\nafter we setup all of the state, and it must be done by hand.\n\nThis stuff really isn\u0027t ready, so the best thing to do is a\nfull revert.  This reverts the following commits:\n\nf55017a93f1a74d50244b1254b9a2bd7ac9bbf7d\n022c3f7d82f0f1c68018696f2f027b87b9bb45c2\n1aba721eba1d84a2defce45b950272cee1e6c72a\ncda42ebd67ee5fdf09d7057b5a4584d36fe8a335\n345cda2fd695534be5a4494f1b59da9daed33663\ndc343475ed062e13fc260acccaab91d7d80fd5b2\n05eaade2782fb0c90d3034fd7a7d5a16266182bb\n6a2a2d6bf8581216e08be15fcb563cfd6c430e1e\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "689cf5c15baf603a8041565ff0bd0d65d1634fd7",
      "tree": "83fc6e666f0c099486cfcdb41b40c02d9fa163b7",
      "parents": [
        "cf3b01b54880debb01ea7d471123da5887a7c2cb"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Mon Dec 14 21:27:56 2009 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 15 13:55:18 2009 -0500"
      },
      "message": "nfs: enforce FIFO ordering of operations trying to acquire slot\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "48f186124220794fce85ed1439fc32f16f69d3e2",
      "tree": "c200395b4238a19d6653b23a43537ac29b7b8cf4",
      "parents": [
        "afe6c27ccb8cc31ce8ed0bd3589ce549f523c8e7"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Mon Dec 14 21:27:53 2009 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 15 13:51:17 2009 -0500"
      },
      "message": "rpc: add rpc_queue_empty function\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e7d2860b690d4f3bed6824757c540579638e3d1e",
      "tree": "84268ee28893256fd6a6a7e1d4474f61dbee74e7",
      "parents": [
        "84c95c9acf088c99d8793d78036b67faa5d0b851"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Mon Dec 14 18:01:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:32 2009 -0800"
      },
      "message": "tree-wide: convert open calls to remove spaces to skip_spaces() lib function\n\nMakes use of skip_spaces() defined in lib/string.c for removing leading\nspaces from strings all over the tree.\n\nIt decreases lib.a code size by 47 bytes and reuses the function tree-wide:\n   text    data     bss     dec     hex filename\n  64688     584     592   65864   10148 (TOTALS-BEFORE)\n  64641     584     592   65817   10119 (TOTALS-AFTER)\n\nAlso, while at it, if we see (*str \u0026\u0026 isspace(*str)), we can be sure to\nremove the first condition (*str) as the second one (isspace(*str)) also\nevaluates to 0 whenever *str \u003d\u003d 0, making it redundant. In other words,\n\"a char equals zero is never a space\".\n\nJulia Lawall tried the semantic patch (http://coccinelle.lip6.fr) below,\nand found occurrences of this pattern on 3 more files:\n    drivers/leds/led-class.c\n    drivers/leds/ledtrig-timer.c\n    drivers/video/output.c\n\n@@\nexpression str;\n@@\n\n( // ignore skip_spaces cases\nwhile (*str \u0026\u0026  isspace(*str)) { \\(str++;\\|++str;\\) }\n|\n- *str \u0026\u0026\nisspace(*str)\n)\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "471452104b8520337ae2fb48c4e61cd4896e025d",
      "tree": "8594ae4a8362014e3cccf72a4e8834cdbb610bdd",
      "parents": [
        "0ead0f84e81a41c3e98aeceab04af8ab1bb08d1f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Dec 14 18:00:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:25 2009 -0800"
      },
      "message": "const: constify remaining dev_pm_ops\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "258c889362aa95d0ab534b38ce8c15d3009705b1",
      "tree": "227a7a3df0dfd8d094edfd2ff350011605c202a3",
      "parents": [
        "8fa9ff6849bb86c59cc2ea9faadf3cb2d5223497"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Tue Dec 15 17:01:25 2009 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Dec 15 17:01:25 2009 +0100"
      },
      "message": "ipvs: zero usvc and udest\n\nMake sure that any otherwise uninitialised fields of usvc are zero.\n\nThis has been obvserved to cause a problem whereby the port of\nfwmark services may end up as a non-zero value which causes\nscheduling of a destination server to fail for persisitent services.\n\nAs observed by Deon van der Merwe \u003cdvdm@truteq.co.za\u003e.\nThis fix suggested by Julian Anastasov \u003cja@ssi.bg\u003e.\n\nFor good measure also zero udest.\n\nCc: Deon van der Merwe \u003cdvdm@truteq.co.za\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nCc: stable@kernel.org\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "8fa9ff6849bb86c59cc2ea9faadf3cb2d5223497",
      "tree": "42c1cc382a9cfbb2907ab1471418404f874d53f2",
      "parents": [
        "0b5ccb2ee250136dd7385b1c7da28417d0d4d32d"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Dec 15 16:59:59 2009 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Dec 15 16:59:59 2009 +0100"
      },
      "message": "netfilter: fix crashes in bridge netfilter caused by fragment jumps\n\nWhen fragments from bridge netfilter are passed to IPv4 or IPv6 conntrack\nand a reassembly queue with the same fragment key already exists from\nreassembling a similar packet received on a different device (f.i. with\nmulticasted fragments), the reassembled packet might continue on a different\ncodepath than where the head fragment originated. This can cause crashes\nin bridge netfilter when a fragment received on a non-bridge device (and\nthus with skb-\u003enf_bridge \u003d\u003d NULL) continues through the bridge netfilter\ncode.\n\nAdd a new reassembly identifier for packets originating from bridge\nnetfilter and use it to put those packets in insolated queues.\n\nFixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d14805\n\nReported-and-Tested-by: Chong Qiao \u003cqiaochong@loongson.cn\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "0b5ccb2ee250136dd7385b1c7da28417d0d4d32d",
      "tree": "b0630141672471d5c800867cd8dbee425308bc73",
      "parents": [
        "9abfe315de96aa5c9878b2f627542bc54901c6e9"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Dec 15 16:59:18 2009 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Dec 15 16:59:18 2009 +0100"
      },
      "message": "ipv6: reassembly: use seperate reassembly queues for conntrack and local delivery\n\nCurrently the same reassembly queue might be used for packets reassembled\nby conntrack in different positions in the stack (PREROUTING/LOCAL_OUT),\nas well as local delivery. This can cause \"packet jumps\" when the fragment\ncompleting a reassembled packet is queued from a different position in the\nstack than the previous ones.\n\nAdd a \"user\" identifier to the reassembly queue key to seperate the queues\nof each caller, similar to what we do for IPv4.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "9abfe315de96aa5c9878b2f627542bc54901c6e9",
      "tree": "2526c6e877437a0949dd4707f5ae1b6d398a9f5d",
      "parents": [
        "7a92263705435d046d37a0990d0edfcb517f7ad3"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Mon Dec 14 16:38:21 2009 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Dec 14 16:38:21 2009 +0100"
      },
      "message": "ipvs: fix synchronization on connection close\n\ncommit 9d3a0de makes slaves expire as they would do on the master\nwith much shorter timeouts. But it introduces another problem:\nWhen we close a connection, on master server the connection became\nCLOSE_WAIT/TIME_WAIT, it was synced to slaves, but if master is\nfinished within it\u0027s timeouts (CLOSE), it will not be synced to\nslaves. Then slaves will be kept on CLOSE_WAIT/TIME_WAIT until\ntimeout reaches. Thus we should also sync with CLOSE.\n\nCc: Wensong Zhang \u003cwensong@linux-vs.org\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Julian Anastasov \u003cja@ssi.bg\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "d90a909e1f3e006a1d57fe11fd417173b6494701",
      "tree": "72893da9ed5083b44dbb8d778d648e114d351a0a",
      "parents": [
        "5781b2356cbecb0b73b06ec8c3897cabdfdd0928"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Dec 12 22:11:15 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 13 19:45:22 2009 -0800"
      },
      "message": "net: Fix userspace RTM_NEWLINK notifications.\n\nI received some bug reports about userspace programs having problems\nbecause after RTM_NEWLINK was received they could not immediate access\nfiles under /proc/sys/net/ because they had not been registered yet.\n\nThe original problem was trivially fixed by moving the userspace\nnotification from rtnetlink_event() to the end of\nregister_netdevice().\n\nWhen testing that change I discovered I was still getting RTM_NEWLINK\nevents before I could access proc and I was also getting RTM_NEWLINK\nevents after I was seeing RTM_DELLINK.  Things practically guaranteed\nto confuse userspace.\n\nAfter a little more investigation these extra notifications proved to\nbe from the new notifiers NETDEV_POST_INIT and NETDEV_UNREGISTER_BATCH\nhitting the default case in rtnetlink_event, and triggering\nunnecessary RTM_NEWLINK messages.\n\nrtnetlink_event now explicitly handles NETDEV_UNREGISTER_BATCH and\nNETDEV_POST_INIT to avoid sending the incorrect userspace\nnotifications.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5781b2356cbecb0b73b06ec8c3897cabdfdd0928",
      "tree": "7da5613b163aa7a942561aabc0284950583ee314",
      "parents": [
        "e1187b3be72be59625e445b186007e6eae27fef1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Dec 13 19:32:39 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 13 19:32:39 2009 -0800"
      },
      "message": "udp: udp_lib_get_port() fix\n\nNow we can have a large udp hash table, udp_lib_get_port() loop\nshould be converted to a do {} while (cond) form,\nor we dont enter it at all if hash table size is exactly 65536.\n\nReported-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52c9948b1fd80381ba5a9a87dcc4fbe3cf4979b8",
      "tree": "7bca6a20560f428442f18450df0948774f982df0",
      "parents": [
        "f40542532e96dda5506eb76badea322f2ae4731c",
        "190f38e5cedc910940b1da9015f00458c18f97b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Dec 13 13:56:27 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Dec 13 13:56:27 2009 -0500"
      },
      "message": "Merge branch \u0027nfs-for-2.6.33\u0027\n"
    },
    {
      "commit": "501706565b2d4d2d40d0d301d5411ede099b8a6f",
      "tree": "142a18bf1f1e74a09dbfa27540b893ade0fd797d",
      "parents": [
        "e93737b0f0159a61772894943199fd3b6f315641",
        "2fe77b81c77eed92c4c0439f74c8148a295b4a86"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 11 17:12:17 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 11 17:12:17 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tinclude/net/tcp.h\n"
    },
    {
      "commit": "e93737b0f0159a61772894943199fd3b6f315641",
      "tree": "feaa10bd2419f2a1bad89bcf4880bc8399339873",
      "parents": [
        "bbb84619c378414118fd4f1778125cd246c71e53"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Tue Dec 08 22:26:02 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 11 15:11:45 2009 -0800"
      },
      "message": "net: Handle NETREG_UNINITIALIZED devices correctly\n\nFix two problems:\n\n1. If unregister_netdevice_many() is called with both registered\n   and unregistered devices, rollback_registered_many() bails out\n   when it reaches the first unregistered device. The processing\n   of the prior registered devices is unfinished, and the\n   remaining devices are skipped, and possible registered netdev\u0027s\n   are leaked/unregistered.\n\n2. System hangs or panics depending on how the devices are passed,\n   since when netdev_run_todo() runs, some devices were not fully\n   processed.\n\nTested by passing intermingled unregistered and registered vlan\ndevices to unregister_netdevice_many() as follows:\n\t1. dev, fake_dev1, fake_dev2: hangs in run_todo\n\t   (\"unregister_netdevice: waiting for eth1.100 to become\n\t    free. Usage count \u003d 1\")\n\t2. fake_dev1, dev, fake_dev2: failure during de-registration\n\t   and next registration, followed by a vlan driver Oops\n\t   during subsequent registration.\n\nConfirmed that the patch fixes both cases.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c20a66f474e890dd8cc34e124632cd85e4165899",
      "tree": "e311e92cf7de876e9b8c2b9ab4103d31fde63f18",
      "parents": [
        "de039f02d877af52b8d0fe77878b8343a0f99d8b"
      ],
      "author": {
        "name": "Martin Willi",
        "email": "martin@strongswan.org",
        "time": "Wed Dec 09 06:11:15 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 11 15:07:57 2009 -0800"
      },
      "message": "xfrm: Fix truncation length of authentication algorithms installed via PF_KEY\n\nCommit 4447bb33f09444920a8f1d89e1540137429351b6 (\"xfrm: Store aalg in\nxfrm_state with a user specified truncation length\") breaks\ninstallation of authentication algorithms via PF_KEY, as the state\nspecific truncation length is not installed with the algorithms\ndefault truncation length.  This patch initializes state properly to\nthe default if installed via PF_KEY.\n\nSigned-off-by: Martin Willi \u003cmartin@strongswan.org\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de039f02d877af52b8d0fe77878b8343a0f99d8b",
      "tree": "81d312952e828bddb53ff5d540f37b0ce8b202f6",
      "parents": [
        "60c2ffd3d2cf12008747d920ae118df119006003"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Dec 09 20:59:15 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 11 15:07:57 2009 -0800"
      },
      "message": "net: use compat helper functions in compat_sys_recvmmsg\n\nUse (get|put)_compat_timespec helper functions to simplify the code.\n\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60c2ffd3d2cf12008747d920ae118df119006003",
      "tree": "7b4e86de5eed6a5377bba5a875b326420fe3503b",
      "parents": [
        "ccdddf500f2b1b8e88ac8e3d4dfc15cce9f73886"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Dec 09 20:58:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 11 15:07:56 2009 -0800"
      },
      "message": "net: fix compat_sys_recvmmsg parameter type\n\ncompat_sys_recvmmsg has a compat_timespec parameter and not a\ntimespec parameter. This way we also get rid of an odd cast.\n\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65182b9fb004220f250d4269c864cf0f1f372e85",
      "tree": "e5adad187645a03b9acc523296be9d0fc4f4a1eb",
      "parents": [
        "7b324d28a94dac5a451e8cba66e8d324601e5b9a"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 09 15:11:22 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 10 16:21:51 2009 -0500"
      },
      "message": "wireless: update old static regulatory domain rules\n\nUpdate \"US\" and \"JP\" for current rules, and replace \"EU\" rules with the\nworld roaming domain (since it was only a pseudo-domain anyway).\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7b324d28a94dac5a451e8cba66e8d324601e5b9a",
      "tree": "d633782fad15ae57560cfebb5ff5c3c78af5d610",
      "parents": [
        "5d618cb81aeea19879975cd1f9a1e707694dfd7c"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Wed Dec 09 18:43:01 2009 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 10 16:12:52 2009 -0500"
      },
      "message": "mac80211: Revert \u0027Use correct sign for mesh active path refresh\u0027\n\nThe patch (\"mac80211: Use correct sign for mesh active path\nrefresh.\") was actually a bug.  Reverted it and improved the\nexplanation of how mesh path refresh works.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5d618cb81aeea19879975cd1f9a1e707694dfd7c",
      "tree": "1998238244c80531e09526eba11b9d3530e46622",
      "parents": [
        "0c3cee72a403e3b4992a5478c9c33d668c246c22"
      ],
      "author": {
        "name": "Javier Cardona",
        "email": "javier@cozybit.com",
        "time": "Wed Dec 09 18:43:00 2009 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 10 16:09:52 2009 -0500"
      },
      "message": "mac80211: Fixed bug in mesh portal paths\n\nPaths to mesh portals were being timed out immediately after each use in\nintermediate forwarding nodes.  mppath-\u003eexp_time is set to the expiration time\nso assigning it to jiffies was marking the path as expired.\n\nSigned-off-by: Javier Cardona \u003cjavier@cozybit.com\u003e\nSigned-off-by: Andrey Yurovsky \u003candrey@cozybit.com\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0c3cee72a403e3b4992a5478c9c33d668c246c22",
      "tree": "964883c4d5c80485b82d293832e9fb57e32661df",
      "parents": [
        "214ac9a4ead6cb254451c09d9c8234a76693feb1"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Dec 09 20:25:59 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Dec 10 16:09:52 2009 -0500"
      },
      "message": "net/mac80211: Correct size given to memset\n\nMemset should be given the size of the structure, not the size of the pointer.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT *x;\nexpression E;\n@@\n\nmemset(x, E, sizeof(\n+ *\n x))\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "053e324f67b9921fe7de0c4cbc720d29cb4bf207",
      "tree": "ba596460f4a0a42e7ac3d44f89e9f556c5e3ea8a",
      "parents": [
        "e4ee5d4dfd9536ec60e5cb0bd439ede3e9d361a0"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Wed Dec 09 23:15:22 2009 +0530"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 09 16:23:18 2009 -0500"
      },
      "message": "rpc: remove unneeded function parameter in gss_add_msg()\n\nThe pointer to struct gss_auth parameter in gss_add_msg is not really needed\nafter commit 5b7ddd4a. Zap it.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "19deffbeba930030cfaf000b920333c6ba99ad52",
      "tree": "3d014a0815c83124d428f68bc4135e13a873cbdc",
      "parents": [
        "d55fb891f9da8ee17374349ff482b2715623b7e5"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Dec 08 17:10:13 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 09 15:10:08 2009 -0500"
      },
      "message": "wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC\n\nThis part was missed in \"cfg80211: implement get_wireless_stats\",\nprobably because sta_set_sinfo already existed and was only handling\ndBm signals.\n\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d55fb891f9da8ee17374349ff482b2715623b7e5",
      "tree": "2013400579647e4d20b737077647cb6d066a7d67",
      "parents": [
        "43de004b6c197b0ea408bdebf4f14afdead74b63"
      ],
      "author": {
        "name": "Vivek Natarajan",
        "email": "vnatarajan@atheros.com",
        "time": "Tue Nov 24 11:54:10 2009 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Dec 09 15:10:08 2009 -0500"
      },
      "message": "cfg80211: Clear encryption privacy when key off is done.\n\nWhen the current_bss is not set, \u0027iwconfig \u003ciface\u003e key off\u0027 does not\nclear the private flag. Hence after we connect with WEP to an AP and\nthen try to connect with another non-WEP AP, it does not work.\nThis issue will not be seen if supplicant is used.\n\nSigned-off-by: Vivek Natarajan \u003cvnatarajan@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "77722b177a1606669c0b95dde03347e37d13b8fe",
      "tree": "73c646300d1e7909ec163a371b6d7d7bf9d2f7f5",
      "parents": [
        "2f7de5710a4d394920405febc2a9937c69e16dda"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Dec 08 20:54:11 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:56:12 2009 -0800"
      },
      "message": "tcp: fix retrans_stamp advancing in error cases\n\nIt can happen, that tcp_retransmit_skb fails due to some error.\nIn such cases we might end up into a state where tp-\u003eretrans_out\nis zero but that\u0027s only because we removed the TCPCB_SACKED_RETRANS\nbit from a segment but couldn\u0027t retransmit it because of the error\nthat happened. Therefore some assumptions that retrans_out checks\nare based do not necessarily hold, as there still can be an old\nretransmission but that is only visible in TCPCB_EVER_RETRANS bit.\nAs retransmission happen in sequential order (except for some very\nrare corner cases), it\u0027s enough to check the head skb for that bit.\n\nMain reason for all this complexity is the fact that connection dying\ntime now depends on the validity of the retrans_stamp, in particular,\nthat successive retransmissions of a segment must not advance\nretrans_stamp under any conditions. It seems after quick thinking that\nthis has relatively low impact as eventually TCP will go into CA_Loss\nand either use the existing check for !retrans_stamp case or send a\nretransmission successfully, setting a new base time for the dying\ntimer (can happen only once). At worst, the dying time will be\napproximately the double of the intented time. In addition,\ntcp_packet_delayed() will return wrong result (has some cc aspects\nbut due to rarity of these errors, it\u0027s hardly an issue).\n\nOne of retrans_stamp clearing happens indirectly through first going\ninto CA_Open state and then a later ACK lets the clearing to happen.\nThus tcp_try_keep_open has to be modified too.\n\nThanks to Damian Lukowski \u003cdamian@tvk.rwth-aachen.de\u003e for hinting\nthat this possibility exists (though the particular case discussed\ndidn\u0027t after all have it happening but was just a debug patch\nartifact).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f7de5710a4d394920405febc2a9937c69e16dda",
      "tree": "8f038451b643f68ab399009e769a74678feb5546",
      "parents": [
        "07f29bc5bbae4e53e982ab956fed7207990a7786"
      ],
      "author": {
        "name": "Damian Lukowski",
        "email": "damian@tvk.rwth-aachen.de",
        "time": "Mon Dec 07 06:06:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:56:11 2009 -0800"
      },
      "message": "tcp: Stalling connections: Move timeout calculation routine\n\nThis patch moves retransmits_timed_out() from include/net/tcp.h\nto tcp_timer.c, where it is used.\n\nReported-by: Frederic Leroy \u003cfredo@starox.org\u003e\nSigned-off-by: Damian Lukowski \u003cdamian@tvk.rwth-aachen.de\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e302ebfeac04beb5a5d6af1ac583c6a1fb76d1a",
      "tree": "8b15d52b73905f89184c91fb146c1b216d71bc8f",
      "parents": [
        "504bb3b58e7314e0fe026da280e8168c1314be3d"
      ],
      "author": {
        "name": "chas williams - CONTRACTOR",
        "email": "chas@cmf.nrl.navy.mil",
        "time": "Fri Dec 04 11:06:32 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:22:31 2009 -0800"
      },
      "message": "atm: [br2684] allow routed mode operation again\n\nin routed mode, we don\u0027t have a hardware address so netdev_ops doesnt\nneed to validate our hardware address via .ndo_validate_addr\n\nReported-by: Manuel Fuentes \u003cmfuentes@agenciaefe.com\u003e\nSigned-off-by: Chas Williams - CONTRACTOR \u003cchas@cmf.nrl.navy.mil\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb0445887a45a3705522aac6c2d8367e90358792",
      "tree": "12b489c8b9a1092fafa558c0496ef2ef1c3f7b6c",
      "parents": [
        "2a8875e73ffb18165ceb245f99c2ccad77378051"
      ],
      "author": {
        "name": "chas williams - CONTRACTOR",
        "email": "chas@cmf.nrl.navy.mil",
        "time": "Fri Dec 04 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:22:30 2009 -0800"
      },
      "message": "atm: [lec] initialize .netdev_ops before calling register_netdev()\n\nfix oops when initializing lane interfaces. lec should probably be\nchanged to use alloc_netdev() instead.\n\nSigned-off-by: Chas Williams - CONTRACTOR \u003cchas@cmf.nrl.navy.mil\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a8875e73ffb18165ceb245f99c2ccad77378051",
      "tree": "f2a443bef4aec863b9b4143e528357518db0b89c",
      "parents": [
        "3cdaedae635b17ce23c738ce7d364b442310cdec"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Dec 08 20:19:53 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:19:53 2009 -0800"
      },
      "message": "[PATCH] tcp: documents timewait refcnt tricks \n\nAdds kerneldoc for inet_twsk_unhash() \u0026 inet_twsk_bind_unhash().\n\nWith help from Randy Dunlap.\n\nSuggested-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3cdaedae635b17ce23c738ce7d364b442310cdec",
      "tree": "af07cdf6c31cca8d1a094bd104efa65e1e95e270",
      "parents": [
        "9327f7053e3993c125944fdb137a0618319ef2a0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Dec 04 03:47:42 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:17:51 2009 -0800"
      },
      "message": "tcp: Fix a connect() race with timewait sockets\n\nWhen we find a timewait connection in __inet_hash_connect() and reuse\nit for a new connection request, we have a race window, releasing bind\nlist lock and reacquiring it in __inet_twsk_kill() to remove timewait\nsocket from list.\n\nAnother thread might find the timewait socket we already chose, leading to\nlist corruption and crashes.\n\nFix is to remove timewait socket from bind list before releasing the bind lock.\n\nNote: This problem happens if sysctl_tcp_tw_reuse is set.\n\nReported-by: kapil dakhane \u003ckdakhane@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9327f7053e3993c125944fdb137a0618319ef2a0",
      "tree": "3cee7de049a2468bef930b1832c42bd1b2e69e9a",
      "parents": [
        "74757d49016a8b06ca028196886641d7aeb78de5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Dec 04 03:46:54 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:17:51 2009 -0800"
      },
      "message": "tcp: Fix a connect() race with timewait sockets\n\nFirst patch changes __inet_hash_nolisten() and __inet6_hash()\nto get a timewait parameter to be able to unhash it from ehash\nat same time the new socket is inserted in hash.\n\nThis makes sure timewait socket wont be found by a concurrent\nwriter in __inet_check_established()\n\nReported-by: kapil dakhane \u003ckdakhane@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dc789320e1b310cb505dcd94512c279abcd5e1c",
      "tree": "b6173953ccff6c9bfd83096c97027c2d338287d1",
      "parents": [
        "e61444d9209821469ed0d5a9128dcf2e494533ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:07:54 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:07:54 2009 -0800"
      },
      "message": "tcp: Remove runtime check that can never be true.\n\nGCC even warns about it, as reported by Andrew Morton:\n\nnet/ipv4/tcp.c: In function \u0027do_tcp_getsockopt\u0027:\nnet/ipv4/tcp.c:2544: warning: comparison is always false due to limited range of data type\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e61444d9209821469ed0d5a9128dcf2e494533ea",
      "tree": "17b406ce83e925da011d2b463ddf278b821c365d",
      "parents": [
        "a252e749f1ae17e43ccc5824f7b1b5854417c98b",
        "6a213afd058436dbbd01098d7422c6a0073c39b5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 13:44:44 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 13:44:44 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "a252e749f1ae17e43ccc5824f7b1b5854417c98b",
      "tree": "0398ece85ef2e5ec63780ec892921a589e7a4d71",
      "parents": [
        "6035ccd8e9e40bb654fbfdef325902ab531679a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 12:51:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 12:51:22 2009 -0800"
      },
      "message": "sctp: fix compile error due to sysctl mismerge\n\nI messed up the merge in d7fc02c7bae7b1cf69269992cf880a43a350cdaa, where\nthe conflict in question wasn\u0027t just about CTL_UNNUMBERED being removed,\nbut the \u0027strategy\u0027 field is too (sysctl handling is now done through the\n/proc interface, with no duplicate protocols for reading the data).\n\nReported-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4ee5d4dfd9536ec60e5cb0bd439ede3e9d361a0",
      "tree": "ea154524598a31134835a6be0843caf8310b06a0",
      "parents": [
        "7cab89b275fd5647e72b781ac41b58a214640334",
        "480e3243df156e39eea6c91057e2ae612a6bbe19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 08 14:36:53 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 08 14:36:53 2009 -0500"
      },
      "message": "Merge branch \u0027bugfixes\u0027 into nfs-for-next\n"
    },
    {
      "commit": "480e3243df156e39eea6c91057e2ae612a6bbe19",
      "tree": "c9a37151b853c4118de309738db8580b34b0148f",
      "parents": [
        "1185a552e3d78807031f4021c5edb60d3e8838f1"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Dec 08 13:13:03 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 08 13:13:03 2009 -0500"
      },
      "message": "SUNRPC: IS_ERR/PTR_ERR confusion\n\nIS_ERR returns 1 or 0, PTR_ERR returns the error value.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d7fc02c7bae7b1cf69269992cf880a43a350cdaa",
      "tree": "a43d56fa72913a1cc98a0bbebe054d08581b3a7c",
      "parents": [
        "ee1262dbc65ce0b6234a915d8432171e8d77f518",
        "28b4d5cc17c20786848cdc07b7ea237a309776bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:55:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:55:01 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1815 commits)\n  mac80211: fix reorder buffer release\n  iwmc3200wifi: Enable wimax core through module parameter\n  iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter\n  iwmc3200wifi: Coex table command does not expect a response\n  iwmc3200wifi: Update wiwi priority table\n  iwlwifi: driver version track kernel version\n  iwlwifi: indicate uCode type when fail dump error/event log\n  iwl3945: remove duplicated event logging code\n  b43: fix two warnings\n  ipw2100: fix rebooting hang with driver loaded\n  cfg80211: indent regulatory messages with spaces\n  iwmc3200wifi: fix NULL pointer dereference in pmkid update\n  mac80211: Fix TX status reporting for injected data frames\n  ath9k: enable 2GHz band only if the device supports it\n  airo: Fix integer overflow warning\n  rt2x00: Fix padding bug on L2PAD devices.\n  WE: Fix set events not propagated\n  b43legacy: avoid PPC fault during resume\n  b43: avoid PPC fault during resume\n  tcp: fix a timewait refcnt race\n  ...\n\nFix up conflicts due to sysctl cleanups (dead sysctl_check code and\nCTL_UNNUMBERED removed) in\n\tkernel/sysctl_check.c\n\tnet/ipv4/sysctl_net_ipv4.c\n\tnet/ipv6/addrconf.c\n\tnet/sctp/sysctl.c\n"
    },
    {
      "commit": "1557d33007f63dd96e5d15f33af389378e5f2e54",
      "tree": "06d05722b2ba5d2a67532f779fa8a88efe3c88f1",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "c656ae95d1c5c8ed5763356263ace2d03087efec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6: (43 commits)\n  security/tomoyo: Remove now unnecessary handling of security_sysctl.\n  security/tomoyo: Add a special case to handle accesses through the internal proc mount.\n  sysctl: Drop \u0026 in front of every proc_handler.\n  sysctl: Remove CTL_NONE and CTL_UNNUMBERED\n  sysctl: kill dead ctl_handler definitions.\n  sysctl: Remove the last of the generic binary sysctl support\n  sysctl net: Remove unused binary sysctl code\n  sysctl security/tomoyo: Don\u0027t look at ctl_name\n  sysctl arm: Remove binary sysctl support\n  sysctl x86: Remove dead binary sysctl support\n  sysctl sh: Remove dead binary sysctl support\n  sysctl powerpc: Remove dead binary sysctl support\n  sysctl ia64: Remove dead binary sysctl support\n  sysctl s390: Remove dead sysctl binary support\n  sysctl frv: Remove dead binary sysctl support\n  sysctl mips/lasat: Remove dead binary sysctl support\n  sysctl drivers: Remove dead binary sysctl support\n  sysctl crypto: Remove dead binary sysctl support\n  sysctl security/keys: Remove dead binary sysctl support\n  sysctl kernel: Remove binary sysctl logic\n  ...\n"
    },
    {
      "commit": "1814077fd12a9cdf478c10076e9c42094e9d9250",
      "tree": "802c2703cfc1bb4230b52d0f56277e6a3df98ab8",
      "parents": [
        "02f7f1793023bd8e5e277ad349f6f43f8c284fb0"
      ],
      "author": {
        "name": "Vasanthakumar Thiagarajan",
        "email": "vasanth@atheros.com",
        "time": "Fri Dec 04 17:41:34 2009 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 07 16:51:24 2009 -0500"
      },
      "message": "mac80211: Fix bug in computing crc over dynamic IEs in beacon\n\nOn a 32-bit machine, BIT() macro does not give the required\nbit value if the bit is mroe than 31. In ieee802_11_parse_elems_crc(),\nBIT() is suppossed to get the bit value more than 31 (42 (id of ERP_INFO_IE),\n37 (CHANNEL_SWITCH_IE), (42), 32 (POWER_CONSTRAINT_IE), 45 (HT_CAP_IE),\n61 (HT_INFO_IE)). As we do not get the required bit value for the above\nIEs, crc over these IEs are never calculated, so any dynamic change in these\nIEs after the association is not really handled on 32-bit platforms.\nThis patch fixes this issue.\n\nCc: stable@kernel.org\nSigned-off-by: Vasanthakumar Thiagarajan \u003cvasanth@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "02f7f1793023bd8e5e277ad349f6f43f8c284fb0",
      "tree": "20ddc6990b49b2bdae0bf6c324348922e1c30201",
      "parents": [
        "16cec43da50c4b4702653ca710549fd3457a4e6c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Dec 03 20:45:07 2009 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 07 16:51:23 2009 -0500"
      },
      "message": "net/rfkill/core.c: work around gcc-4.0.2 silliness\n\nnet/rfkill/core.c: In function \u0027rfkill_type_show\u0027:\nnet/rfkill/core.c:610: warning: control may reach end of non-void function \u0027rfkill_get_type_str\u0027 being inlined\n\nA gcc bug, but simple enough to squish.\n\nCc: John W. Linville \u003clinville@tuxdriver.com\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7c3f4bbedc241ddcd3abe1f419c356e625231da1",
      "tree": "98b1141a86d4ac65ae930e1c0cb15cd6a17d2a01",
      "parents": [
        "bc83b6819289c031c439a5aa18ba0fd539d14f3e"
      ],
      "author": {
        "name": "Vivek Natarajan",
        "email": "vnatarajan@atheros.com",
        "time": "Mon Nov 30 16:50:53 2009 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 07 16:51:18 2009 -0500"
      },
      "message": "mac80211: Fix dynamic power save for scanning.\n\nNot only ps_sdata but also IEEE80211_CONF_PS is to be considered\nbefore restoring PS in scan_ps_disable(). For instance, when ps_sdata\nis set but CONF_PS is not set just because the dynamic timer is still\nrunning, a sw scan leads to setting of CONF_PS in scan_ps_disable\ninstead of restarting the dynamic PS timer.\nAlso for the above case, a null data frame is to be sent after\nreturning to operating channel which was not happening with the\ncurrent implementation. This patch fixes this too.\n\nSigned-off-by: Vivek Natarajan \u003cvnatarajan@atheros.com\u003e\nReviewed-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "bc83b6819289c031c439a5aa18ba0fd539d14f3e",
      "tree": "3e94213703b0a72086a721d78d436919c4dd1dcf",
      "parents": [
        "c14589eb3080636a2f71ebaf21ab9fd70ffc20cc"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Nov 29 12:19:06 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 07 16:51:18 2009 -0500"
      },
      "message": "mac80211: recalculate idle later in MLME\n\nhwsim testing has revealed that when the MLME\nrecalculates the idle state of the device, it\nsometimes does so before sending the final\ndeauthentication or disassociation frame. This\npatch changes the place where the idle state\nis recalculated, but of course driver transmit\nis typically asynchronous while configuration\nis expected to be synchronous, so it doesn\u0027t\nfix all possible cases yet.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d014d043869cdc591f3a33243d3481fa4479c2d0",
      "tree": "63626829498e647ba058a1ce06419fe7e4d5f97d",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "6070d81eb5f2d4943223c96e7609a53cdc984364"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\n\tkernel/irq/chip.c\n"
    },
    {
      "commit": "28b4d5cc17c20786848cdc07b7ea237a309776bb",
      "tree": "bae406a4b17229dcce7c11be5073f7a67665e477",
      "parents": [
        "d29cecda036f251aee4947f47eea0fe9ed8cc931",
        "96fa2b508d2d3fe040cf4ef2fffb955f0a537ea1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 05 15:22:26 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 05 15:22:26 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/pcmcia/fmvj18x_cs.c\n\tdrivers/net/pcmcia/nmclan_cs.c\n\tdrivers/net/pcmcia/xirc2ps_cs.c\n\tdrivers/net/wireless/ray_cs.c\n"
    },
    {
      "commit": "d0b093a8b5ae34ee8be1f7e0dd197fe4788fa1d5",
      "tree": "deaed4192d440b6afb7470b0c36e69d9d65dd119",
      "parents": [
        "3e72b810e30cdf4655279dd767eb798ac7a8fe5e",
        "5c828713358cb9df8aa174371edcbbb62203a490"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:50:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:50:22 2009 -0800"
      },
      "message": "Merge branch \u0027core-printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ratelimit: Make suppressed output messages more useful\n  printk: Remove ratelimit.h from kernel.h\n  ratelimit: Fix/allow use in atomic contexts\n  ratelimit: Use per ratelimit context locking\n"
    },
    {
      "commit": "d29cecda036f251aee4947f47eea0fe9ed8cc931",
      "tree": "8d1d44ee7ac8c683fd42d8e6ff2a027b4118dccb",
      "parents": [
        "8f56874bd7e8bee73ed6a1cf80dcec2753616262"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Dec 04 14:25:43 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 04 14:25:43 2009 -0800"
      },
      "message": "mac80211: fix reorder buffer release\n\nMy patch \"mac80211: correctly place aMPDU RX reorder code\"\nuses an skb queue for MPDUs that were released from the\nbuffer. I intentially didn\u0027t initialise and use the skb\nqueue\u0027s spinlock, but in this place forgot that the code\nvariant that doesn\u0027t touch the spinlock is needed.\n\nThanks to Christian Lamparter for quickly spotting the\nbug in the backtrace Reinette reported.\n\nReported-by: Reinette Chatre \u003creinette.chatre@intel.com\u003e\nBug-identified-by: Christian Lamparter \u003cchunkeey@googlemail.com\u003e\nTested-by: Reinette Chatre \u003creinette.chatre@intel.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f56874bd7e8bee73ed6a1cf80dcec2753616262",
      "tree": "aebd15dea662ef5efd89402b8fd92fec540a98eb",
      "parents": [
        "47e1c323069bcef0acb8a2b48921688573f5ca63",
        "159bcfeb9123c91f0dc885a42b6387a98192f896"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 04 13:25:15 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 04 13:25:15 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "269ac5fd2d75b118d76a2291e28796527db2f3f8",
      "tree": "b3cea2ec5e14febc9595f4733ec77bda32ad8601",
      "parents": [
        "6646a664e3b60bf3e5db676e0626e6ccd71b3363"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kalle.valo@nokia.com",
        "time": "Tue Dec 01 10:47:15 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Dec 04 14:16:24 2009 -0500"
      },
      "message": "cfg80211: indent regulatory messages with spaces\n\nThe regulatory messages in syslog look weird:\n\nkernel: cfg80211: Regulatory domain: US\nkernel: ^I(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)\nkernel: ^I(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)\nkernel: ^I(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)\nkernel: ^I(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)\nkernel: ^I(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)\nkernel: ^I(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)\nkernel: ^I(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)\n\nIndent them with four spaces instead of the tab character to get prettier\noutput.\n\nSigned-off-by: Kalle Valo \u003ckalle.valo@nokia.com\u003e\nAcked: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "914828fad09269292be1bfa3dfbe78d064f76068",
      "tree": "115bd36b908e4e9d2a916af386cec32392e08d00",
      "parents": [
        "a9a29ce674ac62e7bfcb6c1404ca86cda4782988"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "j@w1.fi",
        "time": "Sun Nov 29 14:29:42 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Dec 04 14:16:23 2009 -0500"
      },
      "message": "mac80211: Fix TX status reporting for injected data frames\n\nAn earlier optimization on removing unnecessary traffic on cooked\nmonitor interfaces (\"mac80211: reduce the amount of unnecessary traffic\non cooked monitor interfaces \") ended up removing quite a bit more\nthan just unnecessary traffic. It was not supposed to remove TX status\nreporting for injected frames, but ended up doing it by checking the\ninjected flag in skb-\u003ecb only after that field had been cleared with\nmemset.. Fix this by taking a local copy of the injected flag before\nskb-\u003ecb is cleared.\n\nThis broke user space applications that depend on getting TX status\nnotifications for injected data frames. For example, STA inactivity\npoll from hostapd did not work and ended up kicking out stations even\nif they were still present.\n\nSigned-off-by: Jouni Malinen \u003cj@w1.fi\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1014eb6ec95b18f890101e99385f05539c0c2f01",
      "tree": "6ef0eb2946e197b93fd317993fc1fc61aadd27e0",
      "parents": [
        "316a4d966cae3c2dec83ebb1ee1a3515f97b30ff"
      ],
      "author": {
        "name": "Jean Tourrilhes",
        "email": "jt@hpl.hp.com",
        "time": "Tue Nov 24 10:47:08 2009 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Dec 04 13:30:39 2009 -0500"
      },
      "message": "WE: Fix set events not propagated\n\nI\u0027ve just noticed that some events are no longer propagated\nfor some wireless drivers. Basically, SET request with a extra payload\nfor driver without commit handler. The fix is pretty simple, see\nattached.\n\tActually, a few lines below this line, you will see that the\nevent generation for simple SET (iwpoint-less ?) is done properly,\nand this other event generation does not need fixing.\n\nSigned-off-by: Jean Tourrilhes \u003cjt@hpl.hp.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "94e2bd688820aed72b4f8092f88c2ccf64e003de",
      "tree": "988de1817ec5ebe40dc6f2901eb86987876c517f",
      "parents": [
        "65cb76baa1058d17d51ce948b697cdbd5dc97421"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Fri Oct 16 15:20:49 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:48 2009 +0100"
      },
      "message": "tree-wide: fix some typos and punctuation in comments\n\nfix some typos and punctuation in comments\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7285f2d2ffd4b7ab4ffb70a47759ee209c30017b",
      "tree": "255cdddc72429f013b3bcf5c51d1818cb3e3bd51",
      "parents": [
        "0b08b07507d5ae733408fd4ebda1cd89d3a840ef",
        "44ed3556bad809797f7b06a4a88918fd8a23d6fe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 21:27:36 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 21:27:36 2009 -0500"
      },
      "message": "Merge branch \u0027devel\u0027 into linux-next\n"
    },
    {
      "commit": "47e1c323069bcef0acb8a2b48921688573f5ca63",
      "tree": "bebfe86ae36055adae2100200e87727d21a7b762",
      "parents": [
        "13475a30b66cdb9250a34052c19ac98847373030"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Dec 03 00:49:01 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 16:17:44 2009 -0800"
      },
      "message": "tcp: fix a timewait refcnt race\n\nAfter TCP RCU conversion, tw-\u003etw_refcnt should not be set to 1 in\ninet_twsk_alloc(). It allows a RCU reader to get this timewait socket,\nwhile we not yet stabilized it.\n\nOnly choice we have is to set tw_refcnt to 0 in inet_twsk_alloc(),\nthen atomic_add() it later, once everything is done.\n\nLocation of this atomic_add() is tricky, because we dont want another\nwriter to find this timewait in ehash, while tw_refcnt is still zero !\n\nThanks to Kapil Dakhane tests and reports.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13475a30b66cdb9250a34052c19ac98847373030",
      "tree": "5f28f671092c2948726fdde92e20c3371cfceb77",
      "parents": [
        "ff33a6e2ab97f4cde484cdf1a41778af6d6b7cff"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Dec 02 22:31:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 16:17:43 2009 -0800"
      },
      "message": "tcp: connect() race with timewait reuse\n\nIts currently possible that several threads issuing a connect() find\nthe same timewait socket and try to reuse it, leading to list\ncorruptions.\n\nCondition for bug is that these threads bound their socket on same\naddress/port of to-be-find timewait socket, and connected to same\ntarget. (SO_REUSEADDR needed)\n\nTo fix this problem, we could unhash timewait socket while holding\nehash lock, to make sure lookups/changes will be serialized. Only\nfirst thread finds the timewait socket, other ones find the\nestablished socket and return an EADDRNOTAVAIL error.\n\nThis second version takes into account Evgeniy\u0027s review and makes sure\ninet_twsk_put() is called outside of locked sections.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "49d09007879ce7bee36ab453c73e97c00adce884",
      "tree": "6b6a28e0fd8befd4bad5fb1474ce4e0dea9ed6dd",
      "parents": [
        "3320eae51d6e4c65b4733bf4d87de3b833973a1f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Dec 03 16:06:13 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 16:06:13 2009 -0800"
      },
      "message": "tcp: diag: Dont report negative values for rx queue\n\nBoth netlink and /proc/net/tcp interfaces can report transient\nnegative values for rx queue.\n\nss -\u003e\nState   Recv-Q Send-Q  Local Address:Port  Peer Address:Port\nESTAB   -6     6       127.0.0.1:45956     127.0.0.1:3333 \n\nnetstat -\u003e\ntcp   4294967290      6 127.0.0.1:37784  127.0.0.1:3333 ESTABLISHED\n\nThis is because we dont lock socket while computing \ntp-\u003ercv_nxt - tp-\u003ecopied_seq,\nand another CPU can update copied_seq before rcv_next in RX path.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc4a7489663250360cd40d5adf06a08d1c5d54df",
      "tree": "ce8fed0a2dfc175b03834bb94717f5f2970c9146",
      "parents": [
        "012093f6d5d89e6ed6e89c55c383f84b1cff7a78"
      ],
      "author": {
        "name": "Patrick Mullaney",
        "email": "pmullaney@novell.com",
        "time": "Thu Dec 03 15:59:22 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 15:59:22 2009 -0800"
      },
      "message": "netdevice: provide common routine for macvlan and vlan operstate management\n\nProvide common routine for the transition of operational state for a leaf\ndevice during a root device transition.\n\nSigned-off-by: Patrick Mullaney \u003cpmullaney@novell.com\u003e\nAcked-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": "a7fca0ccecd3f5a111e08df8439f0b884099ad59",
      "tree": "44b360a8f367e2414daf3ad92622ab2544ac0fbd",
      "parents": [
        "424eff975192553a9ea8bfd51bf65039ffb356ef",
        "2861453b1b5e022fd5e1294b8fbf39254440b661"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 13:51:02 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 13:51:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6\n"
    },
    {
      "commit": "424eff975192553a9ea8bfd51bf65039ffb356ef",
      "tree": "5fa7b15715b3ce904f7250c50d09bc921d9f28bf",
      "parents": [
        "55dbabee63462a455d8fb57caf08b69db256b012",
        "3666ed1c4837fd6906da0224c5373d7a2186a193"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 13:23:12 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 13:23:12 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6\n"
    },
    {
      "commit": "3a28becc35e5c8f1fabb707bcd8a473712653de6",
      "tree": "2cdbbbea50d8a6ed8c9a3f9a84b29b424154b6e4",
      "parents": [
        "caabea8a565fb4e16f8e58e16bb9d535e591b709"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: soft connect semantics for UDP\n\nIntroduce soft connect behavior for UDP transports.  In this case, a\nmajor timeout returns ETIMEDOUT instead of EIO.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "caabea8a565fb4e16f8e58e16bb9d535e591b709",
      "tree": "15e0cf4514999c4fb9596adece9e22adfaee2a31",
      "parents": [
        "012da158f636347c4eb28fd1e1cca020fef5e54d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Use soft connect semantics when performing RPC ping\n\nCurrently, if a remote RPC service is unreachable, an RPC ping will\nhang until the underlying transport connect attempt times out.  A more\ndesirable behavior might be to have the ping fail immediately so upper\nlayers can recover appropriately.\n\nIn the case of an NFS mount, for instance, this would mean the\nmount(2) system call could fail immediately if the server isn\u0027t\nlistening, rather than hanging uninterruptibly for more than 3\nminutes.\n\nChange rpc_ping() so that it fails immediately for connection-oriented\ntransports.  rpc_create() will then fail immediately for such\ntransports if an RPC ping was requested.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "012da158f636347c4eb28fd1e1cca020fef5e54d",
      "tree": "2b51c0d57ab2353bce700c599185e7fd346e251e",
      "parents": [
        "2a76b3bfa22993fc09166bd6a8db0dbe902b6813"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Use soft connects for autobinding over TCP\n\nAutobinding is handled by the rpciod process, not in user processes\nthat are generating regular RPC requests.  Thus autobinding is usually\nnot affected by signals targetting user processes, such as KILL or\ntimer expiration events.\n\nIn addition, an RPC request generated by a user process that has\nRPC_TASK_SOFTCONN set and needs to perform an autobind will hang if\nthe remote rpcbind service is not available.\n\nFor rpcbind queries on connection-oriented transports, let\u0027s use the\nnew soft connect semantic to return control to the user\u0027s process\nquickly, if the kernel\u0027s rpcbind client can\u0027t connect to the remote\nrpcbind service.\n\nLogic is introduced in call_bind_status() to handle connection errors\nthat occurred during an asynchronous rpcbind query.  The logic\nabandons the rpcbind query if the RPC request has SOFTCONN set, and\nretries after a few seconds in the normal case.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2a76b3bfa22993fc09166bd6a8db0dbe902b6813",
      "tree": "3cb222408155a5d878d6e2dfae2aadd24226ee62",
      "parents": [
        "c526611dd631b2802b6b0221ffb306c5fa25c86c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Use TCP for local rpcbind upcalls\n\nUse TCP with the soft connect semantic for local rpcbind upcalls so\nthe kernel can detect immediately if the local rpcbind daemon is not\nrunning.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n"
    },
    {
      "commit": "c526611dd631b2802b6b0221ffb306c5fa25c86c",
      "tree": "909f241683fbe848b484cef24a77d716c486d25c",
      "parents": [
        "5a46211540a83871196489247f57da2bdde58d87"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Use a cached RPC client and transport for rpcbind upcalls\n\nThe kernel\u0027s rpcbind client creates and deletes an rpc_clnt and its\nunderlying transport socket for every upcall to the local rpcbind\ndaemon.\n\nWhen starting a typical NFS server on IPv4 and IPv6, the NFS service\nitself does three upcalls (one per version) times two upcalls (one\nper transport) times two upcalls (one per address family), making 12,\nplus another one for the initial call to unregister previous NFS\nservices.  Starting the NLM service adds an additional 13 upcalls,\nfor similar reasons.\n\n(Currently the NFS service doesn\u0027t start IPv6 listeners, but it will\nsoon enough).\n\nInstead, let\u0027s create an rpc_clnt for rpcbind upcalls during the\nfirst local rpcbind query, and cache it.  This saves the overhead of\ncreating and destroying an rpc_clnt and a socket for every upcall.\n\nThe new logic also prevents the kernel from attempting an RPCB_SET or\nRPCB_UNSET if it knows from the start that the local portmapper does\nnot support rpcbind protocol version 4.  This will cut down on the\nnumber of rpcbind upcalls in legacy environments.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n"
    },
    {
      "commit": "5a46211540a83871196489247f57da2bdde58d87",
      "tree": "4d414b9e5cc7af8f4913923b51dc195ddeab58a5",
      "parents": [
        "09a21c4102c8f7893368553273d39c0cadedf9af"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Simplify synopsis of rpcb_local_clnt()\n\nClean up: At one point, rpcb_local_clnt() handled IPv6 loopback\naddresses too, but it doesn\u0027t any more; only IPv4 loopback is used\nnow.  Get rid of the @addr and @addrlen arguments to\nrpcb_local_clnt().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "09a21c4102c8f7893368553273d39c0cadedf9af",
      "tree": "b0a051dbb02d48aa95383e39cc7ce6f503d6f33b",
      "parents": [
        "206a134b4d8abf57cd34dffacf993869355b9aac"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Allow RPCs to fail quickly if the server is unreachable\n\nThe kernel sometimes makes RPC calls to services that aren\u0027t running.\nBecause the kernel\u0027s RPC client always assumes the hard retry semantic\nwhen reconnecting a connection-oriented RPC transport, the underlying\nreconnect logic takes a long while to time out, even though the remote\nmay have responded immediately with ECONNREFUSED.\n\nIn certain cases, like upcalls to our local rpcbind daemon, or for NFS\nmount requests, we\u0027d like the kernel to fail immediately if the remote\nservice isn\u0027t reachable.  This allows another transport to be tried\nimmediately, or the pending request can be abandoned quickly.\n\nIntroduce a per-request flag which controls how call_transmit_status()\nbehaves when request transmission fails because the server cannot be\nreached.\n\nWe don\u0027t want soft connection semantics to apply to other errors.  The\ndefault case of the switch statement in call_transmit_status() no\nlonger falls through; the fall through code is copied to the default\ncase, and a \"break;\" is added.\n\nThe transport\u0027s connection re-establishment timeout is also ignored for\nsuch requests.  We want the request to fail immediately, so the\nreconnect delay is skipped.  Additionally, we don\u0027t want a connect\nfailure here to further increase the reconnect timeout value, since\nthis request will not be retried.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "206a134b4d8abf57cd34dffacf993869355b9aac",
      "tree": "ffe4724ce1957243de3eaa2e123b25c883c53412",
      "parents": [
        "dd47f96c077b4516727e497e4b6fd47a06778c0a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Check explicitly for tk_status \u003d\u003d 0 in call_transmit_status()\n\nThe success case, where task-\u003etk_status \u003d\u003d 0, is by far the most\nfrequent case in call_transmit_status().\n\nThe default: arm of the switch statement in call_transmit_status()\nhandles the 0 case.  default: was moved close to the top of the switch\nstatement in call_transmit_status() under the theory that the compiler\nplaces object code for the earliest arms of a switch statement first,\nmaking the CPU do less work.\n\nThe default: arm of a switch statement, however, is executed only\nafter all the other cases have been checked.  Even if the compiler\nrearranges the object code, the default: arm is the \"last resort\",\nmeaning all of the other cases have been explicitly exhausted.  That\nmakes the current arrangement about as inefficient as it gets for the\ncommon case.\n\nTo fix this, add an explicit check for zero before the switch\nstatement.  That forces the compiler to do the zero check first, no\nmatter what optimizations it might try to do to the switch statement.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dd1fd90fe65e2e642f0e58e2ff4849f317a6c43d",
      "tree": "2519545d939d3ec6aab754f49866579c1e65b185",
      "parents": [
        "a01878aac57eac6eb4bf194788ab2cc440490d0f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Display compressed (shorthand) IPv6 presentation addresses\n\nRecent changes to snprintf() introduced the %pI6c formatter, which can\ndisplay an IPv6 address with standard shorthanding.  Using a\nshorthanded address can save us a few bytes of memory for each stored\npresentation address, or a few bytes on the wire when sending these in\na universal address.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b099ce2602d806deb41caaa578731848995cdb2a",
      "tree": "7541d0d59c73e6b6274d420b8a3ec35d85ca5f2d",
      "parents": [
        "575f4cd5a5b639457747434dbe18d175fa767db4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 03 02:29:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 12:23:47 2009 -0800"
      },
      "message": "net: Batch inet_twsk_purge\n\nThis function walks the whole hashtable so there is no point in\npassing it a network namespace.  Instead I purge all timewait\nsockets from dead network namespaces that I find.  If the namespace\nis one of the once I am trying to purge I am guaranteed no new timewait\nsockets can be formed so this will get them all.  If the namespace\nis one I am not acting for it might form a few more but I will\ncall inet_twsk_purge again and  shortly to get rid of them.  In\nany even if the network namespace is dead timewait sockets are\nuseless.\n\nMove the calls of inet_twsk_purge into batch_exit routines so\nthat if I am killing a bunch of namespaces at once I will just\ncall inet_twsk_purge once and save a lot of redundant unnecessary\nwork.\n\nMy simple 4k network namespace exit test the cleanup time dropped from\nroughly 8.2s to 1.6s.  While the time spent running inet_twsk_purge fell\nto about 2ms.  1ms for ipv4 and 1ms for ipv6.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "575f4cd5a5b639457747434dbe18d175fa767db4",
      "tree": "476224db152a2b5bef33046944cb77b5822fae26",
      "parents": [
        "e9c5158ac26affd5d8ce006521bdfb7148090e18"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 03 02:29:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 12:23:47 2009 -0800"
      },
      "message": "net: Use rcu lookups in inet_twsk_purge.\n\nWhile we are looking up entries to free there is no reason to take\nthe lock in inet_twsk_purge.  We have to drop locks and restart\noccassionally anyway so adding a few more in case we get on the\nwrong list because of a timewait move is no big deal.  At the\nsame time not taking the lock for long periods of time is much\nmore polite to the rest of the users of the hash table.\n\nIn my test configuration of killing 4k network namespaces\nthis change causes 4k back to back runs of inet_twsk_purge on an\nempty hash table to go from roughly 20.7s to 3.3s, and the total\ntime to destroy 4k network namespaces goes from roughly 44s to\n3.3s.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9c5158ac26affd5d8ce006521bdfb7148090e18",
      "tree": "a8d43fb446a1908175923f4109c977dcb84e4f91",
      "parents": [
        "3a765edadb28cc736d185f67d1ba6bedcc85f4b9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 03 12:22:55 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 12:22:55 2009 -0800"
      },
      "message": "net: Allow fib_rule_unregister to batch\n\nRefactor the code so fib_rules_register always takes a template instead\nof the actual fib_rules_ops structure that will be used.  This is\nrequired for network namespace support so 2 out of the 3 callers already\ndo this, it allows the error handling to be made common, and it allows\nfib_rules_unregister to free the template for hte caller.\n\nModify fib_rules_unregister to use call_rcu instead of syncrhonize_rcu\nto allw multiple namespaces to be cleaned up in the same rcu grace\nperiod.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a765edadb28cc736d185f67d1ba6bedcc85f4b9",
      "tree": "79cbd70d9ef551cb75e897ddeb8e17749d0596b8",
      "parents": [
        "d79d792ef9f99cca463b6619a93e860d1c833a6e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 03 02:29:06 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 12:22:03 2009 -0800"
      },
      "message": "netns: Add an explicit rcu_barrier to unregister_pernet_{device|subsys}\n\nThis allows namespace exit methods to batch work that comes requires an\nrcu barrier using call_rcu without having to treat the\nunregister_pernet_operations cases specially.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d79d792ef9f99cca463b6619a93e860d1c833a6e",
      "tree": "06d8a085701546be48ac104fd4f2413a6371180c",
      "parents": [
        "04dc7f6be3a7b308f8545bb45772c9fb75f71aca"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 03 02:29:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 12:22:03 2009 -0800"
      },
      "message": "net: Allow xfrm_user_net_exit to batch efficiently.\n\nxfrm.nlsk is provided by the xfrm_user module and is access via rcu from\nother parts of the xfrm code.  Add xfrm.nlsk_stash a copy of xfrm.nlsk that\nwill never be set to NULL.  This allows the synchronize_net and\nnetlink_kernel_release to be deferred until a whole batch of xfrm.nlsk sockets\nhave been set to NULL.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04dc7f6be3a7b308f8545bb45772c9fb75f71aca",
      "tree": "11cfe976f4adffdbdeeed71f591613089e9d6fe5",
      "parents": [
        "72ad937abd0a43b7cf2c557ba1f2ec75e608c516"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 03 02:29:04 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 12:22:02 2009 -0800"
      },
      "message": "net: Move network device exit batching\n\nMove network device exit batching from a special case in\nnet_namespace.c to using common mechanisms in dev.c\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "72ad937abd0a43b7cf2c557ba1f2ec75e608c516"
}
