static int xen_pcibk_xenbus_probe(struct xenbus_device *dev, const struct xenbus_device_id *id) { int err = 0; struct xen_pcibk_device *pdev = alloc_pdev(dev); if (pdev == NULL) { err = -ENOMEM; xenbus_dev_fatal(dev, err, "Error allocating xen_pcibk_device struct"); goto out; } /* wait for xend to configure us */ err = xenbus_switch_state(dev, XenbusStateInitWait); if (err) goto out; /* watch the backend node for backend configuration information */ err = xenbus_watch_path(dev, dev->nodename, &pdev->be_watch, xen_pcibk_be_watch); if (err) goto out; pdev->be_watching = 1; /* We need to force a call to our callback here in case * xend already configured us! */ xen_pcibk_be_watch(&pdev->be_watch, NULL, 0); out: return err; }
static int pcifront_xenbus_probe(struct xenbus_device *xdev, const struct xenbus_device_id *id) { int err = 0; struct pcifront_device *pdev = alloc_pdev(xdev); if (pdev == NULL) { err = -ENOMEM; xenbus_dev_fatal(xdev, err, "Error allocating pcifront_device struct"); goto out; } err = pcifront_publish_info(pdev); out: return err; }
/* Process a probe from the xenbus */ static int pcifront_probe(struct xenbus_device *xdev, const struct xenbus_device_id *id) { int err = 0; struct pcifront_device *pdev; DPRINTF("xenbus probing\n"); if ((pdev = alloc_pdev(xdev)) == NULL) goto out; err = pcifront_publish_info(pdev); out: if (err) put_pdev(pdev); return err; }