mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-21 18:14:48 +08:00
powerpc/book3s64/pkeys: Use PVR check instead of cpu feature
We are wrongly using CPU_FTRS_POWER8 to check for P8 support. Instead, we should
use PVR value. Now considering we are using CPU_FTRS_POWER8, that
implies we returned true for P9 with older firmware. Keep the same behavior
by checking for P9 PVR value.
Fixes: cf43d3b264
("powerpc: Enable pkey subsystem")
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200709032946.881753-2-aneesh.kumar@linux.ibm.com
This commit is contained in:
parent
85343a8da2
commit
d79e7a5f26
@ -83,13 +83,17 @@ static int pkey_initialize(void)
|
|||||||
scan_pkey_feature();
|
scan_pkey_feature();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Let's assume 32 pkeys on P8 bare metal, if its not defined by device
|
* Let's assume 32 pkeys on P8/P9 bare metal, if its not defined by device
|
||||||
* tree. We make this exception since skiboot forgot to expose this
|
* tree. We make this exception since some version of skiboot forgot to
|
||||||
* property on power8.
|
* expose this property on power8/9.
|
||||||
*/
|
*/
|
||||||
if (!pkeys_devtree_defined && !firmware_has_feature(FW_FEATURE_LPAR) &&
|
if (!pkeys_devtree_defined && !firmware_has_feature(FW_FEATURE_LPAR)) {
|
||||||
cpu_has_feature(CPU_FTRS_POWER8))
|
unsigned long pvr = mfspr(SPRN_PVR);
|
||||||
|
|
||||||
|
if (PVR_VER(pvr) == PVR_POWER8 || PVR_VER(pvr) == PVR_POWER8E ||
|
||||||
|
PVR_VER(pvr) == PVR_POWER8NVL || PVR_VER(pvr) == PVR_POWER9)
|
||||||
pkeys_total = 32;
|
pkeys_total = 32;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Adjust the upper limit, based on the number of bits supported by
|
* Adjust the upper limit, based on the number of bits supported by
|
||||||
|
Loading…
Reference in New Issue
Block a user