[tiwai-sound:for-next 11/11] sound/core/pcm_memory.c:196:37: error: incompatible pointer types passing 'size_t *' (aka 'unsigned int *') to parameter of type 'unsigned long *'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next head: 61bc4deff033181992408f973b48fca08757d3ff commit: 61bc4deff033181992408f973b48fca08757d3ff [11/11] ALSA: pcm: replace simple_strtoul to kstrtoul config: hexagon-randconfig-002-20240901 (https://download.01.org/0day-ci/archive/20240901/202409010509.nOL6xTD7-lkp@i...) compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 46fe36a4295f05d5d3731762e31fc4e6e99863e9) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240901/202409010509.nOL6xTD7-lkp@i...)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202409010509.nOL6xTD7-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from sound/core/pcm_memory.c:7: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:548:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 548 | val = __raw_readb(PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:561:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 561 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' 37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ^ In file included from sound/core/pcm_memory.c:7: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:574:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 574 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu' 35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) | ^ In file included from sound/core/pcm_memory.c:7: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:585:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 585 | __raw_writeb(value, PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:595:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 595 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:605:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 605 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ In file included from sound/core/pcm_memory.c:14: In file included from include/sound/pcm.h:15: In file included from include/linux/mm.h:2228: include/linux/vmstat.h:517:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 517 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~
sound/core/pcm_memory.c:196:37: error: incompatible pointer types passing 'size_t *' (aka 'unsigned int *') to parameter of type 'unsigned long *' [-Werror,-Wincompatible-pointer-types]
196 | buffer->error = kstrtoul(str, 10, &size); | ^~~~~ include/linux/kstrtox.h:30:90: note: passing argument to parameter 'res' here 30 | static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res) | ^ 7 warnings and 1 error generated.
vim +196 sound/core/pcm_memory.c
174 175 /* 176 * write callback for prealloc proc file 177 * 178 * accepts the preallocation size in kB. 179 */ 180 static void snd_pcm_lib_preallocate_proc_write(struct snd_info_entry *entry, 181 struct snd_info_buffer *buffer) 182 { 183 struct snd_pcm_substream *substream = entry->private_data; 184 struct snd_card *card = substream->pcm->card; 185 char line[64], str[64]; 186 size_t size; 187 struct snd_dma_buffer new_dmab; 188 189 guard(mutex)(&substream->pcm->open_mutex); 190 if (substream->runtime) { 191 buffer->error = -EBUSY; 192 return; 193 } 194 if (!snd_info_get_line(buffer, line, sizeof(line))) { 195 snd_info_get_str(str, line, sizeof(str));
196 buffer->error = kstrtoul(str, 10, &size);
197 if (buffer->error != 0) 198 return; 199 size *= 1024; 200 if ((size != 0 && size < 8192) || size > substream->dma_max) { 201 buffer->error = -EINVAL; 202 return; 203 } 204 if (substream->dma_buffer.bytes == size) 205 return; 206 memset(&new_dmab, 0, sizeof(new_dmab)); 207 new_dmab.dev = substream->dma_buffer.dev; 208 if (size > 0) { 209 if (do_alloc_pages(card, 210 substream->dma_buffer.dev.type, 211 substream->dma_buffer.dev.dev, 212 substream->stream, 213 size, &new_dmab) < 0) { 214 buffer->error = -ENOMEM; 215 pr_debug("ALSA pcmC%dD%d%c,%d:%s: cannot preallocate for size %zu\n", 216 substream->pcm->card->number, substream->pcm->device, 217 substream->stream ? 'c' : 'p', substream->number, 218 substream->pcm->name, size); 219 return; 220 } 221 substream->buffer_bytes_max = size; 222 } else { 223 substream->buffer_bytes_max = UINT_MAX; 224 } 225 if (substream->dma_buffer.area) 226 do_free_pages(card, &substream->dma_buffer); 227 substream->dma_buffer = new_dmab; 228 } else { 229 buffer->error = -EINVAL; 230 } 231 } 232
participants (1)
-
kernel test robot