Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2785c8d0 authored by Glauber Costa's avatar Glauber Costa Committed by Ingo Molnar
Browse files

x86: call vsmp_init explicitly



It becomes to early for ioremap, so we use early_ioremap

Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarRavikiran Thirumalai <kiran@scalemp.com>
Acked-by: default avatarShai Fultheim <shai@scalemp.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent a2beab31
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -345,6 +345,10 @@ void __init setup_arch(char **cmdline_p)
	if (efi_enabled)
		efi_init();

#ifdef	CONFIG_PARAVIRT
	vsmp_init();
#endif

	dmi_scan_machine();

	io_delay_init();
+5 −6
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@
#include <asm/pci-direct.h>
#include <asm/io.h>

static void __init vsmp_init(void)
void __init vsmp_init(void)
{
	void *address;
	unsigned int cap, ctl;
	unsigned int cap, ctl, cfg;

	if (!early_pci_allowed())
		return;
@@ -32,7 +32,8 @@ static void __init vsmp_init(void)
		return;

	/* set vSMP magic bits to indicate vSMP capable kernel */
	address = ioremap(read_pci_config(0, 0x1f, 0, PCI_BASE_ADDRESS_0), 8);
	cfg = read_pci_config(0, 0x1f, 0, PCI_BASE_ADDRESS_0);
	address = early_ioremap(cfg, 8);
	cap = readl(address);
	ctl = readl(address + 4);
	printk(KERN_INFO "vSMP CTL: capabilities:0x%08x  control:0x%08x\n",
@@ -45,8 +46,6 @@ static void __init vsmp_init(void)
		printk(KERN_INFO "vSMP CTL: control set to:0x%08x\n", ctl);
	}

	iounmap(address);
	early_iounmap(address, 8);
	return;
}

core_initcall(vsmp_init);
+4 −0
Original line number Diff line number Diff line
@@ -4,6 +4,10 @@
#define COMMAND_LINE_SIZE 2048

#ifndef __ASSEMBLY__

/* Interrupt control for vSMPowered x86_64 systems */
void vsmp_init(void);

char *machine_specific_memory_setup(void);
#ifndef CONFIG_PARAVIRT
#define paravirt_post_allocator_init()	do {} while (0)