Re: -mm merge plans for 2.6.21

From: Frederik Deweerdt
Date: Sat Feb 10 2007 - 07:21:47 EST


On Sat, Feb 10, 2007 at 12:42:41PM +0100, Arnd Bergmann wrote:
> On Friday 09 February 2007 12:24, Arjan van de Ven wrote:
> >
> > On Fri, 2007-02-09 at 10:57 +0000, Frederik Deweerdt wrote:
> > > +static const int __deprecated SA_INTERRUPT = IRQF_DISABLED;
> > > +static const int __deprecated SA_SAMPLE_RANDOM = IRQF_SAMPLE_RANDOM;
> > > +static const int __deprecated SA_SHIRQ = IRQF_SHARED;
> > > +static const int __deprecated SA_PROBEIRQ = IRQF_PROBE_SHARED;
> > > +static const int __deprecated SA_PERCPU = IRQF_PERCPU;
> > > +
> > > +static const int __deprecated SA_TRIGGER_LOW = IRQF_TRIGGER_LOW;
> > > +static const int __deprecated SA_TRIGGER_HIGH = IRQF_TRIGGER_HIGH;
> > > +static const int __deprecated SA_TRIGGER_FALLING = IRQF_TRIGGER_FALLING;
> > > +static const int __deprecated SA_TRIGGER_RISING = IRQF_TRIGGER_RISING;
> > > +static const int __deprecated SA_TRIGGER_MASK = IRQF_TRIGGER_MASK;
> >
> > this will include these in every .o file for which the .c file includes
> > the header. NOT GOOD(tm)
> >
>
> How about this one instead then:
Well, the warning you get is not that obvious:

test.c: In function 'main':
test.c:11: warning: 'deprecated_irqf' is deprecated

And as far as I could test (gcc 4.1.1 and gcc 3.4.3), Arjan's comment is
not true, the "static const int" don't use extra space, they get
optimized away by the compiler (see http://lkml.org/lkml/2007/2/9/106).

Regards,
Frederik
>
> Mark SA_* constants as deprecated
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>
> --- a/include/linux/interrupt.h
> +++ b/include/linux/interrupt.h
> @@ -53,17 +53,19 @@
> * Migration helpers. Scheduled for removal in 1/2007
> * Do not use for new code !
> */
> -#define SA_INTERRUPT IRQF_DISABLED
> -#define SA_SAMPLE_RANDOM IRQF_SAMPLE_RANDOM
> -#define SA_SHIRQ IRQF_SHARED
> -#define SA_PROBEIRQ IRQF_PROBE_SHARED
> -#define SA_PERCPU IRQF_PERCPU
> -
> -#define SA_TRIGGER_LOW IRQF_TRIGGER_LOW
> -#define SA_TRIGGER_HIGH IRQF_TRIGGER_HIGH
> -#define SA_TRIGGER_FALLING IRQF_TRIGGER_FALLING
> -#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING
> -#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK
> +typedef unsigned int __deprecated deprecated_irqf;
> +
> +#define SA_INTERRUPT ((deprecated_irqf)IRQF_DISABLED)
> +#define SA_SAMPLE_RANDOM ((deprecated_irqf)IRQF_SAMPLE_RANDOM)
> +#define SA_SHIRQ ((deprecated_irqf)IRQF_SHARED)
> +#define SA_PROBEIRQ ((deprecated_irqf)IRQF_PROBE_SHARED)
> +#define SA_PERCPU ((deprecated_irqf)IRQF_PERCPU)
> +
> +#define SA_TRIGGER_LOW ((deprecated_irqf)IRQF_TRIGGER_LOW)
> +#define SA_TRIGGER_HIGH ((deprecated_irqf)IRQF_TRIGGER_HIGH)
> +#define SA_TRIGGER_FALLING ((deprecated_irqf)IRQF_TRIGGER_FALLING)
> +#define SA_TRIGGER_RISING ((deprecated_irqf)IRQF_TRIGGER_RISING)
> +#define SA_TRIGGER_MASK ((deprecated_irqf)IRQF_TRIGGER_MASK)
>
> typedef irqreturn_t (*irq_handler_t)(int, void *);
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/