]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
octeontx2-pf: fix double free in rvu_rep_rsrc_init()
authorDawei Feng <dawei.feng@seu.edu.cn>
Wed, 13 May 2026 15:13:20 +0000 (23:13 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 15 May 2026 01:18:09 +0000 (18:18 -0700)
commite8fb3de2a8effcaf62bec2c56b93d8bb480371d1
tree77bf1451497607cfdaaf1aba5241c41516a0d9a2
parentf84eca5817390257cef78013d0112481c503b4a3
octeontx2-pf: fix double free in rvu_rep_rsrc_init()

rvu_rep_rsrc_init() allocates queue memory before calling
otx2_init_hw_resources(). When hardware resource setup fails,
otx2_init_hw_resources() already unwinds the partially initialized
SQ, CQ, and aura state before returning an error. The representor
error path then calls otx2_free_hw_resources() again and can free
the same resources a second time.

Fix this by splitting the cleanup labels so that a failure from
otx2_init_hw_resources() only releases queue memory. Keep the
otx2_free_hw_resources() call for failures that happen after
hardware resource initialization completed successfully.

The bug was first flagged by an experimental analysis tool we are
developing for kernel memory-management bugs while analyzing
v6.13-rc1. The tool is still under development and is not yet publicly
available. Manual inspection confirms that the bug is still
present in v7.1-rc3.

Runtime validation was not performed because reproducing this path
requires OcteonTX2 representor hardware.

Fixes: 3937b7308d4f ("octeontx2-pf: Create representor netdev")
Cc: stable@vger.kernel.org # v6.13+
Signed-off-by: Zilin Guan <zilin@seu.edu.cn>
Signed-off-by: Dawei Feng <dawei.feng@seu.edu.cn>
Reviewed-by: Geetha sowjanya <gakula@marvell.com>
Link: https://patch.msgid.link/20260513151320.213260-1-dawei.feng@seu.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeontx2/nic/rep.c