All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Gabriele Paoloni <gpaoloni@redhat.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [RFC PATCH v3 6/6] char: mem: add Kconfig option for devmem KUnit tests
Date: Sat, 14 Feb 2026 09:03:49 +0800	[thread overview]
Message-ID: <202602140816.WdBObaxN-lkp@intel.com> (raw)
In-Reply-To: <20260212124923.222484-7-gpaoloni@redhat.com>

Hi Gabriele,

[This is a private test report for your RFC patch.]
kernel test robot noticed the following build errors:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on char-misc/char-misc-next char-misc/char-misc-linus lwn/docs-next shuah-kselftest/kunit shuah-kselftest/kunit-fixes linus/master v6.19 next-20260213]
[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/Gabriele-Paoloni/Documentation-extend-the-Function-documentation-with-expected-behavior-and-constraints-of-use/20260212-205315
base:   char-misc/char-misc-testing
patch link:    https://lore.kernel.org/r/20260212124923.222484-7-gpaoloni%40redhat.com
patch subject: [RFC PATCH v3 6/6] char: mem: add Kconfig option for devmem KUnit tests
config: arc-randconfig-r073-20260214 (https://download.01.org/0day-ci/archive/20260214/202602140816.WdBObaxN-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 9.5.0
smatch version: v0.5.0-8994-gd50c5a4c
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260214/202602140816.WdBObaxN-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602140816.WdBObaxN-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/char/mem_kunit_test.c: In function 'edge_to_allowed_pair':
>> drivers/char/mem_kunit_test.c:351:2: error: label at end of compound statement
     351 |  default:
         |  ^~~~~~~
   drivers/char/mem_kunit_test.c: In function 'edge_requires_restricted':
   drivers/char/mem_kunit_test.c:364:2: error: label at end of compound statement
     364 |  default:
         |  ^~~~~~~
   drivers/char/mem_kunit_test.c: In function 'pick_mixed_policy_phys_addr':
>> drivers/char/mem_kunit_test.c:427:8: error: implicit declaration of function 'valid_phys_addr_range' [-Werror=implicit-function-declaration]
     427 |   if (!valid_phys_addr_range(start, count))
         |        ^~~~~~~~~~~~~~~~~~~~~
   drivers/char/mem_kunit_test.c: In function 'pick_phys_addr_type':
>> drivers/char/mem_kunit_test.c:577:40: warning: conversion from 'long long unsigned int' to 'long unsigned int' changes value from '18446744073709551615' to '4294967295' [-Woverflow]
     577 |   walk_iomem_res_desc(IORES_DESC_NONE, (u64)~0ULL, IORESOURCE_MEM, IORES_DESC_NONE,
         |                                        ^~~~~~~~~~
   drivers/char/mem_kunit_test.c:584:40: warning: conversion from 'long long unsigned int' to 'long unsigned int' changes value from '18446744073709551615' to '4294967295' [-Woverflow]
     584 |   walk_iomem_res_desc(IORES_DESC_NONE, (u64)~0ULL, IORESOURCE_MEM, IORES_DESC_NONE,
         |                                        ^~~~~~~~~~
   In file included from include/kunit/assert.h:13,
                    from include/kunit/test.h:12,
                    from drivers/char/mem_kunit_test.c:8:
   drivers/char/mem_kunit_test.c: In function 'read_mem_restricted_addr_single_test':
   include/linux/kern_levels.h:5:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
       5 | #define KERN_SOH "\001"  /* ASCII Start Of Header */
         |                  ^~~~~~
   include/linux/printk.h:484:11: note: in definition of macro 'printk_index_wrap'
     484 |   _p_func(_fmt, ##__VA_ARGS__);    \
         |           ^~~~
   include/kunit/test.h:661:3: note: in expansion of macro 'printk'
     661 |   printk(lvl fmt, ##__VA_ARGS__);    \
         |   ^~~~~~
   include/kunit/test.h:667:2: note: in expansion of macro 'kunit_log'
     667 |  kunit_log(lvl, test, KUNIT_SUBTEST_INDENT "# %s: " fmt,  \
         |  ^~~~~~~~~
   include/kunit/test.h:680:2: note: in expansion of macro 'kunit_printk'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
      14 | #define KERN_INFO KERN_SOH "6" /* informational */
         |                   ^~~~~~~~
   include/kunit/test.h:680:15: note: in expansion of macro 'KERN_INFO'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |               ^~~~~~~~~
   drivers/char/mem_kunit_test.c:858:2: note: in expansion of macro 'kunit_info'
     858 |  kunit_info(test, "base_phys=%pa, cnt=%ld\n", (u8 *)__va(res.base_phys), req.count);
         |  ^~~~~~~~~~
   drivers/char/mem_kunit_test.c:858:41: note: format string is defined here
     858 |  kunit_info(test, "base_phys=%pa, cnt=%ld\n", (u8 *)__va(res.base_phys), req.count);
         |                                       ~~^
         |                                         |
         |                                         long int
         |                                       %d
   In file included from drivers/char/mem_kunit_test.c:8:
>> include/kunit/test.h:51:31: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
      51 | #define KUNIT_SUBTEST_INDENT  "    "
         |                               ^~~~~~
   include/kunit/test.h:662:42: note: in definition of macro 'kunit_log'
     662 |   kunit_log_append((test_or_suite)->log, fmt,  \
         |                                          ^~~
   include/kunit/test.h:667:23: note: in expansion of macro 'KUNIT_SUBTEST_INDENT'
     667 |  kunit_log(lvl, test, KUNIT_SUBTEST_INDENT "# %s: " fmt,  \
         |                       ^~~~~~~~~~~~~~~~~~~~
   include/kunit/test.h:680:2: note: in expansion of macro 'kunit_printk'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~
   drivers/char/mem_kunit_test.c:858:2: note: in expansion of macro 'kunit_info'
     858 |  kunit_info(test, "base_phys=%pa, cnt=%ld\n", (u8 *)__va(res.base_phys), req.count);
         |  ^~~~~~~~~~
   drivers/char/mem_kunit_test.c:858:41: note: format string is defined here
     858 |  kunit_info(test, "base_phys=%pa, cnt=%ld\n", (u8 *)__va(res.base_phys), req.count);
         |                                       ~~^
         |                                         |
         |                                         long int
         |                                       %d
   In file included from include/kunit/assert.h:13,
                    from include/kunit/test.h:12,
                    from drivers/char/mem_kunit_test.c:8:
   drivers/char/mem_kunit_test.c: In function 'read_mem_ram_addr_single_test':
   include/linux/kern_levels.h:5:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
       5 | #define KERN_SOH "\001"  /* ASCII Start Of Header */
         |                  ^~~~~~
   include/linux/printk.h:484:11: note: in definition of macro 'printk_index_wrap'
     484 |   _p_func(_fmt, ##__VA_ARGS__);    \
         |           ^~~~
   include/kunit/test.h:661:3: note: in expansion of macro 'printk'
     661 |   printk(lvl fmt, ##__VA_ARGS__);    \
         |   ^~~~~~
   include/kunit/test.h:667:2: note: in expansion of macro 'kunit_log'
     667 |  kunit_log(lvl, test, KUNIT_SUBTEST_INDENT "# %s: " fmt,  \
         |  ^~~~~~~~~
   include/kunit/test.h:680:2: note: in expansion of macro 'kunit_printk'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
      14 | #define KERN_INFO KERN_SOH "6" /* informational */
         |                   ^~~~~~~~
   include/kunit/test.h:680:15: note: in expansion of macro 'KERN_INFO'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |               ^~~~~~~~~
   drivers/char/mem_kunit_test.c:912:2: note: in expansion of macro 'kunit_info'
     912 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |  ^~~~~~~~~~
   drivers/char/mem_kunit_test.c:912:47: note: format string is defined here
     912 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |                                             ~~^
         |                                               |
         |                                               long int
         |                                             %d
   In file included from drivers/char/mem_kunit_test.c:8:
>> include/kunit/test.h:51:31: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
      51 | #define KUNIT_SUBTEST_INDENT  "    "
         |                               ^~~~~~
   include/kunit/test.h:662:42: note: in definition of macro 'kunit_log'
     662 |   kunit_log_append((test_or_suite)->log, fmt,  \
         |                                          ^~~
   include/kunit/test.h:667:23: note: in expansion of macro 'KUNIT_SUBTEST_INDENT'
     667 |  kunit_log(lvl, test, KUNIT_SUBTEST_INDENT "# %s: " fmt,  \
         |                       ^~~~~~~~~~~~~~~~~~~~
   include/kunit/test.h:680:2: note: in expansion of macro 'kunit_printk'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~
   drivers/char/mem_kunit_test.c:912:2: note: in expansion of macro 'kunit_info'
     912 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |  ^~~~~~~~~~
   drivers/char/mem_kunit_test.c:912:47: note: format string is defined here
     912 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |                                             ~~^
         |                                               |
         |                                               long int
         |                                             %d
   In file included from include/kunit/assert.h:13,
                    from include/kunit/test.h:12,
                    from drivers/char/mem_kunit_test.c:8:
   drivers/char/mem_kunit_test.c: In function 'read_mem_cross_page_multi_test':
   include/linux/kern_levels.h:5:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
       5 | #define KERN_SOH "\001"  /* ASCII Start Of Header */
         |                  ^~~~~~
   include/linux/printk.h:484:11: note: in definition of macro 'printk_index_wrap'
     484 |   _p_func(_fmt, ##__VA_ARGS__);    \
         |           ^~~~
   include/kunit/test.h:661:3: note: in expansion of macro 'printk'
     661 |   printk(lvl fmt, ##__VA_ARGS__);    \
         |   ^~~~~~
   include/kunit/test.h:667:2: note: in expansion of macro 'kunit_log'
     667 |  kunit_log(lvl, test, KUNIT_SUBTEST_INDENT "# %s: " fmt,  \
         |  ^~~~~~~~~
   include/kunit/test.h:680:2: note: in expansion of macro 'kunit_printk'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
      14 | #define KERN_INFO KERN_SOH "6" /* informational */
         |                   ^~~~~~~~
   include/kunit/test.h:680:15: note: in expansion of macro 'KERN_INFO'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |               ^~~~~~~~~
   drivers/char/mem_kunit_test.c:1034:2: note: in expansion of macro 'kunit_info'
    1034 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |  ^~~~~~~~~~
   drivers/char/mem_kunit_test.c:1034:47: note: format string is defined here
    1034 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |                                             ~~^
         |                                               |
         |                                               long int
         |                                             %d
   In file included from drivers/char/mem_kunit_test.c:8:
>> include/kunit/test.h:51:31: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
      51 | #define KUNIT_SUBTEST_INDENT  "    "
         |                               ^~~~~~
   include/kunit/test.h:662:42: note: in definition of macro 'kunit_log'
     662 |   kunit_log_append((test_or_suite)->log, fmt,  \
         |                                          ^~~
   include/kunit/test.h:667:23: note: in expansion of macro 'KUNIT_SUBTEST_INDENT'
     667 |  kunit_log(lvl, test, KUNIT_SUBTEST_INDENT "# %s: " fmt,  \
         |                       ^~~~~~~~~~~~~~~~~~~~
   include/kunit/test.h:680:2: note: in expansion of macro 'kunit_printk'
     680 |  kunit_printk(KERN_INFO, test, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~
   drivers/char/mem_kunit_test.c:1034:2: note: in expansion of macro 'kunit_info'
    1034 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |  ^~~~~~~~~~
   drivers/char/mem_kunit_test.c:1034:47: note: format string is defined here
    1034 |  kunit_info(test, "res.backing_kbuf=%p, cnt=%ld\n", (u8 *)res.backing_kbuf, req.count);
         |                                             ~~^
         |                                               |
         |                                               long int
         |                                             %d
   cc1: some warnings being treated as errors


vim +351 drivers/char/mem_kunit_test.c

a3f15e5663b7bf Alessandro Carminati 2026-02-12  323  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  324  static inline int edge_to_allowed_pair(enum phys_addr_type t, int *a, int *b)
a3f15e5663b7bf Alessandro Carminati 2026-02-12  325  {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  326  	switch (t) {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  327  	case PHYS_EDGE_ALLOWED_RESTRICTED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  328  		*a = 1;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  329  		*b = 2;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  330  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  331  	case PHYS_EDGE_RESTRICTED_ALLOWED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  332  		*a = 2;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  333  		*b = 1;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  334  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  335  	case PHYS_EDGE_ALLOWED_DENIED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  336  		*a = 1;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  337  		*b = 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  338  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  339  	case PHYS_EDGE_DENIED_ALLOWED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  340  		*a = 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  341  		*b = 1;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  342  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  343  	case PHYS_EDGE_RESTRICTED_DENIED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  344  		*a = 2;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  345  		*b = 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  346  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  347  	case PHYS_EDGE_DENIED_RESTRICTED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  348  		*a = 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  349  		*b = 2;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  350  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12 @351  	default:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  352  	}
a3f15e5663b7bf Alessandro Carminati 2026-02-12  353  	return 1;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  354  }
a3f15e5663b7bf Alessandro Carminati 2026-02-12  355  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  356  static inline bool edge_requires_restricted(enum phys_addr_type t)
a3f15e5663b7bf Alessandro Carminati 2026-02-12  357  {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  358  	switch (t) {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  359  	case PHYS_EDGE_ALLOWED_RESTRICTED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  360  	case PHYS_EDGE_RESTRICTED_ALLOWED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  361  	case PHYS_EDGE_RESTRICTED_DENIED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  362  	case PHYS_EDGE_DENIED_RESTRICTED:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  363  		return true;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  364  	default:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  365  	}
a3f15e5663b7bf Alessandro Carminati 2026-02-12  366  	return false;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  367  }
a3f15e5663b7bf Alessandro Carminati 2026-02-12  368  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  369  /**
a3f15e5663b7bf Alessandro Carminati 2026-02-12  370   * pick_mixed_policy_phys_addr - Pick a physical address matching a policy edge
a3f15e5663b7bf Alessandro Carminati 2026-02-12  371   * @test: KUnit test context.
a3f15e5663b7bf Alessandro Carminati 2026-02-12  372   * @count: Number of bytes to be read (must be >= 2 and <= PAGE_SIZE for edges).
a3f15e5663b7bf Alessandro Carminati 2026-02-12  373   * @t: Desired address type (basic or edge).
a3f15e5663b7bf Alessandro Carminati 2026-02-12  374   *
a3f15e5663b7bf Alessandro Carminati 2026-02-12  375   * It scans PFNs looking for adjacent pages (pfn, pfn+1) whose page_is_allowed()
a3f15e5663b7bf Alessandro Carminati 2026-02-12  376   * values match the requested transition and returns a start address positioned
a3f15e5663b7bf Alessandro Carminati 2026-02-12  377   * at the last byte of the first page so the access spans the boundary.
a3f15e5663b7bf Alessandro Carminati 2026-02-12  378   *
a3f15e5663b7bf Alessandro Carminati 2026-02-12  379   * Constraints assumed by this helper:
a3f15e5663b7bf Alessandro Carminati 2026-02-12  380   *  - @count is never greater than PAGE_SIZE. With start at
a3f15e5663b7bf Alessandro Carminati 2026-02-12  381   *    (PAGE_SIZE - count / 2), this ensures the access spans two pages.
a3f15e5663b7bf Alessandro Carminati 2026-02-12  382   *  - If CONFIG_STRICT_DEVMEM is not enabled, edges involving RESTRICTED (2)
a3f15e5663b7bf Alessandro Carminati 2026-02-12  383   *    are treated as not present and return 0.
a3f15e5663b7bf Alessandro Carminati 2026-02-12  384   *
a3f15e5663b7bf Alessandro Carminati 2026-02-12  385   * Return: physical start address, or 0 if none found.
a3f15e5663b7bf Alessandro Carminati 2026-02-12  386   */
a3f15e5663b7bf Alessandro Carminati 2026-02-12  387  static phys_addr_t pick_mixed_policy_phys_addr(struct kunit *test, size_t count,
a3f15e5663b7bf Alessandro Carminati 2026-02-12  388  					       enum phys_addr_type t)
a3f15e5663b7bf Alessandro Carminati 2026-02-12  389  {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  390  	phys_addr_t start;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  391  	unsigned long pfn;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  392  	int want_a, want_b;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  393  	int a, b;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  394  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  395  	if (edge_to_allowed_pair(t, &want_a, &want_b)) {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  396  		kunit_info(test, "Unsupported edge type %d\n", t);
a3f15e5663b7bf Alessandro Carminati 2026-02-12  397  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  398  	}
a3f15e5663b7bf Alessandro Carminati 2026-02-12  399  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  400  	if (count < 2) {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  401  		kunit_info(test, "Count=%zu too small for edge type %d\n",
a3f15e5663b7bf Alessandro Carminati 2026-02-12  402  			   count, t);
a3f15e5663b7bf Alessandro Carminati 2026-02-12  403  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  404  	}
a3f15e5663b7bf Alessandro Carminati 2026-02-12  405  	if (count > PAGE_SIZE) {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  406  		kunit_info(test, "Count=%zu > PAGE_SIZE not supported for edge type %d\n",
a3f15e5663b7bf Alessandro Carminati 2026-02-12  407  			   count, t);
a3f15e5663b7bf Alessandro Carminati 2026-02-12  408  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  409  	}
a3f15e5663b7bf Alessandro Carminati 2026-02-12  410  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  411  	if (!IS_ENABLED(CONFIG_STRICT_DEVMEM) && edge_requires_restricted(t)) {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  412  		kunit_info(test, "No restricted edges when CONFIG_STRICT_DEVMEM is disabled\n");
a3f15e5663b7bf Alessandro Carminati 2026-02-12  413  		return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  414  	}
a3f15e5663b7bf Alessandro Carminati 2026-02-12  415  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  416  	for (pfn = 0; pfn + 1 < max_pfn; pfn++) {
a3f15e5663b7bf Alessandro Carminati 2026-02-12  417  		a = page_is_allowed(pfn);
a3f15e5663b7bf Alessandro Carminati 2026-02-12  418  		if (a != want_a)
a3f15e5663b7bf Alessandro Carminati 2026-02-12  419  			continue;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  420  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  421  		b = page_is_allowed(pfn + 1);
a3f15e5663b7bf Alessandro Carminati 2026-02-12  422  		if (b != want_b)
a3f15e5663b7bf Alessandro Carminati 2026-02-12  423  			continue;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  424  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  425  		start = PFN_PHYS(pfn) + PAGE_SIZE - count / 2;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  426  
a3f15e5663b7bf Alessandro Carminati 2026-02-12 @427  		if (!valid_phys_addr_range(start, count))
a3f15e5663b7bf Alessandro Carminati 2026-02-12  428  			continue;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  429  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  430  		kunit_info(test,
a3f15e5663b7bf Alessandro Carminati 2026-02-12  431  			   "found edge %d at pfn=%lu (a=%d b=%d) start=0x%llx count=%zu\n",
a3f15e5663b7bf Alessandro Carminati 2026-02-12  432  			   t, pfn, a, b, (unsigned long long)start, count);
a3f15e5663b7bf Alessandro Carminati 2026-02-12  433  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  434  		return start;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  435  	}
a3f15e5663b7bf Alessandro Carminati 2026-02-12  436  
a3f15e5663b7bf Alessandro Carminati 2026-02-12  437  	kunit_info(test, "no match for edge %d found\n", t);
a3f15e5663b7bf Alessandro Carminati 2026-02-12  438  	return 0;
a3f15e5663b7bf Alessandro Carminati 2026-02-12  439  }
a3f15e5663b7bf Alessandro Carminati 2026-02-12  440  

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

      reply	other threads:[~2026-02-14  1:03 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-12 12:49 [RFC PATCH v3 0/6] some /dev/mem specifications and traced testing Gabriele Paoloni
2026-02-12 12:49 ` [RFC PATCH v3 1/6] Documentation: extend the 'Function documentation' with expected behavior and constraints of use Gabriele Paoloni
2026-02-12 12:59   ` Greg KH
2026-02-12 14:00     ` Gabriele Paoloni
2026-02-12 15:23       ` Greg KH
2026-02-13 17:13         ` Gabriele Paoloni
2026-02-12 12:49 ` [RFC PATCH v3 2/6] /dev/mem: Add initial documentation of memory_open() and mem_fops Gabriele Paoloni
2026-02-12 12:49 ` [RFC PATCH v3 3/6] kunit: add visibility helpers for static inline functions Gabriele Paoloni
2026-02-12 12:49 ` [RFC PATCH v3 4/6] char: mem: expose devmem helpers for KUnit testing Gabriele Paoloni
2026-02-12 12:49 ` [RFC PATCH v3 5/6] char: mem: add KUnit tests for /dev/mem read_mem() Gabriele Paoloni
2026-02-12 12:49 ` [RFC PATCH v3 6/6] char: mem: add Kconfig option for devmem KUnit tests Gabriele Paoloni
2026-02-14  1:03   ` kernel test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202602140816.WdBObaxN-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=gpaoloni@redhat.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.