Mercurial > hg > release > icedtea6-1.10
changeset 2491:9d9f060d8eed
CACAO PR157: ARM SMP Assertion thinlock failed.
2011-03-11 Xerxes Ranby <xerxes@zafena.se>
CACAO PR157: ARM SMP Assertion thinlock failed.
* NEWS: Updated.
* Makefile.am: Add new CACAO patch.
* patches/cacao/arm-memory-barrier.patch: New patch.
author | Xerxes R?nby <xerxes@zafena.se> |
---|---|
date | Fri, 11 Mar 2011 16:09:25 +0100 |
parents | b1a474b2b90b |
children | e1efdb7e7fa5 |
files | ChangeLog Makefile.am NEWS patches/cacao/arm-memory-barrier.patch |
diffstat | 4 files changed, 57 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu Mar 03 12:33:44 2011 +0000 +++ b/ChangeLog Fri Mar 11 16:09:25 2011 +0100 @@ -1,3 +1,10 @@ +2011-03-11 Xerxes Ranby <xerxes@zafena.se> + + CACAO PR157: ARM SMP Assertion thinlock failed. + * NEWS: Updated. + * Makefile.am: Add new CACAO patch. + * patches/cacao/arm-memory-barrier.patch: New patch. + 2011-03-03 Andrew John Hughes <ahughes@redhat.com> * patches/security/20110215/6927050.patch:
--- a/Makefile.am Thu Mar 03 12:33:44 2011 +0000 +++ b/Makefile.am Fri Mar 11 16:09:25 2011 +0100 @@ -346,7 +346,8 @@ patches/cacao/launcher.patch \ patches/cacao/arm-arch-defines.patch \ patches/cacao/jsig.patch \ - patches/cacao/memory.patch + patches/cacao/memory.patch \ + patches/cacao/arm-memory-barrier.patch endif if ENABLE_CACAO
--- a/NEWS Thu Mar 03 12:33:44 2011 +0000 +++ b/NEWS Fri Mar 11 16:09:25 2011 +0100 @@ -10,6 +10,9 @@ New in release 1.10.1 (2011-XX-XX): +* Bug fixes + - CACAO PR157: ARM SMP Assertion thinlock failed. + New in release 1.10 (2011-03-02): * NetX and the plugin moved to the IcedTea-Web project with a separate
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/cacao/arm-memory-barrier.patch Fri Mar 11 16:09:25 2011 +0100 @@ -0,0 +1,45 @@ +Index: cacao/cacao/src/vm/jit/arm/md-atomic.hpp +=================================================================== +--- cacao.orig/cacao/src/vm/jit/arm/md-atomic.hpp 2011-03-04 22:44:20.000000000 +0100 ++++ cacao/cacao/src/vm/jit/arm/md-atomic.hpp 2011-03-04 23:02:52.000000000 +0100 +@@ -63,13 +63,21 @@ + return Atomic::generic_compare_and_swap(p, oldval, newval); + } + ++/** ++ * ARM Kernel helper for memory barrier. ++ * Using __asm __volatile ("":::"memory") does not work reliable on ARM ++ * and gcc __sync_synchronize(); implementation does not use the kernel ++ * helper for all gcc versions so it is unreliable to use as well. ++ */ ++typedef void (__kernel_dmb_t) (void); ++#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0) + + /** + * A memory barrier. + */ + inline void memory_barrier(void) + { +- __asm__ __volatile__ ("" : : : "memory"); ++ __kernel_dmb(); + } + + +@@ -78,7 +86,7 @@ + */ + inline void write_memory_barrier(void) + { +- __asm__ __volatile__ ("" : : : "memory"); ++ __kernel_dmb(); + } + + +@@ -87,7 +95,7 @@ + */ + inline void instruction_barrier(void) + { +- __asm__ __volatile__ ("" : : : "memory"); ++ __kernel_dmb(); + } + + }