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
next prev parent 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