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.

Thanks,
Chao Fan

>> +                            break;
>> +            }
>> +            table = (struct acpi_subtable_header *)
>> +                    ((unsigned long)table + table->length);
>> +    }
>> +    num_immovable_mem = i;
>> +}
>> diff --git a/arch/x86/boot/compressed/misc.h 
>> b/arch/x86/boot/compressed/misc.h
>> index 40378408d980..70c403e1444c 100644
>> --- a/arch/x86/boot/compressed/misc.h
>> +++ b/arch/x86/boot/compressed/misc.h
>> @@ -121,3 +121,13 @@ static inline void console_init(void)
>>  void set_sev_encryption_mask(void);
>>  
>>  #endif
>> +
>> +/* acpitb.c */
>> +#ifdef CONFIG_RANDOMIZE_BASE
>> +int num_immovable_mem;
>> +#ifdef CONFIG_MEMORY_HOTREMOVE
>> +/* Store the amount of immovable memory regions */
>> +#define ACPI_MAX_TABLES                128
>> +void get_immovable_mem(void);
>> +#endif
>> +#endif
>> -- 
>> 2.17.2
>> 
>> 
>> 
>
>


Reply via email to