> On May 20, 2020, at 5:58 AM, Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> wrote: > > On Fri, May 15, 2020 at 12:24:46PM -0700, Tuan Phan wrote: >> An IORT PMCG node can have no ID mapping if its overflow interrupt is >> wire based therefore the code that parses the PMCG node can not assume >> the node will always have a single mapping present at index 0. >> >> Fix iort_get_id_mapping_index() by checking for an overflow interrupt >> and mapping count. >> >> Fixes: 24e516049360 ("ACPI/IORT: Add support for PMCG"). > > Remove these periods in the $SUBJECT and commit references, I > don't know why you keep adding them. > > Anyway - I don't know if it is too late for v5.8 but this patch > is ready to be merged (minus the nits I have just mentioned). Thanks, will fix it. > > Lorenzo > >> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> >> Reviewed-by: Hanjun Guo <guoahanjun@xxxxxxxxxx> >> Signed-off-by: Tuan Phan <tuanphan@xxxxxxxxxxxxxxxxxxxxxx> >> --- >> v1 -> v2: >> - Use pmcg node to detect wired base overflow interrupt. >> >> v2 -> v3: >> - Address Hanjun and Robin's comments. >> >> v3 -> v4: >> - Update the title and description as mentioned by Lorenzo. >> >> drivers/acpi/arm64/iort.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c >> index ed3d2d1..12bb70e 100644 >> --- a/drivers/acpi/arm64/iort.c >> +++ b/drivers/acpi/arm64/iort.c >> @@ -414,6 +414,7 @@ static struct acpi_iort_node *iort_node_get_id(struct acpi_iort_node *node, >> static int iort_get_id_mapping_index(struct acpi_iort_node *node) >> { >> struct acpi_iort_smmu_v3 *smmu; >> + struct acpi_iort_pmcg *pmcg; >> >> switch (node->type) { >> case ACPI_IORT_NODE_SMMU_V3: >> @@ -441,6 +442,10 @@ static int iort_get_id_mapping_index(struct acpi_iort_node *node) >> >> return smmu->id_mapping_index; >> case ACPI_IORT_NODE_PMCG: >> + pmcg = (struct acpi_iort_pmcg *)node->node_data; >> + if (pmcg->overflow_gsiv || node->mapping_count == 0) >> + return -EINVAL; >> + >> return 0; >> default: >> return -EINVAL; >> -- >> 2.7.4 >>