gpio: sim: use sysfs_streq() and avoid an strdup()
When comparing strings passed to us from configfs, we can pass the page argument directly to sysfs_streq() and avoid manual string trimming. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
parent
87d0688483
commit
39df52ddd9
@ -1272,7 +1272,6 @@ gpio_sim_hog_config_direction_store(struct config_item *item,
|
||||
{
|
||||
struct gpio_sim_hog *hog = to_gpio_sim_hog(item);
|
||||
struct gpio_sim_device *dev = gpio_sim_hog_get_device(hog);
|
||||
char *trimmed;
|
||||
int dir;
|
||||
|
||||
mutex_lock(&dev->lock);
|
||||
@ -1282,23 +1281,15 @@ gpio_sim_hog_config_direction_store(struct config_item *item,
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
trimmed = gpio_sim_strdup_trimmed(page, count);
|
||||
if (!trimmed) {
|
||||
mutex_unlock(&dev->lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
if (strcmp(trimmed, "input") == 0)
|
||||
if (sysfs_streq(page, "input"))
|
||||
dir = GPIOD_IN;
|
||||
else if (strcmp(trimmed, "output-high") == 0)
|
||||
else if (sysfs_streq(page, "output-high"))
|
||||
dir = GPIOD_OUT_HIGH;
|
||||
else if (strcmp(trimmed, "output-low") == 0)
|
||||
else if (sysfs_streq(page, "output-low"))
|
||||
dir = GPIOD_OUT_LOW;
|
||||
else
|
||||
dir = -EINVAL;
|
||||
|
||||
kfree(trimmed);
|
||||
|
||||
if (dir < 0) {
|
||||
mutex_unlock(&dev->lock);
|
||||
return dir;
|
||||
|
Loading…
Reference in New Issue
Block a user