From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751771AbdFJWi4 (ORCPT ); Sat, 10 Jun 2017 18:38:56 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:36681 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751660AbdFJWiz (ORCPT ); Sat, 10 Jun 2017 18:38:55 -0400 To: Thomas Gleixner Cc: Linux Kernel Mailing List From: Heiner Kallweit Subject: [PATCH] genirq: fix error path in __setup_irq Message-ID: <655538f5-cb20-a892-ff15-fbd2dd1fa4ec@gmail.com> Date: Sun, 11 Jun 2017 00:38:36 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If __irq_set_trigger() fails irq_request_resources() was successfully called before. Therefore we should release all potentially claimed resources in the error path. Signed-off-by: Heiner Kallweit --- kernel/irq/manage.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 49c37f1e..4c34696c 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -1318,8 +1318,10 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) ret = __irq_set_trigger(desc, new->flags & IRQF_TRIGGER_MASK); - if (ret) + if (ret) { + irq_release_resources(desc); goto out_mask; + } } desc->istate &= ~(IRQS_AUTODETECT | IRQS_SPURIOUS_DISABLED | \ -- 2.13.1