Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 104356
b: refs/heads/master
c: 78cbac6
h: refs/heads/master
v: v3
  • Loading branch information
Alexander van Heukelum authored and Ingo Molnar committed Jul 18, 2008
1 parent b6bb5bc commit 0bdad38
Show file tree
Hide file tree
Showing 30 changed files with 364 additions and 355 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c4dc59ae7af8c1c116d2cb4dffba337f032a6bee
refs/heads/master: 78cbac65fd77242f3e5d77f4d7a71e8bc869fe4d
11 changes: 4 additions & 7 deletions trunk/arch/x86/ia32/ia32_signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,6 @@

#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))

#define FIX_EFLAGS (X86_EFLAGS_AC | X86_EFLAGS_OF | \
X86_EFLAGS_DF | X86_EFLAGS_TF | X86_EFLAGS_SF | \
X86_EFLAGS_ZF | X86_EFLAGS_AF | X86_EFLAGS_PF | \
X86_EFLAGS_CF)

asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset);
void signal_fault(struct pt_regs *regs, void __user *frame, char *where);

Expand Down Expand Up @@ -253,7 +248,7 @@ static int ia32_restore_sigcontext(struct pt_regs *regs,
regs->ss |= 3;

err |= __get_user(tmpflags, &sc->flags);
regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS);
regs->flags = (regs->flags & ~0x40DD5) | (tmpflags & 0x40DD5);
/* disable syscall checks */
regs->orig_ax = -1;

Expand Down Expand Up @@ -520,6 +515,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
compat_sigset_t *set, struct pt_regs *regs)
{
struct rt_sigframe __user *frame;
struct exec_domain *ed = current_thread_info()->exec_domain;
void __user *restorer;
int err = 0;

Expand All @@ -542,7 +538,8 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
goto give_sigsegv;

err |= __put_user(sig, &frame->sig);
err |= __put_user((ed && ed->signal_invmap && sig < 32
? ed->signal_invmap[sig] : sig), &frame->sig);
err |= __put_user(ptr_to_compat(&frame->info), &frame->pinfo);
err |= __put_user(ptr_to_compat(&frame->uc), &frame->puc);
err |= copy_siginfo_to_user32(&frame->info, info);
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/x86/kernel/cpu/amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
extern void vide(void);
__asm__(".align 4\nvide: ret");

int force_mwait __cpuinitdata;

static void __cpuinit early_init_amd(struct cpuinfo_x86 *c)
{
if (cpuid_eax(0x80000000) >= 0x80000007) {
Expand Down
3 changes: 3 additions & 0 deletions trunk/arch/x86/kernel/cpu/common_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@
#include <linux/module.h>
#include <linux/kgdb.h>
#include <linux/topology.h>
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/smp.h>
#include <linux/module.h>
#include <linux/percpu.h>
#include <asm/processor.h>
#include <asm/i387.h>
#include <asm/msr.h>
#include <asm/io.h>
Expand Down
33 changes: 29 additions & 4 deletions trunk/arch/x86/kernel/e820.c
Original file line number Diff line number Diff line change
Expand Up @@ -877,8 +877,7 @@ void __init early_res_to_bootmem(u64 start, u64 end)
for (i = 0; i < MAX_EARLY_RES && early_res[i].end; i++)
count++;

printk(KERN_INFO "(%d early reservations) ==> bootmem [%010llx - %010llx]\n",
count, start, end);
printk(KERN_INFO "(%d early reservations) ==> bootmem\n", count);
for (i = 0; i < count; i++) {
struct early_res *r = &early_res[i];
printk(KERN_INFO " #%d [%010llx - %010llx] %16s", i,
Expand Down Expand Up @@ -1299,6 +1298,11 @@ void __init e820_reserve_resources(void)
}
}

/*
* Non-standard memory setup can be specified via this quirk:
*/
char * (*arch_memory_setup_quirk)(void);

char *__init default_machine_specific_memory_setup(void)
{
char *who = "BIOS-e820";
Expand Down Expand Up @@ -1339,8 +1343,8 @@ char *__init default_machine_specific_memory_setup(void)

char *__init __attribute__((weak)) machine_specific_memory_setup(void)
{
if (x86_quirks->arch_memory_setup) {
char *who = x86_quirks->arch_memory_setup();
if (arch_memory_setup_quirk) {
char *who = arch_memory_setup_quirk();

if (who)
return who;
Expand All @@ -1363,3 +1367,24 @@ void __init setup_memory_map(void)
printk(KERN_INFO "BIOS-provided physical RAM map:\n");
e820_print_map(who);
}

#ifdef CONFIG_X86_64
int __init arch_get_ram_range(int slot, u64 *addr, u64 *size)
{
int i;

if (slot < 0 || slot >= e820.nr_map)
return -1;
for (i = slot; i < e820.nr_map; i++) {
if (e820.map[i].type != E820_RAM)
continue;
break;
}
if (i == e820.nr_map || e820.map[i].addr > (max_pfn << PAGE_SHIFT))
return -1;
*addr = e820.map[i].addr;
*size = min_t(u64, e820.map[i].size + e820.map[i].addr,
max_pfn << PAGE_SHIFT) - *addr;
return i + 1;
}
#endif
3 changes: 0 additions & 3 deletions trunk/arch/x86/kernel/io_delay.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,6 @@ void __init io_delay_init(void)

static int __init io_delay_param(char *s)
{
if (!s)
return -EINVAL;

if (!strcmp(s, "0x80"))
io_delay_type = CONFIG_IO_DELAY_TYPE_0X80;
else if (!strcmp(s, "0xed"))
Expand Down
Loading

0 comments on commit 0bdad38

Please sign in to comment.