)]}'
{
  "commit": "926ede0c85e1e57c97d64d9612455267d597bb2c",
  "tree": "63151314f9794cb49cad700578c2c6ae6e8df31b",
  "parents": [
    "ed48a84a72fefb20a82dd90a7caa7807e90c6f66"
  ],
  "author": {
    "name": "Zilin Guan",
    "email": "zilin@seu.edu.cn",
    "time": "Wed Jan 28 15:44:38 2026 +0000"
  },
  "committer": {
    "name": "Jakub Kicinski",
    "email": "kuba@kernel.org",
    "time": "Thu Jan 29 19:27:35 2026 -0800"
  },
  "message": "net: liquidio: Initialize netdev pointer before queue setup\n\nIn setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq().\nHowever, the pointer to this structure is stored in oct-\u003eprops[i].netdev\nonly after the calls to netif_set_real_num_rx_queues() and\nnetif_set_real_num_tx_queues().\n\nIf either of these functions fails, setup_nic_devices() returns an error\nwithout freeing the allocated netdev. Since oct-\u003eprops[i].netdev is still\nNULL at this point, the cleanup function liquidio_destroy_nic_device()\nwill fail to find and free the netdev, resulting in a memory leak.\n\nFix this by initializing oct-\u003eprops[i].netdev before calling the queue\nsetup functions. This ensures that the netdev is properly accessible for\ncleanup in case of errors.\n\nCompile tested only. Issue found using a prototype static analysis tool\nand code review.\n\nFixes: c33c997346c3 (\"liquidio: enhanced ethtool --set-channels feature\")\nSigned-off-by: Zilin Guan \u003czilin@seu.edu.cn\u003e\nReviewed-by: Kory Maincent \u003ckory.maincent@bootlin.com\u003e\nLink: https://patch.msgid.link/20260128154440.278369-2-zilin@seu.edu.cn\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0732440eeacd62e84d6840155cc99fafd12878a3",
      "old_mode": 33188,
      "old_path": "drivers/net/ethernet/cavium/liquidio/lio_main.c",
      "new_id": "1f10b1b22a1e4ad9c616f75c5817d53965d276c9",
      "new_mode": 33188,
      "new_path": "drivers/net/ethernet/cavium/liquidio/lio_main.c"
    }
  ]
}
