Lines Matching refs:ses

111 int cryptodev_adjust_sg_array(struct csession *ses, int pagecount)  in cryptodev_adjust_sg_array()  argument
117 for (array_size = ses->array_size; array_size < pagecount; in cryptodev_adjust_sg_array()
121 ses->array_size, array_size); in cryptodev_adjust_sg_array()
122 pages = krealloc(ses->pages, array_size * sizeof(struct page *), in cryptodev_adjust_sg_array()
126 ses->pages = pages; in cryptodev_adjust_sg_array()
127 sg = krealloc(ses->sg, array_size * sizeof(struct scatterlist), in cryptodev_adjust_sg_array()
131 ses->sg = sg; in cryptodev_adjust_sg_array()
132 ses->array_size = array_size; in cryptodev_adjust_sg_array()
137 void cryptodev_release_user_pages(struct csession *ses) in cryptodev_release_user_pages() argument
141 for (i = 0; i < ses->used_pages; i++) { in cryptodev_release_user_pages()
142 if (!PageReserved(ses->pages[i])) in cryptodev_release_user_pages()
143 SetPageDirty(ses->pages[i]); in cryptodev_release_user_pages()
145 if (ses->readonly_pages == 0) in cryptodev_release_user_pages()
146 flush_dcache_page(ses->pages[i]); in cryptodev_release_user_pages()
148 ses->readonly_pages--; in cryptodev_release_user_pages()
150 put_page(ses->pages[i]); in cryptodev_release_user_pages()
152 ses->used_pages = 0; in cryptodev_release_user_pages()
158 int cryptodev_get_userbuf(struct csession *ses, in cryptodev_get_userbuf() argument
181 ses->used_pages = (src == dst) ? max(src_pagecount, dst_pagecount) in cryptodev_get_userbuf()
184 ses->readonly_pages = (src == dst) ? 0 : src_pagecount; in cryptodev_get_userbuf()
186 if (ses->used_pages > ses->array_size) { in cryptodev_get_userbuf()
187 rc = cryptodev_adjust_sg_array(ses, ses->used_pages); in cryptodev_get_userbuf()
197 rc = __cryptodev_get_userbuf(src, src_len, 1, ses->used_pages, in cryptodev_get_userbuf()
198 ses->pages, ses->sg, task, mm); in cryptodev_get_userbuf()
203 (*src_sg) = (*dst_sg) = ses->sg; in cryptodev_get_userbuf()
211 rc = __cryptodev_get_userbuf(src, src_len, 0, ses->readonly_pages, in cryptodev_get_userbuf()
212 ses->pages, ses->sg, task, mm); in cryptodev_get_userbuf()
217 *src_sg = ses->sg; in cryptodev_get_userbuf()
222 ses->used_pages - ses->readonly_pages; in cryptodev_get_userbuf()
223 struct page **dst_pages = ses->pages + ses->readonly_pages; in cryptodev_get_userbuf()
224 *dst_sg = ses->sg + ses->readonly_pages; in cryptodev_get_userbuf()
230 cryptodev_release_user_pages(ses); /* FIXME: use __release_userbuf(src, ...) */ in cryptodev_get_userbuf()