[Linux-ia64] Unwinder bug

From: Andreas Schwab <schwab_at_suse.de>
Date: 2003-03-26 00:41:01
I've found this by inspecting the code: pt_regs_off returns an offset into
struct pt_regs.  Relative to latest bk, 2.5 has the same bug.

Andreas.

--- linux-ia64-2.4/arch/ia64/kernel/unwind.c.~1~	2003-03-25 13:38:21.000000000 +0100
+++ linux-ia64-2.4/arch/ia64/kernel/unwind.c	2003-03-25 13:49:15.000000000 +0100
@@ -324,7 +324,7 @@ unw_access_gr (struct unw_frame_info *in
 		} else {
 			/* access a scratch register */
 			pt = get_scratch_regs(info);
-			addr = (unsigned long *) (pt + pt_regs_off(regnum));
+			addr = (unsigned long *) ((unsigned long)pt + pt_regs_off(regnum));
 			if (info->pri_unat_loc)
 				nat_addr = info->pri_unat_loc;
 			else

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Received on Tue Mar 25 05:41:08 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:12 EST