static int suspend_dev(struct device *dev, void *data)
{
int err = 0;
- struct xenbus_driver *drv = to_xenbus_driver(dev->driver);
- struct xenbus_device *xdev
- = container_of(dev, struct xenbus_device, dev);
+ struct xenbus_driver *drv;
+ struct xenbus_device *xdev;
+ if (dev->driver == NULL)
+ return 0;
+ drv = to_xenbus_driver(dev->driver);
+ xdev = container_of(dev, struct xenbus_device, dev);
if (drv->suspend)
err = drv->suspend(xdev);
if (err)
static int resume_dev(struct device *dev, void *data)
{
int err = 0;
- struct xenbus_driver *drv = to_xenbus_driver(dev->driver);
- struct xenbus_device *xdev
- = container_of(dev, struct xenbus_device, dev);
+ struct xenbus_driver *drv;
+ struct xenbus_device *xdev;
+ if (dev->driver == NULL)
+ return 0;
+ drv = to_xenbus_driver(dev->driver);
+ xdev = container_of(dev, struct xenbus_device, dev);
if (drv->resume)
err = drv->resume(xdev);
if (err)