From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5BC4CC433EF for ; Wed, 20 Apr 2022 14:05:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379282AbiDTOIc (ORCPT ); Wed, 20 Apr 2022 10:08:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379228AbiDTOI3 (ORCPT ); Wed, 20 Apr 2022 10:08:29 -0400 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D86E73E0DD for ; Wed, 20 Apr 2022 07:05:42 -0700 (PDT) Received: by mail-pf1-x42a.google.com with SMTP id z16so2031254pfh.3 for ; Wed, 20 Apr 2022 07:05:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XOKJyrS8QtzQoeHSOkLR7Y1klkfAcATQqfMHIhBU3dw=; b=ZX3TjlWVIUa6DvnJkhrX3gVqjsqt6eo7qvybPLa7T6oIsBDQw7Mb0r7DCJog0kL2Ol UH0MM6WRaZpuwbYQKyYfRLfEjhOsTDGfL4Bpga8Bv5xTUWvAWbWWcSd8XejK2Pd5cVf6 hGkgMpxNaZq5N7U69xre+mNALmWV1kex7FWpXVXvpPwDYweXGLrLQQaVXgM+1M8gER/z rUqaOucEHqdNVbx5YKuzMOL3zJ4XqLPkZ7/8kc+3mgeBpAOh0vo4LgmU1s51Al+K2kO7 hMHMYe0j+XJA0PIpN7aQJV+9W2BxmpwpyNQ/JNT9qTpbfaBjPcewH+6wHkwtTG/FmEEC BG/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XOKJyrS8QtzQoeHSOkLR7Y1klkfAcATQqfMHIhBU3dw=; b=SJa5QR6+nhbqhfIhDJPckvn167oY2Fy/tFAAuCMJyoKBrxOlwglnMPY+jNPM0zzSRc i7bh3iHUE5pz3AqyY+PZ55i7EAiOBkg4y0E71cYX6/X5XBop8MUajvL+d+4sG1388nmI aBGt2KDwRcvrur6lXT3z+PLLfbEGDCx1x1FBXPOUKmDSYDbrPYjyuqEBnUvtzxI539Q5 APu0SPPHvlnH1fmjnvAZFEJtbKs/Snm5YMqcsgROnQMVY5sfihhOtcFzsonoY26Gkv11 HxGEIlXajfWY5qclqyvS8hNCPMpUfHw9YDJieTO0ngACZRkLnH26hQd6sNCMYAC2Qa7G HgIw== X-Gm-Message-State: AOAM531ik6cJh8hxL425JKhCy+qqvOiaetAonSlu6hgnL30gnzacu/gJ rwQJ49ZjIk6Kb/2s44X51Cy3z2rOiA== X-Google-Smtp-Source: ABdhPJwZ2FrncAHnqzoABz25ayfNH+RftLyH/2iLGiBMZpb5Jq/7i0nzYWrvg1eeYSh1pcTSPB0Erw== X-Received: by 2002:a63:ec46:0:b0:381:81c4:ebbd with SMTP id r6-20020a63ec46000000b0038181c4ebbdmr19418649pgj.534.1650463542277; Wed, 20 Apr 2022 07:05:42 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.05.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:05:42 -0700 (PDT) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Thomas Gleixner Subject: [PATCH 1/9] irq/irqdesc: put the lock at the exact place in irq_sysfs_init() Date: Wed, 20 Apr 2022 22:05:13 +0800 Message-Id: <20220420140521.45361-2-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" sparse_irq_lock is used to protect irq_desc, and furthermore irq_sysfs_init() is called only once, so put irq_lock_sparse() at the exact place, where the race condition may start. Signed-off-by: Pingfan Liu Cc: Thomas Gleixner To: linux-kernel@vger.kernel.org --- kernel/irq/irqdesc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 939d21cd55c3..8d0982233277 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -312,15 +312,14 @@ static int __init irq_sysfs_init(void) struct irq_desc *desc; int irq; =20 - /* Prevent concurrent irq alloc/free */ - irq_lock_sparse(); - irq_kobj_base =3D kobject_create_and_add("irq", kernel_kobj); if (!irq_kobj_base) { - irq_unlock_sparse(); return -ENOMEM; } =20 + /* Prevent concurrent irq alloc/free */ + irq_lock_sparse(); + /* Add the already allocated interrupts */ for_each_irq_desc(irq, desc) irq_sysfs_add(irq, desc); --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A84FC433F5 for ; Wed, 20 Apr 2022 14:05:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379302AbiDTOIg (ORCPT ); Wed, 20 Apr 2022 10:08:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54818 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379267AbiDTOIb (ORCPT ); Wed, 20 Apr 2022 10:08:31 -0400 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D4603E0E4 for ; Wed, 20 Apr 2022 07:05:46 -0700 (PDT) Received: by mail-pf1-x42f.google.com with SMTP id x80so2043047pfc.1 for ; Wed, 20 Apr 2022 07:05:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6yUq4fAbVQuINyHJBw8+IFaXlZbWG6vvrcY9HvRvD1U=; b=Y88g71a/vBdigWsyyAfvaGoaM78QwhD9/hfJXlCbXLkikG8Ay5JwT94MbVQUEMiU7o k48Gstu0JHEZM63w1UvGytVy+9lBkkK1yTCDm3BsSsQ5/DgRhWJ5SA0f2yfJwhZbW7Tj lkc84fjk8CkTUFy0IXrPG65uDk3ZIrCnf/Ux7uLcUMQ13veY/jv7Xw5j4PRjcs7psSDd Uk1xYwMr21d17+NjmP3P6X/Dl4fwlw7TiwmoQjmzRLXReHX/Ge7nJ+N3aarnQWJ5M1Uf WdYG38AEX7msuBY171ZxL9/RePc4gtrGpqA1n8rqZkWgm7V48NJfRy4TmnRKP/kmCdtl k5jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6yUq4fAbVQuINyHJBw8+IFaXlZbWG6vvrcY9HvRvD1U=; b=It9i3uOeEIXbsYiVSOb4AE+u9HBZ/XC6tr8x2Gyt6JfQneHFgEyenhDr4BVdltxifi +HYsbioBaNj/IkHItQL3tILd4sS5hDwC1CfVA+3adXq6HraRQ1G4VoDGjEA3gT+thcPF TOrHaReabOaBDRQXQW/zGZZBTKoO/ZGDp3ULETTWMnDCuXJlGTroKIY//qmfVMPEtOd4 8sojmzE+u0VQHbl8r80CwOQH5URbojaqYiEa64k7QdAYlfIAvvAXA2tzNITI4vptNTxB rk6IyLEpbkRTLPS4i0ao4CDe2CTjWruus/YlakwsXkUXGzXq6sPDBCht+/5zwTp/6WoC XAGA== X-Gm-Message-State: AOAM5332yW/vYUqEGkpMDs8eF1nEQIOhFfap6VdwYO29mERy2nqwFHhc 5oADgYvB9MTUU+GbtPmAeci+Rc4zcg== X-Google-Smtp-Source: ABdhPJyoBKasYwdPkcRM0oXkIFbAFu8rLDbgOxLb70XfaanV3mLv9+KS1U8DoHPC1MmI3hJBGaXaXg== X-Received: by 2002:a65:45cc:0:b0:3a1:d67a:4fb8 with SMTP id m12-20020a6545cc000000b003a1d67a4fb8mr19492764pgr.543.1650463545479; Wed, 20 Apr 2022 07:05:45 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.05.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:05:45 -0700 (PDT) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Thomas Gleixner Subject: [PATCH 2/9] irq/irqdesc: change the name of delete_irq_desc() to irq_delete_desc() Date: Wed, 20 Apr 2022 22:05:14 +0800 Message-Id: <20220420140521.45361-3-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Make the naming convention consistent with irq_insert_desc(), irq_to_desc(). Signed-off-by: Pingfan Liu Cc: Thomas Gleixner To: linux-kernel@vger.kernel.org --- kernel/irq/irqdesc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 8d0982233277..9feedaa08430 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -355,7 +355,7 @@ struct irq_desc *irq_to_desc(unsigned int irq) EXPORT_SYMBOL_GPL(irq_to_desc); #endif =20 -static void delete_irq_desc(unsigned int irq) +static void irq_delete_desc(unsigned int irq) { radix_tree_delete(&irq_desc_tree, irq); } @@ -453,7 +453,7 @@ static void free_desc(unsigned int irq) * irq_sysfs_init() as well. */ irq_sysfs_del(desc); - delete_irq_desc(irq); + irq_delete_desc(irq); =20 /* * We free the descriptor, masks and stat fields via RCU. That --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1EC92C433F5 for ; Wed, 20 Apr 2022 14:06:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379311AbiDTOIo (ORCPT ); Wed, 20 Apr 2022 10:08:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379305AbiDTOIh (ORCPT ); Wed, 20 Apr 2022 10:08:37 -0400 Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3EEB3E0E2 for ; Wed, 20 Apr 2022 07:05:51 -0700 (PDT) Received: by mail-pj1-x102c.google.com with SMTP id 2so2047012pjw.2 for ; Wed, 20 Apr 2022 07:05:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wWmKOaGrL4CkXTbn+/gnRNrWxLM3MTWpbfZSE/ojIP0=; b=HAd6plBINYnhg2F8X9HhGuothi7z1ne/yZzTMlHKYjkdaWIrDHLx4/5/Y/vxi+7SjA C0Y72m+k54ysFoJ5W8mXLzDwxWVre70Gz1oWyRdf7iIs+rCNOEw1m5gDG86bKnMRNCW0 dJPzLwkQnb4Xo2NgrRoCXS9vGOkXm1qOKototZekHmh7XrYTfq5TdW7/vOeSnqUr8WbN HgQIy4tasBqj4hLLt7VuJ28N3AShkbL5CBmkpNkAdpZue1AZRrox3c0h2AhfUyT9yPLH NxFJHS04oSg4wcrfAemjxl5sUTod8b2Fi17TFdAjn+z8JjaKDo/hMz4inFdbjYc67xSi 9OSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wWmKOaGrL4CkXTbn+/gnRNrWxLM3MTWpbfZSE/ojIP0=; b=8Pc8u3sAsxOmOtCEDRqhhUNSj1DS9qMXikpFy5CmdHjavgJ1D2TnmWkIEoWdixl9bj yk+agPqJiMdjijutaxeyXBt3fCMt4yNnX7mjQ0SaAW62oyzIdX2IEfszrdEOetGIuzDX 8H+P/ApKPnHSLICSDmvRlNTbv2UCIIjWcyO75ZWpSPu2Nq2Un/nSXBpcIpoBoiZLGWkc UuLIZNsVnlQo9MDfR1tdNsR+6LY883PMARHpuNdhMSMxsDH0W9mrpk23Ffw/32XBxuzv 9L8G+AG7DLQMEa8Da0UZU03/39rQlXoDGNlRRkT027xAGpAFTrLIsuJGyc+MLmq1JHb4 JuMg== X-Gm-Message-State: AOAM531LmnOGdSUBMDGWDmyCog4we0fkaRI8MYebOhvBuyVCCqPXRN+9 RsNKYaPWZFkGzFUgJ9XZN496kChgOQ== X-Google-Smtp-Source: ABdhPJzChSy8JAIY69iH9HCa51J/cbJAnLUy4snMN4xAUfj9A3B5ViECqiidkpa8jrcoVr+s+i7Nlw== X-Received: by 2002:a17:90b:3c47:b0:1cb:8121:dcc8 with SMTP id pm7-20020a17090b3c4700b001cb8121dcc8mr4715374pjb.35.1650463550963; Wed, 20 Apr 2022 07:05:50 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.05.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:05:50 -0700 (PDT) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Miguel Ojeda , Thomas Gleixner , Nathan Chancellor , Nick Desaulniers , Tom Rix , Marc Zyngier , Florian Fainelli , Bartosz Golaszewski , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , llvm@lists.linux.dev Subject: [PATCH 3/9] irq/manage: remove some unreferenced code Date: Wed, 20 Apr 2022 22:05:15 +0800 Message-Id: <20220420140521.45361-4-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Neither remove_percpu_irq() nor for_each_irq_nr() has any users, so they can be removed. Signed-off-by: Pingfan Liu Cc: Miguel Ojeda Cc: Thomas Gleixner Cc: Nathan Chancellor Cc: Nick Desaulniers Cc: Tom Rix Cc: Marc Zyngier Cc: Florian Fainelli Cc: Bartosz Golaszewski Cc: "C=C3=A9dric Le Goater" Cc: llvm@lists.linux.dev To: linux-kernel@vger.kernel.org Acked-by: Miguel Ojeda --- .clang-format | 1 - include/linux/irq.h | 1 - include/linux/irqnr.h | 3 --- kernel/irq/manage.c | 15 --------------- 4 files changed, 20 deletions(-) diff --git a/.clang-format b/.clang-format index fa959436bcfd..fb161bc8ca1a 100644 --- a/.clang-format +++ b/.clang-format @@ -198,7 +198,6 @@ ForEachMacros: - 'for_each_if' - 'for_each_iommu' - 'for_each_ip_tunnel_rcu' - - 'for_each_irq_nr' - 'for_each_link_codecs' - 'for_each_link_cpus' - 'for_each_link_platforms' diff --git a/include/linux/irq.h b/include/linux/irq.h index f92788ccdba2..ec50007decfc 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -603,7 +603,6 @@ enum { =20 struct irqaction; extern int setup_percpu_irq(unsigned int irq, struct irqaction *new); -extern void remove_percpu_irq(unsigned int irq, struct irqaction *act); =20 #ifdef CONFIG_DEPRECATED_IRQ_CPU_ONOFFLINE extern void irq_cpu_online(void); diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h index 3496baa0b07f..082fe0856e87 100644 --- a/include/linux/irqnr.h +++ b/include/linux/irqnr.h @@ -28,7 +28,4 @@ unsigned int irq_get_next_irq(unsigned int offset); for (irq =3D irq_get_next_irq(0); irq < nr_irqs; \ irq =3D irq_get_next_irq(irq + 1)) =20 -#define for_each_irq_nr(irq) \ - for (irq =3D 0; irq < nr_irqs; irq++) - #endif diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index c03f71d5ec10..b7c86be68b58 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -2466,21 +2466,6 @@ static struct irqaction *__free_percpu_irq(unsigned = int irq, void __percpu *dev_ return NULL; } =20 -/** - * remove_percpu_irq - free a per-cpu interrupt - * @irq: Interrupt line to free - * @act: irqaction for the interrupt - * - * Used to remove interrupts statically setup by the early boot process. - */ -void remove_percpu_irq(unsigned int irq, struct irqaction *act) -{ - struct irq_desc *desc =3D irq_to_desc(irq); - - if (desc && irq_settings_is_per_cpu_devid(desc)) - __free_percpu_irq(irq, act->percpu_dev_id); -} - /** * free_percpu_irq - free an interrupt allocated with request_percpu_irq * @irq: Interrupt line to free --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A776C433F5 for ; Wed, 20 Apr 2022 14:06:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379321AbiDTOIt (ORCPT ); Wed, 20 Apr 2022 10:08:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54998 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379310AbiDTOIm (ORCPT ); Wed, 20 Apr 2022 10:08:42 -0400 Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E8E9F3E0E0; Wed, 20 Apr 2022 07:05:55 -0700 (PDT) Received: by mail-pj1-x1036.google.com with SMTP id 2so2047273pjw.2; Wed, 20 Apr 2022 07:05:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HnqqSsjL9QQm+IpAcwauYSo9Io7ouReUn6ghaim9b0I=; b=ZjT8ZhfBExSv6n6WjkCSh9zUr2OvIPG/pBPPq4OwJ1Q/zOstz0vV4czjDMVWuZ1zCi Cl86wJPMqAU61fDy5XDHrb2UBdti70SAvt48orBaYyHukIxAYlf6Wfv5x0wYrAarR3w6 SpHggtTrhwTuppiAxCb0TvpWa2GzeguT5hKPgtVca3a7iQABQrHmx9pxBsl1RrMVdGBj oUIwZ5wsfVGu+kIsVaDKnHfVyLcpax2buLEc38VOu3kI/gKjvwTN4fMsrwGD2WFfZUyA jFazxm2MuCcnPr9lluLc5lW1r8WoIpfbpg3RfspbdXflZwxJsa30hGxnEYRSFNW2UK3/ ipAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HnqqSsjL9QQm+IpAcwauYSo9Io7ouReUn6ghaim9b0I=; b=BLpo2OAXsSy9S5a4vViGehkyYXFVseyb4NshPCJvQAUx9W0qNZ555EDe5wmSRlwAWz plXMbE3df5zK7w4+RUCvaibC02jKMD30IPfWR9PStud6zw8Q/i8kjfImoRdxX60Hpira +KA5qfN73nk7eM0AC9CocMYRhgoEwMBRPRyhonU5lNaG3LcT+AGuhm3WOGEmI5BaS2/V 4x+fEp1ZWQeAaiBkung0pUU8v0CRwldYLAk//9sEb+LylOYEiDh3dgPccNNny9k0PvW9 1FIGtjq0pie8wjhdMao5xo6aqgugJkfJU9WHIMbz6is22Nq0FDiuCy78ribOwmuGiQm9 8NRQ== X-Gm-Message-State: AOAM531rOihHvCu0c03eQXHdgdAjqzr45+I8Azbee9MCnMgR6e6bDhCV 7wM4DwgR3T7I/D2rk82c2vfhRY0XFQ== X-Google-Smtp-Source: ABdhPJxxaICtnDQ2mqwa4dW4TPgE4mg0SkSYATaxZ588s8Gnwp4hJ1M0lmnnegjGU2zlxmipuW494A== X-Received: by 2002:a17:90a:ba15:b0:1c6:7873:b192 with SMTP id s21-20020a17090aba1500b001c67873b192mr4721316pjr.76.1650463555255; Wed, 20 Apr 2022 07:05:55 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.05.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:05:54 -0700 (PDT) From: Pingfan Liu To: linux-s390@vger.kernel.org Cc: Pingfan Liu , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Sebastian Andrzej Siewior , linux-kernel@vger.kernel.org Subject: [PATCH 4/9] s390/irq: utilize RCU instead of irq_lock_sparse() in show_msi_interrupt() Date: Wed, 20 Apr 2022 22:05:16 +0800 Message-Id: <20220420140521.45361-5-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" irq_desc can be accessed safely in RCU read section as demonstrated by kstat_irqs_usr(). And raw_spin_lock_irqsave() context can provide a rcu read section, which can be utilized to get rid of irq_lock_sparse(). Signed-off-by: Pingfan Liu Cc: Heiko Carstens Cc: Vasily Gorbik Cc: Alexander Gordeev Cc: Christian Borntraeger Cc: Sven Schnelle Cc: Sebastian Andrzej Siewior Cc: linux-kernel@vger.kernel.org To: linux-s390@vger.kernel.org --- arch/s390/kernel/irq.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index 3033f616e256..6302dc7874cf 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c @@ -205,12 +205,13 @@ static void show_msi_interrupt(struct seq_file *p, in= t irq) unsigned long flags; int cpu; =20 - irq_lock_sparse(); + raw_spin_lock_irqsave(&desc->lock, flags); desc =3D irq_to_desc(irq); - if (!desc) - goto out; + if (!desc) { + raw_spin_unlock_irqrestore(&desc->lock, flags); + return; + } =20 - raw_spin_lock_irqsave(&desc->lock, flags); seq_printf(p, "%3d: ", irq); for_each_online_cpu(cpu) seq_printf(p, "%10u ", irq_desc_kstat_cpu(desc, cpu)); @@ -223,8 +224,6 @@ static void show_msi_interrupt(struct seq_file *p, int = irq) =20 seq_putc(p, '\n'); raw_spin_unlock_irqrestore(&desc->lock, flags); -out: - irq_unlock_sparse(); } =20 /* --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77105C433F5 for ; Wed, 20 Apr 2022 14:06:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379329AbiDTOIy (ORCPT ); Wed, 20 Apr 2022 10:08:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55070 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379314AbiDTOIq (ORCPT ); Wed, 20 Apr 2022 10:08:46 -0400 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E1F93E0E2 for ; Wed, 20 Apr 2022 07:06:00 -0700 (PDT) Received: by mail-pl1-x629.google.com with SMTP id j8so1837438pll.11 for ; Wed, 20 Apr 2022 07:06:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iQPhbY+LxZLej2JSRwshiiNk4MKgpm0s/70/5SE/Spw=; b=BeznbCe320Iwc28CPWiQKfI6oFePospyKcwGywCHWnFSddTpMFekmYVGIUo5xODNL4 eKIQyXaEuaMz4suKWnDAmWuAGp/TAArKty/wtGqd2RX6OJuryeh5didBpgXMjGjiC+Uo TWfT4omujCztsxLAIsr8bJdQemveNhF7U9fyQJZcToIxZfDDDZaVtwvT/ZlNq/sQg7cA 6e9OTdX+gmNJJlGJY3YhhcnwwjkkzmESWdoPj0VpCCTlt1UafYTmKJ8p3h/jsIeMIHze g4z+l29ROVu3rl8J2LMQ0xGMlPGkv379qNbUhkpDFavtRR6NuFLgs5v+RXmsW3W7NmPe 48qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iQPhbY+LxZLej2JSRwshiiNk4MKgpm0s/70/5SE/Spw=; b=NGyxUxSJU/eVZJbHqe+cZZa4Yo8cOAZS/ppPlREKrnmRoYvnG/v1KKyYwPaMDtiDF5 6wFP8ymuYjU2ZRC/ivlIr6RNgKbiY9C+4XG0q/a1r5pLmB1Tz58Byy2mxKNxF1rA0Ss7 FgLbr21oWV8BOBvwZbZg/c+/3eyZhxpnXNDIdiE+DOj8Mgs7zqmPjGcOTNF7En0Zy7ki 5/67Zp0/87MdAA6OgTDanY/G/7aChaRNthhR/Aya7bzSw65iL4dFvvRsSGxcDuN9odo5 1UzRNX/fB/Yavq8wwP2phnBClAxi+CjsCVxAmDwnAFOKdWCxmS+//KpaHijUn6Fc0PbZ +JaA== X-Gm-Message-State: AOAM532yJU2Q9g/0l/I0jDG5KMS4ZzjJs1A3GzYFKSndVQFWry9EN8Zc 7ONZwHLuoUuw7D18+17hzg== X-Google-Smtp-Source: ABdhPJzeBkW3f0H9B2QpGGlxphhGMhWdnwiBvidcfwjRhxfxPxp8jQe7B+tCT/0j6S+aAfNzeJhwsA== X-Received: by 2002:a17:90b:1e10:b0:1ce:8478:ea09 with SMTP id pg16-20020a17090b1e1000b001ce8478ea09mr4767019pjb.134.1650463559607; Wed, 20 Apr 2022 07:05:59 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.05.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:05:59 -0700 (PDT) From: Pingfan Liu To: x86@kernel.org Cc: Pingfan Liu , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , "Maciej W. Rozycki" , Marc Zyngier , linux-kernel@vger.kernel.org Subject: [PATCH 5/9] x86/irq: place for_each_active_irq() in rcu read section Date: Wed, 20 Apr 2022 22:05:17 +0800 Message-Id: <20220420140521.45361-6-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Since there are access to irq_desc, and no preemption is provided at the involved, it requires rcu read lock to protect irq_desc. Signed-off-by: Pingfan Liu Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: "Maciej W. Rozycki" Cc: Marc Zyngier Cc: linux-kernel@vger.kernel.org To: x86@kernel.org --- arch/x86/kernel/apic/io_apic.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index c1bb384935b0..4bb16edcbe4d 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -1333,6 +1333,7 @@ void __init print_IO_APICs(void) print_IO_APIC(ioapic_idx); =20 printk(KERN_DEBUG "IRQ to pin mappings:\n"); + rcu_read_lock(); for_each_active_irq(irq) { struct irq_pin_list *entry; struct irq_chip *chip; @@ -1352,6 +1353,7 @@ void __init print_IO_APICs(void) pr_cont("-> %d:%d", entry->apic, entry->pin); pr_cont("\n"); } + rcu_read_unlock(); =20 printk(KERN_INFO ".................................... done.\n"); } @@ -2009,6 +2011,7 @@ static inline void init_IO_APIC_traps(void) struct irq_cfg *cfg; unsigned int irq; =20 + /* The early boot stage is free of irq_desc release */ for_each_active_irq(irq) { cfg =3D irq_cfg(irq); if (IO_APIC_IRQ(irq) && cfg && !cfg->vector) { --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2743BC433EF for ; Wed, 20 Apr 2022 14:06:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379330AbiDTOI5 (ORCPT ); Wed, 20 Apr 2022 10:08:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379319AbiDTOIt (ORCPT ); Wed, 20 Apr 2022 10:08:49 -0400 Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 29F19433A9 for ; Wed, 20 Apr 2022 07:06:03 -0700 (PDT) Received: by mail-pj1-x1034.google.com with SMTP id s14-20020a17090a880e00b001caaf6d3dd1so5049077pjn.3 for ; Wed, 20 Apr 2022 07:06:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2BbdN1kr5sGoIGX1dtNP33lYM00rauT2fciX5GfBZWk=; b=qPaGt8W1SqBUdOv9jbIxxS6ZyJAG8y3H45tHU2B/Rku9YW/MdoizmUnnz/k3hzJuFL PwKCyUmQuU00oINndtdwHZGGA9NeIIp4Ja7sCeCsbVIxJx/6vqgyB2Wm5sUvQsUWqYur 5XrzKb6MyXbu3tr/UpAj6JhAP06wKMWV63FSUCkG9AMYgMGPXfTHQ5PHuZqReyCIoQCa eqlk9W1RBcZV6naDaBUkwHO/hpuNEy2xvG02iPOa9acTWBJb1tned1CLlL2IYSmTyaej 2CPr3alR9H1u8xODMebyeOSV5SuwemSA5rHLqGmq1RboRqULztcVquB/DVby9RpXMCBU Vl+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2BbdN1kr5sGoIGX1dtNP33lYM00rauT2fciX5GfBZWk=; b=mGs3wqf1/TKQl5EC7hNRTj7GnsB8PfRrkko54boblKRZEZAYGkuFj3ia0Nf2dlr5N1 AUm+N4MAq2AGPaSBMt9xPpWD7eUWkKvdkCAfGML5v76PJzG0ktFCkvEzHeYTUAaENuhh I889ZZpi4V9d/E1K/pDY/Q0Ow9PtB9vFbPLnzAIkpuUzE1arPiSiS/tPfWocjKIsgHyU YTkKlemDnUyGya4WEU5rigFtT3DMO6g8kaCCSQkeKH5YlwLdunlvfw8VQULWCpa3cxGh LCf+jz0fT+2b1aw6sXJ8MRiu8O0sN8EASb4P56Neap9b6Mh3pbk4cV5cFgpvMOy2TQXq GHwg== X-Gm-Message-State: AOAM533pIHv3KxjOyLink1ii9JLEj0F8QOmfsAhnbo0xB0arJlRvZ7ot y1LEMA7IqNLxfDP33+sG9zlkjb3PfQ== X-Google-Smtp-Source: ABdhPJy93n7MJeCi0rQR1oa0d4fp/Wo2Zw8s/BAo8O+6HmRdt6k0l6D5iy/e9DK4uqrR9bVmfGDL/Q== X-Received: by 2002:a17:90b:350e:b0:1d2:b6e2:1000 with SMTP id ls14-20020a17090b350e00b001d2b6e21000mr4702893pjb.199.1650463562517; Wed, 20 Apr 2022 07:06:02 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.06.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:06:02 -0700 (PDT) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Thomas Gleixner , "Rafael J. Wysocki" Subject: [PATCH 6/9] pm/irq: make for_each_irq_desc() safe of irq_desc release Date: Wed, 20 Apr 2022 22:05:18 +0800 Message-Id: <20220420140521.45361-7-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The invloved context is no a RCU read section. Furthermore there may be more than one task at this point. Hence it demands a measure to prevent irq_desc from freeing. Use irq_lock_sparse to serve the protection purpose. Signed-off-by: Pingfan Liu Cc: Thomas Gleixner Cc: "Rafael J. Wysocki" To: linux-kernel@vger.kernel.org --- kernel/irq/pm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c index ca71123a6130..4b67a4c7de3c 100644 --- a/kernel/irq/pm.c +++ b/kernel/irq/pm.c @@ -133,6 +133,7 @@ void suspend_device_irqs(void) struct irq_desc *desc; int irq; =20 + irq_lock_sparse(); for_each_irq_desc(irq, desc) { unsigned long flags; bool sync; @@ -146,6 +147,7 @@ void suspend_device_irqs(void) if (sync) synchronize_irq(irq); } + irq_unlock_sparse(); } EXPORT_SYMBOL_GPL(suspend_device_irqs); =20 @@ -186,6 +188,7 @@ static void resume_irqs(bool want_early) struct irq_desc *desc; int irq; =20 + /* The early resume stage is free of irq_desc release */ for_each_irq_desc(irq, desc) { unsigned long flags; bool is_early =3D desc->action && --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF221C433F5 for ; Wed, 20 Apr 2022 14:06:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379342AbiDTOJC (ORCPT ); Wed, 20 Apr 2022 10:09:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379335AbiDTOIy (ORCPT ); Wed, 20 Apr 2022 10:08:54 -0400 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 172764349B for ; Wed, 20 Apr 2022 07:06:09 -0700 (PDT) Received: by mail-pf1-x42a.google.com with SMTP id p3so685954pfw.0 for ; Wed, 20 Apr 2022 07:06:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2khFeLeVUO5ld1xI1BAqlcBSQpfcvbdSYE3+epMyuqI=; b=aeWdipoCVBqQ0XwlZV5CrcAVoHIe3L5+uvMQKpqsl5P76/cMWR8jB8f1opjELbHStN 9M4Q29RMQEJntWJS1g9GXV4ByQLPo2V/YSsgRgfNFcok6LHwU1h+EiutqDIMkutN2Ap1 L8eJUZqH6evHozuVd7xD8iZJQzWfKAg5RQM4uV1qAowMz6D5W5jOXspcZuUtnIGLDmF9 +PvzXfhjpOjx1kJ/3DtQwr32MbTzr6P/ZPDJE3v+kN1mep0Y3xXLNw4K+VIW+Lhmz9Vc HsHSLII9Z+oRbYV2vcj8+mETp6NnfMUyH02E4teMuvm754fUVCegrOH1PxSC21FkDoxi KV0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2khFeLeVUO5ld1xI1BAqlcBSQpfcvbdSYE3+epMyuqI=; b=lIblwm/EwRVXrGVPdefW31BD+CEUOzlTLnKFFCzJxynafSEUopts2RuQ5C16zOu7Oq UaRMyvzh1pSL3F4Upi3s8jPfrnZDK+YTOkGL/U5P2ZoeywdaYMj2/8Vaqz1y0etZIyu7 TH8lUmhinxEPSz2KjX2g3IORZyIJRUi2XsQzfw1jSCG24R9FGTQoCWqOkQKNLGeuCmwR LuL6vW6NWVPuIoGoInFRJMyndK1/cbF1PRwC8pTNpU4lbz9OsPNdUNc94CyY72s+u/fk xatAEB+kQrjH9y5agO8jMOCzW3QDiLjugj81hjImVC3QTnXvkrPHe0coQVm+tericFfx 87jA== X-Gm-Message-State: AOAM5330PlFEbLQqi5iFUrXJlpqudsYwZRRzt9uB+TxDGCz8u1GMKIi5 VFeXN+zGtOP4vq47r4CReHnUjO69iQ== X-Google-Smtp-Source: ABdhPJw3PaGLjc1VBIEVVM7c6O1tFj2r90M91lThQyFKbvvs94T1JR4g3lDnYQG0+dUkw0MlTXTvCg== X-Received: by 2002:a63:4c4b:0:b0:3aa:4af8:9ab8 with SMTP id m11-20020a634c4b000000b003aa4af89ab8mr5816697pgl.430.1650463568427; Wed, 20 Apr 2022 07:06:08 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.06.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:06:07 -0700 (PDT) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Thomas Gleixner , Valentin Schneider , Peter Zijlstra , Frederic Weisbecker , Baokun Li , Mark Rutland , Steven Price , "Jason A. Donenfeld" , Yuan ZhaoXiong , YueHaibing , Randy Dunlap Subject: [PATCH 7/9] irq: remove needless lock in takedown_cpu() Date: Wed, 20 Apr 2022 22:05:19 +0800 Message-Id: <20220420140521.45361-8-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Any allocation or release of irq_desc should fall into the interface of __irq_alloc_descs() or irq_free_descs(). And both of them hold the mutex sparse_irq_lock. This preemptability contradicts the preempt-disabled context when dispatching fn in cpu_stopper_thread(). So allocation or free of irq_desc can not be demanded in cpu_stopper_thread(). On the other hand, for the safety of access to irq_desc, rcu still keeps watching the dying cpu until the last minute rcu_report_dead(), so each cpu_stop_fn_t can safely access irq_desc. As a result, in takedown_cpu() irq_lock_sparse()/irq_unlock_sparse() can be safely removed. Signed-off-by: Pingfan Liu Cc: Thomas Gleixner Cc: Valentin Schneider Cc: Peter Zijlstra Cc: Frederic Weisbecker Cc: Baokun Li Cc: Mark Rutland Cc: Steven Price Cc: "Jason A. Donenfeld" Cc: Yuan ZhaoXiong Cc: YueHaibing Cc: Randy Dunlap To: linux-kernel@vger.kernel.org --- kernel/cpu.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/kernel/cpu.c b/kernel/cpu.c index d0a9aa0b42e8..94a6b512c26d 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -1033,18 +1033,16 @@ static int takedown_cpu(unsigned int cpu) kthread_park(st->thread); =20 /* - * Prevent irq alloc/free while the dying cpu reorganizes the - * interrupt affinities. + * RCU keeps watching 'cpu' until do_idle()->rcu_report_dead(). + * And cpu_stopper's fn is dispatched with preemption disabled. + * So it can not occur to release a irq_desc. */ - irq_lock_sparse(); =20 /* * So now all preempt/rcu users must observe !cpu_active(). */ err =3D stop_machine_cpuslocked(take_cpu_down, NULL, cpumask_of(cpu)); if (err) { - /* CPU refused to die */ - irq_unlock_sparse(); /* Unpark the hotplug thread so we can rollback there */ kthread_unpark(st->thread); return err; @@ -1061,9 +1059,6 @@ static int takedown_cpu(unsigned int cpu) wait_for_ap_thread(st, false); BUG_ON(st->state !=3D CPUHP_AP_IDLE_DEAD); =20 - /* Interrupts are moved away from the dying cpu, reenable alloc/free */ - irq_unlock_sparse(); - hotplug_cpu__broadcast_tick_pull(cpu); /* This actually kills the CPU. */ __cpu_die(cpu); --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A91E3C433F5 for ; Wed, 20 Apr 2022 14:06:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379336AbiDTOJK (ORCPT ); Wed, 20 Apr 2022 10:09:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379344AbiDTOJH (ORCPT ); Wed, 20 Apr 2022 10:09:07 -0400 Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62325434A8 for ; Wed, 20 Apr 2022 07:06:12 -0700 (PDT) Received: by mail-pj1-x1034.google.com with SMTP id bx5so2031424pjb.3 for ; Wed, 20 Apr 2022 07:06:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CYIjb5ot+DXDq9R/lT/ZSWg8BN/TKlauVlu3GfZ3FtU=; b=JhHDW8jR8pb/E7zcpG1BJ2se2nBWyC7Vs20lwwcBreD3VwgOeCufaHmaRAejXrBW5J Vzd76qLCSqwltDscmS0OgjQRq2pwTtI5B/tKldbPuF8gDOuTQkt2z428uDqjxJQlSLEt SytP5+2cgL4JsQLr4j0d5upl1Z5hZQXVHzMxixlBVp5OtiMRegc5bzGEuyKHjW3FkbHM SCgfXr3qizY4OCvAyZG2kMXzI5TdKyP00exqWkvzfhl2Ho5x7/JmAaN9tHLfZWGzpLZz 7ZSK5m7HyUHxcvzT6fmeIbJYKNhUhkyPGbAEjRH9+vy0oD0OIP381CWcH9vDHav0F5MM azlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CYIjb5ot+DXDq9R/lT/ZSWg8BN/TKlauVlu3GfZ3FtU=; b=EKXxXl8cEg8Zc5mPTgYTqA/T3f0+rL1NgRbI0RKopnm3HYkxOjsfieg9rb58Ki2qrH FuDuxjcTrVBU1SdnYmm1ea+hJvUOUgpcTRATlP0q7aNahXllAN5eVaB+m8YObORohzJY fwLrHCTay+7mauHZXgTElhap/29FKzdYbVMDuho1ObVCtGNcbyPzzfs4GrMjsESWONRG ayV30NtazMk4HITLuyJXNSNkxamK6GBt70FvfS/Pa96sitJ+OGdf0P8BbxFP14WGLaeC wzuMC8SflrcgUB7isEJ/Bw5zu0qDe5x2Me1s2hPcSNWkl/48+qnoQCm4nwSG+Ex2/Qe4 Si2A== X-Gm-Message-State: AOAM531bGLANForhLZrJojjmRSPvwmpXOf5Q7tQoK0ADQCGoPN6NbsOE zPI3RkSKnL65N6HVqAJ17EqcwKQ8HQ== X-Google-Smtp-Source: ABdhPJydWnvw9m8G76gSA2HdRV81U86tAJT4NmiNua8Scd1Geyi2peAIuvgVJ80DGKPw78JlWXxXjg== X-Received: by 2002:a17:902:ca04:b0:158:eab9:2676 with SMTP id w4-20020a170902ca0400b00158eab92676mr19594831pld.1.1650463571694; Wed, 20 Apr 2022 07:06:11 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.06.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:06:11 -0700 (PDT) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Thomas Gleixner , Marc Zyngier , Wolfram Sang , Sebastian Andrzej Siewior , Mark Rutland Subject: [PATCH 8/9] irq: make irq_lock_sparse() independent of CONFIG_SPARSE_IRQ Date: Wed, 20 Apr 2022 22:05:20 +0800 Message-Id: <20220420140521.45361-9-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Even in the case of non-sparse irq, the callsite of for_each_active_irq() in irq_debugfs_init() still cares about the sync of allocated_irqs bitmap. Otherwise irq_debugfs_init() may show some disappeared irq if the irq is disactived by other driver in parallel. As there are only a few callsites of irq_lock_sparse() in the cold path, which means the slight performance drops can be ignored. Hence moving irq_lock_sparse() out of CONFIG_SPARSE_IRQ to protect both irq_desc and allocated_irqs bitmap, instead of making irq_lock_sparse() dependent on GENERIC_IRQ_DEBUGFS. Signed-off-by: Pingfan Liu Cc: Thomas Gleixner Cc: Marc Zyngier Cc: Wolfram Sang Cc: Sebastian Andrzej Siewior Cc: Mark Rutland To: linux-kernel@vger.kernel.org --- include/linux/irqdesc.h | 6 ++---- kernel/irq/irqdesc.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index a77584593f7d..6c01231fec00 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h @@ -104,12 +104,10 @@ struct irq_desc { const char *name; } ____cacheline_internodealigned_in_smp; =20 -#ifdef CONFIG_SPARSE_IRQ extern void irq_lock_sparse(void); extern void irq_unlock_sparse(void); -#else -static inline void irq_lock_sparse(void) { } -static inline void irq_unlock_sparse(void) { } + +#ifndef CONFIG_SPARSE_IRQ extern struct irq_desc irq_desc[NR_IRQS]; #endif =20 diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 9feedaa08430..a5cefd7c9ef7 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -375,16 +375,6 @@ static void free_masks(struct irq_desc *desc) static inline void free_masks(struct irq_desc *desc) { } #endif =20 -void irq_lock_sparse(void) -{ - mutex_lock(&sparse_irq_lock); -} - -void irq_unlock_sparse(void) -{ - mutex_unlock(&sparse_irq_lock); -} - static struct irq_desc *alloc_desc(int irq, int node, unsigned int flags, const struct cpumask *affinity, struct module *owner) @@ -721,6 +711,16 @@ int generic_handle_domain_nmi(struct irq_domain *domai= n, unsigned int hwirq) } #endif =20 +void irq_lock_sparse(void) +{ + mutex_lock(&sparse_irq_lock); +} + +void irq_unlock_sparse(void) +{ + mutex_unlock(&sparse_irq_lock); +} + /* Dynamic interrupt handling */ =20 /** --=20 2.31.1 From nobody Mon May 11 00:05:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0586FC433F5 for ; Wed, 20 Apr 2022 14:06:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379345AbiDTOJQ (ORCPT ); Wed, 20 Apr 2022 10:09:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55558 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379326AbiDTOJH (ORCPT ); Wed, 20 Apr 2022 10:09:07 -0400 Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB14443AC6 for ; Wed, 20 Apr 2022 07:06:17 -0700 (PDT) Received: by mail-pf1-x432.google.com with SMTP id bo5so2032441pfb.4 for ; Wed, 20 Apr 2022 07:06:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8kekJI/xbhVTaB0kWCa/VXYzAzzmU1o9FoYB/mXUI7s=; b=oYwbEOQe3RG3YD7tEJ1vNhordyA4jyaj/hIJyCJXfkscClBDkhAXoZoRX3OE99jkZe FXNJKnEfJnNhV9NTJLLrtERwb3ZnZ+hRb/wqE/nj1wLZu4nMVn/8swXpSvjjN3Jrw5P5 57khmj4petaztDIt1vvOYdk7XDOJKbRNJIH3KXdOFCsq6vnF8bWZL2pjJvti1FBAJglF fRBa1MY9kVlsfrUrWrdDnr/j3CZSKITATHWub2ShsXclVUubtEEf/QZxsSQ2rCE0CcFv 0rkk38WAvR+kGTLonyzHgSi1Svzn8PVnrSVZgl2cqXag1V0lbS6Qt8Ny+Uap5YIuQJ/L ir8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8kekJI/xbhVTaB0kWCa/VXYzAzzmU1o9FoYB/mXUI7s=; b=L5lPqq2d6w2Cbdm0edmnQOQBZjJvk2URdu7LJqf1IpPyq2Q7Vh0FJHa+1Em7GVCE6d qSe5HPCfOcHxzOW8BxKEzB1RMdlL6aFmO0yzyhKS3LtdBiBKFKSNpbHrXWrls4THUCel IR64epNUzObiyO1ul4LzcH/LZ2M+fP41KSSkQIrj2Cpla1JdMHkmf0uzh77d8gA8eM0X 1MOQh8Tx1i7YVocw9h7VvhjjDmSJAryj86PeVEjAW9KnFjxW5o7odcDrAGN5GpYwXhSD bPPyAbLDAQmi8pAVHuU0vWskzUxg5c+iWi30qhbnlUfWAA2RDLDBe70ZVYmRzJLc3xvV X2gg== X-Gm-Message-State: AOAM531UnLUqM9aWPEeh0laIZu5dnoCmxQeCSW90tBWgKyU3FCeEWI0D e/Aa4WHp94IknUqSPuhgGDw/iqzWhA== X-Google-Smtp-Source: ABdhPJzDeaoK+nUWkm2wsgxu8+uqir0BvHca0X3kMC/cLo9ATnXiu06q4nx0CSdeyWcy2X7HYpAnsw== X-Received: by 2002:a05:6a00:14cb:b0:50a:7e08:e1fc with SMTP id w11-20020a056a0014cb00b0050a7e08e1fcmr14317925pfu.12.1650463577110; Wed, 20 Apr 2022 07:06:17 -0700 (PDT) Received: from piliu.users.ipa.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id br10-20020a056a00440a00b0050a777cd10csm10959178pfb.91.2022.04.20.07.06.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 07:06:16 -0700 (PDT) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Thomas Gleixner , Marc Zyngier , Mark Rutland , Oleksandr Natalenko , Sebastian Andrzej Siewior , Peter Zijlstra , Valentin Schneider , Qais Yousef , Yuan ZhaoXiong , Randy Dunlap , Dongli Zhang , YueHaibing , Steven Price Subject: [PATCH 9/9] irq/irqdesc: rename sparse_irq_lock to bitmap_lock Date: Wed, 20 Apr 2022 22:05:21 +0800 Message-Id: <20220420140521.45361-10-kernelfans@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420140521.45361-1-kernelfans@gmail.com> References: <20220420140521.45361-1-kernelfans@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Now that sparse_irq_lock serves for both sparse and non-sparse purpose, it is better to rename it as bitmap_lock. Corresponding, rename irq_lock_sparse() as irq_lock_bitmap(). Signed-off-by: Pingfan Liu Cc: Thomas Gleixner Cc: Marc Zyngier Cc: Pingfan Liu Cc: Mark Rutland Cc: Oleksandr Natalenko Cc: Sebastian Andrzej Siewior Cc: Peter Zijlstra Cc: Valentin Schneider Cc: Qais Yousef Cc: Yuan ZhaoXiong Cc: Randy Dunlap Cc: Dongli Zhang Cc: YueHaibing Cc: Steven Price To: linux-kernel@vger.kernel.org --- include/linux/irqdesc.h | 4 ++-- kernel/cpu.c | 4 ++-- kernel/irq/cpuhotplug.c | 4 ++-- kernel/irq/debugfs.c | 4 ++-- kernel/irq/irqdesc.c | 26 +++++++++++++------------- kernel/irq/pm.c | 4 ++-- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index 6c01231fec00..8301653fc2b2 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h @@ -104,8 +104,8 @@ struct irq_desc { const char *name; } ____cacheline_internodealigned_in_smp; =20 -extern void irq_lock_sparse(void); -extern void irq_unlock_sparse(void); +extern void irq_lock_bitmap(void); +extern void irq_unlock_bitmap(void); =20 #ifndef CONFIG_SPARSE_IRQ extern struct irq_desc irq_desc[NR_IRQS]; diff --git a/kernel/cpu.c b/kernel/cpu.c index 94a6b512c26d..8874f0242893 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -601,11 +601,11 @@ static int bringup_cpu(unsigned int cpu) * setup the vector space for the cpu which comes online. * Prevent irq alloc/free across the bringup. */ - irq_lock_sparse(); + irq_lock_bitmap(); =20 /* Arch-specific enabling code. */ ret =3D __cpu_up(cpu, idle); - irq_unlock_sparse(); + irq_unlock_bitmap(); if (ret) return ret; return bringup_wait_for_ap(cpu); diff --git a/kernel/irq/cpuhotplug.c b/kernel/irq/cpuhotplug.c index 1ed2b1739363..84547b5781be 100644 --- a/kernel/irq/cpuhotplug.c +++ b/kernel/irq/cpuhotplug.c @@ -220,14 +220,14 @@ int irq_affinity_online_cpu(unsigned int cpu) struct irq_desc *desc; unsigned int irq; =20 - irq_lock_sparse(); + irq_lock_bitmap(); for_each_active_irq(irq) { desc =3D irq_to_desc(irq); raw_spin_lock_irq(&desc->lock); irq_restore_affinity_of_irq(desc, cpu); raw_spin_unlock_irq(&desc->lock); } - irq_unlock_sparse(); + irq_unlock_bitmap(); =20 return 0; } diff --git a/kernel/irq/debugfs.c b/kernel/irq/debugfs.c index 2b43f5f5033d..af4bd2ca2372 100644 --- a/kernel/irq/debugfs.c +++ b/kernel/irq/debugfs.c @@ -251,10 +251,10 @@ static int __init irq_debugfs_init(void) =20 irq_dir =3D debugfs_create_dir("irqs", root_dir); =20 - irq_lock_sparse(); + irq_lock_bitmap(); for_each_active_irq(irq) irq_add_debugfs_entry(irq, irq_to_desc(irq)); - irq_unlock_sparse(); + irq_unlock_bitmap(); =20 return 0; } diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index a5cefd7c9ef7..acd80cb8a511 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -130,7 +130,7 @@ static void desc_set_defaults(unsigned int irq, struct = irq_desc *desc, int node, int nr_irqs =3D NR_IRQS; EXPORT_SYMBOL_GPL(nr_irqs); =20 -static DEFINE_MUTEX(sparse_irq_lock); +static DEFINE_MUTEX(bitmap_lock); static DECLARE_BITMAP(allocated_irqs, IRQ_BITMAP_BITS); =20 #ifdef CONFIG_SPARSE_IRQ @@ -318,12 +318,12 @@ static int __init irq_sysfs_init(void) } =20 /* Prevent concurrent irq alloc/free */ - irq_lock_sparse(); + irq_lock_bitmap(); =20 /* Add the already allocated interrupts */ for_each_irq_desc(irq, desc) irq_sysfs_add(irq, desc); - irq_unlock_sparse(); + irq_unlock_bitmap(); =20 return 0; } @@ -607,9 +607,9 @@ static int irq_expand_nr_irqs(unsigned int nr) =20 void irq_mark_irq(unsigned int irq) { - mutex_lock(&sparse_irq_lock); + mutex_lock(&bitmap_lock); bitmap_set(allocated_irqs, irq, 1); - mutex_unlock(&sparse_irq_lock); + mutex_unlock(&bitmap_lock); } =20 #ifdef CONFIG_GENERIC_IRQ_LEGACY @@ -711,14 +711,14 @@ int generic_handle_domain_nmi(struct irq_domain *doma= in, unsigned int hwirq) } #endif =20 -void irq_lock_sparse(void) +void irq_lock_bitmap(void) { - mutex_lock(&sparse_irq_lock); + mutex_lock(&bitmap_lock); } =20 -void irq_unlock_sparse(void) +void irq_unlock_bitmap(void) { - mutex_unlock(&sparse_irq_lock); + mutex_unlock(&bitmap_lock); } =20 /* Dynamic interrupt handling */ @@ -735,12 +735,12 @@ void irq_free_descs(unsigned int from, unsigned int c= nt) if (from >=3D nr_irqs || (from + cnt) > nr_irqs) return; =20 - mutex_lock(&sparse_irq_lock); + mutex_lock(&bitmap_lock); for (i =3D 0; i < cnt; i++) free_desc(from + i); =20 bitmap_clear(allocated_irqs, from, cnt); - mutex_unlock(&sparse_irq_lock); + mutex_unlock(&bitmap_lock); } EXPORT_SYMBOL_GPL(irq_free_descs); =20 @@ -779,7 +779,7 @@ __irq_alloc_descs(int irq, unsigned int from, unsigned = int cnt, int node, from =3D arch_dynirq_lower_bound(from); } =20 - mutex_lock(&sparse_irq_lock); + mutex_lock(&bitmap_lock); =20 start =3D bitmap_find_next_zero_area(allocated_irqs, IRQ_BITMAP_BITS, from, cnt, 0); @@ -794,7 +794,7 @@ __irq_alloc_descs(int irq, unsigned int from, unsigned = int cnt, int node, } ret =3D alloc_descs(start, cnt, node, affinity, owner); unlock: - mutex_unlock(&sparse_irq_lock); + mutex_unlock(&bitmap_lock); return ret; } EXPORT_SYMBOL_GPL(__irq_alloc_descs); diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c index 4b67a4c7de3c..9b81a738d84f 100644 --- a/kernel/irq/pm.c +++ b/kernel/irq/pm.c @@ -133,7 +133,7 @@ void suspend_device_irqs(void) struct irq_desc *desc; int irq; =20 - irq_lock_sparse(); + irq_lock_bitmap(); for_each_irq_desc(irq, desc) { unsigned long flags; bool sync; @@ -147,7 +147,7 @@ void suspend_device_irqs(void) if (sync) synchronize_irq(irq); } - irq_unlock_sparse(); + irq_unlock_bitmap(); } EXPORT_SYMBOL_GPL(suspend_device_irqs); =20 --=20 2.31.1