Hi Hans, [auto build test ERROR on ljones-mfd/for-mfd-next] [also build test ERROR on v4.11-rc4 next-20170327] [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/Hans-de-Goede/mfd-Add-Cherry-Trail-Whiskey-Cove-PMIC-driver/20170327-235905 base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next config: ia64-allmodconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 6.2.0 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=ia64 All error/warnings (new ones prefixed by >>): >> drivers//clocksource/timer-sun5i.c:52:21: error: field 'clksrc' has incomplete type struct clocksource clksrc; ^~~~~~ >> drivers//clocksource/timer-sun5i.c:60:28: error: field 'clkevt' has incomplete type struct clock_event_device clkevt; ^~~~~~ In file included from include/linux/clk.h:16:0, from drivers//clocksource/timer-sun5i.c:13: drivers//clocksource/timer-sun5i.c: In function 'sun5i_clkevt_shutdown': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ >> drivers//clocksource/timer-sun5i.c:108:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ >> drivers//clocksource/timer-sun5i.c:108:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c: In function 'sun5i_clkevt_set_oneshot': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c:116:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c:116:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c: In function 'sun5i_clkevt_set_periodic': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c:125:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c:125:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c: In function 'sun5i_clkevt_next_event': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c:136:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c:136:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c: In function 'sun5i_clksrc_read': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/timer-sun5i.c:56:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clksrc, clksrc) ^~~~~~~~~~~~ >> drivers//clocksource/timer-sun5i.c:157:34: note: in expansion of macro 'to_sun5i_timer_clksrc' struct sun5i_timer_clksrc *cs = to_sun5i_timer_clksrc(clksrc); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'cs') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/timer-sun5i.c:56:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clksrc, clksrc) ^~~~~~~~~~~~ >> drivers//clocksource/timer-sun5i.c:157:34: note: in expansion of macro 'to_sun5i_timer_clksrc' struct sun5i_timer_clksrc *cs = to_sun5i_timer_clksrc(clksrc); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/timer-sun5i.c: In function 'sun5i_rate_cb_clksrc': >> drivers//clocksource/timer-sun5i.c:171:3: error: implicit declaration of function 'clocksource_unregister' [-Werror=implicit-function-declaration] clocksource_unregister(&cs->clksrc); ^~~~~~~~~~~~~~~~~~~~~~ -- >> drivers//clocksource/cadence_ttc_timer.c:92:21: error: field 'cs' has incomplete type struct clocksource cs; ^~ >> drivers//clocksource/cadence_ttc_timer.c:100:28: error: field 'ce' has incomplete type struct clock_event_device ce; ^~ In file included from include/linux/clk.h:16:0, from drivers//clocksource/cadence_ttc_timer.c:18: drivers//clocksource/cadence_ttc_timer.c: In function '__ttc_clocksource_read': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/cadence_ttc_timer.c:96:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clocksource, cs) ^~~~~~~~~~~~ >> drivers//clocksource/cadence_ttc_timer.c:163:29: note: in expansion of macro 'to_ttc_timer_clksrc' struct ttc_timer *timer = &to_ttc_timer_clksrc(cs)->ttc; ^~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'timer') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ >> drivers//clocksource/cadence_ttc_timer.c:96:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clocksource, cs) ^~~~~~~~~~~~ >> drivers//clocksource/cadence_ttc_timer.c:163:29: note: in expansion of macro 'to_ttc_timer_clksrc' struct ttc_timer *timer = &to_ttc_timer_clksrc(cs)->ttc; ^~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: In function 'ttc_set_next_event': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ >> drivers//clocksource/cadence_ttc_timer.c:185:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ttce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ >> drivers//clocksource/cadence_ttc_timer.c:185:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: In function 'ttc_shutdown': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c:199:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ttce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c:199:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: In function 'ttc_set_periodic': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c:211:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ttce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c:211:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: In function 'ttc_resume': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c:221:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ttce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers//clocksource/cadence_ttc_timer.c:104:3: note: in expansion of macro 'container_of' container_of(x, struct ttc_timer_clockevent, ce) ^~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c:221:38: note: in expansion of macro 'to_ttc_timer_clkevent' struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt); ^~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: In function 'ttc_setup_clocksource': >> drivers//clocksource/cadence_ttc_timer.c:358:19: error: implicit declaration of function 'CLOCKSOURCE_MASK' [-Werror=implicit-function-declaration] ttccs->cs.mask = CLOCKSOURCE_MASK(timer_width); ^~~~~~~~~~~~~~~~ >> drivers//clocksource/cadence_ttc_timer.c:359:20: error: 'CLOCK_SOURCE_IS_CONTINUOUS' undeclared (first use in this function) ttccs->cs.flags = CLOCK_SOURCE_IS_CONTINUOUS; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c:359:20: note: each undeclared identifier is reported only once for each function it appears in >> drivers//clocksource/cadence_ttc_timer.c:372:8: error: implicit declaration of function 'clocksource_register_hz' [-Werror=implicit-function-declaration] err = clocksource_register_hz(&ttccs->cs, ttccs->ttc.freq / PRESCALE); ^~~~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: In function 'ttc_rate_change_clockevent_cb': >> drivers//clocksource/cadence_ttc_timer.c:398:3: error: implicit declaration of function 'clockevents_update_freq' [-Werror=implicit-function-declaration] clockevents_update_freq(&ttcce->ce, ndata->new_rate / PRESCALE); ^~~~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: In function 'ttc_setup_clockevent': >> drivers//clocksource/cadence_ttc_timer.c:441:23: error: 'CLOCK_EVT_FEAT_PERIODIC' undeclared (first use in this function) ttcce->ce.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; ^~~~~~~~~~~~~~~~~~~~~~~ >> drivers//clocksource/cadence_ttc_timer.c:441:49: error: 'CLOCK_EVT_FEAT_ONESHOT' undeclared (first use in this function) ttcce->ce.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; ^~~~~~~~~~~~~~~~~~~~~~ >> drivers//clocksource/cadence_ttc_timer.c:468:2: error: implicit declaration of function 'clockevents_config_and_register' [-Werror=implicit-function-declaration] clockevents_config_and_register(&ttcce->ce, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers//clocksource/cadence_ttc_timer.c: At top level: -- drivers/clocksource/timer-sun5i.c:52:21: error: field 'clksrc' has incomplete type struct clocksource clksrc; ^~~~~~ drivers/clocksource/timer-sun5i.c:60:28: error: field 'clkevt' has incomplete type struct clock_event_device clkevt; ^~~~~~ In file included from include/linux/clk.h:16:0, from drivers/clocksource/timer-sun5i.c:13: drivers/clocksource/timer-sun5i.c: In function 'sun5i_clkevt_shutdown': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:108:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:108:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: In function 'sun5i_clkevt_set_oneshot': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:116:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:116:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: In function 'sun5i_clkevt_set_periodic': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:125:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:125:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: In function 'sun5i_clkevt_next_event': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:136:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'ce') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:64:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clkevt, clkevt) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:136:34: note: in expansion of macro 'to_sun5i_timer_clkevt' struct sun5i_timer_clkevt *ce = to_sun5i_timer_clkevt(clkevt); ^~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: In function 'sun5i_clksrc_read': >> include/linux/kernel.h:852:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:56:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clksrc, clksrc) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:157:34: note: in expansion of macro 'to_sun5i_timer_clksrc' struct sun5i_timer_clksrc *cs = to_sun5i_timer_clksrc(clksrc); ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:852:48: note: (near initialization for 'cs') const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ drivers/clocksource/timer-sun5i.c:56:2: note: in expansion of macro 'container_of' container_of(x, struct sun5i_timer_clksrc, clksrc) ^~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:157:34: note: in expansion of macro 'to_sun5i_timer_clksrc' struct sun5i_timer_clksrc *cs = to_sun5i_timer_clksrc(clksrc); ^~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: In function 'sun5i_rate_cb_clksrc': drivers/clocksource/timer-sun5i.c:171:3: error: implicit declaration of function 'clocksource_unregister' [-Werror=implicit-function-declaration] clocksource_unregister(&cs->clksrc); ^~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:175:3: error: implicit declaration of function 'clocksource_register_hz' [-Werror=implicit-function-declaration] clocksource_register_hz(&cs->clksrc, ndata->new_rate); ^~~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: In function 'sun5i_setup_clocksource': drivers/clocksource/timer-sun5i.c:223:20: error: implicit declaration of function 'CLOCKSOURCE_MASK' [-Werror=implicit-function-declaration] cs->clksrc.mask = CLOCKSOURCE_MASK(32); ^~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:224:21: error: 'CLOCK_SOURCE_IS_CONTINUOUS' undeclared (first use in this function) cs->clksrc.flags = CLOCK_SOURCE_IS_CONTINUOUS; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:224:21: note: each undeclared identifier is reported only once for each function it appears in drivers/clocksource/timer-sun5i.c: In function 'sun5i_rate_cb_clkevt': drivers/clocksource/timer-sun5i.c:251:3: error: implicit declaration of function 'clockevents_update_freq' [-Werror=implicit-function-declaration] clockevents_update_freq(&ce->clkevt, ndata->new_rate); ^~~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: In function 'sun5i_setup_clockevent': drivers/clocksource/timer-sun5i.c:291:24: error: 'CLOCK_EVT_FEAT_PERIODIC' undeclared (first use in this function) ce->clkevt.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; ^~~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:291:50: error: 'CLOCK_EVT_FEAT_ONESHOT' undeclared (first use in this function) ce->clkevt.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; ^~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:305:2: error: implicit declaration of function 'clockevents_config_and_register' [-Werror=implicit-function-declaration] clockevents_config_and_register(&ce->clkevt, rate, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c: At top level: drivers/clocksource/timer-sun5i.c:361:35: error: expected ')' before string constant CLOCKSOURCE_OF_DECLARE(sun5i_a13, "allwinner,sun5i-a13-hstimer", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:363:35: error: expected ')' before string constant CLOCKSOURCE_OF_DECLARE(sun7i_a20, "allwinner,sun7i-a20-hstimer", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/clocksource/timer-sun5i.c:326:19: warning: 'sun5i_timer_init' defined but not used [-Wunused-function] static int __init sun5i_timer_init(struct device_node *node) ^~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors .. vim +852 include/linux/kernel.h ^1da177e Linus Torvalds 2005-04-16 846 * @ptr: the pointer to the member. ^1da177e Linus Torvalds 2005-04-16 847 * @type: the type of the container struct this is embedded in. ^1da177e Linus Torvalds 2005-04-16 848 * @member: the name of the member within the struct. ^1da177e Linus Torvalds 2005-04-16 849 * ^1da177e Linus Torvalds 2005-04-16 850 */ ^1da177e Linus Torvalds 2005-04-16 851 #define container_of(ptr, type, member) ({ \ ^1da177e Linus Torvalds 2005-04-16 @852 const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^1da177e Linus Torvalds 2005-04-16 853 (type *)( (char *)__mptr - offsetof(type,member) );}) ^1da177e Linus Torvalds 2005-04-16 854 b9d4f426 Arnaud Lacombe 2011-07-25 855 /* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */ :::::: The code at line 852 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation