)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b305b5c17f8dfad5b635a61007feec1fb3e67001",
      "old_mode": 33188,
      "old_path": "drivers/infiniband/core/cma.c",
      "new_id": "38867a46d39ebb0caa343d4ea49ac2299fc3ec03",
      "new_mode": 33188,
      "new_path": "drivers/infiniband/core/cma.c"
    },
    {
      "type": "modify",
      "old_id": "f1cbd26a9de0f6ee203b5053cdf467093435b54c",
      "old_mode": 33188,
      "old_path": "drivers/infiniband/core/ucma.c",
      "new_id": "b2e16c332d5b038703e083057339da6cd0434749",
      "new_mode": 33188,
      "new_path": "drivers/infiniband/core/ucma.c"
    },
    {
      "type": "modify",
      "old_id": "3a39c55d2b9a9ae842fa8feec85e76e726f977fa",
      "old_mode": 33188,
      "old_path": "include/rdma/ib_addr.h",
      "new_id": "fa0d52b8e622cd55c0cc1f8f58e0e9e53231c969",
      "new_mode": 33188,
      "new_path": "include/rdma/ib_addr.h"
    },
    {
      "type": "modify",
      "old_id": "536ebe5d3f6bc1003a8fa7beef137345d7dea0a3",
      "old_mode": 33188,
      "old_path": "net/rds/ib.c",
      "new_id": "3b8992361042f62c0deca22b542e458670667782",
      "new_mode": 33188,
      "new_path": "net/rds/ib.c"
    },
    {
      "type": "modify",
      "old_id": "db224f7c2937115612f5b572725035951da56aca",
      "old_mode": 33188,
      "old_path": "net/rds/iw.c",
      "new_id": "b28fa8525b24029ffdfb026ee19a76d3597fc668",
      "new_mode": 33188,
      "new_path": "net/rds/iw.c"
    }
  ]
}
