lkml.org 
[lkml]   [2020]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 036/639] IB/rxe: replace kvfree with vfree
    Date
    From: Zhu Yanjun <yanjun.zhu@oracle.com>

    [ 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 | 4 ++--
    drivers/infiniband/sw/rxe/rxe_qp.c | 5 +++--
    2 files changed, 5 insertions(+), 4 deletions(-)

    diff --git a/drivers/infiniband/sw/rxe/rxe_cq.c b/drivers/infiniband/sw/rxe/rxe_cq.c
    index 2ee4b08b00ea4..a57276f2cb849 100644
    --- a/drivers/infiniband/sw/rxe/rxe_cq.c
    +++ b/drivers/infiniband/sw/rxe/rxe_cq.c
    @@ -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;
    }
    diff --git a/drivers/infiniband/sw/rxe/rxe_qp.c b/drivers/infiniband/sw/rxe/rxe_qp.c
    index c58452daffc74..230697fa31fe3 100644
    --- a/drivers/infiniband/sw/rxe/rxe_qp.c
    +++ b/drivers/infiniband/sw/rxe/rxe_qp.c
    @@ -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;
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-01-24 12:44    [W:3.391 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site