linux-mips
[Top] [All Lists]

Re: Problems booting Linux 2.6.18.1 on MIPS34K core

To: Trevor_Hamm@pmc-sierra.com
Subject: Re: Problems booting Linux 2.6.18.1 on MIPS34K core
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Thu, 02 Nov 2006 11:19:26 +0900 (JST)
Cc: linux-mips@linux-mips.org
In-reply-to: <E8C8A5231DDE104C816ADF532E0639120194F4B2@bby1exm07.pmc_nt.nt.pmc-sierra.bc.ca>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <E8C8A5231DDE104C816ADF532E0639120194F4B2@bby1exm07.pmc_nt.nt.pmc-sierra.bc.ca>
Sender: linux-mips-bounce@linux-mips.org
On Wed, 1 Nov 2006 12:06:15 -0800 , Trevor Hamm <Trevor_Hamm@pmc-sierra.com> 
wrote:
> My investigation shows this behaviour was introduced between
> 2.6.17.10 and 2.6.17.12 (2.6.17.11 failed to build, so I didn't test
> that version).  In fact, the patch below, applied against 2.6.17.10,
> is sufficient to cause the boot problem.  The bulk of this patch
> includes a fix from Aug. 31, 2006 for dcache aliasing on fork.  If I
> exclude the dcache aliasing fix from this patch, the boot problem
> apparently disappears.
> 
> Some more interesting details:
> - We're using a squashfs root filesystem in RAM (squashfs 3.1-r2).
>   We have not been able to reproduce with cramfs.

If dcache aliasing patch caused this problem, it might be due to
missing flush_dcache_page() in squashfs.

With a quick look at squashfs/inode.c, it seems flush_dcache_page() is
needed at end of squashfs_symlink_readpage() as other functions.
Could you try it?

skip_read:
        memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
        kunmap(page);
        flush_dcache_page(page);        /* THIS */
        SetPageUptodate(page);
        unlock_page(page);

---
Atsushi Nemoto

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