Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2948126imm; Thu, 24 May 2018 19:41:12 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpxgNskXX/9cbl4YdmVJsUhy2xbisnYn9DpZyAWA+CFVkUSd//pKY2J1JeT5Gf8331XFZGR X-Received: by 2002:a62:ab10:: with SMTP id p16-v6mr560082pff.211.1527216072017; Thu, 24 May 2018 19:41:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527216071; cv=none; d=google.com; s=arc-20160816; b=FirdbURIrv5eTWkaFVwFZ1TAJAO7w+MuvTy4ymMWhkxKdY3WQUZzpY2z3nkqd6Qe+L hp1WDTf0+zvfECiMbbXrYacn5QjmskTRwWPOcvgFB7xqlGrL8j6r2K1pKtc7UTyKB9gb EF0ZsmIFXAiuA5yLYJV89NmWZQrogYpEvNcX2J17prTMq2ddn6q2kNuXsBXQfh9Mno0+ kOk7QB0i4K7Kh2n7CrtZk7bt0XnlYnXwAPy6JWBiyu7z88/YHBuq86ol4f9VTO77Jg1v WvxozgDSUSLQwG2q/ZU+gf7MRObJ2HQOkjam6AB9f4EvJt0/7P5aMLTctNfiSHqCLa9C HnBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=17QXKQw9ExNYwQMlediZTy0eKNewxegGjZ64hi2nnNg=; b=ogMHlS45/LjU9xWLSFRKfNbWDvHiLNho7xFCgdJWw2+dAMy+a/vKmAgMxZl0cwSz0n BRBRs+7NNQrD324RKdg63RG8B1Y3cm1Y/XK+B4cXAxNPe4sCVj0TfmGf++i//b16kBnM XWBLVjDjgngH/xqYdc5vC2Mu6u093kSnlDl8/H8l7CsPpZypZlfBszhzYK2jIGUyy+l8 X/OQtAcVHbuL2t2td6kNYBPoFNXKFx/Us+Su5fQ88ihcw5+yTzKDSbeLGkFXyKiNW5Wr MPjFh1/UhMVu6QFqEojD+EjLtujyojnipuAJls6sFoftFuWwnCGG+WY9gy2AO3VLnIcP Fr+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=mMC7Uo2z; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x11-v6si22457971pln.163.2018.05.24.19.40.57; Thu, 24 May 2018 19:41:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=mMC7Uo2z; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1034613AbeEXTnM (ORCPT + 99 others); Thu, 24 May 2018 15:43:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:55316 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S967421AbeEXTnF (ORCPT ); Thu, 24 May 2018 15:43:05 -0400 Received: from mail-qk0-f175.google.com (mail-qk0-f175.google.com [209.85.220.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 193C920882; Thu, 24 May 2018 19:43:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527190985; bh=ZQy9P+Aj6ZvyTCfl34TTSt66zZkwklntg/rxIUQT+B4=; h=In-Reply-To:References:From:Date:Subject:To:Cc:From; b=mMC7Uo2zyyo6kb9txNzSR0cf8eN89R54TJ7LTb1J+3yONWusJiGk2dF+UKk0A0gnK eEFpP1jmQUJNSFh4JEUDZkJluRDqirdNimAdY5zuGlmCiSmWVRXrMCOB3jf6QBdvAE MnLHW1yow5nvjWEUtJZf6OVZoDQXztMqvKgYMWC4= Received: by mail-qk0-f175.google.com with SMTP id 185-v6so2265993qkk.11; Thu, 24 May 2018 12:43:05 -0700 (PDT) X-Gm-Message-State: ALKqPwcQi+ZslwUVpTD1TVfwjDjWStswjkyx0nIdWoYeX0JKfs7XRStZ yzu32Ug8w1kZ86RWbS+klDdli6AAQ4iC9K0YIA== X-Received: by 2002:a37:58c1:: with SMTP id m184-v6mr7931188qkb.213.1527190984214; Thu, 24 May 2018 12:43:04 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a0c:9b02:0:0:0:0:0 with HTTP; Thu, 24 May 2018 12:42:43 -0700 (PDT) In-Reply-To: <20180524185639.GA31019@kroah.com> References: <20180524175024.19874-1-robh@kernel.org> <20180524175024.19874-2-robh@kernel.org> <20180524185639.GA31019@kroah.com> From: Rob Herring Date: Thu, 24 May 2018 14:42:43 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 1/8] driver core: make deferring probe after init optional To: Greg Kroah-Hartman Cc: Linus Walleij , Alexander Graf , Bjorn Andersson , "Rafael J. Wysocki" , Kevin Hilman , Ulf Hansson , Joerg Roedel , Robin Murphy , Mark Brown , Frank Rowand , "linux-kernel@vger.kernel.org" , devicetree@vger.kernel.org, Architecture Mailman List , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 24, 2018 at 1:56 PM, Greg Kroah-Hartman wrote: > On Thu, May 24, 2018 at 12:50:17PM -0500, Rob Herring wrote: >> Deferred probe will currently wait forever on dependent devices to probe, >> but sometimes a driver will never exist. It's also not always critical for >> a driver to exist. Platforms can rely on default configuration from the >> bootloader or reset defaults for things such as pinctrl and power domains. >> This is often the case with initial platform support until various drivers >> get enabled. There's at least 2 scenarios where deferred probe can render >> a platform broken. Both involve using a DT which has more devices and >> dependencies than the kernel supports. The 1st case is a driver may be >> disabled in the kernel config. The 2nd case is the kernel version may >> simply not have the dependent driver. This can happen if using a newer DT >> (provided by firmware perhaps) with a stable kernel version. >> >> Subsystems or drivers may opt-in to this behavior by calling >> driver_deferred_probe_check_init_done() instead of just returning >> -EPROBE_DEFER. They may use additional information from DT or kernel's >> config to decide whether to continue to defer probe or not. >> >> Cc: Alexander Graf >> Signed-off-by: Rob Herring >> --- >> drivers/base/dd.c | 17 +++++++++++++++++ >> include/linux/device.h | 2 ++ >> 2 files changed, 19 insertions(+) >> >> diff --git a/drivers/base/dd.c b/drivers/base/dd.c >> index c9f54089429b..d6034718da6f 100644 >> --- a/drivers/base/dd.c >> +++ b/drivers/base/dd.c >> @@ -226,6 +226,16 @@ void device_unblock_probing(void) >> driver_deferred_probe_trigger(); >> } >> >> +int driver_deferred_probe_check_init_done(struct device *dev, bool optional) >> +{ >> + if (optional && initcalls_done) { >> + dev_WARN(dev, "ignoring dependency for device, assuming no driver"); > > You really only need dev_warn(), here, right? No, the screaming is on purpose. Bjorn had concerns about debugging/supporting subtle problems that could stem from this. Such as electrical settings not quite right that cause intermittent errors. Rob