[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181217173605.GA14613@gmail.com>
Date: Mon, 17 Dec 2018 18:36:05 +0100
From: Ingo Molnar <mingo@...nel.org>
To: Chao Fan <fanc.fnst@...fujitsu.com>
Cc: linux-kernel@...r.kernel.org, x86@...nel.org, bp@...en8.de,
tglx@...utronix.de, mingo@...hat.com, hpa@...or.com,
keescook@...omium.org, bhe@...hat.com, msys.mizuma@...il.com,
indou.takao@...fujitsu.com, caoj.fnst@...fujitsu.com
Subject: Re: [PATCH v14 2/5] x86/boot: Introduce efi_get_rsdp_addr() to find
RSDP from EFI table
* Ingo Molnar <mingo@...nel.org> wrote:
> > + if (!(efi_guidcmp(guid, ACPI_TABLE_GUID)))
> > + rsdp_addr = (acpi_physical_address)table;
> > + else if (!(efi_guidcmp(guid, ACPI_20_TABLE_GUID)))
> > + return (acpi_physical_address)table;
>
> 'return' is not a function.
Disregard this - I got confused by the type cast.
The type cast is ugly nevertheless. 'table' is an 'unsigned long'.
So 'acpi_physical_address' is basically an u64/u32, depending on
ACPI_MACHINE_WIDTH, right?
Since this is x86, can ACPI_MACHINE_WIDTH ever get out of sync with the
native 'unsigned long' size?
If not then why not make the return type 'unsigned long', instead of
'acpi_physical_address' that you have to wade through a couple of headers
to figure out its true size. Does that cause complications elsewhere?
I.e. the excessive type casts are ugly and make the code somewhat
fragile.
Thanks,
Ingo
Powered by blists - more mailing lists