alistair23-linux/arch/ia64/kernel
Luck, Tony 1a499150e4 [IA64] Fix unaligned handler for floating point instructions with base update
The compiler team did the hard work for this distilling a problem in
large fortran application which showed up when applied to a 290MB input
data set down to this instruction:

	ldfd f34=[r17],-8

Which they noticed incremented r17 by 0x10 rather than decrementing it
by 8 when the value in r17 caused an unaligned data fault.  I tracked
it down to some bad instruction decoding in unaligned.c. The code
assumes that the 'x' bit can determine whether the instruction is
an "ldf" or "ldfp" ... which it is for opcode=6 (see table 4-29 on
page 3:302 of the SDM).  But for opcode=7 the 'x' bit is irrelevent,
all variants are "ldf" instructions (see table 4-36 on page 3:306).

Note also that interpreting the instruction as "ldfp" means that the
"paired" floating point register (f35 in the example here) will also
be corrupted.

Signed-off-by: Tony Luck <tony.luck@intel.com>
2008-01-15 14:26:55 -08:00
..
cpufreq [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core 2007-10-04 18:40:57 -04:00
.gitignore [IA64] Add gate.lds to list of files ignored by Git 2007-11-06 15:39:45 -08:00
acpi-ext.c Pull acpi_os_free into release branch 2006-07-01 17:19:08 -04:00
acpi-processor.c [IA64] Fix using uninitialized data in _PDC setup 2007-05-24 10:14:30 -07:00
acpi.c [IA64] operator priority fix in acpi_map_lsapic() 2007-12-07 16:12:30 -08:00
asm-offsets.c [IA64] Convert to generic timekeeping/clocksource 2007-07-20 11:22:30 -07:00
audit.c [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
brl_emu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
crash.c [IA64] Fix kernel hangup in kdump on INIT 2007-10-12 15:24:40 -07:00
crash_dump.c [IA64] kexec: Minor enhancement to includes in crash.c 2007-02-05 11:31:04 -08:00
cyclone.c cyclone.c: silly use of volatile, __iomem fixes 2007-07-26 11:11:57 -07:00
efi.c [IA64] make full use of macro efi_md_size 2007-12-07 16:12:00 -08:00
efi_stub.S [IA64] make efi_stub.S fit in 80 cols 2006-06-21 14:35:28 -07:00
entry.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
entry.S [IA64] fallocate system call 2007-07-19 13:48:00 -07:00
err_inject.c [IA64] typo s/kenrel/kernel/ 2007-05-10 09:35:30 -07:00
esi.c [IA64] esi-support 2006-06-21 11:19:22 -07:00
esi_stub.S [IA64] esi-support 2006-06-21 11:19:22 -07:00
fsys.S [IA64] Convert to generic timekeeping/clocksource 2007-07-20 11:22:30 -07:00
fsyscall_gtod_data.h [IA64] Convert to generic timekeeping/clocksource 2007-07-20 11:22:30 -07:00
gate-data.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gate.lds.S [IA64] increase .data.patch offset 2007-12-07 14:28:02 -08:00
gate.S [IA64] Stop bit for brl instruction 2007-07-09 13:37:44 -07:00
head.S [IA64] Remove assembler warnings on head.S 2007-12-19 11:15:12 -08:00
ia64_ksyms.c [IA64] export copy_page() to modules 2007-12-07 16:10:19 -08:00
init_task.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
iosapic.c [IA64] Fix iosapic interrupt delivery mode for CPE 2007-12-07 16:13:03 -08:00
irq.c [IA64] Clean up /proc/interrupts output 2007-11-06 15:40:52 -08:00
irq_ia64.c [IA64] Remove compiler warinings about uninitialized variable in irq_ia64.c 2007-12-19 11:13:27 -08:00
irq_lsapic.c [IA64] spelling fixes: arch/ia64/ 2007-05-11 14:55:43 -07:00
ivt.S [IA64] relax per-cpu TLB requirement to DTC 2007-02-06 15:04:48 -08:00
jprobes.S [IA64] enable trap code on slot 1 2006-12-12 12:00:55 -08:00
kprobes.c [IA64] kprobe: make kreturn probe handler stack unwind correct 2007-12-07 16:12:50 -08:00
machine_kexec.c [IA64] fix non-numa build 2007-10-17 14:28:38 -07:00
machvec.c [IA64] Ensure that machvec is set up takes place before serial console 2007-07-25 11:12:47 -07:00
Makefile [IA64] Itanium MC Error Injection Tool: Makefile changes 2007-01-29 15:27:07 -08:00
mca.c [IA64] Adjust CMCI mask on CPU hotplug 2007-12-19 12:30:47 -08:00
mca_asm.S [IA64] Support multiple CPUs going through OS_MCA 2007-07-11 11:50:11 -07:00
mca_drv.c [IA64] spelling fixes: arch/ia64/ 2007-05-11 14:55:43 -07:00
mca_drv.h [IA64] Fix kernel panic in kdump on INIT 2007-10-12 15:24:06 -07:00
mca_drv_asm.S [IA64] Don't set psr.ic and psr.i simultaneously 2007-07-09 10:30:28 -07:00
minstate.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
module.c [IA64] spelling fixes: arch/ia64/ 2007-05-11 14:55:43 -07:00
msi_ia64.c [IA64] Fix incorrect return value from ia64_setup_msi_irq() 2007-10-30 09:54:47 -07:00
numa.c [PATCH] cpumask: export node_to_cpu_mask consistently 2006-10-02 07:57:17 -07:00
pal.S [IA64] reformat pal.S to fit in 80 columns, fix typos 2006-10-17 14:54:19 -07:00
palinfo.c [IA64] Update printing of feature set bits 2007-11-09 13:05:30 -08:00
patch.c [IA64] Clean-up McKinley Errata message 2007-11-06 15:40:07 -08:00
perfmon.c [IA64] Fix perfmon sysctl directory modes 2007-11-06 13:20:43 -08:00
perfmon_default_smpl.c Use helpers to obtain task pid in printks (arch code) 2007-10-19 11:53:43 -07:00
perfmon_generic.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
perfmon_itanium.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
perfmon_mckinley.h [IA64] spelling fixes: arch/ia64/ 2007-05-11 14:55:43 -07:00
perfmon_montecito.h [IA64] sparse cleanups 2006-12-07 10:48:19 -08:00
process.c [IA64] set_thread_area fails in IA32 chroot 2007-12-19 11:06:40 -08:00
ptrace.c Fix spurious syscall tracing after PTRACE_DETACH + PTRACE_ATTACH 2007-09-10 18:57:47 -07:00
relocate_kernel.S [IA64] Removal of percpu TR cleanup in kexec code 2007-05-08 10:00:28 -07:00
sal.c [IA64] spelling fixes: arch/ia64/ 2007-05-11 14:55:43 -07:00
salinfo.c [IA64] tree-wide: Misc __cpu{initdata, init, exit} annotations 2007-10-12 14:13:38 -07:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.c [IA64] rename _bss to __bss_start 2007-12-07 16:11:49 -08:00
sigframe.h [IA64] Add TIF_RESTORE_SIGMASK 2007-05-08 14:51:59 -07:00
signal.c [IA64] signal: remove redundant code in setup_sigcontext() 2007-12-18 16:55:15 -08:00
smp.c [IA64] Allow smp_call_function_single() to current cpu 2007-07-30 16:26:45 -07:00
smpboot.c [IA64] /proc/cpuinfo "physical id" field cleanups 2007-10-29 11:14:54 -07:00
sys_ia64.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
time.c Fix discrepancy between VDSO based gettimeofday() and sys_gettimeofday(). 2007-10-18 14:37:20 -07:00
topology.c [IA64] tree-wide: Misc __cpu{initdata, init, exit} annotations 2007-10-12 14:13:38 -07:00
traps.c Use helpers to obtain task pid in printks (arch code) 2007-10-19 11:53:43 -07:00
unaligned.c [IA64] Fix unaligned handler for floating point instructions with base update 2008-01-15 14:26:55 -08:00
uncached.c [IA64] make flush_tlb_kernel_range() an inline function 2007-12-19 12:30:30 -08:00
unwind.c [IA64] Correct unwind validation code 2007-06-26 13:33:10 -07:00
unwind_decoder.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unwind_i.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vmlinux.lds.S [IA64] rename _bss to __bss_start 2007-12-07 16:11:49 -08:00