[PATCH v1 3/9] parisc: Convert DMA map_page to map_phys interface
Jason Gunthorpe
jgg at nvidia.com
Sat Oct 4 01:01:44 AEST 2025
On Sun, Sep 28, 2025 at 06:02:23PM +0300, Leon Romanovsky wrote:
> +ccio_map_phys(struct device *dev, phys_addr_t phys, size_t size,
> + enum dma_data_direction direction, unsigned long attrs)
> {
> - return ccio_map_single(dev, page_address(page) + offset, size,
> - direction);
> + if (attrs & DMA_ATTR_MMIO)
> + return DMA_MAPPING_ERROR;
> +
> + return ccio_map_single(dev, phys_to_virt(phys), size, direction);
This doesn't actually use the virt at all:
offset = ((unsigned long) addr) & ~IOVP_MASK;
if((size % L1_CACHE_BYTES) || ((unsigned long)addr % L1_CACHE_BYTES))
ccio_io_pdir_entry(pdir_start, KERNEL_SPACE, (unsigned long)addr, hint);
And ccio_io_pdir_entry():
pa = lpa(vba);
Is a special instruction that uses virt but AI tells me that special
LPA instruction is returning phys. Not sure if that is a different
value than virt_to_phys()..
IDK, I'm not feeling brave enough to drop the LPA but maybe include
this note in the commit message.
Reviewed-by: Jason Gunthorpe <jgg at nvidia.com>
Jason
More information about the Linuxppc-dev
mailing list