diff options
Diffstat (limited to 'extras')
-rw-r--r-- | extras/mini-os/kernel.c | 1 | ||||
-rw-r--r-- | extras/mini-os/pcifront.c | 15 |
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; |