818-v6.5-04-leds-trigger-netdev-refactor-code-setting-device-nam.patch 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. From 28a6a2ef18ad840a390d519840c303b03040961c Mon Sep 17 00:00:00 2001
  2. From: Andrew Lunn <[email protected]>
  3. Date: Mon, 29 May 2023 18:32:34 +0200
  4. Subject: [PATCH 04/13] leds: trigger: netdev: refactor code setting device
  5. name
  6. Move the code into a helper, ready for it to be called at
  7. other times. No intended behaviour change.
  8. Signed-off-by: Andrew Lunn <[email protected]>
  9. Signed-off-by: Christian Marangi <[email protected]>
  10. Signed-off-by: David S. Miller <[email protected]>
  11. ---
  12. drivers/leds/trigger/ledtrig-netdev.c | 29 ++++++++++++++++++---------
  13. 1 file changed, 20 insertions(+), 9 deletions(-)
  14. --- a/drivers/leds/trigger/ledtrig-netdev.c
  15. +++ b/drivers/leds/trigger/ledtrig-netdev.c
  16. @@ -104,15 +104,9 @@ static ssize_t device_name_show(struct d
  17. return len;
  18. }
  19. -static ssize_t device_name_store(struct device *dev,
  20. - struct device_attribute *attr, const char *buf,
  21. - size_t size)
  22. +static int set_device_name(struct led_netdev_data *trigger_data,
  23. + const char *name, size_t size)
  24. {
  25. - struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
  26. -
  27. - if (size >= IFNAMSIZ)
  28. - return -EINVAL;
  29. -
  30. cancel_delayed_work_sync(&trigger_data->work);
  31. mutex_lock(&trigger_data->lock);
  32. @@ -122,7 +116,7 @@ static ssize_t device_name_store(struct
  33. trigger_data->net_dev = NULL;
  34. }
  35. - memcpy(trigger_data->device_name, buf, size);
  36. + memcpy(trigger_data->device_name, name, size);
  37. trigger_data->device_name[size] = 0;
  38. if (size > 0 && trigger_data->device_name[size - 1] == '\n')
  39. trigger_data->device_name[size - 1] = 0;
  40. @@ -140,6 +134,23 @@ static ssize_t device_name_store(struct
  41. set_baseline_state(trigger_data);
  42. mutex_unlock(&trigger_data->lock);
  43. + return 0;
  44. +}
  45. +
  46. +static ssize_t device_name_store(struct device *dev,
  47. + struct device_attribute *attr, const char *buf,
  48. + size_t size)
  49. +{
  50. + struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
  51. + int ret;
  52. +
  53. + if (size >= IFNAMSIZ)
  54. + return -EINVAL;
  55. +
  56. + ret = set_device_name(trigger_data, buf, size);
  57. +
  58. + if (ret < 0)
  59. + return ret;
  60. return size;
  61. }