hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/of/dynamic.c
....@@ -63,15 +63,14 @@
6363 }
6464 EXPORT_SYMBOL_GPL(of_reconfig_notifier_unregister);
6565
66
-#ifdef DEBUG
67
-const char *action_names[] = {
66
+static const char *action_names[] = {
67
+ [0] = "INVALID",
6868 [OF_RECONFIG_ATTACH_NODE] = "ATTACH_NODE",
6969 [OF_RECONFIG_DETACH_NODE] = "DETACH_NODE",
7070 [OF_RECONFIG_ADD_PROPERTY] = "ADD_PROPERTY",
7171 [OF_RECONFIG_REMOVE_PROPERTY] = "REMOVE_PROPERTY",
7272 [OF_RECONFIG_UPDATE_PROPERTY] = "UPDATE_PROPERTY",
7373 };
74
-#endif
7574
7675 int of_reconfig_notify(unsigned long action, struct of_reconfig_data *p)
7776 {
....@@ -590,21 +589,9 @@
590589 }
591590
592591 ret = __of_add_property(ce->np, ce->prop);
593
- if (ret) {
594
- pr_err("changeset: add_property failed @%pOF/%s\n",
595
- ce->np,
596
- ce->prop->name);
597
- break;
598
- }
599592 break;
600593 case OF_RECONFIG_REMOVE_PROPERTY:
601594 ret = __of_remove_property(ce->np, ce->prop);
602
- if (ret) {
603
- pr_err("changeset: remove_property failed @%pOF/%s\n",
604
- ce->np,
605
- ce->prop->name);
606
- break;
607
- }
608595 break;
609596
610597 case OF_RECONFIG_UPDATE_PROPERTY:
....@@ -618,20 +605,17 @@
618605 }
619606
620607 ret = __of_update_property(ce->np, ce->prop, &old_prop);
621
- if (ret) {
622
- pr_err("changeset: update_property failed @%pOF/%s\n",
623
- ce->np,
624
- ce->prop->name);
625
- break;
626
- }
627608 break;
628609 default:
629610 ret = -EINVAL;
630611 }
631612 raw_spin_unlock_irqrestore(&devtree_lock, flags);
632613
633
- if (ret)
614
+ if (ret) {
615
+ pr_err("changeset: apply failed: %-15s %pOF:%s\n",
616
+ action_names[ce->action], ce->np, ce->prop->name);
634617 return ret;
618
+ }
635619
636620 switch (ce->action) {
637621 case OF_RECONFIG_ATTACH_NODE:
....@@ -910,6 +894,9 @@
910894 {
911895 struct of_changeset_entry *ce;
912896
897
+ if (WARN_ON(action >= ARRAY_SIZE(action_names)))
898
+ return -EINVAL;
899
+
913900 ce = kzalloc(sizeof(*ce), GFP_KERNEL);
914901 if (!ce)
915902 return -ENOMEM;