Atsushi Nemoto wrote: > On Thu, 19 Oct 2006 08:37:32 +0200, "Franck Bui-Huu" <vagabon.xyz@xxxxxxxxx> wrote: >> I would rather move this fix into initrd start setup function as it >> was done by old code. We know that some bootloaders forget sign >> extension on 64 bits kernel. But if for example the sign extension is >> forgotten by a board specific code, we shouldn't automatically fix the >> mistake, but rather fix the board specific code. So I would do instead >> of your fix: > > But we need sign extension for values comes from the initrd_header > anyway. The initrd_header is fixed-size and can not hold 64-bit > address. > initrd_header gives only 2 numbers: size of initrd, and a magic number, well it's what I understood when rewriting the code. the start address of initrd is given by: initrd_header = __va(PAGE_ALIGN(__pa_symbol(&_end) + 8)) - 8; initrd_start = (unsigned long)&initrd_header[2]; I don't think we need any sign extension here, do we ? Franck