@@ -641,7 +641,7 @@ static void rtas_ibm_configure_connector(PowerPCCPU *cpu,
}
wa_buf_int = wa_buf;
- drc_index = *(uint32_t *)wa_buf;
+ drc_index = be32_to_cpu(*(uint32_t *)wa_buf);
drc_entry = spapr_find_drc_entry(drc_index);
if (!drc_entry) {
rc = -1;
@@ -671,7 +671,7 @@ retry:
case FDT_BEGIN_NODE:
ccs->depth++;
node_name = fdt_get_name(ccs->fdt, ccs->offset, &node_name_len);
- wa_buf_int[CC_IDX_NODE_NAME_OFFSET] = CC_VAL_DATA_OFFSET;
+ wa_buf_int[CC_IDX_NODE_NAME_OFFSET] = cpu_to_be32(CC_VAL_DATA_OFFSET);
strcpy(wa_buf + wa_buf_int[CC_IDX_NODE_NAME_OFFSET], node_name);
rc = CC_RET_NEXT_CHILD;
break;
@@ -688,10 +688,10 @@ retry:
case FDT_PROP:
prop = fdt_get_property_by_offset(ccs->fdt, ccs->offset, &prop_len);
prop_name = fdt_string(ccs->fdt, fdt32_to_cpu(prop->nameoff));
- wa_buf_int[CC_IDX_PROP_NAME_OFFSET] = CC_VAL_DATA_OFFSET;
- wa_buf_int[CC_IDX_PROP_LEN] = prop_len;
+ wa_buf_int[CC_IDX_PROP_NAME_OFFSET] = cpu_to_be32(CC_VAL_DATA_OFFSET);
+ wa_buf_int[CC_IDX_PROP_LEN] = cpu_to_be32(prop_len);
wa_buf_int[CC_IDX_PROP_DATA_OFFSET] =
- CC_VAL_DATA_OFFSET + strlen(prop_name) + 1;
+ cpu_to_be32(CC_VAL_DATA_OFFSET + strlen(prop_name) + 1);
strcpy(wa_buf + wa_buf_int[CC_IDX_PROP_NAME_OFFSET], prop_name);
memcpy(wa_buf + wa_buf_int[CC_IDX_PROP_DATA_OFFSET],
prop->data, prop_len);
Store RTAS data in ibm,configure-connector RTAS call in big endian format as per sPAPR specifications. Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> --- hw/ppc/spapr_pci.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)