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

Commit f12e6a45 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'x86/cleanups' into x86/signal



Conflicts:
	arch/x86/kernel/signal_64.c

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parents 046fd537 dc44e659
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -137,14 +137,15 @@ relocated:
 */
	movl output_len(%ebx), %eax
	pushl %eax
			# push arguments for decompress_kernel:
	pushl %ebp	# output address
	movl input_len(%ebx), %eax
	pushl %eax	# input_len
	leal input_data(%ebx), %eax
	pushl %eax	# input_data
	leal boot_heap(%ebx), %eax
	pushl %eax	# heap area as third argument
	pushl %esi	# real mode pointer as second arg
	pushl %eax	# heap area
	pushl %esi	# real mode pointer
	call decompress_kernel
	addl $20, %esp
	popl %ecx
+6 −4
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@
#include <linux/linkage.h>
#include <linux/screen_info.h>
#include <linux/elf.h>
#include <asm/io.h>
#include <linux/io.h>
#include <asm/page.h>
#include <asm/boot.h>
#include <asm/bootparam.h>
@@ -277,7 +277,8 @@ static void *memset(void *s, int c, unsigned n)
	int i;
	char *ss = s;

	for (i = 0; i < n; i++) ss[i] = c;
	for (i = 0; i < n; i++)
		ss[i] = c;
	return s;
}

@@ -287,7 +288,8 @@ static void *memcpy(void *dest, const void *src, unsigned n)
	const char *s = src;
	char *d = dest;

	for (i = 0; i < n; i++) d[i] = s[i];
	for (i = 0; i < n; i++)
		d[i] = s[i];
	return dest;
}

+7 −4
Original line number Diff line number Diff line
@@ -85,8 +85,10 @@ static void dump_thread32(struct pt_regs *regs, struct user32 *dump)
	dump->regs.ax = regs->ax;
	dump->regs.ds = current->thread.ds;
	dump->regs.es = current->thread.es;
	asm("movl %%fs,%0" : "=r" (fs)); dump->regs.fs = fs;
	asm("movl %%gs,%0" : "=r" (gs)); dump->regs.gs = gs;
	savesegment(fs, fs);
	dump->regs.fs = fs;
	savesegment(gs, gs);
	dump->regs.gs = gs;
	dump->regs.orig_ax = regs->orig_ax;
	dump->regs.ip = regs->ip;
	dump->regs.cs = regs->cs;
@@ -430,8 +432,9 @@ static int load_aout_binary(struct linux_binprm *bprm, struct pt_regs *regs)
	current->mm->start_stack =
		(unsigned long)create_aout_tables((char __user *)bprm->p, bprm);
	/* start thread */
	asm volatile("movl %0,%%fs" :: "r" (0)); \
	asm volatile("movl %0,%%es; movl %0,%%ds": :"r" (__USER32_DS));
	loadsegment(fs, 0);
	loadsegment(ds, __USER32_DS);
	loadsegment(es, __USER32_DS);
	load_gs_index(0);
	(regs)->ip = ex.a_entry;
	(regs)->sp = current->mm->start_stack;
+10 −11
Original line number Diff line number Diff line
@@ -207,7 +207,7 @@ struct rt_sigframe
	{ unsigned int cur;						\
	  unsigned short pre;						\
	  err |= __get_user(pre, &sc->seg);				\
	  asm volatile("movl %%" #seg ",%0" : "=r" (cur));		\
	  savesegment(seg, cur);					\
	  pre |= mask;							\
	  if (pre != cur) loadsegment(seg, pre); }

@@ -236,7 +236,7 @@ static int ia32_restore_sigcontext(struct pt_regs *regs,
	 */
	err |= __get_user(gs, &sc->gs);
	gs |= 3;
	asm("movl %%gs,%0" : "=r" (oldgs));
	savesegment(gs, oldgs);
	if (gs != oldgs)
		load_gs_index(gs);

@@ -342,14 +342,13 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
{
	int tmp, err = 0;

	tmp = 0;
	__asm__("movl %%gs,%0" : "=r"(tmp): "0"(tmp));
	savesegment(gs, tmp);
	err |= __put_user(tmp, (unsigned int __user *)&sc->gs);
	__asm__("movl %%fs,%0" : "=r"(tmp): "0"(tmp));
	savesegment(fs, tmp);
	err |= __put_user(tmp, (unsigned int __user *)&sc->fs);
	__asm__("movl %%ds,%0" : "=r"(tmp): "0"(tmp));
	savesegment(ds, tmp);
	err |= __put_user(tmp, (unsigned int __user *)&sc->ds);
	__asm__("movl %%es,%0" : "=r"(tmp): "0"(tmp));
	savesegment(es, tmp);
	err |= __put_user(tmp, (unsigned int __user *)&sc->es);

	err |= __put_user((u32)regs->di, &sc->di);
@@ -491,8 +490,8 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
	regs->dx = 0;
	regs->cx = 0;

	asm volatile("movl %0,%%ds" :: "r" (__USER32_DS));
	asm volatile("movl %0,%%es" :: "r" (__USER32_DS));
	loadsegment(ds, __USER32_DS);
	loadsegment(es, __USER32_DS);

	regs->cs = __USER32_CS;
	regs->ss = __USER32_DS;
@@ -588,8 +587,8 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
	regs->dx = (unsigned long) &frame->info;
	regs->cx = (unsigned long) &frame->uc;

	asm volatile("movl %0,%%ds" :: "r" (__USER32_DS));
	asm volatile("movl %0,%%es" :: "r" (__USER32_DS));
	loadsegment(ds, __USER32_DS);
	loadsegment(es, __USER32_DS);

	regs->cs = __USER32_CS;
	regs->ss = __USER32_DS;
+2 −3
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ EXPORT_SYMBOL(acpi_disabled);
#ifdef	CONFIG_X86_64

#include <asm/proto.h>
#include <asm/genapic.h>

#else				/* X86 */

@@ -97,8 +96,6 @@ static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
#warning ACPI uses CMPXCHG, i486 and later hardware
#endif

static int acpi_mcfg_64bit_base_addr __initdata = FALSE;

/* --------------------------------------------------------------------------
                              Boot-time Configuration
   -------------------------------------------------------------------------- */
@@ -160,6 +157,8 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size)
struct acpi_mcfg_allocation *pci_mmcfg_config;
int pci_mmcfg_config_num;

static int acpi_mcfg_64bit_base_addr __initdata = FALSE;

static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg)
{
	if (!strcmp(mcfg->header.oem_id, "SGI"))
Loading