]> xenbits.xensource.com Git - osstest/seabios.git/commit
resume: Don't attempt to use generic reboot mechanisms on QEMU
authorKevin O'Connor <kevin@koconnor.net>
Fri, 3 Mar 2017 15:48:45 +0000 (10:48 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Mon, 13 Mar 2017 15:47:36 +0000 (11:47 -0400)
commitc68aff57ce317d9f2d69d20eba893a10d964f316
tree6f1cdb6c241ea0d65363e7bf9352555121cd60e8
parent1415d46dc87fd8bf1d6acd97c1ad60e893f62523
resume: Don't attempt to use generic reboot mechanisms on QEMU

On QEMU it's necessary to manually reset the BIOS memory region
between 0xc0000-0x100000 on a reboot.  After this manual memory reset
is completed, it's not valid to use the generic reset mechanisms.
Rename qemu_prep_reset() to qemu_reboot() and change the function to
immediately reboot after the code memcpy.

This fixes a bug that could cause code corruption on reboots - calling
the udelay() function (as invoked by i8042_reboot and/or pci_reboot)
was not valid after the BIOS was memcpy'd.

Reported-by: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Tested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/fw/shadow.c
src/hw/pci.c
src/hw/pci.h
src/resume.c
src/util.h