• Chen Yu's avatar
    cpufreq: intel_pstate: Delete intel_pstate sysfs if failed to register the driver · cdc1719c
    Chen Yu authored
    There is a corner case that if the intel_pstate driver fails to be
    registered (might be due to invalid MSR access) and acpi_cpufreq
    takse over, the intel_pstate sysfs interface is still populated
    which may confuse user space (turbostat for example):
    
    grep . /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
    acpi-cpufreq
    
    grep . /sys/devices/system/cpu/intel_pstate/*
    /sys/devices/system/cpu/intel_pstate/max_perf_pct:0
    /sys/devices/system/cpu/intel_pstate/min_perf_pct:0
    grep: /sys/devices/system/cpu/intel_pstate/no_turbo: Resource temporarily unavailable
    grep: /sys/devices/system/cpu/intel_pstate/num_pstates: Resource temporarily unavailable
    /sys/devices/system/cpu/intel_pstate/status:off
    grep: /sys/devices/system/cpu/intel_pstate/turbo_pct: Resource temporarily unavailable
    
    The mere presence of the intel_pstate sysfs interface does not mean
    that intel_pstate is in use (for example, echo "off" to "status"),
    but it should not be created in the failing case.
    
    Fix this issue by deleting the intel_pstate sysfs if the driver
    registration fails.
    Reported-by: default avatarWendy Wang <wendy.wang@intel.com>
    Suggested-by: default avatarZhang Rui <rui.zhang@intel.com>
    Signed-off-by: default avatarChen Yu <yu.c.chen@intel.com>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com
    [ rjw: Refactor code to avoid jumps, change function name, changelog edits ]
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    cdc1719c
intel_pstate.c 77.4 KB