From patchwork Thu Oct 4 16:23:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Cavallari X-Patchwork-Id: 10626409 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2FFF4174A for ; Thu, 4 Oct 2018 16:24:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1C629291BF for ; Thu, 4 Oct 2018 16:24:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 10788293A0; Thu, 4 Oct 2018 16:24:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 97833291BF for ; Thu, 4 Oct 2018 16:24:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=nELaNJABXoiyUrUGZNqdsG2f0a1BvT420dTZASVg3us=; b=j5qfpMqdu90qCH wTQ2EhGG29mtgj62gPolQwKSJBFs9zZhrtca4/ur5bHiAdc+HTyis2ufHGS1g6A3mi7NKfv+Unmji pGHEKO0f0X+yJi8t3Qvfp8rfyztpgiBGJevijSFj11NKDOsdddb6ByRX7+tRr9MflxBmJPbRbp2vo IIPGTq7Xol8YH03+ewQQEQSXO4pMfbGB32ZP6EaEJYnSWsMp16kTInwd1XVqyE1C5ZZLUTu0BxLVf Ds9RA5CNo2m7qTdayJq1/oCePqIMdasNq+vxb8e3pSQoqsFivZD4d66yZMATnULuNz9GvP1nJZT1O 34sDd3JDwXHl7CS5IsvA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g86QR-0004tK-Fn; Thu, 04 Oct 2018 16:24:31 +0000 Received: from mout.kundenserver.de ([217.72.192.74]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g86Q6-0004X3-0u for linux-arm-kernel@lists.infradead.org; Thu, 04 Oct 2018 16:24:27 +0000 Received: from evilbit.green-communications.fr ([92.154.77.116]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.184]) with ESMTPSA (Nemesis) id 1MjSsm-1fRqaN1qeo-00kxz7; Thu, 04 Oct 2018 18:23:57 +0200 Received: from evilbit.green-communications.fr ([92.154.77.116]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.184]) with ESMTPSA (Nemesis) id 1MjSsm-1fRqaN1qeo-00kxz7; Thu, 04 Oct 2018 18:23:57 +0200 From: Nicolas Cavallari To: Andrew Morton , Russell King Subject: [RFC 1/2] reboot: Make restart_handler_list a blocking notifier chain. Date: Thu, 4 Oct 2018 18:23:38 +0200 Message-Id: <20181004162339.19493-2-nicolas.cavallari@green-communications.fr> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181004162339.19493-1-nicolas.cavallari@green-communications.fr> References: <20181004162339.19493-1-nicolas.cavallari@green-communications.fr> MIME-Version: 1.0 X-Provags-ID: V03:K1:nCzxF+ZBR69lODzj8Sb8zf4e+pgpLEDOAGIoMHli4slgeMLR+Xi PvwOQSlOzD9XXW2NL82jHgXalJtxnj/XMwdCbKqfR7uo5Q+nCimn7ik4OdtXJSDqCaAwt1F 5x972HBT0FOh0WI8ZjBLinx1kyPbOwqKjDlwNt2opHCjj9QwgvXm+YFnIR3ejd6GYsHXsoK tstnm+qz5Qjy1qHnvwyZQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:5z/exxThLzE=:DzJjP45pwgFwCHCxM+bclZ s2GWeFz8TP1HRABlU82jIIufWjUR7afhZUXeZ5Lq2qEt5LK5/aZpr64QNCzRl36PlptDeMwi0 W0NdMhKUqlxYwytZ+IiFE73JQoQrJc8OtE9ffO3R2bxqNt/wXCIqRGD1HwHp1OKbUV1su8Ub6 jTWGhXnEjWOub2CyHhO+9uUK7my4vsM9cvaCAYs5rSzlAFv1NMIMYinE1CCPA2ZrzhCStpWkV LpxPbxzjQa6qD17HOuD/37OBB5vh91RG54AKvb7O5yhbCLJU0RTKdoVLnEdOt4aW/xLLlv1q4 9eWayN93bTQ+1pmqP5AqoRwS0QS8PpxUNvxdW4ymffaa7EK5lVHnT3muYct/ZWH3wj3H0adoj SeKVZ8GpKHO9z2qp0hcMwlLk2FoH5ioX4iIfUcXPz7MBdVwsEKMEP9bno07da0Kfc9UNha0ar /IuWodhbmI8YaY4CqV/2lPOXzcNBNa99s009rw/lR7DUBhRWD4qA10GLtUkK3MBSGFgKUOqg7 GMJUVvyhaV18kv3DJAqgpaFhavNHo/enQ6wKd1o5CLbOevV2L2mozjHTBmkqPXAkSMJSCtjFj LFaNLm/AGQ8L7ILQOMQUjo+R9CdWgRa/fMSpTSki8uqvi/vPkGNaeZJY9MO6h0qdG/pV9Ydr6 +NwPrTNx+UiHF0nOgBEWyVJeclU/VTadCX0M8bSR9Q9+bEJAuPCPF8HozSZaM4tberwU= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181004_092410_386642_C09EA9B7 X-CRM114-Status: GOOD ( 12.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Many users of restart_handlers are sleeping in their callbacks. Some are doing infinite loops or calling driver code that may sleep or perform operation on slow busses, like i2c. This is not allowed in an atomic notifier chain, which is what restart_handler_list currently is, so use a blocking notifier chain instead. Signed-off-by: Nicolas Cavallari --- kernel/reboot.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/reboot.c b/kernel/reboot.c index 8fb44dec9ad7..f0ba0008dbde 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -135,7 +135,7 @@ EXPORT_SYMBOL(devm_register_reboot_notifier); * Notifier list for kernel code which wants to be called * to restart the system. */ -static ATOMIC_NOTIFIER_HEAD(restart_handler_list); +static BLOCKING_NOTIFIER_HEAD(restart_handler_list); /** * register_restart_handler - Register function to be called to reset @@ -172,12 +172,12 @@ static ATOMIC_NOTIFIER_HEAD(restart_handler_list); * hardware is expected to register with low priority to ensure that * it only runs if no other means to restart the system is available. * - * Currently always returns zero, as atomic_notifier_chain_register() + * Currently always returns zero, as blocking_notifier_chain_register() * always returns zero. */ int register_restart_handler(struct notifier_block *nb) { - return atomic_notifier_chain_register(&restart_handler_list, nb); + return blocking_notifier_chain_register(&restart_handler_list, nb); } EXPORT_SYMBOL(register_restart_handler); @@ -192,7 +192,7 @@ EXPORT_SYMBOL(register_restart_handler); */ int unregister_restart_handler(struct notifier_block *nb) { - return atomic_notifier_chain_unregister(&restart_handler_list, nb); + return blocking_notifier_chain_unregister(&restart_handler_list, nb); } EXPORT_SYMBOL(unregister_restart_handler); @@ -209,7 +209,7 @@ EXPORT_SYMBOL(unregister_restart_handler); */ void do_kernel_restart(char *cmd) { - atomic_notifier_call_chain(&restart_handler_list, reboot_mode, cmd); + blocking_notifier_call_chain(&restart_handler_list, reboot_mode, cmd); } void migrate_to_reboot_cpu(void) From patchwork Thu Oct 4 16:23:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Cavallari X-Patchwork-Id: 10626415 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 400001731 for ; Thu, 4 Oct 2018 16:26:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2D6FD291BF for ; Thu, 4 Oct 2018 16:26:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 21CE5293A0; Thu, 4 Oct 2018 16:26:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B4290291BF for ; Thu, 4 Oct 2018 16:26:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=W8BUPGuehToxx0G0w2PkyaiLNiAxU+SMT3HPZgyr2t0=; b=kCVnp3Vr8Yp0NO dVsCnvD6kkj0j/dw5x1dfHbn99/YkglFNZKjtGRsJZfyZSt7uQ4UHv5w1AdRxT8Q2b7QT0imjCySg WwClFEMFRfFZiqA0JhvN/Oqfeh1OpYJ/jFjTCfWSMVwsK+NtB4BUKD/hWHOMqi4OYpptfdJgSccnL 8JCNoUsjZRrALnMRT3CxmFbhCwBnkT0AMaOl93ALeWQ8PTtqB9MgB196uq9d1ujBZchNPxCT58H4F j79NVkmYzGE3riPovr41cR7Zn5/ePU9qwi+6euEwxO02dMrc9aLtEmoyggRwf4flAhMS6tK6rMcBk IQub1GWqbdNvc2MIsmCQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g86Rm-0006dF-Ql; Thu, 04 Oct 2018 16:25:54 +0000 Received: from mout.kundenserver.de ([217.72.192.73]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g86Q9-0004YI-9E for linux-arm-kernel@lists.infradead.org; Thu, 04 Oct 2018 16:24:30 +0000 Received: from evilbit.green-communications.fr ([92.154.77.116]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.184]) with ESMTPSA (Nemesis) id 1MplsZ-1fN9cJ1Y57-00qCmk; Thu, 04 Oct 2018 18:23:58 +0200 Received: from evilbit.green-communications.fr ([92.154.77.116]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.184]) with ESMTPSA (Nemesis) id 1MplsZ-1fN9cJ1Y57-00qCmk; Thu, 04 Oct 2018 18:23:58 +0200 From: Nicolas Cavallari To: Andrew Morton , Russell King Subject: [RFC UGLY 2/2] arm: Re-enable interrupts after shutting down non-boot CPUs. Date: Thu, 4 Oct 2018 18:23:39 +0200 Message-Id: <20181004162339.19493-3-nicolas.cavallari@green-communications.fr> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181004162339.19493-1-nicolas.cavallari@green-communications.fr> References: <20181004162339.19493-1-nicolas.cavallari@green-communications.fr> MIME-Version: 1.0 X-Provags-ID: V03:K1:J2JJBOXLdWMTs9GeNXaIdK09iynujUFT7O/BQ0rcpZcevf/zkBd UPTpP4CYXjzE5Fxhg0DOKrkos6gywaJWj30LtLiomZRiGcWy1v9mOiGEHT0hkGZnNKWjLlL uXHBMdPAhDR6DG+8r7Hg3veElYti3tcp+nNHFkkjX6FaP3byrQzjWTV+z5tMjO05gwyp8hB CH2eBRDIZTcto1Rmno2Sw== X-UI-Out-Filterresults: notjunk:1;V01:K0:eee4qCK3uFs=:2xKKoZlHsAFg8KRt33XJg0 kEMZxQ/eKOfjjmeNSkzn4zviSnXhbyTZeikZDPtrkuV2466t0E88l0DqOZUdySiNMuxCzd8/t 7JXyaBK5mY7u7MuuihhNtGLAK+CzuDkACMQHWGnkwwLGuzbQh1gaycYTXGvH1zBPlft12rS/B R4R/T+f18BK2q79NQ1VEEhNbOT6AT0jQcw2KMmBLiGvM2Vm+QXmHpgMYJ0rwpr4n10BndGQe2 ozqatkiGkVUHB0+IhTteyD2Qp9Y+nZqqaW7SbwQUXtO4G3WKHV0jchVsn3uKypHMvZoVfNJFy 9OYKlYhYNVFsdAR8adT2vsas73PuivD6688kEl5hYOY/y6aUoBTuXGTBfJW/e5D15bz1r3qAb Mv7b9By9jMKhg4CasjV2fIIOCNgfKkYGTYPWr2VO8Ep+j48qUET2vXm5rMhQWnywm7gE7sRRN eSQnHcVGfYbv9zt+KSREfspZeA7OHxpcceDYH1NMuhytU6ay7Kui9HsW9Tblav4+Ta0dDXUyf rOy2M5jr1ZoGkUgqvLtVD90/8Kp2+d1gBN6qMCFUOaf2nVJW7wQmTqj1pXnPp0z5UI/tyy3Cg V40R41KpNAOOFLI1r+XroPnqROMKF5dy3EzFn9FwGe/uvjqYj9c83XNeZbibcZ+lvl2ttR8Ns 8O000r516DASE1JD7+h2gehJpMdskYl54uLLUNBrWevtR+mmvowMMv5Z6AsCRxPnR+LQ= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181004_092413_657553_20F3A7B8 X-CRM114-Status: UNSURE ( 9.47 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Some system power controller are behind bus like i2c, whose controller driver requires interrupts to work. Signed-off-by: Nicolas Cavallari --- arch/arm/kernel/reboot.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c index 3b2aa9a9fe26..2773068c0d67 100644 --- a/arch/arm/kernel/reboot.c +++ b/arch/arm/kernel/reboot.c @@ -140,6 +140,7 @@ void machine_restart(char *cmd) { local_irq_disable(); smp_send_stop(); + local_irq_enable(); if (arm_pm_restart) arm_pm_restart(reboot_mode, cmd);