Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp299619pxa; Wed, 12 Aug 2020 02:14:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBF4AWL2gwGvFUK9V6KaT5g5c4cLTlpqOB0G6k+LlOrwBaAeKCkNVi+NOQ5GMyHEjd/W6j X-Received: by 2002:a17:906:fb07:: with SMTP id lz7mr30139575ejb.49.1597223683023; Wed, 12 Aug 2020 02:14:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597223683; cv=none; d=google.com; s=arc-20160816; b=GQn2cHs4gCMCV6AuJ874E7vIrBMGLCfTJ142TeIIUFDopqHxvUiB2eYClQmIhnx+j2 7dsSY/BQRi42d4w/BR5PeRZd23gAeU2ZmFiPk7nhGZgujVnn7m7CiwatXJ6yCmeDzmXP MSUDHmS9l7ta+3FaJrbgUjzAAxeSX0nxgRDf2xTSndso4P2Q+LGZQPnbAFklmUztCuMl MYOdxyZM0NfjFaUxUMGn5CaMKpy3CSuvbpj8QY4GUqLXkC3HXu+lT86eWo+r49mpA3eh m0q05ZAliHWJnVY5kqlAS9+JK2MZYwSWQCEAddGbgdFJG7OgQFSE6dg308bbKXRVoeA+ YSaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :robot-unsubscribe:robot-id:message-id:mime-version:references :in-reply-to:cc:subject:to:reply-to:from:dkim-signature :dkim-signature:date; bh=YtQguOBpLy+ZK3wfcPbucBpUN9YGIesOWZl+59cOgmA=; b=y+ChoeL5IKPERA2FOVwDzPLosaPHkdYt463y5ETNZP3UHjsLtP1bczxwBJ58YLYmUU wv2/tL+R0Jk4IoDfFnz0rqzvDJGm50NTo6Mzjc5gi77LVboDNKJkTREO1NvPp6Fm651l Zmrn4/U5/8edhnroHuXOLhZ9kh4Zz5GOFvQG/sEqEqjakzMEfuSdLpJ24wqghkGmCtdO 0VGIadiLBISB28xf8aGjOo6P11G4RzptADafbrRJhGPSAocT2zdvh0kTKbaaL7RXKXpf fcuuvJkJ2C6RetZ9steSSj5NRzOD1f6GCr9K+s62sjwCmuv8QF+N0O44lG7EXoGdR81V UmTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linutronix.de header.s=2020 header.b="XDYJH3L/"; dkim=neutral (no key) header.i=@vger.kernel.org; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f27si838865ejf.677.2020.08.12.02.14.19; Wed, 12 Aug 2020 02:14:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@linutronix.de header.s=2020 header.b="XDYJH3L/"; dkim=neutral (no key) header.i=@vger.kernel.org; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727084AbgHLJNd (ORCPT + 99 others); Wed, 12 Aug 2020 05:13:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726601AbgHLJNd (ORCPT ); Wed, 12 Aug 2020 05:13:33 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F13AC06174A; Wed, 12 Aug 2020 02:13:33 -0700 (PDT) Date: Wed, 12 Aug 2020 09:13:29 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1597223610; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YtQguOBpLy+ZK3wfcPbucBpUN9YGIesOWZl+59cOgmA=; b=XDYJH3L/fJTg0uZURUWOUU+FVEp4y9Q5horXSNMatMdefHd1jv+UgT8Le2M/w/RfOP9MSJ SI1rfnZJTuHqhu5fIU4MXl2rOgPuwrqj2g9V7BcODpkjuC6lYhX2mgMO2XujCjMJBzV3WZ wOhRNZ0i7aqJMhdrZ9PO5UXsTxvaMQDmd9E71ytH6nTqRSYbFlXctNMYfPlw44HsxA37YQ b1YZXQwb9RNZidSjbQ2t/onmpxzv8YxhawVjc8nrm/n2elte8y1UR7JK2rF4vjb//chuDJ cacpm0uABDmad0SoVanJHuYST8qezvU621x3Ge+jZ7USxpOq+jGxD4y3aNUFNg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1597223610; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YtQguOBpLy+ZK3wfcPbucBpUN9YGIesOWZl+59cOgmA=; b=AyPrIXC4Sk8jefmqeGtnO19FKendAy/6eDAGN/BqMdNGtcNNVfBVkUiiP2Lia3qO3Xustq 7Sa1+e0IWXKs6MDA== From: "tip-bot2 for Guenter Roeck" Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: irq/urgent] genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq() Cc: Guenter Roeck , Thomas Gleixner , "Rafael J. Wysocki" , stable@vger.kernel.org, x86 , LKML In-Reply-To: <20200811180001.80203-1-linux@roeck-us.net> References: <20200811180001.80203-1-linux@roeck-us.net> MIME-Version: 1.0 Message-ID: <159722360956.3192.16144465573431608980.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the irq/urgent branch of tip: Commit-ID: e27b1636e9337d1a1d174b191e53d0f86421a822 Gitweb: https://git.kernel.org/tip/e27b1636e9337d1a1d174b191e53d0f86421a822 Author: Guenter Roeck AuthorDate: Tue, 11 Aug 2020 11:00:01 -07:00 Committer: Thomas Gleixner CommitterDate: Wed, 12 Aug 2020 11:04:05 +02:00 genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq() rearm_wake_irq() does not unlock the irq descriptor if the interrupt is not suspended or if wakeup is not enabled on it. Restucture the exit conditions so the unlock is always ensured. Fixes: 3a79bc63d9075 ("PCI: irq: Introduce rearm_wake_irq()") Signed-off-by: Guenter Roeck Signed-off-by: Thomas Gleixner Acked-by: Rafael J. Wysocki Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20200811180001.80203-1-linux@roeck-us.net --- kernel/irq/pm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c index 8f557fa..c6c7e18 100644 --- a/kernel/irq/pm.c +++ b/kernel/irq/pm.c @@ -185,14 +185,18 @@ void rearm_wake_irq(unsigned int irq) unsigned long flags; struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); - if (!desc || !(desc->istate & IRQS_SUSPENDED) || - !irqd_is_wakeup_set(&desc->irq_data)) + if (!desc) return; + if (!(desc->istate & IRQS_SUSPENDED) || + !irqd_is_wakeup_set(&desc->irq_data)) + goto unlock; + desc->istate &= ~IRQS_SUSPENDED; irqd_set(&desc->irq_data, IRQD_WAKEUP_ARMED); __enable_irq(desc); +unlock: irq_put_desc_busunlock(desc, flags); }