Skip to content

Commit

Permalink
xen: initialize platform-pci even if xen_emul_unplug=never
Browse files Browse the repository at this point in the history
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: Igor Mammedov <imammedo@redhat.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  • Loading branch information
Igor Mammedov authored and Konrad Rzeszutek Wilk committed Mar 22, 2012
1 parent 106b443 commit b9136d2
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
3 changes: 3 additions & 0 deletions drivers/block/xen-blkfront.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 4 additions & 0 deletions drivers/net/xen-netfront.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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);
Expand Down
5 changes: 0 additions & 5 deletions drivers/xen/platform-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit b9136d2

Please sign in to comment.