In the ARM IORT specifications DEN 0049E.d, the recommended ID mapping format:
Field Note Description
--------------------------------
Input base The lowest value in the input range
Number of IDs The number of IDs in the range "minus" one
When there is only one id mapping in the Reserved Memory Range
(RMR) node, the node filed: "Number of IDs" is zero and
iort_node_get_rmr_info will not analyse id mapping. This is
not in compliance with the regulations.
Signed-off-by: Guanghui Feng <[email protected]>
---
drivers/acpi/arm64/iort.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 3631230..56d8873 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -1007,9 +1007,6 @@ static void iort_node_get_rmr_info(struct acpi_iort_node *node,
for (i = 0; i < node->mapping_count; i++, map++) {
struct acpi_iort_node *parent;
- if (!map->id_count)
- continue;
-
parent = ACPI_ADD_PTR(struct acpi_iort_node, iort_table,
map->output_reference);
if (parent != iommu)
--
1.8.3.1
This is v2, not v1.
Please update the subject.
"ACPI/IORT: Remove erroneous id_count check in iort_node_get_rmr_info()"
On Mon, Jul 17, 2023 at 06:18:58PM +0800, Guanghui Feng wrote:
> In the ARM IORT specifications DEN 0049E.d, the recommended ID mapping format:
> Field Note Description
> --------------------------------
> Input base The lowest value in the input range
> Number of IDs The number of IDs in the range "minus" one
>
> When there is only one id mapping in the Reserved Memory Range
> (RMR) node, the node filed: "Number of IDs" is zero and
> iort_node_get_rmr_info will not analyse id mapping. This is
> not in compliance with the regulations.
Please replace this commit log with:
"According to the ARM IORT specifications DEN 0049 issue E,
the "Number of IDs" field in the ID mapping format reports
the number of IDs in the mapping range minus one.
In iort_node_get_rmr_info(), we erroneously skip ID mappings
whose "Number of IDs" equal to 0, resulting in valid mapping
nodes with a single ID to map being skipped, which is wrong.
Fix iort_node_get_rmr_info() by removing the bogus id_count
check".
Add a:
Fixes: 491cf4a6735a ("ACPI/IORT: Add support to retrieve IORT RMR reserved regions")
Bump version up to v3 and resend.
Thanks,
Lorenzo
>
> Signed-off-by: Guanghui Feng <[email protected]>
> ---
> drivers/acpi/arm64/iort.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 3631230..56d8873 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1007,9 +1007,6 @@ static void iort_node_get_rmr_info(struct acpi_iort_node *node,
> for (i = 0; i < node->mapping_count; i++, map++) {
> struct acpi_iort_node *parent;
>
> - if (!map->id_count)
> - continue;
> -
> parent = ACPI_ADD_PTR(struct acpi_iort_node, iort_table,
> map->output_reference);
> if (parent != iommu)
> --
> 1.8.3.1
>