s390/qeth: fix memory leak after failed TX Buffer allocation
authorJulian Wiedmann <jwi@linux.ibm.com>
Tue, 9 Mar 2021 16:52:18 +0000 (17:52 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 Mar 2021 00:14:53 +0000 (16:14 -0800)
commite7a36d27f6b9f389e41d8189a8a08919c6835732
treef683d7bff3e97ef1e83168390f80c9bf92b3647f
parentb005c9ef5adaf1357b7faa977330eaae18647300
s390/qeth: fix memory leak after failed TX Buffer allocation

When qeth_alloc_qdio_queues() fails to allocate one of the buffers that
back an Output Queue, the 'out_freeoutqbufs' path will free all
previously allocated buffers for this queue. But it misses to free the
half-finished queue struct itself.

Move the buffer allocation into qeth_alloc_output_queue(), and deal with
such errors internally.

Fixes: 0da9581ddb0f ("qeth: exploit asynchronous delivery of storage blocks")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core_main.c