diff options
| author | Dave Jiang <dave.jiang@intel.com> | 2023-12-21 15:02:55 -0700 | 
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2023-12-22 14:32:37 -0800 | 
| commit | 79205651120620c2683f90c25ef3d2ac8e454026 (patch) | |
| tree | caf552580de29c3bafa18cb090b36dac0dbd47ce | |
| parent | 6373c48b8c9dfb5c1e09fdb538e700d9cc91c45e (diff) | |
acpi: Break out nesting for hmat_parse_locality()
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>
| -rw-r--r-- | drivers/acpi/numa/hmat.c | 32 | 
1 files changed, 20 insertions, 12 deletions
| diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c index 21722cbec324..4cae2e84251a 100644 --- a/drivers/acpi/numa/hmat.c +++ b/drivers/acpi/numa/hmat.c @@ -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);  		}  	} | 
