On Sat, May 30, 2026 at 04:51:04PM +0000, John Groves wrote: > From: John Groves <[email protected]> > > Use __va(phys) instead of virt_addr + linear_offset for the kaddr > return in __fsdev_dax_direct_access(). The previous code added a > device-linear byte offset to virt_addr (which is __va of ranges[0]), > but for multi-range devices with physical gaps between ranges, this > linear arithmetic crosses the gap and produces a wrong kernel virtual > address. Using __va(phys) where phys comes from dax_pgoff_to_phys() > is correct for any range layout because the direct map translates > each physical address independently. > > Fixes: 759455848df0b ("dax: Save the kva from memremap") > Signed-off-by: John Groves <[email protected]> > ---
Reviewed-by: Alison Schofield <[email protected]>

