On 10/22/18 at 05:29am, Fan, Chao wrote: > On Sun, Oct 21, 2018 at 10:34:58AM +0800, Baoquan He wrote: > >On 10/17/18 at 06:20pm, Chao Fan wrote: > >> + if (!cmdline_find_option_bool("movable_node") || > >> + cmdline_find_option_arg("acpi", "off", 3)) > >> + return; > >> + > >> + table_header = get_acpi_srat_table(); > >> + if (!table_header) > >> + return; > >> + > >> + table_end = (unsigned long)table_header + table_header->length; > >> + > >> + table = (struct acpi_subtable_header *) > >> + ((unsigned long)table_header + sizeof(struct acpi_table_srat)); > >> + > >> + while (((unsigned long)table) + > >> + sizeof(struct acpi_subtable_header) < table_end) { > >> + if (table->type == ACPI_SRAT_TYPE_MEMORY_AFFINITY) { > >> + ma = (struct acpi_srat_mem_affinity *)table; > >> + if (!(ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE)) { > >> + immovable_mem[i].start = ma->base_address; > >> + immovable_mem[i].size = ma->length; > >> + i++; > >> + } > >> + > >> + if (i >= MAX_NUMNODES*2) > > No warning message printed in this case? > > I will add. BTW, what message is appropriate? > I can't figure out in what condition, i >= MAX_NUMNODES*2. Do you mean it's impossible to happen?