diff -urN linux-2.5.69/arch/ia64/ia32/sys_ia32.c linux-2.5.69-fix/arch/ia64/ia32/sys_ia32.c --- linux-2.5.69/arch/ia64/ia32/sys_ia32.c Mon May 12 14:20:23 2003 +++ linux-2.5.69-fix/arch/ia64/ia32/sys_ia32.c Fri May 30 11:26:25 2003 @@ -1860,7 +1860,7 @@ ptp = ia64_task_regs(tsk); tos = (tsk->thread.fsr >> 11) & 7; for (i = 0; i < 8; i++) - put_fpreg(i, (struct _fpreg_ia32 *)&save->st_space[4*i], ptp, swp, tos); + put_fpreg(i, &save->st_space[i], ptp, swp, tos); return 0; } @@ -1893,7 +1893,7 @@ ptp = ia64_task_regs(tsk); tos = (tsk->thread.fsr >> 11) & 7; for (i = 0; i < 8; i++) - get_fpreg(i, (struct _fpreg_ia32 *)&save->st_space[4*i], ptp, swp, tos); + get_fpreg(i, &save->st_space[i], ptp, swp, tos); return 0; } diff -urN linux-2.5.69/include/asm-ia64/ia32.h linux-2.5.69-fix/include/asm-ia64/ia32.h --- linux-2.5.69/include/asm-ia64/ia32.h Mon May 12 14:20:32 2003 +++ linux-2.5.69-fix/include/asm-ia64/ia32.h Fri May 30 11:26:25 2003 @@ -108,7 +108,8 @@ int fcs; int foo; int fos; - int st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ + /* 8*10 bytes for each FP-reg = 80 bytes */ + struct _fpreg_ia32 st_space[8]; }; struct ia32_user_fxsr_struct {