aboutsummaryrefslogtreecommitdiff
path: root/hw/nvram
diff options
context:
space:
mode:
authorAlberto Faria <afaria@redhat.com>2022-07-05 17:15:09 +0100
committerHanna Reitz <hreitz@redhat.com>2022-07-12 12:14:56 +0200
commitbf5b16fa401633475d21d69c66532f5b29e8433d (patch)
tree60779d913b400906135b6bbce90d6128a52ac3ef /hw/nvram
parent92529251d2333ea07176cdbd7273483064ba5a7b (diff)
downloadqemu-bf5b16fa401633475d21d69c66532f5b29e8433d.zip
qemu-bf5b16fa401633475d21d69c66532f5b29e8433d.tar.gz
qemu-bf5b16fa401633475d21d69c66532f5b29e8433d.tar.bz2
block: Make blk_{pread,pwrite}() return 0 on success
They currently return the value of their 'bytes' parameter on success. Make them return 0 instead, for consistency with other I/O functions and in preparation to implement them using generated_co_wrapper. This also makes it clear that short reads/writes are not possible. Signed-off-by: Alberto Faria <afaria@redhat.com> Message-Id: <20220705161527.1054072-2-afaria@redhat.com> Reviewed-by: Hanna Reitz <hreitz@redhat.com> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Diffstat (limited to 'hw/nvram')
-rw-r--r--hw/nvram/eeprom_at24c.c8
-rw-r--r--hw/nvram/spapr_nvram.c14
2 files changed, 11 insertions, 11 deletions
diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
index d695f6a..8fd9f97 100644
--- a/hw/nvram/eeprom_at24c.c
+++ b/hw/nvram/eeprom_at24c.c
@@ -64,8 +64,8 @@ int at24c_eeprom_event(I2CSlave *s, enum i2c_event event)
case I2C_START_RECV:
DPRINTK("clear\n");
if (ee->blk && ee->changed) {
- int len = blk_pwrite(ee->blk, 0, ee->mem, ee->rsize, 0);
- if (len != ee->rsize) {
+ int ret = blk_pwrite(ee->blk, 0, ee->mem, ee->rsize, 0);
+ if (ret < 0) {
ERR(TYPE_AT24C_EE
" : failed to write backing file\n");
}
@@ -165,9 +165,9 @@ void at24c_eeprom_reset(DeviceState *state)
memset(ee->mem, 0, ee->rsize);
if (ee->blk) {
- int len = blk_pread(ee->blk, 0, ee->mem, ee->rsize);
+ int ret = blk_pread(ee->blk, 0, ee->mem, ee->rsize);
- if (len != ee->rsize) {
+ if (ret < 0) {
ERR(TYPE_AT24C_EE
" : Failed initial sync with backing file\n");
}
diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c
index 18b43be..59d2e7b 100644
--- a/hw/nvram/spapr_nvram.c
+++ b/hw/nvram/spapr_nvram.c
@@ -103,7 +103,7 @@ static void rtas_nvram_store(PowerPCCPU *cpu, SpaprMachineState *spapr,
{
SpaprNvram *nvram = spapr->nvram;
hwaddr offset, buffer, len;
- int alen;
+ int ret;
void *membuf;
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);
- alen = len;
+ ret = 0;
if (nvram->blk) {
- alen = blk_pwrite(nvram->blk, offset, membuf, len, 0);
+ ret = blk_pwrite(nvram->blk, offset, membuf, len, 0);
}
assert(nvram->buf);
@@ -138,8 +138,8 @@ static void rtas_nvram_store(PowerPCCPU *cpu, SpaprMachineState *spapr,
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)
@@ -179,9 +179,9 @@ static void spapr_nvram_realize(SpaprVioDevice *dev, Error **errp)
}
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");
return;
}