All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.
@ 2026-03-26 21:53 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-03-26 21:53 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Dave Penkler <dpenkler@gmail.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   46b513250491a7bfc97d98791dbe6a10bcc8129d
commit: e6ab504633e4c06e35377ecf3c8cbc304de79858 staging: gpib: Destage gpib
date:   4 months ago
:::::: branch date: 42 minutes ago
:::::: commit date: 4 months ago
config: alpha-randconfig-r071-20260327 (https://download.01.org/0day-ci/archive/20260327/202603270519.dmcjTDy4-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 12.5.0
smatch: v0.5.0-9004-gb810ac53

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
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603270519.dmcjTDy4-lkp@intel.com/

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 <dpenkler@gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread

* 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.
@ 2026-07-10 13:33 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-07-10 13:33 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Dave Penkler <dpenkler@gmail.com>

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/202607102136.8Zg3WLfZ-lkp@intel.com/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 <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202607102136.8Zg3WLfZ-lkp@intel.com/

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 <dpenkler@gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-07-10 13:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-10 13:33 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
  -- strict thread matches above, loose matches on Subject: below --
2026-03-26 21:53 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.