hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/of/dynamic.c
....@@ -207,11 +207,8 @@
207207
208208 if (!of_node_check_flag(np, OF_OVERLAY)) {
209209 np->name = __of_get_property(np, "name", NULL);
210
- np->type = __of_get_property(np, "device_type", NULL);
211210 if (!np->name)
212211 np->name = "<NULL>";
213
- if (!np->type)
214
- np->type = "<NULL>";
215212
216213 phandle = __of_get_property(np, "phandle", &sz);
217214 if (!phandle)
....@@ -279,7 +276,7 @@
279276 of_node_set_flag(np, OF_DETACHED);
280277
281278 /* race with of_find_node_by_phandle() prevented by devtree_lock */
282
- __of_free_phandle_cache_entry(np->phandle);
279
+ __of_phandle_cache_inv_entry(np->phandle);
283280 }
284281
285282 /**
....@@ -289,7 +286,6 @@
289286 {
290287 struct of_reconfig_data rd;
291288 unsigned long flags;
292
- int rc = 0;
293289
294290 memset(&rd, 0, sizeof(rd));
295291 rd.dn = np;
....@@ -304,7 +300,7 @@
304300
305301 of_reconfig_notify(OF_RECONFIG_DETACH_NODE, &rd);
306302
307
- return rc;
303
+ return 0;
308304 }
309305 EXPORT_SYMBOL_GPL(of_detach_node);
310306
....@@ -360,6 +356,7 @@
360356
361357 property_list_free(node->properties);
362358 property_list_free(node->deadprops);
359
+ fwnode_links_purge(of_fwnode_handle(node));
363360
364361 kfree(node->full_name);
365362 kfree(node->data);