Hi,
ibmveth_open() has two independent unwind holes after the logical LAN
is set up. Neither needs the MQ RX series. This posting is against
current net.git.
Patch 1 issues h_free_logical_lan() on every post-register failure.
A pool allocation failure jumped to out_free_buffer_pools without
the hypercall, so PHYP still owned the buffer-list page when it was
unmapped. request_irq() failure already issued H_FREE before taking
the same label.
Fixes: d43732ce021f ("ibmveth: properly unwind on init errors")
Patch 2 gives TX LTBs their own walk. out_free_buffer_pools reuses
open()'s loop index, so after the pool unwind i is -1 and the TX
buffers leak. request_irq() failure has the same leak. The TX-fail
goto on that walk also skips dma_unmap of the filter list
(pre-existing since the LTB was added).
Fixes: d926793c1de9 ("ibmveth: Implement multi queue on xmit")
The MQ RX series on net-next keeps the helper versions of these
guards and does not depend on this pair. If both land, keep the
helpers in that series; these two patches are the current
single-queue open-fail path only.
Mingming
Mingming Cao (2):
ibmveth: h_free logical LAN on open-fail after register
ibmveth: fix TX LTB and filter unwind on open-fail
drivers/net/ethernet/ibm/ibmveth.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
base-commit: 11536ee3d3e0b1bd35b6f3f8df55a6053eb0c71d
--
2.50.1 (Apple Git-155)