Re: [PATCH v5 1/2] ring-buffer: Introducing ring-buffer mapping functions

From: kernel test robot
Date: Fri Jul 28 2023 - 23:45:00 EST


Hi Vincent,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[cannot apply to rostedt-trace/for-next rostedt-trace/for-next-urgent]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Vincent-Donnefort/ring-buffer-Introducing-ring-buffer-mapping-functions/20230729-005300
base: linus/master
patch link: https://lore.kernel.org/r/20230728164754.460767-2-vdonnefort%40google.com
patch subject: [PATCH v5 1/2] ring-buffer: Introducing ring-buffer mapping functions
config: arm-randconfig-r046-20230728 (https://download.01.org/0day-ci/archive/20230729/202307291143.HTPVZOsb-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230729/202307291143.HTPVZOsb-lkp@xxxxxxxxx/reproduce)

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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307291143.HTPVZOsb-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from arch/arm/include/asm/page.h:193,
from arch/arm/include/asm/thread_info.h:14,
from include/linux/thread_info.h:60,
from include/asm-generic/preempt.h:5,
from ./arch/arm/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:79,
from include/linux/percpu.h:6,
from include/linux/context_tracking_state.h:5,
from include/linux/hardirq.h:5,
from include/linux/interrupt.h:11,
from include/linux/trace_recursion.h:5,
from kernel/trace/ring_buffer.c:7:
kernel/trace/ring_buffer.c: In function 'rb_free_page_ids':
>> kernel/trace/ring_buffer.c:5946:50: warning: passing argument 1 of 'virt_to_pfn' makes pointer from integer without a cast [-Wint-conversion]
5946 | virt_to_page(cpu_buffer->page_ids[i])->mapping = NULL;
| ~~~~~~~~~~~~~~~~~~~~^~~
| |
| long unsigned int
include/asm-generic/memory_model.h:18:46: note: in definition of macro '__pfn_to_page'
18 | #define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET))
| ^~~
kernel/trace/ring_buffer.c:5946:17: note: in expansion of macro 'virt_to_page'
5946 | virt_to_page(cpu_buffer->page_ids[i])->mapping = NULL;
| ^~~~~~~~~~~~
In file included from arch/arm/include/asm/page.h:188:
arch/arm/include/asm/memory.h:296:53: note: expected 'const void *' but argument is of type 'long unsigned int'
296 | static inline unsigned long virt_to_pfn(const void *p)
| ~~~~~~~~~~~~^
kernel/trace/ring_buffer.c: In function 'rb_free_meta_page':
kernel/trace/ring_buffer.c:5968:22: warning: passing argument 1 of 'virt_to_pfn' makes pointer from integer without a cast [-Wint-conversion]
5968 | virt_to_page(addr)->mapping = NULL;
| ^~~~
| |
| long unsigned int
include/asm-generic/memory_model.h:18:46: note: in definition of macro '__pfn_to_page'
18 | #define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET))
| ^~~
kernel/trace/ring_buffer.c:5968:9: note: in expansion of macro 'virt_to_page'
5968 | virt_to_page(addr)->mapping = NULL;
| ^~~~~~~~~~~~
arch/arm/include/asm/memory.h:296:53: note: expected 'const void *' but argument is of type 'long unsigned int'
296 | static inline unsigned long virt_to_pfn(const void *p)
| ~~~~~~~~~~~~^
kernel/trace/ring_buffer.c: In function 'ring_buffer_map_fault':
kernel/trace/ring_buffer.c:6156:49: warning: passing argument 1 of 'virt_to_pfn' makes pointer from integer without a cast [-Wint-conversion]
6156 | return virt_to_page(cpu_buffer->page_ids[pgoff]);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
| |
| long unsigned int
include/asm-generic/memory_model.h:18:46: note: in definition of macro '__pfn_to_page'
18 | #define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET))
| ^~~
kernel/trace/ring_buffer.c:6156:16: note: in expansion of macro 'virt_to_page'
6156 | return virt_to_page(cpu_buffer->page_ids[pgoff]);
| ^~~~~~~~~~~~
arch/arm/include/asm/memory.h:296:53: note: expected 'const void *' but argument is of type 'long unsigned int'
296 | static inline unsigned long virt_to_pfn(const void *p)
| ~~~~~~~~~~~~^


vim +/virt_to_pfn +5946 kernel/trace/ring_buffer.c

5940
5941 static void rb_free_page_ids(struct ring_buffer_per_cpu *cpu_buffer)
5942 {
5943 int i;
5944
5945 for (i = 0; i < cpu_buffer->nr_pages + 1; i++)
> 5946 virt_to_page(cpu_buffer->page_ids[i])->mapping = NULL;
5947
5948 kfree(cpu_buffer->page_ids);
5949 cpu_buffer->page_ids = NULL;
5950 }
5951

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki