Re: [PATCH] staging: axis-fifo: initialize timeouts in probe only

From: kernel test robot
Date: Mon Mar 13 2023 - 23:46:39 EST


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.


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