lkml.org 
[lkml]   [2019]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 42/90] IB/hfi1: Validate page aligned for a given virtual address
    Date
    [ Upstream commit 97736f36dbebf2cda2799db3b54717ba5b388255 ]

    User applications can register memory regions for TID buffers that are not
    aligned on page boundaries. Hfi1 is expected to pin those pages in memory
    and cache the pages with mmu_rb. The rb tree will fail to insert pages
    that are not aligned correctly.

    Validate whether a given virtual address is page aligned before pinning.

    Fixes: 7e7a436ecb6e ("staging/hfi1: Add TID entry program function body")
    Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Kamenee Arumugam <kamenee.arumugam@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/hw/hfi1/user_exp_rcv.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.c b/drivers/infiniband/hw/hfi1/user_exp_rcv.c
    index dbe7d14a5c76..4e986ca4dd35 100644
    --- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c
    +++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c
    @@ -324,6 +324,9 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd,
    u32 *tidlist = NULL;
    struct tid_user_buf *tidbuf;

    + if (!PAGE_ALIGNED(tinfo->vaddr))
    + return -EINVAL;
    +
    tidbuf = kzalloc(sizeof(*tidbuf), GFP_KERNEL);
    if (!tidbuf)
    return -ENOMEM;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-06-24 12:13    [W:4.264 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site