Port-arm archive

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

Re: ARM SEGV problem



Hi!

From: Robert Swindells <rjs%fdy2.co.uk@localhost>
Date: Wed, 11 Sep 2013 12:10:23 +0100 (BST)

> I see similar problems on my SheevaPlug with kernel sources from today,
> init and /bin/sh die, /rescue/sh seems to work. Userland is fairly old.

I resolved this problem in my local source maybe.
It tested on my OPENBLOCKS_A6.

Can you try with attached patch?

Thanks,
--
kiyohara
Index: pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/arm/arm32/pmap.c,v
retrieving revision 1.263
diff -u -r1.263 pmap.c
--- pmap.c      18 Aug 2013 06:50:31 -0000      1.263
+++ pmap.c      11 Sep 2013 11:44:19 -0000
@@ -2992,7 +2992,7 @@
                        oflags = pv->pv_flags;
 
 #ifdef PMAP_CACHE_VIVT
-                       if (!(oflags & PVF_NC) == 0 && l2pte_valid(opte)) {
+                       if (!(oflags & PVF_NC) && l2pte_valid(opte)) {
                                pmap_cache_wbinv_page(pm, va, true, oflags);
                        }
 #endif
@@ -3624,7 +3624,8 @@
                                 * write-protect operation.  If the pmap is
                                 * active, write-back the page.
                                 */
-                               pmap_cache_wbinv_page(pm, sva, false, PVF_REF);
+                               pmap_cache_wbinv_page(pm, sva, false,
+                                   PVF_REF | PVF_WRITE);
 #endif
 
                                pg = PHYS_TO_VM_PAGE(l2pte_pa(pte));


Home | Main Index | Thread Index | Old Index