lkml.org 
[lkml]   [2015]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 132/180] IB/core: disallow registering 0-sized memory region
    Date
    3.16.7-ckt11 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Yann Droneaud <ydroneaud@opteya.com>

    commit 8abaae62f3fdead8f4ce0ab46b4ab93dee39bab2 upstream.

    If ib_umem_get() is called with a size equal to 0 and an
    non-page aligned address, one page will be pinned and a
    0-sized umem will be returned to the caller.

    This should not be allowed: it's not expected for a memory
    region to have a size equal to 0.

    This patch adds a check to explicitly refuse to register
    a 0-sized region.

    Link: http://mid.gmane.org/cover.1428929103.git.ydroneaud@opteya.com
    Cc: Shachar Raindel <raindel@mellanox.com>
    Cc: Jack Morgenstein <jackm@mellanox.com>
    Cc: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    drivers/infiniband/core/umem.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
    index 0b2584dbeba0..9cc7af4bca94 100644
    --- a/drivers/infiniband/core/umem.c
    +++ b/drivers/infiniband/core/umem.c
    @@ -94,6 +94,9 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
    if (dmasync)
    dma_set_attr(DMA_ATTR_WRITE_BARRIER, &attrs);

    + if (!size)
    + return ERR_PTR(-EINVAL);
    +
    /*
    * If the combination of the addr and size requested for this memory
    * region causes an integer overflow, return error.

    \
     
     \ /
      Last update: 2015-05-07 12:41    [W:4.249 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site