*/
        if (cpufreq_driver->offline) {
                cpufreq_driver->offline(policy);
-       } else if (cpufreq_driver->exit) {
-               cpufreq_driver->exit(policy);
-               policy->freq_table = NULL;
+               return;
        }
+
+       if (cpufreq_driver->exit)
+               cpufreq_driver->exit(policy);
+
+       policy->freq_table = NULL;
 }
 
 static int cpufreq_offline(unsigned int cpu)
        }
 
        /* We did light-weight exit earlier, do full tear down now */
-       if (cpufreq_driver->offline)
+       if (cpufreq_driver->offline && cpufreq_driver->exit)
                cpufreq_driver->exit(policy);
 
        up_write(&policy->rwsem);