Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4861352pxb; Mon, 15 Feb 2021 03:18:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJwrKp+ytAAml3sTH8uw3Y08MdgTClqzRaQzX2fwj7zYxf3wzzh2d06EnpuCa9Y4rN2HOido X-Received: by 2002:a17:906:3850:: with SMTP id w16mr15424840ejc.286.1613387902507; Mon, 15 Feb 2021 03:18:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613387902; cv=none; d=google.com; s=arc-20160816; b=zI75k+yClJyRiUHM2k34yr0nTckJ3HI5TWM7CraJmk9KmEYhBV1sFFnz49dhP6MAEp dNCiGo45y0E3aWT+/mbUJuzxhbYiCeDOUtVFRzkEjOyg5kRVWLSSKkYBb6lDXR+2SZVx Ju59633TiJzcOl1Cy2yr3w2OATE7NZmBqlsKUmepVELLQ5LpMz1PGFWQLg6gaiOZkkjp X0mjyGGJ7f6Hl5b3+6pnD+IyVQF3EKUZPPxTIAiIK/1Xof47lPno3891imD7K3gbnG7t cwb5FuASefZbll+ZdwB4JPYCwnr2ULmfssIlrRhjVTMwqrK4fiiIalnysft8x29f5qOB nTPQ== 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 :message-id:date:subject:cc:to:from; bh=/BCtjAFtLByoFIC1WFYsPCg9MapqXL47empLD5iVv7A=; b=WRSnFW1hGxtWp1gKL9PFXvbW7EoNxahELbJ3gPZwBI7FccV4rtyyyZITbeoKaLqSqp D9JwOk6uUuboFfAtoT4WcL9pV52KKwHBCSQHFyG6PfrOyxeQ2dk3y2JzIKRVMwOJ0g1c 7tTv8sR9gXgjZrCJGcU1natFn4CnUZI5DzOeZjuut2Mav94HXrntzGp6WUl8U8UR8fUU Ti4ABy+9la98wfpHUYrcqky8BRe+ljka/OFmLTmv84nYwtAg3qSAE8+lgFkQ4Bi2LWTl CpnMOhdUdVoT+/2VPp+EkLITb1GJ1IA0egvMvlWwUMP0MHf8qEssUefIhMe+ZQDaM8lA tm8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id sb16si4165956ejb.46.2021.02.15.03.17.58; Mon, 15 Feb 2021 03:18:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229916AbhBOLRL (ORCPT + 99 others); Mon, 15 Feb 2021 06:17:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40686 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229890AbhBOLRG (ORCPT ); Mon, 15 Feb 2021 06:17:06 -0500 Received: from xavier.telenet-ops.be (xavier.telenet-ops.be [IPv6:2a02:1800:120:4::f00:14]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F788C061574 for ; Mon, 15 Feb 2021 03:16:25 -0800 (PST) Received: from ramsan.of.borg ([IPv6:2a02:1810:ac12:ed60:c5d6:9422:c618:ee58]) by xavier.telenet-ops.be with bizsmtp id VPGN2400E2PLE0701PGNlr; Mon, 15 Feb 2021 12:16:22 +0100 Received: from rox.of.borg ([192.168.97.57]) by ramsan.of.borg with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1lBbrZ-00755Z-RM; Mon, 15 Feb 2021 12:16:21 +0100 Received: from geert by rox.of.borg with local (Exim 4.93) (envelope-from ) id 1lBbrZ-00A0Sz-8i; Mon, 15 Feb 2021 12:16:21 +0100 From: Geert Uytterhoeven To: Saravana Kannan , Greg Kroah-Hartman , "Rafael J . Wysocki" Cc: linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH] driver core: Fix double failed probing with fw_devlink=on Date: Mon, 15 Feb 2021 12:16:19 +0100 Message-Id: <20210215111619.2385030-1-geert+renesas@glider.be> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org With fw_devlink=permissive, devices are added to the deferred probe pending list if their driver's .probe() method returns -EPROBE_DEFER. With fw_devlink=on, devices are added to the deferred probe pending list if they are determined to be a consumer, which happens before their driver's .probe() method is called. If the actual probe fails later (real failure, not -EPROBE_DEFER), the device will still be on the deferred probe pending list, and it will be probed again when deferred probing kicks in, which is futile. Fix this by explicitly removing the device from the deferred probe pending list in case of probe failures. Fixes: e590474768f1cc04 ("driver core: Set fw_devlink=on by default") Signed-off-by: Geert Uytterhoeven --- Seen on various Renesas R-Car platforms, cfr. https://lore.kernel.org/linux-acpi/CAMuHMdVL-1RKJ5u-HDVA4F4w_+8yGvQQuJQBcZMsdV4yXzzfcw@mail.gmail.com --- drivers/base/dd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 9179825ff646f4e3..91c4181093c43709 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -639,11 +639,13 @@ static int really_probe(struct device *dev, struct device_driver *drv) case -ENXIO: pr_debug("%s: probe of %s rejects match %d\n", drv->name, dev_name(dev), ret); + driver_deferred_probe_del(dev); break; default: /* driver matched but the probe failed */ pr_warn("%s: probe of %s failed with error %d\n", drv->name, dev_name(dev), ret); + driver_deferred_probe_del(dev); } /* * Ignore errors returned by ->probe so that the next driver can try -- 2.25.1