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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to