From 5cc9796e00e2a517abcedb47363ce2977a974a3d Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 6 Jul 2010 16:23:58 +0200 Subject: [PATCH] Corrected issue in assigning other pages than the first. --- cryptodev_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cryptodev_main.c b/cryptodev_main.c index 8e36f19..dffbead 100644 --- a/cryptodev_main.c +++ b/cryptodev_main.c @@ -491,7 +491,7 @@ __crypto_run_std(struct csession *ses_ptr, struct crypt_op *cop) static int __get_userbuf(uint8_t *addr, uint32_t len, int pgcount, struct page **pg, struct scatterlist *sg) { - int ret, pglen; + int ret, pglen, i = 0; struct scatterlist *sgp; down_write(¤t->mm->mmap_sem); @@ -504,12 +504,12 @@ static int __get_userbuf(uint8_t *addr, uint32_t len, sg_init_table(sg, pgcount); pglen = MIN(PAGE_SIZE - PAGEOFFSET(addr), len); - sg_set_page(sg, pg[0], pglen, PAGEOFFSET(addr)); + sg_set_page(sg, pg[i++], pglen, PAGEOFFSET(addr)); len -= pglen; for (sgp = sg_next(sg); len; sgp = sg_next(sgp)) { pglen = MIN(PAGE_SIZE, len); - sg_set_page(sgp, *(pg++), pglen, 0); + sg_set_page(sgp, pg[i++], pglen, 0); len -= pglen; } sg_mark_end(sg_last(sg, pgcount)); -- 2.11.4.GIT