hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/leds/led-class.c
....@@ -236,14 +236,17 @@
236236
237237 led_dev = class_find_device_by_of_node(leds_class, led_node);
238238 of_node_put(led_node);
239
+ put_device(led_dev);
239240
240241 if (!led_dev)
241242 return ERR_PTR(-EPROBE_DEFER);
242243
243244 led_cdev = dev_get_drvdata(led_dev);
244245
245
- if (!try_module_get(led_cdev->dev->parent->driver->owner))
246
+ if (!try_module_get(led_cdev->dev->parent->driver->owner)) {
247
+ put_device(led_cdev->dev);
246248 return ERR_PTR(-ENODEV);
249
+ }
247250
248251 return led_cdev;
249252 }
....@@ -256,6 +259,7 @@
256259 void led_put(struct led_classdev *led_cdev)
257260 {
258261 module_put(led_cdev->dev->parent->driver->owner);
262
+ put_device(led_cdev->dev);
259263 }
260264 EXPORT_SYMBOL_GPL(led_put);
261265