The Source for Java Technology Collaboration


In the phoneME Advanced MR1 release, cache flushing on linux/ARM 2.6 kernels is not done properly. This usually results in a readily reproducable crash, or in some cases a hang. To fix this bug, apply the following patch:

Index: src/linux-arm/javavm/runtime/jit/flushcache_arch.S
===================================================================
--- src/linux-arm/javavm/runtime/jit/flushcache_arch.S   (revision 566)
+++ src/linux-arm/javavm/runtime/jit/flushcache_arch.S   (working copy)
@@ -31,7 +31,7 @@
 ENTRY1(CVMJITflushCacheDoit)
    /* First argument:    beginning address in range */
    /* Second argument:    end address in range */
-   mov a3, #1
+   mov a3, #0
    swi 0x009f0002
    mov pc, lr
 SET_SIZE(CVMJITflushCacheDoit)

Note that this bug is not present in MR2 and later releases.

-- ChrisPlummer - 17 Jan 2007

Topic PhoneMEAdvancedCriticalBugsLinuxARMCacheFlush . { Edit | Ref-By | Printable | Diffs r1 | More }
 XML java.net RSS

Revision r1 - 17 Jan 2007 - 01:12:13 - Main.cjplummer
Parents: WebHome > PhoneMEAdvanced