[v4,0/2] fix dma_addressing_limited() if dma_range_map

Message ID 20231028102059.66891-1-justin.he@arm.com
Headers
Series fix dma_addressing_limited() if dma_range_map |

Message

Justin He Oct. 28, 2023, 10:20 a.m. UTC
  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@arm.com/
v2:
https://lore.kernel.org/lkml/20231010020835.3678-1-justin.he@arm.com/
  - 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:
https://lore.kernel.org/lkml/20231016125254.1875-1-justin.he@arm.com/
  - move and export dma_addressing_limited() to avoid adding a new
    exported helper (by Christoph Hellwig)
v4:
  - refine the commit msg in patch01
  - address patch02 coding style issues
  - add the dma ops check in dma_addressing_limited() (Christoph) 
  - move dma_direct_all_ram_mapped() to direct.c (Christoph)

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

 include/linux/dma-mapping.h | 19 +++++------------
 kernel/dma/direct.c         | 41 +++++++++++++++++++++++++++++++++++++
 kernel/dma/direct.h         |  1 +
 kernel/dma/mapping.c        | 23 +++++++++++++++++++++
 4 files changed, 70 insertions(+), 14 deletions(-)
  

Comments

Christoph Hellwig Nov. 6, 2023, 7:36 a.m. UTC | #1
Thanks,

this looks good to me, and I've applied this with two tweaks to the
dma-apping tree.
  
Justin He Nov. 6, 2023, 9:11 a.m. UTC | #2
Hi Christoph,

> -----Original Message-----
> Thanks,
> 
> this looks good to me, and I've applied this with two tweaks to the dma-apping
> tree.
Thanks a lot for the help 😊