Commit b4d53d4b authored by Linus Torvalds's avatar Linus Torvalds

Merge http://lia64.bkbits.net/to-linus-2.5

into home.osdl.org:/home/torvalds/v2.5/linux
parents fbf464a2 9fbaaac0
...@@ -589,7 +589,7 @@ acpi_boot_init (void) ...@@ -589,7 +589,7 @@ acpi_boot_init (void)
smp_boot_data.cpu_count = available_cpus; smp_boot_data.cpu_count = available_cpus;
smp_build_cpu_map(); smp_build_cpu_map();
# ifdef CONFIG_NUMA # ifdef CONFIG_ACPI_NUMA
if (srat_num_cpus == 0) { if (srat_num_cpus == 0) {
int cpu, i = 1; int cpu, i = 1;
for (cpu = 0; cpu < smp_boot_data.cpu_count; cpu++) for (cpu = 0; cpu < smp_boot_data.cpu_count; cpu++)
......
...@@ -465,8 +465,6 @@ unsigned int do_IRQ(unsigned long irq, struct pt_regs *regs) ...@@ -465,8 +465,6 @@ unsigned int do_IRQ(unsigned long irq, struct pt_regs *regs)
desc->handler->ack(irq); desc->handler->ack(irq);
action_ret = handle_IRQ_event(irq, regs, desc->action); action_ret = handle_IRQ_event(irq, regs, desc->action);
desc->handler->end(irq); desc->handler->end(irq);
if (!noirqdebug)
note_interrupt(irq, desc, action_ret);
} else { } else {
spin_lock(&desc->lock); spin_lock(&desc->lock);
desc->handler->ack(irq); desc->handler->ack(irq);
......
...@@ -239,10 +239,9 @@ ia64_log_get(int sal_info_type, u8 **buffer, int irq_safe) ...@@ -239,10 +239,9 @@ ia64_log_get(int sal_info_type, u8 **buffer, int irq_safe)
* and wakes up any processes waiting for error records. * and wakes up any processes waiting for error records.
* *
* Inputs : sal_info_type (Type of error record MCA/CMC/CPE/INIT) * Inputs : sal_info_type (Type of error record MCA/CMC/CPE/INIT)
* called_from_init (1 for boot processing)
*/ */
static void static void
ia64_mca_log_sal_error_record(int sal_info_type, int called_from_init) ia64_mca_log_sal_error_record(int sal_info_type)
{ {
u8 *buffer; u8 *buffer;
u64 size; u64 size;
...@@ -255,7 +254,7 @@ ia64_mca_log_sal_error_record(int sal_info_type, int called_from_init) ...@@ -255,7 +254,7 @@ ia64_mca_log_sal_error_record(int sal_info_type, int called_from_init)
salinfo_log_wakeup(sal_info_type, buffer, size, irq_safe); salinfo_log_wakeup(sal_info_type, buffer, size, irq_safe);
if (irq_safe || called_from_init) if (irq_safe)
printk(KERN_INFO "CPU %d: SAL log contains %s error record\n", printk(KERN_INFO "CPU %d: SAL log contains %s error record\n",
smp_processor_id(), smp_processor_id(),
sal_info_type < ARRAY_SIZE(rec_name) ? rec_name[sal_info_type] : "UNKNOWN"); sal_info_type < ARRAY_SIZE(rec_name) ? rec_name[sal_info_type] : "UNKNOWN");
...@@ -280,7 +279,7 @@ ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) ...@@ -280,7 +279,7 @@ ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs)
local_irq_enable(); local_irq_enable();
/* Get the CMC error record and log it */ /* Get the CMC error record and log it */
ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CPE, 0); ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CPE);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
...@@ -469,32 +468,6 @@ init_handler_platform (pal_min_state_area_t *ms, ...@@ -469,32 +468,6 @@ init_handler_platform (pal_min_state_area_t *ms,
while (1); /* hang city if no debugger */ while (1); /* hang city if no debugger */
} }
/*
* ia64_mca_check_errors
*
* External entry to check for error records which may have been posted by SAL
* for a prior failure which resulted in a machine shutdown before an the
* error could be logged. This function must be called after the filesystem
* is initialized.
*
* Inputs : None
*
* Outputs : None
*/
int
ia64_mca_check_errors (void)
{
/*
* If there is an MCA error record pending, get it and log it.
*/
printk(KERN_INFO "CPU %d: checking for saved MCA error records\n", smp_processor_id());
ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA, 1);
return 0;
}
device_initcall(ia64_mca_check_errors);
#ifdef CONFIG_ACPI #ifdef CONFIG_ACPI
/* /*
* ia64_mca_register_cpev * ia64_mca_register_cpev
...@@ -831,7 +804,7 @@ ia64_mca_ucmc_handler(void) ...@@ -831,7 +804,7 @@ ia64_mca_ucmc_handler(void)
int recover = psp->tc && !(psp->cc || psp->bc || psp->rc || psp->uc); int recover = psp->tc && !(psp->cc || psp->bc || psp->rc || psp->uc);
/* Get the MCA error record and log it */ /* Get the MCA error record and log it */
ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA, 0); ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA);
/* /*
* Wakeup all the processors which are spinning in the rendezvous * Wakeup all the processors which are spinning in the rendezvous
...@@ -875,7 +848,7 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs) ...@@ -875,7 +848,7 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs)
local_irq_enable(); local_irq_enable();
/* Get the CMC error record and log it */ /* Get the CMC error record and log it */
ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CMC, 0); ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CMC);
spin_lock(&cmc_history_lock); spin_lock(&cmc_history_lock);
if (!cmc_polling_enabled) { if (!cmc_polling_enabled) {
......
...@@ -18,10 +18,6 @@ ...@@ -18,10 +18,6 @@
* 10/13/00 Goutham Rao <goutham.rao@intel.com> Updated smp_call_function and * 10/13/00 Goutham Rao <goutham.rao@intel.com> Updated smp_call_function and
* smp_call_function_single to resend IPI on timeouts * smp_call_function_single to resend IPI on timeouts
*/ */
#define __KERNEL_SYSCALLS__
#include <linux/config.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/sched.h> #include <linux/sched.h>
......
...@@ -10,10 +10,6 @@ ...@@ -10,10 +10,6 @@
* smp_boot_cpus()/smp_commence() is replaced by * smp_boot_cpus()/smp_commence() is replaced by
* smp_prepare_cpus()/__cpu_up()/smp_cpus_done(). * smp_prepare_cpus()/__cpu_up()/smp_cpus_done().
*/ */
#define __KERNEL_SYSCALLS__
#include <linux/config.h> #include <linux/config.h>
#include <linux/module.h> #include <linux/module.h>
...@@ -306,7 +302,6 @@ smp_callin (void) ...@@ -306,7 +302,6 @@ smp_callin (void)
#ifdef CONFIG_IA64_MCA #ifdef CONFIG_IA64_MCA
ia64_mca_cmc_vector_setup(); /* Setup vector on AP & enable */ ia64_mca_cmc_vector_setup(); /* Setup vector on AP & enable */
ia64_mca_check_errors(); /* For post-failure MCA error logging */
#endif #endif
#ifdef CONFIG_PERFMON #ifdef CONFIG_PERFMON
......
...@@ -5,9 +5,14 @@ ...@@ -5,9 +5,14 @@
CPPFLAGS="" CPPFLAGS=""
CC=$1 CC=$1
OBJDUMP=$2 OBJDUMP=$2
READELF=$3
dir=$(dirname $0) dir=$(dirname $0)
tmp=${TMPDIR:-/tmp} tmp=${TMPDIR:-/tmp}
out=$tmp/out$$ out=$tmp/out$$
# Check whether cross-segment segment-relative relocs work fine. We need
# that for building the gate DSO:
$CC -nostdlib -static -Wl,-T$dir/check-segrel.lds $dir/check-segrel.S -o $out $CC -nostdlib -static -Wl,-T$dir/check-segrel.lds $dir/check-segrel.S -o $out
res=$($OBJDUMP --full --section .rodata $out | fgrep 000 | cut -f3 -d' ') res=$($OBJDUMP --full --section .rodata $out | fgrep 000 | cut -f3 -d' ')
rm -f $out rm -f $out
...@@ -20,6 +25,16 @@ warning: your linker cannot handle cross-segment segment-relative relocations. ...@@ -20,6 +25,16 @@ warning: your linker cannot handle cross-segment segment-relative relocations.
EOF EOF
fi fi
# Check whether .align inside a function works as expected.
$CC -c $dir/check-text-align.S -o $out
$READELF -u $out | fgrep -q 'prologue(rlen=12)'
res=$?
rm -f $out
if [ $res -eq 0 ]; then
CPPFLAGS="$CPPFLAGS -DHAVE_WORKING_TEXT_ALIGN"
fi
if ! $CC -c $dir/check-model.c -o $out 2>&1 | grep __model__ | grep -q attrib if ! $CC -c $dir/check-model.c -o $out 2>&1 | grep __model__ | grep -q attrib
then then
CPPFLAGS="$CPPFLAGS -DHAVE_MODEL_SMALL_ATTRIBUTE" CPPFLAGS="$CPPFLAGS -DHAVE_MODEL_SMALL_ATTRIBUTE"
......
...@@ -71,6 +71,8 @@ u64 sn_partition_serial_number; ...@@ -71,6 +71,8 @@ u64 sn_partition_serial_number;
short physical_node_map[MAX_PHYSNODE_ID]; short physical_node_map[MAX_PHYSNODE_ID];
EXPORT_SYMBOL(physical_node_map);
int numionodes; int numionodes;
/* /*
* This is the address of the RRegs in the HSpace of the global * This is the address of the RRegs in the HSpace of the global
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Copyright (C) 2001-2003 Silicon Graphics, Inc. All rights reserved. * Copyright (C) 2001-2003 Silicon Graphics, Inc. All rights reserved.
* *
*/ */
#include <linux/module.h>
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
/** /**
......
...@@ -772,7 +772,7 @@ sn_sal_read_proc(char *page, char **start, off_t off, int count, ...@@ -772,7 +772,7 @@ sn_sal_read_proc(char *page, char **start, off_t off, int count,
int len = 0; int len = 0;
off_t begin = 0; off_t begin = 0;
len += sprintf(page, "sn_serial: nasid:%d irq:%d tx:%d rx:%d\n", len += sprintf(page, "sn_serial: nasid:%ld irq:%d tx:%d rx:%d\n",
ia64_sn_get_console_nasid(), sn_sal_irq, ia64_sn_get_console_nasid(), sn_sal_irq,
sn_total_tx_count, sn_total_rx_count); sn_total_tx_count, sn_total_rx_count);
*eof = 1; *eof = 1;
......
...@@ -114,7 +114,6 @@ extern void ia64_mca_ucmc_handler(void); ...@@ -114,7 +114,6 @@ extern void ia64_mca_ucmc_handler(void);
extern void ia64_monarch_init_handler(void); extern void ia64_monarch_init_handler(void);
extern void ia64_slave_init_handler(void); extern void ia64_slave_init_handler(void);
extern void ia64_mca_cmc_vector_setup(void); extern void ia64_mca_cmc_vector_setup(void);
extern int ia64_mca_check_errors(void);
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
#endif /* _ASM_IA64_MCA_H */ #endif /* _ASM_IA64_MCA_H */
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