qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] m25p80: Warn the user when the backend file is too small for the device
@ 2022-11-15 14:21 Cédric Le Goater
  2022-11-15 14:34 ` Peter Maydell
  0 siblings, 1 reply; 5+ messages in thread
From: Cédric Le Goater @ 2022-11-15 14:21 UTC (permalink / raw)
  To: Alistair Francis
  Cc: Francisco Iglesias, Kevin Wolf, Hanna Reitz,
	Philippe Mathieu-Daudé, Peter Maydell, Peter Delevoryas,
	qemu-block, qemu-devel, Cédric Le Goater

Currently, when a block backend is attached to a m25p80 device and the
associated file size does not match the flash model, QEMU complains
with the error message "failed to read the initial flash content".
This is confusing for the user.

Improve the reported error with a new message regarding the file size.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/block/m25p80.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 02adc87527..e0515e2a1e 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -1606,6 +1606,14 @@ static void m25p80_realize(SSIPeripheral *ss, Error **errp)
     if (s->blk) {
         uint64_t perm = BLK_PERM_CONSISTENT_READ |
                         (blk_supports_write_perm(s->blk) ? BLK_PERM_WRITE : 0);
+
+        if (blk_getlength(s->blk) < s->size) {
+            error_setg(errp,
+                       "backend file is too small for flash device %s (%d MB)",
+                       object_class_get_name(OBJECT_CLASS(mc)), s->size >> 20);
+            return;
+        }
+
         ret = blk_set_perm(s->blk, perm, BLK_PERM_ALL, errp);
         if (ret < 0) {
             return;
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-11-15 14:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-15 14:21 [PATCH] m25p80: Warn the user when the backend file is too small for the device Cédric Le Goater
2022-11-15 14:34 ` Peter Maydell
2022-11-15 14:51   ` Cédric Le Goater
2022-11-15 14:55     ` Peter Maydell
2022-11-15 14:56       ` Cédric Le Goater

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).