Message ID | 20170613161323.25196-23-julien.grall@arm.com |
---|---|
State | Superseded |
Headers | show |
Series | xen/arm: Extend the usage of typesafe MFN | expand |
On Tue, 13 Jun 2017, Julien Grall wrote: > The file xen/arch/arm/alternative.c is using typesafe MFN in most of > the place. The only caller to virt_to_mfn is using with _mfn(...). > > To avoid extra _mfn(...), re-define virt_to_mfn within > xen/arch/arm/alternative.c to handle typesafe MFN. > > Signed-off-by: Julien Grall <julien.grall@arm.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > xen/arch/arm/alternative.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c > index 4d7e5b6155..a3bcda3117 100644 > --- a/xen/arch/arm/alternative.c > +++ b/xen/arch/arm/alternative.c > @@ -32,6 +32,10 @@ > #include <asm/insn.h> > #include <asm/page.h> > > +/* Override macros from asm/page.h to make them work with mfn_t */ > +#undef virt_to_mfn > +#define virt_to_mfn(va) _mfn(__virt_to_mfn(va)) > + > extern const struct alt_instr __alt_instructions[], __alt_instructions_end[]; > > struct alt_region { > @@ -154,7 +158,7 @@ static int __apply_alternatives_multi_stop(void *unused) > { > int ret; > struct alt_region region; > - mfn_t xen_mfn = _mfn(virt_to_mfn(_start)); > + mfn_t xen_mfn = virt_to_mfn(_start); > paddr_t xen_size = _end - _start; > unsigned int xen_order = get_order_from_bytes(xen_size); > void *xenmap; > -- > 2.11.0 >
diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c index 4d7e5b6155..a3bcda3117 100644 --- a/xen/arch/arm/alternative.c +++ b/xen/arch/arm/alternative.c @@ -32,6 +32,10 @@ #include <asm/insn.h> #include <asm/page.h> +/* Override macros from asm/page.h to make them work with mfn_t */ +#undef virt_to_mfn +#define virt_to_mfn(va) _mfn(__virt_to_mfn(va)) + extern const struct alt_instr __alt_instructions[], __alt_instructions_end[]; struct alt_region { @@ -154,7 +158,7 @@ static int __apply_alternatives_multi_stop(void *unused) { int ret; struct alt_region region; - mfn_t xen_mfn = _mfn(virt_to_mfn(_start)); + mfn_t xen_mfn = virt_to_mfn(_start); paddr_t xen_size = _end - _start; unsigned int xen_order = get_order_from_bytes(xen_size); void *xenmap;
The file xen/arch/arm/alternative.c is using typesafe MFN in most of the place. The only caller to virt_to_mfn is using with _mfn(...). To avoid extra _mfn(...), re-define virt_to_mfn within xen/arch/arm/alternative.c to handle typesafe MFN. Signed-off-by: Julien Grall <julien.grall@arm.com> --- xen/arch/arm/alternative.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)