Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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++) {
		/* 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",
				rp->id, rd->name);
			rd->state |= DOMAIN_STATE_BIOS_LOCKED;