drivers/gpib/fmh_gpib/fmh_gpib.c:1476 fmh_gpib_attach_impl() warn: 'e_priv->fifo_base' from ioremap() not released on lines: 1451,1457,1465.
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
BCC: [email protected] CC: [email protected] CC: [email protected] TO: Dave Penkler <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: a635d6748234582ea287c5ffeae28b9b23f91c7e commit: e6ab504633e4c06e35377ecf3c8cbc304de79858 staging: gpib: Destage gpib date: 8 months ago :::::: branch date: 14 hours ago :::::: commit date: 8 months ago config: alpha-randconfig-r071-20260710 (https://download.01.org/0day-ci/archive/20260710/[email protected]/config) compiler: alpha-linux-gcc (GCC) 8.5.0 smatch: v0.5.0-9185-gbcc58b9c If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Fixes: e6ab504633e4 ("staging: gpib: Destage gpib") | Reported-by: kernel test robot <[email protected]> | Reported-by: Dan Carpenter <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ New smatch warnings: drivers/gpib/fmh_gpib/fmh_gpib.c:1476 fmh_gpib_attach_impl() warn: 'e_priv->fifo_base' from ioremap() not released on lines: 1451,1457,1465. drivers/gpib/fmh_gpib/fmh_gpib.c:1476 fmh_gpib_attach_impl() warn: 'irq' from request_irq() not released on lines: 1465. drivers/gpib/fmh_gpib/fmh_gpib.c:1476 fmh_gpib_attach_impl() warn: 'nec_priv->mmiobase' from ioremap() not released on lines: 1430,1436,1451,1457,1465. drivers/gpib/fmh_gpib/fmh_gpib.c:1476 fmh_gpib_attach_impl() warn: 'res->start' from __request_region() not released on lines: 1430,1436,1451,1457,1465. Old smatch warnings: internal error: arch/alpha/include/asm/io_trivial.h:70 SQL error #2: near "and": syntax error internal error: arch/alpha/include/asm/io_trivial.h:70 SQL: 'select * from return_states where and type = 1044 and parameter = -1 and key = '$' limit 1;' drivers/gpib/fmh_gpib/fmh_gpib.c:1476 fmh_gpib_attach_impl() warn: 'res->start' from __request_region() not released on lines: 1451,1457,1465. vim +1476 drivers/gpib/fmh_gpib/fmh_gpib.c 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1376 c3c7a472d6f72b drivers/staging/gpib/fmh_gpib/fmh_gpib.c Michael Rubin 2025-04-08 1377 static int fmh_gpib_attach_impl(struct gpib_board *board, const struct gpib_board_config *config, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1378 unsigned int handshake_mode, int acquire_dma) 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1379 { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1380 struct fmh_priv *e_priv; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1381 struct nec7210_priv *nec_priv; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1382 int retval; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1383 int irq; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1384 struct resource *res; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1385 struct platform_device *pdev; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1386 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1387 board->dev = driver_find_device(&fmh_gpib_platform_driver.driver, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1388 NULL, (const void *)config, &fmh_gpib_device_match); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1389 if (!board->dev) { acdf4581545b83 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2025-02-14 1390 dev_err(board->gpib_dev, "No matching fmh_gpib_core device was found, attach failed."); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1391 return -ENODEV; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1392 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1393 // currently only used to mark the device as already attached 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1394 dev_set_drvdata(board->dev, board); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1395 pdev = to_platform_device(board->dev); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1396 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1397 retval = fmh_gpib_generic_attach(board); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1398 if (retval) 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1399 return retval; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1400 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1401 e_priv = board->private_data; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1402 nec_priv = &e_priv->nec7210_priv; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1403 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1404 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpib_control_status"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1405 if (!res) { acdf4581545b83 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2025-02-14 1406 dev_err(board->dev, "Unable to locate mmio resource\n"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1407 return -ENODEV; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1408 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1409 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1410 if (request_mem_region(res->start, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1411 resource_size(res), 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1412 pdev->name) == NULL) { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1413 dev_err(board->dev, "cannot claim registers\n"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1414 return -ENXIO; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1415 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1416 e_priv->gpib_iomem_res = res; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1417 baf8855c916007 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Arnd Bergmann 2024-12-13 1418 nec_priv->mmiobase = ioremap(e_priv->gpib_iomem_res->start, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1419 resource_size(e_priv->gpib_iomem_res)); baf8855c916007 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Arnd Bergmann 2024-12-13 1420 if (!nec_priv->mmiobase) { acdf4581545b83 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2025-02-14 1421 dev_err(board->dev, "Could not map I/O memory\n"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1422 return -ENOMEM; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1423 } acdf4581545b83 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2025-02-14 1424 dev_dbg(board->dev, "iobase %pr remapped to %p\n", baf8855c916007 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Arnd Bergmann 2024-12-13 1425 e_priv->gpib_iomem_res, nec_priv->mmiobase); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1426 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1427 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dma_fifos"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1428 if (!res) { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1429 dev_err(board->dev, "Unable to locate mmio resource for gpib dma port\n"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1430 return -ENODEV; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1431 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1432 if (request_mem_region(res->start, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1433 resource_size(res), 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1434 pdev->name) == NULL) { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1435 dev_err(board->dev, "cannot claim registers\n"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1436 return -ENXIO; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1437 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1438 e_priv->dma_port_res = res; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1439 e_priv->fifo_base = ioremap(e_priv->dma_port_res->start, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1440 resource_size(e_priv->dma_port_res)); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1441 if (!e_priv->fifo_base) { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1442 dev_err(board->dev, "Could not map I/O memory for fifos\n"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1443 return -ENOMEM; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1444 } acdf4581545b83 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2025-02-14 1445 dev_dbg(board->dev, "dma fifos 0x%lx remapped to %p, length=%ld\n", 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1446 (unsigned long)e_priv->dma_port_res->start, e_priv->fifo_base, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1447 (unsigned long)resource_size(e_priv->dma_port_res)); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1448 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1449 irq = platform_get_irq(pdev, 0); 1269b01cdf3fd3 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Chen Ni 2025-04-07 1450 if (irq < 0) 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1451 return -EBUSY; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1452 retval = request_irq(irq, fmh_gpib_interrupt, IRQF_SHARED, pdev->name, board); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1453 if (retval) { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1454 dev_err(board->dev, 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1455 "cannot register interrupt handler err=%d\n", 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1456 retval); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1457 return retval; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1458 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1459 e_priv->irq = irq; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1460 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1461 if (acquire_dma) { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1462 e_priv->dma_channel = dma_request_slave_channel(board->dev, "rxtx"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1463 if (!e_priv->dma_channel) { 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1464 dev_err(board->dev, "failed to acquire dma channel \"rxtx\".\n"); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1465 return -EIO; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1466 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1467 } 6008c89dbdfc86 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Paul Retourné 2025-04-11 1468 /* 6008c89dbdfc86 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Paul Retourné 2025-04-11 1469 * in the future we might want to know the half-fifo size 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1470 * (dma_burst_length) even when not using dma, so go ahead an 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1471 * initialize it unconditionally. 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1472 */ 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1473 e_priv->dma_burst_length = fifos_read(e_priv, FIFO_MAX_BURST_LENGTH_REG) & 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1474 fifo_max_burst_length_mask; 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1475 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 @1476 return fmh_gpib_init(e_priv, board, handshake_mode); 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1477 } 8e4841a0888c74 drivers/staging/gpib/fmh_gpib/fmh_gpib.c Dave Penkler 2024-09-18 1478 :::::: The code at line 1476 was first introduced by commit :::::: 8e4841a0888c74bdcb6ba115d6405206f0c2e8b4 staging: gpib: Add Frank Mori Hess FPGA PCI GPIB driver :::::: TO: Dave Penkler <[email protected]> :::::: CC: Greg Kroah-Hartman <[email protected]> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki