Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae2c6dcf authored by David Rientjes's avatar David Rientjes Committed by Linus Torvalds
Browse files

x86_64: various cleanups in NUMA scan node



In acpi_scan_nodes(), we immediately return -1 if acpi_numa <= 0, meaning
we haven't detected any underlying ACPI topology or we have explicitly
disabled its use from the command-line with numa=noacpi.

acpi_table_print_srat_entry() and acpi_table_parse_srat() are only
referenced within drivers/acpi/numa.c, so we can mark them as static and
remove their prototypes from the header file.

Likewise, pxm_to_node_map[] and node_to_pxm_map[] are only used within
drivers/acpi/numa.c, so we mark them as static and remove their externs
from the header file.

The automatic 'result' variable is unused in acpi_numa_init(), so it's
removed.

Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a2e212da
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -394,6 +394,9 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
{
{
	int i;
	int i;


	if (acpi_numa <= 0)
		return -1;

	/* First clean up the node list */
	/* First clean up the node list */
	for (i = 0; i < MAX_NUMNODES; i++) {
	for (i = 0; i < MAX_NUMNODES; i++) {
		cutoff_node(i, start, end);
		cutoff_node(i, start, end);
@@ -403,9 +406,6 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
		}
		}
	}
	}


	if (acpi_numa <= 0)
		return -1;

	if (!nodes_cover_memory()) {
	if (!nodes_cover_memory()) {
		bad_srat();
		bad_srat();
		return -1;
		return -1;
+10 −10
Original line number Original line Diff line number Diff line
@@ -40,9 +40,9 @@ static nodemask_t nodes_found_map = NODE_MASK_NONE;
#define NID_INVAL	-1
#define NID_INVAL	-1


/* maps to convert between proximity domain and logical node ID */
/* maps to convert between proximity domain and logical node ID */
static int pxm_to_node_map[MAX_PXM_DOMAINS]
static int __cpuinitdata pxm_to_node_map[MAX_PXM_DOMAINS]
				= { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL };
				= { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL };
static int node_to_pxm_map[MAX_NUMNODES]
static int __cpuinitdata node_to_pxm_map[MAX_NUMNODES]
				= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
				= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };


int pxm_to_node(int pxm)
int pxm_to_node(int pxm)
@@ -83,7 +83,8 @@ void __cpuinit acpi_unmap_pxm_to_node(int node)
	node_clear(node, nodes_found_map);
	node_clear(node, nodes_found_map);
}
}


void __init acpi_table_print_srat_entry(struct acpi_subtable_header * header)
static void __init
acpi_table_print_srat_entry(struct acpi_subtable_header *header)
{
{


	ACPI_FUNCTION_NAME("acpi_table_print_srat_entry");
	ACPI_FUNCTION_NAME("acpi_table_print_srat_entry");
@@ -200,7 +201,7 @@ static int __init acpi_parse_srat(struct acpi_table_header *table)
	return 0;
	return 0;
}
}


int __init
static int __init
acpi_table_parse_srat(enum acpi_srat_type id,
acpi_table_parse_srat(enum acpi_srat_type id,
		      acpi_table_entry_handler handler, unsigned int max_entries)
		      acpi_table_entry_handler handler, unsigned int max_entries)
{
{
@@ -211,14 +212,13 @@ acpi_table_parse_srat(enum acpi_srat_type id,


int __init acpi_numa_init(void)
int __init acpi_numa_init(void)
{
{
	int result;

	/* SRAT: Static Resource Affinity Table */
	/* SRAT: Static Resource Affinity Table */
	if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) {
	if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) {
		result = acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY,
		acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY,
					       acpi_parse_processor_affinity,
				      acpi_parse_processor_affinity, NR_CPUS);
					       NR_CPUS);
		acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY,
		result = acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY, acpi_parse_memory_affinity, NR_NODE_MEMBLKS);	// IA64 specific
				      acpi_parse_memory_affinity,
				      NR_NODE_MEMBLKS);
	}
	}


	/* SLIT: System Locality Information Table */
	/* SLIT: System Locality Information Table */
+0 −2
Original line number Original line Diff line number Diff line
@@ -88,10 +88,8 @@ int acpi_table_parse (char *id, acpi_table_handler handler);
int __init acpi_table_parse_entries(char *id, unsigned long table_size,
int __init acpi_table_parse_entries(char *id, unsigned long table_size,
	int entry_id, acpi_table_entry_handler handler, unsigned int max_entries);
	int entry_id, acpi_table_entry_handler handler, unsigned int max_entries);
int acpi_table_parse_madt (enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries);
int acpi_table_parse_madt (enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries);
int acpi_table_parse_srat (enum acpi_srat_type id, acpi_table_entry_handler handler, unsigned int max_entries);
int acpi_parse_mcfg (struct acpi_table_header *header);
int acpi_parse_mcfg (struct acpi_table_header *header);
void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
void acpi_table_print_srat_entry (struct acpi_subtable_header *srat);


/* the following four functions are architecture-dependent */
/* the following four functions are architecture-dependent */
#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT
#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT