Commit 0dd5ce38 authored by Martijn van den Broek's avatar Martijn van den Broek Committed by Anthony Liguori
Browse files

Bugfix for loading multiboot kernels

This patch fixes a bug in rom_copy introduced by
commit d60fa42e.

rom_copy failed to load roms with a "datasize" of 0.
As a result, multiboot kernels were not loaded correctly
when they contain a segment with a "file size" of 0.

https://bugs.launchpad.net/qemu/+bug/1208944



Signed-off-by: default avatarMartijn van den Broek <martijn.vdbrk@gmail.com>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Message-id: CAG1x_oET1u3TMPu3r_zzd3ZXsTWQLiaM0zAc+RkHFCwvJjGOvg@mail.gmail.com
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 6c0f48f5
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -814,9 +814,6 @@ int rom_copy(uint8_t *dest, hwaddr addr, size_t size)
        if (rom->addr > end) {
            break;
        }
        if (!rom->data) {
            continue;
        }

        d = dest + (rom->addr - addr);
        s = rom->data;
@@ -826,7 +823,9 @@ int rom_copy(uint8_t *dest, hwaddr addr, size_t size)
            l = dest - d;
        }

        if (l > 0) {
            memcpy(d, s, l);
        }

        if (rom->romsize > rom->datasize) {
            /* If datasize is less than romsize, it means that we didn't