android_kernel_xiaomi_sm8350/arch/ia64/kernel
Keith Owens b833961bd3 [IA64] unwind.c uses wrong unat from switch_stack
unwind.c can read the wrong unat bits from switch_stack.
sw->caller_unat is the value of ar.unat when the task was blocked.
sw->ar_unat is the value of ar.unat after doing st8.spill for r4-7.
IOW, ar_unat is caller_unat with 4 bits changed.

unw_access_gr() uses sw->ar_unat for r4-7 (correct), but it also uses
sw->ar_unat for other scratch registers (incorrect).  sw->ar_unat
should only be used for r4-7, everything else should use
sw->caller_unat, unless modified by unwind info.  Using sw->ar_unat
risks picking up the 4 bits that were overwritten when r4-7 were saved.

Also this line is wrong
	unw.sw_off[unw.preg_index[UNW_REG_PFS]] = SW(AR_UNAT);
and should be
	unw.sw_off[unw.preg_index[UNW_REG_PFS]] = SW(AR_PFS);

Signed-off-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-07-27 14:18:08 -07:00
..
acpi-ext.c
acpi.c [ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc... 2005-07-12 17:21:56 -04:00
asm-offsets.c
brl_emu.c
cyclone.c
domain.c
efi_stub.S
efi.c
entry.h
entry.S [IA64] inotify: ia64 syscalls. 2005-07-27 10:46:12 -07:00
fsys.S
gate-data.S
gate.lds.S
gate.S
head.S
ia64_ksyms.c
init_task.c
iosapic.c [IA64] assign_irq_vector() should not panic 2005-07-11 10:30:07 -07:00
irq_ia64.c [IA64] assign_irq_vector() should not panic 2005-07-11 10:30:07 -07:00
irq_lsapic.c
irq.c
ivt.S
jprobes.S
kprobes.c
machvec.c
Makefile
mca_asm.S
mca_drv_asm.S
mca_drv.c
mca_drv.h
mca.c [ACPI] Evaluate CPEI Processor Override flag 2005-07-12 00:01:41 -04:00
minstate.h
module.c
numa.c
pal.S
palinfo.c
patch.c
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon.c
process.c [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
ptrace.c
sal.c
salinfo.c
semaphore.c
setup.c Auto merge with /home/aegl/GIT/linus 2005-07-13 12:15:43 -07:00
sigframe.h
signal.c
smp.c
smpboot.c
sys_ia64.c
time.c
topology.c [IA64] Fix undefined reference to can_cpei_retarget for simulator 2005-07-14 09:21:47 -07:00
traps.c
unaligned.c
uncached.c
unwind_decoder.c
unwind_i.h
unwind.c [IA64] unwind.c uses wrong unat from switch_stack 2005-07-27 14:18:08 -07:00
vmlinux.lds.S