sysfs: Introduce DEFINE_SIMPLE_SYSFS_GROUP_VISIBLE()
authorDan Williams <dan.j.williams@intel.com>
Thu, 22 Feb 2024 20:41:06 +0000 (12:41 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Feb 2024 06:34:26 +0000 (07:34 +0100)
commit04edfa7fa059ba50d3236b55ba0ae23b1721e868
tree16b93da0535c9a6ad4cdf8f20110a957a6870d69
parentaa3c88990f77bb9acb3d445337bc088031ac63f9
sysfs: Introduce DEFINE_SIMPLE_SYSFS_GROUP_VISIBLE()

One of the first users of DEFINE_SYSFS_GROUP_VISIBLE() did this:

static umode_t dp0_attr_visible(struct kobject *kobj,
struct attribute *attr,
int n)
{
struct sdw_slave *slave = dev_to_sdw_dev(kobj_to_dev(kobj));

if (slave->prop.dp0_prop)
return attr->mode;
return 0;
}

static bool dp0_group_visible(struct kobject *kobj)
{
struct sdw_slave *slave = dev_to_sdw_dev(kobj_to_dev(kobj));

if (slave->prop.dp0_prop)
return true;
return false;
}
DEFINE_SYSFS_GROUP_VISIBLE(dp0);

...i.e. the _group_visible() helper is identical to the _attr_visible()
helper. Use the "simple" helper to reduce that to:

static bool dp0_group_visible(struct kobject *kobj)
{
struct sdw_slave *slave = dev_to_sdw_dev(kobj_to_dev(kobj));

if (slave->prop.dp0_prop)
return true;
return false;
}
DEFINE_SIMPLE_SYSFS_GROUP_VISIBLE(dp0);

Remove the need to specify per attribute visibility if the goal is to
hide the entire group.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Link: https://lore.kernel.org/r/170863446625.1479840.10593839479268727913.stgit@dwillia2-xfh.jf.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/sysfs.h