2019-03-28 11:43:30

by Matteo Croce

[permalink] [raw]
Subject: [PATCH] x86: remove unused argument from set_real_mode_mem()

Following commit b929a500d684 ("x86/realmode: Don't leak the trampoline
kernel address"), set_real_mode_mem() is a trivial function with a
unused argument.
Remove the unused argument and move it into an header file, so it can be
inlined.

Signed-off-by: Matteo Croce <[email protected]>
---
arch/x86/include/asm/realmode.h | 6 +++++-
arch/x86/platform/efi/quirks.c | 2 +-
arch/x86/realmode/init.c | 9 +--------
3 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
index 63b3393bd98e..c53682303c9c 100644
--- a/arch/x86/include/asm/realmode.h
+++ b/arch/x86/include/asm/realmode.h
@@ -77,7 +77,11 @@ static inline size_t real_mode_size_needed(void)
return ALIGN(real_mode_blob_end - real_mode_blob, PAGE_SIZE);
}

-void set_real_mode_mem(phys_addr_t mem, size_t size);
+static inline void set_real_mode_mem(phys_addr_t mem)
+{
+ real_mode_header = (struct real_mode_header *) __va(mem);
+}
+
void reserve_real_mode(void);

#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
index 458a0e2bcc57..a25a9fd987a9 100644
--- a/arch/x86/platform/efi/quirks.c
+++ b/arch/x86/platform/efi/quirks.c
@@ -449,7 +449,7 @@ void __init efi_free_boot_services(void)
*/
rm_size = real_mode_size_needed();
if (rm_size && (start + rm_size) < (1<<20) && size >= rm_size) {
- set_real_mode_mem(start, rm_size);
+ set_real_mode_mem(start);
start += rm_size;
size -= rm_size;
}
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index 47d097946872..7dce39c8c034 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -15,13 +15,6 @@ u32 *trampoline_cr4_features;
/* Hold the pgd entry used on booting additional CPUs */
pgd_t trampoline_pgd_entry;

-void __init set_real_mode_mem(phys_addr_t mem, size_t size)
-{
- void *base = __va(mem);
-
- real_mode_header = (struct real_mode_header *) base;
-}
-
void __init reserve_real_mode(void)
{
phys_addr_t mem;
@@ -40,7 +33,7 @@ void __init reserve_real_mode(void)
}

memblock_reserve(mem, size);
- set_real_mode_mem(mem, size);
+ set_real_mode_mem(mem);
}

static void __init setup_real_mode(void)
--
2.20.1



2019-03-28 12:15:13

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] x86: remove unused argument from set_real_mode_mem()


On 3/28/2019 5:12 PM, Matteo Croce wrote:
> Following commit b929a500d684 ("x86/realmode: Don't leak the trampoline
> kernel address"), set_real_mode_mem() is a trivial function with a
> unused argument.
> Remove the unused argument and move it into an header file, so it can be
> inlined.
>
> Signed-off-by: Matteo Croce <[email protected]>
Seems you are doing two things in the same patch argument removal, and
function movement.
Although, i am ok with it unless somebody question it.


Reviewed-by: Mukesh Ojha <[email protected]>

-Mukesh

> ---
> arch/x86/include/asm/realmode.h | 6 +++++-
> arch/x86/platform/efi/quirks.c | 2 +-
> arch/x86/realmode/init.c | 9 +--------
> 3 files changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
> index 63b3393bd98e..c53682303c9c 100644
> --- a/arch/x86/include/asm/realmode.h
> +++ b/arch/x86/include/asm/realmode.h
> @@ -77,7 +77,11 @@ static inline size_t real_mode_size_needed(void)
> return ALIGN(real_mode_blob_end - real_mode_blob, PAGE_SIZE);
> }
>
> -void set_real_mode_mem(phys_addr_t mem, size_t size);
> +static inline void set_real_mode_mem(phys_addr_t mem)
> +{
> + real_mode_header = (struct real_mode_header *) __va(mem);
> +}
> +
> void reserve_real_mode(void);
>
> #endif /* __ASSEMBLY__ */
> diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
> index 458a0e2bcc57..a25a9fd987a9 100644
> --- a/arch/x86/platform/efi/quirks.c
> +++ b/arch/x86/platform/efi/quirks.c
> @@ -449,7 +449,7 @@ void __init efi_free_boot_services(void)
> */
> rm_size = real_mode_size_needed();
> if (rm_size && (start + rm_size) < (1<<20) && size >= rm_size) {
> - set_real_mode_mem(start, rm_size);
> + set_real_mode_mem(start);
> start += rm_size;
> size -= rm_size;
> }
> diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
> index 47d097946872..7dce39c8c034 100644
> --- a/arch/x86/realmode/init.c
> +++ b/arch/x86/realmode/init.c
> @@ -15,13 +15,6 @@ u32 *trampoline_cr4_features;
> /* Hold the pgd entry used on booting additional CPUs */
> pgd_t trampoline_pgd_entry;
>
> -void __init set_real_mode_mem(phys_addr_t mem, size_t size)
> -{
> - void *base = __va(mem);
> -
> - real_mode_header = (struct real_mode_header *) base;
> -}
> -
> void __init reserve_real_mode(void)
> {
> phys_addr_t mem;
> @@ -40,7 +33,7 @@ void __init reserve_real_mode(void)
> }
>
> memblock_reserve(mem, size);
> - set_real_mode_mem(mem, size);
> + set_real_mode_mem(mem);
> }
>
> static void __init setup_real_mode(void)

Subject: [tip:x86/urgent] x86/realmode: Make set_real_mode_mem() static inline

Commit-ID: f560bd19d2fe0e54851d706b72acbc6f2eed3567
Gitweb: https://git.kernel.org/tip/f560bd19d2fe0e54851d706b72acbc6f2eed3567
Author: Matteo Croce <[email protected]>
AuthorDate: Thu, 28 Mar 2019 12:42:33 +0100
Committer: Borislav Petkov <[email protected]>
CommitDate: Fri, 29 Mar 2019 10:16:27 +0100

x86/realmode: Make set_real_mode_mem() static inline

Remove the unused @size argument and move it into a header file, so it
can be inlined.

[ bp: Massage. ]

Signed-off-by: Matteo Croce <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Reviewed-by: Mukesh Ojha <[email protected]>
Cc: Ard Biesheuvel <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: linux-efi <[email protected]>
Cc: [email protected]
Cc: Thomas Gleixner <[email protected]>
Cc: x86-ml <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
arch/x86/include/asm/realmode.h | 6 +++++-
arch/x86/platform/efi/quirks.c | 2 +-
arch/x86/realmode/init.c | 9 +--------
3 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
index 63b3393bd98e..c53682303c9c 100644
--- a/arch/x86/include/asm/realmode.h
+++ b/arch/x86/include/asm/realmode.h
@@ -77,7 +77,11 @@ static inline size_t real_mode_size_needed(void)
return ALIGN(real_mode_blob_end - real_mode_blob, PAGE_SIZE);
}

-void set_real_mode_mem(phys_addr_t mem, size_t size);
+static inline void set_real_mode_mem(phys_addr_t mem)
+{
+ real_mode_header = (struct real_mode_header *) __va(mem);
+}
+
void reserve_real_mode(void);

#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
index 458a0e2bcc57..a25a9fd987a9 100644
--- a/arch/x86/platform/efi/quirks.c
+++ b/arch/x86/platform/efi/quirks.c
@@ -449,7 +449,7 @@ void __init efi_free_boot_services(void)
*/
rm_size = real_mode_size_needed();
if (rm_size && (start + rm_size) < (1<<20) && size >= rm_size) {
- set_real_mode_mem(start, rm_size);
+ set_real_mode_mem(start);
start += rm_size;
size -= rm_size;
}
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index 47d097946872..7dce39c8c034 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -15,13 +15,6 @@ u32 *trampoline_cr4_features;
/* Hold the pgd entry used on booting additional CPUs */
pgd_t trampoline_pgd_entry;

-void __init set_real_mode_mem(phys_addr_t mem, size_t size)
-{
- void *base = __va(mem);
-
- real_mode_header = (struct real_mode_header *) base;
-}
-
void __init reserve_real_mode(void)
{
phys_addr_t mem;
@@ -40,7 +33,7 @@ void __init reserve_real_mode(void)
}

memblock_reserve(mem, size);
- set_real_mode_mem(mem, size);
+ set_real_mode_mem(mem);
}

static void __init setup_real_mode(void)