|
|
@@ -567,19 +567,22 @@ static inline p4dval_t p4d_val(p4d_t p4d)
|
|
|
return PVOP_CALLEE1(p4dval_t, pv_mmu_ops.p4d_val, p4d.p4d);
|
|
|
}
|
|
|
|
|
|
-static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
|
|
|
+static inline void __set_pgd(pgd_t *pgdp, pgd_t pgd)
|
|
|
{
|
|
|
- if (pgtable_l5_enabled)
|
|
|
- PVOP_VCALL2(pv_mmu_ops.set_pgd, pgdp, native_pgd_val(pgd));
|
|
|
- else
|
|
|
- set_p4d((p4d_t *)(pgdp), (p4d_t) { pgd.pgd });
|
|
|
+ PVOP_VCALL2(pv_mmu_ops.set_pgd, pgdp, native_pgd_val(pgd));
|
|
|
}
|
|
|
|
|
|
-static inline void pgd_clear(pgd_t *pgdp)
|
|
|
-{
|
|
|
- if (pgtable_l5_enabled)
|
|
|
- set_pgd(pgdp, __pgd(0));
|
|
|
-}
|
|
|
+#define set_pgd(pgdp, pgdval) do { \
|
|
|
+ if (pgtable_l5_enabled) \
|
|
|
+ __set_pgd(pgdp, pgdval); \
|
|
|
+ else \
|
|
|
+ set_p4d((p4d_t *)(pgdp), (p4d_t) { (pgdval).pgd }); \
|
|
|
+} while (0)
|
|
|
+
|
|
|
+#define pgd_clear(pgdp) do { \
|
|
|
+ if (pgtable_l5_enabled) \
|
|
|
+ set_pgd(pgdp, __pgd(0)); \
|
|
|
+} while (0)
|
|
|
|
|
|
#endif /* CONFIG_PGTABLE_LEVELS == 5 */
|
|
|
|