Message ID | 1455887316-9223-6-git-send-email-mcgrof@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 02/19/2016 08:08 AM, Luis R. Rodriguez wrote: > There is already a check for apm_info.bios == 0, the > apm_info.bios is set from the boot_params.apm_bios_info. > Both Xen and lguest, which are also the only ones that set > paravirt_enabled to true) do never set the apm_bios_info, > the paravirt_enabled() check is simply not needed. We need to guarantee that boot_params is filled with zeroes. On baremetal path we clear .bss (which is where boot_params live) before copying data from zero page. So we need to at least memset(&boot_params, 0, sz) in xen_start_kernel(). Better yet, clear whole .bss. (This applies to the next patch as well). -boris
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c index 052c9c3026cc..749f7a081257 100644 --- a/arch/x86/kernel/apm_32.c +++ b/arch/x86/kernel/apm_32.c @@ -2267,7 +2267,7 @@ static int __init apm_init(void) dmi_check_system(apm_dmi_table); - if (apm_info.bios.version == 0 || paravirt_enabled() || machine_is_olpc()) { + if (apm_info.bios.version == 0 || machine_is_olpc()) { printk(KERN_INFO "apm: BIOS not found.\n"); return -ENODEV; }
There is already a check for apm_info.bios == 0, the apm_info.bios is set from the boot_params.apm_bios_info. Both Xen and lguest, which are also the only ones that set paravirt_enabled to true) do never set the apm_bios_info, the paravirt_enabled() check is simply not needed. Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org> --- arch/x86/kernel/apm_32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)