• S
    cpufreq: Revert commit a66b2e to fix suspend/resume regression · aae760ed
    Srivatsa S. Bhat 提交于
    commit a66b2e (cpufreq: Preserve sysfs files across suspend/resume)
    has unfortunately caused several things in the cpufreq subsystem to
    break subtly after a suspend/resume cycle.
    
    The intention of that patch was to retain the file permissions of the
    cpufreq related sysfs files across suspend/resume.  To achieve that,
    the commit completely removed the calls to cpufreq_add_dev() and
    __cpufreq_remove_dev() during suspend/resume transitions.  But the
    problem is that those functions do 2 kinds of things:
      1. Low-level initialization/tear-down that are critical to the
         correct functioning of cpufreq-core.
      2. Kobject and sysfs related initialization/teardown.
    
    Ideally we should have reorganized the code to cleanly separate these
    two responsibilities, and skipped only the sysfs related parts during
    suspend/resume.  Since we skipped the entire callbacks instead (which
    also included some CPU and cpufreq-specific critical components),
    cpufreq subsystem started behaving erratically after suspend/resume.
    
    So revert the commit to fix the regression.  We'll revisit and address
    the original goal of that commit separately, since it involves quite a
    bit of careful code reorganization and appears to be non-trivial.
    
    (While reverting the commit, note that another commit f51e1eb6
     (cpufreq: Fix cpufreq regression after suspend/resume) already
     reverted part of the original set of changes.  So revert only the
     remaining ones).
    Signed-off-by: NSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
    Tested-by: NPaul Bolle <pebolle@tiscali.nl>
    Cc: 3.10+ <stable@vger.kernel.org>
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    aae760ed
cpufreq.c 52.9 KB