* [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.