From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754943AbbFRMHu (ORCPT ); Thu, 18 Jun 2015 08:07:50 -0400 Received: from terminus.zytor.com ([198.137.202.10]:59671 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752794AbbFRMHn (ORCPT ); Thu, 18 Jun 2015 08:07:43 -0400 Date: Thu, 18 Jun 2015 05:07:23 -0700 From: tip-bot for Russell King Message-ID: Cc: ulli.kroll@googlemail.com, linux-kernel@vger.kernel.org, gnurou@gmail.com, mingo@kernel.org, linus.walleij@linaro.org, jason@lakedaemon.net, hpa@zytor.com, tglx@linutronix.de, thierry.reding@gmail.com, rmk+kernel@arm.linux.org.uk, lee.jones@linaro.org Reply-To: thierry.reding@gmail.com, rmk+kernel@arm.linux.org.uk, lee.jones@linaro.org, mingo@kernel.org, linus.walleij@linaro.org, jason@lakedaemon.net, tglx@linutronix.de, hpa@zytor.com, linux-kernel@vger.kernel.org, gnurou@gmail.com, ulli.kroll@googlemail.com In-Reply-To: References: To: linux-tip-commits@vger.kernel.org Subject: [tip:irq/core] ARM: gemini: Fix race in installing GPIO chained IRQ handler Git-Commit-ID: 7f77c5c39d2eb50e7362f29f654a2c221b6a5b83 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 7f77c5c39d2eb50e7362f29f654a2c221b6a5b83 Gitweb: http://git.kernel.org/tip/7f77c5c39d2eb50e7362f29f654a2c221b6a5b83 Author: Russell King AuthorDate: Tue, 16 Jun 2015 23:06:35 +0100 Committer: Thomas Gleixner CommitDate: Thu, 18 Jun 2015 14:03:08 +0200 ARM: gemini: Fix race in installing GPIO chained IRQ handler The gemini code was installing its chained interrupt handler (which enables the interrupt) before it was setting its data, which is bad if the IRQ was previously pending. Avoid this problem by converting it to irq_set_chained_handler_and_data(). Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z07-0002SO-Gv@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner --- arch/arm/mach-gemini/gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-gemini/gpio.c b/arch/arm/mach-gemini/gpio.c index f8cb571..3292f2e 100644 --- a/arch/arm/mach-gemini/gpio.c +++ b/arch/arm/mach-gemini/gpio.c @@ -223,8 +223,8 @@ void __init gemini_gpio_init(void) set_irq_flags(j, IRQF_VALID); } - irq_set_chained_handler(IRQ_GPIO(i), gpio_irq_handler); - irq_set_handler_data(IRQ_GPIO(i), (void *)i); + irq_set_chained_handler_and_data(IRQ_GPIO(i), gpio_irq_handler, + (void *)i); } BUG_ON(gpiochip_add(&gemini_gpio_chip));