|
@@ -103,7 +103,7 @@ static void rtas_nvram_store(PowerPCCPU *cpu, SpaprMachineState *spapr,
|
|
{
|
|
{
|
|
SpaprNvram *nvram = spapr->nvram;
|
|
SpaprNvram *nvram = spapr->nvram;
|
|
hwaddr offset, buffer, len;
|
|
hwaddr offset, buffer, len;
|
|
- int alen;
|
|
|
|
|
|
+ int ret;
|
|
void *membuf;
|
|
void *membuf;
|
|
|
|
|
|
if ((nargs != 3) || (nret != 2)) {
|
|
if ((nargs != 3) || (nret != 2)) {
|
|
@@ -128,9 +128,9 @@ static void rtas_nvram_store(PowerPCCPU *cpu, SpaprMachineState *spapr,
|
|
|
|
|
|
membuf = cpu_physical_memory_map(buffer, &len, false);
|
|
membuf = cpu_physical_memory_map(buffer, &len, false);
|
|
|
|
|
|
- alen = len;
|
|
|
|
|
|
+ ret = 0;
|
|
if (nvram->blk) {
|
|
if (nvram->blk) {
|
|
- alen = blk_pwrite(nvram->blk, offset, membuf, len, 0);
|
|
|
|
|
|
+ ret = blk_pwrite(nvram->blk, offset, membuf, len, 0);
|
|
}
|
|
}
|
|
|
|
|
|
assert(nvram->buf);
|
|
assert(nvram->buf);
|
|
@@ -138,8 +138,8 @@ static void rtas_nvram_store(PowerPCCPU *cpu, SpaprMachineState *spapr,
|
|
|
|
|
|
cpu_physical_memory_unmap(membuf, len, 0, len);
|
|
cpu_physical_memory_unmap(membuf, len, 0, len);
|
|
|
|
|
|
- rtas_st(rets, 0, (alen < len) ? RTAS_OUT_HW_ERROR : RTAS_OUT_SUCCESS);
|
|
|
|
- rtas_st(rets, 1, (alen < 0) ? 0 : alen);
|
|
|
|
|
|
+ rtas_st(rets, 0, (ret < 0) ? RTAS_OUT_HW_ERROR : RTAS_OUT_SUCCESS);
|
|
|
|
+ rtas_st(rets, 1, (ret < 0) ? 0 : len);
|
|
}
|
|
}
|
|
|
|
|
|
static void spapr_nvram_realize(SpaprVioDevice *dev, Error **errp)
|
|
static void spapr_nvram_realize(SpaprVioDevice *dev, Error **errp)
|
|
@@ -179,9 +179,9 @@ static void spapr_nvram_realize(SpaprVioDevice *dev, Error **errp)
|
|
}
|
|
}
|
|
|
|
|
|
if (nvram->blk) {
|
|
if (nvram->blk) {
|
|
- int alen = blk_pread(nvram->blk, 0, nvram->buf, nvram->size);
|
|
|
|
|
|
+ ret = blk_pread(nvram->blk, 0, nvram->buf, nvram->size);
|
|
|
|
|
|
- if (alen != nvram->size) {
|
|
|
|
|
|
+ if (ret < 0) {
|
|
error_setg(errp, "can't read spapr-nvram contents");
|
|
error_setg(errp, "can't read spapr-nvram contents");
|
|
return;
|
|
return;
|
|
}
|
|
}
|