From patchwork Tue Jul 18 12:35:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?TWljaGHFgiBNaXJvc8WCYXc=?= X-Patchwork-Id: 790250 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=rere.qmqm.pl header.i=@rere.qmqm.pl header.b="ogZqFFX9"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xBfxz0W7Zz9s5L for ; Tue, 18 Jul 2017 22:44:54 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751380AbdGRMox (ORCPT ); Tue, 18 Jul 2017 08:44:53 -0400 Received: from rere.qmqm.pl ([91.227.64.183]:35176 "EHLO rere.qmqm.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751336AbdGRMow (ORCPT ); Tue, 18 Jul 2017 08:44:52 -0400 X-Greylist: delayed 544 seconds by postgrey-1.27 at vger.kernel.org; Tue, 18 Jul 2017 08:44:52 EDT Received: from remote.user (localhost [127.0.0.1]) by rere.qmqm.pl (Postfix) with ESMTPSA id 5831E183; Tue, 18 Jul 2017 14:35:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1; t=1500381346; bh=jDi0z1T4jUn4WmvWGgVTsxoVNvo2OorqjMjOH3SWq9E=; h=Date:From:Subject:To:Cc:From; b=ogZqFFX9J0981j/xiRFpFQ65r47nwJ2QcEQ5HaHWg6s5rXYrDQNXp2Cq4kosFLsZX bpW21HaaSmZ17hO2co2t6yJ0IC7ETFGJ+2Egr8R/pD/pfY9OZuksW743wQ+EvvCKA1 x3J1ljW0wUIJ46Ork96GmDsVJvoUs0lhtb/BLxPsitloBOzQC+3I8KggBaQcJBfVAa YiHpKNA2UfoFRuv27yZ736CVnLERqUkjEy7TGu29TtBOg+veV1L8BdF+ZxHkobZ5kk qr9OCiQM/Kdm9cWy4bA4tGhaQQhkTv5lhKk/zLtalwY0nH2wMNhlwaFcBV6s2/7JFd NFwmMw8vXqB5A== X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.99.2 at rere Date: Tue, 18 Jul 2017 14:35:45 +0200 Message-Id: From: =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= Subject: [PATCH] gpio: tegra: fix unbalanced chained_irq_enter/exit MIME-Version: 1.0 To: linux-gpio@vger.kernel.org, linux-tegra@vger.kernel.org Cc: Linus Walleij , Thierry Reding , Jonathan Hunter Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org When more than one GPIO IRQs are triggered simultaneously, tegra_gpio_irq_handler() called chained_irq_exit() multiple times for one chained_irq_enter(). Fixes: 3c92db9ac0ca3eee8e46e2424b6c074e2e394ad9 Signed-off-by: Michał Mirosław --- drivers/gpio/gpio-tegra.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index 88529d3c06c9..4bd99a38cae8 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c @@ -384,7 +384,7 @@ static void tegra_gpio_irq_handler(struct irq_desc *desc) * before executing the handler so that we don't * miss edges */ - if (lvl & (0x100 << pin)) { + if (!unmasked && lvl & (0x100 << pin)) { unmasked = 1; chained_irq_exit(chip, desc); }