Re: [bisected] 2.6.29-rc1 Firefox crashing on page load

From: Justin Madru
Date: Tue Jan 20 2009 - 01:20:28 EST


Hiroshi Shimamoto wrote:
Justin Madru wrote:
Ok, finally bisected the bug, but the commit isn't related to networking!
I did: git revert 4217458dafaa57d8e26a46f5d05ab8c53cf64191
on current git and that fixed the bug.

By the way, how do I undo my git revert, so I'm back to a pristine tree?
I want to drop my changes - the revert.
Also how do I find the commit that merged/pulled in this commit?

commit 4217458dafaa57d8e26a46f5d05ab8c53cf64191
Author: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
Date: Fri Dec 5 17:17:09 2008 -0800

x86: signal: change type of paramter for sys_rt_sigreturn()

Impact: cleanup on 32-bit

Peter pointed this parameter can be changed.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>

Hi,
thanks for reporting.

I'm not sure why this commit affects.
Can you check vmlinux? size, objdump, etc.
On my environment, the generated code looks same.

Thanks,
Hiroshi

I tried to do an objdump but it gave an error. How am I suppose to do an objdump?

$ objdump -x /boot/vmlinuz-2.6.29-rc2-git
objdump: /boot/vmlinuz-2.6.29-rc2-git: File format not recognized
$ readelf -a /boot/vmlinuz-2.6.29-rc2-git
readelf: Error: Unable to seek to 0xc031f2eb for section headers
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
$ ls -la /boot/vmlinuz-2.6.29-rc2-git
-rw-r--r-- 1 root root 2286480 2009-01-19 18:44 /boot/vmlinuz-2.6.29-rc2-git

Anyways, I've uploaded the extracted data.tar.gz file from the kernel deb file created when I
build a kernel (I use ubuntu and make-kpkg). The archive includes the kernel, config, system.map
and modules that I used. The files can be found at http://jdserver.homelinux.org/bugreports/002/
There are 2 files: data-norevert.tar.bz2 is a build without the revert, data-revert.tar.bz2 has the revert.

I think peter annema might have have a reason why it's crashing firefox.
If sizeof(struct pt_regs) != sizeof(unsigned long) the the stack could become
unbalanced if other code is not expecting a struct pt_regs.

Peter Annema wrote:
> #ifdef CONFIG_X86_32
> -asmlinkage int sys_rt_sigreturn(unsigned long __unused)
> +asmlinkage int sys_rt_sigreturn(struct pt_regs regs)
> {
> - struct pt_regs *regs = (struct pt_regs *)&__unused;
> -
> - return do_rt_sigreturn(regs);
> + return do_rt_sigreturn(&regs);
> }

Is sizeof(struct pt_regs) different from sizeof(unsigned long)? If so, is some
code somewhere messing with the stack and not expecting a struct pt_regs to have
been put on it?

Justin Madru
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/