Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1101596pxa; Thu, 20 Aug 2020 02:29:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzNqLubAe+vnrh8na+FfS7P4baUhzfIZjPERGFK/jryAbwRb5WbJpgv3CNWRr22AcWh4LxP X-Received: by 2002:a50:fd0b:: with SMTP id i11mr1956012eds.298.1597915766894; Thu, 20 Aug 2020 02:29:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597915766; cv=none; d=google.com; s=arc-20160816; b=rQNK2sKgK7CoZ9wWKBzu8T0k9wqzRVQI5rBu0yq257bFQ5GNWylniYJwo9qgcHbIPw QkctCZVvS5UCWvJr7es6UZw/639nv7KX6Jv0aRuoi7MUfkj+QyIyB6r3A1LorWvQiS7m oa6wP60T7rytZl/j8KJkK8+nnAxkBXPnnjtJC7tmK84nKc2GFZmDTO4xP1Ptgf4rdug5 39Qv28JZeonwS6dSeuw3NZFpdGUi1ARyu6LsK/CiaZ/39/gHaURrZF8whBemE+U3BZGV bhVJH7jqtHpLgxE40veAA2dTr5LVAYHuIcu13L54l7I58tHpTfx4QnHEl4sff2CCLtEk kCyw== 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:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dJL2uoVDVyUoqELzwLEw2wsPLm57shMYESLfeqzX+vE=; b=fnrh/HJB92rmlV9GoXsmI5fzC0mH7ZLRXEK3z1BosbDCCeI98d3Ii/6AEw7zK8gDvk s++XYDMbSMac3gb9LansvTp4d+3IqsjX55OpJP7iBS0O3Vcggnja/nzwSqHcPyFmxa52 sFzJ8NRJs28yFoYS6KOP7DvTai+axFnLMkw9TQTs8LQJQU5jyIBbBjUad9U1xuT43Z+4 Fwhlk/HNNMp87D4UjrkmGTS6m91uV4xElWDiYNOHy7dJE4NHwlVYzGOCw2qglqS/TMcT bP+UVvgYyN9XQr9tyweErpC4uvmJHVqCvwhpOXqXe+SCCA4exqTjwAAxYlancis4y7Xe 8Yzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Xtf+QhCV; 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=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b16si886627eja.517.2020.08.20.02.29.02; Thu, 20 Aug 2020 02:29:26 -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=pass header.i=@kernel.org header.s=default header.b=Xtf+QhCV; 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=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727123AbgHTJZc (ORCPT + 99 others); Thu, 20 Aug 2020 05:25:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:60858 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727012AbgHTJYr (ORCPT ); Thu, 20 Aug 2020 05:24:47 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AFDED22CB2; Thu, 20 Aug 2020 09:24:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597915487; bh=9wY0bvHnP823z5bTKju7vuT8yhn2NEW7Ay9LUlzPZQQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xtf+QhCVAV5fezBQecZMjExnYqdz6T2hesFw+BWbMIFzALlSkYuFExWdWck5RcmZe +zyTujgN/phdClKqyYv0ZLoYaJBTUroMLNtRGekJhlsxyvpxWVOwUbNJmyEUsOypXp bp/nsWZhE2djhzKxPaVBVShCqY/RbMCq0QRy6kE0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Guenter Roeck , Thomas Gleixner , "Rafael J. Wysocki" Subject: [PATCH 5.8 006/232] genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq() Date: Thu, 20 Aug 2020 11:17:37 +0200 Message-Id: <20200820091613.009974772@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200820091612.692383444@linuxfoundation.org> References: <20200820091612.692383444@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Guenter Roeck commit e27b1636e9337d1a1d174b191e53d0f86421a822 upstream. 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 Signed-off-by: Greg Kroah-Hartman --- kernel/irq/pm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- 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); }