Commit 28a6a2ef authored by Andrew Lunn's avatar Andrew Lunn Committed by David S. Miller
Browse files

leds: trigger: netdev: refactor code setting device name



Move the code into a helper, ready for it to be called at
other times. No intended behaviour change.

Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8aa2fd7b
Loading
Loading
Loading
Loading
+20 −9
Original line number Diff line number Diff line
@@ -104,15 +104,9 @@ static ssize_t device_name_show(struct device *dev,
	return len;
}

static ssize_t device_name_store(struct device *dev,
				 struct device_attribute *attr, const char *buf,
				 size_t size)
static int set_device_name(struct led_netdev_data *trigger_data,
			   const char *name, size_t size)
{
	struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);

	if (size >= IFNAMSIZ)
		return -EINVAL;

	cancel_delayed_work_sync(&trigger_data->work);

	mutex_lock(&trigger_data->lock);
@@ -122,7 +116,7 @@ static ssize_t device_name_store(struct device *dev,
		trigger_data->net_dev = NULL;
	}

	memcpy(trigger_data->device_name, buf, size);
	memcpy(trigger_data->device_name, name, size);
	trigger_data->device_name[size] = 0;
	if (size > 0 && trigger_data->device_name[size - 1] == '\n')
		trigger_data->device_name[size - 1] = 0;
@@ -140,6 +134,23 @@ static ssize_t device_name_store(struct device *dev,
	set_baseline_state(trigger_data);
	mutex_unlock(&trigger_data->lock);

	return 0;
}

static ssize_t device_name_store(struct device *dev,
				 struct device_attribute *attr, const char *buf,
				 size_t size)
{
	struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
	int ret;

	if (size >= IFNAMSIZ)
		return -EINVAL;

	ret = set_device_name(trigger_data, buf, size);

	if (ret < 0)
		return ret;
	return size;
}