Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2946684imm; Thu, 24 May 2018 19:39:18 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq3DGxv/izioWQkzOPR+kCCYb4TFV82OiECVZZGDjgFsMlsPxw91sHpyRzHaaDursll1vzd X-Received: by 2002:a17:902:3381:: with SMTP id b1-v6mr615097plc.248.1527215958872; Thu, 24 May 2018 19:39:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527215958; cv=none; d=google.com; s=arc-20160816; b=aEVLzamfoALBqxaCkzVX/MXrlSc6nK/Z8hsCyItNGsV2OdL4JhFlJHFDzZhNC2FGzO GFXcJJqd9pDHMeOz2FqPOk9RdF3CfHrKPqijUJlThk/6dOXIIerX121b7uUCqvDjpoz6 zeIVQawy2Bv4N1uZKZ6F5f4AvbuKEGP4e7CZUDkM3KLxY+UJz+h6iiX9BjenlwCokpuB Ctqi8zY+qHqcoEfFJMoCVUbOuqIc5EIALimo1cv8nf2YmMZtcFnJbRSIwMW3/yrPYa5T HewByAFFMuTV2Ek5lQHZkOsSfBZcsa+zmkQPqd21moMPhqUe7djwW6UUSQv8DuM+ZpgC ARAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=RQPT8+KL02rGYWQzzZT3bHuj3rR/lm5eZWeZ2TvPk+c=; b=C3fgsPn5rO0AeoKFviCsXHJxo8n8mMVIqXrxtKTKi5fdj2dcwpayObwNSnfnc3u37/ bNsI/Ivfi+Dm4vAxAuprMxRaPHt54xnll6acd2FFFvEodfG+RknxbsxNOT6fvjkwTQ1t TTqOKFU+m3BxwJ3L3fWaYsUQmejMzCgKqiaEzHYixhJCc3NymkEJw7p84db5PR9Imhfx /MsiU6lo24X3mKHq9WLF0Z/VqdJEb6INL3PqIxdQQfASWCQdX5yAGGfhRLDrL1cd0uBV L0ytqDYtB7A3mzjyVH6KjXOXrwRdKrVes9+wE5P+PNBsn7mpcHFzlCzEExTigQf4rdEj /eiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GPozxKv8; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f2-v6si23855028pli.569.2018.05.24.19.39.04; Thu, 24 May 2018 19:39:18 -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=GPozxKv8; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161128AbeEXTAw (ORCPT + 99 others); Thu, 24 May 2018 15:00:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:39640 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1032740AbeEXTAu (ORCPT ); Thu, 24 May 2018 15:00:50 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 222DA2086E; Thu, 24 May 2018 19:00:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527188449; bh=S4NBO20qLW4uvB7iBDOtvIIAfIA+yf9doUYEdfgeDXs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GPozxKv8QkxPu/rqvkdsj2crNJHIfCKsNjRuUpP8y/HXcXB/YNlPnP9Fc4vQJ5NbI jmBSoml+Dsd9HTXXTyP3ln1rPjL4WqqQONz2fl2dtwfSZP0tsikr5Alnsyq3sRYa30 IGTw07/XpTDEHhtdYIsKnc5de8CswP9h1hePU1e8= Date: Thu, 24 May 2018 21:00:31 +0200 From: Greg Kroah-Hartman To: Rob Herring 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, boot-architecture@lists.linaro.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v2 1/8] driver core: make deferring probe after init optional Message-ID: <20180524190031.GB31019@kroah.com> References: <20180524175024.19874-1-robh@kernel.org> <20180524175024.19874-2-robh@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180524175024.19874-2-robh@kernel.org> User-Agent: Mutt/1.10.0 (2018-05-17) 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 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) { Wait, what's the "optional" mess here? The caller knows this value, so why do you need to even pass it in here? And bool values that are not obvious are horrid. I had to go look this up when reading the later patches that just passed "true" in this variable as I had no idea what that meant. So as-is, no, this isn't ok, sorry. And at the least, this needs some kerneldoc to explain it :) thanks, greg k-h