CC: [email protected] BCC: [email protected] CC: [email protected] TO: Masahiro Yamada <[email protected]> CC: Andrew Morton <[email protected]> CC: Linux Memory Management List <[email protected]>
Hi Masahiro, First bad commit (maybe != root cause): tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 23d04328444a8fa0ca060c5e532220dac8e8bc26 commit: ea29b20a828511de3348334e529a3d046a180416 init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM date: 12 months ago :::::: branch date: 11 hours ago :::::: commit date: 12 months ago config: s390-randconfig-m031-20220224 (https://download.01.org/0day-ci/archive/20220224/[email protected]/config) compiler: s390-linux-gcc (GCC) 11.2.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/cs5535audio/cs5535audio_pcm.c:136 cs5535audio_build_dma_packets() error: we previously assumed 'dma->desc_buf.area' could be null (see line 118) vim +136 sound/pci/cs5535audio/cs5535audio_pcm.c 9b4ffa48ae855c Jaya Kumar 2005-11-17 101 9b4ffa48ae855c Jaya Kumar 2005-11-17 102 #define CS5535AUDIO_DESC_LIST_SIZE \ 66f8df6bdd388d Takashi Iwai 2005-11-17 103 PAGE_ALIGN(CS5535AUDIO_MAX_DESCRIPTORS * sizeof(struct cs5535audio_dma_desc)) 9b4ffa48ae855c Jaya Kumar 2005-11-17 104 66f8df6bdd388d Takashi Iwai 2005-11-17 105 static int cs5535audio_build_dma_packets(struct cs5535audio *cs5535au, 66f8df6bdd388d Takashi Iwai 2005-11-17 106 struct cs5535audio_dma *dma, 66f8df6bdd388d Takashi Iwai 2005-11-17 107 struct snd_pcm_substream *substream, 9b4ffa48ae855c Jaya Kumar 2005-11-17 108 unsigned int periods, 9b4ffa48ae855c Jaya Kumar 2005-11-17 109 unsigned int period_bytes) 9b4ffa48ae855c Jaya Kumar 2005-11-17 110 { 9b4ffa48ae855c Jaya Kumar 2005-11-17 111 unsigned int i; 9b4ffa48ae855c Jaya Kumar 2005-11-17 112 u32 addr, desc_addr, jmpprd_addr; 66f8df6bdd388d Takashi Iwai 2005-11-17 113 struct cs5535audio_dma_desc *lastdesc; 9b4ffa48ae855c Jaya Kumar 2005-11-17 114 9b4ffa48ae855c Jaya Kumar 2005-11-17 115 if (periods > CS5535AUDIO_MAX_DESCRIPTORS) 9b4ffa48ae855c Jaya Kumar 2005-11-17 116 return -ENOMEM; 9b4ffa48ae855c Jaya Kumar 2005-11-17 117 9b4ffa48ae855c Jaya Kumar 2005-11-17 @118 if (dma->desc_buf.area == NULL) { 9b4ffa48ae855c Jaya Kumar 2005-11-17 119 if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, 6974f8ad449467 Takashi Iwai 2019-11-05 120 &cs5535au->pci->dev, 9b4ffa48ae855c Jaya Kumar 2005-11-17 121 CS5535AUDIO_DESC_LIST_SIZE+1, 9b4ffa48ae855c Jaya Kumar 2005-11-17 122 &dma->desc_buf) < 0) 9b4ffa48ae855c Jaya Kumar 2005-11-17 123 return -ENOMEM; 9b4ffa48ae855c Jaya Kumar 2005-11-17 124 dma->period_bytes = dma->periods = 0; 9b4ffa48ae855c Jaya Kumar 2005-11-17 125 } 9b4ffa48ae855c Jaya Kumar 2005-11-17 126 9b4ffa48ae855c Jaya Kumar 2005-11-17 127 if (dma->periods == periods && dma->period_bytes == period_bytes) 9b4ffa48ae855c Jaya Kumar 2005-11-17 128 return 0; 9b4ffa48ae855c Jaya Kumar 2005-11-17 129 d6e05edc59ecd7 Andreas Mohr 2006-06-26 130 /* the u32 cast is okay because in snd*create we successfully told 9b4ffa48ae855c Jaya Kumar 2005-11-17 131 pci alloc that we're only 32 bit capable so the uppper will be 0 */ 9b4ffa48ae855c Jaya Kumar 2005-11-17 132 addr = (u32) substream->runtime->dma_addr; 9b4ffa48ae855c Jaya Kumar 2005-11-17 133 desc_addr = (u32) dma->desc_buf.addr; 9b4ffa48ae855c Jaya Kumar 2005-11-17 134 for (i = 0; i < periods; i++) { 66f8df6bdd388d Takashi Iwai 2005-11-17 135 struct cs5535audio_dma_desc *desc = 66f8df6bdd388d Takashi Iwai 2005-11-17 @136 &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[i]; 9b4ffa48ae855c Jaya Kumar 2005-11-17 137 desc->addr = cpu_to_le32(addr); 27533df80e93dc Dan Carpenter 2011-11-20 138 desc->size = cpu_to_le16(period_bytes); 71276410e17653 Takashi Iwai 2011-06-30 139 desc->ctlreserved = cpu_to_le16(PRD_EOP); 66f8df6bdd388d Takashi Iwai 2005-11-17 140 desc_addr += sizeof(struct cs5535audio_dma_desc); 9b4ffa48ae855c Jaya Kumar 2005-11-17 141 addr += period_bytes; 9b4ffa48ae855c Jaya Kumar 2005-11-17 142 } 9b4ffa48ae855c Jaya Kumar 2005-11-17 143 /* we reserved one dummy descriptor at the end to do the PRD jump */ 66f8df6bdd388d Takashi Iwai 2005-11-17 144 lastdesc = &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[periods]; 9b4ffa48ae855c Jaya Kumar 2005-11-17 145 lastdesc->addr = cpu_to_le32((u32) dma->desc_buf.addr); 9b4ffa48ae855c Jaya Kumar 2005-11-17 146 lastdesc->size = 0; 71276410e17653 Takashi Iwai 2011-06-30 147 lastdesc->ctlreserved = cpu_to_le16(PRD_JMP); 69756930f2de04 Takashi Iwai 2018-07-25 148 jmpprd_addr = (u32)dma->desc_buf.addr + 69756930f2de04 Takashi Iwai 2018-07-25 149 sizeof(struct cs5535audio_dma_desc) * periods; 9b4ffa48ae855c Jaya Kumar 2005-11-17 150 7abcacb09ac0f9 Andres Salomon 2007-09-03 151 dma->substream = substream; 9b4ffa48ae855c Jaya Kumar 2005-11-17 152 dma->period_bytes = period_bytes; 9b4ffa48ae855c Jaya Kumar 2005-11-17 153 dma->periods = periods; 9b4ffa48ae855c Jaya Kumar 2005-11-17 154 spin_lock_irq(&cs5535au->reg_lock); 9b4ffa48ae855c Jaya Kumar 2005-11-17 155 dma->ops->disable_dma(cs5535au); 9b4ffa48ae855c Jaya Kumar 2005-11-17 156 dma->ops->setup_prd(cs5535au, jmpprd_addr); 9b4ffa48ae855c Jaya Kumar 2005-11-17 157 spin_unlock_irq(&cs5535au->reg_lock); 9b4ffa48ae855c Jaya Kumar 2005-11-17 158 return 0; 9b4ffa48ae855c Jaya Kumar 2005-11-17 159 } 9b4ffa48ae855c Jaya Kumar 2005-11-17 160 :::::: The code at line 136 was first introduced by commit :::::: 66f8df6bdd388d209c38197785148c994c8a738d [ALSA] Remove xxx_t typedefs: PCI CS5535 :::::: TO: Takashi Iwai <[email protected]> :::::: CC: Jaroslav Kysela <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
