Re: [PATCH] Deprecate SA_xxx interrupt flags -V2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 06 Apr 2007 15:49:26 +0200
Thomas Gleixner <[email protected]> wrote:

> The deprecation of the SA_xxx interrupt flags did not emit deprecated
> warnings. Andrew said about the removal of the deprecated flag defines:
> 
> > This is going to break a lot of external stuff.  We should have found
> > a way to make usage of SA_* emit deprecated warnings (or _some_
> > warning) to warn people of impending doom.  But I can't immediately
> > find a way of doing that. if we _can_ find a way of doing this, I
> > suspect we'll need to do it, and give people another six months.  It's
> > going to get ugly out there.  We shall see...
> 
> Define the deprecated flags as a call to a __deprecated inline function
> so a warning is emitted on compile time.
> 
> Extend the reprieve of out of tree drivers to 9/2007.
> 
> Signed-off-by: Thomas Gleixner <[email protected]>
> ---
> diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
> index 0bc8b0b..2a531ea 100644
> --- a/Documentation/feature-removal-schedule.txt
> +++ b/Documentation/feature-removal-schedule.txt
> @@ -171,7 +171,7 @@ Who:	Greg Kroah-Hartman <[email protected]>
>  ---------------------------
>  
>  What:	Interrupt only SA_* flags
> -When:	Januar 2007
> +When:	September 2007
>  Why:	The interrupt related SA_* flags are replaced by IRQF_* to move them
>  	out of the signal namespace.
>  
> diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
> index 838cf5a..3a72071 100644
> --- a/include/linux/interrupt.h
> +++ b/include/linux/interrupt.h
> @@ -54,20 +54,26 @@
>  #define IRQF_NOBALANCING	0x00000800
>  
>  /*
> - * Migration helpers. Scheduled for removal in 1/2007
> + * Migration helpers. Scheduled for removal in 9/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
> +static inline
> +unsigned long __deprecated deprecated_irq_flag(unsigned long flag)
> +{
> +	return flag;
> +}
> +
> +#define SA_INTERRUPT		deprecated_irq_flag(IRQF_DISABLED)
> +#define SA_SAMPLE_RANDOM	deprecated_irq_flag(IRQF_SAMPLE_RANDOM)
> +#define SA_SHIRQ		deprecated_irq_flag(IRQF_SHARED)
> +#define SA_PROBEIRQ		deprecated_irq_flag(IRQF_PROBE_SHARED)
> +#define SA_PERCPU		deprecated_irq_flag(IRQF_PERCPU)
> +
> +#define SA_TRIGGER_LOW		deprecated_irq_flag(IRQF_TRIGGER_LOW)
> +#define SA_TRIGGER_HIGH		deprecated_irq_flag(IRQF_TRIGGER_HIGH)
> +#define SA_TRIGGER_FALLING	deprecated_irq_flag(IRQF_TRIGGER_FALLING)
> +#define SA_TRIGGER_RISING	deprecated_irq_flag(IRQF_TRIGGER_RISING)
> +#define SA_TRIGGER_MASK		deprecated_irq_flag(IRQF_TRIGGER_MASK)
>  
>  typedef irqreturn_t (*irq_handler_t)(int, void *);
>  

Yeah.  I tried something like this and code broke.  For example,
arch/mips/sni/irq.c has

struct irqaction sni_isa_irq = {
	.handler = sni_isa_irq_handler,
	.name = "ISA",
	.flags = SA_SHIRQ
};

there are presumably only a few such stragglers left in the tree but there
are probably more instances out-of-tree.

But I think we should just apply your patch anyway.  Only a small
proportion of things will break and we do need to be rid of the old
definitions one day.

It would be great if someone could do another pass across the tree,
clean up the remaining SA_* usages.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux