On 2025-03-07 2:24 pm, Lorenzo Pieralisi wrote:
[...]
diff --git a/drivers/acpi/arm64/dma.c b/drivers/acpi/arm64/dma.c
index 52b2abf88689..f30f138352b7 100644
--- a/drivers/acpi/arm64/dma.c
+++ b/drivers/acpi/arm64/dma.c
@@ -26,6 +26,11 @@ void acpi_arch_dma_setup(struct device *dev)
else
end = (1ULL << 32) - 1;
+ if (dev->dma_range_map) {
+ dev_dbg(dev, "dma_range_map already set\n");
+ return;
+ }
+
Why are we checking that dev->dma_range_map exists here rather than
at function entry ? Is that because we want to run the previous code
for some reasons even if dev->dma_range_map is already set ?
Just noticed, the OF counterpart does not seem to take the same
approach, so I am just flagging this up if it matters at all.
The intent is just to ensure it's safe to come through this path more
than once for the time being - it doesn't really matter whether or not
we repeat anything apart from allocating and assigning dma_range_map,
since that leaks the previous allocation. Thus this check is logically
guarding the acpi_dma_get_range() call in this path, and the
of_dma_get_range() call in the other.
Other than that, for acpi/arm64:
Reviewed-by: Lorenzo Pieralisi <lpieralisi@xxxxxxxxxx>
Thanks!
Robin.