[Top] [All Lists]

FW: [PATCH] cleanup hardcoding __pa/__va macros etc. (take-2)

To: "" <>
Subject: FW: [PATCH] cleanup hardcoding __pa/__va macros etc. (take-2)
From: girish <>
Date: Tue, 26 Sep 2006 11:24:06 +0900
Cc: girish <>
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta;; h=received:user-agent:date:subject:from:to:cc:message-id:thread-topic:thread-index:in-reply-to:mime-version:content-type:content-transfer-encoding; b=XGhN7TE/q74xrqdO/Y+e3Fzqr597p5LugBH6zSdAeHO2Rc/UfLiPjT0mlFxhxHYMO9hB29BRdwMWuVXrcRQHuiDHTgry4+sJkOLdwsTEYx1cHtak0bof7ehJIDYup2D1v8qoREf4TJGJy9iQ6N/eWuTubHI/Q7ycoPMKigoYDuo=
In-reply-to: <>
Original-recipient: rfc822;
Thread-index: AcbhEptu2kUULU0FEdulewATIGIqNAAADuYZ
Thread-topic: [PATCH] cleanup hardcoding __pa/__va macros etc. (take-2)
User-agent: Microsoft-Entourage/
------ Forwarded Message
From: girish <>
Date: Tue, 26 Sep 2006 11:22:26 +0900
To: Atsushi Nemoto <>
Cc: "" <>
Conversation: [PATCH] cleanup hardcoding __pa/__va macros etc. (take-2)
Subject: Re: [PATCH] cleanup hardcoding __pa/__va macros etc. (take-2)

The idea is to differentiate the Kseg0/Kseg1 segments in the physical area.
Beyond these areas lies the mapped area (or the HIGHMEM). What complicates
this matter further is their overlapping nature. The __pa()/__va() treated
all addresses mapped into PAGE_OFFSET (8000_0000) area. The effort is to
correctly differentiate these areas.

I could not think of any better solution & the only simplification I came up
with -

#ifdef CONFIG_32BIT
/* 8000_0000 & above */
#define ISMAPPEDPA(x)   ((x) > KSEG0)
/* below 2000_0000 */
#define ISMAPPEDPA(x)   (1)
#define ISMAPPEDVA(x)   (1)

#define ___pa(x)        ((unsigned long) (x) - KSEGX((x)))
#define __pa(x)         (ISUNMAPPEDPA(x) ? ___pa((x)) : (x))

#define ___va(x)        ((void *)((unsigned long) (x) + KSEG0))
#define __va(x)         (ISUNMAPPEDVA(x) ? ___va((x)) : (x))

On 9/26/06 12:43 AM, "Atsushi Nemoto" <> wrote:

> On Mon, 25 Sep 2006 23:51:46 +0900, girish <> wrote:
>> Here is the patch again, attached as a text file. I don't have idea how
>> these macros should be on a 64bit machine, so I just left them as it is.
>> Could you please verify these macros again?
> Well, I should ask first: Why do you change __pa() and __va() ?
> I can not see point of ISMAPPED() testing.  And these macros are used
> quite often so they should be as fast as possible.
> ---
> Atsushi Nemoto

------ End of Forwarded Message

<Prev in Thread] Current Thread [Next in Thread>
  • FW: [PATCH] cleanup hardcoding __pa/__va macros etc. (take-2), girish <=