* [sound:topic/memalloc-noncontig 14/146] sound/pci/intel8x0m.c:1152 snd_intel8x0m_init() warn: 'pci' not released on lines: 1118, 1136, 1145.
@ 2021-08-12 23:20 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-08-12 23:20 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 9826 bytes --]
CC: kbuild-all(a)lists.01.org
CC: alsa-devel(a)alsa-project.org
TO: Takashi Iwai <tiwai@suse.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git topic/memalloc-noncontig
head: aac54027424d36ebfff88350e5e4d99f310d4fce
commit: 7835e0901e245aa8b83d7e2964f17088cb2e1f1e [14/146] ALSA: intel8x0: Allocate resources with device-managed APIs
:::::: branch date: 12 hours ago
:::::: commit date: 3 weeks ago
config: microblaze-randconfig-m031-20210812 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 10.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/intel8x0m.c:1152 snd_intel8x0m_init() warn: 'pci' not released on lines: 1118,1136,1145.
vim +/pci +1152 sound/pci/intel8x0m.c
^1da177e4c3f415 Linus Torvalds 2005-04-16 1045
7835e0901e245aa Takashi Iwai 2021-07-15 1046 static int snd_intel8x0m_init(struct snd_card *card,
^1da177e4c3f415 Linus Torvalds 2005-04-16 1047 struct pci_dev *pci,
7835e0901e245aa Takashi Iwai 2021-07-15 1048 unsigned long device_type)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1049 {
7835e0901e245aa Takashi Iwai 2021-07-15 1050 struct intel8x0m *chip = card->private_data;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1051 int err;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1052 unsigned int i;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1053 unsigned int int_sta_masks;
6b75a9d8b6c794d Takashi Iwai 2005-11-17 1054 struct ichdev *ichdev;
f729f88a04089d2 Takashi Iwai 2020-01-05 1055 static const struct ich_reg_info intel_regs[2] = {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1056 { ICH_MIINT, 0 },
^1da177e4c3f415 Linus Torvalds 2005-04-16 1057 { ICH_MOINT, 0x10 },
^1da177e4c3f415 Linus Torvalds 2005-04-16 1058 };
f729f88a04089d2 Takashi Iwai 2020-01-05 1059 const struct ich_reg_info *tbl;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1060
7835e0901e245aa Takashi Iwai 2021-07-15 1061 err = pcim_enable_device(pci);
3a5f3dd3295288d Takashi Iwai 2021-06-08 1062 if (err < 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1063 return err;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1064
^1da177e4c3f415 Linus Torvalds 2005-04-16 1065 spin_lock_init(&chip->reg_lock);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1066 chip->device_type = device_type;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1067 chip->card = card;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1068 chip->pci = pci;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1069 chip->irq = -1;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1070
3a5f3dd3295288d Takashi Iwai 2021-06-08 1071 err = pci_request_regions(pci, card->shortname);
7835e0901e245aa Takashi Iwai 2021-07-15 1072 if (err < 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1073 return err;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1074
^1da177e4c3f415 Linus Torvalds 2005-04-16 1075 if (device_type == DEVICE_ALI) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1076 /* ALI5455 has no ac97 region */
7835e0901e245aa Takashi Iwai 2021-07-15 1077 chip->bmaddr = pcim_iomap(pci, 0, 0);
7835e0901e245aa Takashi Iwai 2021-07-15 1078 } else {
3388c37e04ec0e3 Takashi Iwai 2006-10-06 1079 if (pci_resource_flags(pci, 2) & IORESOURCE_MEM) /* ICH4 and Nforce */
7835e0901e245aa Takashi Iwai 2021-07-15 1080 chip->addr = pcim_iomap(pci, 2, 0);
3388c37e04ec0e3 Takashi Iwai 2006-10-06 1081 else
7835e0901e245aa Takashi Iwai 2021-07-15 1082 chip->addr = pcim_iomap(pci, 0, 0);
3388c37e04ec0e3 Takashi Iwai 2006-10-06 1083 if (pci_resource_flags(pci, 3) & IORESOURCE_MEM) /* ICH4 */
7835e0901e245aa Takashi Iwai 2021-07-15 1084 chip->bmaddr = pcim_iomap(pci, 3, 0);
3388c37e04ec0e3 Takashi Iwai 2006-10-06 1085 else
7835e0901e245aa Takashi Iwai 2021-07-15 1086 chip->bmaddr = pcim_iomap(pci, 1, 0);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1087 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1088
^1da177e4c3f415 Linus Torvalds 2005-04-16 1089 /* initialize offsets */
^1da177e4c3f415 Linus Torvalds 2005-04-16 1090 chip->bdbars_count = 2;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1091 tbl = intel_regs;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1092
^1da177e4c3f415 Linus Torvalds 2005-04-16 1093 for (i = 0; i < chip->bdbars_count; i++) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1094 ichdev = &chip->ichd[i];
^1da177e4c3f415 Linus Torvalds 2005-04-16 1095 ichdev->ichd = i;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1096 ichdev->reg_offset = tbl[i].offset;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1097 ichdev->int_sta_mask = tbl[i].int_sta_mask;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1098 if (device_type == DEVICE_SIS) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1099 /* SiS 7013 swaps the registers */
^1da177e4c3f415 Linus Torvalds 2005-04-16 1100 ichdev->roff_sr = ICH_REG_OFF_PICB;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1101 ichdev->roff_picb = ICH_REG_OFF_SR;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1102 } else {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1103 ichdev->roff_sr = ICH_REG_OFF_SR;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1104 ichdev->roff_picb = ICH_REG_OFF_PICB;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1105 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1106 if (device_type == DEVICE_ALI)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1107 ichdev->ali_slot = (ichdev->reg_offset - 0x40) / 0x10;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1108 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1109 /* SIS7013 handles the pcm data in bytes, others are in words */
^1da177e4c3f415 Linus Torvalds 2005-04-16 1110 chip->pcm_pos_shift = (device_type == DEVICE_SIS) ? 0 : 1;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1111
^1da177e4c3f415 Linus Torvalds 2005-04-16 1112 /* allocate buffer descriptor lists */
^1da177e4c3f415 Linus Torvalds 2005-04-16 1113 /* the start of each lists must be aligned to 8 bytes */
7835e0901e245aa Takashi Iwai 2021-07-15 1114 chip->bdbars = snd_devm_alloc_pages(&pci->dev, SNDRV_DMA_TYPE_DEV,
7835e0901e245aa Takashi Iwai 2021-07-15 1115 chip->bdbars_count * sizeof(u32) *
7835e0901e245aa Takashi Iwai 2021-07-15 1116 ICH_MAX_FRAGS * 2);
7835e0901e245aa Takashi Iwai 2021-07-15 1117 if (!chip->bdbars)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1118 return -ENOMEM;
7835e0901e245aa Takashi Iwai 2021-07-15 1119
^1da177e4c3f415 Linus Torvalds 2005-04-16 1120 /* tables must be aligned to 8 bytes here, but the kernel pages
^1da177e4c3f415 Linus Torvalds 2005-04-16 1121 are much bigger, so we don't care (on i386) */
^1da177e4c3f415 Linus Torvalds 2005-04-16 1122 int_sta_masks = 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1123 for (i = 0; i < chip->bdbars_count; i++) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1124 ichdev = &chip->ichd[i];
7835e0901e245aa Takashi Iwai 2021-07-15 1125 ichdev->bdbar = ((__le32 *)chip->bdbars->area) + (i * ICH_MAX_FRAGS * 2);
7835e0901e245aa Takashi Iwai 2021-07-15 1126 ichdev->bdbar_addr = chip->bdbars->addr + (i * sizeof(u32) * ICH_MAX_FRAGS * 2);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1127 int_sta_masks |= ichdev->int_sta_mask;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1128 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1129 chip->int_sta_reg = ICH_REG_GLOB_STA;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1130 chip->int_sta_mask = int_sta_masks;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1131
7064f376d4a1068 Takashi Iwai 2018-08-28 1132 pci_set_master(pci);
7064f376d4a1068 Takashi Iwai 2018-08-28 1133
3a5f3dd3295288d Takashi Iwai 2021-06-08 1134 err = snd_intel8x0m_chip_init(chip, 1);
7835e0901e245aa Takashi Iwai 2021-07-15 1135 if (err < 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1136 return err;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1137
7835e0901e245aa Takashi Iwai 2021-07-15 1138 /* NOTE: we don't use devm version here since it's released /
7835e0901e245aa Takashi Iwai 2021-07-15 1139 * re-acquired in PM callbacks.
7835e0901e245aa Takashi Iwai 2021-07-15 1140 * It's released explicitly in snd_intel8x0m_free(), too.
7835e0901e245aa Takashi Iwai 2021-07-15 1141 */
7064f376d4a1068 Takashi Iwai 2018-08-28 1142 if (request_irq(pci->irq, snd_intel8x0m_interrupt, IRQF_SHARED,
7064f376d4a1068 Takashi Iwai 2018-08-28 1143 KBUILD_MODNAME, chip)) {
7064f376d4a1068 Takashi Iwai 2018-08-28 1144 dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq);
7064f376d4a1068 Takashi Iwai 2018-08-28 1145 return -EBUSY;
7064f376d4a1068 Takashi Iwai 2018-08-28 1146 }
7064f376d4a1068 Takashi Iwai 2018-08-28 1147 chip->irq = pci->irq;
be1391c7858ffd7 Takashi Iwai 2019-12-10 1148 card->sync_irq = chip->irq;
7064f376d4a1068 Takashi Iwai 2018-08-28 1149
7835e0901e245aa Takashi Iwai 2021-07-15 1150 card->private_free = snd_intel8x0m_free;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1151
^1da177e4c3f415 Linus Torvalds 2005-04-16 @1152 return 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1153 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1154
:::::: The code at line 1152 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: 39689 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-08-12 23:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-12 23:20 [sound:topic/memalloc-noncontig 14/146] sound/pci/intel8x0m.c:1152 snd_intel8x0m_init() warn: 'pci' not released on lines: 1118, 1136, 1145 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.