Hi Marcos,

kernel test robot noticed the following build errors:

[auto build test ERROR on 3a8660878839faadb4f1a6dd72c3179c1df56787]

url:    
https://github.com/intel-lab-lkp/linux/commits/Marcos-Paulo-de-Souza/printk-nbcon-Export-console_is_usable/20251016-225503
base:   3a8660878839faadb4f1a6dd72c3179c1df56787
patch link:    
https://lore.kernel.org/r/20251016-nbcon-kgdboc-v6-5-866aac60a80e%40suse.com
patch subject: [PATCH v6 5/5] kdb: Adapt kdb_msg_write to work with NBCON 
consoles
config: sh-randconfig-002-20251017 
(https://download.01.org/0day-ci/archive/20251017/[email protected]/config)
compiler: sh4-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20251017/[email protected]/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 <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   kernel/debug/kdb/kdb_io.c: In function 'kdb_msg_write':
>> kernel/debug/kdb/kdb_io.c:612:43: error: passing argument 1 of 
>> 'nbcon_kdb_release' from incompatible pointer type 
>> [-Wincompatible-pointer-types]
     612 |                         nbcon_kdb_release(&wctxt);
         |                                           ^~~~~~
         |                                           |
         |                                           struct nbcon_write_context 
*
   In file included from kernel/debug/kdb/kdb_io.c:17:
   include/linux/console.h:667:54: note: expected 'struct console *' but 
argument is of type 'struct nbcon_write_context *'
     667 | static inline void nbcon_kdb_release(struct console *con) { }
         |                                      ~~~~~~~~~~~~~~~~^~~

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for I2C_K1
   Depends on [n]: I2C [=y] && HAS_IOMEM [=y] && (ARCH_SPACEMIT || COMPILE_TEST 
[=y]) && OF [=n]
   Selected by [y]:
   - MFD_SPACEMIT_P1 [=y] && HAS_IOMEM [=y] && (ARCH_SPACEMIT || COMPILE_TEST 
[=y]) && I2C [=y]


vim +/nbcon_kdb_release +612 kernel/debug/kdb/kdb_io.c

   560  
   561  static void kdb_msg_write(const char *msg, int msg_len)
   562  {
   563          struct console *c;
   564          const char *cp;
   565          int cookie;
   566          int len;
   567  
   568          if (msg_len == 0)
   569                  return;
   570  
   571          cp = msg;
   572          len = msg_len;
   573  
   574          while (len--) {
   575                  dbg_io_ops->write_char(*cp);
   576                  cp++;
   577          }
   578  
   579          /*
   580           * The console_srcu_read_lock() only provides safe console list
   581           * traversal. The use of the ->write() callback relies on all 
other
   582           * CPUs being stopped at the moment and console drivers being 
able to
   583           * handle reentrance when @oops_in_progress is set.
   584           *
   585           * There is no guarantee that every console driver can handle
   586           * reentrance in this way; the developer deploying the debugger
   587           * is responsible for ensuring that the console drivers they
   588           * have selected handle reentrance appropriately.
   589           */
   590          cookie = console_srcu_read_lock();
   591          for_each_console_srcu(c) {
   592                  short flags = console_srcu_read_flags(c);
   593  
   594                  if (!console_is_usable(c, flags, true))
   595                          continue;
   596                  if (c == dbg_io_ops->cons)
   597                          continue;
   598  
   599                  if (flags & CON_NBCON) {
   600                          struct nbcon_write_context wctxt = { };
   601  
   602                          /*
   603                           * Do not continue if the console is NBCON and 
the context
   604                           * can't be acquired.
   605                           */
   606                          if (!nbcon_kdb_try_acquire(c, &wctxt))
   607                                  continue;
   608  
   609                          nbcon_write_context_set_buf(&wctxt, (char 
*)msg, msg_len);
   610  
   611                          c->write_atomic(c, &wctxt);
 > 612                          nbcon_kdb_release(&wctxt);
   613                  } else {
   614                          /*
   615                           * Set oops_in_progress to encourage the 
console drivers to
   616                           * disregard their internal spin locks: in the 
current calling
   617                           * context the risk of deadlock is a bigger 
problem than risks
   618                           * due to re-entering the console driver. We 
operate directly on
   619                           * oops_in_progress rather than using 
bust_spinlocks() because
   620                           * the calls bust_spinlocks() makes on exit are 
not appropriate
   621                           * for this calling context.
   622                           */
   623                          ++oops_in_progress;
   624                          c->write(c, msg, msg_len);
   625                          --oops_in_progress;
   626                  }
   627                  touch_nmi_watchdog();
   628          }
   629          console_srcu_read_unlock(cookie);
   630  }
   631  

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


_______________________________________________
Kgdb-bugreport mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport

Reply via email to