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

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: