Re: [PATCH v5 1/4] x86/boot: Wrap up the SRAT traversing code into subtable_parse()

From: Borislav Petkov
Date: Thu Dec 12 2019 - 15:18:54 EST


On Fri, Nov 15, 2019 at 09:49:14AM -0500, Masayoshi Mizuma wrote:
> From: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx>
>
> Wrap up the SRAT traversing code into subtable_parse().

Why?

>
> Reviewed-by: Baoquan He <bhe@xxxxxxxxxx>
> Signed-off-by: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx>
> ---
> arch/x86/boot/compressed/acpi.c | 21 ++++++++++++++-------
> 1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/arch/x86/boot/compressed/acpi.c b/arch/x86/boot/compressed/acpi.c
> index 25019d42ae93..a0f81438a0fd 100644
> --- a/arch/x86/boot/compressed/acpi.c
> +++ b/arch/x86/boot/compressed/acpi.c
> @@ -362,6 +362,19 @@ static unsigned long get_acpi_srat_table(void)
> return 0;
> }
>
> +static void subtable_parse(struct acpi_subtable_header *sub_table, int *num)
> +{
> + struct acpi_srat_mem_affinity *ma;
> +
> + ma = (struct acpi_srat_mem_affinity *)sub_table;
> +
> + if (!(ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) && ma->length) {
> + immovable_mem[*num].start = ma->base_address;
> + immovable_mem[*num].size = ma->length;
> + (*num)++;
> + }
> +}
> +
> /**
> * count_immovable_mem_regions - Parse SRAT and cache the immovable
> * memory regions into the immovable_mem array.
> @@ -395,14 +408,8 @@ int count_immovable_mem_regions(void)
> while (table + sizeof(struct acpi_subtable_header) < table_end) {
> sub_table = (struct acpi_subtable_header *)table;
> if (sub_table->type == ACPI_SRAT_TYPE_MEMORY_AFFINITY) {

So this is checking for the table type being something but calling a
function which looks generic, at least judging by the name.

And that generic function is a function why exactly? It beats me. And
the input/output argument @num is actually begging for this to *not* be
a function at all.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette