sgl->cur = 0;
 
                if (sg)
-                       scatterwalk_sg_chain(sg, MAX_SGL_ENTS + 1, sgl->sg);
+                       sg_chain(sg, MAX_SGL_ENTS + 1, sgl->sg);
 
                list_add_tail(&sgl->list, &ctx->tsgl);
        }
 
 
        sg_init_table(pctx->src, 2);
        sg_set_buf(pctx->src, odata, 16);
-       scatterwalk_sg_chain(pctx->src, 2, req->src);
+       sg_chain(pctx->src, 2, req->src);
 
        dst = pctx->src;
        if (req->src != req->dst) {
                sg_init_table(pctx->dst, 2);
                sg_set_buf(pctx->dst, odata, 16);
-               scatterwalk_sg_chain(pctx->dst, 2, req->dst);
+               sg_chain(pctx->dst, 2, req->dst);
                dst = pctx->dst;
        }
 
 
        sg_init_table(pctx->src, 2);
        sg_set_buf(pctx->src, authtag, 16);
-       scatterwalk_sg_chain(pctx->src, 2, req->src);
+       sg_chain(pctx->src, 2, req->src);
 
        dst = pctx->src;
        if (req->src != req->dst) {
                sg_init_table(pctx->dst, 2);
                sg_set_buf(pctx->dst, authtag, 16);
-               scatterwalk_sg_chain(pctx->dst, 2, req->dst);
+               sg_chain(pctx->dst, 2, req->dst);
                dst = pctx->dst;
        }
 
 
        sg_set_buf(pctx->src, pctx->auth_tag, sizeof(pctx->auth_tag));
        sg = scatterwalk_ffwd(pctx->src + 1, req->src, req->assoclen);
        if (sg != pctx->src + 1)
-               scatterwalk_sg_chain(pctx->src, 2, sg);
+               sg_chain(pctx->src, 2, sg);
 
        if (req->src != req->dst) {
                sg_init_table(pctx->dst, 3);
                sg_set_buf(pctx->dst, pctx->auth_tag, sizeof(pctx->auth_tag));
                sg = scatterwalk_ffwd(pctx->dst + 1, req->dst, req->assoclen);
                if (sg != pctx->dst + 1)
-                       scatterwalk_sg_chain(pctx->dst, 2, sg);
+                       sg_chain(pctx->dst, 2, sg);
        }
 }
 
 
                        sg_init_table(ctx->bufsl, nsg);
                        sg_set_buf(ctx->bufsl, ctx->buflast, ctx->buflast_len);
                        if (nsg > 1)
-                               scatterwalk_sg_chain(ctx->bufsl, nsg,
-                                               req->src);
+                               sg_chain(ctx->bufsl, nsg, req->src);
                        ctx->sg = ctx->bufsl;
                } else
                        ctx->sg = req->src;
 
        if (rctx->buflen) {
                sg_init_table(rctx->sg, 2);
                sg_set_buf(rctx->sg, rctx->tmpbuf, rctx->buflen);
-               scatterwalk_sg_chain(rctx->sg, 2, req->src);
+               sg_chain(rctx->sg, 2, req->src);
                req->src = rctx->sg;
        }
 
 
                sg_init_table(rctx->in_sg_chain, 2);
                sg_set_buf(rctx->in_sg_chain, rctx->rembuf, rctx->buf_cnt);
 
-               scatterwalk_sg_chain(rctx->in_sg_chain, 2, req->src);
+               sg_chain(rctx->in_sg_chain, 2, req->src);
 
                rctx->total = req->nbytes + rctx->buf_cnt;
                rctx->in_sg = rctx->in_sg_chain;
 
                sg_init_table(req_ctx->bufsl, nsg);
                sg_set_buf(req_ctx->bufsl, req_ctx->buf, req_ctx->nbuf);
                if (nsg > 1)
-                       scatterwalk_sg_chain(req_ctx->bufsl, 2, areq->src);
+                       sg_chain(req_ctx->bufsl, 2, areq->src);
                req_ctx->psrc = req_ctx->bufsl;
        } else
                req_ctx->psrc = areq->src;
 
 #include <linux/scatterlist.h>
 #include <linux/sched.h>
 
-static inline void scatterwalk_sg_chain(struct scatterlist *sg1, int num,
-                                       struct scatterlist *sg2)
-{
-       sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0);
-       sg1[num - 1].page_link &= ~0x02;
-       sg1[num - 1].page_link |= 0x01;
-}
-
 static inline void scatterwalk_crypto_chain(struct scatterlist *head,
                                            struct scatterlist *sg,
                                            int chain, int num)
        }
 
        if (sg)
-               scatterwalk_sg_chain(head, num, sg);
+               sg_chain(head, num, sg);
        else
                sg_mark_end(head);
 }