Re: kernel/trace/ring_buffer.c:412:29-47: WARNING: casting value returned by memory allocation function to (struct buffer_page *) is useless.
Julia Lawall <[email protected]> Sat, 1 Aug 2026 09:05:10 +0200 (CEST)
| Newsgroups | dev.linux.lists.oe-kbuild-all,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 31 Jul 2026, Steven Rostedt wrote: > On Sat, 01 Aug 2026 08:10:14 +0800 > kernel test robot <[email protected]> wrote: > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > > head: 8ba098e6b6ff0db8edf28528d1552be261af30d4 > > commit: b1e7a590a0133606d3efd41aee38cdeac630b52f ring-buffer: Add helper functions for allocations > > date: 8 months ago > > config: openrisc-randconfig-r062-20260801 (https://download.01.org/0day-ci/archive/20260801/[email protected]/config) > > compiler: or1k-linux-gcc (GCC) 9.5.0 > > > > 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 > > | Fixes: b1e7a590a013 ("ring-buffer: Add helper functions for allocations") > > | Reported-by: kernel test robot <[email protected]> > > | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ > > > > cocci warnings: (new ones prefixed by >>) > > >> kernel/trace/ring_buffer.c:412:29-47: WARNING: casting value returned by memory allocation function to (struct buffer_page *) is useless. > > >> kernel/trace/ring_buffer.c:408:31-57: WARNING: casting value returned by memory allocation function to (struct ring_buffer_per_cpu *) is useless. > > No, whatever Coccinelle script that reported this is broken. > > The typecast is in a macro. The macro is adding the typecast to make > sure that what it is being assigned to is of the proper type. > > Hence, it is very *useful*! Thanks for the report. I will remove the warning in the case of a macro body. Is there some reason why it is not an inline function? julia > > -- Steve > > > > > > vim +412 kernel/trace/ring_buffer.c > > > > 403 > > 404 /* > > 405 * For best performance, allocate cpu buffer data cache line sized > > 406 * and per CPU. > > 407 */ > > > 408 #define alloc_cpu_buffer(cpu) (struct ring_buffer_per_cpu *) \ > > 409 kzalloc_node(ALIGN(sizeof(struct ring_buffer_per_cpu), \ > > 410 cache_line_size()), GFP_KERNEL, cpu_to_node(cpu)); > > 411 > > > 412 #define alloc_cpu_page(cpu) (struct buffer_page *) \ > > 413 kzalloc_node(ALIGN(sizeof(struct buffer_page), \ > > 414 cache_line_size()), GFP_KERNEL, cpu_to_node(cpu)); > > 415 > > > > -- > > 0-DAY CI Kernel Test Service > > https://github.com/intel/lkp-tests/wiki > >