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

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

 



------ Forwarded Message
From: girish <girishvg@xxxxxxxxx>
Date: Tue, 26 Sep 2006 11:22:26 +0900
To: Atsushi Nemoto <anemo@xxxxxxxxxxxxx>
Cc: "linux-mips@xxxxxxxxxxxxxx" <git-commits@xxxxxxxxxxxxxx>
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 ISUNMAPPEDVA(x) ((x) < HIGHMEM_START)
#else
#define ISMAPPEDPA(x)   (1)
#define ISMAPPEDVA(x)   (1)
#endif

#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" <anemo@xxxxxxxxxxxxx> wrote:

> On Mon, 25 Sep 2006 23:51:46 +0900, girish <girishvg@xxxxxxxxx> 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




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux