[radeon-alex:amd-19.50 2027/2687] include/kcl/kcl_fence.h:129:20: error: redefinition of 'dma_fence_set_error'
kbuild test robot
lkp at intel.com
Sat Jan 11 04:20:11 UTC 2020
Hi Flora,
FYI, the error/warning still remains.
tree: git://people.freedesktop.org/~agd5f/linux.git amd-19.50
head: 02692309efa6ad48d47894e40fcb3832ace49c4c
commit: c53ae0e01db63d1b142681add947781668e3319c [2027/2687] drm/amdkcl: drop kcl_dma_fence_set_error
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.5.0-3) 7.5.0
reproduce:
git checkout c53ae0e01db63d1b142681add947781668e3319c
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/gpu/drm/scheduler/backport/backport.h:5:0,
from <command-line>:0:
include/kcl/kcl_fence.h: In function 'kcl_fence_get_rcu_safe':
include/kcl/kcl_fence.h:124:32: error: passing argument 1 of 'dma_fence_get_rcu_safe' from incompatible pointer type [-Werror=incompatible-pointer-types]
return dma_fence_get_rcu_safe(fencep);
^~~~~~
In file included from include/kcl/kcl_fence.h:9:0,
from drivers/gpu/drm/scheduler/backport/backport.h:5,
from <command-line>:0:
include/linux/dma-fence.h:315:1: note: expected 'struct dma_fence **' but argument is of type 'struct fence **'
dma_fence_get_rcu_safe(struct dma_fence __rcu **fencep)
^~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/scheduler/backport/backport.h:5:0,
from <command-line>:0:
include/kcl/kcl_fence.h:124:9: error: return from incompatible pointer type [-Werror=incompatible-pointer-types]
return dma_fence_get_rcu_safe(fencep);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kcl/kcl_fence.h: At top level:
>> include/kcl/kcl_fence.h:129:20: error: redefinition of 'dma_fence_set_error'
static inline void dma_fence_set_error(struct dma_fence *fence,
^~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_fence.h:9:0,
from drivers/gpu/drm/scheduler/backport/backport.h:5,
from <command-line>:0:
include/linux/dma-fence.h:517:20: note: previous definition of 'dma_fence_set_error' was here
static inline void dma_fence_set_error(struct dma_fence *fence,
^~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/scheduler/backport/backport.h:5:0,
from <command-line>:0:
include/kcl/kcl_fence.h: In function 'dma_fence_set_error':
>> include/kcl/kcl_fence.h:135:7: error: 'struct dma_fence' has no member named 'status'
fence->status = error;
^~
cc1: some warnings being treated as errors
vim +/dma_fence_set_error +129 include/kcl/kcl_fence.h
3
4 #include <linux/version.h>
5 #if !defined(HAVE_DMA_FENCE_DEFINED)
6 #include <linux/fence.h>
7 #include <kcl/kcl_fence_array.h>
8 #else
> 9 #include <linux/dma-fence.h>
10 #include <linux/dma-fence-array.h>
11 #endif
12
13 #if !defined(HAVE_DMA_FENCE_DEFINED)
14 #define dma_fence_cb fence_cb
15 #define dma_fence_ops fence_ops
16 #define dma_fence_array fence_array
17 #define dma_fence fence
18 #define DMA_FENCE_TRACE FENCE_TRACE
19 #define DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT FENCE_FLAG_ENABLE_SIGNAL_BIT
20 #define DMA_FENCE_FLAG_SIGNALED_BIT FENCE_FLAG_SIGNALED_BIT
21 #define dma_fence_wait fence_wait
22 #define dma_fence_get fence_get
23 #define dma_fence_put fence_put
24 #define dma_fence_is_signaled fence_is_signaled
25 #define dma_fence_signal fence_signal
26 #define dma_fence_signal_locked fence_signal_locked
27 #define dma_fence_get_rcu fence_get_rcu
28 #define dma_fence_array_create fence_array_create
29 #define dma_fence_add_callback fence_add_callback
30 #define dma_fence_remove_callback fence_remove_callback
31 #define dma_fence_default_wait fence_default_wait
32 #define dma_fence_enable_sw_signaling fence_enable_sw_signaling
33 typedef struct fence kcl_fence_t;
34 typedef struct fence_ops kcl_fence_ops_t;
35 #endif
36
37 #if !defined(HAVE_DMA_FENCE_DEFINED)
38 extern struct fence * _kcl_fence_get_rcu_safe(struct fence * __rcu *fencep);
39 extern u64 _kcl_fence_context_alloc(unsigned num);
40 extern void _kcl_fence_init(struct fence *fence, const struct fence_ops *ops,
41 spinlock_t *lock, u64 context, unsigned seqno);
42 extern signed long _kcl_fence_wait_timeout(struct fence *fence, bool intr,
43 signed long timeout);
44 #endif
45
46 /* commit v4.5-rc3-715-gb47bcb93bbf2
47 * fall back to HAVE_DMA_FENCE_DEFINED check directly
48 * as it's hard to detect the implementation in kernel
49 */
50 #if !defined(HAVE_DMA_FENCE_DEFINED)
51 static inline bool dma_fence_is_later(struct dma_fence *f1, struct dma_fence *f2)
52 {
53 if (WARN_ON(f1->context != f2->context))
54 return false;
55
56 return (int)(f1->seqno - f2->seqno) > 0;
57 }
58 #endif
59
60 #if !defined(HAVE_DMA_FENCE_DEFINED)
61 static inline u64 dma_fence_context_alloc(unsigned num)
62 {
63 return _kcl_fence_context_alloc(num);
64 }
65
66 static inline void
67 dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,
68 spinlock_t *lock, u64 context, unsigned seqno)
69 {
70 return _kcl_fence_init(fence, ops, lock, context, seqno);
71 }
72 #endif
73
74 /* commit 796422f227ee(dma-fence: Allow wait_any_timeout for all fences) */
75 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
76 signed long
77 _kcl_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count,
78 bool intr, signed long timeout, uint32_t *idx);
79 #endif
80
81 static inline signed long
82 kcl_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count,
83 bool intr, signed long timeout, uint32_t *idx)
84 {
85 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
86 return _kcl_fence_wait_any_timeout(fences, count, intr, timeout, idx);
87 #else
88 return dma_fence_wait_any_timeout(fences, count, intr, timeout, idx);
89 #endif
90 }
91
92 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
93 signed long
94 _kcl_fence_default_wait(struct dma_fence *fence, bool intr, signed long timeout);
95 #endif
96 static inline signed long
97 kcl_fence_default_wait(struct dma_fence *fence, bool intr, signed long timeout)
98 {
99 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
100 return _kcl_fence_default_wait(fence, intr, timeout);
101 #else
102 return dma_fence_default_wait(fence, intr, timeout);
103 #endif
104 }
105
106 #if !defined(HAVE_DMA_FENCE_DEFINED)
107 static inline signed long
108 dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout)
109 {
110 return _kcl_fence_wait_timeout(fence, intr, timeout);
111 }
112 #endif
113
114 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
115 extern struct fence * _kcl_fence_get_rcu_safe(struct fence * __rcu *fencep);
116 #endif
117
118 static inline struct fence *
119 kcl_fence_get_rcu_safe(struct fence * __rcu *fencep)
120 {
121 #if !defined(HAVE_DMA_FENCE_DEFINED)
122 return _kcl_fence_get_rcu_safe(fencep);
123 #else
> 124 return dma_fence_get_rcu_safe(fencep);
125 #endif
126 }
127
128 #if !defined(HAVE_DMA_FENCE_SET_ERROR)
> 129 static inline void dma_fence_set_error(struct dma_fence *fence,
130 int error)
131 {
132 BUG_ON(test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags));
133 BUG_ON(error >= 0 || error < -MAX_ERRNO);
134
> 135 fence->status = error;
136 }
137 #endif
138
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 68191 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20200111/dd00e196/attachment-0001.gz>
More information about the dri-devel
mailing list