linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Pasha Tatashin <pasha.tatashin@soleen.com>
To: kernel test robot <lkp@intel.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	 Andrew Morton <akpm@linux-foundation.org>,
	 Linux Memory Management List <linux-mm@kvack.org>
Subject: Re: [linux-next:master 7210/7661] kernel/liveupdate/luo_file.c:571:3: error: call to undeclared function 'get_file'; ISO C99 and later do not support implicit function declarations
Date: Tue, 11 Nov 2025 14:01:05 -0500	[thread overview]
Message-ID: <CA+CK2bA93HadQzDh4La2Qh_3CaMO_BnyET-PhkLsnvu7qrgK9A@mail.gmail.com> (raw)
In-Reply-To: <202511120222.vMZm9rD4-lkp@intel.com>

On Tue, Nov 11, 2025 at 1:20 PM kernel test robot <lkp@intel.com> wrote:
>
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   2666975a8905776d306bee01c5d98a0395bda1c9
> commit: 74602408d6248999ca8a567c46ce0f78204d6e89 [7210/7661] liveupdate: luo_file: implement file systems callbacks
> config: x86_64-buildonly-randconfig-001-20251112 (https://download.01.org/0day-ci/archive/20251112/202511120222.vMZm9rD4-lkp@intel.com/config)
> compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251112/202511120222.vMZm9rD4-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/202511120222.vMZm9rD4-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> >> kernel/liveupdate/luo_file.c:571:3: error: call to undeclared function 'get_file'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
>      571 |                 get_file(luo_file->file);
>          |                 ^
>    kernel/liveupdate/luo_file.c:584:3: error: call to undeclared function 'get_file'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
>      584 |                 get_file(luo_file->file);
>          |                 ^
>    2 errors generated.

Thanks, the fs.h header is missing from the luo_file.c:

diff --git a/kernel/liveupdate/luo_file.c b/kernel/liveupdate/luo_file.c
index d5197149b3b7..adc411dbfead 100644
--- a/kernel/liveupdate/luo_file.c
+++ b/kernel/liveupdate/luo_file.c
@@ -97,6 +97,7 @@
 #include <linux/cleanup.h>
 #include <linux/err.h>
 #include <linux/file.h>
+#include <linux/fs.h>
 #include <linux/kexec_handover.h>
 #include <linux/liveupdate.h>
 #include <linux/liveupdate/abi/luo.h>


>
> Kconfig warnings: (for reference only)
>    WARNING: unmet direct dependencies detected for OF_GPIO
>    Depends on [n]: GPIOLIB [=y] && OF [=n] && HAS_IOMEM [=y]
>    Selected by [y]:
>    - GPIO_TB10X [=y] && GPIOLIB [=y] && HAS_IOMEM [=y] && (ARC_PLAT_TB10X || COMPILE_TEST [=y])
>    WARNING: unmet direct dependencies detected for MFD_STMFX
>    Depends on [n]: HAS_IOMEM [=y] && I2C [=y] && OF [=n]
>    Selected by [y]:
>    - PINCTRL_STMFX [=y] && PINCTRL [=y] && I2C [=y] && OF_GPIO [=y] && HAS_IOMEM [=y]
>    WARNING: unmet direct dependencies detected for GPIO_SYSCON
>    Depends on [n]: GPIOLIB [=y] && HAS_IOMEM [=y] && MFD_SYSCON [=y] && OF [=n]
>    Selected by [y]:
>    - GPIO_SAMA5D2_PIOBU [=y] && GPIOLIB [=y] && HAS_IOMEM [=y] && MFD_SYSCON [=y] && OF_GPIO [=y] && (ARCH_AT91 || COMPILE_TEST [=y])
>    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 +/get_file +571 kernel/liveupdate/luo_file.c
>
>    519
>    520  /**
>    521   * luo_retrieve_file - Restores a preserved file from a session by its token.
>    522   * @session: The session from which to retrieve the file.
>    523   * @token:   The unique token identifying the file to be restored.
>    524   * @filep:   Output parameter; on success, this is populated with a pointer
>    525   *           to the newly retrieved 'struct file'.
>    526   *
>    527   * This function is the primary mechanism for recreating a file in the new
>    528   * kernel after a live update. It searches the session's list of deserialized
>    529   * files for an entry matching the provided @token.
>    530   *
>    531   * The operation is idempotent: if a file has already been successfully
>    532   * retrieved, this function will simply return a pointer to the existing
>    533   * 'struct file' and report success without re-executing the retrieve
>    534   * operation. This is handled by checking the 'retrieved' flag under a lock.
>    535   *
>    536   * File retrieval can happen in any order; it is not bound by the order of
>    537   * preservation.
>    538   *
>    539   * Context: Can be called from an ioctl or other in-kernel code in the new
>    540   *          kernel.
>    541   * Return: 0 on success. Returns a negative errno on failure:
>    542   *         -ENOENT if no file with the matching token is found.
>    543   *         Any error code returned by the handler's .retrieve() op.
>    544   */
>    545  int luo_retrieve_file(struct luo_session *session, u64 token,
>    546                        struct file **filep)
>    547  {
>    548          struct liveupdate_file_op_args args = {0};
>    549          struct luo_file *luo_file;
>    550          int err;
>    551
>    552          lockdep_assert_held(&session->mutex);
>    553
>    554          if (list_empty(&session->files_list))
>    555                  return -ENOENT;
>    556
>    557          list_for_each_entry(luo_file, &session->files_list, list) {
>    558                  if (luo_file->token == token)
>    559                          break;
>    560          }
>    561
>    562          if (luo_file->token != token)
>    563                  return -ENOENT;
>    564
>    565          guard(mutex)(&luo_file->mutex);
>    566          if (luo_file->retrieved) {
>    567                  /*
>    568                   * Someone is asking for this file again, so get a reference
>    569                   * for them.
>    570                   */
>  > 571                  get_file(luo_file->file);
>    572                  *filep = luo_file->file;
>    573                  return 0;
>    574          }
>    575
>    576          args.handler = luo_file->fh;
>    577          args.session = (struct liveupdate_session *)session;
>    578          args.serialized_data = luo_file->serialized_data;
>    579          err = luo_file->fh->ops->retrieve(&args);
>    580          if (!err) {
>    581                  luo_file->file = args.file;
>    582
>    583                  /* Get reference so we can keep this file in LUO until finish */
>    584                  get_file(luo_file->file);
>    585                  *filep = luo_file->file;
>    586                  luo_file->retrieved = true;
>    587          }
>    588
>    589          return err;
>    590  }
>    591
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki


  reply	other threads:[~2025-11-11 19:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-11 18:19 kernel test robot
2025-11-11 19:01 ` Pasha Tatashin [this message]
2025-11-11 19:10 ` Andrew Morton

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=CA+CK2bA93HadQzDh4La2Qh_3CaMO_BnyET-PhkLsnvu7qrgK9A@mail.gmail.com \
    --to=pasha.tatashin@soleen.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=lkp@intel.com \
    --cc=llvm@lists.linux.dev \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox