lkml.org 
[lkml]   [2018]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] x86: boot: Simplified memory.c
memory.c contains functions that retrieve the memory-map of the
available RAM.

They are all called inside of "detect_memory()" which is
called in x86/boot/main.c. The return value of "detect_memory()" is
not checked so none of all the return values have any effect
on the program flow.

Define them as void-functions to save overhead.

Done by motivation of Ingo Molnar.

Signed-off-by: Jordan Borgner <mail@jordan-borgner.de>
---
arch/x86/boot/boot.h | 2 +-
arch/x86/boot/memory.c | 31 ++++++++++---------------------
2 files changed, 11 insertions(+), 22 deletions(-)

diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
index ef5a9cc..32a09eb 100644
--- a/arch/x86/boot/boot.h
+++ b/arch/x86/boot/boot.h
@@ -309,7 +309,7 @@ void query_edd(void);
void __attribute__((noreturn)) die(void);

/* memory.c */
-int detect_memory(void);
+void detect_memory(void);

/* pm.c */
void __attribute__((noreturn)) go_to_protected_mode(void);
diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
index 7df2b28..f06c147 100644
--- a/arch/x86/boot/memory.c
+++ b/arch/x86/boot/memory.c
@@ -17,7 +17,7 @@

#define SMAP 0x534d4150 /* ASCII "SMAP" */

-static int detect_memory_e820(void)
+static void detect_memory_e820(void)
{
int count = 0;
struct biosregs ireg, oreg;
@@ -68,10 +68,10 @@ static int detect_memory_e820(void)
count++;
} while (ireg.ebx && count < ARRAY_SIZE(boot_params.e820_table));

- return boot_params.e820_entries = count;
+ boot_params.e820_entries = count;
}

-static int detect_memory_e801(void)
+static void detect_memory_e801(void)
{
struct biosregs ireg, oreg;

@@ -80,7 +80,7 @@ static int detect_memory_e801(void)
intcall(0x15, &ireg, &oreg);

if (oreg.eflags & X86_EFLAGS_CF)
- return -1;
+ return;

/* Do we really need to do this? */
if (oreg.cx || oreg.dx) {
@@ -89,7 +89,7 @@ static int detect_memory_e801(void)
}

if (oreg.ax > 15*1024) {
- return -1; /* Bogus! */
+ return; /* Bogus! */
} else if (oreg.ax == 15*1024) {
boot_params.alt_mem_k = (oreg.bx << 6) + oreg.ax;
} else {
@@ -102,11 +102,9 @@ static int detect_memory_e801(void)
*/
boot_params.alt_mem_k = oreg.ax;
}
-
- return 0;
}

-static int detect_memory_88(void)
+static void detect_memory_88(void)
{
struct biosregs ireg, oreg;

@@ -115,22 +113,13 @@ static int detect_memory_88(void)
intcall(0x15, &ireg, &oreg);

boot_params.screen_info.ext_mem_k = oreg.ax;
-
- return -(oreg.eflags & X86_EFLAGS_CF); /* 0 or -1 */
}

-int detect_memory(void)
+void detect_memory(void)
{
- int err = -1;
-
- if (detect_memory_e820() > 0)
- err = 0;
-
- if (!detect_memory_e801())
- err = 0;
+ detect_memory_e820();

- if (!detect_memory_88())
- err = 0;
+ detect_memory_e801();

- return err;
+ detect_memory_88();
}
--
2.11.0
\
 
 \ /
  Last update: 2018-11-02 16:00    [W:0.028 / U:2.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site