From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754904AbbBABlt (ORCPT ); Sat, 31 Jan 2015 20:41:49 -0500 Received: from mxf2.bahnhof.se ([213.80.101.26]:62764 "EHLO mxf2.bahnhof.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752974AbbBABls (ORCPT ); Sat, 31 Jan 2015 20:41:48 -0500 X-Greylist: delayed 1937 seconds by postgrey-1.27 at vger.kernel.org; Sat, 31 Jan 2015 20:41:47 EST X-Spam-Score: 0.306 From: Niklas Cassel To: dwmw2@infradead.org Cc: computersforpeace@gmail.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Niklas Cassel Subject: [PATCH] mtd: avoid registering reboot notifier twice Date: Sun, 1 Feb 2015 02:08:50 +0100 Message-Id: <1422752930-696-1-git-send-email-nks@flawful.org> X-Mailer: git-send-email 2.2.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Calling mtd_device_parse_register with the same mtd_info (e.g. registering several partitions on a single device) would add the same reboot notifier twice, causing an infinte loop in notifier_chain_register during boot up. Signed-off-by: Niklas Cassel --- drivers/mtd/mtdcore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index de79576..98efc1e 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -556,7 +556,7 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types, err = -ENODEV; } - if (mtd->_reboot) { + if (mtd->_reboot && !mtd->reboot_notifier.notifier_call) { mtd->reboot_notifier.notifier_call = mtd_reboot_notifier; register_reboot_notifier(&mtd->reboot_notifier); } -- 2.2.2