mirror of
https://github.com/torvalds/linux.git
synced 2025-04-12 06:49:52 +00:00
arm64/sysreg: Get rid of TRFCR_ELx SysregFields
There is no such thing as TRFCR_ELx in the architecture. What we have is TRFCR_EL1, for which TRFCR_EL12 is an accessor. Rename TRFCR_ELx_* to TRFCR_EL1_*, and fix the bit of code using these names. Similarly, TRFCR_EL12 is redefined as a mapping to TRFCR_EL1. Reviewed-by: James Clark <james.clark@linaro.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/87cygsqgkh.wl-maz@kernel.org Cc: Suzuki K Poulose <suzuki.poulose@arm.com> Cc: Mark Brown <broonie@kernel.org> Cc: Will Deacon <will@kernel.org> Cc: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
fa5e4043e9
commit
01009b06a6
@ -1999,7 +1999,7 @@ Field 17:16 ZEN
|
||||
Res0 15:0
|
||||
EndSysreg
|
||||
|
||||
SysregFields TRFCR_ELx
|
||||
Sysreg TRFCR_EL1 3 0 1 2 1
|
||||
Res0 63:7
|
||||
UnsignedEnum 6:5 TS
|
||||
0b0001 VIRTUAL
|
||||
@ -2011,10 +2011,6 @@ Field 1 ExTRE
|
||||
Field 0 E0TRE
|
||||
EndSysregFields
|
||||
|
||||
Sysreg TRFCR_EL1 3 0 1 2 1
|
||||
Fields TRFCR_ELx
|
||||
EndSysreg
|
||||
|
||||
Sysreg SMPRI_EL1 3 0 1 2 4
|
||||
Res0 63:4
|
||||
Field 3:0 PRIORITY
|
||||
@ -2991,7 +2987,7 @@ Mapping ZCR_EL1
|
||||
EndSysreg
|
||||
|
||||
Sysreg TRFCR_EL12 3 5 1 2 1
|
||||
Fields TRFCR_ELx
|
||||
Mapping TRFCR_EL1
|
||||
EndSysreg
|
||||
|
||||
Sysreg SMCR_EL12 3 5 1 2 6
|
||||
|
@ -275,7 +275,7 @@ static void etm4x_prohibit_trace(struct etmv4_drvdata *drvdata)
|
||||
if (!drvdata->trfcr)
|
||||
return;
|
||||
|
||||
trfcr = drvdata->trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE);
|
||||
trfcr = drvdata->trfcr & ~(TRFCR_EL1_ExTRE | TRFCR_EL1_E0TRE);
|
||||
|
||||
write_trfcr(trfcr);
|
||||
kvm_tracing_set_el1_configuration(trfcr);
|
||||
@ -286,9 +286,9 @@ static u64 etm4x_get_kern_user_filter(struct etmv4_drvdata *drvdata)
|
||||
u64 trfcr = drvdata->trfcr;
|
||||
|
||||
if (drvdata->config.mode & ETM_MODE_EXCL_KERN)
|
||||
trfcr &= ~TRFCR_ELx_ExTRE;
|
||||
trfcr &= ~TRFCR_EL1_ExTRE;
|
||||
if (drvdata->config.mode & ETM_MODE_EXCL_USER)
|
||||
trfcr &= ~TRFCR_ELx_E0TRE;
|
||||
trfcr &= ~TRFCR_EL1_E0TRE;
|
||||
|
||||
return trfcr;
|
||||
}
|
||||
@ -312,7 +312,7 @@ static void etm4x_allow_trace(struct etmv4_drvdata *drvdata)
|
||||
return;
|
||||
|
||||
if (drvdata->config.mode & ETM_MODE_EXCL_HOST)
|
||||
trfcr = drvdata->trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE);
|
||||
trfcr = drvdata->trfcr & ~(TRFCR_EL1_ExTRE | TRFCR_EL1_E0TRE);
|
||||
else
|
||||
trfcr = etm4x_get_kern_user_filter(drvdata);
|
||||
|
||||
@ -320,7 +320,7 @@ static void etm4x_allow_trace(struct etmv4_drvdata *drvdata)
|
||||
|
||||
/* Set filters for guests and pass to KVM */
|
||||
if (drvdata->config.mode & ETM_MODE_EXCL_GUEST)
|
||||
guest_trfcr = drvdata->trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE);
|
||||
guest_trfcr = drvdata->trfcr & ~(TRFCR_EL1_ExTRE | TRFCR_EL1_E0TRE);
|
||||
else
|
||||
guest_trfcr = etm4x_get_kern_user_filter(drvdata);
|
||||
|
||||
@ -1176,9 +1176,9 @@ static void cpu_detect_trace_filtering(struct etmv4_drvdata *drvdata)
|
||||
* tracing at the kernel EL and EL0, forcing to use the
|
||||
* virtual time as the timestamp.
|
||||
*/
|
||||
trfcr = (TRFCR_ELx_TS_VIRTUAL |
|
||||
TRFCR_ELx_ExTRE |
|
||||
TRFCR_ELx_E0TRE);
|
||||
trfcr = (TRFCR_EL1_TS_VIRTUAL |
|
||||
TRFCR_EL1_ExTRE |
|
||||
TRFCR_EL1_E0TRE);
|
||||
|
||||
/* If we are running at EL2, allow tracing the CONTEXTIDR_EL2. */
|
||||
if (is_kernel_in_hyp_mode())
|
||||
|
@ -2319,11 +2319,11 @@ static ssize_t ts_source_show(struct device *dev,
|
||||
goto out;
|
||||
}
|
||||
|
||||
switch (drvdata->trfcr & TRFCR_ELx_TS_MASK) {
|
||||
case TRFCR_ELx_TS_VIRTUAL:
|
||||
case TRFCR_ELx_TS_GUEST_PHYSICAL:
|
||||
case TRFCR_ELx_TS_PHYSICAL:
|
||||
val = FIELD_GET(TRFCR_ELx_TS_MASK, drvdata->trfcr);
|
||||
switch (drvdata->trfcr & TRFCR_EL1_TS_MASK) {
|
||||
case TRFCR_EL1_TS_VIRTUAL:
|
||||
case TRFCR_EL1_TS_GUEST_PHYSICAL:
|
||||
case TRFCR_EL1_TS_PHYSICAL:
|
||||
val = FIELD_GET(TRFCR_EL1_TS_MASK, drvdata->trfcr);
|
||||
break;
|
||||
default:
|
||||
val = -1;
|
||||
|
@ -1118,7 +1118,7 @@ static u64 cpu_prohibit_trace(void)
|
||||
u64 trfcr = read_trfcr();
|
||||
|
||||
/* Prohibit tracing at EL0 & the kernel EL */
|
||||
write_trfcr(trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE));
|
||||
write_trfcr(trfcr & ~(TRFCR_EL1_ExTRE | TRFCR_EL1_E0TRE));
|
||||
/* Return the original value of the TRFCR */
|
||||
return trfcr;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user