[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 5/7] xen: include xen/guest_access.h rather than asm/guest_access.h
From: Julien Grall <jgrall@xxxxxxxxxx> Only a few places are actually including asm/guest_access.h. While this is fine today, a follow-up patch will want to move most of the helpers from asm/guest_access.h to xen/guest_access.h. To prepare the move, everyone should include xen/guest_access.h rather than asm/guest_access.h. Interestingly, asm-arm/guest_access.h includes xen/guest_access.h. The inclusion is now removed as no-one but the latter should include the former. Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx> --- xen/arch/arm/decode.c | 2 +- xen/arch/arm/domain.c | 2 +- xen/arch/arm/guest_walk.c | 3 ++- xen/arch/arm/guestcopy.c | 2 +- xen/arch/arm/vgic-v3-its.c | 2 +- xen/arch/x86/hvm/svm/svm.c | 2 +- xen/arch/x86/hvm/viridian/viridian.c | 2 +- xen/arch/x86/hvm/vmx/vmx.c | 2 +- xen/common/libelf/libelf-loader.c | 2 +- xen/include/asm-arm/guest_access.h | 1 - xen/include/asm-x86/guest_access.h | 22 ++++++++++++---------- xen/lib/x86/private.h | 2 +- 12 files changed, 23 insertions(+), 21 deletions(-) diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c index 144793c8ce..792c2e92a7 100644 --- a/xen/arch/arm/decode.c +++ b/xen/arch/arm/decode.c @@ -17,12 +17,12 @@ * GNU General Public License for more details. */ +#include <xen/guest_access.h> #include <xen/lib.h> #include <xen/sched.h> #include <xen/types.h> #include <asm/current.h> -#include <asm/guest_access.h> #include "decode.h" diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index 2190d908eb..b062c232b6 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -12,6 +12,7 @@ #include <xen/bitops.h> #include <xen/errno.h> #include <xen/grant_table.h> +#include <xen/guest_access.h> #include <xen/hypercall.h> #include <xen/init.h> #include <xen/lib.h> @@ -26,7 +27,6 @@ #include <asm/current.h> #include <asm/event.h> #include <asm/gic.h> -#include <asm/guest_access.h> #include <asm/guest_atomics.h> #include <asm/irq.h> #include <asm/p2m.h> diff --git a/xen/arch/arm/guest_walk.c b/xen/arch/arm/guest_walk.c index a1cdd7f4af..b4496c4c86 100644 --- a/xen/arch/arm/guest_walk.c +++ b/xen/arch/arm/guest_walk.c @@ -16,8 +16,9 @@ */ #include <xen/domain_page.h> +#include <xen/guest_access.h> #include <xen/sched.h> -#include <asm/guest_access.h> + #include <asm/guest_walk.h> #include <asm/short-desc.h> diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c index c8023e2bca..32681606d8 100644 --- a/xen/arch/arm/guestcopy.c +++ b/xen/arch/arm/guestcopy.c @@ -1,10 +1,10 @@ #include <xen/domain_page.h> +#include <xen/guest_access.h> #include <xen/lib.h> #include <xen/mm.h> #include <xen/sched.h> #include <asm/current.h> -#include <asm/guest_access.h> #define COPY_flush_dcache (1U << 0) #define COPY_from_guest (0U << 1) diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c index 6e153c698d..58d939b85f 100644 --- a/xen/arch/arm/vgic-v3-its.c +++ b/xen/arch/arm/vgic-v3-its.c @@ -32,6 +32,7 @@ #include <xen/bitops.h> #include <xen/config.h> #include <xen/domain_page.h> +#include <xen/guest_access.h> #include <xen/lib.h> #include <xen/init.h> #include <xen/softirq.h> @@ -39,7 +40,6 @@ #include <xen/sched.h> #include <xen/sizes.h> #include <asm/current.h> -#include <asm/guest_access.h> #include <asm/mmio.h> #include <asm/gic_v3_defs.h> #include <asm/gic_v3_its.h> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 888f504a94..9e14a451eb 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -16,6 +16,7 @@ * this program; If not, see <http://www.gnu.org/licenses/>. */ +#include <xen/guest_access.h> #include <xen/init.h> #include <xen/lib.h> #include <xen/trace.h> @@ -34,7 +35,6 @@ #include <asm/cpufeature.h> #include <asm/processor.h> #include <asm/amd.h> -#include <asm/guest_access.h> #include <asm/debugreg.h> #include <asm/msr.h> #include <asm/i387.h> diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c index 977c1bc54f..dc7183a546 100644 --- a/xen/arch/x86/hvm/viridian/viridian.c +++ b/xen/arch/x86/hvm/viridian/viridian.c @@ -5,12 +5,12 @@ * Hypervisor Top Level Functional Specification for more information. */ +#include <xen/guest_access.h> #include <xen/sched.h> #include <xen/version.h> #include <xen/hypercall.h> #include <xen/domain_page.h> #include <xen/param.h> -#include <asm/guest_access.h> #include <asm/guest/hyperv-tlfs.h> #include <asm/paging.h> #include <asm/p2m.h> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 1c398fdb6e..98e9c91ea3 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -15,6 +15,7 @@ * this program; If not, see <http://www.gnu.org/licenses/>. */ +#include <xen/guest_access.h> #include <xen/init.h> #include <xen/lib.h> #include <xen/param.h> @@ -31,7 +32,6 @@ #include <asm/regs.h> #include <asm/cpufeature.h> #include <asm/processor.h> -#include <asm/guest_access.h> #include <asm/debugreg.h> #include <asm/msr.h> #include <asm/p2m.h> diff --git a/xen/common/libelf/libelf-loader.c b/xen/common/libelf/libelf-loader.c index 0f468727d0..629cc0d3e6 100644 --- a/xen/common/libelf/libelf-loader.c +++ b/xen/common/libelf/libelf-loader.c @@ -16,7 +16,7 @@ */ #ifdef __XEN__ -#include <asm/guest_access.h> +#include <xen/guest_access.h> #endif #include "libelf-private.h" diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h index 4046d50347..93d56868f1 100644 --- a/xen/include/asm-arm/guest_access.h +++ b/xen/include/asm-arm/guest_access.h @@ -1,7 +1,6 @@ #ifndef __ASM_ARM_GUEST_ACCESS_H__ #define __ASM_ARM_GUEST_ACCESS_H__ -#include <xen/guest_access.h> #include <xen/errno.h> #include <xen/sched.h> diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_access.h index 9ee275d01f..5c3dfc47b6 100644 --- a/xen/include/asm-x86/guest_access.h +++ b/xen/include/asm-x86/guest_access.h @@ -54,22 +54,24 @@ /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */ #define guest_handle_to_param(hnd, type) ({ \ + typeof((hnd).p) _x = (hnd).p; \ + XEN_GUEST_HANDLE_PARAM(type) _y = { _x }; \ /* type checking: make sure that the pointers inside \ * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of \ * the same type, then return hnd */ \ - (void)((typeof(&(hnd).p)) 0 == \ - (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \ - (hnd); \ + (void)(&_x == &_y.p); \ + _y; \ }) /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */ -#define guest_handle_from_param(hnd, type) ({ \ - /* type checking: make sure that the pointers inside \ - * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of \ - * the same type, then return hnd */ \ - (void)((typeof(&(hnd).p)) 0 == \ - (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \ - (hnd); \ +#define guest_handle_from_param(hnd, type) ({ \ + typeof((hnd).p) _x = (hnd).p; \ + XEN_GUEST_HANDLE(type) _y = { _x }; \ + /* type checking: make sure that the pointers inside \ + * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of \ + * the same type, then return hnd */ \ + (void)(&_x == &_y.p); \ + _y; \ }) #define guest_handle_for_field(hnd, type, fld) \ diff --git a/xen/lib/x86/private.h b/xen/lib/x86/private.h index b793181464..2d53bd3ced 100644 --- a/xen/lib/x86/private.h +++ b/xen/lib/x86/private.h @@ -4,12 +4,12 @@ #ifdef __XEN__ #include <xen/bitops.h> +#include <xen/guest_access.h> #include <xen/kernel.h> #include <xen/lib.h> #include <xen/nospec.h> #include <xen/types.h> -#include <asm/guest_access.h> #include <asm/msr-index.h> #define copy_to_buffer_offset copy_to_guest_offset -- 2.17.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |