From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6F92D64075 for ; Sat, 9 Nov 2024 06:06:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C49126B0099; Sat, 9 Nov 2024 01:06:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BF96C6B009A; Sat, 9 Nov 2024 01:06:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A98DB6B009B; Sat, 9 Nov 2024 01:06:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8A9736B0099 for ; Sat, 9 Nov 2024 01:06:43 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1507C1610FB for ; Sat, 9 Nov 2024 06:06:43 +0000 (UTC) X-FDA: 82765521888.18.2E94C6B Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21]) by imf08.hostedemail.com (Postfix) with ESMTP id BA393160006 for ; Sat, 9 Nov 2024 06:06:14 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Y05iuVbV; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf08.hostedemail.com: domain of lkp@intel.com designates 198.175.65.21 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731132340; a=rsa-sha256; cv=none; b=VsgLwU4XoBExKLukjBkiT27KwEL35hZBWEARw5ABtbdwXI07dGQMEpi5P5K/i8aHfr/lgq lOqWmB4Gz9C+bKHJlvCghChiOq93p7vgiHEk7VPQ3vV6CiPH4nrQSOEN1E0DJ4rYpbzS73 NwjKQ2ujn7GvxFDWCm0817Oh2Xgjp9A= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Y05iuVbV; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf08.hostedemail.com: domain of lkp@intel.com designates 198.175.65.21 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731132340; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YyASHtfKrZ4tsrsqKfu76xQBA16wcv7cQz509myaDPM=; b=k6Ii99Ke9RfUvBmOyX0IFJf00rj33GkZtRZpneIvVFj3jyZ762rtO0VNj/QrLgfYjsL/p1 1bQgaptGZg4QjK2cFtlKYTawhjuloH9jD8vM5Mziy0bQbbz80qI211TFuBBOKym1uLBnHm ryvHANi5HCGaA+oS8uJopC21z6bfZqM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1731132400; x=1762668400; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=EssCjhBoWZ6PJpUkZoP1yR4EE9L13/6dp1yLkzF6bvw=; b=Y05iuVbVmrgauZ+VoZtCtJjC1SqhqWf9mk6RjO/bkoHEhD+O5YeEOjhG RBwo0bEJ43J8DEs7XxA1Qm9xw3Tm3pJCZYEiGxXknzGrXqISaTktMgf7s MhDeRrybefsWAL4Ym5C3n551Om4J5/RIcxkQGjAN7oXhka+2fl+EjTIHv 70zySgXdjqiPg9X3IKyljKvBAc31WxZW0nui5yhgaIvjxFocXzOfCq/fH +M4E/r5qWEoNO3IGvGHKB0lw7dp9rWMzHmHrDy+vr+Z3DJIqNSajBUW+f utcHUsoYW4MUspVM66UnMFimBx60zjCeDAW8OpX7Tmi59jeErQYhTtgGb Q==; X-CSE-ConnectionGUID: F0STOePySa2frLTIANDuAQ== X-CSE-MsgGUID: 0Hkps3qnSMed9ISdc5x9nA== X-IronPort-AV: E=McAfee;i="6700,10204,11222"; a="30979104" X-IronPort-AV: E=Sophos;i="6.11,199,1725346800"; d="scan'208";a="30979104" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2024 22:06:39 -0800 X-CSE-ConnectionGUID: gZT81WXkQ0Ctap9y2ewrHw== X-CSE-MsgGUID: 3fxBq18iQQamwZqD5UgREw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,140,1728975600"; d="scan'208";a="86702418" Received: from lkp-server01.sh.intel.com (HELO a48cf1aa22e8) ([10.239.97.150]) by orviesa008.jf.intel.com with ESMTP; 08 Nov 2024 22:06:35 -0800 Received: from kbuild by a48cf1aa22e8 with local (Exim 4.96) (envelope-from ) id 1t9ecC-000s7q-2d; Sat, 09 Nov 2024 06:06:32 +0000 Date: Sat, 9 Nov 2024 14:06:13 +0800 From: kernel test robot To: Jacob Keller , Vladimir Oltean , Andrew Morton , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tony Nguyen , Przemek Kitszel , Masahiro Yamada , netdev Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , linux-kbuild@vger.kernel.org, Jacob Keller Subject: Re: [PATCH net-next v4 3/9] lib: packing: add pack_fields() and unpack_fields() Message-ID: <202411091357.6tKo6nby-lkp@intel.com> References: <20241108-packing-pack-fields-and-ice-implementation-v4-3-81a9f42c30e5@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241108-packing-pack-fields-and-ice-implementation-v4-3-81a9f42c30e5@intel.com> X-Rspam-User: X-Rspamd-Queue-Id: BA393160006 X-Rspamd-Server: rspam01 X-Stat-Signature: fkey7zaagyfdwsh3ipx4dz8zixkcgyq8 X-HE-Tag: 1731132374-742776 X-HE-Meta: U2FsdGVkX19+7WWLqGkX63VaRElbIjM3SeTEReARBV91QJjtqslxVHcfGq3KQ0Drjqy5O9OBfNWvt/VbK8ocOxGUBxvprBPZCXTWyQ8nWMduhzmFSyf6IszrVI6+rmLKyLOEv3TzSK9wiZOiCuD028zvifu5dzQwn28nHb1xXXeV973hHfmYYqoOAvPgmvvCnCt8FOi3WtI6jyR1CN/kfuih2iUzAYmGrow72wt8I6glSjN061CyVGlrLW+ulODB0RPWraMxf/b8y2ig66NZQNdCe4l/hIsvGFCBdbAqgLXAWsg+d97ALT+dO5r0886ggxlaMnH7Uq2SsWcah6sLhgBs9WYjDYYyvMEOgoZBla7I1s05ksCXj3iebmwa9lYbtUcAQMQLA6Pj1U/GM6UwMiyATl89Kk7nXgP8+WGrJcitsCh0ig0PvR47pBpKnT6krLVo7nA9/QmGkl/X1fVZQ88nOpBky52kou5bwKN/5wS97hYm7EODRigOYPj459BI5XLPNmFmpK5pLvT8RiXhbWHXB8ZaBRhzp7g2Rs3MbPQzhc0oejWUL0k8/foSLWMTli7V6jJ0REOqHTt5rlFtD3n3h7E2cRYO4KxMAjU9ORX0x5TQbJvU59NBsAPAAkruSKQjaNz/7YT0RhXGR1GGe3rjdlPo5acxfZhJ2VfVjVSSDdfad3mqAKtINcY9iUZGrEr+l7HpNIbdJK6HLT9iP4CPDxKCpHn2syavvX6KnP4m/YNxS/tI3yktbrBSFcR7pOWqbF1Uus5sABLKoB8zqcZdLN5t5HNIxH5DBtlwUBpKzSQtoyt4nngix/eEPKzV/C0f9moPNFl8nyWqvjdWjoUCQb2baNPvR4bdoWwGXQn51XedFjmeeHem5XWybq+QyIoYVfX6cTWYLGJhdrVQJRvTsxlNEYnrusr+nP+YiNSWUwkKgUIDLVAAefdOZtCBUZI2ZASw9m569RfGv67 +v/eqalu P1mNKUd3LaLJXOYs/gD9Np91acEUfuMbLSIQ+M20IPLRedVrYp0iMx6aNZZMtIIKWNmZHQnZdooG9ET08yjqLsBwQAJCxdhuo79MMo+ev9D2eEk8YDGVyFCcwtfkQSStKnMoe4fIGit30GUpo+Ix7jJ/8sRdaJT3EMZVNzgO0Quuawx3nDfipI82E5O1LCl05OHfgDA5YSC0eCBbqwcrzv4stf1q39AiTiawc4QevhjFRpBJCUSkjNA9sv+6g8x8ZEdxo706r/p8j7yKWoX5egwY/X489HvK/PQaaQqjpZEwzHS2PIf0SGIxXhD7zI4PsSuTnEi2uVKDwNfPAmT3CvWtPmaErYx89ywS6gs5W2gP/9nTcu6BA7WidCZe3hYWwH0YH X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Jacob, kernel test robot noticed the following build warnings: [auto build test WARNING on a84e8c05f58305dfa808bc5465c5175c29d7c9b6] url: https://github.com/intel-lab-lkp/linux/commits/Jacob-Keller/lib-packing-create-__pack-and-__unpack-variants-without-error-checking/20241109-093307 base: a84e8c05f58305dfa808bc5465c5175c29d7c9b6 patch link: https://lore.kernel.org/r/20241108-packing-pack-fields-and-ice-implementation-v4-3-81a9f42c30e5%40intel.com patch subject: [PATCH net-next v4 3/9] lib: packing: add pack_fields() and unpack_fields() config: openrisc-allnoconfig (https://download.01.org/0day-ci/archive/20241109/202411091357.6tKo6nby-lkp@intel.com/config) compiler: or1k-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241109/202411091357.6tKo6nby-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 | Closes: https://lore.kernel.org/oe-kbuild-all/202411091357.6tKo6nby-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from scripts/mod/packed_fields.c:15: scripts/mod/packed_fields.c: In function 'handle_packed_field_symbol': >> scripts/mod/packed_fields.c:134:23: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'Elf32_Word' {aka 'unsigned int'} [-Wformat=] 134 | error("[%s.ko] \"%s\" has size %zu which is not a multiple of the field size (%zu)\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | mod->name, symname, sym->st_size, field_size); | ~~~~~~~~~~~~ | | | Elf32_Word {aka unsigned int} scripts/mod/modpost.h:207:51: note: in definition of macro 'error' 207 | #define error(fmt, args...) modpost_log(true, fmt, ##args) | ^~~ scripts/mod/packed_fields.c:134:50: note: format string is defined here 134 | error("[%s.ko] \"%s\" has size %zu which is not a multiple of the field size (%zu)\n", | ~~^ | | | long unsigned int | %u -- In file included from scripts/mod/packed_fields.c:15: scripts/mod/packed_fields.c: In function 'handle_packed_field_symbol': >> scripts/mod/packed_fields.c:134:23: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'Elf32_Word' {aka 'unsigned int'} [-Wformat=] 134 | error("[%s.ko] \"%s\" has size %zu which is not a multiple of the field size (%zu)\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | mod->name, symname, sym->st_size, field_size); | ~~~~~~~~~~~~ | | | Elf32_Word {aka unsigned int} scripts/mod/modpost.h:207:51: note: in definition of macro 'error' 207 | #define error(fmt, args...) modpost_log(true, fmt, ##args) | ^~~ scripts/mod/packed_fields.c:134:50: note: format string is defined here 134 | error("[%s.ko] \"%s\" has size %zu which is not a multiple of the field size (%zu)\n", | ~~^ | | | long unsigned int | %u vim +134 scripts/mod/packed_fields.c 14 > 15 #include "modpost.h" 16 17 typedef uint16_t u16; 18 typedef uint8_t u8; 19 20 #define BITS_PER_BYTE 8 21 22 /* Big exception to the "don't include kernel headers into userspace", which 23 * even potentially has different endianness and word sizes, since we handle 24 * those differences explicitly below 25 */ 26 #include "../../include/linux/packing_types.h" 27 28 #define max(a, b) ({\ 29 typeof(a) _a = a;\ 30 typeof(b) _b = b;\ 31 _a > _b ? _a : _b; }) 32 33 #define min(a, b) ({\ 34 typeof(a) _a = a;\ 35 typeof(b) _b = b;\ 36 _a < _b ? _a : _b; }) 37 38 struct packed_field_elem { 39 uint64_t startbit; 40 uint64_t endbit; 41 uint64_t offset; 42 uint64_t size; 43 }; 44 45 enum field_type { 46 UNKNOWN_SECTION, 47 PACKED_FIELD_S, 48 PACKED_FIELD_M, 49 }; 50 51 enum element_order { 52 FIRST_ELEMENT, 53 SECOND_ELEMENT, 54 ASCENDING_ORDER, 55 DESCENDING_ORDER, 56 }; 57 58 static size_t field_type_to_size(enum field_type type) 59 { 60 switch (type) { 61 case PACKED_FIELD_S: 62 return sizeof(struct packed_field_s); 63 case PACKED_FIELD_M: 64 return sizeof(struct packed_field_m); 65 default: 66 error("attempted to get field size for unknown packed field type %u\n", 67 type); 68 return 0; 69 } 70 } 71 72 static void get_field_contents(const void *data, enum field_type type, 73 struct packed_field_elem *elem) 74 { 75 switch (type) { 76 case PACKED_FIELD_S: { 77 const struct packed_field_s *data_field = data; 78 79 elem->startbit = TO_NATIVE(data_field->startbit); 80 elem->endbit = TO_NATIVE(data_field->endbit); 81 elem->offset = TO_NATIVE(data_field->offset); 82 elem->size = TO_NATIVE(data_field->size); 83 return; 84 } 85 case PACKED_FIELD_M: { 86 const struct packed_field_m *data_field = data; 87 88 elem->startbit = TO_NATIVE(data_field->startbit); 89 elem->endbit = TO_NATIVE(data_field->endbit); 90 elem->offset = TO_NATIVE(data_field->offset); 91 elem->size = TO_NATIVE(data_field->size); 92 return; 93 } 94 default: 95 error("attempted to get field contents for unknown packed field type %u\n", 96 type); 97 } 98 } 99 100 void handle_packed_field_symbol(struct module *mod, struct elf_info *info, 101 Elf_Sym *sym, const char *symname) 102 { 103 unsigned int secindex = get_secindex(info, sym); 104 struct packed_field_elem elem = {}, prev = {}; 105 enum element_order order = FIRST_ELEMENT; 106 enum field_type type = UNKNOWN_SECTION; 107 size_t field_size, count; 108 const void *data, *ptr; 109 const char *section; 110 111 /* Skip symbols without a name */ 112 if (*symname == '\0') 113 return; 114 115 /* Skip symbols with invalid sections */ 116 if (secindex >= info->num_sections) 117 return; 118 119 section = sec_name(info, secindex); 120 121 if (strcmp(section, ".rodata.packed_fields_s") == 0) 122 type = PACKED_FIELD_S; 123 else if (strcmp(section, ".rodata.packed_fields_m") == 0) 124 type = PACKED_FIELD_M; 125 126 /* Other sections don't relate to packed fields */ 127 if (type == UNKNOWN_SECTION) 128 return; 129 130 field_size = field_type_to_size(type); 131 132 /* check that the data is a multiple of the size */ 133 if (sym->st_size % field_size != 0) { > 134 error("[%s.ko] \"%s\" has size %zu which is not a multiple of the field size (%zu)\n", -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki