lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ