diff options
Diffstat (limited to 'drivers/of')
-rw-r--r-- | drivers/of/address.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/of/address.c b/drivers/of/address.c index 09c0af7fd1c4..73ddf2540f3f 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c @@ -1076,11 +1076,13 @@ phys_addr_t __init of_dma_get_max_cpu_address(struct device_node *np) */ bool of_dma_is_coherent(struct device_node *np) { - struct device_node *node = of_node_get(np); + struct device_node *node; if (IS_ENABLED(CONFIG_OF_DMA_DEFAULT_COHERENT)) return true; + node = of_node_get(np); + while (node) { if (of_property_read_bool(node, "dma-coherent")) { of_node_put(node); |