Messages in this thread Patch in this message | | | Date | Fri, 30 Jan 2009 18:42:46 -0800 | From | Greg KH <> | Subject | [patch 16/43] alpha: nautilus - fix compile failure with gcc-4.3 |
| |
2.6.28-stable review patch. If anyone has any objections, please let us know.
------------------
From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
commit 70b66cbfd3316b792a855cb9a2574e85f1a63d0f upstream.
init_srm_irq() deals with irq's #16 and above, but size of irq_desc array on nautilus and some other system types is 16. So gcc-4.3 complains that "array subscript is above array bounds", even though this function is never called on those systems.
This adds a check for NR_IRQS <= 16, which effectively optimizes init_srm_irq() code away on problematic platforms.
Thanks to Daniel Drake <dsd@gentoo.org> for detailed analysis of the problem.
Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Richard Henderson <rth@twiddle.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Tobias Klausmann <klausman@schwarzvogel.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- arch/alpha/kernel/irq_srm.c | 2 ++ 1 file changed, 2 insertions(+)
--- a/arch/alpha/kernel/irq_srm.c +++ b/arch/alpha/kernel/irq_srm.c @@ -63,6 +63,8 @@ init_srm_irqs(long max, unsigned long ig { long i; + if (NR_IRQS <= 16) + return; for (i = 16; i < max; ++i) { if (i < 64 && ((ignore_mask >> i) & 1)) continue;
| |