Hi Meghana, [auto build test ERROR on drm/drm-next] [also build test ERROR on v4.14-rc2 next-20170929] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Meghana-Madhyastha/drm-tinydrm-Move-tinydrm_of_find_backlight-into-drm_of-c/20170930-055009 base: git://people.freedesktop.org/~airlied/linux.git drm-next config: i386-randconfig-x073-201739 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): drivers/gpu//drm/i2c/tda998x_drv.c:1721:10: error: 'tda998x_bind' undeclared (first use in this function) .bind = tda998x_bind, ^~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1722:12: error: 'tda998x_unbind' undeclared (first use in this function) .unbind = tda998x_unbind, ^~~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1727:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^ drivers/gpu//drm/i2c/tda998x_drv.c:1736:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^ drivers/gpu//drm/i2c/tda998x_drv.c:1742:34: error: storage class specified for parameter 'tda998x_dt_ids' static const struct of_device_id tda998x_dt_ids[] = { ^~~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1742:21: error: parameter 'tda998x_dt_ids' is initialized static const struct of_device_id tda998x_dt_ids[] = { ^~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1743:2: warning: braces around scalar initializer { .compatible = "nxp,tda998x", }, ^ drivers/gpu//drm/i2c/tda998x_drv.c:1743:2: note: (near initialization for 'tda998x_dt_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1743:4: error: field name not in record or union initializer { .compatible = "nxp,tda998x", }, ^ drivers/gpu//drm/i2c/tda998x_drv.c:1743:4: note: (near initialization for 'tda998x_dt_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1743:18: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] { .compatible = "nxp,tda998x", }, ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1743:18: note: (near initialization for 'tda998x_dt_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1744:2: warning: braces around scalar initializer { } ^ drivers/gpu//drm/i2c/tda998x_drv.c:1744:2: note: (near initialization for 'tda998x_dt_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1744:2: error: empty scalar initializer drivers/gpu//drm/i2c/tda998x_drv.c:1744:2: note: (near initialization for 'tda998x_dt_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1744:2: warning: excess elements in scalar initializer drivers/gpu//drm/i2c/tda998x_drv.c:1744:2: note: (near initialization for 'tda998x_dt_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1746:40: error: expected declaration specifiers before ';' token MODULE_DEVICE_TABLE(of, tda998x_dt_ids); ^ drivers/gpu//drm/i2c/tda998x_drv.c:1749:35: error: storage class specified for parameter 'tda998x_ids' static const struct i2c_device_id tda998x_ids[] = { ^~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1749:21: error: parameter 'tda998x_ids' is initialized static const struct i2c_device_id tda998x_ids[] = { ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1750:2: warning: braces around scalar initializer { "tda998x", 0 }, ^ drivers/gpu//drm/i2c/tda998x_drv.c:1750:2: note: (near initialization for 'tda998x_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1750:4: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] { "tda998x", 0 }, ^~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1750:4: note: (near initialization for 'tda998x_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1750:15: warning: excess elements in scalar initializer { "tda998x", 0 }, ^ drivers/gpu//drm/i2c/tda998x_drv.c:1750:15: note: (near initialization for 'tda998x_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1751:2: warning: braces around scalar initializer { } ^ drivers/gpu//drm/i2c/tda998x_drv.c:1751:2: note: (near initialization for 'tda998x_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1751:2: error: empty scalar initializer drivers/gpu//drm/i2c/tda998x_drv.c:1751:2: note: (near initialization for 'tda998x_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1751:2: warning: excess elements in scalar initializer drivers/gpu//drm/i2c/tda998x_drv.c:1751:2: note: (near initialization for 'tda998x_ids') drivers/gpu//drm/i2c/tda998x_drv.c:1753:38: error: expected declaration specifiers before ';' token MODULE_DEVICE_TABLE(i2c, tda998x_ids); ^ drivers/gpu//drm/i2c/tda998x_drv.c:1755:26: error: storage class specified for parameter 'tda998x_driver' static struct i2c_driver tda998x_driver = { ^~~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1755:15: error: parameter 'tda998x_driver' is initialized static struct i2c_driver tda998x_driver = { ^~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1756:11: error: 'tda998x_probe' undeclared (first use in this function) .probe = tda998x_probe, ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1757:12: error: 'tda998x_remove' undeclared (first use in this function) .remove = tda998x_remove, ^~~~~~~~~~~~~~ In file included from include/linux/hdmi.h:28:0, from drivers/gpu//drm/i2c/tda998x_drv.c:19: include/linux/device.h:1503:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { \ ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/printk.h:5:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/kobject.h:20, from include/linux/device.h:17, from include/linux/hdmi.h:28, from drivers/gpu//drm/i2c/tda998x_drv.c:19: >> include/linux/init.h:165:20: error: storage class specified for parameter '__initcall_tda998x_driver_init6' static initcall_t __initcall_##fn##id __used \ ^ include/linux/init.h:195:30: note: in expansion of macro '__define_initcall' #define device_initcall(fn) __define_initcall(fn, 6) ^~~~~~~~~~~~~~~~~ include/linux/init.h:200:24: note: in expansion of macro 'device_initcall' #define __initcall(fn) device_initcall(fn) ^~~~~~~~~~~~~~~ include/linux/module.h:85:24: note: in expansion of macro '__initcall' #define module_init(x) __initcall(x); ^~~~~~~~~~ include/linux/device.h:1506:1: note: in expansion of macro 'module_init' module_init(__driver##_init); \ ^~~~~~~~~~~ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/hdmi.h:28:0, from drivers/gpu//drm/i2c/tda998x_drv.c:19: >> include/linux/device.h:1503:1: error: parameter '__initcall_tda998x_driver_init6' is initialized { \ ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ include/linux/device.h:1503:1: warning: '__used__' attribute ignored [-Wattributes] { \ ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/printk.h:5:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/kobject.h:20, from include/linux/device.h:17, from include/linux/hdmi.h:28, from drivers/gpu//drm/i2c/tda998x_drv.c:19: >> include/linux/init.h:165:20: error: section attribute not allowed for '__initcall_tda998x_driver_init6' static initcall_t __initcall_##fn##id __used \ ^ include/linux/init.h:195:30: note: in expansion of macro '__define_initcall' #define device_initcall(fn) __define_initcall(fn, 6) ^~~~~~~~~~~~~~~~~ include/linux/init.h:200:24: note: in expansion of macro 'device_initcall' #define __initcall(fn) device_initcall(fn) ^~~~~~~~~~~~~~~ include/linux/module.h:85:24: note: in expansion of macro '__initcall' #define module_init(x) __initcall(x); ^~~~~~~~~~ include/linux/device.h:1506:1: note: in expansion of macro 'module_init' module_init(__driver##_init); \ ^~~~~~~~~~~ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ >> drivers/gpu//drm/i2c/tda998x_drv.c:1765:19: error: 'tda998x_driver_init' undeclared (first use in this function) module_i2c_driver(tda998x_driver); ^ include/linux/init.h:166:58: note: in definition of macro '__define_initcall' __attribute__((__section__(".initcall" #id ".init"))) = fn; ^~ include/linux/init.h:200:24: note: in expansion of macro 'device_initcall' #define __initcall(fn) device_initcall(fn) ^~~~~~~~~~~~~~~ include/linux/module.h:85:24: note: in expansion of macro '__initcall' #define module_init(x) __initcall(x); ^~~~~~~~~~ include/linux/device.h:1506:1: note: in expansion of macro 'module_init' module_init(__driver##_init); \ ^~~~~~~~~~~ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from drivers/gpu//drm/i2c/tda998x_drv.c:20:0: include/linux/module.h:85:37: error: expected declaration specifiers before ';' token #define module_init(x) __initcall(x); ^ include/linux/device.h:1506:1: note: in expansion of macro 'module_init' module_init(__driver##_init); \ ^~~~~~~~~~~ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/hdmi.h:28:0, from drivers/gpu//drm/i2c/tda998x_drv.c:19: include/linux/device.h:1506:29: error: expected declaration specifiers before ';' token module_init(__driver##_init); \ ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ include/linux/device.h:1508:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { \ ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/printk.h:5:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/kobject.h:20, from include/linux/device.h:17, from include/linux/hdmi.h:28, from drivers/gpu//drm/i2c/tda998x_drv.c:19: >> include/linux/init.h:203:20: error: storage class specified for parameter '__exitcall_tda998x_driver_exit' static exitcall_t __exitcall_##fn __exit_call = fn ^ include/linux/module.h:97:24: note: in expansion of macro '__exitcall' #define module_exit(x) __exitcall(x); ^~~~~~~~~~ include/linux/device.h:1511:1: note: in expansion of macro 'module_exit' module_exit(__driver##_exit); ^~~~~~~~~~~ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/hdmi.h:28:0, from drivers/gpu//drm/i2c/tda998x_drv.c:19: >> include/linux/device.h:1508:1: error: parameter '__exitcall_tda998x_driver_exit' is initialized { \ ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ include/linux/device.h:1508:1: warning: '__used__' attribute ignored [-Wattributes] { \ ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/printk.h:5:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/kobject.h:20, from include/linux/device.h:17, from include/linux/hdmi.h:28, from drivers/gpu//drm/i2c/tda998x_drv.c:19: >> include/linux/init.h:203:20: error: section attribute not allowed for '__exitcall_tda998x_driver_exit' static exitcall_t __exitcall_##fn __exit_call = fn ^ include/linux/module.h:97:24: note: in expansion of macro '__exitcall' #define module_exit(x) __exitcall(x); ^~~~~~~~~~ include/linux/device.h:1511:1: note: in expansion of macro 'module_exit' module_exit(__driver##_exit); ^~~~~~~~~~~ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ >> drivers/gpu//drm/i2c/tda998x_drv.c:1765:19: error: 'tda998x_driver_exit' undeclared (first use in this function) module_i2c_driver(tda998x_driver); ^ include/linux/init.h:203:50: note: in definition of macro '__exitcall' static exitcall_t __exitcall_##fn __exit_call = fn ^~ include/linux/device.h:1511:1: note: in expansion of macro 'module_exit' module_exit(__driver##_exit); ^~~~~~~~~~~ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ In file included from include/linux/hdmi.h:28:0, from drivers/gpu//drm/i2c/tda998x_drv.c:19: include/linux/device.h:1511:29: error: expected declaration specifiers before ';' token module_exit(__driver##_exit); ^ include/linux/i2c.h:780:2: note: in expansion of macro 'module_driver' module_driver(__i2c_driver, i2c_add_driver, \ ^~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:1: note: in expansion of macro 'module_i2c_driver' module_i2c_driver(tda998x_driver); ^~~~~~~~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1765:34: error: expected declaration specifiers before ';' token module_i2c_driver(tda998x_driver); ^ In file included from include/linux/module.h:18:0, from drivers/gpu//drm/i2c/tda998x_drv.c:20: include/linux/moduleparam.h:27:3: warning: empty declaration struct __UNIQUE_ID(name) {} ^ include/linux/module.h:160:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^~~~~~~~~~~~~ include/linux/module.h:204:32: note: in expansion of macro 'MODULE_INFO' #define MODULE_AUTHOR(_author) MODULE_INFO(author, _author) ^~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1767:1: note: in expansion of macro 'MODULE_AUTHOR' MODULE_AUTHOR("Rob Clark <robdclark@xxxxxxxxx"); ^~~~~~~~~~~~~ include/linux/moduleparam.h:27:3: warning: empty declaration struct __UNIQUE_ID(name) {} ^ include/linux/module.h:160:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^~~~~~~~~~~~~ include/linux/module.h:207:42: note: in expansion of macro 'MODULE_INFO' #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) ^~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1768:1: note: in expansion of macro 'MODULE_DESCRIPTION' MODULE_DESCRIPTION("NXP Semiconductors TDA998X HDMI Encoder"); ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:27:3: warning: empty declaration struct __UNIQUE_ID(name) {} ^ include/linux/module.h:160:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^~~~~~~~~~~~~ include/linux/module.h:198:34: note: in expansion of macro 'MODULE_INFO' #define MODULE_LICENSE(_license) MODULE_INFO(license, _license) ^~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1769:1: note: in expansion of macro 'MODULE_LICENSE' MODULE_LICENSE("GPL"); ^~~~~~~~~~~~~~ In file included from drivers/gpu//drm/i2c/tda998x_drv.c:29:0: include/drm/drm_of.h:33:26: error: old-style parameter declarations in prototyped function definition struct backlight_device *devm_drm_of_find_backlight(struct device *dev) ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/linux/component.h:4, from drivers/gpu//drm/i2c/tda998x_drv.c:18: include/linux/compiler-gcc.h:190:45: error: expected '{' at end of input #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^ include/linux/compiler.h:52:23: note: in definition of macro '___PASTE' #define ___PASTE(a,b) a##b ^ include/linux/compiler-gcc.h:190:29: note: in expansion of macro '__PASTE' #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^~~~~~~ include/linux/compiler.h:53:22: note: in expansion of macro '___PASTE' #define __PASTE(a,b) ___PASTE(a,b) ^~~~~~~~ include/linux/compiler-gcc.h:190:37: note: in expansion of macro '__PASTE' #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ^~~~~~~ include/linux/moduleparam.h:27:10: note: in expansion of macro '__UNIQUE_ID' struct __UNIQUE_ID(name) {} ^~~~~~~~~~~ include/linux/module.h:160:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^~~~~~~~~~~~~ include/linux/module.h:198:34: note: in expansion of macro 'MODULE_INFO' #define MODULE_LICENSE(_license) MODULE_INFO(license, _license) ^~~~~~~~~~~ drivers/gpu//drm/i2c/tda998x_drv.c:1769:1: note: in expansion of macro 'MODULE_LICENSE' MODULE_LICENSE("GPL"); .. vim +/__initcall_tda998x_driver_init6 +165 include/linux/init.h ^1da177e Linus Torvalds 2005-04-16 147 b67067f1 Nicholas Piggin 2016-08-24 148 /* b67067f1 Nicholas Piggin 2016-08-24 149 * initcalls are now grouped by functionality into separate ^1da177e Linus Torvalds 2005-04-16 150 * subsections. Ordering inside the subsections is determined ^1da177e Linus Torvalds 2005-04-16 151 * by link order. ^1da177e Linus Torvalds 2005-04-16 152 * For backwards compatibility, initcall() puts the call in ^1da177e Linus Torvalds 2005-04-16 153 * the device init subsection. 735a7ffb Andrew Morton 2006-10-27 154 * 735a7ffb Andrew Morton 2006-10-27 155 * The `id' arg to __define_initcall() is needed so that multiple initcalls 735a7ffb Andrew Morton 2006-10-27 156 * can point at the same handler without causing duplicate-symbol build errors. b67067f1 Nicholas Piggin 2016-08-24 157 * b67067f1 Nicholas Piggin 2016-08-24 158 * Initcalls are run by placing pointers in initcall sections that the b67067f1 Nicholas Piggin 2016-08-24 159 * kernel iterates at runtime. The linker can do dead code / data elimination b67067f1 Nicholas Piggin 2016-08-24 160 * and remove that completely, so the initcall sections have to be marked b67067f1 Nicholas Piggin 2016-08-24 161 * as KEEP() in the linker script. ^1da177e Linus Torvalds 2005-04-16 162 */ ^1da177e Linus Torvalds 2005-04-16 163 7929d407 Matthew Leach 2012-12-17 164 #define __define_initcall(fn, id) \ 3ff6eecc Adrian Bunk 2008-01-24 @165 static initcall_t __initcall_##fn##id __used \ b67067f1 Nicholas Piggin 2016-08-24 166 __attribute__((__section__(".initcall" #id ".init"))) = fn; ^1da177e Linus Torvalds 2005-04-16 167 b3438f82 Linus Torvalds 2006-11-20 168 /* c2147a50 Eduard - Gabriel Munteanu 2008-07-25 169 * Early initcalls run before initializing SMP. c2147a50 Eduard - Gabriel Munteanu 2008-07-25 170 * c2147a50 Eduard - Gabriel Munteanu 2008-07-25 171 * Only for built-in code, not modules. c2147a50 Eduard - Gabriel Munteanu 2008-07-25 172 */ 7929d407 Matthew Leach 2012-12-17 173 #define early_initcall(fn) __define_initcall(fn, early) c2147a50 Eduard - Gabriel Munteanu 2008-07-25 174 c2147a50 Eduard - Gabriel Munteanu 2008-07-25 175 /* b3438f82 Linus Torvalds 2006-11-20 176 * A "pure" initcall has no dependencies on anything else, and purely b3438f82 Linus Torvalds 2006-11-20 177 * initializes variables that couldn't be statically initialized. b3438f82 Linus Torvalds 2006-11-20 178 * b3438f82 Linus Torvalds 2006-11-20 179 * This only exists for built-in code, not for modules. 96263d28 Jim Cromie 2012-06-14 180 * Keep main.c:initcall_level_names[] in sync. b3438f82 Linus Torvalds 2006-11-20 181 */ 7929d407 Matthew Leach 2012-12-17 182 #define pure_initcall(fn) __define_initcall(fn, 0) 7929d407 Matthew Leach 2012-12-17 183 7929d407 Matthew Leach 2012-12-17 184 #define core_initcall(fn) __define_initcall(fn, 1) 7929d407 Matthew Leach 2012-12-17 185 #define core_initcall_sync(fn) __define_initcall(fn, 1s) 7929d407 Matthew Leach 2012-12-17 186 #define postcore_initcall(fn) __define_initcall(fn, 2) 7929d407 Matthew Leach 2012-12-17 187 #define postcore_initcall_sync(fn) __define_initcall(fn, 2s) 7929d407 Matthew Leach 2012-12-17 188 #define arch_initcall(fn) __define_initcall(fn, 3) 7929d407 Matthew Leach 2012-12-17 189 #define arch_initcall_sync(fn) __define_initcall(fn, 3s) 7929d407 Matthew Leach 2012-12-17 190 #define subsys_initcall(fn) __define_initcall(fn, 4) 7929d407 Matthew Leach 2012-12-17 191 #define subsys_initcall_sync(fn) __define_initcall(fn, 4s) 7929d407 Matthew Leach 2012-12-17 192 #define fs_initcall(fn) __define_initcall(fn, 5) 7929d407 Matthew Leach 2012-12-17 193 #define fs_initcall_sync(fn) __define_initcall(fn, 5s) 7929d407 Matthew Leach 2012-12-17 194 #define rootfs_initcall(fn) __define_initcall(fn, rootfs) 7929d407 Matthew Leach 2012-12-17 195 #define device_initcall(fn) __define_initcall(fn, 6) 7929d407 Matthew Leach 2012-12-17 196 #define device_initcall_sync(fn) __define_initcall(fn, 6s) 7929d407 Matthew Leach 2012-12-17 197 #define late_initcall(fn) __define_initcall(fn, 7) 7929d407 Matthew Leach 2012-12-17 198 #define late_initcall_sync(fn) __define_initcall(fn, 7s) ^1da177e Linus Torvalds 2005-04-16 199 ^1da177e Linus Torvalds 2005-04-16 200 #define __initcall(fn) device_initcall(fn) ^1da177e Linus Torvalds 2005-04-16 201 ^1da177e Linus Torvalds 2005-04-16 202 #define __exitcall(fn) \ ^1da177e Linus Torvalds 2005-04-16 @203 static exitcall_t __exitcall_##fn __exit_call = fn ^1da177e Linus Torvalds 2005-04-16 204 :::::: The code at line 165 was first introduced by commit :::::: 3ff6eecca4e5c49a5d1dd8b58ea0e20102ce08f0 remove __attribute_used__ :::::: TO: Adrian Bunk <bunk@xxxxxxxxxx> :::::: CC: Sam Ravnborg <sam@xxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel