OSDN Git Service

hw/block/pflash_cfi*.c: fix confusing assert fail message
authorZiyue Yang <yzylivezh@hotmail.com>
Thu, 15 Dec 2016 14:04:53 +0000 (22:04 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 22 Dec 2016 15:00:26 +0000 (16:00 +0100)
commit8929fc3a55f33a103adddf9cfd010bcf2b255c7d
treecff6d1ce13e4cb58f5bf0b71ac81e8d5ee38d99e
parent96a3d3927730c9445983f50ac0f55e0fce3851fa
hw/block/pflash_cfi*.c: fix confusing assert fail message

The patch is to fix the confusing assert fail message caused by
un-initialized device structure (from bite sized tasks).

The bug can be reproduced by

./qemu-system-x86_64 -nographic -device cfi.pflash01

The CFI hardware is dynamically loaded by QOM realizing mechanism,
however the realizing function in pflash_cfi01_realize function
requires the device being initialized manually before calling, like

./qemu-system-x86_64 -nographic
-device cfi.pflash01,num-blocks=1024,sector-length=4096,name=testcard

Once the initializing parameters are left off in the command, it will
leave the device structure not initialized, which makes
pflash_cfi01_realize try to realize a zero-volume card, causing

/mnt/EXT_volume/projects/qemu/qemu-dev/exec.c:1378:
find_ram_offset: Assertion `size != 0\' failed.

Through my test, at least the flash device's block-number, sector-length
and its name is needed for pflash_cfi01_realize to behave correctly. So
I think the new asserts are needed to hint the QEMU user to specify
the device's parameters correctly.

Signed-off-by: Ziyue Yang <skiver.cloud.yzy@gmail.com>
Message-Id: <1481810693-13733-1-git-send-email-skiver.cloud.yzy@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Ziyue Yang <yzylivezh@hotmail.com>
hw/block/pflash_cfi01.c
hw/block/pflash_cfi02.c