aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extras/mini-os/kernel.c1
-rw-r--r--extras/mini-os/pcifront.c15
2 files changed, 4 insertions, 12 deletions
diff --git a/extras/mini-os/kernel.c b/extras/mini-os/kernel.c
index 1feb87b198..2875bf138e 100644
--- a/extras/mini-os/kernel.c
+++ b/extras/mini-os/kernel.c
@@ -448,6 +448,7 @@ static void print_pcidev(unsigned int domain, unsigned int bus, unsigned int slo
static void pcifront_thread(void *p)
{
+ pcifront_watches(NULL);
pci_dev = init_pcifront(NULL);
if (!pci_dev)
return;
diff --git a/extras/mini-os/pcifront.c b/extras/mini-os/pcifront.c
index 889d701271..a5f554cbc7 100644
--- a/extras/mini-os/pcifront.c
+++ b/extras/mini-os/pcifront.c
@@ -280,23 +280,14 @@ void pcifront_scan(struct pcifront_dev *dev, void (*func)(unsigned int domain, u
{
char *path;
int i, n, len;
- char *s, *msg = NULL, *err = NULL;
+ char *s, *msg = NULL;
unsigned int domain, bus, slot, fun;
if (!dev)
dev = pcidev;
if (!dev) {
- xenbus_event_queue events = NULL;
- char *fe_state = "device/pci/0/state";
- xenbus_watch_path_token(XBT_NIL, fe_state, fe_state, &events);
- while ((err = xenbus_read(XBT_NIL, fe_state, &msg)) != NULL || msg[0] != '4') {
- free(msg);
- free(err);
- printk("pcifront_scan: waiting for pcifront to become ready\n");
- xenbus_wait_for_watch(&events);
- }
- xenbus_unwatch_path_token(XBT_NIL, fe_state, fe_state);
- dev = pcidev;
+ printk("pcifront_scan: device or bus\n");
+ return;
}
len = strlen(dev->backend) + 1 + 5 + 10 + 1;