lkml.org 
[lkml]   [2017]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 11/22] RDS: Make use of the new sg_map helper function
    Straightforward conversion except there's no error path, so we WARN if
    the sg_map fails.

    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    ---
    net/rds/ib_recv.c | 17 ++++++++++++++---
    1 file changed, 14 insertions(+), 3 deletions(-)

    diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
    index e10624a..7f8fa99 100644
    --- a/net/rds/ib_recv.c
    +++ b/net/rds/ib_recv.c
    @@ -801,9 +801,20 @@ static void rds_ib_cong_recv(struct rds_connection *conn,
    to_copy = min(RDS_FRAG_SIZE - frag_off, PAGE_SIZE - map_off);
    BUG_ON(to_copy & 7); /* Must be 64bit aligned. */

    - addr = kmap_atomic(sg_page(&frag->f_sg));
    + addr = sg_map(&frag->f_sg, SG_KMAP_ATOMIC);
    + if (IS_ERR(addr)) {
    + /*
    + * This should really never happen unless
    + * the code is changed to use memory that is
    + * not mappable in the sg. Seeing there doesn't
    + * seem to be any error path out of here,
    + * we can only WARN.
    + */
    + WARN(1, "Non-mappable memory used in sg!");
    + return;
    + }

    - src = addr + frag->f_sg.offset + frag_off;
    + src = addr + frag_off;
    dst = (void *)map->m_page_addrs[map_page] + map_off;
    for (k = 0; k < to_copy; k += 8) {
    /* Record ports that became uncongested, ie
    @@ -811,7 +822,7 @@ static void rds_ib_cong_recv(struct rds_connection *conn,
    uncongested |= ~(*src) & *dst;
    *dst++ = *src++;
    }
    - kunmap_atomic(addr);
    + sg_unmap(&frag->f_sg, addr, SG_KMAP_ATOMIC);

    copied += to_copy;

    --
    2.1.4
    \
     
     \ /
      Last update: 2017-04-14 00:11    [W:4.311 / U:1.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site