hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/arch/powerpc/platforms/pseries/of_helpers.c
....@@ -45,14 +45,14 @@
4545 int of_read_drc_info_cell(struct property **prop, const __be32 **curval,
4646 struct of_drc_info *data)
4747 {
48
- const char *p;
48
+ const char *p = (char *)(*curval);
4949 const __be32 *p2;
5050
5151 if (!data)
5252 return -EINVAL;
5353
5454 /* Get drc-type:encode-string */
55
- p = data->drc_type = (char*) (*curval);
55
+ data->drc_type = (char *)p;
5656 p = of_prop_next_string(*prop, p);
5757 if (!p)
5858 return -EINVAL;
....@@ -65,9 +65,7 @@
6565
6666 /* Get drc-index-start:encode-int */
6767 p2 = (const __be32 *)p;
68
- p2 = of_prop_next_u32(*prop, p2, &data->drc_index_start);
69
- if (!p2)
70
- return -EINVAL;
68
+ data->drc_index_start = be32_to_cpu(*p2);
7169
7270 /* Get drc-name-suffix-start:encode-int */
7371 p2 = of_prop_next_u32(*prop, p2, &data->drc_name_suffix_start);
....@@ -90,7 +88,7 @@
9088 return -EINVAL;
9189
9290 /* Should now know end of current entry */
93
- (*curval) = (void *)p2;
91
+ (*curval) = (void *)(++p2);
9492 data->last_drc_index = data->drc_index_start +
9593 ((data->num_sequential_elems - 1) * data->sequential_inc);
9694