Re: Random memory corruption with 64-bit SMP 2.6.30-rc4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Could it be, that always r21 and r22 are involved?
> Maybe we don't restore them correctly after some syscalls like fork / getpwnam...?
> Esp. the comment for r21-r22 in arch/parisc/kernel/entry.S:1708 seems interesting:
> 
>         /* Register saving semantics for system calls:
> 
>            %r1             clobbered by system call macro in userspace
>            %r2             saved in PT_REGS by gateway page
>            %r3  - %r18     preserved by C code (saved by signal code)
>            %r19 - %r20     saved in PT_REGS by gateway page
>            %r21 - %r22     non-standard syscall args
>                            stored in kernel stack by gateway page

This is only true for r21 and r22 with a 32-bit kernel (see syscall.S:176).
However, the argument locations might get mixed up if one wasn't careful.
The getpwent bug occurs with both 32 and 64-bit kernels on the c3750.

I guess I should test a UP kernel on the rp3440.  I have never seen
the getpwent bug on the rp3440.  I don't see the memory corruption
on the c3750 (gcc builds without problems using 2.6.30-rc4).

Dave
-- 
J. David Anglin                                  dave.anglin@xxxxxxxxxxxxxx
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux