Hi Matthew, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on wsa/i2c/for-next] [also build test WARNING on v5.7-rc6 next-20200522] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Matthew-Blecker/i2c-Add-i2c-pseudo-driver-for-userspace-I2C-adapters/20200521-083201 base: https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-next config: x86_64-randconfig-r012-20200524 (attached as .config) compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010 reproduce (this is a W=1 build): # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All warnings (new ones prefixed by >>, old ones prefixed by <<): drivers/i2c/i2c-pseudo.c: In function 'vanprintf': >> drivers/i2c/i2c-pseudo.c:767:2: warning: function might be possible candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] ret = vsnprintf(NULL, 0, fmt, ap); ^ drivers/i2c/i2c-pseudo.c:782:2: warning: function might be possible candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] ret = vsnprintf(buf, buf_size, fmt, args1); ^ drivers/i2c/i2c-pseudo.c: In function 'i2cp_cmd_set_timeout_cmd_completer': drivers/i2c/i2c-pseudo.c:1838:27: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] if (cmd_data->timeout_ms < I2CP_TIMEOUT_MS_MIN || ^ drivers/i2c/i2c-pseudo.c: In function 'i2cp_init': drivers/i2c/i2c-pseudo.c:3130:17: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] if (i2cp_limit < I2CP_ADAPTERS_MIN || i2cp_limit > I2CP_ADAPTERS_MAX) { ^ vim +/gnu_printf +767 drivers/i2c/i2c-pseudo.c 756 757 /* vanprintf - See anprintf() documentation. */ 758 static ssize_t vanprintf(char **out, ssize_t max_size, gfp_t gfp, 759 const char *fmt, va_list ap) 760 { 761 int ret; 762 ssize_t buf_size; 763 char *buf = NULL; 764 va_list args1; 765 766 va_copy(args1, ap); > 767 ret = vsnprintf(NULL, 0, fmt, ap); 768 if (ret < 0) 769 goto fail_before_args1; 770 if (max_size >= 0 && ret > max_size) { 771 ret = -ERANGE; 772 goto fail_before_args1; 773 } 774 775 buf_size = ret + 1; 776 buf = kmalloc_track_caller(buf_size, gfp); 777 if (buf == NULL) { 778 ret = -ENOMEM; 779 goto fail_before_args1; 780 } 781 782 ret = vsnprintf(buf, buf_size, fmt, args1); 783 va_end(args1); 784 if (ret < 0) 785 goto fail_after_args1; 786 if (ret + 1 != buf_size) { 787 ret = -ENOTRECOVERABLE; 788 goto fail_after_args1; 789 } 790 791 *out = buf; 792 return ret; 793 794 fail_before_args1: 795 va_end(args1); 796 fail_after_args1: 797 kfree(buf); 798 if (ret >= 0) 799 ret = -ENOTRECOVERABLE; 800 return ret; 801 } 802 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org