tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-cleanup-irqchip-threaded head: bf5b241314ea9d338b03df6f54b7c02113ab0f87 commit: bf5b241314ea9d338b03df6f54b7c02113ab0f87 [1/1] gpio: Handle generic and threaded IRQs on gpio irqchips config: microblaze-nommu_defconfig (attached as .config) compiler: microblaze-linux-gcc (GCC) 7.5.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 bf5b241314ea9d338b03df6f54b7c02113ab0f87 # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=microblaze If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All error/warnings (new ones prefixed by >>): In file included from include/asm-generic/gpio.h:13:0, from include/linux/gpio.h:62, from drivers//gpio/gpiolib.c:13: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from include/linux/gpio.h:62:0, from drivers//gpio/gpiolib.c:13: include/asm-generic/gpio.h: In function 'gpio_to_chip': >> include/asm-generic/gpio.h:61:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~ gpio_to_chip >> include/asm-generic/gpio.h:61:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//gpio/gpiolib.c:17:0: include/linux/gpio/driver.h: At top level: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from drivers//gpio/gpiolib.h:12:0, from drivers//gpio/gpiolib.c:31: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H drivers//gpio/gpiolib.c: In function 'gpiochip_get_desc': >> drivers//gpio/gpiolib.c:145:33: error: dereferencing pointer to incomplete type 'struct gpio_chip' struct gpio_device *gdev = chip->gpiodev; ^~ drivers//gpio/gpiolib.c: At top level: >> drivers//gpio/gpiolib.c:174:19: error: conflicting types for 'gpiod_to_chip' struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc) ^~~~~~~~~~~~~ In file included from include/linux/gpio.h:62:0, from drivers//gpio/gpiolib.c:13: include/asm-generic/gpio.h:61:9: note: previous implicit declaration of 'gpiod_to_chip' was here return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~ In file included from include/asm-generic/bitops.h:14:0, from ./arch/microblaze/include/generated/asm/bitops.h:1, from include/linux/bitops.h:29, from include/linux/bitmap.h:8, from drivers//gpio/gpiolib.c:2: drivers//gpio/gpiolib.c: In function 'gpiochip_line_is_valid': >> drivers//gpio/gpiolib.c:413:22: error: dereferencing pointer to incomplete type 'const struct gpio_chip' if (likely(!gpiochip->valid_mask)) ^ include/linux/compiler.h:77:40: note: in definition of macro 'likely' # define likely(x) __builtin_expect(!!(x), 1) ^ drivers//gpio/gpiolib.c: In function 'gpiochip_add_data_with_key': >> drivers//gpio/gpiolib.c:1571:2: error: implicit declaration of function 'gpiochip_remove_pin_ranges'; did you mean 'gpiochip_add_pin_ranges'? [-Werror=implicit-function-declaration] gpiochip_remove_pin_ranges(chip); ^~~~~~~~~~~~~~~~~~~~~~~~~~ gpiochip_add_pin_ranges drivers//gpio/gpiolib.c: In function 'devm_gpiochip_add_data': >> drivers//gpio/gpiolib.c:1692:8: error: implicit declaration of function 'gpiochip_add_data'; did you mean 'gpiochip_get_data'? [-Werror=implicit-function-declaration] ret = gpiochip_add_data(chip, data); ^~~~~~~~~~~~~~~~~ gpiochip_get_data drivers//gpio/gpiolib.c: In function 'gpiochip_line_is_valid': >> drivers//gpio/gpiolib.c:416:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_get_data': drivers//gpio/gpiolib.c:1603:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_generic_request': drivers//gpio/gpiolib.c:2610:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_generic_config': drivers//gpio/gpiolib.c:2634:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpio_set_config': drivers//gpio/gpiolib.c:3045:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiod_cansleep': drivers//gpio/gpiolib.c:3912:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_line_is_irq': drivers//gpio/gpiolib.c:4076:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_line_is_open_drain': drivers//gpio/gpiolib.c:4109:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_line_is_open_source': drivers//gpio/gpiolib.c:4118:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_line_is_persistent': drivers//gpio/gpiolib.c:4127:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers//gpio/gpiolib.c: In function 'gpiochip_match_name': drivers//gpio/gpiolib.c:1742:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cc1: some warnings being treated as errors -- In file included from include/asm-generic/gpio.h:13:0, from include/linux/gpio.h:62, from drivers//gpio/gpiolib-devres.c:11: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from include/linux/gpio.h:62:0, from drivers//gpio/gpiolib-devres.c:11: include/asm-generic/gpio.h: In function 'gpio_to_chip': >> include/asm-generic/gpio.h:61:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~ gpio_to_chip >> include/asm-generic/gpio.h:61:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//gpio/gpiolib.h:12:0, from drivers//gpio/gpiolib-devres.c:16: include/linux/gpio/driver.h: At top level: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H cc1: some warnings being treated as errors -- In file included from drivers//gpio/gpiolib-devprop.c:12:0: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from drivers//gpio/gpiolib.h:12:0, from drivers//gpio/gpiolib-devprop.c:15: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H drivers//gpio/gpiolib-devprop.c: In function 'devprop_gpiochip_set_names': >> drivers//gpio/gpiolib-devprop.c:30:33: error: dereferencing pointer to incomplete type 'struct gpio_chip' struct gpio_device *gdev = chip->gpiodev; ^~ -- In file included from drivers//gpio/gpiolib-sysfs.c:7:0: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from drivers//gpio/gpiolib.h:12:0, from drivers//gpio/gpiolib-sysfs.c:13: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H drivers//gpio/gpiolib-sysfs.c: In function 'gpio_sysfs_request_irq': >> drivers//gpio/gpiolib-sysfs.c:195:8: error: implicit declaration of function 'gpiochip_lock_as_irq'; did you mean 'spin_lock_irq'? [-Werror=implicit-function-declaration] ret = gpiochip_lock_as_irq(desc->gdev->chip, gpio_chip_hwgpio(desc)); ^~~~~~~~~~~~~~~~~~~~ spin_lock_irq >> drivers//gpio/gpiolib-sysfs.c:209:2: error: implicit declaration of function 'gpiochip_unlock_as_irq'; did you mean 'spin_unlock_irq'? [-Werror=implicit-function-declaration] gpiochip_unlock_as_irq(desc->gdev->chip, gpio_chip_hwgpio(desc)); ^~~~~~~~~~~~~~~~~~~~~~ spin_unlock_irq drivers//gpio/gpiolib-sysfs.c: In function 'base_show': >> drivers//gpio/gpiolib-sysfs.c:417:34: error: dereferencing pointer to incomplete type 'const struct gpio_chip' return sprintf(buf, "%d\n", chip->base); ^~ drivers//gpio/gpiolib-sysfs.c: In function 'gpiod_export': >> drivers//gpio/gpiolib-sysfs.c:620:10: error: dereferencing pointer to incomplete type 'struct gpio_chip' if (chip->direction_input && chip->direction_output) ^~ cc1: some warnings being treated as errors -- In file included from drivers//gpio/gpiolib-legacy.c:3:0: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from include/asm-generic/gpio.h:13:0, from include/linux/gpio.h:62, from drivers//gpio/gpiolib-legacy.c:5: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from include/linux/gpio.h:62:0, from drivers//gpio/gpiolib-legacy.c:5: include/asm-generic/gpio.h: In function 'gpio_to_chip': >> include/asm-generic/gpio.h:61:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~ gpio_to_chip >> include/asm-generic/gpio.h:61:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//gpio/gpiolib.h:12:0, from drivers//gpio/gpiolib-legacy.c:7: include/linux/gpio/driver.h: At top level: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H cc1: some warnings being treated as errors -- In file included from drivers//gpio/gpio-xilinx.c:15:0: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H >> drivers//gpio/gpio-xilinx.c:43:19: error: field 'gc' has incomplete type struct gpio_chip gc; ^~ drivers//gpio/gpio-xilinx.c: In function 'xgpio_get': >> drivers//gpio/gpio-xilinx.c:88:32: error: implicit declaration of function 'gpiochip_get_data' [-Werror=implicit-function-declaration] struct xgpio_instance *chip = gpiochip_get_data(gc); ^~~~~~~~~~~~~~~~~ >> drivers//gpio/gpio-xilinx.c:88:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion] drivers//gpio/gpio-xilinx.c: In function 'xgpio_set': drivers//gpio/gpio-xilinx.c:109:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion] struct xgpio_instance *chip = gpiochip_get_data(gc); ^~~~~~~~~~~~~~~~~ drivers//gpio/gpio-xilinx.c: In function 'xgpio_set_multiple': drivers//gpio/gpio-xilinx.c:140:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion] struct xgpio_instance *chip = gpiochip_get_data(gc); ^~~~~~~~~~~~~~~~~ >> drivers//gpio/gpio-xilinx.c:147:20: error: dereferencing pointer to incomplete type 'struct gpio_chip' for (i = 0; i < gc->ngpio; i++) { ^~ drivers//gpio/gpio-xilinx.c: In function 'xgpio_dir_in': drivers//gpio/gpio-xilinx.c:185:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion] struct xgpio_instance *chip = gpiochip_get_data(gc); ^~~~~~~~~~~~~~~~~ drivers//gpio/gpio-xilinx.c: In function 'xgpio_dir_out': drivers//gpio/gpio-xilinx.c:216:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion] struct xgpio_instance *chip = gpiochip_get_data(gc); ^~~~~~~~~~~~~~~~~ drivers//gpio/gpio-xilinx.c: In function 'xgpio_probe': >> drivers//gpio/gpio-xilinx.c:338:11: error: implicit declaration of function 'devm_gpiochip_add_data'; did you mean 'irq_get_chip_data'? [-Werror=implicit-function-declaration] status = devm_gpiochip_add_data(&pdev->dev, &chip->gc, chip); ^~~~~~~~~~~~~~~~~~~~~~ irq_get_chip_data cc1: some warnings being treated as errors -- In file included from include/asm-generic/gpio.h:13:0, from include/linux/gpio.h:62, from include/linux/of_gpio.h:16, from drivers//gpio/gpiolib-of.c:18: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H In file included from include/linux/gpio.h:62:0, from include/linux/of_gpio.h:16, from drivers//gpio/gpiolib-of.c:18: include/asm-generic/gpio.h: In function 'gpio_to_chip': >> include/asm-generic/gpio.h:61:9: error: implicit declaration of function 'gpiod_to_chip'; did you mean 'gpio_to_chip'? [-Werror=implicit-function-declaration] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~ gpio_to_chip >> include/asm-generic/gpio.h:61:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return gpiod_to_chip(gpio_to_desc(gpio)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//gpio/gpiolib-of.c:18:0: include/linux/of_gpio.h: At top level: >> include/linux/of_gpio.h:41:19: error: field 'gc' has incomplete type struct gpio_chip gc; ^~ In file included from include/linux/dev_printk.h:14:0, from include/linux/device.h:15, from drivers//gpio/gpiolib-of.c:10: include/linux/of_gpio.h: In function 'to_of_mm_gpio_chip': >> include/linux/kernel.h:987:32: error: dereferencing pointer to incomplete type 'struct gpio_chip' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~ include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:987:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:987:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ >> include/linux/of_gpio.h:48:9: note: in expansion of macro 'container_of' return container_of(gc, struct of_mm_gpio_chip, gc); ^~~~~~~~~~~~ In file included from drivers//gpio/gpiolib.h:12:0, from drivers//gpio/gpiolib-of.c:23: include/linux/gpio/driver.h: At top level: >> include/linux/gpio/driver.h:2:0: error: unterminated #ifndef #ifndef __LINUX_GPIO_DRIVER_H drivers//gpio/gpiolib-of.c: In function 'of_find_gpiochip_by_xlate': >> drivers//gpio/gpiolib-of.c:92:9: error: implicit declaration of function 'gpiochip_find'; did you mean 'of_gpiochip_add'? [-Werror=implicit-function-declaration] return gpiochip_find(gpiospec, of_gpiochip_match_node_and_xlate); ^~~~~~~~~~~~~ of_gpiochip_add >> drivers//gpio/gpiolib-of.c:92:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return gpiochip_find(gpiospec, of_gpiochip_match_node_and_xlate); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers//gpio/gpiolib-of.c: In function 'of_gpio_need_valid_mask': >> drivers//gpio/gpiolib-of.c:121:29: error: dereferencing pointer to incomplete type 'const struct gpio_chip' struct device_node *np = gc->of_node; ^~ drivers//gpio/gpiolib-of.c: In function 'of_mm_gpiochip_add_data': >> drivers//gpio/gpiolib-of.c:725:8: error: implicit declaration of function 'gpiochip_add_data'; did you mean 'gpiochip_get_desc'? [-Werror=implicit-function-declaration] ret = gpiochip_add_data(gc, data); ^~~~~~~~~~~~~~~~~ gpiochip_get_desc drivers//gpio/gpiolib-of.c: In function 'of_mm_gpiochip_remove': >> drivers//gpio/gpiolib-of.c:751:2: error: implicit declaration of function 'gpiochip_remove'; did you mean 'of_gpiochip_remove'? [-Werror=implicit-function-declaration] gpiochip_remove(gc); ^~~~~~~~~~~~~~~ of_gpiochip_remove drivers//gpio/gpiolib-of.c: In function 'of_gpiochip_add': >> drivers//gpio/gpiolib-of.c:888:3: error: implicit declaration of function 'devprop_gpiochip_set_names'; did you mean 'of_gpiochip_scan_gpios'? [-Werror=implicit-function-declaration] devprop_gpiochip_set_names(chip, ^~~~~~~~~~~~~~~~~~~~~~~~~~ of_gpiochip_scan_gpios In file included from drivers//gpio/gpiolib-of.c:16:0: >> include/linux/of.h:175:28: error: invalid type argument of '->' (have 'int') &__of_fwnode_handle_node->fwnode : NULL; \ ^ >> drivers//gpio/gpiolib-of.c:889:9: note: in expansion of macro 'of_fwnode_handle' of_fwnode_handle(chip->of_node)); ^~~~~~~~~~~~~~~~ drivers//gpio/gpiolib-of.c: In function 'of_gpiochip_match_node_and_xlate': >> drivers//gpio/gpiolib-of.c:87:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cc1: some warnings being treated as errors .. vim +2 include/linux/gpio/driver.h 79a9becda8940d Alexandre Courbot 2013-10-17 @2 #ifndef __LINUX_GPIO_DRIVER_H 79a9becda8940d Alexandre Courbot 2013-10-17 3 #define __LINUX_GPIO_DRIVER_H 79a9becda8940d Alexandre Courbot 2013-10-17 4 :::::: The code at line 2 was first introduced by commit :::::: 79a9becda8940deb2274b5aa4577c86d52ee7ecb gpiolib: export descriptor-based GPIO interface :::::: TO: Alexandre Courbot <acourbot@xxxxxxxxxx> :::::: CC: Linus Walleij <linus.walleij@xxxxxxxxxx> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip