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 5997EC001DE for ; Sun, 6 Aug 2023 05:43:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 73A648D0002; Sun, 6 Aug 2023 01:43:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6E9FD8D0001; Sun, 6 Aug 2023 01:43:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5B2338D0002; Sun, 6 Aug 2023 01:43:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 46D768D0001 for ; Sun, 6 Aug 2023 01:43:08 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 14CA01A03E9 for ; Sun, 6 Aug 2023 05:43:08 +0000 (UTC) X-FDA: 81092586456.01.DF5BC3D Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by imf06.hostedemail.com (Postfix) with ESMTP id 1AA0B180004 for ; Sun, 6 Aug 2023 05:43:04 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=AJg1aMe2; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf06.hostedemail.com: domain of lkp@intel.com designates 134.134.136.20 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=1691300586; 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: references:dkim-signature; bh=rrFb+dhl0E7NRjrRDqfiAnH+F/SG4u6wqKh1QE15a3s=; b=pAk3jlI6LqZ3gJJynvvM4KsaoLjDgoF7wak+mVcoq0G/YU9hidZgy+5LIVwPDfjf6JUixC euTyFun1PUC3nhWmxYe2yZFx3WtaqQ+tHFPHBR4yBwlqNPJgpmJggUnIkw39NAD/70I1Ji OCAlqTi2LA2qFDMlVkqwTO8H2XsoG0g= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=AJg1aMe2; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf06.hostedemail.com: domain of lkp@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691300586; a=rsa-sha256; cv=none; b=Aidwft9AsrEuQOff9Wu2IEmX7RlKs90RDSAFbljAmEiNkObr4BbqPxJEWx8PuKa/R6bCel vcyQN96wPVz6XDaRAh9MlebHhJ8701vaA3RwsrlmYhW2Ty8no0/V/Ak0Ei5T+G1vWxFCpp m0j8vlkz8i1x8L1Thv2oykrMniPBiyc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691300585; x=1722836585; h=date:from:to:cc:subject:message-id:mime-version; bh=4eEh3Of/i1CYwdfoZgh7UoCjO1J0dZ1tchZLzh3M38s=; b=AJg1aMe2J+xAOtTPkTntZQmY3xj9Tk3gjlpTOFJ764Y3aHudNg6nXdzJ xchBXQeoZpoTs70b5NQUqDVaMiCWdyrzWFM3cz6elx6gQVVcmaIvvLKMu IeSDH1vSKUosZD6Ks8hiIhgOoMpYEk3d8apJ6SFznz13p8rp/BSZrtXBQ JsA2eyCL47f/GDZSWjgTj54cERkdseDBjliHVajmWC0DhqM98v98t7YB5 qTpLzNbt5LiKlINtp1VQDkYoINDI4jM98gYZsWRp9K4bSyaq/e/S7e0hz lcyeVwBmgtbw7PE47+J67F7/cNP5H759EFtqVgpaz2nMrXaW3fB0rZf80 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10793"; a="360426953" X-IronPort-AV: E=Sophos;i="6.01,259,1684825200"; d="scan'208";a="360426953" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Aug 2023 22:43:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10793"; a="1061217286" X-IronPort-AV: E=Sophos;i="6.01,259,1684825200"; d="scan'208";a="1061217286" Received: from lkp-server01.sh.intel.com (HELO d1ccc7e87e8f) ([10.239.97.150]) by fmsmga005.fm.intel.com with ESMTP; 05 Aug 2023 22:43:01 -0700 Received: from kbuild by d1ccc7e87e8f with local (Exim 4.96) (envelope-from ) id 1qSWXc-000435-2a; Sun, 06 Aug 2023 05:43:00 +0000 Date: Sun, 6 Aug 2023 13:42:23 +0800 From: kernel test robot To: "Vishal Moola (Oracle)" Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , Andrew Morton Subject: [linux-next:master 6109/6443] include/linux/pgtable.h:1044:17: error: unknown type name 'spinlock_t' Message-ID: <202308061331.VqEtceSZ-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Queue-Id: 1AA0B180004 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: ypz5n1ozf3x1nep75bhtogqrfugkfyic X-HE-Tag: 1691300584-946032 X-HE-Meta: U2FsdGVkX1/jvmlcoQy/oTOvB2ZHxKjjk4cc6Me5wPcyH/fNuvuqq0GzAe8ENzEHTQ0pWa46ypyet/byW1H3FLad3RZBdgbmothLrQXfkrKJOgSml7bh+WSAU8O1BCiYPedhWUtEBT1vm/fLFKbhMV2f5M5zrqkC+x3NN5dkw6Am26RleMBO3rDxIvXmh1bCneS85GgFpeeVS7vQGXA9CikNqTPoZBMZxPKEd9Xa7l/zalJBCpqNEqpBHKlHAJXCdw04yj0fbQx/HRlLRBgx3CkpVnt9z9nzP5hs83puIrDqHBKBoT5RRCWJKNkn9pT4UEwlzWE8YJi+vXlixKZAd6pPEoEDUcKX8tnn4++dwUPREjGci++ghcWdw8N82TLhf8QJBS9DlD2iETSx51lk2k8aWdjbZ10d7WFbd8G6JU6QMxolLunUYp/RPX8+ssI8U6JYPYbdX20V+ZPeN9nq5lOaXdqUd4HD0iphCRNVD9ZlE9axtCdgPTd/zWzN59aBQcTJcBv/qrj7DqKGEARU5B/9YtDkGhUFroy3qaqZsLH1srzwCS1jzOjGyYSZuO96rKv6ig1kg3sQAavtM8mkExJ3S/gJ+r3LkGl+1SBf9HEiLbKEbSrlqqEgA+zRK8agcx52kRGRf2201MU0g4mFXIF6RxniBkgMy03lnVZeILYhrFqw4e89Q+7IMMl9fOf54I28h3U1+XuEEZjglBEsEZhFGs2OP7WuIlYLT2eXXtzLW0LUB60XRWur6WTei3XVdg+ss8tqLoSooeDE2DoPjHkVUy/FP2JlG5gwCxb2oXAcrPihHZL0pMIKV5uywRPOOycWAL6MF9gqCSn/8vhumahiEn6iWQu/6Ziqz8hUiCd9695aT4o2xxuh+QHd2AceOqNAatcpMNGmR41qx2QzA26hdyLCWhDAUthfMJIY5+CAvk+rGNYBfmqYIoKd8Q9WzBXkodkYyDxcTNbQyVU 8aRPx8H7 JOh+sKqjNIsTguG3xJlwfn1K+ti6QQH5ipLOmasImuQHPjcGueN1Jqr0khbLqLgze8Z0/Q87z835gqpi5jtvK1TJFNG9jqfqBt+StGaIaRFnIxoh93HiZuYaSj/5rPiDeaOeQN9tbC3NSheiaUPlo5wwja+zJyfNRojkTsRZuDMJY9hwexqxcBQAaOkSzLVG/+TRzQt0pgAm/cA7WYpo/xia1hqr8ShpzGIk8oNvjrF0mC0JZnLlp3Zp7zYVsG9PSSsEbDUFbrO5r3HQnFZEPu2c3vRmp/zB2HPaHAcjdDWbt+0cO8+GByp1TJXuJuSDKzXS43AIMedhdK7LwmUBDundN/m4HpNr/u/qHvEFERAXUjjRKlitDtPV920+VCXKEmtlxzJXOmFm4V+lKSTJV6TcDqxs0XJEihfkRDTZ9u9YVP2k= 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: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: bdffb18b5dd8071cd25685b966f380a30b1fadaa commit: 4d448d6c17c1bb5041ede2dcf2bf20e4a153fd4d [6109/6443] pgtable: create struct ptdesc config: xtensa-nommu_kc705_defconfig (https://download.01.org/0day-ci/archive/20230806/202308061331.VqEtceSZ-lkp@intel.com/config) compiler: xtensa-de212-linux-gcc (GCC) 12.3.0 reproduce: (https://download.01.org/0day-ci/archive/20230806/202308061331.VqEtceSZ-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/202308061331.VqEtceSZ-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from arch/xtensa/include/asm/io.h:19, from include/linux/io.h:13, from lib/iomap_copy.c:7: include/linux/pgtable.h:1041:5: warning: "ALLOC_SPLIT_PTLOCKS" is not defined, evaluates to 0 [-Wundef] 1041 | #if ALLOC_SPLIT_PTLOCKS | ^~~~~~~~~~~~~~~~~~~ >> include/linux/pgtable.h:1044:17: error: unknown type name 'spinlock_t' 1044 | spinlock_t ptl; | ^~~~~~~~~~ In file included from include/linux/init.h:5, from include/linux/io.h:10: >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1056:1: note: in expansion of macro 'TABLE_MATCH' 1056 | TABLE_MATCH(flags, __page_flags); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1056:1: note: in expansion of macro 'TABLE_MATCH' 1056 | TABLE_MATCH(flags, __page_flags); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1057:1: note: in expansion of macro 'TABLE_MATCH' 1057 | TABLE_MATCH(compound_head, pt_list); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1057:1: note: in expansion of macro 'TABLE_MATCH' 1057 | TABLE_MATCH(compound_head, pt_list); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1058:1: note: in expansion of macro 'TABLE_MATCH' 1058 | TABLE_MATCH(compound_head, _pt_pad_1); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1058:1: note: in expansion of macro 'TABLE_MATCH' 1058 | TABLE_MATCH(compound_head, _pt_pad_1); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1059:1: note: in expansion of macro 'TABLE_MATCH' 1059 | TABLE_MATCH(pmd_huge_pte, pmd_huge_pte); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1059:1: note: in expansion of macro 'TABLE_MATCH' 1059 | TABLE_MATCH(pmd_huge_pte, pmd_huge_pte); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1060:1: note: in expansion of macro 'TABLE_MATCH' 1060 | TABLE_MATCH(mapping, __page_mapping); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1060:1: note: in expansion of macro 'TABLE_MATCH' 1060 | TABLE_MATCH(mapping, __page_mapping); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1061:1: note: in expansion of macro 'TABLE_MATCH' 1061 | TABLE_MATCH(pt_mm, pt_mm); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1061:1: note: in expansion of macro 'TABLE_MATCH' 1061 | TABLE_MATCH(pt_mm, pt_mm); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1062:1: note: in expansion of macro 'TABLE_MATCH' 1062 | TABLE_MATCH(ptl, ptl); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1062:1: note: in expansion of macro 'TABLE_MATCH' 1062 | TABLE_MATCH(ptl, ptl); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1063:1: note: in expansion of macro 'TABLE_MATCH' 1063 | TABLE_MATCH(rcu_head, pt_rcu_head); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1063:1: note: in expansion of macro 'TABLE_MATCH' 1063 | TABLE_MATCH(rcu_head, pt_rcu_head); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1064:1: note: in expansion of macro 'TABLE_MATCH' 1064 | TABLE_MATCH(page_type, __page_type); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1064:1: note: in expansion of macro 'TABLE_MATCH' 1064 | TABLE_MATCH(page_type, __page_type); | ^~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1065:1: note: in expansion of macro 'TABLE_MATCH' 1065 | TABLE_MATCH(_refcount, _refcount); | ^~~~~~~~~~~ include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1065:1: note: in expansion of macro 'TABLE_MATCH' 1065 | TABLE_MATCH(_refcount, _refcount); | ^~~~~~~~~~~ include/linux/stddef.h:16:33: error: invalid use of undefined type 'struct page' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1067:1: note: in expansion of macro 'TABLE_MATCH' 1067 | TABLE_MATCH(memcg_data, pt_memcg_data); | ^~~~~~~~~~~ include/linux/stddef.h:16:33: error: expression in static assertion is not an integer 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1055:9: note: in expansion of macro 'static_assert' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~~~~~~ include/linux/pgtable.h:1055:23: note: in expansion of macro 'offsetof' 1055 | static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) | ^~~~~~~~ include/linux/pgtable.h:1067:1: note: in expansion of macro 'TABLE_MATCH' 1067 | TABLE_MATCH(memcg_data, pt_memcg_data); | ^~~~~~~~~~~ include/linux/pgtable.h:1070:47: error: invalid application of 'sizeof' to incomplete type 'struct page' 1070 | static_assert(sizeof(struct ptdesc) <= sizeof(struct page)); | ^~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1070:1: note: in expansion of macro 'static_assert' 1070 | static_assert(sizeof(struct ptdesc) <= sizeof(struct page)); | ^~~~~~~~~~~~~ include/linux/pgtable.h:1070:15: error: expression in static assertion is not an integer 1070 | static_assert(sizeof(struct ptdesc) <= sizeof(struct page)); | ^~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/pgtable.h:1070:1: note: in expansion of macro 'static_assert' 1070 | static_assert(sizeof(struct ptdesc) <= sizeof(struct page)); | ^~~~~~~~~~~~~ vim +/spinlock_t +1044 include/linux/pgtable.h 1000 1001 1002 /** 1003 * struct ptdesc - Memory descriptor for page tables. 1004 * @__page_flags: Same as page flags. Unused for page tables. 1005 * @pt_rcu_head: For freeing page table pages. 1006 * @pt_list: List of used page tables. Used for s390 and x86. 1007 * @_pt_pad_1: Padding that aliases with page's compound head. 1008 * @pmd_huge_pte: Protected by ptdesc->ptl, used for THPs. 1009 * @__page_mapping: Aliases with page->mapping. Unused for page tables. 1010 * @pt_mm: Used for x86 pgds. 1011 * @pt_frag_refcount: For fragmented page table tracking. Powerpc and s390 only. 1012 * @_pt_pad_2: Padding to ensure proper alignment. 1013 * @ptl: Lock for the page table. 1014 * @__page_type: Same as page->page_type. Unused for page tables. 1015 * @_refcount: Same as page refcount. Used for s390 page tables. 1016 * @pt_memcg_data: Memcg data. Tracked for page tables here. 1017 * 1018 * This struct overlays struct page for now. Do not modify without a good 1019 * understanding of the issues. 1020 */ 1021 struct ptdesc { 1022 unsigned long __page_flags; 1023 1024 union { 1025 struct rcu_head pt_rcu_head; 1026 struct list_head pt_list; 1027 struct { 1028 unsigned long _pt_pad_1; 1029 pgtable_t pmd_huge_pte; 1030 }; 1031 }; 1032 unsigned long __page_mapping; 1033 1034 union { 1035 struct mm_struct *pt_mm; 1036 atomic_t pt_frag_refcount; 1037 }; 1038 1039 union { 1040 unsigned long _pt_pad_2; 1041 #if ALLOC_SPLIT_PTLOCKS 1042 spinlock_t *ptl; 1043 #else > 1044 spinlock_t ptl; 1045 #endif 1046 }; 1047 unsigned int __page_type; 1048 atomic_t _refcount; 1049 #ifdef CONFIG_MEMCG 1050 unsigned long pt_memcg_data; 1051 #endif 1052 }; 1053 1054 #define TABLE_MATCH(pg, pt) \ 1055 static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) 1056 TABLE_MATCH(flags, __page_flags); 1057 TABLE_MATCH(compound_head, pt_list); 1058 TABLE_MATCH(compound_head, _pt_pad_1); 1059 TABLE_MATCH(pmd_huge_pte, pmd_huge_pte); 1060 TABLE_MATCH(mapping, __page_mapping); 1061 TABLE_MATCH(pt_mm, pt_mm); 1062 TABLE_MATCH(ptl, ptl); 1063 TABLE_MATCH(rcu_head, pt_rcu_head); 1064 TABLE_MATCH(page_type, __page_type); 1065 TABLE_MATCH(_refcount, _refcount); 1066 #ifdef CONFIG_MEMCG 1067 TABLE_MATCH(memcg_data, pt_memcg_data); 1068 #endif 1069 #undef TABLE_MATCH > 1070 static_assert(sizeof(struct ptdesc) <= sizeof(struct page)); 1071 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki