From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B86F0C00A5A for ; Tue, 17 Jan 2023 23:58:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229684AbjAQX6a (ORCPT ); Tue, 17 Jan 2023 18:58:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46124 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229721AbjAQX6F (ORCPT ); Tue, 17 Jan 2023 18:58:05 -0500 Received: from relay06.th.seeweb.it (relay06.th.seeweb.it [IPv6:2001:4b7a:2000:18::167]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9D1DB65EFF for ; Tue, 17 Jan 2023 15:12:08 -0800 (PST) Received: from SoMainline.org (94-211-6-86.cable.dynamic.v4.ziggo.nl [94.211.6.86]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by m-r2.th.seeweb.it (Postfix) with ESMTPSA id 5EE753F6D6; Wed, 18 Jan 2023 00:12:06 +0100 (CET) Date: Wed, 18 Jan 2023 00:12:04 +0100 From: Marijn Suijten To: Andy Shevchenko Cc: Jonathan Cameron , Nuno =?utf-8?B?U8Oh?= , linux-arm-msm@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Gross , Bjorn Andersson , Konrad Dybcio , Jonathan Cameron , Lars-Peter Clausen Subject: Re: [PATCH v1 1/1] iio: adc: qcom-spmi-adc5: Fix the channel name Message-ID: <20230117231204.fpvxryjscosg57a6@SoMainline.org> References: <20230117093944.72271-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230117093944.72271-1-andriy.shevchenko@linux.intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org On 2023-01-17 11:39:44, Andy Shevchenko wrote: > The node name can contain an address part which is not used by > the driver. Cut it out before assigning the channel name. This explanation doesn't cut it. It's not that the driver "doesn't use" the address part, it is that this string is propagated into the userspace label, sysfs /filenames/ *and breaking ABI*. > Fixes: 4f47a236a23d ("iio: adc: qcom-spmi-adc5: convert to device properties") > Reported-by: Marijn Suijten > Signed-off-by: Andy Shevchenko > --- > drivers/iio/adc/qcom-spmi-adc5.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/qcom-spmi-adc5.c b/drivers/iio/adc/qcom-spmi-adc5.c > index e90c299c913a..c52bf6722a6a 100644 > --- a/drivers/iio/adc/qcom-spmi-adc5.c > +++ b/drivers/iio/adc/qcom-spmi-adc5.c > @@ -628,12 +628,19 @@ static int adc5_get_fw_channel_data(struct adc5_chip *adc, > struct fwnode_handle *fwnode, > const struct adc5_data *data) > { > - const char *name = fwnode_get_name(fwnode), *channel_name; > + const char *name, *channel_name; I don't think this'll compile as name is still a pointer to const data, while you're assigning (a '\0' char) to it below. - Marijn > u32 chan, value, varr[2]; > u32 sid = 0; > int ret; > struct device *dev = adc->dev; > > + name = devm_kasprintf(dev, GFP_KERNEL, "%pfwP", fwnode); > + if (!name) > + return -ENOMEM; > + > + /* Cut the address part */ > + name[strchrnul(name, '@') - name] = '\0'; > + > ret = fwnode_property_read_u32(fwnode, "reg", &chan); > if (ret) { > dev_err(dev, "invalid channel number %s\n", name); > -- > 2.39.0 >