From: Stephen Rothwell Date: Thu, 5 Nov 2015 01:03:04 +0000 (+1100) Subject: Merge remote-tracking branch 'rdma/for-next' X-Git-Tag: KARO-TXUL-2015-12-04~97 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-linux.git;a=commitdiff_plain;h=3242dbf9e389684c177d456f50616d306177bc56 Merge remote-tracking branch 'rdma/for-next' Initial roundup of 4.4 merge window candidates - "Checksum offload support in user space" enablement - Misc cxgb4 fixes, add T6 support - Misc usnic fixes - 32 bit build warning fixes - Misc ocrdma fixes - Multicast loopback prevention extension - Extend the GID cache to store and return attributes of GIDs - Misc iSER updates - iSER clustering update - Network NameSpace support for rdma CM - Work Request cleanup series - New Memory Registration API --- 3242dbf9e389684c177d456f50616d306177bc56 diff --cc drivers/net/ethernet/chelsio/cxgb4/cxgb4.h index 634e50c8c5ef,11045ec8d94c..6f268518b37f --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h @@@ -47,8 -47,8 +47,9 @@@ #include #include #include +#include #include + #include "t4_chip_type.h" #include "cxgb4_uld.h" #define CH_WARN(adap, fmt, ...) dev_warn(adap->pdev_dev, fmt, ## __VA_ARGS__) diff --cc net/rds/iw_rdma.c index d3d4454ffc84,47bd68451ff7..b09a40c1adce --- a/net/rds/iw_rdma.c +++ b/net/rds/iw_rdma.c @@@ -75,10 -74,10 +74,10 @@@ struct rds_iw_mr_pool int max_pages; }; -static int rds_iw_flush_mr_pool(struct rds_iw_mr_pool *pool, int free_all); +static void rds_iw_flush_mr_pool(struct rds_iw_mr_pool *pool, int free_all); static void rds_iw_mr_pool_flush_worker(struct work_struct *work); - static int rds_iw_init_fastreg(struct rds_iw_mr_pool *pool, struct rds_iw_mr *ibmr); - static int rds_iw_map_fastreg(struct rds_iw_mr_pool *pool, + static int rds_iw_init_reg(struct rds_iw_mr_pool *pool, struct rds_iw_mr *ibmr); + static int rds_iw_map_reg(struct rds_iw_mr_pool *pool, struct rds_iw_mr *ibmr, struct scatterlist *sg, unsigned int nents); static void rds_iw_free_fastreg(struct rds_iw_mr_pool *pool, struct rds_iw_mr *ibmr); diff --cc net/sunrpc/xprtrdma/svc_rdma_recvfrom.c index f0c3ff67ca98,cb0991345816..ff4f01e527ec --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c @@@ -235,17 -234,14 +235,14 @@@ int rdma_read_chunk_frmr(struct svcxprt ctxt->direction = DMA_FROM_DEVICE; ctxt->frmr = frmr; - pages_needed = min_t(int, pages_needed, xprt->sc_frmr_pg_list_len); - read = min_t(int, (pages_needed << PAGE_SHIFT) - *page_offset, - rs_length); + nents = min_t(unsigned int, nents, xprt->sc_frmr_pg_list_len); - read = min_t(int, nents << PAGE_SHIFT, rs_length); ++ read = min_t(int, (nents << PAGE_SHIFT) - *page_offset, rs_length); - frmr->kva = page_address(rqstp->rq_arg.pages[pg_no]); frmr->direction = DMA_FROM_DEVICE; frmr->access_flags = (IB_ACCESS_LOCAL_WRITE|IB_ACCESS_REMOTE_WRITE); - frmr->map_len = pages_needed << PAGE_SHIFT; - frmr->page_list_len = pages_needed; + frmr->sg_nents = nents; - for (pno = 0; pno < pages_needed; pno++) { + for (pno = 0; pno < nents; pno++) { int len = min_t(int, rs_length, PAGE_SIZE - pg_off); head->arg.pages[pg_no] = rqstp->rq_arg.pages[pg_no];