[PATCH v3 0/2] fix dma_addressing_limited() if dma_range_map

From: Jia He
Date: Mon Oct 16 2023 - 08:53:09 EST


This is to fix the hangs at boot. The root cause is the nvme device dma
mapping is failed in the checking path of phys_to_dma() since
dma_max_mapping_size() gave the wrong answer to start with.

---
Changelog:
v1: https://lore.kernel.org/all/20230912084002.2168-1-justin.he@xxxxxxx/
v2: https://lore.kernel.org/lkml/20231010020835.3678-1-justin.he@xxxxxxx/
- refine the subject and commit msg (By Robin Murphy)
- refactor the checking loop in check_ram_in_range_map() in the pages
unit to avoid wrap to 0 on 32bits platforms (Robin)
v3:
- move and export dma_addressing_limited() to avoid adding a new
exported helper (by Christoph Hellwig)

Jia He (2):
dma-mapping: export dma_addressing_limited()
dma-mapping: fix dma_addressing_limited() if dma_range_map can't cover
all system RAM

include/linux/dma-mapping.h | 19 ++++--------
kernel/dma/mapping.c | 60 +++++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+), 14 deletions(-)

--
2.25.1