We can have many pci hotplug groups, each introduced
by a "pci@<addr>" token such as,

  pci_iommu_extra=pci@0x3600000,1.0.0,hp,pci@0x3700000,1.0.0,hp,
                  pci@0x3800000,1.0.0,hp,pci@0x3900000,1.0.0,hp

Without this fix, we have the error:
  Added iommu map for hotplug 1.0.0
  ERROR: invalid action in extra iommu entry
  ERROR: invalid action in extra iommu entry
  ERROR: invalid action in extra iommu entry

Fixes: 2a5bbb13cc39 ("pci: layerscape: add a way of specifying additional iommu 
mappings")
Signed-off-by: Vincent Jardin <[email protected]>

---

 drivers/pci/pcie_layerscape_fixup.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/pci/pcie_layerscape_fixup.c 
b/drivers/pci/pcie_layerscape_fixup.c
index 97c38c0bfa7..5299aee63db 100644
--- a/drivers/pci/pcie_layerscape_fixup.c
+++ b/drivers/pci/pcie_layerscape_fixup.c
@@ -319,6 +319,11 @@ static struct extra_iommu_entry *get_extra_iommu_ents(void 
*blob,
                        /* Hot-plug entry */
                        entries[i].action = EXTRA_IOMMU_ENTRY_HOTPLUG;
                        p += 2;
+                       /* Skip the comma separator so it check the
+                        * next "pci@" group.
+                        */
+                       if (*p == ',')
+                               p++;
                } else if (!strncmp(p, "vfs", 3) ||
                           !strncmp(p, "noari_vfs", 9)) {
                        /* VFs or VFs with ARI disabled entry */
---
base-commit: 616c3d79f01cf9204e38738857c4647a730dcb3b
branch: for-upstream/pci-layerscape-iommu-extra-v1

-- 
2.43.0

Reply via email to