From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Moore, Robert" Subject: RE: [PATCH] ACPICA: use designated initializers Date: Thu, 30 Mar 2017 14:26:08 +0000 Message-ID: <94F2FBAB4432B54E8AACC7DFDE6C92E37E58E285@ORSMSX110.amr.corp.intel.com> References: <20161217010425.GA140581@beast> <1AE640813FDE7649BE1B193DEA596E886CDFF348@SHSMSX101.ccr.corp.intel.com> <1AE640813FDE7649BE1B193DEA596E886CE6BD95@SHSMSX101.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1AE640813FDE7649BE1B193DEA596E886CE6BD95@SHSMSX101.ccr.corp.intel.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: "Zheng, Lv" , Kees Cook Cc: "linux-kernel@vger.kernel.org" , "Wysocki, Rafael J" , Len Brown , "linux-acpi@vger.kernel.org" , "devel@acpica.org" List-Id: linux-acpi@vger.kernel.org WWVzLCBBQ1BJQ0EgbXVzdCBzdXBwb3J0IG1hbnkgY29tcGlsZXJzLCBzbyB3ZSBrZWVwIHRoZSBj b2RlIGFzIHNpbXBsZSBhcyBwb3NzaWJsZS4NCg0KTWFueSBvZiB0aGUgY29ycG9yYXRlIE9TIHZl bmRvcnMgdXNlIHRoZWlyIG93biBjb21waWxlcnMuDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBaaGVuZywgTHYNCj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAyOSwg MjAxNyA3OjEyIFBNDQo+IFRvOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4NCj4g Q2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IE1vb3JlLCBSb2JlcnQNCj4gPHJvYmVy dC5tb29yZUBpbnRlbC5jb20+OyBXeXNvY2tpLCBSYWZhZWwgSg0KPiA8cmFmYWVsLmoud3lzb2Nr aUBpbnRlbC5jb20+OyBMZW4gQnJvd24gPGxlbmJAa2VybmVsLm9yZz47IGxpbnV4LQ0KPiBhY3Bp QHZnZXIua2VybmVsLm9yZzsgZGV2ZWxAYWNwaWNhLm9yZw0KPiBTdWJqZWN0OiBSRTogW1BBVENI XSBBQ1BJQ0E6IHVzZSBkZXNpZ25hdGVkIGluaXRpYWxpemVycw0KPiANCj4gSGksDQo+IA0KPiA+ IEZyb206IGtlZXNjb29rQGdvb2dsZS5jb20gW21haWx0bzprZWVzY29va0Bnb29nbGUuY29tXSBP biBCZWhhbGYgT2YNCj4gPiBLZWVzIENvb2sNCj4gPiBTdWJqZWN0OiBSZTogW1BBVENIXSBBQ1BJ Q0E6IHVzZSBkZXNpZ25hdGVkIGluaXRpYWxpemVycw0KPiA+DQo+ID4gT24gU3VuLCBEZWMgMTgs IDIwMTYgYXQgMTA6MDYgUE0sIFpoZW5nLCBMdiA8bHYuemhlbmdAaW50ZWwuY29tPg0KPiB3cm90 ZToNCj4gPiA+IEhpLA0KPiA+ID4NCj4gPiA+PiBGcm9tOiBLZWVzIENvb2sgW21haWx0bzprZWVz Y29va0BjaHJvbWl1bS5vcmddDQo+ID4gPj4gU3ViamVjdDogW1BBVENIXSBBQ1BJQ0E6IHVzZSBk ZXNpZ25hdGVkIGluaXRpYWxpemVycw0KPiA+ID4+DQo+ID4gPj4gUHJlcGFyZSB0byBtYXJrIHNl bnNpdGl2ZSBrZXJuZWwgc3RydWN0dXJlcyBmb3IgcmFuZG9taXphdGlvbiBieQ0KPiA+ID4+IG1h a2luZyBzdXJlIHRoZXkncmUgdXNpbmcgZGVzaWduYXRlZCBpbml0aWFsaXplcnMuIFRoZXNlIHdl cmUNCj4gPiA+PiBpZGVudGlmaWVkIGR1cmluZyBhbGx5ZXNjb25maWcgYnVpbGRzIG9mIHg4Niwg YXJtLCBhbmQgYXJtNjQsIHdpdGgNCj4gPiA+PiBtb3N0IGluaXRpYWxpemVyIGZpeGVzIGV4dHJh Y3RlZCBmcm9tIGdyc2VjdXJpdHkuDQo+ID4gPg0KPiA+ID4gVGhpcyBjb21taXQgaXMgbm90IHN1 aXRhYmxlIGZvciBBQ1BJQ0EgdXBzdHJlYW0uDQo+ID4gPiBJdCdzIG5vdCBwb3J0YWJsZS4gUGxl YXNlIGRyb3AuDQo+ID4NCj4gPiBXaGF0IGNvbXBpbGVycyBhcmUgYnVpbGRpbmcgdGhpcyB0aGF0 IGRvIG5vdCBzdXBwb3J0IGRlc2lnbmF0ZWQNCj4gPiBpbml0aWFsaXplcnM/IEFsc28sIGNvdWxk bid0IHRoaXMgYmUgbWFkZSBpbnRvIGEgbWFjcm8gc28gaXQgY291bGQgYmUNCj4gPiBzdXBwb3J0 ZWQgaW4gZWl0aGVyIGNhc2U/DQo+IA0KPiBJdCdzIE1TVkMuDQo+IEluIEFDUElDQSB1cHN0cmVh bSwgaXQgc3VwcG9ydHMgSW50ZWwgY29tcGlsZXIsIEdDQyBhbmQgTVNWQy4NCj4gDQo+ID4NCj4g PiAjaWZkZWYgX19HTlVDX18NCj4gPiAjIGRlZmluZSBBQ1BJX1NMRUVQX0ZVTkNUSU9OUyhsZWdh Y3ksIGV4dGVuZGVkKSB7IFwNCj4gPiAgICAgLmxlZ2FjeV9mdW5jdGlvbiA9IGxlZ2FjeSwgXA0K PiA+ICAgICAuZXh0ZW5kZWRfZnVuY3Rpb24gPSBleHRlbmRlZCwgXA0KPiA+IH0NCj4gPiAjZWxz ZQ0KPiA+ICMgZGVmaW5lIEFDUElfU0xFRVBfRlVOQ1RJT05TKGxlZ2FjeSwgZXh0ZW5kZWQpIHsg bGVnYWN5LCBleHRlbmRlZCB9DQo+ID4gI2VuZGlmDQo+ID4NCj4gPiAuLi4NCj4gPg0KPiA+ICBz dGF0aWMgc3RydWN0IGFjcGlfc2xlZXBfZnVuY3Rpb25zIGFjcGlfc2xlZXBfZGlzcGF0Y2hbXSA9 IHsNCj4gPiAgICAgICAgIEFDUElfU0xFRVBfRlVOQ1RJT05TKA0KPiA+ICAgICAgICAgICAgICAg IEFDUElfSFdfT1BUSU9OQUxfRlVOQ1RJT04oYWNwaV9od19sZWdhY3lfc2xlZXApLA0KPiA+ICAg ICAgICAgICAgICAgIGFjcGlfaHdfZXh0ZW5kZWRfc2xlZXApLCAuLi4NCj4gDQo+IFRoZXJlIGFy ZSBtYW55IHN1Y2ggY2FzZXMgaW4gQUNQSUNBLCBhbmQgSSBjb3VsZG4ndCBzZWUgdGhlIGJlbmVm aXQgdG8NCj4gaW50cm9kdWNlIHN1Y2ggbWVjaGFuaXNtIHRvIHN1Y2ggYSBzb2Z0d2FyZSB3aG9z ZSBwdXJwb3NlcyBjb250YWluDQo+IHBvcnRhYmlsaXR5Lg0KPiBVbmxlc3MgeW91IGNhbiBpbnZl bnQgYSBtZWNoYW5pc20gdGhhdCBjYW4gYmUgdXRpbGl6ZWQgYnkgYWxsIHN1Y2gNCj4gY2FzZXMu DQo+IFRoZW4geW91IHNob3VsZCBwdXQgaXQgaW50byBhY2djYy5oIGFuZCBpbXBsZW1lbnQgYSBy ZXBsYWNlYWJsZSBpbg0KPiBhY21zdmMuaC4NCj4gQWZ0ZXIgdGhhdCwgeW91IHN1cmVseSBuZWVk IHRvIGRvIGEgY2xlYW51cCBpbiB0aGUgZW50aXJlIEFDUElDQSBjb2RlDQo+IGJhc2UgdXNpbmcg dGhpcyBuZXcgbWVjaGFuaXNtLg0KPiANCj4gVGhhbmtzDQo+IEx2DQo+IA0KPiA+DQo+ID4NCj4g PiAtS2Vlcw0KPiA+DQo+ID4gPg0KPiA+ID4gVGhhbmtzDQo+ID4gPiBMdg0KPiA+ID4NCj4gPiA+ Pg0KPiA+ID4+IFNpZ25lZC1vZmYtYnk6IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3Jn Pg0KPiA+ID4+IC0tLQ0KPiA+ID4+ICBkcml2ZXJzL2FjcGkvYWNwaWNhL2h3eGZzbGVlcC5jIHwg MTEgKysrKysrLS0tLS0NCj4gPiA+PiAgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkNCj4gPiA+Pg0KPiA+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkv YWNwaWNhL2h3eGZzbGVlcC5jDQo+ID4gPj4gYi9kcml2ZXJzL2FjcGkvYWNwaWNhL2h3eGZzbGVl cC5jIGluZGV4IGY3NmUwZWFiMzJiOC4uMjVjZDVjNjZlMTAyDQo+ID4gPj4gMTAwNjQ0DQo+ID4g Pj4gLS0tIGEvZHJpdmVycy9hY3BpL2FjcGljYS9od3hmc2xlZXAuYw0KPiA+ID4+ICsrKyBiL2Ry aXZlcnMvYWNwaS9hY3BpY2EvaHd4ZnNsZWVwLmMNCj4gPiA+PiBAQCAtNzAsMTEgKzcwLDEyIEBA IHN0YXRpYyBhY3BpX3N0YXR1cyBhY3BpX2h3X3NsZWVwX2Rpc3BhdGNoKHU4DQo+ID4gPj4gc2xl ZXBfc3RhdGUsIHUzMiBmdW5jdGlvbl9pZCk7DQo+ID4gPj4gIC8qIExlZ2FjeSBmdW5jdGlvbnMg YXJlIG9wdGlvbmFsLCBiYXNlZCB1cG9uIEFDUElfUkVEVUNFRF9IQVJEV0FSRQ0KPiA+ID4+ICov DQo+ID4gPj4NCj4gPiA+PiAgc3RhdGljIHN0cnVjdCBhY3BpX3NsZWVwX2Z1bmN0aW9ucyBhY3Bp X3NsZWVwX2Rpc3BhdGNoW10gPSB7DQo+ID4gPj4gLSAgICAge0FDUElfSFdfT1BUSU9OQUxfRlVO Q1RJT04oYWNwaV9od19sZWdhY3lfc2xlZXApLA0KPiA+ID4+IC0gICAgICBhY3BpX2h3X2V4dGVu ZGVkX3NsZWVwfSwNCj4gPiA+PiAtICAgICB7QUNQSV9IV19PUFRJT05BTF9GVU5DVElPTihhY3Bp X2h3X2xlZ2FjeV93YWtlX3ByZXApLA0KPiA+ID4+IC0gICAgICBhY3BpX2h3X2V4dGVuZGVkX3dh a2VfcHJlcH0sDQo+ID4gPj4gLSAgICAge0FDUElfSFdfT1BUSU9OQUxfRlVOQ1RJT04oYWNwaV9o d19sZWdhY3lfd2FrZSksDQo+IGFjcGlfaHdfZXh0ZW5kZWRfd2FrZX0NCj4gPiA+PiArICAgICB7 IC5sZWdhY3lfZnVuY3Rpb24gPQ0KPiBBQ1BJX0hXX09QVElPTkFMX0ZVTkNUSU9OKGFjcGlfaHdf bGVnYWN5X3NsZWVwKSwNCj4gPiA+PiArICAgICAgIC5leHRlbmRlZF9mdW5jdGlvbiA9IGFjcGlf aHdfZXh0ZW5kZWRfc2xlZXAgfSwNCj4gPiA+PiArICAgICB7IC5sZWdhY3lfZnVuY3Rpb24gPQ0K PiBBQ1BJX0hXX09QVElPTkFMX0ZVTkNUSU9OKGFjcGlfaHdfbGVnYWN5X3dha2VfcHJlcCksDQo+ ID4gPj4gKyAgICAgICAuZXh0ZW5kZWRfZnVuY3Rpb24gPSBhY3BpX2h3X2V4dGVuZGVkX3dha2Vf cHJlcCB9LA0KPiA+ID4+ICsgICAgIHsgLmxlZ2FjeV9mdW5jdGlvbiA9DQo+IEFDUElfSFdfT1BU SU9OQUxfRlVOQ1RJT04oYWNwaV9od19sZWdhY3lfd2FrZSksDQo+ID4gPj4gKyAgICAgICAuZXh0 ZW5kZWRfZnVuY3Rpb24gPSBhY3BpX2h3X2V4dGVuZGVkX3dha2UgfQ0KPiA+ID4+ICB9Ow0KPiA+ ID4+DQo+ID4gPj4gIC8qDQo+ID4gPj4gLS0NCj4gPiA+PiAyLjcuNA0KPiA+ID4+DQo+ID4gPj4N Cj4gPiA+PiAtLQ0KPiA+ID4+IEtlZXMgQ29vaw0KPiA+ID4+IE5leHVzIFNlY3VyaXR5DQo+ID4N Cj4gPg0KPiA+DQo+ID4gLS0NCj4gPiBLZWVzIENvb2sNCj4gPiBQaXhlbCBTZWN1cml0eQ0K From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8785785317156268603==" MIME-Version: 1.0 From: Moore, Robert Subject: Re: [Devel] [PATCH] ACPICA: use designated initializers Date: Thu, 30 Mar 2017 14:26:08 +0000 Message-ID: <94F2FBAB4432B54E8AACC7DFDE6C92E37E58E285@ORSMSX110.amr.corp.intel.com> In-Reply-To: 1AE640813FDE7649BE1B193DEA596E886CE6BD95@SHSMSX101.ccr.corp.intel.com List-ID: To: devel@acpica.org --===============8785785317156268603== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Yes, ACPICA must support many compilers, so we keep the code as simple as p= ossible. Many of the corporate OS vendors use their own compilers. > -----Original Message----- > From: Zheng, Lv > Sent: Wednesday, March 29, 2017 7:12 PM > To: Kees Cook > Cc: linux-kernel(a)vger.kernel.org; Moore, Robert > ; Wysocki, Rafael J > ; Len Brown ; linux- > acpi(a)vger.kernel.org; devel(a)acpica.org > Subject: RE: [PATCH] ACPICA: use designated initializers > = > Hi, > = > > From: keescook(a)google.com [mailto:keescook(a)google.com] On Behalf Of > > Kees Cook > > Subject: Re: [PATCH] ACPICA: use designated initializers > > > > On Sun, Dec 18, 2016 at 10:06 PM, Zheng, Lv > wrote: > > > Hi, > > > > > >> From: Kees Cook [mailto:keescook(a)chromium.org] > > >> Subject: [PATCH] ACPICA: use designated initializers > > >> > > >> Prepare to mark sensitive kernel structures for randomization by > > >> making sure they're using designated initializers. These were > > >> identified during allyesconfig builds of x86, arm, and arm64, with > > >> most initializer fixes extracted from grsecurity. > > > > > > This commit is not suitable for ACPICA upstream. > > > It's not portable. Please drop. > > > > What compilers are building this that do not support designated > > initializers? Also, couldn't this be made into a macro so it could be > > supported in either case? > = > It's MSVC. > In ACPICA upstream, it supports Intel compiler, GCC and MSVC. > = > > > > #ifdef __GNUC__ > > # define ACPI_SLEEP_FUNCTIONS(legacy, extended) { \ > > .legacy_function =3D legacy, \ > > .extended_function =3D extended, \ > > } > > #else > > # define ACPI_SLEEP_FUNCTIONS(legacy, extended) { legacy, extended } > > #endif > > > > ... > > > > static struct acpi_sleep_functions acpi_sleep_dispatch[] =3D { > > ACPI_SLEEP_FUNCTIONS( > > ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep), > > acpi_hw_extended_sleep), ... > = > There are many such cases in ACPICA, and I couldn't see the benefit to > introduce such mechanism to such a software whose purposes contain > portability. > Unless you can invent a mechanism that can be utilized by all such > cases. > Then you should put it into acgcc.h and implement a replaceable in > acmsvc.h. > After that, you surely need to do a cleanup in the entire ACPICA code > base using this new mechanism. > = > Thanks > Lv > = > > > > > > -Kees > > > > > > > > Thanks > > > Lv > > > > > >> > > >> Signed-off-by: Kees Cook > > >> --- > > >> drivers/acpi/acpica/hwxfsleep.c | 11 ++++++----- > > >> 1 file changed, 6 insertions(+), 5 deletions(-) > > >> > > >> diff --git a/drivers/acpi/acpica/hwxfsleep.c > > >> b/drivers/acpi/acpica/hwxfsleep.c index f76e0eab32b8..25cd5c66e102 > > >> 100644 > > >> --- a/drivers/acpi/acpica/hwxfsleep.c > > >> +++ b/drivers/acpi/acpica/hwxfsleep.c > > >> @@ -70,11 +70,12 @@ static acpi_status acpi_hw_sleep_dispatch(u8 > > >> sleep_state, u32 function_id); > > >> /* Legacy functions are optional, based upon ACPI_REDUCED_HARDWARE > > >> */ > > >> > > >> static struct acpi_sleep_functions acpi_sleep_dispatch[] =3D { > > >> - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep), > > >> - acpi_hw_extended_sleep}, > > >> - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep), > > >> - acpi_hw_extended_wake_prep}, > > >> - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake), > acpi_hw_extended_wake} > > >> + { .legacy_function =3D > ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep), > > >> + .extended_function =3D acpi_hw_extended_sleep }, > > >> + { .legacy_function =3D > ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep), > > >> + .extended_function =3D acpi_hw_extended_wake_prep }, > > >> + { .legacy_function =3D > ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake), > > >> + .extended_function =3D acpi_hw_extended_wake } > > >> }; > > >> > > >> /* > > >> -- > > >> 2.7.4 > > >> > > >> > > >> -- > > >> Kees Cook > > >> Nexus Security > > > > > > > > -- > > Kees Cook > > Pixel Security --===============8785785317156268603==--