Hi "Christian,
I love your patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next
linus/master v5.13-rc6 next-20210616]
[cannot apply to drm-tip/drm-tip drm/drm-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Christian-K-nig/dma-buf-some-dma...
base:
git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-s001-20210615 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
#
https://github.com/0day-ci/linux/commit/058b99a2929f84c7f2cb1516dcc8674bf...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Christian-K-nig/dma-buf-some-dma_fence_chain-improvements/20210616-182806
git checkout 058b99a2929f84c7f2cb1516dcc8674bf3f2a661
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
> drivers/dma-buf/dma-fence-chain.c:28:15: sparse: sparse:
incorrect type in initializer (different address spaces) @@ expected struct
dma_fence_chain **__ret @@ got struct dma_fence_chain [noderef] __rcu ** @@
drivers/dma-buf/dma-fence-chain.c:28:15: sparse: expected struct dma_fence_chain
**__ret
drivers/dma-buf/dma-fence-chain.c:28:15: sparse: got struct dma_fence_chain
[noderef] __rcu **
drivers/dma-buf/dma-fence-chain.c:28:13: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct dma_fence_chain [noderef] __rcu **tmp @@
got struct dma_fence_chain **[assigned] __ret @@
drivers/dma-buf/dma-fence-chain.c:28:13: sparse: expected struct dma_fence_chain
[noderef] __rcu **tmp
drivers/dma-buf/dma-fence-chain.c:28:13: sparse: got struct dma_fence_chain
**[assigned] __ret
vim +28 drivers/dma-buf/dma-fence-chain.c
16
17 /**
18 * dma_fence_chain_enqueue - enqeue a chain node for garbage collection
19 * @chain: the chain node to enqueue
20 *
21 * Add the chain node to the end of the gc fifo.
22 */
23 static void dma_fence_chain_enqueue(struct dma_fence_chain *chain)
24 {
25 struct dma_fence_chain __rcu **tmp;
26
27 RCU_INIT_POINTER(chain->next, NULL);
28 tmp = xchg((struct dma_fence_chain __force ***)&fifo_back,
29 &chain->next);
30
31 /* This is intentionally unordered since we only need the fifo for gc */
32 rcu_assign_pointer(*tmp, chain);
33 }
34
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org