Bug#738575: Access to a Galileo board
On Wed, Mar 12, 2014 at 03:31:57PM +0100, Thomas Karmann wrote:
> Hi,
>
> I patched out the lock instruction via hexedit and the segfaults are gone!
>
> before:
>
> => 507b: f0 0f b1 8b 94 21 00 lock cmpxchg %ecx,0x2194(%ebx)
>
> after:
>
> 507b: 90 nop
> 507c: 0f b1 8b 94 21 00 00 cmpxchg %ecx,0x2194(%ebx)
>
While it shows that the problem is at the CPU level, it's not really a
fix, as the bus is not locked anymore, so it might results in issues in
multithreaded solution.
The correct solution would be to apply the solution from Intel, that is
adding a nop before every instruction with the lock prefix. This means
rebuilding the code.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
Reply to: