linux/drivers/infiniband/sw/rdmavt
Mike Marciniszyn 56c8ca510d IB/rdmvat: Fix double vfree() in rvt_create_qp() error path
The unwind logic for creating a user QP has a double vfree
of the non-shared receive queue when handling a "too many qps"
failure.

The code unwinds the mmmap info by decrementing a reference
count which will call rvt_release_mmap_info() which in turn
does the vfree() of the r_rq.wq.  The unwind code then does
the same free.

Fix by guarding the vfree() with the same test that is done
in close and only do the vfree() if qp->ip is NULL.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-08-22 15:00:42 -04:00
..
ah.c IB/rdmavt: Clean up comments and add more documentation 2016-03-10 20:38:08 -05:00
ah.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
cq.c IB/rdmavt: Add missing spin_lock_init call for rdi->n_cqs_lock 2016-08-02 16:00:58 -04:00
cq.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
dma.c IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
dma.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
Kconfig IB/rdmavt: Disable by default 2016-08-03 21:03:31 -04:00
mad.c IB/rdmavt: Clean up comments and add more documentation 2016-03-10 20:38:08 -05:00
mad.h IB/rdmavt: Clean up distinction between port number and index 2016-03-10 20:37:31 -05:00
Makefile IB/rdmavt: Add support for tracing events 2016-03-10 20:37:24 -05:00
mcast.c IB/rdmavt: Clean up comments and add more documentation 2016-03-10 20:38:08 -05:00
mcast.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
mmap.c IB/rdmavt: Remove unnecessary exported functions 2016-03-10 20:38:10 -05:00
mmap.h IB/rdmavt: Remove unnecessary exported functions 2016-03-10 20:38:10 -05:00
mr.c IB/rdmavt: Add mechanism to invalidate MR keys 2016-08-02 16:00:58 -04:00
mr.h IB/rdmavt: Add support for ib_map_mr_sg 2016-08-02 16:00:58 -04:00
pd.c IB/rdmavt: Clean up comments and add more documentation 2016-03-10 20:38:08 -05:00
pd.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
qp.c IB/rdmvat: Fix double vfree() in rvt_create_qp() error path 2016-08-22 15:00:42 -04:00
qp.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
srq.c IB/rdmavt: Remove unnecessary exported functions 2016-03-10 20:38:10 -05:00
srq.h IB/rdmavt: Add srq functionality to rdmavt 2016-03-10 20:37:30 -05:00
trace.c IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
trace.h IB/rdmavt: Add trace and error print statements in post_one_wr 2016-03-10 20:38:08 -05:00
vt.c IB/rdmavt: Add support for ib_map_mr_sg 2016-08-02 16:00:58 -04:00
vt.h IB/rdmavt: Remove unnecessary exported functions 2016-03-10 20:38:10 -05:00