Hi! > > > +#define SYSDEV_RESUME(cls, dev, drv) \ > > > + /* First, call the class-specific one */ \ > > > + if (cls->resume) \ > > > + cls->resume(dev); \ > > > + \ > > > + /* Call auxillary drivers next. */ \ > > > + list_for_each_entry(drv, &cls->drivers, entry) {\ > > > + if (drv->resume) \ > > > + drv->resume(dev); \ > > > + } \ > > > + \ > > > + /* Call global drivers. */ \ > > > + list_for_each_entry(drv, &sysdev_drivers, entry) {\ > > > + if (drv->resume) \ > > > + drv->resume(dev); \ > > > + } > > > > Are you sure you are resuming already-resumed devices? > What's your point? if sysdev_suspend failed, sysdev_resume isn't called, > so it will not be resumed twice. Probably nothing then, sorry for noise. Pavel -- teflon -- maybe it is a trademark, but it should not be.