Commit 79a21dbf authored by Prarit Bhargava's avatar Prarit Bhargava Committed by Rafael J. Wysocki

powercap / RAPL: fix BIOS lock check

Intel RAPL initialized on several systems where the BIOS lock bit (msr
0x610, bit 63) was set.  This occured because the return value of
rapl_read_data_raw() was being checked, rather than the value of the variable
passed in, locked.

This patch properly implments the rapl_read_data_raw() call to check the
variable locked, and now the Intel RAPL driver outputs the warning:

	intel_rapl: RAPL package 0 domain package locked by BIOS

and does not initialize for the package.
Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
Acked-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 89e7b255
...@@ -1341,7 +1341,10 @@ static int rapl_detect_domains(struct rapl_package *rp, int cpu) ...@@ -1341,7 +1341,10 @@ static int rapl_detect_domains(struct rapl_package *rp, int cpu)
for (rd = rp->domains; rd < rp->domains + rp->nr_domains; rd++) { for (rd = rp->domains; rd < rp->domains + rp->nr_domains; rd++) {
/* check if the domain is locked by BIOS */ /* check if the domain is locked by BIOS */
if (rapl_read_data_raw(rd, FW_LOCK, false, &locked)) { ret = rapl_read_data_raw(rd, FW_LOCK, false, &locked);
if (ret)
return ret;
if (locked) {
pr_info("RAPL package %d domain %s locked by BIOS\n", pr_info("RAPL package %d domain %s locked by BIOS\n",
rp->id, rd->name); rp->id, rd->name);
rd->state |= DOMAIN_STATE_BIOS_LOCKED; rd->state |= DOMAIN_STATE_BIOS_LOCKED;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment