Re: [PATCH v2 0/4] Remove get_kernel_pages()

From: Sumit Garg
Date: Mon Feb 06 2023 - 01:23:13 EST


On Sat, 4 Feb 2023 at 09:36, Ira Weiny <ira.weiny@xxxxxxxxx> wrote:
>
> Sumit,
>
> I did not see a follow up on this series per your last email.[1] I'd like to
> move forward with getting rid of kmap_to_page(). So Hopefully this can land
> and you can build on this rather than the other way around?

Apologies Ira for keeping you waiting. Actually I was fully involved
with other high priority work with my upstream review backlog
increasing. So I wasn't able to devote time to this work. Sure I will
rebase my work on top of your changes.

-Sumit

>
> All,
>
> Al Viro found[2] that kmap_to_page() is broken. But not only is it broken, it
> presents confusion over how highmem should be used because kmap() and friends
> should not be used for 'long term' mappings.
>
> get_kernel_pages() is a caller of kmap_to_page(). It only has one caller
> [shm_get_kernel_pages()] which does not need the functionality.
>
> Alter shm_get_kernel_pages() to no longer call get_kernel_pages() and remove
> get_kernel_pages(). Along the way it was noted that shm_get_kernel_pages()
> does not have any need to support vmalloc'ed addresses either. Remove that
> functionality to clean up the logic.
>
> This series also fixes is_kmap_addr() and uses it to ensure no kmap addresses
> slip in later.
>
> [1] https://lore.kernel.org/all/CAFA6WYMqEVDVW-ifoh-V9ni1zntYdes8adQKf2XXAUpqdaW53w@xxxxxxxxxxxxxx/
> [2] https://lore.kernel.org/lkml/YzSSl1ItVlARDvG3@ZenIV
>
> To: Sumit Garg <sumit.garg@xxxxxxxxxx>
> To: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: "Al Viro" <viro@xxxxxxxxxxxxxxxxxx>
> Cc: "Christoph Hellwig" <hch@xxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: op-tee@xxxxxxxxxxxxxxxxxxxxxxxxx
> Cc: linux-mm@xxxxxxxxx
> Cc: Jens Wiklander <jens.wiklander@xxxxxxxxxx>
> Cc: "Fabio M. De Francesco" <fmdefrancesco@xxxxxxxxx>
> Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
>
> ---
> Changes in v2:
> - Al Viro: Avoid allocating the kiov.
> - Sumit: Update cover letter to clarify the motivation behind removing
> get_kernel_pages()
> - Link to v1: https://lore.kernel.org/r/20221002002326.946620-1-ira.weiny@xxxxxxxxx
>
> ---
> Ira Weiny (4):
> highmem: Enhance is_kmap_addr() to check kmap_local_page() mappings
> tee: Remove vmalloc page support
> tee: Remove call to get_kernel_pages()
> mm: Remove get_kernel_pages()
>
> drivers/tee/tee_shm.c | 37 ++++++++++---------------------------
> include/linux/highmem-internal.h | 5 ++++-
> include/linux/mm.h | 2 --
> mm/swap.c | 30 ------------------------------
> 4 files changed, 14 insertions(+), 60 deletions(-)
> ---
> base-commit: 0136d86b78522bbd5755f8194c97a987f0586ba5
> change-id: 20230203-get_kernel_pages-199342cfba79
>
> Best regards,
> --
> Ira Weiny <ira.weiny@xxxxxxxxx>