Re: [PATCH v2 1/2] axis-fifo: use devm_kasprintf() for allocating formatted strings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dan,

Thanks for pointing these out. The older warning seems to be
introduced in an earlier commit. I will fix both of these in v3.
---
- Prathu


On Mon, May 15, 2023 at 1:13 PM Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
>
> Hi Prathu,
>
> kernel test robot noticed the following build warnings:
>
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url:    https://github.com/intel-lab-lkp/linux/commits/Prathu-Baronia/axis-fifo-cleanup-space-issues-with-fops-struct/20230514-220201
> base:   staging/staging-testing
> patch link:    https://lore.kernel.org/r/20230514130148.138624-2-prathubaronia2011%40gmail.com
> patch subject: [PATCH v2 1/2] axis-fifo: use devm_kasprintf() for allocating formatted strings
> config: i386-randconfig-m021
> compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Reported-by: Dan Carpenter <error27@xxxxxxxxx>
> | Link: https://lore.kernel.org/r/202305150358.nt1BkbXz-lkp@xxxxxxxxx/
>
> New smatch warnings:
> drivers/staging/axis-fifo/axis-fifo.c:858 axis_fifo_probe() warn: missing unwind goto?
>
> Old smatch warnings:
> drivers/staging/axis-fifo/axis-fifo.c:907 axis_fifo_probe() error: '%pa' expects argument of type 'phys_addr_t*', argument 4 has type 'void**'
>
> vim +858 drivers/staging/axis-fifo/axis-fifo.c
>
> 4a965c5f89decd Jacob Feder        2018-07-22  806  static int axis_fifo_probe(struct platform_device *pdev)
> 4a965c5f89decd Jacob Feder        2018-07-22  807  {
> 4a965c5f89decd Jacob Feder        2018-07-22  808       struct resource *r_mem; /* IO mem resources */
> 4a965c5f89decd Jacob Feder        2018-07-22  809       struct device *dev = &pdev->dev; /* OS device (from device tree) */
> 4a965c5f89decd Jacob Feder        2018-07-22  810       struct axis_fifo *fifo = NULL;
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  811       char *device_name;
> 4a965c5f89decd Jacob Feder        2018-07-22  812       int rc = 0; /* error return value */
> 4a965c5f89decd Jacob Feder        2018-07-22  813
> 4a965c5f89decd Jacob Feder        2018-07-22  814       /* ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  815        *     init wrapper device
> 4a965c5f89decd Jacob Feder        2018-07-22  816        * ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  817        */
> 4a965c5f89decd Jacob Feder        2018-07-22  818
> 4a965c5f89decd Jacob Feder        2018-07-22  819       /* allocate device wrapper memory */
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  820       fifo = devm_kzalloc(dev, sizeof(*fifo), GFP_KERNEL);
> 4a965c5f89decd Jacob Feder        2018-07-22  821       if (!fifo)
> 4a965c5f89decd Jacob Feder        2018-07-22  822               return -ENOMEM;
> 4a965c5f89decd Jacob Feder        2018-07-22  823
> 4a965c5f89decd Jacob Feder        2018-07-22  824       dev_set_drvdata(dev, fifo);
> 4a965c5f89decd Jacob Feder        2018-07-22  825       fifo->dt_device = dev;
> 4a965c5f89decd Jacob Feder        2018-07-22  826
> 4a965c5f89decd Jacob Feder        2018-07-22  827       init_waitqueue_head(&fifo->read_queue);
> 4a965c5f89decd Jacob Feder        2018-07-22  828       init_waitqueue_head(&fifo->write_queue);
> 4a965c5f89decd Jacob Feder        2018-07-22  829
> 0443b3f4436321 Quentin Deslandes  2020-01-21  830       mutex_init(&fifo->read_lock);
> 0443b3f4436321 Quentin Deslandes  2020-01-21  831       mutex_init(&fifo->write_lock);
> 4a965c5f89decd Jacob Feder        2018-07-22  832
> 4a965c5f89decd Jacob Feder        2018-07-22  833       /* ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  834        *   init device memory space
> 4a965c5f89decd Jacob Feder        2018-07-22  835        * ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  836        */
> 4a965c5f89decd Jacob Feder        2018-07-22  837
> 4a965c5f89decd Jacob Feder        2018-07-22  838       /* get iospace for the device */
> 4a965c5f89decd Jacob Feder        2018-07-22  839       r_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> 4a965c5f89decd Jacob Feder        2018-07-22  840       if (!r_mem) {
> 4a965c5f89decd Jacob Feder        2018-07-22  841               dev_err(fifo->dt_device, "invalid address\n");
> 4a965c5f89decd Jacob Feder        2018-07-22  842               rc = -ENODEV;
> 4a965c5f89decd Jacob Feder        2018-07-22  843               goto err_initial;
> 4a965c5f89decd Jacob Feder        2018-07-22  844       }
> 4a965c5f89decd Jacob Feder        2018-07-22  845
> 4a965c5f89decd Jacob Feder        2018-07-22  846       /* request physical memory */
> 354e27a86b4c64 Quentin Deslandes  2019-11-01  847       fifo->base_addr = devm_ioremap_resource(fifo->dt_device, r_mem);
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  848       if (IS_ERR(fifo->base_addr)) {
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  849               rc = PTR_ERR(fifo->base_addr);
> 4a965c5f89decd Jacob Feder        2018-07-22  850               goto err_initial;
> 4a965c5f89decd Jacob Feder        2018-07-22  851       }
> 4a965c5f89decd Jacob Feder        2018-07-22  852
> 4a965c5f89decd Jacob Feder        2018-07-22  853       dev_dbg(fifo->dt_device, "remapped memory to 0x%p\n", fifo->base_addr);
> 4a965c5f89decd Jacob Feder        2018-07-22  854
> 4a965c5f89decd Jacob Feder        2018-07-22  855       /* create unique device name */
> c5cab4f62648eb Prathu Baronia     2023-05-14  856       device_name = devm_kasprintf(dev, GFP_KERNEL, "%s_%pa", DRIVER_NAME, &r_mem->start);
> c5cab4f62648eb Prathu Baronia     2023-05-14  857       if (!device_name)
> c5cab4f62648eb Prathu Baronia     2023-05-14 @858               return -ENOMEM;
>
>                 rc = -ENOMEM;
>                 goto err_initial;
>
> 4a965c5f89decd Jacob Feder        2018-07-22  859       dev_dbg(fifo->dt_device, "device name [%s]\n", device_name);
> 4a965c5f89decd Jacob Feder        2018-07-22  860
> 4a965c5f89decd Jacob Feder        2018-07-22  861       /* ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  862        *          init IP
> 4a965c5f89decd Jacob Feder        2018-07-22  863        * ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  864        */
> 4a965c5f89decd Jacob Feder        2018-07-22  865
> ed6daf2b2832d9 Quentin Deslandes  2019-11-01  866       rc = axis_fifo_parse_dt(fifo);
> 4a965c5f89decd Jacob Feder        2018-07-22  867       if (rc)
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  868               goto err_initial;
> 4a965c5f89decd Jacob Feder        2018-07-22  869
> 4a965c5f89decd Jacob Feder        2018-07-22  870       reset_ip_core(fifo);
> 4a965c5f89decd Jacob Feder        2018-07-22  871
> 4a965c5f89decd Jacob Feder        2018-07-22  872       /* ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  873        *    init device interrupts
> 4a965c5f89decd Jacob Feder        2018-07-22  874        * ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  875        */
> 4a965c5f89decd Jacob Feder        2018-07-22  876
> 4a965c5f89decd Jacob Feder        2018-07-22  877       /* get IRQ resource */
> 790ada0e6ec33e Lad Prabhakar      2021-12-24  878       rc = platform_get_irq(pdev, 0);
> 790ada0e6ec33e Lad Prabhakar      2021-12-24  879       if (rc < 0)
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  880               goto err_initial;
> 4a965c5f89decd Jacob Feder        2018-07-22  881
> 4a965c5f89decd Jacob Feder        2018-07-22  882       /* request IRQ */
> 790ada0e6ec33e Lad Prabhakar      2021-12-24  883       fifo->irq = rc;
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  884       rc = devm_request_irq(fifo->dt_device, fifo->irq, &axis_fifo_irq, 0,
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  885                             DRIVER_NAME, fifo);
> 4a965c5f89decd Jacob Feder        2018-07-22  886       if (rc) {
> 4a965c5f89decd Jacob Feder        2018-07-22  887               dev_err(fifo->dt_device, "couldn't allocate interrupt %i\n",
> 4a965c5f89decd Jacob Feder        2018-07-22  888                       fifo->irq);
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  889               goto err_initial;
> 4a965c5f89decd Jacob Feder        2018-07-22  890       }
> 4a965c5f89decd Jacob Feder        2018-07-22  891
> 4a965c5f89decd Jacob Feder        2018-07-22  892       /* ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  893        *      init char device
> 4a965c5f89decd Jacob Feder        2018-07-22  894        * ----------------------------
> 4a965c5f89decd Jacob Feder        2018-07-22  895        */
> 4a965c5f89decd Jacob Feder        2018-07-22  896
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  897       /* create character device */
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  898       fifo->miscdev.fops = &fops;
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  899       fifo->miscdev.minor = MISC_DYNAMIC_MINOR;
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  900       fifo->miscdev.name = device_name;
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  901       fifo->miscdev.groups = axis_fifo_attrs_groups;
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  902       fifo->miscdev.parent = dev;
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  903       rc = misc_register(&fifo->miscdev);
> 4a965c5f89decd Jacob Feder        2018-07-22  904       if (rc < 0)
> 6a20d283ed6867 Quentin Deslandes  2019-11-01  905               goto err_initial;
> 4a965c5f89decd Jacob Feder        2018-07-22  906
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  907       dev_info(fifo->dt_device, "axis-fifo created at %pa mapped to 0x%pa, irq=%i\n",
>                                                                                                                       ^^^^^
> d2d7aa53891ea1 Greg Kroah-Hartman 2021-09-07  908                &r_mem->start, &fifo->base_addr, fifo->irq);
>                                                                                 ^^^^^^^^^^^^^^^^
> I think Smatch is correct that it should just be %p instead of %pa but
> I don't know the rules here too well.
>
> 4a965c5f89decd Jacob Feder        2018-07-22  909
> 4a965c5f89decd Jacob Feder        2018-07-22  910       return 0;
> 4a965c5f89decd Jacob Feder        2018-07-22  911
> 4a965c5f89decd Jacob Feder        2018-07-22  912  err_initial:
> 4a965c5f89decd Jacob Feder        2018-07-22  913       dev_set_drvdata(dev, NULL);
> 4a965c5f89decd Jacob Feder        2018-07-22  914       return rc;
> 4a965c5f89decd Jacob Feder        2018-07-22  915  }
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests
>





[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux