From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752083AbdKTRqT (ORCPT ); Mon, 20 Nov 2017 12:46:19 -0500 Received: from mail.kernel.org ([198.145.29.99]:53172 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751977AbdKTRpt (ORCPT ); Mon, 20 Nov 2017 12:45:49 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7D16F21995 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=mcgrof@kernel.org From: "Luis R. Rodriguez" To: gregkh@linuxfoundation.org Cc: keescook@chromium.org, mfuzzey@parkeon.com, zohar@linux.vnet.ibm.com, dhowells@redhat.com, pali.rohar@gmail.com, tiwai@suse.de, arend.vanspriel@broadcom.com, zajec5@gmail.com, nbroeking@me.com, markivx@codeaurora.org, stephen.boyd@linaro.org, broonie@kernel.org, dmitry.torokhov@gmail.com, dwmw2@infradead.org, torvalds@linux-foundation.org, Abhay_Salunke@dell.com, bjorn.andersson@linaro.org, jewalt@lgsinnovations.com, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, "Luis R. Rodriguez" Subject: [PATCH 4/5] firmware: fix detecting error on register_reboot_notifier() Date: Mon, 20 Nov 2017 09:45:34 -0800 Message-Id: <20171120174535.27000-5-mcgrof@kernel.org> X-Mailer: git-send-email 2.13.2 In-Reply-To: <20171120174535.27000-1-mcgrof@kernel.org> References: <20171120174535.27000-1-mcgrof@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org register_reboot_notifier() can fail, detect this and address this failure. This has been broken since v3.11, however the chances of this failing here is really low. Fixes: fe304143b0c3d ("firmware: Avoid deadlock of usermodehelper lock at shutdown") Signed-off-by: Luis R. Rodriguez --- drivers/base/firmware_class.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 3340a17e0499..7ab54f2b032f 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -1860,8 +1860,15 @@ static int __init firmware_class_init(void) if (ret) return ret; - register_reboot_notifier(&fw_shutdown_nb); + ret = register_reboot_notifier(&fw_shutdown_nb); + if (ret) + goto out; + return register_sysfs_loader(); + +out: + unregister_fw_pm_ops(); + return ret; } static void __exit firmware_class_exit(void) -- 2.15.0