diff options
author | Colin Ian King <colin.king@canonical.com> | 2015-06-05 15:47:27 +0100 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2015-06-11 01:12:28 -0400 |
commit | 4dc544427991e3cef38ce3ae124b7e6557063bd3 (patch) | |
tree | c90200677ad7ab12d77d3178a15e94643532783b /drivers/infiniband | |
parent | fc3aa45b63101a11859e171aed9622d35cb02d16 (diff) | |
download | lwn-4dc544427991e3cef38ce3ae124b7e6557063bd3.tar.gz lwn-4dc544427991e3cef38ce3ae124b7e6557063bd3.zip |
RDMA/ocrdma: fix double free on pd
A reorganisation of the PD allocation and deallocation in commit
9ba1377daa ("RDMA/ocrdma: Move PD resource management to driver.")
introduced a double free on pd, as detected by static analysis by
smatch:
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:682 ocrdma_alloc_pd()
error: double free of 'pd'^
The original call to ocrdma_mbx_dealloc_pd() (which does not kfree
pd) was replaced with a call to _ocrdma_dealloc_pd() (which does
kfree pd). The kfree following this call causes the double free,
so just remove it to fix the problem.
Fixes: 9ba1377daa ("RDMA/ocrdma: Move PD resource management to driver.")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-By: Devesh Sharma <devesh.sharma@avagotech.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c index cf1f515efda8..19566907b4d2 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c @@ -684,7 +684,6 @@ err: ocrdma_release_ucontext_pd(uctx); } else { status = _ocrdma_dealloc_pd(dev, pd); - kfree(pd); } exit: return ERR_PTR(status); |