)]}'
{
  "commit": "1affc01fdc6035189a5ab2a24948c9419ee0ecf2",
  "tree": "76e02db82c9f4632b82f1eacdd9984bf7ca9a02f",
  "parents": [
    "eca4cf12acda306f851f6d2a05b1c9ef62cf0e81"
  ],
  "author": {
    "name": "Edwin Peer",
    "email": "edwin.peer@broadcom.com",
    "time": "Sun Sep 12 12:34:48 2021 -0400"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Sep 13 12:31:13 2021 +0100"
  },
  "message": "bnxt_en: make bnxt_free_skbs() safe to call after bnxt_free_mem()\n\nThe call to bnxt_free_mem(..., false) in the bnxt_half_open_nic() error\npath will deallocate ring descriptor memory via bnxt_free_?x_rings(),\nbut because irq_re_init is false, the ring info itself is not freed.\n\nTo simplify error paths, deallocation functions have generally been\nwritten to be safe when called on unallocated memory. It should always\nbe safe to call dev_close(), which calls bnxt_free_skbs() a second time,\neven in this semi- allocated ring state.\n\nCalling bnxt_free_skbs() a second time with the rings already freed will\ncause NULL pointer dereference.  Fix it by checking the rings are valid\nbefore proceeding in bnxt_free_tx_skbs() and\nbnxt_free_one_rx_ring_skbs().\n\nFixes: 975bc99a4a39 (\"bnxt_en: Refactor bnxt_free_rx_skbs().\")\nSigned-off-by: Edwin Peer \u003cedwin.peer@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmichael.chan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8b0a2ae1367c840b71d8c659ec71f8aa01d1a0fc",
      "old_mode": 33188,
      "old_path": "drivers/net/ethernet/broadcom/bnxt/bnxt.c",
      "new_id": "9f9806f1c0fcf40edc8c479050ea3856f1e5ab4f",
      "new_mode": 33188,
      "new_path": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
    }
  ]
}
