[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