Skip to content

Commit b3315ba

Browse files
committed
Merge tag 'tee-fix-for-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee into arm/fixes
TEE shared memory update for 7.0 Remove refcounting of kernel pages in register_shm_helper() to support slab allocations. * tag 'tee-fix-for-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee: tee: shm: Remove refcounting of kernel pages Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents ffe6989 + 08d9a45 commit b3315ba

1 file changed

Lines changed: 0 additions & 27 deletions

File tree

drivers/tee/tee_shm.c

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,11 @@ struct tee_shm_dma_mem {
2323
struct page *page;
2424
};
2525

26-
static void shm_put_kernel_pages(struct page **pages, size_t page_count)
27-
{
28-
size_t n;
29-
30-
for (n = 0; n < page_count; n++)
31-
put_page(pages[n]);
32-
}
33-
34-
static void shm_get_kernel_pages(struct page **pages, size_t page_count)
35-
{
36-
size_t n;
37-
38-
for (n = 0; n < page_count; n++)
39-
get_page(pages[n]);
40-
}
41-
4226
static void release_registered_pages(struct tee_shm *shm)
4327
{
4428
if (shm->pages) {
4529
if (shm->flags & TEE_SHM_USER_MAPPED)
4630
unpin_user_pages(shm->pages, shm->num_pages);
47-
else
48-
shm_put_kernel_pages(shm->pages, shm->num_pages);
4931

5032
kfree(shm->pages);
5133
}
@@ -477,13 +459,6 @@ register_shm_helper(struct tee_context *ctx, struct iov_iter *iter, u32 flags,
477459
goto err_put_shm_pages;
478460
}
479461

480-
/*
481-
* iov_iter_extract_kvec_pages does not get reference on the pages,
482-
* get a reference on them.
483-
*/
484-
if (iov_iter_is_kvec(iter))
485-
shm_get_kernel_pages(shm->pages, num_pages);
486-
487462
shm->offset = off;
488463
shm->size = len;
489464
shm->num_pages = num_pages;
@@ -499,8 +474,6 @@ register_shm_helper(struct tee_context *ctx, struct iov_iter *iter, u32 flags,
499474
err_put_shm_pages:
500475
if (!iov_iter_is_kvec(iter))
501476
unpin_user_pages(shm->pages, shm->num_pages);
502-
else
503-
shm_put_kernel_pages(shm->pages, shm->num_pages);
504477
err_free_shm_pages:
505478
kfree(shm->pages);
506479
err_free_shm:

0 commit comments

Comments
 (0)