summaryrefslogtreecommitdiffstats
path: root/hw/ppc/pnv_pnor.c
diff options
context:
space:
mode:
authorCédric Le Goater2020-01-07 18:18:08 +0100
committerDavid Gibson2020-01-08 02:01:02 +0100
commit3a688294e2c36575fd3e259a64a066b38e164cbb (patch)
tree7a84fc1634a25fd6a4c94f0558cefc6b0e0e889c /hw/ppc/pnv_pnor.c
parentpnv/psi: Consolidate some duplicated code in pnv_psi_realize() (diff)
downloadqemu-3a688294e2c36575fd3e259a64a066b38e164cbb.tar.gz
qemu-3a688294e2c36575fd3e259a64a066b38e164cbb.tar.xz
qemu-3a688294e2c36575fd3e259a64a066b38e164cbb.zip
ppc/pnv: check return value of blk_pwrite()
When updating the PNOR file contents, we should check for a possible failure of blk_pwrite(). Fixes Coverity issue CID 1412228. Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20200107171809.15556-2-clg@kaod.org> Reviewed-by: Greg Kurz <groug@kaod.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/ppc/pnv_pnor.c')
-rw-r--r--hw/ppc/pnv_pnor.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/ppc/pnv_pnor.c b/hw/ppc/pnv_pnor.c
index bfb1e92b03..0e86ae2fea 100644
--- a/hw/ppc/pnv_pnor.c
+++ b/hw/ppc/pnv_pnor.c
@@ -33,6 +33,7 @@ static uint64_t pnv_pnor_read(void *opaque, hwaddr addr, unsigned size)
static void pnv_pnor_update(PnvPnor *s, int offset, int size)
{
int offset_end;
+ int ret;
if (s->blk) {
return;
@@ -42,8 +43,11 @@ static void pnv_pnor_update(PnvPnor *s, int offset, int size)
offset = QEMU_ALIGN_DOWN(offset, BDRV_SECTOR_SIZE);
offset_end = QEMU_ALIGN_UP(offset_end, BDRV_SECTOR_SIZE);
- blk_pwrite(s->blk, offset, s->storage + offset,
- offset_end - offset, 0);
+ ret = blk_pwrite(s->blk, offset, s->storage + offset,
+ offset_end - offset, 0);
+ if (ret < 0) {
+ error_report("Could not update PNOR: %s", strerror(-ret));
+ }
}
static void pnv_pnor_write(void *opaque, hwaddr addr, uint64_t data,