Commit 721ad7e6 authored by Zhu Yanjun's avatar Zhu Yanjun Committed by Jason Gunthorpe
Browse files

IB/rxe: replace kvfree with vfree



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

Fixes: 8700e3e7 ("Soft RoCE driver")
Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarZhu Yanjun <yanjun.zhu@oracle.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 65f07f5a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;
	}
+3 −2
Original line number Diff line number Diff line
@@ -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"
@@ -257,7 +258,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;
	}
@@ -310,7 +311,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;
		}