[intel-gvt-linux:topic/gvt-xengt 2/41] include/xen/arm/interface.h:22:35: error: unknown type name '__guest_handle_ulong'
kbuild test robot
lkp at intel.com
Mon Jul 22 14:38:16 UTC 2019
tree: https://github.com/intel/gvt-linux topic/gvt-xengt
head: 91f813747858ede8f67aa95236a5bf5822c3873d
commit: ecbe77527fe29880b21f5bb361d4af2f2ffa32cf [2/41] arch/x86/xen: add infrastruction in xen to support gvt
config: arm64-allmodconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout ecbe77527fe29880b21f5bb361d4af2f2ffa32cf
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All error/warnings (new ones prefixed by >>):
In file included from arch/arm64/include/asm/xen/interface.h:1:0,
from include/xen/interface/xen.h:30,
from include/xen/xen.h:36,
from arch/arm64/include/asm/dma-mapping.h:13,
from include/linux/dma-mapping.h:266,
from include/linux/skbuff.h:30,
from include/linux/if_ether.h:19,
from include/uapi/linux/ethtool.h:19,
from include/linux/ethtool.h:18,
from include/linux/netdevice.h:37,
from drivers/net/xen-netfront.c:36:
>> include/xen/arm/interface.h:22:35: error: unknown type name '__guest_handle_ulong'
#define GUEST_HANDLE(name) __guest_handle_ ## name
^
>> include/xen/interface/memory.h:261:5: note: in expansion of macro 'GUEST_HANDLE'
GUEST_HANDLE(ulong) pfn_list;
^~~~~~~~~~~~
vim +/__guest_handle_ulong +22 include/xen/arm/interface.h
2fbadc3002c5f17 Marc Zyngier 2016-12-02 14
2fbadc3002c5f17 Marc Zyngier 2016-12-02 15 #define __DEFINE_GUEST_HANDLE(name, type) \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 16 typedef struct { union { type *p; uint64_aligned_t q; }; } \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 17 __guest_handle_ ## name
2fbadc3002c5f17 Marc Zyngier 2016-12-02 18
2fbadc3002c5f17 Marc Zyngier 2016-12-02 19 #define DEFINE_GUEST_HANDLE_STRUCT(name) \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 20 __DEFINE_GUEST_HANDLE(name, struct name)
2fbadc3002c5f17 Marc Zyngier 2016-12-02 21 #define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
2fbadc3002c5f17 Marc Zyngier 2016-12-02 @22 #define GUEST_HANDLE(name) __guest_handle_ ## name
2fbadc3002c5f17 Marc Zyngier 2016-12-02 23
2fbadc3002c5f17 Marc Zyngier 2016-12-02 24 #define set_xen_guest_handle(hnd, val) \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 25 do { \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 26 if (sizeof(hnd) == 8) \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 27 *(uint64_t *)&(hnd) = 0; \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 28 (hnd).p = val; \
2fbadc3002c5f17 Marc Zyngier 2016-12-02 29 } while (0)
2fbadc3002c5f17 Marc Zyngier 2016-12-02 30
2fbadc3002c5f17 Marc Zyngier 2016-12-02 31 #define __HYPERVISOR_platform_op_raw __HYPERVISOR_platform_op
2fbadc3002c5f17 Marc Zyngier 2016-12-02 32
2fbadc3002c5f17 Marc Zyngier 2016-12-02 33 #ifndef __ASSEMBLY__
2fbadc3002c5f17 Marc Zyngier 2016-12-02 34 /* Explicitly size integers that represent pfns in the interface with
2fbadc3002c5f17 Marc Zyngier 2016-12-02 35 * Xen so that we can have one ABI that works for 32 and 64 bit guests.
2fbadc3002c5f17 Marc Zyngier 2016-12-02 36 * Note that this means that the xen_pfn_t type may be capable of
2fbadc3002c5f17 Marc Zyngier 2016-12-02 37 * representing pfn's which the guest cannot represent in its own pfn
2fbadc3002c5f17 Marc Zyngier 2016-12-02 38 * type. However since pfn space is controlled by the guest this is
2fbadc3002c5f17 Marc Zyngier 2016-12-02 39 * fine since it simply wouldn't be able to create any sure pfns in
2fbadc3002c5f17 Marc Zyngier 2016-12-02 40 * the first place.
2fbadc3002c5f17 Marc Zyngier 2016-12-02 41 */
2fbadc3002c5f17 Marc Zyngier 2016-12-02 42 typedef uint64_t xen_pfn_t;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 43 #define PRI_xen_pfn "llx"
2fbadc3002c5f17 Marc Zyngier 2016-12-02 44 typedef uint64_t xen_ulong_t;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 45 #define PRI_xen_ulong "llx"
2fbadc3002c5f17 Marc Zyngier 2016-12-02 46 typedef int64_t xen_long_t;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 47 #define PRI_xen_long "llx"
2fbadc3002c5f17 Marc Zyngier 2016-12-02 48 /* Guest handles for primitive C types. */
2fbadc3002c5f17 Marc Zyngier 2016-12-02 49 __DEFINE_GUEST_HANDLE(uchar, unsigned char);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 50 __DEFINE_GUEST_HANDLE(uint, unsigned int);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 51 DEFINE_GUEST_HANDLE(char);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 52 DEFINE_GUEST_HANDLE(int);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 53 DEFINE_GUEST_HANDLE(void);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 54 DEFINE_GUEST_HANDLE(uint64_t);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 55 DEFINE_GUEST_HANDLE(uint32_t);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 56 DEFINE_GUEST_HANDLE(xen_pfn_t);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 57 DEFINE_GUEST_HANDLE(xen_ulong_t);
2fbadc3002c5f17 Marc Zyngier 2016-12-02 58
2fbadc3002c5f17 Marc Zyngier 2016-12-02 59 /* Maximum number of virtual CPUs in multi-processor guests. */
2fbadc3002c5f17 Marc Zyngier 2016-12-02 60 #define MAX_VIRT_CPUS 1
2fbadc3002c5f17 Marc Zyngier 2016-12-02 61
2fbadc3002c5f17 Marc Zyngier 2016-12-02 62 struct arch_vcpu_info { };
2fbadc3002c5f17 Marc Zyngier 2016-12-02 63 struct arch_shared_info { };
2fbadc3002c5f17 Marc Zyngier 2016-12-02 64
2fbadc3002c5f17 Marc Zyngier 2016-12-02 65 /* TODO: Move pvclock definitions some place arch independent */
2fbadc3002c5f17 Marc Zyngier 2016-12-02 66 struct pvclock_vcpu_time_info {
2fbadc3002c5f17 Marc Zyngier 2016-12-02 67 u32 version;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 68 u32 pad0;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 69 u64 tsc_timestamp;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 70 u64 system_time;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 71 u32 tsc_to_system_mul;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 72 s8 tsc_shift;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 73 u8 flags;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 74 u8 pad[2];
2fbadc3002c5f17 Marc Zyngier 2016-12-02 75 } __attribute__((__packed__)); /* 32 bytes */
2fbadc3002c5f17 Marc Zyngier 2016-12-02 76
2fbadc3002c5f17 Marc Zyngier 2016-12-02 77 /* It is OK to have a 12 bytes struct with no padding because it is packed */
2fbadc3002c5f17 Marc Zyngier 2016-12-02 78 struct pvclock_wall_clock {
2fbadc3002c5f17 Marc Zyngier 2016-12-02 79 u32 version;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 80 u32 sec;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 81 u32 nsec;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 82 u32 sec_hi;
2fbadc3002c5f17 Marc Zyngier 2016-12-02 83 } __attribute__((__packed__));
2fbadc3002c5f17 Marc Zyngier 2016-12-02 84 #endif
2fbadc3002c5f17 Marc Zyngier 2016-12-02 85
2fbadc3002c5f17 Marc Zyngier 2016-12-02 86 #endif /* _ASM_ARM_XEN_INTERFACE_H */
:::::: The code at line 22 was first introduced by commit
:::::: 2fbadc3002c5f172d20aa2e7e48920c5f14ed11f arm/arm64: xen: Move shared architecture headers to include/xen/arm
:::::: TO: Marc Zyngier <marc.zyngier at arm.com>
:::::: CC: Stefano Stabellini <sstabellini at kernel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 66000 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gvt-dev/attachments/20190722/79522350/attachment-0001.gz>
More information about the intel-gvt-dev
mailing list