Commit 881ecabf authored by David Mosberger's avatar David Mosberger

ia64: Make things compile with gcc-pre3.4 and work on the simulator.

parent 70ae9e94
...@@ -115,6 +115,7 @@ static struct irqaction mca_wkup_irqaction = { ...@@ -115,6 +115,7 @@ static struct irqaction mca_wkup_irqaction = {
.name = "mca_wkup" .name = "mca_wkup"
}; };
#ifdef CONFIG_ACPI
static struct irqaction mca_cpe_irqaction = { static struct irqaction mca_cpe_irqaction = {
.handler = ia64_mca_cpe_int_handler, .handler = ia64_mca_cpe_int_handler,
.flags = SA_INTERRUPT, .flags = SA_INTERRUPT,
...@@ -126,6 +127,7 @@ static struct irqaction mca_cpep_irqaction = { ...@@ -126,6 +127,7 @@ static struct irqaction mca_cpep_irqaction = {
.flags = SA_INTERRUPT, .flags = SA_INTERRUPT,
.name = "cpe_poll" .name = "cpe_poll"
}; };
#endif /* CONFIG_ACPI */
#define MAX_CPE_POLL_INTERVAL (15*60*HZ) /* 15 minutes */ #define MAX_CPE_POLL_INTERVAL (15*60*HZ) /* 15 minutes */
#define MIN_CPE_POLL_INTERVAL (2*60*HZ) /* 2 minutes */ #define MIN_CPE_POLL_INTERVAL (2*60*HZ) /* 2 minutes */
...@@ -434,6 +436,7 @@ ia64_mca_check_errors (void) ...@@ -434,6 +436,7 @@ ia64_mca_check_errors (void)
device_initcall(ia64_mca_check_errors); device_initcall(ia64_mca_check_errors);
#ifdef CONFIG_ACPI
/* /*
* ia64_mca_register_cpev * ia64_mca_register_cpev
* *
...@@ -458,6 +461,7 @@ ia64_mca_register_cpev (int cpev) ...@@ -458,6 +461,7 @@ ia64_mca_register_cpev (int cpev)
IA64_MCA_DEBUG("ia64_mca_platform_init: corrected platform error " IA64_MCA_DEBUG("ia64_mca_platform_init: corrected platform error "
"vector %#x setup and enabled\n", cpev); "vector %#x setup and enabled\n", cpev);
} }
#endif /* CONFIG_ACPI */
#endif /* PLATFORM_MCA_HANDLERS */ #endif /* PLATFORM_MCA_HANDLERS */
...@@ -750,6 +754,7 @@ ia64_mca_init(void) ...@@ -750,6 +754,7 @@ ia64_mca_init(void)
/* Setup the MCA wakeup interrupt vector */ /* Setup the MCA wakeup interrupt vector */
register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, &mca_wkup_irqaction); register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, &mca_wkup_irqaction);
#ifdef CONFIG_ACPI
/* Setup the CPE interrupt vector */ /* Setup the CPE interrupt vector */
{ {
irq_desc_t *desc; irq_desc_t *desc;
...@@ -767,6 +772,7 @@ ia64_mca_init(void) ...@@ -767,6 +772,7 @@ ia64_mca_init(void)
ia64_mca_register_cpev(cpev); ia64_mca_register_cpev(cpev);
} }
} }
#endif
/* Initialize the areas set aside by the OS to buffer the /* Initialize the areas set aside by the OS to buffer the
* platform/processor error states for MCA/INIT/CMC * platform/processor error states for MCA/INIT/CMC
...@@ -1279,11 +1285,13 @@ ia64_mca_late_init(void) ...@@ -1279,11 +1285,13 @@ ia64_mca_late_init(void)
init_timer(&cpe_poll_timer); init_timer(&cpe_poll_timer);
cpe_poll_timer.function = ia64_mca_cpe_poll; cpe_poll_timer.function = ia64_mca_cpe_poll;
#ifdef CONFIG_ACPI
/* If platform doesn't support CPEI, get the timer going. */ /* If platform doesn't support CPEI, get the timer going. */
if (acpi_request_vector(ACPI_INTERRUPT_CPEI) < 0 && cpe_poll_enabled) { if (acpi_request_vector(ACPI_INTERRUPT_CPEI) < 0 && cpe_poll_enabled) {
register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction); register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction);
ia64_mca_cpe_poll(0UL); ia64_mca_cpe_poll(0UL);
} }
#endif
return 0; return 0;
} }
...@@ -1398,6 +1406,9 @@ ia64_log_init(int sal_info_type) ...@@ -1398,6 +1406,9 @@ ia64_log_init(int sal_info_type)
// SAL will tell us the maximum size of any error record of this type // SAL will tell us the maximum size of any error record of this type
max_size = ia64_sal_get_state_info_size(sal_info_type); max_size = ia64_sal_get_state_info_size(sal_info_type);
if (!max_size)
/* alloc_bootmem() doesn't like zero-sized allocations! */
return;
// set up OS data structures to hold error info // set up OS data structures to hold error info
IA64_LOG_ALLOCATE(sal_info_type, max_size); IA64_LOG_ALLOCATE(sal_info_type, max_size);
......
...@@ -323,11 +323,12 @@ setsid (void) ...@@ -323,11 +323,12 @@ setsid (void)
return sys_setsid(); return sys_setsid();
} }
struct rusage;
static inline pid_t static inline pid_t
waitpid (int pid, int * wait_stat, int flags) waitpid (int pid, int * wait_stat, int flags)
{ {
extern asmlinkage long sys_wait4 (pid_t, unsigned int *, int, struct rusage *); extern asmlinkage long sys_wait4 (pid_t, unsigned int *, int, struct rusage *);
struct rusage;
return sys_wait4(pid, wait_stat, flags, NULL); return sys_wait4(pid, wait_stat, flags, NULL);
} }
...@@ -374,8 +375,7 @@ clone (unsigned long flags, void *sp) ...@@ -374,8 +375,7 @@ clone (unsigned long flags, void *sp)
asm volatile ( "break " __stringify(__BREAK_SYSCALL) ";;\n\t" asm volatile ( "break " __stringify(__BREAK_SYSCALL) ";;\n\t"
: "=r" (r8), "=r" (r10), "=r" (r15), "=r" (out0), "=r" (out1) : "=r" (r8), "=r" (r10), "=r" (r15), "=r" (out0), "=r" (out1)
: "2" (r15), "3" (out0), "4" (out1) : "2" (r15), "3" (out0), "4" (out1)
: "memory", "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7", : "memory", "out2", "out3", "out4", "out5", "out6", "out7", "r13",
"r13",
/* Non-stacked integer registers, minus r8, r10, r15, r13 */ /* Non-stacked integer registers, minus r8, r10, r15, r13 */
"r2", "r3", "r9", "r11", "r12", "r14", "r16", "r17", "r18", "r2", "r3", "r9", "r11", "r12", "r14", "r16", "r17", "r18",
"r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment