CC: kbuild-...@lists.01.org CC: Linux Memory Management List <linux...@kvack.org> TO: Takashi Iwai <ti...@suse.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 90d856e71443a2fcacca8e7539bac44d9cb3f7ab commit: 5adfd8c26607cdc666aa86ecc10104924d54082a [1797/3296] ALSA: trident: Allocate resources with device-managed APIs :::::: branch date: 3 days ago :::::: commit date: 7 days ago config: x86_64-randconfig-m001-20210726 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> Reported-by: Dan Carpenter <dan.carpen...@oracle.com> smatch warnings: sound/pci/trident/trident_main.c:3599 snd_trident_create() warn: 'pci' not released on lines: 3544. vim +/pci +3599 sound/pci/trident/trident_main.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 3477 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3478 /*--------------------------------------------------------------------------- ^1da177e4c3f41 Linus Torvalds 2005-04-16 3479 snd_trident_create ^1da177e4c3f41 Linus Torvalds 2005-04-16 3480 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3481 Description: This routine will create the device specific class for ^1da177e4c3f41 Linus Torvalds 2005-04-16 3482 the 4DWave card. It will also perform basic initialization. ^1da177e4c3f41 Linus Torvalds 2005-04-16 3483 561de31a23a8a5 Joe Perches 2007-12-18 3484 Parameters: card - which card to create ^1da177e4c3f41 Linus Torvalds 2005-04-16 3485 pci - interface to PCI bus resource info ^1da177e4c3f41 Linus Torvalds 2005-04-16 3486 dma1ptr - playback dma buffer ^1da177e4c3f41 Linus Torvalds 2005-04-16 3487 dma2ptr - capture dma buffer ^1da177e4c3f41 Linus Torvalds 2005-04-16 3488 irqptr - interrupt resource info ^1da177e4c3f41 Linus Torvalds 2005-04-16 3489 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3490 Returns: 4DWave device class private data ^1da177e4c3f41 Linus Torvalds 2005-04-16 3491 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3492 ---------------------------------------------------------------------------*/ ^1da177e4c3f41 Linus Torvalds 2005-04-16 3493 e23e7a14362072 Bill Pemberton 2012-12-06 3494 int snd_trident_create(struct snd_card *card, ^1da177e4c3f41 Linus Torvalds 2005-04-16 3495 struct pci_dev *pci, ^1da177e4c3f41 Linus Torvalds 2005-04-16 3496 int pcm_streams, ^1da177e4c3f41 Linus Torvalds 2005-04-16 3497 int pcm_spdif_device, 5adfd8c26607cd Takashi Iwai 2021-07-15 3498 int max_wavetable_size) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3499 { 5adfd8c26607cd Takashi Iwai 2021-07-15 3500 struct snd_trident *trident = card->private_data; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3501 int i, err; bee1a5be8b6210 Takashi Iwai 2005-11-17 3502 struct snd_trident_voice *voice; bee1a5be8b6210 Takashi Iwai 2005-11-17 3503 struct snd_trident_pcm_mixer *tmix; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3504 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3505 /* enable PCI device */ 5adfd8c26607cd Takashi Iwai 2021-07-15 3506 err = pcim_enable_device(pci); 34b946ee28699b Takashi Iwai 2021-06-08 3507 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3508 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3509 /* check, if we can restrict PCI DMA transfers to 30 bits */ 669f65eaeb969e Takashi Iwai 2021-01-14 3510 if (dma_set_mask_and_coherent(&pci->dev, DMA_BIT_MASK(30))) { 80c19b7513029a Takashi Iwai 2014-02-26 3511 dev_err(card->dev, 80c19b7513029a Takashi Iwai 2014-02-26 3512 "architecture does not support 30bit PCI busmaster DMA\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3513 return -ENXIO; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3514 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 3515 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3516 trident->device = (pci->vendor << 16) | pci->device; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3517 trident->card = card; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3518 trident->pci = pci; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3519 spin_lock_init(&trident->reg_lock); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3520 spin_lock_init(&trident->event_lock); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3521 spin_lock_init(&trident->voice_alloc); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3522 if (pcm_streams < 1) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3523 pcm_streams = 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3524 if (pcm_streams > 32) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3525 pcm_streams = 32; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3526 trident->ChanPCM = pcm_streams; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3527 if (max_wavetable_size < 0 ) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3528 max_wavetable_size = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3529 trident->synth.max_size = max_wavetable_size * 1024; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3530 trident->irq = -1; 5adfd8c26607cd Takashi Iwai 2021-07-15 3531 card->private_free = snd_trident_free; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3532 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3533 trident->midi_port = TRID_REG(trident, T4D_MPU401_BASE); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3534 pci_set_master(pci); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3535 34b946ee28699b Takashi Iwai 2021-06-08 3536 err = pci_request_regions(pci, "Trident Audio"); 5adfd8c26607cd Takashi Iwai 2021-07-15 3537 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3538 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3539 trident->port = pci_resource_start(pci, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3540 5adfd8c26607cd Takashi Iwai 2021-07-15 3541 if (devm_request_irq(&pci->dev, pci->irq, snd_trident_interrupt, 5adfd8c26607cd Takashi Iwai 2021-07-15 3542 IRQF_SHARED, KBUILD_MODNAME, trident)) { 80c19b7513029a Takashi Iwai 2014-02-26 3543 dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3544 return -EBUSY; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3545 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 3546 trident->irq = pci->irq; 4a9ff148bd348f Takashi Iwai 2019-12-10 3547 card->sync_irq = trident->irq; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3548 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3549 /* allocate 16k-aligned TLB for NX cards */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 3550 trident->tlb.entries = NULL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3551 if (trident->device == TRIDENT_DEVICE_ID_NX) { 34b946ee28699b Takashi Iwai 2021-06-08 3552 err = snd_trident_tlb_alloc(trident); 5adfd8c26607cd Takashi Iwai 2021-07-15 3553 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3554 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3555 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 3556 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3557 trident->spdif_bits = trident->spdif_pcm_bits = SNDRV_PCM_DEFAULT_CON_SPDIF; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3558 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3559 /* initialize chip */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 3560 switch (trident->device) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 3561 case TRIDENT_DEVICE_ID_DX: ^1da177e4c3f41 Linus Torvalds 2005-04-16 3562 err = snd_trident_4d_dx_init(trident); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3563 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3564 case TRIDENT_DEVICE_ID_NX: ^1da177e4c3f41 Linus Torvalds 2005-04-16 3565 err = snd_trident_4d_nx_init(trident); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3566 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3567 case TRIDENT_DEVICE_ID_SI7018: ^1da177e4c3f41 Linus Torvalds 2005-04-16 3568 err = snd_trident_sis_init(trident); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3569 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3570 default: ^1da177e4c3f41 Linus Torvalds 2005-04-16 3571 snd_BUG(); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3572 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3573 } 5adfd8c26607cd Takashi Iwai 2021-07-15 3574 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3575 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3576 34b946ee28699b Takashi Iwai 2021-06-08 3577 err = snd_trident_mixer(trident, pcm_spdif_device); 34b946ee28699b Takashi Iwai 2021-06-08 3578 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3579 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3580 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3581 /* initialise synth voices */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 3582 for (i = 0; i < 64; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 3583 voice = &trident->synth.voices[i]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3584 voice->number = i; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3585 voice->trident = trident; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3586 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 3587 /* initialize pcm mixer entries */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 3588 for (i = 0; i < 32; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 3589 tmix = &trident->pcm_mixer[i]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3590 tmix->vol = T4D_DEFAULT_PCM_VOL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3591 tmix->pan = T4D_DEFAULT_PCM_PAN; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3592 tmix->rvol = T4D_DEFAULT_PCM_RVOL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3593 tmix->cvol = T4D_DEFAULT_PCM_CVOL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3594 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 3595 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3596 snd_trident_enable_eso(trident); ^1da177e4c3f41 Linus Torvalds 2005-04-16 3597 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3598 snd_trident_proc_init(trident); ^1da177e4c3f41 Linus Torvalds 2005-04-16 @3599 return 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3600 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 3601 :::::: The code at line 3599 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds <torva...@ppc970.osdl.org> :::::: CC: Linus Torvalds <torva...@ppc970.osdl.org> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org