Received: by 2002:ac0:a591:0:0:0:0:0 with SMTP id m17-v6csp1808604imm; Fri, 6 Jul 2018 06:57:53 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeDJrEXBhfT/drZ/q5SaiHMkSkkpUxUu1apMUA5bQsBvAgCPm1zuc9uSF08x4zCroWfUnaT X-Received: by 2002:a17:902:d716:: with SMTP id w22-v6mr10384770ply.98.1530885473608; Fri, 06 Jul 2018 06:57:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530885473; cv=none; d=google.com; s=arc-20160816; b=KNMWyEIB4wUFCNGOGah6+irwxLe6sVlPq9zbEmvGI1n+1UyujqH4+bLrLeWrYgFPv7 CcPFJ4RwUiwz3MBPg42+87+xeVWOcU43MubDHuuffJ/fDCdj0pprMmuCzNZ/BYr+MoTv 66B7m7poO+V0AU1dNBKsFHVVaqitb3vnx95B5s2s+tLUGlMo9C6mrom+j/K9ZqddwHo9 oUL+gBbElehoWVCw+lwCtsoA/bOj1dJxs2ioZhD7ZjtinkkkAgaMcHaVQ/mTGIhNYzEm DHgtDdTQWhUBQqrsuXGCyXSDgWWiZln+Dc50QYn9lidaG9Pb/7cOVxFaqDqwFGDdFnu0 eOXg== 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 :in-reply-to:references:mime-version:dkim-signature :arc-authentication-results; bh=299tzB+yU7udKPdjIrgoz13qPZlrizs1rwt+oxX5M6o=; b=XLO7i1xDNVH/QnDnwlTuC53EDMl9txiQWnUr8KWCzckL0oCgLgBhU/bigpjBID3DhN edno6aRccYqHOxnbeEzrkh4zeudAlAmQOqpHIud4bP4cXliUEr3KkMI75v6sQXFGmHxk 900RD1L9r5yZnr/Ka/cBIuB/F3BWz/hhIHbuLaLt20+umoM+p8Sce64fkkiZgHh7Fivz ZBpbWkWPo87QWZEQQiELsXAIsSNFe1YnAvJ552ArLwsK/nLPnIECvtCDErTech3zDNRE 0wJXetnx8yWCcvDtiLjri/yOeZrGrUEdu4I4pV1hxgH3fEZebWwNGE9biYVOPqzdaJiF T0hQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kDZfDtVU; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a67-v6si8815002pfb.348.2018.07.06.06.57.29; Fri, 06 Jul 2018 06:57:53 -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=@gmail.com header.s=20161025 header.b=kDZfDtVU; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933552AbeGFN4R (ORCPT + 99 others); Fri, 6 Jul 2018 09:56:17 -0400 Received: from mail-io0-f196.google.com ([209.85.223.196]:36103 "EHLO mail-io0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933467AbeGFN4K (ORCPT ); Fri, 6 Jul 2018 09:56:10 -0400 Received: by mail-io0-f196.google.com with SMTP id k3-v6so10927538iog.3; Fri, 06 Jul 2018 06:56:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=299tzB+yU7udKPdjIrgoz13qPZlrizs1rwt+oxX5M6o=; b=kDZfDtVUsBQL0zpcWGOJRw/ZmKJVL0fDeAOUvreJqtFr2wC2rimpJeVShbu+wvcjh0 3jBnZYg9Rs3w/nz6+UW2jLLwqEqwYOFSL5RfuhSJ5Wb8uWPYpI9SdjgoWhtQ6TexZeHd EpCml2+E170Wa9fBr/MgoZhNFus2x0rRB/7Bgzu6FEo+mLziAdwZeo7Y0zFkEGkFuu8W ODV7ewQZ9oOjl787ZI5a1736u7IG7G9zAiCnIHr8DcWG8CMcXNzC7dO4NChlAWAdulEX aRuGx21Kzt8w7/w8zbf7Y41fY/Rd2VKGSDxGGbxAXoGWcoEI8GDryNUnoIQYfNbbam5k rbBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=299tzB+yU7udKPdjIrgoz13qPZlrizs1rwt+oxX5M6o=; b=kerVr9EzPLF4CAXEexN156cUcHMJjrwHYwYf0M2ZoPS7EOgTfwqYhkFSnC6DQZt9ba Q3V9nrn9rxfl8FVluXf/l+ilIv5hOdbUfKMcxXLltk/PdsEHMwiCrMaRJv68AXTuKCwd b2r6GgOYXWMMyIYBC8MNwo3yRu/wA0MWad0n6HTbsLuNXZTb1aXO+6HdPBRiTD/kAd1U aGv6hLuLaVsQTUCO2LUiOeUMeEVspvqmFFZY2hy7rCvrGhe56joc37ZTmhPcmM64yEcd 1O16X7LfSrN2YgSz9Aj6jUg+Ac7yTG/RkcB/kR+ZPQ4rpfiqGMGaiFYJv6KS0b6M8wVR /VVQ== X-Gm-Message-State: APt69E1JErD8odAasd7XL1zTY1v1JyDSfVA81/ZnCzVPKMLrojLo6ML4 AAsjqUy36tmp47R743OYzs948VwDTgOpsQ1mXQ== X-Received: by 2002:a6b:980e:: with SMTP id a14-v6mr8893076ioe.238.1530885369650; Fri, 06 Jul 2018 06:56:09 -0700 (PDT) MIME-Version: 1.0 References: <1530600642-25090-1-git-send-email-kernelfans@gmail.com> <4685360.VNmeYLh0dQ@aspire.rjw.lan> <6281446.GoJLz6Hq6C@aspire.rjw.lan> <20180706083603.GA9063@wunner.de> In-Reply-To: From: Pingfan Liu Date: Fri, 6 Jul 2018 21:55:57 +0800 Message-ID: Subject: Re: [PATCHv3 0/4] drivers/base: bugfix for supplier<-consumer ordering in device_kset To: rafael@kernel.org Cc: lukas@wunner.de, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Grygorii Strashko , Christoph Hellwig , Bjorn Helgaas , Dave Young , linux-pci@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-pm@vger.kernel.org, kishon@ti.com 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 Fri, Jul 6, 2018 at 4:47 PM Rafael J. Wysocki wrote: > > On Fri, Jul 6, 2018 at 10:36 AM, Lukas Wunner wrote: > > [cc += Kishon Vijay Abraham] > > > > On Thu, Jul 05, 2018 at 11:18:28AM +0200, Rafael J. Wysocki wrote: > >> OK, so calling devices_kset_move_last() from really_probe() clearly is > >> a mistake. > >> > >> I'm not really sure what the intention of it was as the changelog of > >> commit 52cdbdd49853d doesn't really explain that (why would it be > >> insufficient without that change?) > > > > It seems 52cdbdd49853d fixed an issue with boards which have an MMC > > whose reset pin needs to be driven high on shutdown, lest the MMC > > won't be found on the next boot. > > > > The boards' devicetrees use a kludge wherein the reset pin is modelled > > as a regulator. The regulator is enabled when the MMC probes and > > disabled on driver unbind and shutdown. As a result, the pin is driven > > low on shutdown and the MMC is not found on the next boot. > > > > To fix this, another kludge was invented wherein the GPIO expander > > driving the reset pin unconditionally drives all its pins high on > > shutdown, see pcf857x_shutdown() in drivers/gpio/gpio-pcf857x.c > > (commit adc284755055, "gpio: pcf857x: restore the initial line state > > of all pcf lines"). > > > > For this kludge to work, the GPIO expander's ->shutdown hook needs to > > be executed after the MMC expander's ->shutdown hook. > > > > Commit 52cdbdd49853d achieved that by reordering devices_kset according > > to the probe order. Apparently the MMC probes after the GPIO expander, > > possibly because it returns -EPROBE_DEFER if the vmmc regulator isn't > > available yet, see mmc_regulator_get_supply(). > > > > Note, I'm just piecing the information together from git history, > > I'm not responsible for these kludges. (I'm innocent!) > > Sure enough. :-) > > In any case, calling devices_kset_move_last() in really_probe() is > plain broken and if its only purpose was to address a single, arguably > kludgy, use case, let's just get rid of it in the first place IMO. > Yes, if it is only used for a single use case. > > @Pingfan Liu, if you just remove the call to devices_kset_move_last() > > from really_probe(), does the issue go away? > > I would think so from the description of the problem (elsewhere in this thread). > Yes. Thanks, Pingfan