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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53708C433FE for ; Thu, 7 Oct 2021 05:25:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3392561245 for ; Thu, 7 Oct 2021 05:25:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232486AbhJGF1H (ORCPT ); Thu, 7 Oct 2021 01:27:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:36240 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229497AbhJGF1F (ORCPT ); Thu, 7 Oct 2021 01:27:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8B6B06120D; Thu, 7 Oct 2021 05:25:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1633584312; bh=bD5PfoEo/tEYlEn8Ehu6qpmPGIYWbDXQp6oPPjygNFQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YsPZWJifT+sYj6zmxfKZ+ZGfxMjSLlehEpmcTQMgv0X6MXKP2f8YGlVr53D17c9z2 xNUU/PQbBTBXWbvQ6fIlQZRj1y0G5/sB0iBM7/Xd9IaOEBV6sAh6z44QqNG3R5FwOp wdcesGlLyp3Dyofm01Q+TAcv1J9NFoxcb1oilmro= Date: Thu, 7 Oct 2021 07:25:09 +0200 From: Greg Kroah-Hartman To: Zev Weiss Cc: openbmc@lists.ozlabs.org, Jeremy Kerr , Joel Stanley , Rob Herring , devicetree@vger.kernel.org, Frank Rowand , linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/9] of: add self parameter to __of_sysfs_remove_bin_file() Message-ID: References: <20211007000954.30621-1-zev@bewilderbeest.net> <20211007000954.30621-5-zev@bewilderbeest.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211007000954.30621-5-zev@bewilderbeest.net> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 06, 2021 at 05:09:49PM -0700, Zev Weiss wrote: > This allows using the function to remove a bin_attribute from that > attribute's own methods (by calling sysfs_remove_bin_file_self() > instead of sysfs_remove_bin_file()). > > Signed-off-by: Zev Weiss > --- > drivers/of/kobj.c | 13 ++++++++----- > drivers/of/of_private.h | 2 +- > 2 files changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/of/kobj.c b/drivers/of/kobj.c > index 6675b5e56960..06d6c90f7aa1 100644 > --- a/drivers/of/kobj.c > +++ b/drivers/of/kobj.c > @@ -84,12 +84,15 @@ int __of_add_property_sysfs(struct device_node *np, struct property *pp) > return rc; > } > > -void __of_sysfs_remove_bin_file(struct device_node *np, struct property *prop) > +void __of_sysfs_remove_bin_file(struct device_node *np, struct property *prop, bool self) > { > if (!IS_ENABLED(CONFIG_SYSFS)) > return; > > - sysfs_remove_bin_file(&np->kobj, &prop->attr); > + if (self) > + sysfs_remove_bin_file_self(&np->kobj, &prop->attr); > + else > + sysfs_remove_bin_file(&np->kobj, &prop->attr); > kfree(prop->attr.attr.name); > } > > @@ -97,7 +100,7 @@ void __of_remove_property_sysfs(struct device_node *np, struct property *prop) > { > /* at early boot, bail here and defer setup to of_init() */ > if (of_kset && of_node_is_attached(np)) > - __of_sysfs_remove_bin_file(np, prop); > + __of_sysfs_remove_bin_file(np, prop, false); > } > > void __of_update_property_sysfs(struct device_node *np, struct property *newprop, > @@ -108,7 +111,7 @@ void __of_update_property_sysfs(struct device_node *np, struct property *newprop > return; > > if (oldprop) > - __of_sysfs_remove_bin_file(np, oldprop); > + __of_sysfs_remove_bin_file(np, oldprop, false); > __of_add_property_sysfs(np, newprop); > } > > @@ -157,7 +160,7 @@ void __of_detach_node_sysfs(struct device_node *np) > /* only remove properties if on sysfs */ > if (of_node_is_attached(np)) { > for_each_property_of_node(np, pp) > - __of_sysfs_remove_bin_file(np, pp); > + __of_sysfs_remove_bin_file(np, pp, false); > kobject_del(&np->kobj); > } > > diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h > index 75e67b8bb826..fff157c63907 100644 > --- a/drivers/of/of_private.h > +++ b/drivers/of/of_private.h > @@ -134,7 +134,7 @@ extern int __of_update_property(struct device_node *np, > extern void __of_detach_node(struct device_node *np); > > extern void __of_sysfs_remove_bin_file(struct device_node *np, > - struct property *prop); > + struct property *prop, bool selfremove); Ick, no, now you have to go and find the function declaration every time you see this called. Adding random boolean flags to functions is not how to make an api that works well, sorry. greg k-h 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CBC1AC433F5 for ; Thu, 7 Oct 2021 05:25:54 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5ACB561215 for ; Thu, 7 Oct 2021 05:25:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5ACB561215 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.ozlabs.org Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4HQ0Ch70FFz2xZR for ; Thu, 7 Oct 2021 16:25:52 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=YsPZWJif; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=linuxfoundation.org (client-ip=198.145.29.99; helo=mail.kernel.org; envelope-from=gregkh@linuxfoundation.org; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=YsPZWJif; dkim-atps=neutral Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4HQ0By2r5pz2xXx for ; Thu, 7 Oct 2021 16:25:14 +1100 (AEDT) Received: by mail.kernel.org (Postfix) with ESMTPSA id 8B6B06120D; Thu, 7 Oct 2021 05:25:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1633584312; bh=bD5PfoEo/tEYlEn8Ehu6qpmPGIYWbDXQp6oPPjygNFQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YsPZWJifT+sYj6zmxfKZ+ZGfxMjSLlehEpmcTQMgv0X6MXKP2f8YGlVr53D17c9z2 xNUU/PQbBTBXWbvQ6fIlQZRj1y0G5/sB0iBM7/Xd9IaOEBV6sAh6z44QqNG3R5FwOp wdcesGlLyp3Dyofm01Q+TAcv1J9NFoxcb1oilmro= Date: Thu, 7 Oct 2021 07:25:09 +0200 From: Greg Kroah-Hartman To: Zev Weiss Subject: Re: [PATCH 4/9] of: add self parameter to __of_sysfs_remove_bin_file() Message-ID: References: <20211007000954.30621-1-zev@bewilderbeest.net> <20211007000954.30621-5-zev@bewilderbeest.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211007000954.30621-5-zev@bewilderbeest.net> X-BeenThere: openbmc@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development list for OpenBMC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, Rob Herring , Jeremy Kerr , Frank Rowand Errors-To: openbmc-bounces+openbmc=archiver.kernel.org@lists.ozlabs.org Sender: "openbmc" On Wed, Oct 06, 2021 at 05:09:49PM -0700, Zev Weiss wrote: > This allows using the function to remove a bin_attribute from that > attribute's own methods (by calling sysfs_remove_bin_file_self() > instead of sysfs_remove_bin_file()). > > Signed-off-by: Zev Weiss > --- > drivers/of/kobj.c | 13 ++++++++----- > drivers/of/of_private.h | 2 +- > 2 files changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/of/kobj.c b/drivers/of/kobj.c > index 6675b5e56960..06d6c90f7aa1 100644 > --- a/drivers/of/kobj.c > +++ b/drivers/of/kobj.c > @@ -84,12 +84,15 @@ int __of_add_property_sysfs(struct device_node *np, struct property *pp) > return rc; > } > > -void __of_sysfs_remove_bin_file(struct device_node *np, struct property *prop) > +void __of_sysfs_remove_bin_file(struct device_node *np, struct property *prop, bool self) > { > if (!IS_ENABLED(CONFIG_SYSFS)) > return; > > - sysfs_remove_bin_file(&np->kobj, &prop->attr); > + if (self) > + sysfs_remove_bin_file_self(&np->kobj, &prop->attr); > + else > + sysfs_remove_bin_file(&np->kobj, &prop->attr); > kfree(prop->attr.attr.name); > } > > @@ -97,7 +100,7 @@ void __of_remove_property_sysfs(struct device_node *np, struct property *prop) > { > /* at early boot, bail here and defer setup to of_init() */ > if (of_kset && of_node_is_attached(np)) > - __of_sysfs_remove_bin_file(np, prop); > + __of_sysfs_remove_bin_file(np, prop, false); > } > > void __of_update_property_sysfs(struct device_node *np, struct property *newprop, > @@ -108,7 +111,7 @@ void __of_update_property_sysfs(struct device_node *np, struct property *newprop > return; > > if (oldprop) > - __of_sysfs_remove_bin_file(np, oldprop); > + __of_sysfs_remove_bin_file(np, oldprop, false); > __of_add_property_sysfs(np, newprop); > } > > @@ -157,7 +160,7 @@ void __of_detach_node_sysfs(struct device_node *np) > /* only remove properties if on sysfs */ > if (of_node_is_attached(np)) { > for_each_property_of_node(np, pp) > - __of_sysfs_remove_bin_file(np, pp); > + __of_sysfs_remove_bin_file(np, pp, false); > kobject_del(&np->kobj); > } > > diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h > index 75e67b8bb826..fff157c63907 100644 > --- a/drivers/of/of_private.h > +++ b/drivers/of/of_private.h > @@ -134,7 +134,7 @@ extern int __of_update_property(struct device_node *np, > extern void __of_detach_node(struct device_node *np); > > extern void __of_sysfs_remove_bin_file(struct device_node *np, > - struct property *prop); > + struct property *prop, bool selfremove); Ick, no, now you have to go and find the function declaration every time you see this called. Adding random boolean flags to functions is not how to make an api that works well, sorry. greg k-h