On Tue, 2009-11-10 at 11:28 +0100, Philippe Gerum wrote:
> On Tue, 2009-11-10 at 01:34 +0100, Gilles Chanteperdrix wrote:
> > Jan Kiszka wrote:
> > > [Patch is now also available in 'for-upstream']
> > > 
> > > ipipe_test_pipeline_from is not atomic /wrt reading the current cpu
> > > number (or an offset for the per-cpu area) and actually reading the
> > > virtualized interrupt state. Work around this by disabling hard IRQs
> > > while accessing this service.
> > > 
> > > This fixes false-positives of RTDM driver debug checks.
> > > 
> > > Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
> > > ---
> > >  include/asm-generic/hal.h |    9 ++++++++-
> > >  1 files changed, 8 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/include/asm-generic/hal.h b/include/asm-generic/hal.h
> > > index 97c549e..3095b85 100644
> > > --- a/include/asm-generic/hal.h
> > > +++ b/include/asm-generic/hal.h
> > > @@ -117,7 +117,14 @@ typedef spinlock_t rthal_spinlock_t;
> > >  #endif /* !CONFIG_XENO_OPT_PIPELINE_HEAD */
> > >  #define rthal_local_irq_flags(x) ((x) = 
> > > ipipe_test_pipeline_from(&rthal_domain) & 1)
> > >  #define rthal_local_irq_test()           
> > > ipipe_test_pipeline_from(&rthal_domain)
> > > -#define rthal_local_irq_disabled()       
> > > ipipe_test_pipeline_from(&rthal_domain)
> > > +#define rthal_local_irq_disabled()                               \
> > > +({                                                               \
> > > + unsigned long __flags, __ret;                           \
> > > + local_irq_save_hw(__flags);                             \
> > > + __ret = ipipe_test_pipeline_from(&rthal_domain);        \
> > > + local_irq_restore_hw(__flags);                          \
> > > + __ret;                                                  \
> > > +})
> > 
> > Maybe we can avoid that on UP systems?
> > 
> 
> Yes, we should rather use local_irq_save/restore_hw_smp().
> 
> 

NOTE: we would need to define defaults for those though, since they are
not available with legacy releases of the pipeline patch.


-- 
Philippe.



_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to