• Philippe Gerum's avatar
    evl/lock: stop using the oob stall bit for protection · bf3ab642
    Philippe Gerum authored
    
    
    We don't actually need to rely on the oob stall bit, provided hard
    irqs are off in the deemed interrupt-free sections, because the latter
    is sufficient as long as the code does not traverse a pipeline
    synchronization point (sync_current_irq_stage()) while holding a lock,
    which would be in and of itself a bug in the first place.
    
    Remove the stall/unstall operations from the evl_spinlock
    implementation, fixing the few locations which were still testing the
    oob stall bit.
    
    The oob stall bit is still set by Dovetail on entry to IRQ handlers,
    which is ok: we will neither use nor affect it anymore, only relying
    on hard disabled irqs.
    
    This temporary alignment of the evl_spinlock on the hard spinlock is a
    first step to revisit the lock types in the core, before the
    evl_spinlock is changed again to manage the preemption count.
    Signed-off-by: default avatarPhilippe Gerum <rpm@xenomai.org>
    bf3ab642
core.c 35.3 KB