linux/drivers/infiniband
Michael J. Ruhl 5e40ac3fbd IB/hfi1: Fix a subcontext memory leak
commit 224d71f910 upstream.

The only context that frees user_exp_rcv data structures is the last
context closed (from a sub-context set).  This leaks the allocations
from the other sub-contexts.  Separate the common frees from the
specific frees and call them at the appropriate time.

Using KEDR to check for memory leaks we get:

Before test:

[leak_check] Possible leaks: 25

After test:

[leak_check] Possible leaks: 31  (6 leaked data structures)

After patch applied (before and after test have the same value)

[leak_check] Possible leaks: 25

Each leak is 192 + 13440 + 6720 = 20352 bytes per sub-context.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-05-25 15:44:38 +02:00
..
core infiniband: call ipv6 route lookup via the stub interface 2017-05-25 15:44:32 +02:00
hw IB/hfi1: Fix a subcontext memory leak 2017-05-25 15:44:38 +02:00
sw IB/rxe: Fix mem_check_range integer overflow 2017-02-14 15:25:42 -08:00
ulp IB/IPoIB: ibX: failed to create mcg debug file 2017-05-20 14:28:38 +02:00
Kconfig qedr: Add RoCE driver framework 2016-10-14 15:00:10 -04:00
Makefile IB/rdmavt: Create module framework and handle driver registration 2016-03-10 20:37:04 -05:00