lkml.org 
[lkml]   [2006]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] FRV: Fix {dis,en}able_irq_lockdep_irqrestore compile error
    Date

    Fix the lack of certain non-LOCKDEP stub functions in linux/interrupt.h and
    also provide FRV with LOCKDEP variants.

    This is to be applied to -mm kernel since not all of the functions added exist
    in the main kernel.

    Signed-Off-By: David Howells <dhowells@redhat.com>
    ---
    warthog>diffstat -p1 frv-irq-lockdep-2618rc5mm1.diff
    include/asm-frv/irq.h | 43 +++++++++++++++++++++++++++++++++++++++++++
    include/linux/interrupt.h | 2 ++
    2 files changed, 45 insertions(+)

    diff -urp ../kernels/linux-2.6.18-rc5-mm1/include/asm-frv/irq.h linux-2.6.18-rc5-mm1-frv/include/asm-frv/irq.h
    --- ../kernels/linux-2.6.18-rc5-mm1/include/asm-frv/irq.h 2006-09-04 18:02:48.000000000 +0100
    +++ linux-2.6.18-rc5-mm1-frv/include/asm-frv/irq.h 2006-09-05 15:59:08.000000000 +0100
    @@ -39,5 +39,48 @@ extern void disable_irq_nosync(unsigned
    extern void disable_irq(unsigned int irq);
    extern void enable_irq(unsigned int irq);

    +#ifdef CONFIG_LOCKDEP
    +/*
    + * Special lockdep variants of irq disabling/enabling.
    + * These should be used for locking constructs that
    + * know that a particular irq context which is disabled,
    + * and which is the only irq-context user of a lock,
    + * that it's safe to take the lock in the irq-disabled
    + * section without disabling hardirqs.
    + *
    + * On !CONFIG_LOCKDEP they are equivalent to the normal
    + * irq disable/enable methods.
    + */
    +static inline void disable_irq_nosync_lockdep(unsigned int irq)
    +{
    + disable_irq_nosync(irq);
    + local_irq_disable();
    +}
    +
    +static inline void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags)
    +{
    + disable_irq_nosync(irq);
    + local_irq_save(*flags);
    +}
    +
    +static inline void disable_irq_lockdep(unsigned int irq)
    +{
    + disable_irq(irq);
    + local_irq_disable();
    +}
    +
    +static inline void enable_irq_lockdep(unsigned int irq)
    +{
    + local_irq_enable();
    + enable_irq(irq);
    +}
    +
    +static inline void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags)
    +{
    + local_irq_restore(*flags);
    + enable_irq(irq);
    +}
    +#endif /* CONFIG_LOCKDEP */
    +

    #endif /* _ASM_IRQ_H_ */
    diff -urp ../kernels/linux-2.6.18-rc5-mm1/include/linux/interrupt.h linux-2.6.18-rc5-mm1-frv/include/linux/interrupt.h
    --- ../kernels/linux-2.6.18-rc5-mm1/include/linux/interrupt.h 2006-09-04 18:03:31.000000000 +0100
    +++ linux-2.6.18-rc5-mm1-frv/include/linux/interrupt.h 2006-09-05 15:58:53.000000000 +0100
    @@ -178,6 +178,8 @@ static inline int disable_irq_wake(unsig
    # define disable_irq_nosync_lockdep(irq) disable_irq_nosync(irq)
    # define disable_irq_lockdep(irq) disable_irq(irq)
    # define enable_irq_lockdep(irq) enable_irq(irq)
    +# define disable_irq_nosync_lockdep_irqsave(irq, flags) disable_irq_nosync(irq)
    +# define enable_irq_lockdep_irqrestore(irq, flags) enable_irq(irq)
    # endif

    #endif /* CONFIG_GENERIC_HARDIRQS */
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2006-09-05 17:25    [W:0.023 / U:95.524 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site