tree: git://people.freedesktop.org/~agd5f/linux.git drm-next-4.15-wip
head: 92c7dfc70d8bd57e4ffae528418fb8a039ea26cb
commit: 5d86b2c391965cbcb295e8fa795276977b2a416e [169/283] drm/amd: Closed hash
table with low overhead (v2)
config: mn10300-allmodconfig (attached as .config)
compiler: am33_2.0-linux-gcc (GCC) 6.2.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 5d86b2c391965cbcb295e8fa795276977b2a416e
# save the attached .config to linux build tree
make.cross ARCH=mn10300
Note: the radeon-alex/drm-next-4.15-wip HEAD
92c7dfc70d8bd57e4ffae528418fb8a039ea26cb builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
In file included from include/linux/kernel.h:151:0,
from include/asm-generic/bug.h:15,
from arch/mn10300/include/asm/bug.h:35,
from include/linux/bug.h:4,
from drivers/gpu/drm/amd/lib/chash.c:26:
drivers/gpu/drm/amd/lib/chash.c: In function '__chash_table_dump_stats':
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:113:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits_steps, table->hits, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:113:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits_steps, table->hits, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:114:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits * 1000, table->hits_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:114:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits * 1000, table->hits_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:123:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->miss_steps, table->miss, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:123:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->miss_steps, table->miss, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:124:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->miss * 1000, table->miss_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:124:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->miss * 1000, table->miss_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:133:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits_steps + table->miss_steps,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:133:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits_steps + table->miss_steps,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:135:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC((table->hits + table->miss) * 1000,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:135:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC((table->hits + table->miss) * 1000,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:145:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits + table->miss, table->relocs,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:145:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->hits + table->miss, table->relocs,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:147:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->reloc_dist, table->relocs, quot2, frac2, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu/drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu/drm/amd/lib/chash.c:147:3: note: in expansion of macro 'DIV_FRAC'
DIV_FRAC(table->reloc_dist, table->relocs, quot2, frac2, 1000);
^~~~~~~~
--
In file included from include/linux/kernel.h:151:0,
from include/asm-generic/bug.h:15,
from arch/mn10300/include/asm/bug.h:35,
from include/linux/bug.h:4,
from drivers/gpu//drm/amd/lib/chash.c:26:
drivers/gpu//drm/amd/lib/chash.c: In function '__chash_table_dump_stats':
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:113:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits_steps, table->hits, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:113:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits_steps, table->hits, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:114:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits * 1000, table->hits_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:114:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits * 1000, table->hits_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:123:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->miss_steps, table->miss, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:123:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->miss_steps, table->miss, quot1, frac1, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:124:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->miss * 1000, table->miss_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:124:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->miss * 1000, table->miss_time_ns,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:133:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits_steps + table->miss_steps,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:133:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits_steps + table->miss_steps,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:135:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC((table->hits + table->miss) * 1000,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:135:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC((table->hits + table->miss) * 1000,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:145:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits + table->miss, table->relocs,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:145:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->hits + table->miss, table->relocs,
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:52:12: error: incompatible types when
>> assigning to type 'long long unsigned int' from type 'union <anonymous>'
__quot.l = n; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:147:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->reloc_dist, table->relocs, quot2, frac2, 1000);
^~~~~~~~
>> arch/mn10300/include/asm/div64.h:66:5: error: incompatible types when
>> assigning to type 'union <anonymous>' from type 'long long unsigned int'
n = __quot.l; \
^
drivers/gpu//drm/amd/lib/chash.c:84:12: note: in expansion of macro 'do_div'
__rem = do_div(__quot, __denom); \
^~~~~~
drivers/gpu//drm/amd/lib/chash.c:147:3: note: in expansion of macro
'DIV_FRAC'
DIV_FRAC(table->reloc_dist, table->relocs, quot2, frac2, 1000);
^~~~~~~~
vim +52 arch/mn10300/include/asm/div64.h
5a4b65ab arch/mn10300/include/asm/div64.h Richard Henderson 2011-03-23 30
5a4b65ab arch/mn10300/include/asm/div64.h Richard Henderson 2011-03-23 31 /*
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 32 *
divide n by base, leaving the result in n and returning the remainder
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 33 *
- we can do this quite efficiently on the MN10300 by cascading the divides
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 34 *
through the MDR register
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 35 */
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 36
#define do_div(n, base) \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 37 ({
\
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 38
unsigned __rem = 0; \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 39
if (sizeof(n) <= 4) { \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 40
asm("mov %1,mdr \n" \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 41
"divu %2,%0 \n" \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 42
"mov mdr,%1 \n" \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 43
: "+r"(n), "=d"(__rem) \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 44
: "r"(base), "1"(__rem) \
5a4b65ab arch/mn10300/include/asm/div64.h Richard Henderson 2011-03-23 45
: CLOBBER_MDR_CC \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 46
); \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 47
} else if (sizeof(n) <= 8) { \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 48
union { \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 49
unsigned long long l; \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 50
u32 w[2]; \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 51
} __quot; \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 @52
__quot.l = n; \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 53
asm("mov %0,mdr \n" /* MDR = 0 */ \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 54
"divu %3,%1 \n" \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 55
/* __quot.MSL = __div.MSL / base, */ \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 56
/* MDR = MDR:__div.MSL % base */ \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 57
"divu %3,%2 \n" \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 58
/* __quot.LSL = MDR:__div.LSL / base, */ \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 59
/* MDR = MDR:__div.LSL % base */ \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 60
"mov mdr,%0 \n" \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 61
: "=d"(__rem), "=r"(__quot.w[1]), "=r"(__quot.w[0]) \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 62
: "r"(base), "0"(__rem), "1"(__quot.w[1]), \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 63
"2"(__quot.w[0]) \
5a4b65ab arch/mn10300/include/asm/div64.h Richard Henderson 2011-03-23 64
: CLOBBER_MDR_CC \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 65
); \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 @66
n = __quot.l; \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 67
} else { \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 68
____unhandled_size_in_do_div___(); \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 69
} \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 70
__rem; \
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 71 })
b920de1b include/asm-mn10300/div64.h David Howells 2008-02-08 72
:::::: The code at line 52 was first introduced by commit
:::::: b920de1b77b72ca9432ac3f97edb26541e65e5dd mn10300: add the MN10300/AM33
architecture to the kernel
:::::: TO: David Howells <[email protected]>
:::::: CC: Linus Torvalds <[email protected]>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip
_______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
