Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a126e78 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 boot updates from Ingo Molnar:
 "Two cleanups"

* 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/boot: Add missing va_end() to die()
  x86/boot: Simplify the detect_memory*() control flow
parents 38fabca1 69be4efe
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+10 −21
Original line number Diff line number Diff line
@@ -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();
}
+1 −0
Original line number Diff line number Diff line
@@ -132,6 +132,7 @@ static void die(const char * str, ...)
	va_list args;
	va_start(args, str);
	vfprintf(stderr, str, args);
	va_end(args);
	fputc('\n', stderr);
	exit(1);
}