/* Pending requests need to be canceled. */
        dev->power.request = RPM_REQ_NONE;
 
-       if (dev->power.no_callbacks)
+       callback = RPM_GET_CALLBACK(dev, runtime_idle);
+
+       /* If no callback assume success. */
+       if (!callback || dev->power.no_callbacks)
                goto out;
 
        /* Carry out an asynchronous or a synchronous idle notification. */
 
        dev->power.idle_notification = true;
 
-       callback = RPM_GET_CALLBACK(dev, runtime_idle);
-
-       if (callback)
-               retval = __rpm_callback(callback, dev);
+       retval = __rpm_callback(callback, dev);
 
        dev->power.idle_notification = false;
        wake_up_all(&dev->power.wait_queue);