CC: [email protected] CC: Linux Memory Management List <[email protected]> TO: Takashi Iwai <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 90d856e71443a2fcacca8e7539bac44d9cb3f7ab commit: 7835e0901e245aa8b83d7e2964f17088cb2e1f1e [1754/3296] ALSA: intel8x0: Allocate resources with device-managed APIs :::::: branch date: 31 hours ago :::::: commit date: 5 days ago config: x86_64-randconfig-m001-20210724 (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 <[email protected]> Reported-by: Dan Carpenter <[email protected]> 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 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1045 7835e0901e245a Takashi Iwai 2021-07-15 1046 static int snd_intel8x0m_init(struct snd_card *card, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1047 struct pci_dev *pci, 7835e0901e245a Takashi Iwai 2021-07-15 1048 unsigned long device_type) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1049 { 7835e0901e245a Takashi Iwai 2021-07-15 1050 struct intel8x0m *chip = card->private_data; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1051 int err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1052 unsigned int i; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1053 unsigned int int_sta_masks; 6b75a9d8b6c794 Takashi Iwai 2005-11-17 1054 struct ichdev *ichdev; f729f88a04089d Takashi Iwai 2020-01-05 1055 static const struct ich_reg_info intel_regs[2] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1056 { ICH_MIINT, 0 }, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1057 { ICH_MOINT, 0x10 }, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1058 }; f729f88a04089d Takashi Iwai 2020-01-05 1059 const struct ich_reg_info *tbl; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1060 7835e0901e245a Takashi Iwai 2021-07-15 1061 err = pcim_enable_device(pci); 3a5f3dd3295288 Takashi Iwai 2021-06-08 1062 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1063 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1064 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1065 spin_lock_init(&chip->reg_lock); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1066 chip->device_type = device_type; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1067 chip->card = card; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1068 chip->pci = pci; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1069 chip->irq = -1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1070 3a5f3dd3295288 Takashi Iwai 2021-06-08 1071 err = pci_request_regions(pci, card->shortname); 7835e0901e245a Takashi Iwai 2021-07-15 1072 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1073 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1074 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1075 if (device_type == DEVICE_ALI) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1076 /* ALI5455 has no ac97 region */ 7835e0901e245a Takashi Iwai 2021-07-15 1077 chip->bmaddr = pcim_iomap(pci, 0, 0); 7835e0901e245a Takashi Iwai 2021-07-15 1078 } else { 3388c37e04ec0e Takashi Iwai 2006-10-06 1079 if (pci_resource_flags(pci, 2) & IORESOURCE_MEM) /* ICH4 and Nforce */ 7835e0901e245a Takashi Iwai 2021-07-15 1080 chip->addr = pcim_iomap(pci, 2, 0); 3388c37e04ec0e Takashi Iwai 2006-10-06 1081 else 7835e0901e245a Takashi Iwai 2021-07-15 1082 chip->addr = pcim_iomap(pci, 0, 0); 3388c37e04ec0e Takashi Iwai 2006-10-06 1083 if (pci_resource_flags(pci, 3) & IORESOURCE_MEM) /* ICH4 */ 7835e0901e245a Takashi Iwai 2021-07-15 1084 chip->bmaddr = pcim_iomap(pci, 3, 0); 3388c37e04ec0e Takashi Iwai 2006-10-06 1085 else 7835e0901e245a Takashi Iwai 2021-07-15 1086 chip->bmaddr = pcim_iomap(pci, 1, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1087 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1088 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1089 /* initialize offsets */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1090 chip->bdbars_count = 2; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1091 tbl = intel_regs; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1092 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1093 for (i = 0; i < chip->bdbars_count; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1094 ichdev = &chip->ichd[i]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1095 ichdev->ichd = i; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1096 ichdev->reg_offset = tbl[i].offset; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1097 ichdev->int_sta_mask = tbl[i].int_sta_mask; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1098 if (device_type == DEVICE_SIS) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1099 /* SiS 7013 swaps the registers */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1100 ichdev->roff_sr = ICH_REG_OFF_PICB; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1101 ichdev->roff_picb = ICH_REG_OFF_SR; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1102 } else { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1103 ichdev->roff_sr = ICH_REG_OFF_SR; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1104 ichdev->roff_picb = ICH_REG_OFF_PICB; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1105 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1106 if (device_type == DEVICE_ALI) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1107 ichdev->ali_slot = (ichdev->reg_offset - 0x40) / 0x10; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1108 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1109 /* SIS7013 handles the pcm data in bytes, others are in words */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1110 chip->pcm_pos_shift = (device_type == DEVICE_SIS) ? 0 : 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1111 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1112 /* allocate buffer descriptor lists */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1113 /* the start of each lists must be aligned to 8 bytes */ 7835e0901e245a Takashi Iwai 2021-07-15 1114 chip->bdbars = snd_devm_alloc_pages(&pci->dev, SNDRV_DMA_TYPE_DEV, 7835e0901e245a Takashi Iwai 2021-07-15 1115 chip->bdbars_count * sizeof(u32) * 7835e0901e245a Takashi Iwai 2021-07-15 1116 ICH_MAX_FRAGS * 2); 7835e0901e245a Takashi Iwai 2021-07-15 1117 if (!chip->bdbars) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1118 return -ENOMEM; 7835e0901e245a Takashi Iwai 2021-07-15 1119 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1120 /* tables must be aligned to 8 bytes here, but the kernel pages ^1da177e4c3f41 Linus Torvalds 2005-04-16 1121 are much bigger, so we don't care (on i386) */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1122 int_sta_masks = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1123 for (i = 0; i < chip->bdbars_count; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1124 ichdev = &chip->ichd[i]; 7835e0901e245a Takashi Iwai 2021-07-15 1125 ichdev->bdbar = ((__le32 *)chip->bdbars->area) + (i * ICH_MAX_FRAGS * 2); 7835e0901e245a Takashi Iwai 2021-07-15 1126 ichdev->bdbar_addr = chip->bdbars->addr + (i * sizeof(u32) * ICH_MAX_FRAGS * 2); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1127 int_sta_masks |= ichdev->int_sta_mask; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1128 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1129 chip->int_sta_reg = ICH_REG_GLOB_STA; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1130 chip->int_sta_mask = int_sta_masks; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1131 7064f376d4a106 Takashi Iwai 2018-08-28 1132 pci_set_master(pci); 7064f376d4a106 Takashi Iwai 2018-08-28 1133 3a5f3dd3295288 Takashi Iwai 2021-06-08 1134 err = snd_intel8x0m_chip_init(chip, 1); 7835e0901e245a Takashi Iwai 2021-07-15 1135 if (err < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1136 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1137 7835e0901e245a Takashi Iwai 2021-07-15 1138 /* NOTE: we don't use devm version here since it's released / 7835e0901e245a Takashi Iwai 2021-07-15 1139 * re-acquired in PM callbacks. 7835e0901e245a Takashi Iwai 2021-07-15 1140 * It's released explicitly in snd_intel8x0m_free(), too. 7835e0901e245a Takashi Iwai 2021-07-15 1141 */ 7064f376d4a106 Takashi Iwai 2018-08-28 1142 if (request_irq(pci->irq, snd_intel8x0m_interrupt, IRQF_SHARED, 7064f376d4a106 Takashi Iwai 2018-08-28 1143 KBUILD_MODNAME, chip)) { 7064f376d4a106 Takashi Iwai 2018-08-28 1144 dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); 7064f376d4a106 Takashi Iwai 2018-08-28 1145 return -EBUSY; 7064f376d4a106 Takashi Iwai 2018-08-28 1146 } 7064f376d4a106 Takashi Iwai 2018-08-28 1147 chip->irq = pci->irq; be1391c7858ffd Takashi Iwai 2019-12-10 1148 card->sync_irq = chip->irq; 7064f376d4a106 Takashi Iwai 2018-08-28 1149 7835e0901e245a Takashi Iwai 2021-07-15 1150 card->private_free = snd_intel8x0m_free; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1151 ^1da177e4c3f41 Linus Torvalds 2005-04-16 @1152 return 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1153 } ^1da177e4c3f41 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 <[email protected]> :::::: CC: Linus Torvalds <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
