All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Davidlohr Bueso <dave@stgolabs.net>
Cc: kbuild-all@01.org, akpm@linux-foundation.org, walken@google.com,
	peterz@infradead.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, dri-devel@lists.freedesktop.org,
	linux-rdma@vger.kernel.org, dave@stgolabs.net,
	"Christian König" <christian.koenig@amd.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"David Airlie" <airlied@linux.ie>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Doug Ledford" <dledford@redhat.com>,
	"Joerg Roedel" <joro@8bytes.org>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Davidlohr Bueso" <dbueso@suse.de>
Subject: Re: [PATCH 09/11] lib/interval-tree: convert interval_tree to half closed intervals
Date: Fri, 4 Oct 2019 06:50:52 +0800	[thread overview]
Message-ID: <201910040653.Gpn4Ra6Z%lkp@intel.com> (raw)
In-Reply-To: <20191003201858.11666-10-dave@stgolabs.net>

[-- Attachment #1: Type: text/plain, Size: 19110 bytes --]

Hi Davidlohr,

I love your patch! Yet something to improve:

[auto build test ERROR on next-20191003]

url:    https://github.com/0day-ci/linux/commits/Davidlohr-Bueso/lib-interval-tree-move-to-half-closed-intervals/20191004-042411
config: arm64-allyesconfig (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
        # 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@intel.com>

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/arm64/include/uapi/asm/byteorder.h:21,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/arm64/include/asm/bitops.h:29,
                    from include/linux/bitops.h:26,
                    from include/linux/kernel.h:12,
                    from include/linux/clk.h:13,
                    from include/linux/amba/bus.h:14,
                    from drivers//iommu/virtio-iommu.c:10:
   drivers//iommu/virtio-iommu.c: In function 'viommu_replay_mappings':
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:130:32: note: in definition of macro '__swab64'
     (__builtin_constant_p((__u64)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:24:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:25:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:26:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:27:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:28:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) | \
               ^
--
   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/arm64/include/uapi/asm/byteorder.h:21,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/arm64/include/asm/bitops.h:29,
                    from include/linux/bitops.h:26,
                    from include/linux/kernel.h:12,
                    from include/linux/clk.h:13,
                    from include/linux/amba/bus.h:14,
                    from drivers/iommu/virtio-iommu.c:10:
   drivers/iommu/virtio-iommu.c: In function 'viommu_replay_mappings':
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:130:32: note: in definition of macro '__swab64'
     (__builtin_constant_p((__u64)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:24:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:25:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:26:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:27:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:28:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:29:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:30:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:31:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56)))
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:132:12: note: in definition of macro '__swab64'
     __fswab64(x))
               ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~

vim +403 drivers//iommu/virtio-iommu.c

edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  379  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  380  /*
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  381   * viommu_replay_mappings - re-send MAP requests
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  382   *
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  383   * When reattaching a domain that was previously detached from all endpoints,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  384   * mappings were deleted from the device. Re-create the mappings available in
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  385   * the internal tree.
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  386   */
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  387  static int viommu_replay_mappings(struct viommu_domain *vdomain)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  388  {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  389  	int ret = 0;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  390  	unsigned long flags;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  391  	struct viommu_mapping *mapping;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  392  	struct interval_tree_node *node;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  393  	struct virtio_iommu_req_map map;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  394  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  395  	spin_lock_irqsave(&vdomain->mappings_lock, flags);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  396  	node = interval_tree_iter_first(&vdomain->mappings, 0, -1UL);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  397  	while (node) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  398  		mapping = container_of(node, struct viommu_mapping, iova);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  399  		map = (struct virtio_iommu_req_map) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  400  			.head.type	= VIRTIO_IOMMU_T_MAP,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  401  			.domain		= cpu_to_le32(vdomain->id),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  402  			.virt_start	= cpu_to_le64(mapping->iova.start),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15 @403  			.virt_end	= cpu_to_le64(mapping->iova.last),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  404  			.phys_start	= cpu_to_le64(mapping->paddr),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  405  			.flags		= cpu_to_le32(mapping->flags),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  406  		};
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  407  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  408  		ret = viommu_send_req_sync(vdomain->viommu, &map, sizeof(map));
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  409  		if (ret)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  410  			break;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  411  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  412  		node = interval_tree_iter_next(node, 0, -1UL);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  413  	}
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  414  	spin_unlock_irqrestore(&vdomain->mappings_lock, flags);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  415  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  416  	return ret;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  417  }
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  418  

:::::: The code at line 403 was first introduced by commit
:::::: edcd69ab9a323b7ac7a86e1c44b6c9c46598391f iommu: Add virtio-iommu driver

:::::: TO: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
:::::: CC: Michael S. Tsirkin <mst@redhat.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 67355 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
Cc: "Jérôme Glisse" <jglisse@redhat.com>,
	dave@stgolabs.net, "Davidlohr Bueso" <dbueso@suse.de>,
	peterz@infradead.org, "David Airlie" <airlied@linux.ie>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-mm@kvack.org, "Doug Ledford" <dledford@redhat.com>,
	kbuild-all@01.org, "Alex Deucher" <alexander.deucher@amd.com>,
	akpm@linux-foundation.org, walken@google.com,
	"Christian König" <christian.koenig@amd.com>,
	linux-rdma@vger.kernel.org
Subject: Re: [PATCH 09/11] lib/interval-tree: convert interval_tree to half closed intervals
Date: Fri, 4 Oct 2019 06:50:52 +0800	[thread overview]
Message-ID: <201910040653.Gpn4Ra6Z%lkp@intel.com> (raw)
In-Reply-To: <20191003201858.11666-10-dave@stgolabs.net>

[-- Attachment #1: Type: text/plain, Size: 19110 bytes --]

Hi Davidlohr,

I love your patch! Yet something to improve:

[auto build test ERROR on next-20191003]

url:    https://github.com/0day-ci/linux/commits/Davidlohr-Bueso/lib-interval-tree-move-to-half-closed-intervals/20191004-042411
config: arm64-allyesconfig (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
        # 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@intel.com>

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/arm64/include/uapi/asm/byteorder.h:21,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/arm64/include/asm/bitops.h:29,
                    from include/linux/bitops.h:26,
                    from include/linux/kernel.h:12,
                    from include/linux/clk.h:13,
                    from include/linux/amba/bus.h:14,
                    from drivers//iommu/virtio-iommu.c:10:
   drivers//iommu/virtio-iommu.c: In function 'viommu_replay_mappings':
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:130:32: note: in definition of macro '__swab64'
     (__builtin_constant_p((__u64)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:24:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:25:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:26:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:27:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:28:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) | \
               ^
--
   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/arm64/include/uapi/asm/byteorder.h:21,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/arm64/include/asm/bitops.h:29,
                    from include/linux/bitops.h:26,
                    from include/linux/kernel.h:12,
                    from include/linux/clk.h:13,
                    from include/linux/amba/bus.h:14,
                    from drivers/iommu/virtio-iommu.c:10:
   drivers/iommu/virtio-iommu.c: In function 'viommu_replay_mappings':
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:130:32: note: in definition of macro '__swab64'
     (__builtin_constant_p((__u64)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:24:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:25:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:26:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:27:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:28:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:29:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:30:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:31:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56)))
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:132:12: note: in definition of macro '__swab64'
     __fswab64(x))
               ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~

vim +403 drivers//iommu/virtio-iommu.c

edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  379  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  380  /*
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  381   * viommu_replay_mappings - re-send MAP requests
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  382   *
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  383   * When reattaching a domain that was previously detached from all endpoints,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  384   * mappings were deleted from the device. Re-create the mappings available in
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  385   * the internal tree.
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  386   */
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  387  static int viommu_replay_mappings(struct viommu_domain *vdomain)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  388  {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  389  	int ret = 0;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  390  	unsigned long flags;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  391  	struct viommu_mapping *mapping;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  392  	struct interval_tree_node *node;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  393  	struct virtio_iommu_req_map map;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  394  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  395  	spin_lock_irqsave(&vdomain->mappings_lock, flags);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  396  	node = interval_tree_iter_first(&vdomain->mappings, 0, -1UL);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  397  	while (node) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  398  		mapping = container_of(node, struct viommu_mapping, iova);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  399  		map = (struct virtio_iommu_req_map) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  400  			.head.type	= VIRTIO_IOMMU_T_MAP,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  401  			.domain		= cpu_to_le32(vdomain->id),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  402  			.virt_start	= cpu_to_le64(mapping->iova.start),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15 @403  			.virt_end	= cpu_to_le64(mapping->iova.last),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  404  			.phys_start	= cpu_to_le64(mapping->paddr),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  405  			.flags		= cpu_to_le32(mapping->flags),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  406  		};
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  407  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  408  		ret = viommu_send_req_sync(vdomain->viommu, &map, sizeof(map));
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  409  		if (ret)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  410  			break;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  411  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  412  		node = interval_tree_iter_next(node, 0, -1UL);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  413  	}
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  414  	spin_unlock_irqrestore(&vdomain->mappings_lock, flags);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  415  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  416  	return ret;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  417  }
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  418  

:::::: The code at line 403 was first introduced by commit
:::::: edcd69ab9a323b7ac7a86e1c44b6c9c46598391f iommu: Add virtio-iommu driver

:::::: TO: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
:::::: CC: Michael S. Tsirkin <mst@redhat.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 67355 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 09/11] lib/interval-tree: convert interval_tree to half closed intervals
Date: Fri, 04 Oct 2019 06:50:52 +0800	[thread overview]
Message-ID: <201910040653.Gpn4Ra6Z%lkp@intel.com> (raw)
In-Reply-To: <20191003201858.11666-10-dave@stgolabs.net>

[-- Attachment #1: Type: text/plain, Size: 19430 bytes --]

Hi Davidlohr,

I love your patch! Yet something to improve:

[auto build test ERROR on next-20191003]

url:    https://github.com/0day-ci/linux/commits/Davidlohr-Bueso/lib-interval-tree-move-to-half-closed-intervals/20191004-042411
config: arm64-allyesconfig (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
        # 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@intel.com>

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/arm64/include/uapi/asm/byteorder.h:21,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/arm64/include/asm/bitops.h:29,
                    from include/linux/bitops.h:26,
                    from include/linux/kernel.h:12,
                    from include/linux/clk.h:13,
                    from include/linux/amba/bus.h:14,
                    from drivers//iommu/virtio-iommu.c:10:
   drivers//iommu/virtio-iommu.c: In function 'viommu_replay_mappings':
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:130:32: note: in definition of macro '__swab64'
     (__builtin_constant_p((__u64)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:24:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:25:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:26:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:27:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
>> drivers//iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:28:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) | \
               ^
--
   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/arm64/include/uapi/asm/byteorder.h:21,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/arm64/include/asm/bitops.h:29,
                    from include/linux/bitops.h:26,
                    from include/linux/kernel.h:12,
                    from include/linux/clk.h:13,
                    from include/linux/amba/bus.h:14,
                    from drivers/iommu/virtio-iommu.c:10:
   drivers/iommu/virtio-iommu.c: In function 'viommu_replay_mappings':
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:130:32: note: in definition of macro '__swab64'
     (__builtin_constant_p((__u64)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:24:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:25:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:26:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:27:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:28:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:29:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:30:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:31:12: note: in definition of macro '___constant_swab64'
     (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56)))
               ^
>> include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64'
    #define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
                                              ^~~~~~~~
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:41: error: 'struct interval_tree_node' has no member named 'last'
       .virt_end = cpu_to_le64(mapping->iova.last),
                                            ^
   include/uapi/linux/swab.h:132:12: note: in definition of macro '__swab64'
     __fswab64(x))
               ^
>> include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64'
    #define cpu_to_le64 __cpu_to_le64
                        ^~~~~~~~~~~~~
   drivers/iommu/virtio-iommu.c:403:16: note: in expansion of macro 'cpu_to_le64'
       .virt_end = cpu_to_le64(mapping->iova.last),
                   ^~~~~~~~~~~

vim +403 drivers//iommu/virtio-iommu.c

edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  379  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  380  /*
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  381   * viommu_replay_mappings - re-send MAP requests
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  382   *
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  383   * When reattaching a domain that was previously detached from all endpoints,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  384   * mappings were deleted from the device. Re-create the mappings available in
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  385   * the internal tree.
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  386   */
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  387  static int viommu_replay_mappings(struct viommu_domain *vdomain)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  388  {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  389  	int ret = 0;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  390  	unsigned long flags;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  391  	struct viommu_mapping *mapping;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  392  	struct interval_tree_node *node;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  393  	struct virtio_iommu_req_map map;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  394  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  395  	spin_lock_irqsave(&vdomain->mappings_lock, flags);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  396  	node = interval_tree_iter_first(&vdomain->mappings, 0, -1UL);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  397  	while (node) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  398  		mapping = container_of(node, struct viommu_mapping, iova);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  399  		map = (struct virtio_iommu_req_map) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  400  			.head.type	= VIRTIO_IOMMU_T_MAP,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  401  			.domain		= cpu_to_le32(vdomain->id),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  402  			.virt_start	= cpu_to_le64(mapping->iova.start),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15 @403  			.virt_end	= cpu_to_le64(mapping->iova.last),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  404  			.phys_start	= cpu_to_le64(mapping->paddr),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  405  			.flags		= cpu_to_le32(mapping->flags),
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  406  		};
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  407  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  408  		ret = viommu_send_req_sync(vdomain->viommu, &map, sizeof(map));
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  409  		if (ret)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  410  			break;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  411  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  412  		node = interval_tree_iter_next(node, 0, -1UL);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  413  	}
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  414  	spin_unlock_irqrestore(&vdomain->mappings_lock, flags);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  415  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  416  	return ret;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  417  }
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  418  

:::::: The code at line 403 was first introduced by commit
:::::: edcd69ab9a323b7ac7a86e1c44b6c9c46598391f iommu: Add virtio-iommu driver

:::::: TO: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
:::::: CC: Michael S. Tsirkin <mst@redhat.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 67355 bytes --]

  reply	other threads:[~2019-10-03 22:51 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-03 20:18 [PATCH -next 00/11] lib/interval-tree: move to half closed intervals Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 01/11] mm: introduce vma_interval_tree_foreach_stab() Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 02/11] lib/interval-tree: add an equivalent tree with [a,b) intervals Davidlohr Bueso
2019-10-04 11:02   ` Michel Lespinasse
2019-10-03 20:18 ` [PATCH 03/11] drm/amdgpu: convert amdgpu_vm_it to half closed intervals Davidlohr Bueso
2019-10-04  6:54   ` Koenig, Christian
2019-10-04  6:54     ` Koenig, Christian
2019-10-04 11:36     ` Michel Lespinasse
2019-10-04 12:39       ` Christian König
2019-10-03 20:18 ` [PATCH 04/11] drm: convert drm_mm_interval_tree " Davidlohr Bueso
2019-10-03 20:18   ` Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 05/11] IB/hfi1: convert __mmu_int_rb " Davidlohr Bueso
2019-10-04 11:50   ` Michel Lespinasse
2019-10-04 19:41     ` Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 06/11] IB,usnic: convert usnic_uiom_interval_tree " Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 07/11] vhost: convert vhost_umem_interval_tree " Davidlohr Bueso
2019-10-03 20:18   ` Davidlohr Bueso
2019-10-04 12:10   ` Michel Lespinasse
2019-10-04 19:44     ` Davidlohr Bueso
2019-10-04 19:44       ` Davidlohr Bueso
2019-10-10  5:49   ` Jason Wang
2019-10-10  5:49   ` Jason Wang
2019-10-10  5:49     ` Jason Wang
2019-10-03 20:18 ` Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 08/11] mm: convert vma_interval_tree " Davidlohr Bueso
2019-10-03 20:41   ` Matthew Wilcox
2019-10-04 12:30   ` Michel Lespinasse
2019-10-03 20:18 ` [PATCH 09/11] lib/interval-tree: convert interval_tree " Davidlohr Bueso
2019-10-03 22:50   ` kbuild test robot [this message]
2019-10-03 22:50     ` kbuild test robot
2019-10-03 22:50     ` kbuild test robot
2019-10-04  6:57   ` Koenig, Christian
2019-10-04  6:57     ` Koenig, Christian
2019-10-04  7:20     ` Koenig, Christian
2019-10-04  7:20       ` Koenig, Christian
2019-10-08 16:59       ` Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 10/11] lib: drop interval_tree_generic.h Davidlohr Bueso
2019-10-03 20:18 ` [PATCH 11/11] x86/mm, pat: convert pat tree to generic interval tree Davidlohr Bueso
2019-10-07 15:33   ` Ingo Molnar
2019-10-07 15:33     ` Ingo Molnar
2019-10-21 23:24     ` Davidlohr Bueso
2019-10-03 20:32 ` [PATCH -next 00/11] lib/interval-tree: move to half closed intervals Matthew Wilcox
2019-10-03 21:10   ` Davidlohr Bueso
2019-10-04 12:43   ` Michel Lespinasse
2019-10-04  0:26 ` Jason Gunthorpe
2019-10-04  2:48   ` Davidlohr Bueso
2019-10-04 13:15   ` Michel Lespinasse
2019-10-04 13:15     ` Michel Lespinasse
2019-10-04 16:03     ` Matthew Wilcox
2019-10-04 19:35       ` Davidlohr Bueso
2019-10-04 17:45     ` Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201910040653.Gpn4Ra6Z%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=airlied@linux.ie \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.deucher@amd.com \
    --cc=christian.koenig@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dave@stgolabs.net \
    --cc=dbueso@suse.de \
    --cc=dledford@redhat.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jglisse@redhat.com \
    --cc=joro@8bytes.org \
    --cc=kbuild-all@01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=walken@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.