linux-mips
[Top] [All Lists]

Re: cmpxchg broken in some situation

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: cmpxchg broken in some situation
From: Fuxin Zhang <fxzhang@ict.ac.cn>
Date: Tue, 02 Oct 2007 17:34:44 +0800
Cc: linux-mips@linux-mips.org
In-reply-to: <20071001152620.GB15820@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <46FF7BC2.5050905@ict.ac.cn> <20071001025340.GA7091@linux-mips.org> <47010E15.7060109@ict.ac.cn> <20071001152620.GB15820@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: IceDove 1.5.0.10 (X11/20070329)
The problem is here:

switch (sizeof(__ptr)) { // --> should be sizeof(*(__ptr))
case 4:
...
Recompiling..

Ralf Baechle 写道:
On Mon, Oct 01, 2007 at 11:11:17PM +0800, Fuxin Zhang wrote:

Sorry that it seems not work:
the kernel oops at sysfs_open_file->sysfs_get_active with unaligned access(last seen exception on screen, no serial console by hand so it may not be the first exception). It is probably caused by "atomic_cmpxchg" there. And keep the old kernel using new modules with patched cmpxchg also lead to glxgears die(should be lock problem like before).

Can you look at the disassembly of the generated code?  It should hopefully
be relativly obvious in the disassembly.

  Ralf




<Prev in Thread] Current Thread [Next in Thread>