Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, 

Extract find_existing_ddw_windows() into find_existing_ddw_windows_named()
and calls it with current property name.

This will allow more property names to be checked in
find_existing_ddw_windows(), enabling the creation of new property names,
like the one that will be used for indirect mapping.

Signed-off-by: Leonardo Bras <leobra...@gmail.com>
---
 arch/powerpc/platforms/pseries/iommu.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/iommu.c 
b/arch/powerpc/platforms/pseries/iommu.c
index f6a65ecd1db5..9b7c03652e72 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -882,24 +882,21 @@ static struct direct_window *ddw_list_new_entry(struct 
device_node *pdn,
        return window;
 }
 
-static int find_existing_ddw_windows(void)
+static void find_existing_ddw_windows_named(const char *name)
 {
        int len;
        struct device_node *pdn;
        struct direct_window *window;
-       const struct dynamic_dma_window_prop *direct64;
-
-       if (!firmware_has_feature(FW_FEATURE_LPAR))
-               return 0;
+       const struct dynamic_dma_window_prop *dma64;
 
-       for_each_node_with_property(pdn, DIRECT64_PROPNAME) {
-               direct64 = of_get_property(pdn, DIRECT64_PROPNAME, &len);
-               if (!direct64 || len < sizeof(*direct64)) {
-                       remove_ddw(pdn, true, DIRECT64_PROPNAME);
+       for_each_node_with_property(pdn, name) {
+               dma64 = of_get_property(pdn, name, &len);
+               if (!dma64 || len < sizeof(*dma64)) {
+                       remove_ddw(pdn, true, name);
                        continue;
                }
 
-               window = ddw_list_new_entry(pdn, direct64);
+               window = ddw_list_new_entry(pdn, dma64);
                if (!window)
                        break;
 
@@ -907,6 +904,14 @@ static int find_existing_ddw_windows(void)
                list_add(&window->list, &direct_window_list);
                spin_unlock(&direct_window_list_lock);
        }
+}
+
+static int find_existing_ddw_windows(void)
+{
+       if (!firmware_has_feature(FW_FEATURE_LPAR))
+               return 0;
+
+       find_existing_ddw_windows_named(DIRECT64_PROPNAME);
 
        return 0;
 }
-- 
2.25.4

Reply via email to