Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp1213559rwb; Wed, 26 Jul 2023 09:06:53 -0700 (PDT) X-Google-Smtp-Source: APBJJlGjkzR91dQoSfFi1MX7eCfIJ4cnK8M2t9/CWD5tdxGlHI7XdNoBaYez8uA5W3Fw6/tckKo3 X-Received: by 2002:a17:90a:b30d:b0:268:1068:4464 with SMTP id d13-20020a17090ab30d00b0026810684464mr2381243pjr.30.1690387613429; Wed, 26 Jul 2023 09:06:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690387613; cv=none; d=google.com; s=arc-20160816; b=n+/3XuuNIbfeUwocCiZCs5E4/aaomOmbizH//kxvzM3ldRySbYqNyfSyWz2U7FS1G1 i1lRKr15MGJrE34XCiTvuxj2rnEJRnUu9xlaBWoX8dkVR8446SgQHxBm1s14bagJwwLR 2a5ehYsNIc0RFikRuOeOnEgU+5tq6vfTOONNa4whQh/sLUWeUaK38XqNxvJa43+CeI3E DFwUOoOw4JAHqXHgtlQ0Qw2gHMs3hZT3atqneo0VNbJ/Hr75BE7pX5C0m1DqiC/HT4Mi WHs0c6LQkKlPIBflgN0h32QEesuYw7/L78ekiwo1oaC2FgB4Wht17GbJM3Z9p6w6pgIV 0Eow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jLRSjkxkJmKUj6adXqZKqUD1LC7hXnpWEfBGTFfcF3E=; fh=OtJVFpZ5Y8/ND7g8QcUIbRSFhG4LznwcYYtG4zWKevM=; b=ZNTqFfArM3mUCDRtcoHdR38bNSkQspTzkAfuTePodZ0c3hmfrFkob6rIdEZQhY0YRT boJ0FQlxK3hsE4RHJxRiqdRZyKeMvXEgB0fqa9Q2AK45hmlSBecrSbXgaaOdPCl33C6h bLWR3tk4/PtN8NB6wt32oGT/urcK0vQgXvqXn7BJ6Vgjv8vinBc6EQZTnkp/n3tICTkw ZNaPuyL7Bg/3jnX2orcw8BM6xGueWwcSUpGC3Kqq/b2cIZ86GG/hnavNCjyu8Zol5GNA XkJMiv6EZypK9gm7T7UaSuZPA2Zw0QPmiPbkb4gwompPa6+bVpVY4DCBmTQU7mDr8XY/ R+TA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=FrfmVBLY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i34-20020a17090a3da500b0025690f8610bsi1289753pjc.59.2023.07.26.09.06.40; Wed, 26 Jul 2023 09:06:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=FrfmVBLY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233859AbjGZPRx (ORCPT + 99 others); Wed, 26 Jul 2023 11:17:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56896 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234841AbjGZPR3 (ORCPT ); Wed, 26 Jul 2023 11:17:29 -0400 Received: from mslow1.mail.gandi.net (mslow1.mail.gandi.net [217.70.178.240]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68D992D68; Wed, 26 Jul 2023 08:17:12 -0700 (PDT) Received: from relay5-d.mail.gandi.net (unknown [217.70.183.197]) by mslow1.mail.gandi.net (Postfix) with ESMTP id 2D1F3C924B; Wed, 26 Jul 2023 15:06:06 +0000 (UTC) Received: by mail.gandi.net (Postfix) with ESMTPA id AE6701C0007; Wed, 26 Jul 2023 15:03:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1690383838; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jLRSjkxkJmKUj6adXqZKqUD1LC7hXnpWEfBGTFfcF3E=; b=FrfmVBLYeoT0Pgn1lDU5uEzi5+79gsoJhzpR3lUQHuVVR9d9w4vk7xAlAftIevtwAXM/+h c0njH1hmSJrCkiLUeqEYMovX1MR6ZH17ZpnBGeo2xTntQO9hWsLKUzxlblUrH3lAtchGl5 F0Fx9CTdjxVhJ+JMTkoT2zSnigHvQMjC6UuymSP6Lo5VDBUFZG0FI1NurjvmuXrFMZw/CV ay2iEXm93LUcLlPZkouY68jJa0kyS24uw5kqlrr+aGGAcLQuZIVmdMqAl04hy/Choj7tji vLQmHjTdhpxFnR9sj6ycqrzdkdLValF39NY7wOIroAvSSkNNsRLkUjfLdQpKbg== From: Herve Codina To: Herve Codina , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lee Jones , Linus Walleij , Qiang Zhao , Li Yang , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Shengjiu Wang , Xiubo Li , Fabio Estevam , Nicolin Chen , Christophe Leroy , Randy Dunlap Cc: netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, alsa-devel@alsa-project.org, Thomas Petazzoni Subject: [PATCH v2 22/28] mfd: core: Ensure disabled devices are skiped without aborting Date: Wed, 26 Jul 2023 17:02:18 +0200 Message-ID: <20230726150225.483464-23-herve.codina@bootlin.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230726150225.483464-1-herve.codina@bootlin.com> References: <20230726150225.483464-1-herve.codina@bootlin.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: herve.codina@bootlin.com X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The loop searching for a matching device based on its compatible string is aborted when a matching disabled device is found. This abort avoid to add devices as soon as one disabled device is found. Continue searching for an other device instead of aborting on the first disabled one fixes the issue. Fixes: 22380b65dc70 ("mfd: mfd-core: Ensure disabled devices are ignored without error") Signed-off-by: Herve Codina --- drivers/mfd/mfd-core.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c index 0ed7c0d7784e..bcc26e64639a 100644 --- a/drivers/mfd/mfd-core.c +++ b/drivers/mfd/mfd-core.c @@ -146,6 +146,7 @@ static int mfd_add_device(struct device *parent, int id, struct platform_device *pdev; struct device_node *np = NULL; struct mfd_of_node_entry *of_entry, *tmp; + bool disabled; int ret = -ENOMEM; int platform_id; int r; @@ -181,13 +182,13 @@ static int mfd_add_device(struct device *parent, int id, goto fail_res; if (IS_ENABLED(CONFIG_OF) && parent->of_node && cell->of_compatible) { + disabled = false; for_each_child_of_node(parent->of_node, np) { if (of_device_is_compatible(np, cell->of_compatible)) { - /* Ignore 'disabled' devices error free */ + /* Skip 'disabled' devices */ if (!of_device_is_available(np)) { - of_node_put(np); - ret = 0; - goto fail_alias; + disabled = true; + continue; } ret = mfd_match_of_node_to_dev(pdev, np, cell); @@ -197,10 +198,17 @@ static int mfd_add_device(struct device *parent, int id, if (ret) goto fail_alias; - break; + goto match; } } + if (disabled) { + /* Ignore 'disabled' devices error free */ + ret = 0; + goto fail_alias; + } + +match: if (!pdev->dev.of_node) pr_warn("%s: Failed to locate of_node [id: %d]\n", cell->name, platform_id); -- 2.41.0