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

Commit b9136d20 authored by Igor Mammedov's avatar Igor Mammedov Committed by Konrad Rzeszutek Wilk
Browse files

xen: initialize platform-pci even if xen_emul_unplug=never



When xen_emul_unplug=never is specified on kernel command line
reading files from /sys/hypervisor is broken (returns -EBUSY).
It is caused by xen_bus dependency on platform-pci and
platform-pci isn't initialized when xen_emul_unplug=never is
specified.

Fix it by allowing platform-pci to ignore xen_emul_unplug=never,
and do not intialize xen_[blk|net]front instead.

Signed-off-by: default avatarIgor Mammedov <imammedo@redhat.com>
Acked-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 106b4438
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1452,6 +1452,9 @@ static int __init xlblk_init(void)
	if (!xen_domain())
		return -ENODEV;

	if (!xen_platform_pci_unplug)
		return -ENODEV;

	if (register_blkdev(XENVBD_MAJOR, DEV_NAME)) {
		printk(KERN_WARNING "xen_blk: can't get major %d with name %s\n",
		       XENVBD_MAJOR, DEV_NAME);
+4 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@
#include <xen/xenbus.h>
#include <xen/events.h>
#include <xen/page.h>
#include <xen/platform_pci.h>
#include <xen/grant_table.h>

#include <xen/interface/io/netif.h>
@@ -1956,6 +1957,9 @@ static int __init netif_init(void)
	if (xen_initial_domain())
		return 0;

	if (!xen_platform_pci_unplug)
		return -ENODEV;

	printk(KERN_INFO "Initialising Xen virtual ethernet driver.\n");

	return xenbus_register_frontend(&netfront_driver);
+0 −5
Original line number Diff line number Diff line
@@ -186,11 +186,6 @@ static struct pci_driver platform_driver = {

static int __init platform_pci_module_init(void)
{
	/* no unplug has been done, IGNORE hasn't been specified: just
	 * return now */
	if (!xen_platform_pci_unplug)
		return -ENODEV;

	return pci_register_driver(&platform_driver);
}