)]}'
{
  "log": [
    {
      "commit": "ff51bf841587c75b58d25ed77263158619784dd3",
      "tree": "85d415536b84c48afe2aea0243f420ac262e1bbd",
      "parents": [
        "d0c2b0d265a0f1f92922a99a31def9da582197ac"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Oct 19 08:08:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 04:26:39 2010 -0700"
      },
      "message": "rds: make local functions/variables static\n\nThe RDS protocol has lots of functions that should be\ndeclared static. rds_message_get/add_version_extension is\nremoved since it defined but never used.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ea819867b788728aca60717e4fdacb3df771f670",
      "tree": "68952e283e4b119622c6e8244d96e41c623ae4b0",
      "parents": [
        "1bde04a63d532c2540d6fdee0a661530a62b1686"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Thu Jul 15 12:34:33 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:16:44 2010 -0700"
      },
      "message": "RDS/IB: protect the list of IB devices\n\nThe RDS IB device list wasn\u0027t protected by any locking.  Traversal in\nboth the get_mr and FMR flushing paths could race with additon and\nremoval.\n\nList manipulation is done with RCU primatives and is protected by the\nwrite side of a rwsem.  The list traversal in the get_mr fast path is\nprotected by a rcu read critical section.  The FMR list traversal is\nmore problematic because it can block while traversing the list.  We\nprotect this with the read side of the rwsem.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "ef87b7ea39a91906218a262686bcb8bad8b6b46e",
      "tree": "4fe72c5b5f788d8109e715012ce2af57bba807d7",
      "parents": [
        "c20f5b9633bb0953bd2422f0f1430a2028cdbd0a"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Fri Jul 09 12:26:20 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:16:39 2010 -0700"
      },
      "message": "RDS: remove __init and __exit annotation\n\nThe trivial amount of memory saved isn\u0027t worth the cost of dealing with section\nmismatches.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "515e079dab19cf774d1eec6e5f4ed65509e31ef1",
      "tree": "1dcc0f211946c47cd19b6823574aaa1a32982ffa",
      "parents": [
        "8aeb1ba6630ffd44001ae9833842794df0107676"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Tue Jul 06 15:09:56 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:16:34 2010 -0700"
      },
      "message": "RDS/IB: create a work queue for FMR flushing\n\nThis patch moves the FMR flushing work in to its own mult-threaded work queue.\nThis is to maintain performance in preparation for returning the main krdsd\nwork queue back to a single threaded work queue to avoid deep-rooted\nconcurrency bugs.\n\nThis is also good because it further separates FMRs, which might be removed\nsome day, from the rest of the code base.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "8aeb1ba6630ffd44001ae9833842794df0107676",
      "tree": "bc9a78da5281b371d3a9ecb2e00f7c381d9cd33b",
      "parents": [
        "24fa163a4bae74b3378d30e1bc776568cfca8121"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Fri Jun 25 14:58:16 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:16:33 2010 -0700"
      },
      "message": "RDS/IB: destroy connections on rmmod\n\nIB connections were not being destroyed during rmmod.\n\nFirst, recently IB device removal callback was changed to disconnect\nconnections that used the removing device rather than destroying them.  So\nconnections with devices during rmmod were not being destroyed.\n\nSecond, rds_ib_destroy_nodev_conns() was being called before connections are\ndisassociated with devices.  It would almost never find connections in the\nnodev list.\n\nWe first get rid of rds_ib_destroy_conns(), which is no longer called, and\nrefactor the existing caller into the main body of the function and get rid of\nthe list and lock wrappers.\n\nThen we call rds_ib_destroy_nodev_conns() *after* ib_unregister_client() has\nremoved the IB device from all the conns and put the conns on the nodev list.\n\nThe result is that IB connections are destroyed by rmmod.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "24fa163a4bae74b3378d30e1bc776568cfca8121",
      "tree": "309638f0739708cecd066ebad43f95832e3f8dd8",
      "parents": [
        "b6fb0df12db6c8b6bbcc7b5c9459b3bbf5f0cee6"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Fri Jun 25 14:59:49 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:16:32 2010 -0700"
      },
      "message": "RDS/IB: wait for IB dev freeing work to finish during rmmod\n\nThe RDS IB client removal callback can queue work to drop the final reference\nto an IB device.  We have to make sure that this function has returned before\nwe complete rmmod or the work threads can try to execute freed code.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "fc19de38be924728fea76026c0d1a6c4b6156084",
      "tree": "31deb86bc1d6b11a2c671ee3c126fc7c27e02264",
      "parents": [
        "f3c6808d3d8513db2b0543538fc35c25a60fe7a7"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Mon May 24 13:16:57 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:15:19 2010 -0700"
      },
      "message": "RDS/IB: disconnect when IB devices are removed\n\nCurrently IB device removal destroys connections which are associated with the\ndevice.  This prevents connections from being re-established when replacement\ndevices are added.\n\nInstead we\u0027ll queue shutdown work on the connections as their devices are\nremoved.  When we see that devices are added we triger connection attempts on\nall connections that don\u0027t currently have a device.\n\nThe result is that RDS sockets can resume device-independent work (bcopy, not\nRDMA) across IB device removal and restoration.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "3e0249f9c05cb77b66f7f09644ca9ca208d991a9",
      "tree": "2f8aaddb51590d36a54b8f7044224073107d77d9",
      "parents": [
        "89bf9d4158b5a1b6bd00960eb2e47601ec8cc138"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Tue May 18 15:48:51 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:15:17 2010 -0700"
      },
      "message": "RDS/IB: add refcount tracking to struct rds_ib_device\n\nThe RDS IB client .remove callback used to free the rds_ibdev for the given\ndevice unconditionally.  This could race other users of the struct.  This patch\nadds refcounting so that we only free the rds_ibdev once all of its users are\ndone.\n\nMany rds_ibdev users are tied to connections.  We give the connection a\nreference and change these users to reference the device in the connection\ninstead of looking it up in the IB client data.  The only user of the IB client\ndata remaining is the first lookup of the device as connections are built up.\n\nIncrementing the reference count of a device found in the IB client data could\nrace with final freeing so we use an RCU grace period to make sure that freeing\nwon\u0027t happen until those lookups are done.\n\nMRs need the rds_ibdev to get at the pool that they\u0027re freed in to.  They exist\noutside a connection and many MRs can reference different devices from one\nsocket, so it was natural to have each MR hold a reference.  MR refs can be\ndropped from interrupt handlers and final device teardown can block so we push\nit off to a work struct.  Pool teardown had to be fixed to cancel its pending\nwork instead of deadlocking waiting for all queued work, including itself, to\nfinish.\n\nMRs get their reference from the global device list, which gets a reference.\nIt is left unprotected by locks and remains racy.  A simple global lock would\nbe a significant bottleneck.  More scalable (complicated) locking should be\ndone carefully in a later patch.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "e4c52c98e04937ea87b0979a81354d0040d284f9",
      "tree": "c7bfbd9d952ebb66e7491d7c3a1bc91db3fbfbb8",
      "parents": [
        "4a81802b5e5e0b059627d7173c917711cf35e668"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Fri Apr 23 10:49:53 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:14:06 2010 -0700"
      },
      "message": "RDS/IB: add _to_node() macros for numa and use {k,v}malloc_node()\n\nAllocate send/recv rings in memory that is node-local to the HCA.\nThis significantly helps performance.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\n"
    },
    {
      "commit": "764f2dd92f5cd308d1c4372b33fea2b265c093f5",
      "tree": "f979329a2b5bfb0c92fc83e951d9ac7654c4ba78",
      "parents": [
        "c83188dcd76b1f0c17c31b4bbd8de57c634b19f8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Apr 22 21:59:15 2010 -0400"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:12:28 2010 -0700"
      },
      "message": "rds: rcu-ize rds_ib_get_device()\n\nrds_ib_get_device is called very often as we turn an\nip address into a corresponding device structure.  It currently\ntake a global spinlock as it walks different lists to find active\ndevices.\n\nThis commit changes the lists over to RCU, which isn\u0027t very complex\nbecause they are not updated very often at all.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "77dd550e5547846604ff6f90c4dc6bba4414e485",
      "tree": "ea37afea7f0d857e01f214f703018426f6d8b920",
      "parents": [
        "e32b4a70495aac6a612e13f4c21db09dd756ff2c"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Mon Mar 22 15:22:04 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:12:10 2010 -0700"
      },
      "message": "RDS: Stop supporting old cong map sending method\n\nWe now ask the transport to give us a rm for the congestion\nmap, and then we handle it normally. Previously, the\ntransport defined a function that we would call to send\na congestion map.\n\nConvert TCP and loop transports to new cong map method.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\n"
    },
    {
      "commit": "809fa148a29467954280fe8b7f97c92403f6293c",
      "tree": "cd04f946f9490a42606436bdf89c7cb5f0ccc733",
      "parents": [
        "6200ed7799d9225f363f157ab61f1566cfd80e19"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Tue Jan 12 14:41:46 2010 -0800"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:11:46 2010 -0700"
      },
      "message": "RDS: inc_purge() transport function unused - remove it\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\n"
    },
    {
      "commit": "40589e74f7ba855f3a887c9d4abe9d100c5b039c",
      "tree": "f32b0414ae3cfe8868fbdb130f9b24ac19794ae3",
      "parents": [
        "15133f6e67d8d646d0744336b4daa3135452cb0d"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Tue Jan 12 10:50:48 2010 -0800"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:11:42 2010 -0700"
      },
      "message": "RDS: Base init_depth and responder_resources on hw values\n\nInstead of using a constant for initiator_depth and\nresponder_resources, read the per-QP values when the\ndevice is enumerated, and then use these values when creating\nthe connection.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\n"
    },
    {
      "commit": "15133f6e67d8d646d0744336b4daa3135452cb0d",
      "tree": "e5675d5a3ab240edc9a66af6b891dd75fa9eabae",
      "parents": [
        "a63273d4992603979ddb181b6a8f07082839b39f"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Tue Jan 12 14:33:38 2010 -0800"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:11:41 2010 -0700"
      },
      "message": "RDS: Implement atomic operations\n\nImplement a CMSG-based interface to do FADD and CSWP ops.\n\nAlter send routines to handle atomic ops.\n\nAdd atomic counters to stats.\n\nAdd xmit_atomic() to struct rds_transport\n\nInline rds_ib_send_unmap_rdma into unmap_rm\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "6f8372b69c3198e06cecb1df2cb9682d0c55e657",
      "tree": "4cd9a39fd782bc973b0394f779572ca72737f55c",
      "parents": [
        "c4315d85f9b76834289fd503796c01b8311c4b84"
      ],
      "author": {
        "name": "Sean Hefty",
        "email": "sean.hefty@intel.com",
        "time": "Thu Nov 19 13:26:06 2009 -0800"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Thu Nov 19 13:26:06 2009 -0800"
      },
      "message": "RDMA/cm: fix loopback address support\n\nThe RDMA CM is intended to support the use of a loopback address\nwhen establishing a connection; however, the behavior of the CM\nwhen loopback addresses are used is confusing and does not always\nwork, depending on whether loopback was specified by the server,\nthe client, or both.\n\nThe defined behavior of rdma_bind_addr is to associate an RDMA\ndevice with an rdma_cm_id, as long as the user specified a non-\nzero address.  (ie they weren\u0027t just trying to reserve a port)\nCurrently, if the loopback address is passed to rdam_bind_addr,\nno device is associated with the rdma_cm_id.  Fix this.\n\nIf a loopback address is specified by the client as the destination\naddress for a connection, it will fail to establish a connection.\nThis is true even if the server is listing across all addresses or\non the loopback address itself.  The issue is that the server tries\nto translate the IP address carried in the REQ message to a local\nnet_device address, which fails.  The translation is not needed in\nthis case, since the REQ carries the actual HW address that should\nbe used.\n\nFinally, cleanup loopback support to be more transport neutral.\nReplace separate calls to get/set the sgid and dgid from the\ndevice address to a single call that behaves correctly depending\non the format of the device address.  And support both IPv4 and\nIPv6 address formats.\n\nSigned-off-by: Sean Hefty \u003csean.hefty@intel.com\u003e\n\n[ Fixed RDS build by s/ib_addr_get/rdma_addr_get/  - Roland ]\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "335776bd696a6bf95134baf8ad95847371e4d5f6",
      "tree": "76393aa4683e02b87209981ae96ed44f9689a080",
      "parents": [
        "40d866095df3bb70ded1813f4852cab445ef678b"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Fri Aug 21 12:28:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 23 19:13:12 2009 -0700"
      },
      "message": "RDS: Track transports via an array, not a list\n\nNow that transports can be loaded in arbitrary order,\nit is important for rds_trans_get_preferred() to look\nfor them in a particular order, instead of walking the list\nuntil it finds a transport that works for a given address.\nNow, each transport registers for a specific transport slot,\nand these are ordered so that preferred transports come first,\nand then if they are not loaded, other transports are queried.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a870d62726721785c34fa73d852bd35e5d1b295b",
      "tree": "bab3e33c8030e296477d4719817dfbe75303f04f",
      "parents": [
        "edacaeae52ade6cbb3a0704db32a9fb4a219dee3"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Fri Jul 17 13:13:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 20 08:03:13 2009 -0700"
      },
      "message": "RDS/IB: Always use PAGE_SIZE for FMR page size\n\nWhile FMRs allow significant flexibility in what size of pages they can use,\nwe really just want FMR pages to match CPU page size. Roland says we can\ncount on this always being supported, so this simplifies things.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ba23ade464cca7c4a7ba5628c613339d3f2e161",
      "tree": "b0c5e487a9b2461fbbfdcedde870d2b545b5deb3",
      "parents": [
        "4edf547b4d0f886acf5aa5a0c8f8edbaff280830"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Fri Jul 17 13:13:22 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 20 08:03:01 2009 -0700"
      },
      "message": "RDS: Set retry_count to 2 and make modifiable via modparam\n\nThis will be default cause IB connections to failover faster,\nbut allow a longer retry count to be used if desired.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "94713bab649736177a1c33a39b7bb33cbd5af3a5",
      "tree": "ce5bb57051bd5d798308120b540985188c5e5498",
      "parents": [
        "5d57eeb52ae71a03c8e083a9b0a818a9b63ca440"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Apr 09 14:09:46 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 09 17:21:22 2009 -0700"
      },
      "message": "ERR_PTR() dereference in net/rds/ib.c\n\nrdma_create_id() doesn\u0027t return NULL, only ERR_PTR().\n\nFound by smatch (http://repo.or.cz/w/smatch.git).  Compile tested.\n\nregards,\ndan carpenter\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "745cbccac3fe8cead529a1b3358e1e86a1505bfa",
      "tree": "6c865b19881dbdd64556cc1827f6966d8a646a38",
      "parents": [
        "f1cffcbfcc53b825da7d1d26244aabd8dccb24aa"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Apr 01 08:20:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 02 00:52:22 2009 -0700"
      },
      "message": "RDS: Rewrite connection cleanup, fixing oops on rmmod\n\nThis fixes a bug where a connection was unexpectedly\nnot on *any* list while being destroyed. It also\ncleans up some code duplication and regularizes some\nfunction names.\n\n* Grab appropriate lock in conn_free() and explain in comment\n* Ensure via locking that a conn is never not on either\n  a dev\u0027s list or the nodev list\n* Add rds_xx_remove_conn() to match rds_xx_add_conn()\n* Make rds_xx_add_conn() return void\n* Rename remove_{,nodev_}conns() to\n  destroy_{,nodev_}conns() and unify their implementation\n  in a helper function\n* Document lock ordering as nodev conn_lock before\n  dev_conn_lock\n\nReported-by: Yosef Etigin \u003cyosefe@voltaire.com\u003e\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
      "tree": "9a20de7d9a0688d721517c2b38d6be83956c7ca4",
      "parents": [
        "eff5f53bef75c0864a5da06bb688939092b848dc"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Tue Feb 24 15:30:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 26 23:39:30 2009 -0800"
      },
      "message": "RDS/IB: Infiniband transport\n\nRegisters as an RDS transport and an IB client, and uses IB CM\nAPI to allocate ids, queue pairs, and the rest of that fun stuff.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
