linux/drivers/of
Andrea della Porta ad9ec26aba of: address: Preserve the flags portion on 1:1 dma-ranges mapping
[ Upstream commit 7f05e20b98 ]

A missing or empty dma-ranges in a DT node implies a 1:1 mapping for dma
translations. In this specific case, the current behaviour is to zero out
the entire specifier so that the translation could be carried on as an
offset from zero. This includes address specifier that has flags (e.g.
PCI ranges).

Once the flags portion has been zeroed, the translation chain is broken
since the mapping functions will check the upcoming address specifier
against mismatching flags, always failing the 1:1 mapping and its entire
purpose of always succeeding.

Set to zero only the address portion while passing the flags through.

Fixes: dbbdee9473 ("of/address: Merge all of the bus translation code")
Cc: stable@vger.kernel.org
Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Tested-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/r/e51ae57874e58a9b349c35e2e877425ebc075d7a.1732441813.git.andrea.porta@suse.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-01-17 13:34:48 +01:00
..
unittest-data of/address: Add support for 3 address cell bus 2025-01-17 13:34:47 +01:00
address.c of: address: Preserve the flags portion on 1:1 dma-ranges mapping 2025-01-17 13:34:48 +01:00
base.c of: Fix error path in of_parse_phandle_with_args_map() 2024-12-27 13:53:01 +01:00
device.c of: Fix modalias string generation 2023-05-11 23:03:28 +09:00
dynamic.c of: dynamic: Synchronize of_changeset_destroy() with the devlink removals 2024-04-10 16:28:32 +02:00
fdt.c Revert "mm: kmemleak: alloc gray object for reserved region with direct map" 2023-02-09 11:28:20 +01:00
fdt_address.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
irq.c of/irq: Fix using uninitialized variable @addr_len in API of_irq_parse_one() 2024-12-27 13:53:00 +01:00
Kconfig of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
kexec.c mm,ima,kexec,of: use memblock_free_late from ima_free_kexec_buffer 2023-08-30 16:11:06 +02:00
kobj.c of: kobj: make of_node_is_(initialized|attached) parameters const 2021-10-20 13:37:25 -05:00
Makefile of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
of_numa.c of, numa: Fetch empty NUMA node ID from distance map 2021-10-04 13:13:44 -05:00
of_private.h of/irq: Factor out parsing of interrupt-map parent phandle+args from of_irq_parse_raw() 2024-07-25 09:49:10 +02:00
of_reserved_mem.c of: reserved_mem: Have kmemleak ignore dynamically allocated reserved mem 2023-02-22 12:59:46 +01:00
overlay.c of: overlay: Reorder struct fragment fields kerneldoc 2024-03-06 14:45:04 +00:00
pdt.c of: Remove struct device_node.type pointer 2019-01-10 16:24:44 -06:00
platform.c treewide: Fix probing of devices in DT overlays 2023-09-13 09:43:05 +02:00
property.c of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing 2024-03-06 14:45:09 +00:00
resolver.c of: overlay: log the error cause on resolver failure 2020-03-02 11:32:44 -06:00
unittest.c of/address: Add support for 3 address cell bus 2025-01-17 13:34:47 +01:00