|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] xen/riscv: init_csr_masks()-related improvements
commit 5a08ea4c5b422b9a0114617221b03efd2cb2c3b9
Author: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
AuthorDate: Thu Apr 2 08:51:44 2026 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Apr 2 08:51:44 2026 +0200
xen/riscv: init_csr_masks()-related improvements
There is no reason to use _UL() in define-s sitting in C file hence use UL
suffix instead.
Drop 3d argument of INIT_CSR_MASK() and INIT_RO_ONE_MASK() to reduce risk
of incomplete editing after copy-and-paste, or other typo-ing.
Use _VALID_ infix instead of _AVAIL_ as the mask identifies architecturally
defined bits, not bits available for software use.
Suggested-by: Jan Beulich <jbeulich@xxxxxxxx>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
xen/arch/riscv/domain.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index c327f44d07..c77be3b827 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -42,10 +42,10 @@ struct csr_masks {
static struct csr_masks __ro_after_init csr_masks;
-#define HEDELEG_AVAIL_MASK ULONG_MAX
-#define HIDELEG_AVAIL_MASK ULONG_MAX
-#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
-#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)
+#define HEDELEG_VALID_MASK ULONG_MAX
+#define HIDELEG_VALID_MASK ULONG_MAX
+#define HENVCFG_VALID_MASK 0xe0000003000000ffUL
+#define HSTATEEN0_VALID_MASK 0xde00000000000007UL
void __init init_csr_masks(void)
{
@@ -57,25 +57,26 @@ void __init init_csr_masks(void)
* fields that must be preserved. Any write to the full register must
* therefore retain the original values of those fields.
*/
-#define INIT_CSR_MASK(csr, field, mask) do { \
- register_t old = csr_read_set(CSR_ ## csr, mask); \
+#define INIT_CSR_MASK(csr, field) do { \
+ register_t old = csr_read_set(CSR_ ## csr, csr ## _VALID_MASK); \
csr_masks.field = csr_swap(CSR_ ## csr, old); \
} while (0)
-#define INIT_RO_ONE_MASK(csr, field, mask) do { \
- register_t old = csr_read_clear(CSR_ ## csr, mask); \
- csr_masks.ro_one.field = csr_swap(CSR_ ## csr, old) & mask; \
+#define INIT_RO_ONE_MASK(csr, field) do { \
+ register_t old = csr_read_clear(CSR_ ## csr, csr ## _VALID_MASK); \
+ csr_masks.ro_one.field = csr_swap(CSR_ ## csr, old) & \
+ csr ## _VALID_MASK; \
} while (0)
- INIT_CSR_MASK(HEDELEG, hedeleg, HEDELEG_AVAIL_MASK);
- INIT_CSR_MASK(HIDELEG, hideleg, HIDELEG_AVAIL_MASK);
+ INIT_CSR_MASK(HEDELEG, hedeleg);
+ INIT_CSR_MASK(HIDELEG, hideleg);
- INIT_CSR_MASK(HENVCFG, henvcfg, HENVCFG_AVAIL_MASK);
+ INIT_CSR_MASK(HENVCFG, henvcfg);
if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
{
- INIT_CSR_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
- INIT_RO_ONE_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
+ INIT_CSR_MASK(HSTATEEN0, hstateen0);
+ INIT_RO_ONE_MASK(HSTATEEN0, hstateen0);
}
#undef INIT_CSR_MASK
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |