acpi: Break out nesting for hmat_parse_locality()
authorDave Jiang <dave.jiang@intel.com>
Thu, 21 Dec 2023 22:02:55 +0000 (15:02 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 22 Dec 2023 22:32:37 +0000 (14:32 -0800)
Refactor hmat_parse_locality() to break up the deep nesting of the
function.

Suggested-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/170319617537.2212653.10625501075519862509.stgit@djiang5-mobl3
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/acpi/numa/hmat.c

index 21722cbec324d2508320f405d3614940fb70eab8..4cae2e84251a2b68c4dc0ae7ca0d6547381da889 100644 (file)
@@ -322,11 +322,28 @@ static __init void hmat_add_locality(struct acpi_hmat_locality *hmat_loc)
        }
 }
 
+static __init void hmat_update_target(unsigned int tgt_pxm, unsigned int init_pxm,
+                                     u8 mem_hier, u8 type, u32 value)
+{
+       struct memory_target *target = find_mem_target(tgt_pxm);
+
+       if (mem_hier != ACPI_HMAT_MEMORY)
+               return;
+
+       if (target && target->processor_pxm == init_pxm) {
+               hmat_update_target_access(target, type, value,
+                                         NODE_ACCESS_CLASS_0);
+               /* If the node has a CPU, update access 1 */
+               if (node_state(pxm_to_node(init_pxm), N_CPU))
+                       hmat_update_target_access(target, type, value,
+                                                 NODE_ACCESS_CLASS_1);
+       }
+}
+
 static __init int hmat_parse_locality(union acpi_subtable_headers *header,
                                      const unsigned long end)
 {
        struct acpi_hmat_locality *hmat_loc = (void *)header;
-       struct memory_target *target;
        unsigned int init, targ, total_size, ipds, tpds;
        u32 *inits, *targs, value;
        u16 *entries;
@@ -367,17 +384,8 @@ static __init int hmat_parse_locality(union acpi_subtable_headers *header,
                                inits[init], targs[targ], value,
                                hmat_data_type_suffix(type));
 
-                       if (mem_hier == ACPI_HMAT_MEMORY) {
-                               target = find_mem_target(targs[targ]);
-                               if (target && target->processor_pxm == inits[init]) {
-                                       hmat_update_target_access(target, type, value,
-                                                                 NODE_ACCESS_CLASS_0);
-                                       /* If the node has a CPU, update access 1 */
-                                       if (node_state(pxm_to_node(inits[init]), N_CPU))
-                                               hmat_update_target_access(target, type, value,
-                                                                         NODE_ACCESS_CLASS_1);
-                               }
-                       }
+                       hmat_update_target(targs[targ], inits[init],
+                                          mem_hier, type, value);
                }
        }