All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 1622/10320] sound/pci/nm256/nm256.c:1578 snd_nm256_create() warn: 'pci' not released on lines: 1490, 1506.
@ 2021-08-25 19:50 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-08-25 19:50 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 11669 bytes --]

CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Takashi Iwai <tiwai@suse.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   7636510f976d75b860848884169ba985c8f844d8
commit: c19935f04784dcaa456fcd1d1b1fbf3a85765ff1 [1622/10320] ALSA: nm256: Allocate resources with device-managed APIs
:::::: branch date: 10 hours ago
:::::: commit date: 5 weeks ago
config: x86_64-randconfig-m001-20210825 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
sound/pci/nm256/nm256.c:1578 snd_nm256_create() warn: 'pci' not released on lines: 1490,1506.

vim +/pci +1578 sound/pci/nm256/nm256.c

^1da177e4c3f41 Linus Torvalds 2005-04-16  1448  
e23e7a14362072 Bill Pemberton 2012-12-06  1449  static int
c19935f04784dc Takashi Iwai   2021-07-15  1450  snd_nm256_create(struct snd_card *card, struct pci_dev *pci)
^1da177e4c3f41 Linus Torvalds 2005-04-16  1451  {
c19935f04784dc Takashi Iwai   2021-07-15  1452  	struct nm256 *chip = card->private_data;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1453  	int err, pval;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1454  	u32 addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1455  
c19935f04784dc Takashi Iwai   2021-07-15  1456  	err = pcim_enable_device(pci);
36f74c7ff9e6de Takashi Iwai   2021-06-08  1457  	if (err < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16  1458  		return err;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1459  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1460  	chip->card = card;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1461  	chip->pci = pci;
3f05f868f1112b Takashi Iwai   2005-11-17  1462  	chip->use_cache = use_cache;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1463  	spin_lock_init(&chip->reg_lock);
^1da177e4c3f41 Linus Torvalds 2005-04-16  1464  	chip->irq = -1;
62932df8fb20ba Ingo Molnar    2006-01-16  1465  	mutex_init(&chip->irq_mutex);
^1da177e4c3f41 Linus Torvalds 2005-04-16  1466  
3f05f868f1112b Takashi Iwai   2005-11-17  1467  	/* store buffer sizes in bytes */
3f05f868f1112b Takashi Iwai   2005-11-17  1468  	chip->streams[SNDRV_PCM_STREAM_PLAYBACK].bufsize = playback_bufsize * 1024;
3f05f868f1112b Takashi Iwai   2005-11-17  1469  	chip->streams[SNDRV_PCM_STREAM_CAPTURE].bufsize = capture_bufsize * 1024;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1470  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1471  	/* 
^1da177e4c3f41 Linus Torvalds 2005-04-16  1472  	 * The NM256 has two memory ports.  The first port is nothing
^1da177e4c3f41 Linus Torvalds 2005-04-16  1473  	 * more than a chunk of video RAM, which is used as the I/O ring
^1da177e4c3f41 Linus Torvalds 2005-04-16  1474  	 * buffer.  The second port has the actual juicy stuff (like the
^1da177e4c3f41 Linus Torvalds 2005-04-16  1475  	 * mixer and the playback engine control registers).
^1da177e4c3f41 Linus Torvalds 2005-04-16  1476  	 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  1477  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1478  	chip->buffer_addr = pci_resource_start(pci, 0);
^1da177e4c3f41 Linus Torvalds 2005-04-16  1479  	chip->cport_addr = pci_resource_start(pci, 1);
^1da177e4c3f41 Linus Torvalds 2005-04-16  1480  
c19935f04784dc Takashi Iwai   2021-07-15  1481  	if (pci_request_regions(pci, card->driver))
c19935f04784dc Takashi Iwai   2021-07-15  1482  		return err;
c19935f04784dc Takashi Iwai   2021-07-15  1483  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1484  	/* Init the memory port info.  */
^1da177e4c3f41 Linus Torvalds 2005-04-16  1485  	/* remap control port (#2) */
c19935f04784dc Takashi Iwai   2021-07-15  1486  	chip->cport = devm_ioremap(&pci->dev, chip->cport_addr, NM_PORT2_SIZE);
c19935f04784dc Takashi Iwai   2021-07-15  1487  	if (!chip->cport) {
a3fe03f412daf4 Takashi Iwai   2014-02-25  1488  		dev_err(card->dev, "unable to map control port %lx\n",
a3fe03f412daf4 Takashi Iwai   2014-02-25  1489  			chip->cport_addr);
c19935f04784dc Takashi Iwai   2021-07-15  1490  		return -ENOMEM;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1491  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  1492  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1493  	if (!strcmp(card->driver, "NM256AV")) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  1494  		/* Ok, try to see if this is a non-AC97 version of the hardware. */
^1da177e4c3f41 Linus Torvalds 2005-04-16  1495  		pval = snd_nm256_readw(chip, NM_MIXER_PRESENCE);
^1da177e4c3f41 Linus Torvalds 2005-04-16  1496  		if ((pval & NM_PRESENCE_MASK) != NM_PRESENCE_VALUE) {
3f05f868f1112b Takashi Iwai   2005-11-17  1497  			if (! force_ac97) {
a3fe03f412daf4 Takashi Iwai   2014-02-25  1498  				dev_err(card->dev,
a3fe03f412daf4 Takashi Iwai   2014-02-25  1499  					"no ac97 is found!\n");
a3fe03f412daf4 Takashi Iwai   2014-02-25  1500  				dev_err(card->dev,
a3fe03f412daf4 Takashi Iwai   2014-02-25  1501  					"force the driver to load by passing in the module parameter\n");
a3fe03f412daf4 Takashi Iwai   2014-02-25  1502  				dev_err(card->dev,
a3fe03f412daf4 Takashi Iwai   2014-02-25  1503  					" force_ac97=1\n");
a3fe03f412daf4 Takashi Iwai   2014-02-25  1504  				dev_err(card->dev,
a3fe03f412daf4 Takashi Iwai   2014-02-25  1505  					"or try sb16, opl3sa2, or cs423x drivers instead.\n");
c19935f04784dc Takashi Iwai   2021-07-15  1506  				return -ENXIO;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1507  			}
^1da177e4c3f41 Linus Torvalds 2005-04-16  1508  		}
^1da177e4c3f41 Linus Torvalds 2005-04-16  1509  		chip->buffer_end = 2560 * 1024;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1510  		chip->interrupt = snd_nm256_interrupt;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1511  		chip->mixer_status_offset = NM_MIXER_STATUS_OFFSET;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1512  		chip->mixer_status_mask = NM_MIXER_READY_MASK;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1513  	} else {
^1da177e4c3f41 Linus Torvalds 2005-04-16  1514  		/* Not sure if there is any relevant detect for the ZX or not.  */
^1da177e4c3f41 Linus Torvalds 2005-04-16  1515  		if (snd_nm256_readb(chip, 0xa0b) != 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16  1516  			chip->buffer_end = 6144 * 1024;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1517  		else
^1da177e4c3f41 Linus Torvalds 2005-04-16  1518  			chip->buffer_end = 4096 * 1024;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1519  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1520  		chip->interrupt = snd_nm256_interrupt_zx;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1521  		chip->mixer_status_offset = NM2_MIXER_STATUS_OFFSET;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1522  		chip->mixer_status_mask = NM2_MIXER_READY_MASK;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1523  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  1524  	
10754f53450a2c Takashi Iwai   2005-11-17  1525  	chip->buffer_size = chip->streams[SNDRV_PCM_STREAM_PLAYBACK].bufsize +
10754f53450a2c Takashi Iwai   2005-11-17  1526  		chip->streams[SNDRV_PCM_STREAM_CAPTURE].bufsize;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1527  	if (chip->use_cache)
^1da177e4c3f41 Linus Torvalds 2005-04-16  1528  		chip->buffer_size += NM_TOTAL_COEFF_COUNT * 4;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1529  	else
^1da177e4c3f41 Linus Torvalds 2005-04-16  1530  		chip->buffer_size += NM_MAX_PLAYBACK_COEF_SIZE + NM_MAX_RECORD_COEF_SIZE;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1531  
3f05f868f1112b Takashi Iwai   2005-11-17  1532  	if (buffer_top >= chip->buffer_size && buffer_top < chip->buffer_end)
3f05f868f1112b Takashi Iwai   2005-11-17  1533  		chip->buffer_end = buffer_top;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1534  	else {
^1da177e4c3f41 Linus Torvalds 2005-04-16  1535  		/* get buffer end pointer from signature */
36f74c7ff9e6de Takashi Iwai   2021-06-08  1536  		err = snd_nm256_peek_for_sig(chip);
36f74c7ff9e6de Takashi Iwai   2021-06-08  1537  		if (err < 0)
c19935f04784dc Takashi Iwai   2021-07-15  1538  			return err;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1539  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  1540  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1541  	chip->buffer_start = chip->buffer_end - chip->buffer_size;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1542  	chip->buffer_addr += chip->buffer_start;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1543  
a3fe03f412daf4 Takashi Iwai   2014-02-25  1544  	dev_info(card->dev, "Mapping port 1 from 0x%x - 0x%x\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16  1545  	       chip->buffer_start, chip->buffer_end);
^1da177e4c3f41 Linus Torvalds 2005-04-16  1546  
c19935f04784dc Takashi Iwai   2021-07-15  1547  	chip->buffer = devm_ioremap(&pci->dev, chip->buffer_addr,
c19935f04784dc Takashi Iwai   2021-07-15  1548  				    chip->buffer_size);
c19935f04784dc Takashi Iwai   2021-07-15  1549  	if (!chip->buffer) {
a3fe03f412daf4 Takashi Iwai   2014-02-25  1550  		dev_err(card->dev, "unable to map ring buffer at %lx\n",
a3fe03f412daf4 Takashi Iwai   2014-02-25  1551  			chip->buffer_addr);
c19935f04784dc Takashi Iwai   2021-07-15  1552  		return -ENOMEM;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1553  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  1554  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1555  	/* set offsets */
^1da177e4c3f41 Linus Torvalds 2005-04-16  1556  	addr = chip->buffer_start;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1557  	chip->streams[SNDRV_PCM_STREAM_PLAYBACK].buf = addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1558  	addr += chip->streams[SNDRV_PCM_STREAM_PLAYBACK].bufsize;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1559  	chip->streams[SNDRV_PCM_STREAM_CAPTURE].buf = addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1560  	addr += chip->streams[SNDRV_PCM_STREAM_CAPTURE].bufsize;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1561  	if (chip->use_cache) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  1562  		chip->all_coeff_buf = addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1563  	} else {
^1da177e4c3f41 Linus Torvalds 2005-04-16  1564  		chip->coeff_buf[SNDRV_PCM_STREAM_PLAYBACK] = addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1565  		addr += NM_MAX_PLAYBACK_COEF_SIZE;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1566  		chip->coeff_buf[SNDRV_PCM_STREAM_CAPTURE] = addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1567  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  1568  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1569  	/* Fixed setting. */
^1da177e4c3f41 Linus Torvalds 2005-04-16  1570  	chip->mixer_base = NM_MIXER_OFFSET;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1571  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1572  	chip->coeffs_current = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1573  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1574  	snd_nm256_init_chip(chip);
c19935f04784dc Takashi Iwai   2021-07-15  1575  	card->private_free = snd_nm256_free;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1576  
^1da177e4c3f41 Linus Torvalds 2005-04-16  1577  	// pci_set_master(pci); /* needed? */
^1da177e4c3f41 Linus Torvalds 2005-04-16 @1578  	return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16  1579  }
^1da177e4c3f41 Linus Torvalds 2005-04-16  1580  

:::::: The code at line 1578 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32896 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-08-25 19:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-25 19:50 [linux-next:master 1622/10320] sound/pci/nm256/nm256.c:1578 snd_nm256_create() warn: 'pci' not released on lines: 1490, 1506 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.