diff mbox

[5/9] apm32: remove paravirt_enabled() use

Message ID 1455887316-9223-6-git-send-email-mcgrof@kernel.org (mailing list archive)
State New, archived
Headers show

Commit Message

Luis Chamberlain Feb. 19, 2016, 1:08 p.m. UTC
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(-)

Comments

Boris Ostrovsky Feb. 19, 2016, 3:08 p.m. UTC | #1
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 mbox

Patch

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;
 	}