BIOS doesn't load when read() returns less than the full ROM length

Bug #714629 reported by Matthew Bloch
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

When qemu is running over a 9p filesystem (e.g. when running underneath -virtfs of another qemu), and probably some other network filesystems, it fails to read its BIOS image. This is because it uses a single low-level read() call on the bios.bin, asking for the full file. However read() may return less than the full length, and it's the caller's responsibility to call it repeatedly if necessary. When read does come up short, qemu doesn't repeat the call, and reports an error instead. The attached patch fixes the one problem I saw, but I haven't tried to cover the general case (e.g. extension ROMs).

Tags: bios
Revision history for this message
Matthew Bloch (matthew-bytemark) wrote :
Revision history for this message
Philippe Mathieu-Daudé (philmd) wrote :

This seems to have been fixed by commit 1f40547f5ce0c135faa7d14f066b97002fd8c204.

Revision history for this message
Philippe Mathieu-Daudé (philmd) wrote :

Fix included in QEMU v4.0.0.

Changed in qemu:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.