Free memory region, if gb_lights_channel_config is not successful.
Signed-off-by: Arvind Yadav <arvind.yadav.cs(a)gmail.com>
---
changes in v2:
- Subject line changed.
- add kfree in __gb_lights_led_unregister().
- No need to check return value of gb_lights_channel_flash_config().
changes ib v3:
- separate patch for "No need to check return value of
gb_lights_channel_flash_config()".
drivers/staging/greybus/light.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/staging/greybus/light.c b/drivers/staging/greybus/light.c
index 3f4148c..0f538b8 100644
--- a/drivers/staging/greybus/light.c
+++ b/drivers/staging/greybus/light.c
@@ -925,6 +925,8 @@ static void __gb_lights_led_unregister(struct gb_channel *channel)
return;
led_classdev_unregister(cdev);
+ kfree(cdev->name);
+ cdev->name = NULL;
channel->led = NULL;
}
--
2.7.4
Hi folks,
The original design decision in the V4L2 flash API allows controlling a two
LEDs (an indicator and a flash) through a single sub-device. This covered
virtually all flash driver chips back then but this no longer holds as
there are many LED driver chips with multiple flash LED outputs. This
necessitates creating as many sub-devices as there are flash LEDs.
Additionally the flash LEDs can be associated to different sensors. This is
not unconceivable although not very probable.
This patchset splits the indicator and flash LEDs exposed by the V4L2 flash
class framework into multiple sub-devices. This way the driver creates the
sub-devices individually for each LED which will also facilitate fwnode
matching (e.g. will you refer to LED or a LED driver chip with a phandle?).
Note that this set depends on patch 85f7ff9702bc ("media:
v4l2-flash: Use led_classdev instead of led_classdev_flash for
indicator") in mediatree master.
since v2:
- Add Hans's acks and Rui's reviewed-by.
- Use IS_ERR() instead of IS_ERR_OR_NULL() to check v4l2_flash_init()
success --- it never returns NULL.
since v1:
- Drop patch "staging: greybus: light: Don't leak memory for no gain" in
favour of Rui's "staging: greybus: light: fix memory leak in v4l2
register".
- Rebase "staging: greybus: light: fix memory leak in v4l2 register" on
"media: v4l2-flash: Use led_classdev instead of led_classdev_flash for
indicator" already in mediatree.
- Add "v4l2-flash-led-class: Document v4l2_flash_init() references" to the
set.
Rui Miguel Silva (1):
staging: greybus: light: fix memory leak in v4l2 register
Sakari Ailus (2):
v4l2-flash-led-class: Create separate sub-devices for indicators
v4l2-flash-led-class: Document v4l2_flash_init() references
drivers/leds/leds-aat1290.c | 4 +-
drivers/leds/leds-max77693.c | 4 +-
drivers/media/v4l2-core/v4l2-flash-led-class.c | 113 +++++++++++++++----------
drivers/staging/greybus/light.c | 42 ++++-----
include/media/v4l2-flash-led-class.h | 47 +++++++---
5 files changed, 127 insertions(+), 83 deletions(-)
--
2.11.0