mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1389.9.6 (428135ccBlRW99tjfmtjk5XjVtLT3A)
Minor adaptations for common ACPI update and other common changes
This commit is contained in:
1 parent
3cfd87898e
commit
8f0d79996d
8 files changed
+53
-11
No files matched your search
@@ -191,7 +191,7 @@ void arch_do_createdomain(struct exec_domain *ed)
|
||||
// stay on kernel stack because may get interrupts!
|
||||
// ia64_ret_from_clone (which b0 gets in new_thread) switches
|
||||
// to user stack
|
||||
ed->thread.on_ustack = 0;
|
||||
ed->arch._thread.on_ustack = 0;
|
||||
}
|
||||
|
||||
void arch_do_boot_vcpu(struct exec_domain *p)
|
||||
@@ -261,7 +261,7 @@ void new_thread(struct exec_domain *ed,
|
||||
printf("new_thread: ed=%p, start_pc=%p, regs=%p, sw=%p, new_rbs=%p, IA64_STK_OFFSET=%p, &r8=%p\n",
|
||||
ed,start_pc,regs,sw,new_rbs,IA64_STK_OFFSET,®s->r8);
|
||||
sw->b0 = (unsigned long) &ia64_ret_from_clone;
|
||||
ed->thread.ksp = (unsigned long) sw - 16;
|
||||
ed->arch._thread.ksp = (unsigned long) sw - 16;
|
||||
//ed->thread_info->flags = 0;
|
||||
printk("new_thread, about to call init_all_rr\n");
|
||||
init_all_rr(ed);
|
||||
|
||||
@@ -1406,9 +1406,11 @@ int pirq_guest_bind(struct exec_domain *d, int irq, int will_share)
|
||||
desc->handler->startup(irq);
|
||||
|
||||
/* Attempt to bind the interrupt target to the correct CPU. */
|
||||
#if 0 /* FIXME CONFIG_SMP ??? */
|
||||
if ( desc->handler->set_affinity != NULL )
|
||||
desc->handler->set_affinity(
|
||||
irq, apicid_to_phys_cpu_present(d->processor));
|
||||
#endif
|
||||
}
|
||||
else if ( !will_share || !action->shareable )
|
||||
{
|
||||
|
||||
@@ -227,7 +227,7 @@ ia64_set_rbs_bot (void)
|
||||
|
||||
if (stack_size > MAX_USER_STACK_SIZE)
|
||||
stack_size = MAX_USER_STACK_SIZE;
|
||||
current->thread.rbs_bot = STACK_TOP - stack_size;
|
||||
current->arch._thread.rbs_bot = STACK_TOP - stack_size;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -255,7 +255,7 @@ printf("ia64_init_addr_space: called, not implemented\n");
|
||||
if (vma) {
|
||||
memset(vma, 0, sizeof(*vma));
|
||||
vma->vm_mm = current->mm;
|
||||
vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
|
||||
vma->vm_start = current->arch._thread.rbs_bot & PAGE_MASK;
|
||||
vma->vm_end = vma->vm_start + PAGE_SIZE;
|
||||
vma->vm_page_prot = protection_map[VM_DATA_DEFAULT_FLAGS & 0x7];
|
||||
vma->vm_flags = VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE|VM_GROWSUP;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--- ../../linux-2.6.11/arch/ia64/kernel/unaligned.c 2005-03-02 00:38:25.000000000 -0700
|
||||
+++ arch/ia64/unaligned.c 2005-04-28 15:40:13.000000000 -0600
|
||||
+++ arch/ia64/unaligned.c 2005-05-10 15:46:09.000000000 -0600
|
||||
@@ -437,7 +437,11 @@
|
||||
}
|
||||
|
||||
@@ -12,7 +12,31 @@
|
||||
setreg (unsigned long regnum, unsigned long val, int nat, struct pt_regs *regs)
|
||||
{
|
||||
struct switch_stack *sw = (struct switch_stack *) regs - 1;
|
||||
@@ -611,7 +615,11 @@
|
||||
@@ -522,7 +526,11 @@
|
||||
*/
|
||||
if (regnum >= IA64_FIRST_ROTATING_FR) {
|
||||
ia64_sync_fph(current);
|
||||
+#ifdef XEN
|
||||
+ current->arch._thread.fph[fph_index(regs, regnum)] = *fpval;
|
||||
+#else
|
||||
current->thread.fph[fph_index(regs, regnum)] = *fpval;
|
||||
+#endif
|
||||
} else {
|
||||
/*
|
||||
* pt_regs or switch_stack ?
|
||||
@@ -581,7 +589,11 @@
|
||||
*/
|
||||
if (regnum >= IA64_FIRST_ROTATING_FR) {
|
||||
ia64_flush_fph(current);
|
||||
+#ifdef XEN
|
||||
+ *fpval = current->arch._thread.fph[fph_index(regs, regnum)];
|
||||
+#else
|
||||
*fpval = current->thread.fph[fph_index(regs, regnum)];
|
||||
+#endif
|
||||
} else {
|
||||
/*
|
||||
* f0 = 0.0, f1= 1.0. Those registers are constant and are thus
|
||||
@@ -611,7 +623,11 @@
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +48,7 @@
|
||||
getreg (unsigned long regnum, unsigned long *val, int *nat, struct pt_regs *regs)
|
||||
{
|
||||
struct switch_stack *sw = (struct switch_stack *) regs - 1;
|
||||
@@ -1294,6 +1302,9 @@
|
||||
@@ -1294,6 +1310,9 @@
|
||||
void
|
||||
ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs)
|
||||
{
|
||||
@@ -34,7 +58,7 @@
|
||||
struct ia64_psr *ipsr = ia64_psr(regs);
|
||||
mm_segment_t old_fs = get_fs();
|
||||
unsigned long bundle[2];
|
||||
@@ -1502,4 +1513,5 @@
|
||||
@@ -1502,4 +1521,5 @@
|
||||
si.si_imm = 0;
|
||||
force_sig_info(SIGBUS, &si, current);
|
||||
goto done;
|
||||
|
||||
@@ -517,7 +517,7 @@ printf("ia64_fault, vector=0x%p, ifa=%p, iip=%p, ipsr=%p, isr=%p\n",
|
||||
case 32: /* fp fault */
|
||||
case 33: /* fp trap */
|
||||
//result = handle_fpu_swa((vector == 32) ? 1 : 0, regs, isr);
|
||||
if ((result < 0) || (current->thread.flags & IA64_THREAD_FPEMU_SIGFPE)) {
|
||||
//if ((result < 0) || (current->thread.flags & IA64_THREAD_FPEMU_SIGFPE)) {
|
||||
//siginfo.si_signo = SIGFPE;
|
||||
//siginfo.si_errno = 0;
|
||||
//siginfo.si_code = FPE_FLTINV;
|
||||
@@ -526,7 +526,7 @@ printf("ia64_fault, vector=0x%p, ifa=%p, iip=%p, ipsr=%p, isr=%p\n",
|
||||
//siginfo.si_isr = isr;
|
||||
//siginfo.si_imm = 0;
|
||||
//force_sig_info(SIGFPE, &siginfo, current);
|
||||
}
|
||||
//}
|
||||
//return;
|
||||
sprintf(buf, "FP fault/trap");
|
||||
break;
|
||||
|
||||
@@ -79,6 +79,14 @@ void raise_actimer_softirq(void)
|
||||
raise_softirq(AC_TIMER_SOFTIRQ);
|
||||
}
|
||||
|
||||
unsigned long __hypercall_create_continuation(
|
||||
unsigned int op, unsigned int nr_args, ...)
|
||||
{
|
||||
printf("__hypercall_create_continuation: not implemented!!!\n");
|
||||
}
|
||||
|
||||
///////////////////////////////
|
||||
|
||||
///////////////////////////////
|
||||
// from arch/x86/apic.c
|
||||
///////////////////////////////
|
||||
|
||||
@@ -258,6 +258,14 @@ struct screen_info { };
|
||||
#define seq_printf(a,b...) printf(b)
|
||||
#define CONFIG_BLK_DEV_INITRD // needed to reserve memory for domain0
|
||||
|
||||
//
|
||||
#define __smp_processor_id() (current->processor)
|
||||
|
||||
// needed for newer ACPI code
|
||||
#define asmlinkage
|
||||
|
||||
#define FORCE_CRASH() asm("break 0;;");
|
||||
|
||||
// these declarations got moved at some point, find a better place for them
|
||||
extern int opt_noht;
|
||||
extern int ht_per_core;
|
||||
|
||||
@@ -60,7 +60,7 @@ struct arch_exec_domain {
|
||||
};
|
||||
|
||||
#define active_mm arch.active_mm
|
||||
#define thread arch._thread
|
||||
//#define thread arch._thread
|
||||
|
||||
// FOLLOWING FROM linux-2.6.7/include/sched.h
|
||||
|
||||
|
||||