Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3384522ybp; Sun, 6 Oct 2019 10:45:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqwPOd61ogDlIHjMTV9CJuXvNwak3sCNxo27/PTJDAGOUPV8XhFubwEiYVRincVDj/StYHyU X-Received: by 2002:a17:906:9604:: with SMTP id s4mr20726396ejx.38.1570383915008; Sun, 06 Oct 2019 10:45:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570383915; cv=none; d=google.com; s=arc-20160816; b=sb9dS+ndPxCU6rD/pj2PWZ9WlXenMIFQmMgGfSg10YDlfAkCmb8xNOpzlMnFY3Fscf actLEXH3UVZFy8bm8VSJY9nD60Mc/RKvHXK6ZVSJDVKvFLwZk1ZBUSYoPKpLXhZi4piY eC8AWmO9D4mcqaRcptC4+Aj2tuIcLnrUBvu4GapLUhqDdeDobIbPn3o+pQJ2NL9misPl +JnmKXoXIC5tn+XPBE0A3pW8jys4nZA9gTxYT7vEYjek52mI4yhSK3kDVLcvGnTiC+Gj SPGKJXcpGnGxmj9rIevM90cIpukE3AAsRneXYpcMlSGwhLEheLtpk6qAFNdY49GZ4RCC +XVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iEIP/p+YTJxsDQ7HW371aJpBwmNhDQ1iaD95PXq0Tnw=; b=anVPX4dcTrHqgQzMS2UH4noYAKgT4n4UOYQ7qiv+rfZ5I5cvA5mt42422XQTrjG+Cu rYm6BzXQqrPE4G/373hDTkp/qakQcBgEcdkTarwic6YLfqL7x/8NfryseC+N9UXAJcT+ yTHp/TR0nh4eT+JyPKKcx69Jr0ZWwIBOtpEMRoJx1qh5nhmtYHtGXL0Srad5+0kDuIzs T//CuhJXnNQdwHiLbY0CyS2OeHxjsVr0WYi+q6uc+0iVNrFO+Yw6M10p2N38kQyzJC9O 52/SusDj8NkaS/yK6bM52iD0iZkmqKSm9mVsMbKJIuSU7+IdCuMYXEliJZp4TZR7f+v2 Ea4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=bNiwsArk; 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 jx20si5812940ejb.291.2019.10.06.10.44.51; Sun, 06 Oct 2019 10:45:14 -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=bNiwsArk; 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 S1731521AbfJFRnW (ORCPT + 99 others); Sun, 6 Oct 2019 13:43:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:43290 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729302AbfJFRnV (ORCPT ); Sun, 6 Oct 2019 13:43:21 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 0BEC32080F; Sun, 6 Oct 2019 17:43:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570383800; bh=IMFn1tzxwb26dMf9wGqGPU6excEbDGy+Ynd8rhWb8Kc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bNiwsArk1W80PlJM51QT6jP88yn75LZwgY7x5xZjwRDPK1/0gHOw8DgXn298CVNwI B58CBLK33hlgBVUYG24GzCynrhMZjiTXGn1kWwlRt8nN1EoVmi7vqcIC+moajtL/rZ qNCVNzT7yas55hUX44dUFfPwVrusq8AfQSj+vz9I= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Romain Izard , Guenter Roeck , Sebastian Reichel , Sasha Levin Subject: [PATCH 5.3 101/166] power: supply: register HWMON devices with valid names Date: Sun, 6 Oct 2019 19:21:07 +0200 Message-Id: <20191006171222.049194629@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006171212.850660298@linuxfoundation.org> References: <20191006171212.850660298@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Romain Izard [ Upstream commit f1b937cc86bedf94dbc3478c2c0dc79471081fff ] With the introduction of the HWMON compatibility layer to the power supply framework in Linux 5.3, all power supply devices' names can be used directly to create HWMON devices with the same names. But HWMON has rules on allowable names that are different from those used in the power supply framework. The dash character is forbidden, as it is used by the libsensors library in userspace as a separator, whereas this character is used in the device names in more than half of the existing power supply drivers. This last case is consistent with the typical naming usage with MFD and Device Tree. This leads to warnings in the kernel log, with the format: power_supply gpio-charger: hwmon: \ 'gpio-charger' is not a valid name attribute, please fix Add a protection to power_supply_add_hwmon_sysfs() that replaces any dash in the device name with an underscore when registering with the HWMON framework. Other forbidden characters (star, slash, space, tab, newline) are not replaced, as they are not in common use. Fixes: e67d4dfc9ff1 ("power: supply: Add HWMON compatibility layer") Signed-off-by: Romain Izard Reviewed-by: Guenter Roeck Signed-off-by: Sebastian Reichel Signed-off-by: Sasha Levin --- drivers/power/supply/power_supply_hwmon.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/power/supply/power_supply_hwmon.c b/drivers/power/supply/power_supply_hwmon.c index 51fe60440d125..75cf861ba492d 100644 --- a/drivers/power/supply/power_supply_hwmon.c +++ b/drivers/power/supply/power_supply_hwmon.c @@ -284,6 +284,7 @@ int power_supply_add_hwmon_sysfs(struct power_supply *psy) struct device *dev = &psy->dev; struct device *hwmon; int ret, i; + const char *name; if (!devres_open_group(dev, power_supply_add_hwmon_sysfs, GFP_KERNEL)) @@ -334,7 +335,19 @@ int power_supply_add_hwmon_sysfs(struct power_supply *psy) } } - hwmon = devm_hwmon_device_register_with_info(dev, psy->desc->name, + name = psy->desc->name; + if (strchr(name, '-')) { + char *new_name; + + new_name = devm_kstrdup(dev, name, GFP_KERNEL); + if (!new_name) { + ret = -ENOMEM; + goto error; + } + strreplace(new_name, '-', '_'); + name = new_name; + } + hwmon = devm_hwmon_device_register_with_info(dev, name, psyhw, &power_supply_hwmon_chip_info, NULL); -- 2.20.1