linux-mips
[Top] [All Lists]

Re: Removal of ____raw_readq() and ____raw_writeq() from asm-mips/io.h

To: Ladislav Michl <ladis@linux-mips.org>
Subject: Re: Removal of ____raw_readq() and ____raw_writeq() from asm-mips/io.h
From: Jes Sorensen <jes@wildopensource.com>
Date: 28 Jan 2004 05:49:58 -0500
Cc: Kevin Paul Herbert <kph@cisco.com>, linux-mips@linux-mips.org
In-reply-to: <20040128094032.GB900@kopretinka>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1075255111.8744.4.camel@shakedown> <20040128094032.GB900@kopretinka>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2
>>>>> "Ladislav" == Ladislav Michl <ladis@linux-mips.org> writes:

Ladislav> On Tue, Jan 27, 2004 at 05:58:31PM -0800, Kevin Paul Herbert
Ladislav> wrote:
>> In edit 1.68, the non-interrupt locking versions of
>> raw_readq()/raw_writeq() were removed, in favor of locking
>> ones. While this makes sense in general, it breaks the compilation
>> of the sb1250 which uses the non-locking versions (____raw_readq()
>> and ____raw_writeq()) in interrupt handlers.

Ladislav> Why was someone using these function at all? if you don't
Ladislav> need locking simply do *reg_addr = val;

ARGHHHHHHHHHH!

If you are accessing memory mapped registers or memory on a PCI
device, ie. likely on a 1250, you *must* use the readX/__raw_readX
macros. Anybody just doing *reg = val on a PCI device should be
banned from writing code for life!

Jes

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