lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070406122228.3dc06c79.akpm@linux-foundation.org>
Date:	Fri, 6 Apr 2007 12:22:28 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	tglx@...utronix.de
Cc:	LKML <linux-kernel@...r.kernel.org>, Ingo Molnar <mingo@...e.hu>
Subject: Re: [PATCH] Deprecate SA_xxx interrupt flags -V2

On Fri, 06 Apr 2007 15:49:26 +0200
Thomas Gleixner <tglx@...utronix.de> 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 <tglx@...utronix.de>
> ---
> 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 <gregkh@...e.de>
>  ---------------------------
>  
>  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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ