• Varun Wadekar's avatar
    locks: bakery: add a DMB to the 'read_cache_op' macro · d439cea9
    Varun Wadekar authored
    
    
    ARM has a weak memory ordering model. This means that without
    explicit barriers, memory accesses can be observed differently
    than program order. In this case, the cache invalidate instruction
    can be observed after the subsequent read to address.
    
    To solve this, a DMB instruction is required between the cache
    invalidate and the read. This ensures that the cache invalidate
    completes before all memory accesses in program order after the DMB.
    
    This patch updates the 'read_cache_op' macro to issue a DMB after
    the cache invalidate instruction to fix this anomaly.
    
    Change-Id: Iac9a90d228c57ba8bcdca7e409ea6719546ab441
    Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
    d439cea9
bakery_lock_normal.c 7.82 KB