]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
IB/rxe: replace kvfree with vfree
authorZhu Yanjun <yanjun.zhu@oracle.com>
Sun, 30 Sep 2018 05:57:42 +0000 (01:57 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jan 2020 13:49:56 +0000 (14:49 +0100)
[ Upstream commit 721ad7e643f7002efa398838693f90284ea216d1 ]

The buf is allocated by vmalloc_user in the function rxe_queue_init.
So it is better to free it by vfree.

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/sw/rxe/rxe_cq.c
drivers/infiniband/sw/rxe/rxe_qp.c

index 2ee4b08b00ea4ce87e5d526597fc3e8796cb31cc..a57276f2cb84938ca8b48904878e285e3d5165b6 100644 (file)
@@ -30,7 +30,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-
+#include <linux/vmalloc.h>
 #include "rxe.h"
 #include "rxe_loc.h"
 #include "rxe_queue.h"
@@ -97,7 +97,7 @@ int rxe_cq_from_init(struct rxe_dev *rxe, struct rxe_cq *cq, int cqe,
        err = do_mmap_info(rxe, uresp ? &uresp->mi : NULL, context,
                           cq->queue->buf, cq->queue->buf_size, &cq->queue->ip);
        if (err) {
-               kvfree(cq->queue->buf);
+               vfree(cq->queue->buf);
                kfree(cq->queue);
                return err;
        }
index c58452daffc7449875f362269b7cd51bb9f8803e..230697fa31fe36705cc9b5c6d05e2d4d963ebc36 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/skbuff.h>
 #include <linux/delay.h>
 #include <linux/sched.h>
+#include <linux/vmalloc.h>
 
 #include "rxe.h"
 #include "rxe_loc.h"
@@ -247,7 +248,7 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp,
                           &qp->sq.queue->ip);
 
        if (err) {
-               kvfree(qp->sq.queue->buf);
+               vfree(qp->sq.queue->buf);
                kfree(qp->sq.queue);
                return err;
        }
@@ -300,7 +301,7 @@ static int rxe_qp_init_resp(struct rxe_dev *rxe, struct rxe_qp *qp,
                                   qp->rq.queue->buf, qp->rq.queue->buf_size,
                                   &qp->rq.queue->ip);
                if (err) {
-                       kvfree(qp->rq.queue->buf);
+                       vfree(qp->rq.queue->buf);
                        kfree(qp->rq.queue);
                        return err;
                }