]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: liquidio: Initialize netdev pointer before queue setup
authorZilin Guan <zilin@seu.edu.cn>
Wed, 28 Jan 2026 15:44:38 +0000 (15:44 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 30 Jan 2026 03:27:35 +0000 (19:27 -0800)
commit926ede0c85e1e57c97d64d9612455267d597bb2c
tree63151314f9794cb49cad700578c2c6ae6e8df31b
parented48a84a72fefb20a82dd90a7caa7807e90c6f66
net: liquidio: Initialize netdev pointer before queue setup

In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq().
However, the pointer to this structure is stored in oct->props[i].netdev
only after the calls to netif_set_real_num_rx_queues() and
netif_set_real_num_tx_queues().

If either of these functions fails, setup_nic_devices() returns an error
without freeing the allocated netdev. Since oct->props[i].netdev is still
NULL at this point, the cleanup function liquidio_destroy_nic_device()
will fail to find and free the netdev, resulting in a memory leak.

Fix this by initializing oct->props[i].netdev before calling the queue
setup functions. This ensures that the netdev is properly accessible for
cleanup in case of errors.

Compile tested only. Issue found using a prototype static analysis tool
and code review.

Fixes: c33c997346c3 ("liquidio: enhanced ethtool --set-channels feature")
Signed-off-by: Zilin Guan <zilin@seu.edu.cn>
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Link: https://patch.msgid.link/20260128154440.278369-2-zilin@seu.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/cavium/liquidio/lio_main.c