mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
TEE shared memory update for 7.0
Remove refcounting of kernel pages in register_shm_helper() to support slab allocations. -----BEGIN PGP SIGNATURE----- iQJOBAABCgA4FiEE0qerISgy2SKkqO79Wr/6JGat8H4FAmm3r1gaHGplbnMud2lr bGFuZGVyQGxpbmFyby5vcmcACgkQWr/6JGat8H7Lmw//V7ZOJWmGSQoBbPgcY9eE gjuoZ7VBPvSNvlh0N07h2x1uXw8dXjzhKW3AUu8WGBRZ2Q7eqbxEJEDMnw5uG7pz kPNN5Y+kjOCC13nd3bSjyMLKyPxNsW79C5uRZsVr3t9bituGPnGuurPy+P8HUWER ++Q515cggF+ovFy1Bi5Tc0nXNHEop9EArceZmeKeX98CsLH08O2BYXYfJVOIy73T GIZVR3djvTuX8i+RXnsNoU2q1Fty2lRtrALrNiVwY//nW4RtlAALAL7lXnDdubq7 Is5M2AnJ96DEwCkgkJZZusxkwzquVcoAgiwqY7D809ifJfr2yK+jkLG69ZW4DoHh 3ViXhv9XKTUAZy9jZTc1ugfDGX83C5/MM1sguBeyWrqRo9XGA7KGj/xuOvscMdac b0dnG8E97HLuPSvrR4ZBCGN5s/RLUVGDXmeytyuTSaN8tGHWC/SoKKMB3ln2oslf Zh4cedgWLsjr45Daxzo1wTRLczORuh8RqHeE38Ptt8PQgB12AzgagDXCcSvVTb4h dIgzXJ/RELnEhaZxV0lUONEF7SPTLC8NFUoZ9J2uWqScIUYXR0nBT04kv/8SeHld uqiOo/6QQ4mZKMT6XZWf3qlyiM+nzQr5n7Amr1H61gNnzNgcgZNu2yamXGzJA/QM nuv7YuLExOzJlbVC0aE/5Yo= =usSf -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmm6mpQACgkQmmx57+YA GNn5vhAApWm2ZsR5znG7CtF8Zc14dkVPzgxYlRJT0dcoEwgcjpIPVhST8cfgcTgV DJWdRJJ9NiKGTVaZ6KYsFebS1G2x/KW9AyVsPqOcDDy2+pNs8SZ5wS0ZhTzVY843 gMvNUvwPbAO8SIrSl9vVBtmMtN9/hOt6bWdbMemQaWSW7B9JFvc5P3Zo5c3h0MrU wlE9VqcYSLrFCjbM5p2y9d+2OlWzmUo37BCXS+18u5l5+lXB8eFdyI1tuGJALDSB xypI5OU2unXLBXW8Enhad/igAyYC1Pz92HPLGbBtZTRW+8visdGhDkxnkp7ihSza pwqhdL9TyD6oNmpB56AhWPoyHd4+Ns/mSxxZbqLywwvLovlN33Xou82+SoIq2c6/ zlXbzRXm7LD3kiYey8UZAfKAuG6t6FTXYU7QFW6MOyBtSJyFUQa1ivUXA5rKoN5p 8hqvotgcNrPREKxiGRQeQp1EJIdh/aRSlwF4UZsy3Blq5ax1+Xyvris2jAOSN1Rv +14eNrQeoz85aXucTlZxKNajPfiqcTCd77sLAWz9AhoZoaIEXpzUt2/wIley+aC+ f5nO180u+FS2XQLdvE7EOHhf3UNomL1OOvWihLJn62CtoPfqyqSpAxdryzW1tN5j AHPS9NtEKqbXonnF4H2TKCG4SANNZlZ3IATxcOuC2io4TKu78EI= =rbJV -----END PGP SIGNATURE----- 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>
This commit is contained in:
commit
b3315ba042
|
|
@ -23,29 +23,11 @@ struct tee_shm_dma_mem {
|
|||
struct page *page;
|
||||
};
|
||||
|
||||
static void shm_put_kernel_pages(struct page **pages, size_t page_count)
|
||||
{
|
||||
size_t n;
|
||||
|
||||
for (n = 0; n < page_count; n++)
|
||||
put_page(pages[n]);
|
||||
}
|
||||
|
||||
static void shm_get_kernel_pages(struct page **pages, size_t page_count)
|
||||
{
|
||||
size_t n;
|
||||
|
||||
for (n = 0; n < page_count; n++)
|
||||
get_page(pages[n]);
|
||||
}
|
||||
|
||||
static void release_registered_pages(struct tee_shm *shm)
|
||||
{
|
||||
if (shm->pages) {
|
||||
if (shm->flags & TEE_SHM_USER_MAPPED)
|
||||
unpin_user_pages(shm->pages, shm->num_pages);
|
||||
else
|
||||
shm_put_kernel_pages(shm->pages, shm->num_pages);
|
||||
|
||||
kfree(shm->pages);
|
||||
}
|
||||
|
|
@ -477,13 +459,6 @@ register_shm_helper(struct tee_context *ctx, struct iov_iter *iter, u32 flags,
|
|||
goto err_put_shm_pages;
|
||||
}
|
||||
|
||||
/*
|
||||
* iov_iter_extract_kvec_pages does not get reference on the pages,
|
||||
* get a reference on them.
|
||||
*/
|
||||
if (iov_iter_is_kvec(iter))
|
||||
shm_get_kernel_pages(shm->pages, num_pages);
|
||||
|
||||
shm->offset = off;
|
||||
shm->size = len;
|
||||
shm->num_pages = num_pages;
|
||||
|
|
@ -499,8 +474,6 @@ register_shm_helper(struct tee_context *ctx, struct iov_iter *iter, u32 flags,
|
|||
err_put_shm_pages:
|
||||
if (!iov_iter_is_kvec(iter))
|
||||
unpin_user_pages(shm->pages, shm->num_pages);
|
||||
else
|
||||
shm_put_kernel_pages(shm->pages, shm->num_pages);
|
||||
err_free_shm_pages:
|
||||
kfree(shm->pages);
|
||||
err_free_shm:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user