[v2,0/3] Fix DT based address translations

Message ID 20231017110221.189299-1-herve.codina@bootlin.com
Headers
Series Fix DT based address translations |

Message

Herve Codina Oct. 17, 2023, 11:02 a.m. UTC
  Hi,

This patch series fixes a DT based address translation (translations
using the ranges property).

The issue is present with a ranges property made of a 3 cells child
address, a 3 cells parent address and a 2 cells child size.
This can happen with the recent addition of of_pci_prop_ranges() in
commit 407d1a51921e ("PCI: Create device tree node for bridge")

The issue description is fully described in the first patch commit log.

In this series,
  - The first patch fixes the issue.
  - The second patch avoids duplicated code.
  - The third patch adds unit tests related address translations.

I previously sent the first patch alone:
  https://lore.kernel.org/linux-kernel/20231003065236.121987-1-herve.codina@bootlin.com/
This series v2 has to be considered as the next iteration based on the
review done on my previous patch sent alone.

Best regards,
Hervé

Changes v1 -> v2

 - Patch 1
   Simplify of_bus_default_flags_map().
   Fix the commit log (pci-ep-bus ranges[0] size is 0x200_0000 instead
   of 0x2000_0000).

 - Patch 2 (new in v2)
   Remove duplicated code.

 - Patch 3 (new in v2)
   Add unit tests.

Herve Codina (3):
  of: address: Fix address translation when address-size is greater than
    2
  of: address: Remove duplicated functions
  of: unittest: Add tests for address translations

 drivers/of/address.c                        |  43 ++++++---
 drivers/of/unittest-data/tests-address.dtsi | 101 ++++++++++++++++++++
 drivers/of/unittest.c                       |  74 ++++++++++++++
 3 files changed, 205 insertions(+), 13 deletions(-)
  

Comments

Rob Herring Oct. 26, 2023, 1:58 p.m. UTC | #1
On Tue, Oct 17, 2023 at 01:02:15PM +0200, Herve Codina wrote:
> Hi,
> 
> This patch series fixes a DT based address translation (translations
> using the ranges property).
> 
> The issue is present with a ranges property made of a 3 cells child
> address, a 3 cells parent address and a 2 cells child size.
> This can happen with the recent addition of of_pci_prop_ranges() in
> commit 407d1a51921e ("PCI: Create device tree node for bridge")
> 
> The issue description is fully described in the first patch commit log.
> 
> In this series,
>   - The first patch fixes the issue.
>   - The second patch avoids duplicated code.
>   - The third patch adds unit tests related address translations.
> 
> I previously sent the first patch alone:
>   https://lore.kernel.org/linux-kernel/20231003065236.121987-1-herve.codina@bootlin.com/
> This series v2 has to be considered as the next iteration based on the
> review done on my previous patch sent alone.
> 
> Best regards,
> Hervé
> 
> Changes v1 -> v2
> 
>  - Patch 1
>    Simplify of_bus_default_flags_map().
>    Fix the commit log (pci-ep-bus ranges[0] size is 0x200_0000 instead
>    of 0x2000_0000).
> 
>  - Patch 2 (new in v2)
>    Remove duplicated code.
> 
>  - Patch 3 (new in v2)
>    Add unit tests.
> 
> Herve Codina (3):
>   of: address: Fix address translation when address-size is greater than
>     2
>   of: address: Remove duplicated functions
>   of: unittest: Add tests for address translations
> 
>  drivers/of/address.c                        |  43 ++++++---
>  drivers/of/unittest-data/tests-address.dtsi | 101 ++++++++++++++++++++
>  drivers/of/unittest.c                       |  74 ++++++++++++++
>  3 files changed, 205 insertions(+), 13 deletions(-)

I've applied this. I sent out this series[1] of clean-ups to apply on 
top.

Rob

[1] https://lore.kernel.org/all/20231026135358.3564307-2-robh@kernel.org/