• Zhang Rui's avatar
    powercap: intel_rapl: Fix locking in TPMI RAPL · 1aa09b93
    Zhang Rui authored
    The RAPL framework uses CPU hotplug locking to protect the rapl_packages
    list and rp->lead_cpu to guarantee that
    
     1. the RAPL package device is not unprobed and freed
     2. the cached rp->lead_cpu is always valid
    
    for operations like powercap sysfs accesses.
    
    Current RAPL APIs assume being called from CPU hotplug callbacks which
    hold the CPU hotplug lock, but TPMI RAPL driver invokes the APIs in the
    driver's .probe() function without acquiring the CPU hotplug lock.
    
    Fix the problem by providing both locked and lockless versions of RAPL
    APIs.
    
    Fixes: 9eef7f9d ("powercap: intel_rapl: Introduce RAPL TPMI interface driver")
    Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
    Cc: 6.5+ <stable@vger.kernel.org> # 6.5+
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    1aa09b93
intel_rapl_msr.c 6.71 KB