)]}'
{
  "commit": "3977026462314dfbb237adf6a964d0f683b8e45d",
  "tree": "d9fbd218ac4a742371468a67db1a738f52af5a83",
  "parents": [
    "41c75a19bf4a0102f49763a686fb7e39780349f3"
  ],
  "author": {
    "name": "Bryan O\u0027Sullivan",
    "email": "bos@pathscale.com",
    "time": "Tue May 23 11:32:37 2006 -0700"
  },
  "committer": {
    "name": "Roland Dreier",
    "email": "rolandd@cisco.com",
    "time": "Tue May 23 13:29:35 2006 -0700"
  },
  "message": "IB/ipath: fix null deref during rdma ops\n\nThe problem was that node A\u0027s sending thread, which handles sending RDMA\nread response data, would write the trigger word, the last packet would\nbe sent, node B would send a new RDMA read request, node A\u0027s interrupt\nhandler would initialize s_rdma_sge, then node A\u0027s sending thread would\nupdate s_rdma_sge.  This didn\u0027t happen very often naturally but was more\nfrequent with 1 byte RDMA reads.  Rather than adding more locking or\nincreasing the QP structure size and copying sge data, I modified the\ncopy routine to update the pointers before writing the trigger word to\navoid the update race.\n\nSigned-off-by: Ralph Campbell \u003cralphc@pathscale.com\u003e\nSigned-off-by: Bryan O\u0027Sullivan \u003cbos@pathscale.com\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9cb5258ffed95330f9f739100840c139588c3d33",
      "old_mode": 33188,
      "old_path": "drivers/infiniband/hw/ipath/ipath_layer.c",
      "new_id": "9ec4ac77b87f88df622d5b1d3bc3acf421d3c9b1",
      "new_mode": 33188,
      "new_path": "drivers/infiniband/hw/ipath/ipath_layer.c"
    }
  ]
}
