• Yan Zhao's avatar
    mm: Remove broken pfn_to_virt() on arch csky/hexagon/openrisc · 3391538f
    Yan Zhao authored
    Remove the broken pfn_to_virt() on architectures csky/hexagon/openrisc.
    
    The pfn_to_virt() on those architectures takes PFN instead of PA as the
    input to macro __va(), with PAGE_SHIFT applying to the converted VA, which
    is not right, especially when there's a non-zero offset in __va(). [1]
    
    The broken pfn_to_virt() was noticed when checking how page_to_virt() is
    unfolded on x86. It turns out that the one in linux/mm.h instead of in
    asm-generic/page.h is compiled for x86. However, page_to_virt() in
    asm-generic/page.h is found out expanding to pfn_to_virt() with a bug
    described above. The pfn_to_virt() is found out not right as well on
    architectures csky/hexagon/openrisc.
    
    Since there's no single caller on csky/hexagon/openrisc to pfn_to_virt()
    and there are functions doing similar things as pfn_to_virt() --
    - pfn_to_kaddr() in asm/page.h for csky,
    - page_to_virt() in asm/page.h for hexagon, and
    - page_to_virt() in linux/mm.h for openrisc,
    just delete the pfn_to_virt() on those architectures.
    
    The pfn_to_virt() in asm-generic/page.h is not touched in this patch as
    it's referenced by page_to_virt() in that header while the whole header is
    going to be removed as a whole due to no one including it.
    
    Link:https://lore.kernel.org/all/20240131055159.2506-1-yan.y.zhao@intel.com [1]
    
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarYan Zhao <yan.y.zhao@intel.com>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    3391538f
page.h 2.58 KB