Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3260740pxf; Mon, 22 Mar 2021 01:54:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz++1ZfVTpSQ7cwBuRg2/ZGGR3FRyma5Gs6PhzTSQrawKb9Ev6GDrXOAvT6+tCl0zdWR7XA X-Received: by 2002:a50:9ea4:: with SMTP id a33mr24982076edf.295.1616403297727; Mon, 22 Mar 2021 01:54:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616403297; cv=none; d=google.com; s=arc-20160816; b=M9dOf0z7nhDoxueCcs0C2LqJsSXniyOHLxWElSWu1ZlVWFCSPxMKYXv+TfPaZwLnzZ 8iwEwGBcpqWGLtWw7fPWE9YH4DBTHIXF0+GJ+Vr1tAh15ggdWx+8waXTu0aOC4t75LWX LH6zdyTn5PsiwiVSRIHe1h5iuCUOACxmkNJDLCak/yxdp6LZLhQxzW8o63iSeiHlU3i+ rnAIT/mHtT2O8021d9NKdMVenQ0dMYhGBXXj1STvn2Mdq0LI/kVYaGfS31hHmWthvpIg oNsX3sPhf/8zJNx2zKKqDgssW1TujIn94NjtSjLb2adqXlxKY5hijo8jhxrfJBN1pcb5 N0MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:ironport-sdr:ironport-sdr; bh=BuSZrbCeT0cJqQXBd3j/4rQUI/myis+BDVVycQVduUI=; b=TdwLh385DRaz3QKPFbuWJE8g00QdnfFKKsc+jM4leWCaIsy94P+kEK2AIP3kpuufWD 4QaHCwk5EnZEzIk9EA+3EmF6QhpATjjfwOyXtF0KbqkMg8Og2/zoyeM/Z1a8HxmgDSvM iI+aSgp0v2QjrNYc7D6TApEF2u1ivWsWr5YwwEqO0hXeMGSXLboaaA1th9fyWPdQLQ3A r+8MbZKvgZ52YBwZ1vo5sj2MRqpuzQjtfPeB2swmpjFOzhLb4xS0DHsutXRTKhcjltTM 9zIubaY4frLtzEeClP7xVBbEeKt+JK1VhdEEcOF0hvjVvNR17DBGTlTwwxTU1C8wMVUv oHzw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k2si2843103ejx.546.2021.03.22.01.54.35; Mon, 22 Mar 2021 01:54:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229840AbhCVIxa (ORCPT + 99 others); Mon, 22 Mar 2021 04:53:30 -0400 Received: from mga14.intel.com ([192.55.52.115]:49744 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229879AbhCVIw6 (ORCPT ); Mon, 22 Mar 2021 04:52:58 -0400 IronPort-SDR: 6zc6txGcS4Y6JzCRGFIf1ZG3qCq12VP25sNOT/U7HrTW0Me8gXE7eqCWaAxLlpQhGngFm8tp3c KfXPCNo2Iy6g== X-IronPort-AV: E=McAfee;i="6000,8403,9930"; a="189629312" X-IronPort-AV: E=Sophos;i="5.81,268,1610438400"; d="scan'208";a="189629312" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2021 01:52:58 -0700 IronPort-SDR: U+8QV2gFOrWwZcdat02hWXGptCAX25cHkbKYOjzBjsGMRFsb0iZ0v7ArN9tTM7oOOlN2j4bV12 vMVAW1cnWy6w== X-IronPort-AV: E=Sophos;i="5.81,268,1610438400"; d="scan'208";a="414397791" Received: from shao2-debian.sh.intel.com (HELO [10.239.13.11]) ([10.239.13.11]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2021 01:52:56 -0700 Subject: Re: [kbuild-all] Re: include/linux/compiler_types.h:315:38: error: call to '__compiletime_assert_536' declared with attribute error: BUILD_BUG_ON failed: offsetof(struct can_frame, len) != offsetof(struct canfd_frame, len) || offsetof(struct can_frame, data) != offsetof(struc... To: Oliver Hartkopp , kernel test robot Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Marc Kleine-Budde References: <202103210435.I0fiBGAC-lkp@intel.com> From: Rong Chen Message-ID: <7f4f7e1c-194b-a903-d474-e3b742556a55@intel.com> Date: Mon, 22 Mar 2021 16:52:08 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/21/21 10:19 PM, Oliver Hartkopp wrote: > Two reminders in two days? ;-) > > Did you check my answer here? > https://lore.kernel.org/lkml/afffeb73-ba4c-ca2c-75d0-9e7899e5cbe1@hartkopp.net/ > > > And did you try the partly revert? Hi Oliver, Sorry for the delay, we tried the revert patch and the problem still exists, we also found that commit c7b74967 changed the error message which triggered the report. The problem is that offsetof(struct can_frame, data) != offsetof(struct canfd_frame, data) the following struct layout shows that the offset has been changed by union: struct can_frame {         canid_t                    can_id;               /* 0     4 */         union {                 __u8               len;                  /* 4     1 */                 __u8               can_dlc;              /* 4     1 */         };                                               /* 4     4 */         __u8                       __pad;                /* 8     1 */         __u8                       __res0;               /* 9     1 */         __u8                       len8_dlc;             /* 10     1 */         /* XXX 5 bytes hole, try to pack */         __u8                       data[8] __attribute__((__aligned__(8))); /*    16     8 */         /* size: 24, cachelines: 1, members: 6 */         /* sum members: 19, holes: 1, sum holes: 5 */         /* forced alignments: 1, forced holes: 1, sum forced holes: 5 */         /* last cacheline: 24 bytes */ } __attribute__((__aligned__(8))); struct canfd_frame {         canid_t                    can_id;               /* 0     4 */         __u8                       len;                  /* 4     1 */         __u8                       flags;                /* 5     1 */         __u8                       __res0;               /* 6     1 */         __u8                       __res1;               /* 7     1 */         __u8                       data[64] __attribute__((__aligned__(8))); /*     8    64 */         /* size: 72, cachelines: 2, members: 6 */         /* forced alignments: 1 */         /* last cacheline: 8 bytes */ } __attribute__((__aligned__(8))) and I tried to add "__attribute__((packed))" to the union, the issue is gone: diff --git a/include/uapi/linux/can.h b/include/uapi/linux/can.h index f75238ac6dce..9842bb55ffd9 100644 --- a/include/uapi/linux/can.h +++ b/include/uapi/linux/can.h @@ -113,7 +113,7 @@ struct can_frame {                  */                 __u8 len;                 __u8 can_dlc; /* deprecated */ -       }; +       } __attribute__((packed));         __u8 __pad; /* padding */         __u8 __res0; /* reserved / padding */         __u8 len8_dlc; /* optional DLC for 8 byte payload length (9 .. 15) */ Best Regards, Rong Chen > > Maybe there's a mismatch in include files - or BUILD_BUG_ON() > generally does not work with unions on ARM as assumed here: > > https://lore.kernel.org/lkml/6e57d5d2-9b88-aee6-fb7a-82e24144d179@hartkopp.net/ > > > In both cases I can not really fix the issue. > When the partly revert (suggested above) works, this would be a hack too. > > Best, > Oliver > > On 20.03.21 21:43, kernel test robot wrote: >> Hi Oliver, >> >> FYI, the error/warning still remains. >> >> tree: >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >> master >> head:   812da4d39463a060738008a46cfc9f775e4bfcf6 >> commit: c7b74967799b1af52b3045d69d4c26836b2d41de can: replace can_dlc >> as variable/element for payload length >> date:   4 months ago >> config: arm-randconfig-r016-20210321 (attached as .config) >> compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0 >> reproduce (this is a W=1 build): >>          wget >> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross >> -O ~/bin/make.cross >>          chmod +x ~/bin/make.cross >>          # >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c7b74967799b1af52b3045d69d4c26836b2d41de >>          git remote add linus >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >>          git fetch --no-tags linus master >>          git checkout c7b74967799b1af52b3045d69d4c26836b2d41de >>          # save the attached .config to linux build tree >>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 >> make.cross ARCH=arm >> >> If you fix the issue, kindly add following tag as appropriate >> Reported-by: kernel test robot >> >> All errors (new ones prefixed by >>): >> >>     In file included from : >>     net/can/af_can.c: In function 'can_init': >>>> include/linux/compiler_types.h:315:38: error: call to >>>> '__compiletime_assert_536' declared with attribute error: >>>> BUILD_BUG_ON failed: offsetof(struct can_frame, len) != >>>> offsetof(struct canfd_frame, len) || offsetof(struct can_frame, >>>> data) != offsetof(struct canfd_frame, data) >>       315 |  _compiletime_assert(condition, msg, >> __compiletime_assert_, __COUNTER__) >>           |                                      ^ >>     include/linux/compiler_types.h:296:4: note: in definition of >> macro '__compiletime_assert' >>       296 |    prefix ## suffix();    \ >>           |    ^~~~~~ >>     include/linux/compiler_types.h:315:2: note: in expansion of macro >> '_compiletime_assert' >>       315 |  _compiletime_assert(condition, msg, >> __compiletime_assert_, __COUNTER__) >>           |  ^~~~~~~~~~~~~~~~~~~ >>     include/linux/build_bug.h:39:37: note: in expansion of macro >> 'compiletime_assert' >>        39 | #define BUILD_BUG_ON_MSG(cond, msg) >> compiletime_assert(!(cond), msg) >>           | ^~~~~~~~~~~~~~~~~~ >>     include/linux/build_bug.h:50:2: note: in expansion of macro >> 'BUILD_BUG_ON_MSG' >>        50 |  BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " >> #condition) >>           |  ^~~~~~~~~~~~~~~~ >>     net/can/af_can.c:891:2: note: in expansion of macro 'BUILD_BUG_ON' >>       891 |  BUILD_BUG_ON(offsetof(struct can_frame, len) != >>           |  ^~~~~~~~~~~~ >> >> >> vim +/__compiletime_assert_536 +315 include/linux/compiler_types.h >> >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  301 >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  302  #define >> _compiletime_assert(condition, msg, prefix, suffix) \ >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  303 >> __compiletime_assert(condition, msg, prefix, suffix) >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  304 >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  305  /** >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  306   * compiletime_assert - >> break build and emit msg if condition is false >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  307   * @condition: a >> compile-time constant condition to check >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  308   * @msg:       a message >> to emit if condition is false >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  309   * >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  310   * In tradition of POSIX >> assert, this macro will break the build if the >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  311   * supplied condition is >> *false*, emitting the supplied error message if the >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  312   * compiler has support >> to do so. >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  313   */ >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  314  #define >> compiletime_assert(condition, msg) \ >> eb5c2d4b45e3d2 Will Deacon 2020-07-21 @315 >> _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) >> eb5c2d4b45e3d2 Will Deacon 2020-07-21  316 >> >> :::::: The code at line 315 was first introduced by commit >> :::::: eb5c2d4b45e3d2d5d052ea6b8f1463976b1020d5 compiler.h: Move >> compiletime_assert() macros into compiler_types.h >> >> :::::: TO: Will Deacon >> :::::: CC: Will Deacon >> >> --- >> 0-DAY CI Kernel Test Service, Intel Corporation >> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org >> > _______________________________________________ > kbuild-all mailing list -- kbuild-all@lists.01.org > To unsubscribe send an email to kbuild-all-leave@lists.01.org