Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp2067304imm; Thu, 11 Oct 2018 04:43:02 -0700 (PDT) X-Google-Smtp-Source: ACcGV63oE4fDXjnNJ2k85VKYsQ0wEXsmocO9Rb8pvgKpaOHNJ4+Fqt+btwf8UqiT/9VaNbIQwqFG X-Received: by 2002:a17:902:28a4:: with SMTP id f33-v6mr1221967plb.297.1539258182162; Thu, 11 Oct 2018 04:43:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539258182; cv=none; d=google.com; s=arc-20160816; b=e1/oNODV82hyTLdi6GQjI0jwBINBpPkPJXtsmvS6Ii67pnXwSWdZWoy6kqAVx+2P01 h2YwrATfgUYDlj/CHQwf/ajmJrnlIvrJ/78yIQeqwJvfWoLKMnl5BU9ztyX2CGbfZ/qk NtWuzgMSuSu1jqmq8RM0U9oGlnsTuK7lLK1UuUSxEKgtQj54noI8PonbZ+8O43tfj13q Tqvw27Cl2XfcdOnyhoBwXfj+B7IaIMd6zea8247d5Ldc4U4nCAOIGW8tkK6Aup8F1mB0 k3rXd8TB68pOVJkOZAkH+kisWDkQtzO7oVSibXzLExULHDZX/4Lze+B6rbtbPa++fBjH xn+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=ierPiEwSBwIg81ZMefWgHtrU8DcZyKs3m7fGqy2P7Ro=; b=hM+640VTrH/Br6ef/6EyckI0F2LdGz3E8TJeVzEvAImeBgxZcasWpaX3O4TZ8W2Z23 bzJb4bHL0Ja6HfZGCz6527WthCPniSuRktdmza/fBbxL3ycfXfobZP4oBaskI/eWdIBJ VId6lL44E/ZqnY+6i12VKf0CRvV8tIUs5IqX9o/iiJCL9uF5l5PKOTEifW92eG+NlnAJ xS2oPY0dUrUU1cBk8oBZUy4ef/UUHv8wIsxyWysvBtpA+EBc6lPKyjYRtFsizfPPRsbD mGAOzZRY8e9m96Zhb2b5DuooBu3eZ3r/oDc6aRdcpdWtgK90cW5jzC+w0YshP/V9C0hL mlNw== ARC-Authentication-Results: i=1; mx.google.com; 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 z6-v6si27265401pln.287.2018.10.11.04.42.47; Thu, 11 Oct 2018 04:43:02 -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; 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 S1727370AbeJKTG4 (ORCPT + 99 others); Thu, 11 Oct 2018 15:06:56 -0400 Received: from regular1.263xmail.com ([211.150.99.136]:33264 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726126AbeJKTG4 (ORCPT ); Thu, 11 Oct 2018 15:06:56 -0400 X-Greylist: delayed 430 seconds by postgrey-1.27 at vger.kernel.org; Thu, 11 Oct 2018 15:06:55 EDT Received: from jeffy.chen?rock-chips.com (unknown [192.168.167.16]) by regular1.263xmail.com (Postfix) with ESMTP id F19CA282; Thu, 11 Oct 2018 19:32:43 +0800 (CST) X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 Received: from localhost (localhost [127.0.0.1]) by smtp.263.net (Postfix) with ESMTPA id 8DA0D36E; Thu, 11 Oct 2018 19:32:42 +0800 (CST) X-IP-DOMAINF: 1 X-RL-SENDER: jeffy.chen@rock-chips.com X-FST-TO: linux-kernel@vger.kernel.org X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: jeffy.chen@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-SENDER: cjf@rock-chips.com X-DNS-TYPE: 0 Received: from localhost (unknown [103.29.142.67]) by smtp.263.net (Postfix) whith ESMTP id 10639NNHI7M; Thu, 11 Oct 2018 19:32:44 +0800 (CST) From: Jeffy Chen To: linux-kernel@vger.kernel.org Cc: Jeffy Chen , Liam Girdwood , Mark Brown Subject: [PATCH] regulator: core: Fix device link error when registering regulator Date: Thu, 11 Oct 2018 19:32:39 +0800 Message-Id: <20181011113239.2789-1-jeffy.chen@rock-chips.com> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The sysfs device link can only be created after regulator device registered. Fixes: c438b9d017362 ("regulator: core: Move registration of regulator device") Signed-off-by: Jeffy Chen --- drivers/regulator/core.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 2c66b528aedec..36e650b61f7a9 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1405,12 +1405,15 @@ static struct regulator *create_regulator(struct regulator_dev *rdev, if (regulator->supply_name == NULL) goto overflow_err; - err = sysfs_create_link_nowarn(&rdev->dev.kobj, &dev->kobj, - buf); - if (err) { - rdev_dbg(rdev, "could not add device link %s err %d\n", - dev->kobj.name, err); - /* non-fatal */ + if (device_is_registered(dev)) { + err = sysfs_create_link_nowarn(&rdev->dev.kobj, + &dev->kobj, buf); + if (err) { + rdev_dbg(rdev, + "could not add device link %s err %d\n", + dev->kobj.name, err); + /* non-fatal */ + } } } else { regulator->supply_name = kstrdup_const(supply_name, GFP_KERNEL); @@ -4416,6 +4419,18 @@ regulator_register(const struct regulator_desc *regulator_desc, goto unset_supplies; } + /* Add a link to the device sysfs entry */ + if (rdev->supply && rdev->supply->dev) { + ret = sysfs_create_link_nowarn(&rdev->supply->dev->kobj, + &rdev->dev.kobj, + rdev->supply->supply_name); + if (ret) { + rdev_dbg(rdev, "could not add device link %s err %d\n", + rdev->dev.kobj.name, ret); + /* non-fatal */ + } + } + rdev_init_debugfs(rdev); /* try to resolve regulators supply since a new one was registered */ -- 2.11.0