Hi Shreeya, Thank you for the patch! Yet something to improve: [auto build test ERROR on linusw-gpio/for-next] [also build test ERROR on v5.17-rc8 next-20220315] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Shreeya-Patel/gpio-Restrict-usage-of-gc-irq-members-before-initialization/20220315-183950 base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next config: arm-palmz72_defconfig (https://download.01.org/0day-ci/archive/20220316/202203160247.JiwK1pqP-lkp@xxxxxxxxx/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a6b2f50fb47da3baeee10b1906da6e30ac5d26ec) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/0day-ci/linux/commit/9f566a088a6f5fcb8830b07020294835072d516c git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Shreeya-Patel/gpio-Restrict-usage-of-gc-irq-members-before-initialization/20220315-183950 git checkout 9f566a088a6f5fcb8830b07020294835072d516c # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/gpio/gpiolib.c:3068:24: error: no member named 'irq' in 'struct gpio_chip' if (gc->to_irq && gc->irq.gc_irq_initialized) { ~~ ^ 1 error generated. vim +3068 drivers/gpio/gpiolib.c 3045 3046 /** 3047 * gpiod_to_irq() - return the IRQ corresponding to a GPIO 3048 * @desc: gpio whose IRQ will be returned (already requested) 3049 * 3050 * Return the IRQ corresponding to the passed GPIO, or an error code in case of 3051 * error. 3052 */ 3053 int gpiod_to_irq(const struct gpio_desc *desc) 3054 { 3055 struct gpio_chip *gc; 3056 int offset; 3057 3058 /* 3059 * Cannot VALIDATE_DESC() here as gpiod_to_irq() consumer semantics 3060 * requires this function to not return zero on an invalid descriptor 3061 * but rather a negative error number. 3062 */ 3063 if (!desc || IS_ERR(desc) || !desc->gdev || !desc->gdev->chip) 3064 return -EINVAL; 3065 3066 gc = desc->gdev->chip; 3067 offset = gpio_chip_hwgpio(desc); > 3068 if (gc->to_irq && gc->irq.gc_irq_initialized) { 3069 int retirq = gc->to_irq(gc, offset); 3070 3071 /* Zero means NO_IRQ */ 3072 if (!retirq) 3073 return -ENXIO; 3074 3075 return retirq; 3076 } 3077 return -ENXIO; 3078 } 3079 EXPORT_SYMBOL_GPL(gpiod_to_irq); 3080 --- 0-DAY CI Kernel Test Service https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx