[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <eef9111b-c4d5-47bf-ba6f-54f481ca8f00@linux.ibm.com>
Date: Thu, 1 May 2025 19:40:32 +0530
From: Donet Tom <donettom@...ux.ibm.com>
To: kernel test robot <lkp@...el.com>, Mike Rapoport <rppt@...nel.org>,
David Hildenbrand <david@...hat.com>,
Oscar Salvador <osalvador@...e.de>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Andrew Morton <akpm@...ux-foundation.org>, rafael@...nel.org,
Danilo Krummrich <dakr@...nel.org>
Cc: oe-kbuild-all@...ts.linux.dev,
Linux Memory Management List <linux-mm@...ck.org>,
Ritesh Harjani <ritesh.list@...il.com>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>,
Alison Schofield <alison.schofield@...el.com>,
Yury Norov <yury.norov@...il.com>, Dave Jiang <dave.jiang@...el.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/2] driver/base: Optimize memory block registration to
reduce boot time
On 4/29/25 10:31 PM, kernel test robot wrote:
> Hi Donet,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on akpm-mm/mm-everything]
> [also build test ERROR on linus/master v6.15-rc4 next-20250429]
> [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/Donet-Tom/driver-base-Remove-unused-functions/20250429-010442
> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link: https://lore.kernel.org/r/fbe1e0c7d91bf3fa9a64ff5d84b53ded1d0d5ac7.1745852397.git.donettom%40linux.ibm.com
> patch subject: [PATCH v2 1/2] driver/base: Optimize memory block registration to reduce boot time
> config: x86_64-buildonly-randconfig-004-20250429 (https://download.01.org/0day-ci/archive/20250430/202504300024.YxAyenLy-lkp@intel.com/config)
> compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250430/202504300024.YxAyenLy-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@...el.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202504300024.YxAyenLy-lkp@intel.com/
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from include/linux/swap.h:11,
> from include/linux/suspend.h:5,
> from arch/x86/kernel/asm-offsets.c:14:
>>> include/linux/node.h:124:6: warning: no previous prototype for 'register_memory_blocks_under_node_early' [-Wmissing-prototypes]
> 124 | void register_memory_blocks_under_node_early(int nid)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --
> ld: security/keys/encrypted-keys/masterkey_trusted.o: in function `register_memory_blocks_under_node_early':
>>> security/keys/encrypted-keys/masterkey_trusted.c:125: multiple definition of `register_memory_blocks_under_node_early'; security/keys/encrypted-keys/encrypted.o:include/linux/node.h:125: first defined here
> --
> In file included from include/linux/cpu.h:17,
> from include/linux/static_call.h:135,
> from include/linux/tracepoint.h:22,
> from include/trace/events/tlb.h:9,
> from arch/x86/include/asm/mmu_context.h:9,
> from include/linux/mmu_context.h:5,
> from include/linux/cpuset.h:18,
> from include/linux/sched/isolation.h:5,
> from kernel/sched/build_policy.c:19:
>>> include/linux/node.h:124:6: warning: no previous prototype for 'register_memory_blocks_under_node_early' [-Wmissing-prototypes]
Thanks for the report. I will fix this and send a revised version.
> 124 | void register_memory_blocks_under_node_early(int nid)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from kernel/sched/build_policy.c:52:
> kernel/sched/rt.c:9:18: warning: 'max_rt_runtime' defined but not used [-Wunused-const-variable=]
> 9 | static const u64 max_rt_runtime = MAX_BW;
> | ^~~~~~~~~~~~~~
> --
> ld: drivers/usb/host/xhci-mem.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/usb/host/xhci.o:include/linux/node.h:125: first defined here
> ld: drivers/usb/host/xhci-ring.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/usb/host/xhci.o:include/linux/node.h:125: first defined here
> ld: drivers/usb/host/xhci-hub.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/usb/host/xhci.o:include/linux/node.h:125: first defined here
> ld: drivers/usb/host/xhci-trace.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/usb/host/xhci.o:include/linux/node.h:125: first defined here
> ld: drivers/usb/host/xhci-dbgcap.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/usb/host/xhci.o:include/linux/node.h:125: first defined here
> --
> In file included from include/linux/acpi.h:18,
> from include/linux/i2c.h:13,
> from drivers/power/supply/sbs-battery.c:13:
>>> include/linux/node.h:124:6: warning: no previous prototype for 'register_memory_blocks_under_node_early' [-Wmissing-prototypes]
> 124 | void register_memory_blocks_under_node_early(int nid)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/power/supply/sbs-battery.c: In function 'sbs_get_property':
> drivers/power/supply/sbs-battery.c:834:30: warning: '%04x' directive writing between 4 and 8 bytes into a region of size 5 [-Wformat-overflow=]
> 834 | sprintf(sbs_serial, "%04x", ret);
> | ^~~~
> In function 'sbs_get_battery_serial_number',
> inlined from 'sbs_get_property' at drivers/power/supply/sbs-battery.c:965:9:
> drivers/power/supply/sbs-battery.c:834:29: note: directive argument in the range [0, 2147483647]
> 834 | sprintf(sbs_serial, "%04x", ret);
> | ^~~~~~
> drivers/power/supply/sbs-battery.c:834:9: note: 'sprintf' output between 5 and 9 bytes into a destination of size 5
> 834 | sprintf(sbs_serial, "%04x", ret);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --
> In file included from include/linux/swap.h:11,
> from include/linux/suspend.h:5,
> from include/linux/regulator/consumer.h:35,
> from include/linux/phy/phy.h:17,
> from include/linux/usb/otg.h:13,
> from include/linux/usb/of.h:11,
> from drivers/usb/core/usb.c:41:
>>> include/linux/node.h:124:6: warning: no previous prototype for 'register_memory_blocks_under_node_early' [-Wmissing-prototypes]
> 124 | void register_memory_blocks_under_node_early(int nid)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/usb/core/usb.c: In function 'usb_alloc_dev':
> drivers/usb/core/usb.c:706:37: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
> 706 | "%s.%d", parent->devpath, port1);
> | ^~
> drivers/usb/core/usb.c:706:33: note: using the range [-2147483648, 2147483647] for directive argument
> 706 | "%s.%d", parent->devpath, port1);
> | ^~~~~~~
> drivers/usb/core/usb.c:705:25: note: 'snprintf' output between 3 and 28 bytes into a destination of size 16
> 705 | snprintf(dev->devpath, sizeof dev->devpath,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 706 | "%s.%d", parent->devpath, port1);
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --
> ld: drivers/i3c/master.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/device.o:include/linux/node.h:125: first defined here
> --
> ld: drivers/i3c/master/mipi-i3c-hci/ext_caps.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> ld: drivers/i3c/master/mipi-i3c-hci/pio.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> ld: drivers/i3c/master/mipi-i3c-hci/dma.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> ld: drivers/i3c/master/mipi-i3c-hci/cmd_v1.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> ld: drivers/i3c/master/mipi-i3c-hci/cmd_v2.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> ld: drivers/i3c/master/mipi-i3c-hci/dat_v1.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> ld: drivers/i3c/master/mipi-i3c-hci/dct_v1.o: in function `register_memory_blocks_under_node_early':
> drivers/i3c/master/mipi-i3c-hci/dct_v1.c:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> ld: drivers/i3c/master/mipi-i3c-hci/hci_quirks.o: in function `register_memory_blocks_under_node_early':
> drivers/i3c/master/mipi-i3c-hci/hci_quirks.c:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/i3c/master/mipi-i3c-hci/core.o:include/linux/node.h:125: first defined here
> --
> In file included from include/linux/acpi.h:18,
> from include/linux/i2c.h:13,
> from drivers/hwmon/pmbus/ibm-cffps.c:11:
>>> include/linux/node.h:124:6: warning: no previous prototype for 'register_memory_blocks_under_node_early' [-Wmissing-prototypes]
> 124 | void register_memory_blocks_under_node_early(int nid)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/hwmon/pmbus/ibm-cffps.c: In function 'ibm_cffps_debugfs_read':
> drivers/hwmon/pmbus/ibm-cffps.c:169:60: warning: '%02X' directive output may be truncated writing between 2 and 8 bytes into a region of size 3 [-Wformat-truncation=]
> 169 | snprintf(&data[i * 2], 3, "%02X", rc);
> | ^~~~
> drivers/hwmon/pmbus/ibm-cffps.c:169:59: note: directive argument in the range [0, 2147483647]
> 169 | snprintf(&data[i * 2], 3, "%02X", rc);
> | ^~~~~~
> drivers/hwmon/pmbus/ibm-cffps.c:169:33: note: 'snprintf' output between 3 and 9 bytes into a destination of size 3
> 169 | snprintf(&data[i * 2], 3, "%02X", rc);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/hwmon/pmbus/ibm-cffps.c:180:60: warning: '%04X' directive output may be truncated writing between 4 and 8 bytes into a region of size 5 [-Wformat-truncation=]
> 180 | snprintf(&data[i * 4], 5, "%04X", rc);
> | ^~~~
> drivers/hwmon/pmbus/ibm-cffps.c:180:59: note: directive argument in the range [0, 2147483647]
> 180 | snprintf(&data[i * 4], 5, "%04X", rc);
> | ^~~~~~
> drivers/hwmon/pmbus/ibm-cffps.c:180:33: note: 'snprintf' output between 5 and 9 bytes into a destination of size 5
> 180 | snprintf(&data[i * 4], 5, "%04X", rc);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --
> ld: drivers/usb/typec/tipd/trace.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/usb/typec/tipd/core.o:include/linux/node.h:125: first defined here
> --
> ld: drivers/usb/cdns3/drd.o: in function `register_memory_blocks_under_node_early':
>>> include/linux/node.h:125: multiple definition of `register_memory_blocks_under_node_early'; drivers/usb/cdns3/core.o:include/linux/node.h:125: first defined here
> ..
>
>
> vim +125 security/keys/encrypted-keys/masterkey_trusted.c
>
> b886d83c5b621a Thomas Gleixner 2019-06-01 1 // SPDX-License-Identifier: GPL-2.0-only
> 982e617a313b57 Mimi Zohar 2011-08-27 2 /*
> 982e617a313b57 Mimi Zohar 2011-08-27 3 * Copyright (C) 2010 IBM Corporation
> 982e617a313b57 Mimi Zohar 2011-08-27 4 * Copyright (C) 2010 Politecnico di Torino, Italy
> c9fecf505a3421 Alexander A. Klimov 2020-07-05 5 * TORSEC group -- https://security.polito.it
> 982e617a313b57 Mimi Zohar 2011-08-27 6 *
> 982e617a313b57 Mimi Zohar 2011-08-27 7 * Authors:
> 982e617a313b57 Mimi Zohar 2011-08-27 8 * Mimi Zohar <zohar@...ibm.com>
> 982e617a313b57 Mimi Zohar 2011-08-27 9 * Roberto Sassu <roberto.sassu@...ito.it>
> 982e617a313b57 Mimi Zohar 2011-08-27 10 *
> 5395d312dff00d Kees Cook 2017-05-13 11 * See Documentation/security/keys/trusted-encrypted.rst
> 982e617a313b57 Mimi Zohar 2011-08-27 12 */
> 982e617a313b57 Mimi Zohar 2011-08-27 13
> 982e617a313b57 Mimi Zohar 2011-08-27 14 #include <linux/uaccess.h>
> cc100551b4d92f Stephen Rothwell 2011-09-15 15 #include <linux/err.h>
> 982e617a313b57 Mimi Zohar 2011-08-27 16 #include <keys/trusted-type.h>
> ee0b31a25a0101 Mimi Zohar 2012-01-17 17 #include <keys/encrypted-type.h>
> ee0b31a25a0101 Mimi Zohar 2012-01-17 18 #include "encrypted.h"
> 982e617a313b57 Mimi Zohar 2011-08-27 19
> 982e617a313b57 Mimi Zohar 2011-08-27 20 /*
> 982e617a313b57 Mimi Zohar 2011-08-27 21 * request_trusted_key - request the trusted key
> 982e617a313b57 Mimi Zohar 2011-08-27 22 *
> 982e617a313b57 Mimi Zohar 2011-08-27 23 * Trusted keys are sealed to PCRs and other metadata. Although userspace
> 982e617a313b57 Mimi Zohar 2011-08-27 24 * manages both trusted/encrypted key-types, like the encrypted key type
> 982e617a313b57 Mimi Zohar 2011-08-27 25 * data, trusted key type data is not visible decrypted from userspace.
> 982e617a313b57 Mimi Zohar 2011-08-27 26 */
> 982e617a313b57 Mimi Zohar 2011-08-27 27 struct key *request_trusted_key(const char *trusted_desc,
> 146aa8b1453bd8 David Howells 2015-10-21 28 const u8 **master_key, size_t *master_keylen)
> 982e617a313b57 Mimi Zohar 2011-08-27 29 {
> 982e617a313b57 Mimi Zohar 2011-08-27 30 struct trusted_key_payload *tpayload;
> 982e617a313b57 Mimi Zohar 2011-08-27 31 struct key *tkey;
> 982e617a313b57 Mimi Zohar 2011-08-27 32
> 028db3e290f15a Linus Torvalds 2019-07-10 33 tkey = request_key(&key_type_trusted, trusted_desc, NULL);
> 982e617a313b57 Mimi Zohar 2011-08-27 34 if (IS_ERR(tkey))
> 982e617a313b57 Mimi Zohar 2011-08-27 35 goto error;
> 982e617a313b57 Mimi Zohar 2011-08-27 36
> 982e617a313b57 Mimi Zohar 2011-08-27 37 down_read(&tkey->sem);
> 146aa8b1453bd8 David Howells 2015-10-21 38 tpayload = tkey->payload.data[0];
> 982e617a313b57 Mimi Zohar 2011-08-27 39 *master_key = tpayload->key;
> 982e617a313b57 Mimi Zohar 2011-08-27 40 *master_keylen = tpayload->key_len;
> 982e617a313b57 Mimi Zohar 2011-08-27 41 error:
> 982e617a313b57 Mimi Zohar 2011-08-27 42 return tkey;
> 982e617a313b57 Mimi Zohar 2011-08-27 43 }
>
Powered by blists - more mailing lists