Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 186305aa authored by Marek Lindner's avatar Marek Lindner Committed by Greg Kroah-Hartman
Browse files

Staging: batman-adv: remove redundant struct declaration



The hardif_attr and the bat_attr struct share the same attributes,
hence it is not necessary to specify 2 different structs.

Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
Signed-off-by: default avatarSven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 7ddd5d02
Loading
Loading
Loading
Loading
+12 −36
Original line number Diff line number Diff line
@@ -28,22 +28,6 @@

#define to_dev(obj)     container_of(obj, struct device, kobj)

struct bat_attribute {
	struct attribute attr;
	ssize_t (*show)(struct kobject *kobj, struct attribute *attr,
			char *buf);
	ssize_t (*store)(struct kobject *kobj, struct attribute *attr,
			 char *buf, size_t count);
};

struct hardif_attribute {
	struct attribute attr;
	ssize_t (*show)(struct kobject *kobj, struct attribute *attr,
			char *buf);
	ssize_t (*store)(struct kobject *kobj, struct attribute *attr,
			 char *buf, size_t count);
};

#define BAT_ATTR(_name, _mode, _show, _store)	\
struct bat_attribute bat_attr_##_name = {	\
	.attr = {.name = __stringify(_name),	\
@@ -60,14 +44,6 @@ struct bin_attribute bat_attr_##_name = { \
	.write = _write,				\
};

#define HARDIF_ATTR(_name, _mode, _show, _store)	\
struct hardif_attribute hardif_attr_##_name = {		\
	.attr = {.name = __stringify(_name),		\
		 .mode = _mode },			\
	.show   = _show,				\
	.store  = _store,				\
};

static ssize_t show_aggr_ogm(struct kobject *kobj, struct attribute *attr,
			     char *buff)
{
@@ -433,20 +409,20 @@ static ssize_t show_iface_status(struct kobject *kobj, struct attribute *attr,
	}
}

static HARDIF_ATTR(mesh_iface, S_IRUGO | S_IWUSR,
static BAT_ATTR(mesh_iface, S_IRUGO | S_IWUSR,
		show_mesh_iface, store_mesh_iface);
static HARDIF_ATTR(iface_status, S_IRUGO, show_iface_status, NULL);
static BAT_ATTR(iface_status, S_IRUGO, show_iface_status, NULL);

static struct hardif_attribute *batman_attrs[] = {
	&hardif_attr_mesh_iface,
	&hardif_attr_iface_status,
static struct bat_attribute *batman_attrs[] = {
	&bat_attr_mesh_iface,
	&bat_attr_iface_status,
	NULL,
};

int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev)
{
	struct kobject *hardif_kobject = &dev->dev.kobj;
	struct hardif_attribute **hardif_attr;
	struct bat_attribute **bat_attr;
	int err;

	*hardif_obj = kobject_create_and_add(SYSFS_IF_BAT_SUBDIR,
@@ -458,12 +434,12 @@ int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev)
		goto out;
	}

	for (hardif_attr = batman_attrs; *hardif_attr; ++hardif_attr) {
		err = sysfs_create_file(*hardif_obj, &((*hardif_attr)->attr));
	for (bat_attr = batman_attrs; *bat_attr; ++bat_attr) {
		err = sysfs_create_file(*hardif_obj, &((*bat_attr)->attr));
		if (err) {
			printk(KERN_ERR "batman-adv:Can't add sysfs file: %s/%s/%s\n",
			       dev->name, SYSFS_IF_BAT_SUBDIR,
			       ((*hardif_attr)->attr).name);
			       ((*bat_attr)->attr).name);
			goto rem_attr;
		}
	}
@@ -471,8 +447,8 @@ int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev)
	return 0;

rem_attr:
	for (hardif_attr = batman_attrs; *hardif_attr; ++hardif_attr)
		sysfs_remove_file(*hardif_obj, &((*hardif_attr)->attr));
	for (bat_attr = batman_attrs; *bat_attr; ++bat_attr)
		sysfs_remove_file(*hardif_obj, &((*bat_attr)->attr));
out:
	return -ENOMEM;
}
+13 −0
Original line number Diff line number Diff line
@@ -20,10 +20,23 @@
 */


#ifndef BAT_SYSFS_H
#define BAT_SYSFS_H

#define SYSFS_IF_MESH_SUBDIR "mesh"
#define SYSFS_IF_BAT_SUBDIR "batman_adv"

struct bat_attribute {
	struct attribute attr;
	ssize_t (*show)(struct kobject *kobj, struct attribute *attr,
			char *buf);
	ssize_t (*store)(struct kobject *kobj, struct attribute *attr,
			 char *buf, size_t count);
};

int sysfs_add_meshif(struct net_device *dev);
void sysfs_del_meshif(struct net_device *dev);
int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev);
void sysfs_del_hardif(struct kobject **hardif_obj);

#endif