Re: [PATCH] parisc: Set valid bit in high byte of 64‑bit physical address
From: Marek Szyprowski
Date: Thu Dec 18 2025 - 12:14:18 EST
On 18.12.2025 17:22, Guenter Roeck wrote:
> On 12/18/25 04:08, Leon Romanovsky wrote:
>> From: Leon Romanovsky <leonro@xxxxxxxxxx>
>>
>> On 32‑bit systems, phys_addr_t is defined as u32. However, parisc
>> expects physical addresses to be 64‑bit values so it can store a
>> validity bit in the upper byte.
>>
>> Resolve this mismatch by casting the physical address to unsigned
>> long, ensuring it is treated as a 64‑bit value where required. This
>> fixes the failure to start block device drivers on the C3700
>> platform, as reported by Guenter.
>>
>> Also remove the now‑obsolete macro.
>>
>> QEMU command line to reproduce the issue (with Debian SID as rootfs):
>> qemu-system-hppa -machine C3700 \
>> -kernel arch/parisc/boot/bzImage \
>> -append "console=ttyS0 \
>> root=/dev/sda rw rootwait panic=-1" \
>> -nographic \
>> -device lsi53c895a \
>> -drive file=rootfs-hppa.img,if=none,format=raw,id=hd0 \
>> -device scsi-hd,drive=hd0
>>
>> Fixes: 96ddf2ef58ec ("parisc: Convert DMA map_page to map_phys
>> interface")
>> Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
>> Closes:
>> https://lore.kernel.org/all/b184f1bf-96dc-4546-8512-9cba5ecb58f7@xxxxxxxxxxxx/
>> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
>
> Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Thanks for the initial report and a quick fix. I'm sorry that this issue
slipped through the review and tests in linux-next. I've applied it to
dma-mapping-fixes branch.
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland