Re: ia64 uaccess changes?

From: Keith Owens <kaos_at_sgi.com>
Date: 2005-02-04 20:44:29
On Fri, 4 Feb 2005 01:37:24 -0800, 
Andrew Morton <akpm@osdl.org> wrote:
>
>Did something changed with the ia64 uaccess functions a few weeks ago?
>
>Because a couple of weeks ago I was seeing repeatable oopses in Linus's
>tree early in boot in create_elf_tables(), here:
>
>	/* Now, let's put argc (and argv, envp if appropriate) on the stack */
>	if (__put_user(argc, sp++))
>		return -EFAULT;
>
>that shouldn't happen.
>
>
>Now, Linus's tree works OK, but I'm seeing repeatable oopses late in boot
>with this patch applied: 
>
>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc2/2.6.11-rc2-mm2/broken-out/add-do_proc_doulonglongvec_minmax-to-sysctl-functions.patch
>
>which is crazy - that code isn't even executed.

2.6.11-rc3 also breaks on SN2 in create_elf_tables().

Freeing unused kernel memory: 352kB freed
init[1]: IA-64 Illegal operation fault 0 [1]
Modules linked in:
    
Pid: 1, CPU 1, comm:                 init
psr : 0000101008026018 ifs : 8000000000000710 ip  : [<a0000001001ae120>]    Not tainted
ip is at create_elf_tables+0x3c0/0x800
unat: 0000000000000000 pfs : 0000000000000000 rsc : 0000000000000000
rnat: 0000000000000000 bsps: e00000b07a850e70 pr  : 000000000000801b
ldrs: 0000000000880000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
csd : 0000000000000000 ssd : 0000000000000000
f6  : 000000000000000000000 f7  : 000000000000000000000
f8  : 000000000000000000000 f9  : 000000000000000000000
f10 : 000000000000000000000 f11 : 000000000000000000000
r1  : a000000100ce0720 r2  : e00000b07a857d10 r3  : 0000000000000308                                                                          r8  : 0000000000000000 r9  : 0000000000000000 r10 : 0000000000000000                                                                          r11 : 0000000000000000 r12 : 60000fffffffbdf0 r13 : e00000b07a850000                                                                          r14 : 0000000000000000 r15 : 0000000000000409 r16 : e00000b07a850e70                                                                          r17 : ffffffffffffffc1 r18 : 0000000000000040 r19 : 0000000000000000                                                                          r20 : 0009804c0270033f r21 : a000000100009290 r22 : 0000000000000000                                                                          r23 : 60000fff7fffc000 r24 : 0000000000000000 r25 : 0000000000000000                                                                      
     r26 : 0000000000000186 r27 : 000000000000000f r28 : 4000000000000200                                                                          r29 : 00001013085a6000 r30 : 0000000000000003 r31 : 0000000000005541

Call Trace: 
 [<a000000100010220>] show_stack+0x80/0xa0
                                sp=e00000b07a857b30 bsp=e00000b07a850f58
 [<a000000100010b00>] show_regs+0x860/0x880 
                                sp=e00000b07a857d00 bsp=e00000b07a850ef8
 [<a000000100036050>] die+0x170/0x220
                                sp=e00000b07a857d10 bsp=e00000b07a850ec0
 [<a000000100036140>] die_if_kernel+0x40/0x60
                                sp=e00000b07a857d10 bsp=e00000b07a850e98
 [<a000000100036c60>] ia64_illegal_op_fault+0x60/0x140
                                sp=e00000b07a857d10 bsp=e00000b07a850e78
 [<a000000100003f20>] dispatch_illegal_op_fault+0x300/0x800
                                sp=e00000b07a857e30 bsp=e00000b07a850e78

The code in create_elf_tables is good.  Single stepping through the
offending region works, but as soon as the kernel is allowed to run
again it dies at a different place in create_elf_tables.

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Fri Feb 4 04:45:50 2005

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