ibmvnic: free reset-work-item when flushing
authorSukadev Bhattiprolu <sukadev@linux.ibm.com>
Fri, 25 Feb 2022 06:23:51 +0000 (22:23 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Mar 2022 18:12:48 +0000 (19:12 +0100)
commit 8d0657f39f487d904fca713e0bc39c2707382553 upstream.

Fix a tiny memory leak when flushing the reset work queue.

Fixes: 2770a7984db5 ("ibmvnic: Introduce hard reset recovery")
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/ibm/ibmvnic.c

index d948e30..52eb662 100644 (file)
@@ -2606,8 +2606,10 @@ static int ibmvnic_reset(struct ibmvnic_adapter *adapter,
         * flush reset queue and process this reset
         */
        if (adapter->force_reset_recovery && !list_empty(&adapter->rwi_list)) {
-               list_for_each_safe(entry, tmp_entry, &adapter->rwi_list)
+               list_for_each_safe(entry, tmp_entry, &adapter->rwi_list) {
                        list_del(entry);
+                       kfree(list_entry(entry, struct ibmvnic_rwi, list));
+               }
        }
        rwi->reset_reason = reason;
        list_add_tail(&rwi->list, &adapter->rwi_list);