hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/powercap/powercap_sys.c
....@@ -530,9 +530,6 @@
530530 power_zone->name = kstrdup(name, GFP_KERNEL);
531531 if (!power_zone->name)
532532 goto err_name_alloc;
533
- dev_set_name(&power_zone->dev, "%s:%x",
534
- dev_name(power_zone->dev.parent),
535
- power_zone->id);
536533 power_zone->constraints = kcalloc(nr_constraints,
537534 sizeof(*power_zone->constraints),
538535 GFP_KERNEL);
....@@ -555,9 +552,16 @@
555552 power_zone->dev_attr_groups[0] = &power_zone->dev_zone_attr_group;
556553 power_zone->dev_attr_groups[1] = NULL;
557554 power_zone->dev.groups = power_zone->dev_attr_groups;
555
+ dev_set_name(&power_zone->dev, "%s:%x",
556
+ dev_name(power_zone->dev.parent),
557
+ power_zone->id);
558558 result = device_register(&power_zone->dev);
559
- if (result)
560
- goto err_dev_ret;
559
+ if (result) {
560
+ put_device(&power_zone->dev);
561
+ mutex_unlock(&control_type->lock);
562
+
563
+ return ERR_PTR(result);
564
+ }
561565
562566 control_type->nr_zones++;
563567 mutex_unlock(&control_type->lock);