Hi Khadija, On Tue, Mar 14, 2023 at 07:08:31PM +0500, Khadija Kamran wrote: > On Tue, Mar 14, 2023 at 11:45:51AM +0800, kernel test robot wrote: > > Hi Khadija, > > > > Thank you for the patch! Perhaps something to improve: > > > > [auto build test WARNING on staging/staging-testing] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Khadija-Kamran/staging-axis-fifo-initialize-timeouts-in-probe-only/20230314-020827 > > patch link: https://lore.kernel.org/r/ZA9mThZ7NyRrQAMX%40khadija-virtual-machine > > patch subject: [PATCH] staging: axis-fifo: initialize timeouts in probe only > > config: arm64-randconfig-r012-20230313 (https://download.01.org/0day-ci/archive/20230314/202303141159.6wN9HNP9-lkp@xxxxxxxxx/config) > > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7) > > 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 arm64 cross compiling tool for clang build > > # apt-get install binutils-aarch64-linux-gnu > > # https://github.com/intel-lab-lkp/linux/commit/9d186f6c9f9bf467b48da3e28b0e9aa31fc3faf3 > > git remote add linux-review https://github.com/intel-lab-lkp/linux > > git fetch --no-tags linux-review Khadija-Kamran/staging-axis-fifo-initialize-timeouts-in-probe-only/20230314-020827 > > git checkout 9d186f6c9f9bf467b48da3e28b0e9aa31fc3faf3 > > # save the config file > > mkdir build_dir && cp config build_dir/.config > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 olddefconfig > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/staging/axis-fifo/ > > > > If you fix the issue, kindly add following tag where applicable > > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > > | Link: https://lore.kernel.org/oe-kbuild-all/202303141159.6wN9HNP9-lkp@xxxxxxxxx/ > > > > All warnings (new ones prefixed by >>): > > > > >> drivers/staging/axis-fifo/axis-fifo.c:817:18: warning: implicit conversion from 'long' to 'int' changes value from 9223372036854775807 to -1 [-Wconstant-conversion] > > read_timeout = MAX_SCHEDULE_TIMEOUT; > > ~ ^~~~~~~~~~~~~~~~~~~~ > > include/linux/sched.h:296:31: note: expanded from macro 'MAX_SCHEDULE_TIMEOUT' > > #define MAX_SCHEDULE_TIMEOUT LONG_MAX > > ^~~~~~~~ > > include/vdso/limits.h:11:19: note: expanded from macro 'LONG_MAX' > > #define LONG_MAX ((long)(~0UL >> 1)) > > ^~~~~~~~~~~~~~~~~ > > drivers/staging/axis-fifo/axis-fifo.c:822:19: warning: implicit conversion from 'long' to 'int' changes value from 9223372036854775807 to -1 [-Wconstant-conversion] > > write_timeout = MAX_SCHEDULE_TIMEOUT; > > ~ ^~~~~~~~~~~~~~~~~~~~ > > include/linux/sched.h:296:31: note: expanded from macro 'MAX_SCHEDULE_TIMEOUT' > > #define MAX_SCHEDULE_TIMEOUT LONG_MAX > > ^~~~~~~~ > > include/vdso/limits.h:11:19: note: expanded from macro 'LONG_MAX' > > #define LONG_MAX ((long)(~0UL >> 1)) > > ^~~~~~~~~~~~~~~~~ > > 2 warnings generated. > > > > Hi everyone! > Kindly let me know if I should look into these warnings. > Thank you! You should always avoid introducing new warnings whenever possible. In this case, it appears that read_timeout and write_timeout should be changed from 'int' to 'long' to account for the fact that MAX_SCHEDULE_TIMEOUT is being assigned to it directly now, versus being passed as a parameter to wait_event_interruptible_timeout(), which assigned it to 'long' anyways. If you have any other questions or need further help, let me know :) Cheers, Nathan > > vim +817 drivers/staging/axis-fifo/axis-fifo.c > > > > 805 > > 806 static int axis_fifo_probe(struct platform_device *pdev) > > 807 { > > 808 struct resource *r_mem; /* IO mem resources */ > > 809 struct device *dev = &pdev->dev; /* OS device (from device tree) */ > > 810 struct axis_fifo *fifo = NULL; > > 811 char *device_name; > > 812 int rc = 0; /* error return value */ > > 813 > > 814 if (read_timeout >= 0) > > 815 read_timeout = msecs_to_jiffies(read_timeout); > > 816 else > > > 817 read_timeout = MAX_SCHEDULE_TIMEOUT; > > 818 > > 819 if (write_timeout >= 0) > > 820 write_timeout = msecs_to_jiffies(write_timeout); > > 821 else > > 822 write_timeout = MAX_SCHEDULE_TIMEOUT; > > 823 > > 824 /* ---------------------------- > > 825 * init wrapper device > > 826 * ---------------------------- > > 827 */ > > 828 > > 829 device_name = devm_kzalloc(dev, 32, GFP_KERNEL); > > 830 if (!device_name) > > 831 return -ENOMEM; > > 832 > > 833 /* allocate device wrapper memory */ > > 834 fifo = devm_kzalloc(dev, sizeof(*fifo), GFP_KERNEL); > > 835 if (!fifo) > > 836 return -ENOMEM; > > 837 > > 838 dev_set_drvdata(dev, fifo); > > 839 fifo->dt_device = dev; > > 840 > > 841 init_waitqueue_head(&fifo->read_queue); > > 842 init_waitqueue_head(&fifo->write_queue); > > 843 > > 844 mutex_init(&fifo->read_lock); > > 845 mutex_init(&fifo->write_lock); > > 846 > > 847 /* ---------------------------- > > 848 * init device memory space > > 849 * ---------------------------- > > 850 */ > > 851 > > 852 /* get iospace for the device */ > > 853 r_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > 854 if (!r_mem) { > > 855 dev_err(fifo->dt_device, "invalid address\n"); > > 856 rc = -ENODEV; > > 857 goto err_initial; > > 858 } > > 859 > > 860 /* request physical memory */ > > 861 fifo->base_addr = devm_ioremap_resource(fifo->dt_device, r_mem); > > 862 if (IS_ERR(fifo->base_addr)) { > > 863 rc = PTR_ERR(fifo->base_addr); > > 864 goto err_initial; > > 865 } > > 866 > > 867 dev_dbg(fifo->dt_device, "remapped memory to 0x%p\n", fifo->base_addr); > > 868 > > 869 /* create unique device name */ > > 870 snprintf(device_name, 32, "%s_%pa", DRIVER_NAME, &r_mem->start); > > 871 dev_dbg(fifo->dt_device, "device name [%s]\n", device_name); > > 872 > > 873 /* ---------------------------- > > 874 * init IP > > 875 * ---------------------------- > > 876 */ > > 877 > > 878 rc = axis_fifo_parse_dt(fifo); > > 879 if (rc) > > 880 goto err_initial; > > 881 > > 882 reset_ip_core(fifo); > > 883 > > 884 /* ---------------------------- > > 885 * init device interrupts > > 886 * ---------------------------- > > 887 */ > > 888 > > 889 /* get IRQ resource */ > > 890 rc = platform_get_irq(pdev, 0); > > 891 if (rc < 0) > > 892 goto err_initial; > > 893 > > 894 /* request IRQ */ > > 895 fifo->irq = rc; > > 896 rc = devm_request_irq(fifo->dt_device, fifo->irq, &axis_fifo_irq, 0, > > 897 DRIVER_NAME, fifo); > > 898 if (rc) { > > 899 dev_err(fifo->dt_device, "couldn't allocate interrupt %i\n", > > 900 fifo->irq); > > 901 goto err_initial; > > 902 } > > 903 > > 904 /* ---------------------------- > > 905 * init char device > > 906 * ---------------------------- > > 907 */ > > 908 > > 909 /* create character device */ > > 910 fifo->miscdev.fops = &fops; > > 911 fifo->miscdev.minor = MISC_DYNAMIC_MINOR; > > 912 fifo->miscdev.name = device_name; > > 913 fifo->miscdev.groups = axis_fifo_attrs_groups; > > 914 fifo->miscdev.parent = dev; > > 915 rc = misc_register(&fifo->miscdev); > > 916 if (rc < 0) > > 917 goto err_initial; > > 918 > > 919 dev_info(fifo->dt_device, "axis-fifo created at %pa mapped to 0x%pa, irq=%i\n", > > 920 &r_mem->start, &fifo->base_addr, fifo->irq); > > 921 > > 922 return 0; > > 923 > > 924 err_initial: > > 925 dev_set_drvdata(dev, NULL); > > 926 return rc; > > 927 } > > 928 > > > > -- > > 0-DAY CI Kernel Test Service > > https://github.com/intel/lkp-tests >