Re: [PATCH 6/7] setup.c: clean up initrd related code

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

 



Atsushi Nemoto wrote:
> On Thu, 19 Oct 2006 10:39:14 +0200, Franck Bui-Huu <vagabon.xyz@xxxxxxxxx> wrote:
>> BTW, what about this condition:
>>
>> 		if (initrd_start < PAGE_OFFSET) {
>> 			...;
>> 		}
>>
>> that would work even on 32 bits kernel.
> 
> This does not work if PAGE_OFFSET was 0xffffffff80000000 and
> initrd_start was 0x980000000XXXXXXX :-)
> 

I think we should terminate this patch pretty quickly because
it's going to make me mad ;)

How can PAGE_OFFSET be in CKSEG0 segment and initrd_start be
in XKPHYS ?

With the current code we can say:

  - If PAGE_OFFSET is in CKSEG0, that means that all kernel
    virtual address must be in CKSEG0.
  - If PAGE_OFFSET is in XKPHYS, that means that _after_ booting
    process all kernel virtual address will be in XKPHYS. But we
    allow CKSEG0 virtual address during boot for the reasons
    we know.

What woud give __pa(initrd_start) in your example ?

__pa(initrd_start) -> 0x980000000XXXXXXX - 0xffffffff80000000

which is wrong...Does your example come from a real use case ?

		Franck


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

  Powered by Linux