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]
Date:   Mon, 17 Apr 2017 10:00:50 +0800
From:   Fengguang Wu <fengguang.wu@...el.com>
To:     Thomas Gleixner <tglx@...utronix.de>
Cc:     tipbuild@...or.com,
        Vikas Shivappa <vikas.shivappa@...ux.intel.com>,
        kbuild-all@...org, linux-kernel@...r.kernel.org
Subject: Re: [kbuild-all] [tip:x86/cpu 8/12]
 arch/x86/kernel/cpu/intel_rdt.c:63: error: unknown field 'cache' specified
 in initializer

On Sat, Apr 15, 2017 at 07:40:34AM +0200, Thomas Gleixner wrote:
>On Sat, 15 Apr 2017, kbuild test robot wrote:
>
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/cpu
>> head:   64e8ed3d4a6dcd6139a869a3e760e625cb0d3022
>> commit: 05b93417ce5b924c6652de19fdcc27439ab37c90 [8/12] x86/intel_rdt/mba: Add primary support for Memory Bandwidth Allocation (MBA)
>> config: x86_64-randconfig-s0-04150438 (attached as .config)
>> compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
>> reproduce:
>>         git checkout 05b93417ce5b924c6652de19fdcc27439ab37c90
>>         # save the attached .config to linux build tree
>>         make ARCH=x86_64
>
>That's weird.
>
>> c1c7c3f9 Fenghua Yu      2016-10-22  57  	{
>> c1c7c3f9 Fenghua Yu      2016-10-22  58  		.name			= "L3",
>> c1c7c3f9 Fenghua Yu      2016-10-22  59  		.domains		= domain_init(RDT_RESOURCE_L3),
>> c1c7c3f9 Fenghua Yu      2016-10-22  60  		.msr_base		= IA32_L3_CBM_BASE,
>> 0921c547 Thomas Gleixner 2017-04-14  61  		.msr_update		= cat_wrmsr,
>> c1c7c3f9 Fenghua Yu      2016-10-22  62  		.cache_level		= 3,
>> d3e11b4d Thomas Gleixner 2017-04-14 @63  		.cache = {
>> d3e11b4d Thomas Gleixner 2017-04-14 @64  			.min_cbm_bits	= 1,
>> d3e11b4d Thomas Gleixner 2017-04-14 @65  			.cbm_idx_mult	= 1,
>> d3e11b4d Thomas Gleixner 2017-04-14  66  			.cbm_idx_offset	= 0,
>> d3e11b4d Thomas Gleixner 2017-04-14  67  		},
>> c1c7c3f9 Fenghua Yu      2016-10-22  68  	},
>>
>> :::::: The code at line 63 was first introduced by commit
>> :::::: d3e11b4d6ffd363747ac6e6b5522baa9ca5a20c0 x86/intel_rdt: Move CBM specific data into a struct
>>
>
>So the compiler fails to handle the anon union, which was introduced in
>05b93417ce5b924. No idea why, but that concept is not new and widely used
>in the kernel already.

It looks like a problem with gcc 4.4:

        Bug 42875 - gcc disallows named initializers for anonymous unions
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42875
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676

        gcc-4.4.3 lets you statically initialize named fields, and
        lets you assign to anonymous union members, but you cannot
        statically initialize a named member of an anonymous union.

Thanks,
Fengguang

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ