From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ZXSHCAS1.zhaoxin.com (unknown [203.148.12.81]) by sourceware.org (Postfix) with ESMTPS id EB99C3892007 for ; Thu, 30 Apr 2020 13:22:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EB99C3892007 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=zhaoxin.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Mayshao-oc@zhaoxin.com Received: from zxbjmbx3.zhaoxin.com (10.29.252.165) by ZXSHCAS1.zhaoxin.com (10.28.252.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Thu, 30 Apr 2020 21:22:52 +0800 Received: from zxbjmbx3.zhaoxin.com (10.29.252.165) by zxbjmbx3.zhaoxin.com (10.29.252.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Thu, 30 Apr 2020 21:22:51 +0800 Received: from zxbjmbx3.zhaoxin.com ([fe80::57b:6f00:3193:d8a6]) by zxbjmbx3.zhaoxin.com ([fe80::57b:6f00:3193:d8a6%8]) with mapi id 15.01.1979.003; Thu, 30 Apr 2020 21:22:51 +0800 From: Mayshao-oc To: "H.J. Lu" CC: Carlos O'Donell , Florian Weimer , GNU C Library , "Qiyuan Wang(BJ-RD)" , "Herry Yang(BJ-RD)" , "Cooper Yan(BJ-RD)" , "Ricky Li(BJ-RD)" Subject: RE: [PATCH v3 2/3] x86: Add cache information support for Zhaoxin processors Thread-Topic: [PATCH v3 2/3] x86: Add cache information support for Zhaoxin processors Thread-Index: AQHWGjQMwnXU7yip/0eM//AyOmi+/KiHtBCAgAMdPsD///q4gIAGUVCw//+E6gCAAJAS0P//74CAABGG1vA= Date: Thu, 30 Apr 2020 13:22:51 +0000 Message-ID: References: <1587731372-9324-1-git-send-email-mayshao-oc@zhaoxin.com> <1587731372-9324-3-git-send-email-mayshao-oc@zhaoxin.com> <205594b758b74c338aec7fad168d9bf4@zhaoxin.com> <2bd2c586658340a88e018b39f0a2771e@zhaoxin.com> In-Reply-To: Accept-Language: en-US Content-Language: zh-CN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.29.28.25] Content-Type: multipart/mixed; boundary="_004_e4c34207db02435fa325ad81c9f81e30zhaoxincom_" MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Apr 2020 13:23:05 -0000 --_004_e4c34207db02435fa325ad81c9f81e30zhaoxincom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpPbiBUaHVyLCBBcHIgMzAsIDIwMjAgYXQgODo1MiBQTSBILkouIEx1IDxoamwudG9vbHNAZ21h aWwuY29tPiB3cm90ZToNCj4gDQo+IE9uIFdlZCwgQXByIDI5LCAyMDIwIGF0IDExOjA0IFBNIE1h eXNoYW8tb2MgPE1heXNoYW8tb2NAemhhb3hpbi5jb20+DQo+IHdyb3RlOg0KPiA+DQo+ID4NCj4g PiBPbiBUaHVyLCBBcHJpbCAzMCwgMjAyMCBhdCAxOjE2IFBNIEguSi4gTHUgPGhqbC50b29sc0Bn bWFpbC5jb20+IHdyb3RlOg0KPiA+ID4NCj4gPiA+IE9uIFdlZCwgQXByIDI5LCAyMDIwIGF0IDEw OjEwIFBNIE1heXNoYW8tb2MNCj4gPE1heXNoYW8tb2NAemhhb3hpbi5jb20+DQo+ID4gPiB3cm90 ZToNCj4gPiA+ID4NCj4gPiA+ID4gSGkNCj4gPiA+ID4NCj4gPiA+ID4gVGhpcyBpcyBteSBmaXJz dCBwYXRjaC4gIEnigJltIG5vdCBzdXJlIHdoYXQgSSBuZWVkIHRvIGRvIG5leHQgYWJvdXQgdGhp cw0KPiBwYXRjaA0KPiA+ID4gc2V0Lg0KPiA+ID4gPiBBbmQgSSB3YXMgd2FuZGVyaW5nIGlmIHRo aXMgcGF0Y2ggc2V0IGlzIG9rIGZvciB0aGUgbWFzdGVyLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFu ayB5b3UgYWxsIGZvciB5b3VyIHBhdGllbmNlIGFuZCBraW5kIGhlbHAuDQo+ID4gPiA+DQo+ID4g Pg0KPiA+ID4gSXQgaXMgT0suICBQbGVhc2UgY2hlY2sgaXQgaW4uDQo+ID4gPg0KPiA+IERvIHlv dSBtZWFuIHRoYXQgSSBzaG91bGQgcHVzaCB0aGUgcGF0Y2ggc2V0IHRvIHRoZSBtYXN0ZXIgYnkg bXlzZWxmPw0KPiA+IElmIHNvLCBJIHNob3VsZCBoYXZlIG5vIHBlcm1pc3Npb24gdG8gcHVzaC4g IFdvdWxkIHlvdSBsaWtlIHRvIHB1c2ggdG8gdGhlDQo+IG1hc3Rlcg0KPiA+IGZvciBtZSBhdCB5 b3VyIGxlaXN1cmU/DQo+ID4NCj4gPiBJZiBJIHVuZGVyc3RhbmQgc29tZXRoaW5nIHdyb25nLCBw bGVhc2UgZmVlbCBmcmVlIHRvIHBvaW50IGl0IG91dC4NCj4gPg0KPiA+IFRoYW5rIHlvdSB2ZXJ5 IG11Y2guDQo+IA0KPiBQbGVhc2Ugc2VuZCBtZSB0aG9zZSBwYXRjaGVzIGZyb20gImdpdCBmb3Jt YXQtcGF0Y2giIGFzIGF0dGFjaG1lbnRzLCBJIHdpbGwNCj4gYXBwbHkgdGhlbSBmb3IgeW91Lg0K PiANCkkgaGF2ZSBhdHRhY2hlZCB0aGUgcGF0Y2ggdG8gdGhpcyBlbWFpbCwgcGxlYXNlIGNoZWNr Lg0KDQpUaGFuayB5b3Ugc28gbXVjaC4NCg0KQmVzdCBSZWdhcmRzLA0KTWF5IFNoYW8NCg0K --_004_e4c34207db02435fa325ad81c9f81e30zhaoxincom_ Content-Type: application/octet-stream; name="0001-x86-Add-CPU-Vendor-ID-detection-support-for-Zhaoxin-.patch" Content-Description: 0001-x86-Add-CPU-Vendor-ID-detection-support-for-Zhaoxin-.patch Content-Disposition: attachment; filename="0001-x86-Add-CPU-Vendor-ID-detection-support-for-Zhaoxin-.patch"; size=2940; creation-date="Thu, 30 Apr 2020 13:13:09 GMT"; modification-date="Thu, 30 Apr 2020 05:11:58 GMT" Content-Transfer-Encoding: base64 RnJvbSBiNDVkNTc4MGFjOTAyM2Q3YTIxMGE4ZTg2Y2EzYmY0MWEyZTkyZDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXlzaGFvIDxtYXlzaGFvLW9jQHpoYW94aW4uY29tPgpEYXRl OiBGcmksIDI0IEFwciAyMDIwIDEyOjU1OjM4ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MyAxLzNd IHg4NjogQWRkIENQVSBWZW5kb3IgSUQgZGV0ZWN0aW9uIHN1cHBvcnQgZm9yIFpoYW94aW4KIHBy b2Nlc3NvcnMKClRvIHJlY29nbml6ZSBaaGFveGluIENQVSBWZW5kb3IgSUQsIGFkZCBhIG5ldyBh cmNoaXRlY3R1cmUgdHlwZQphcmNoX2tpbmRfemhhb3hpbiBmb3IgVmVuZG9yIFpoYW94aW4gZGV0 ZWN0aW9uLgotLS0KIHN5c2RlcHMveDg2L2NwdS1mZWF0dXJlcy5jIHwgNTQgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3lzZGVwcy94ODYvY3B1LWZlYXR1 cmVzLmggfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVyZXMuYyBiL3N5c2RlcHMveDg2L2NwdS1mZWF0dXJl cy5jCmluZGV4IDgxYTE3MGEuLmJmYjQxNWYgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2L2NwdS1m ZWF0dXJlcy5jCisrKyBiL3N5c2RlcHMveDg2L2NwdS1mZWF0dXJlcy5jCkBAIC00NjYsNiArNDY2 LDYwIEBAIGluaXRfY3B1X2ZlYXR1cmVzIChzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVy ZXMpCiAJICB9CiAJfQogICAgIH0KKyAgLyogVGhpcyBzcGVsbHMgb3V0ICJDZW50YXVySGF1bHMi IG9yICIgU2hhbmdoYWkgIi4gICovCisgIGVsc2UgaWYgKChlYnggPT0gMHg3NDZlNjU0MyAmJiBl Y3ggPT0gMHg3MzZjNzU2MSAmJiBlZHggPT0gMHg0ODcyNzU2MSkKKwkgICB8fCAoZWJ4ID09IDB4 Njg1MzIwMjAgJiYgZWN4ID09IDB4MjAyMDY5NjEgJiYgZWR4ID09IDB4Njg2NzZlNjEpKQorICAg IHsKKyAgICAgIHVuc2lnbmVkIGludCBleHRlbmRlZF9tb2RlbCwgc3RlcHBpbmc7CisKKyAgICAg IGtpbmQgPSBhcmNoX2tpbmRfemhhb3hpbjsKKworICAgICAgZ2V0X2NvbW1vbl9pbmRpY2VzIChj cHVfZmVhdHVyZXMsICZmYW1pbHksICZtb2RlbCwgJmV4dGVuZGVkX21vZGVsLAorCQkJICAmc3Rl cHBpbmcpOworCisgICAgICBnZXRfZXh0ZW5kZWRfaW5kaWNlcyAoY3B1X2ZlYXR1cmVzKTsKKwor ICAgICAgbW9kZWwgKz0gZXh0ZW5kZWRfbW9kZWw7CisgICAgICBpZiAoZmFtaWx5ID09IDB4NikK KyAgICAgICAgeworICAgICAgICAgIGlmIChtb2RlbCA9PSAweGYgfHwgbW9kZWwgPT0gMHgxOSkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlW2luZGV4 X2FyY2hfQVZYX1VzYWJsZV0KKyAgICAgICAgICAgICAgICAmPSAofmJpdF9hcmNoX0FWWF9Vc2Fi bGUKKyAgICAgICAgICAgICAgICAmIH5iaXRfYXJjaF9BVlgyX1VzYWJsZSk7CisKKyAgICAgICAg ICAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlW2luZGV4X2FyY2hfU2xvd19TU0U0XzJdCisgICAg ICAgICAgICAgICAgfD0gKGJpdF9hcmNoX1Nsb3dfU1NFNF8yKTsKKworICAgICAgICAgICAgICBj cHVfZmVhdHVyZXMtPmZlYXR1cmVbaW5kZXhfYXJjaF9BVlhfRmFzdF9VbmFsaWduZWRfTG9hZF0K KyAgICAgICAgICAgICAgICAmPSB+Yml0X2FyY2hfQVZYX0Zhc3RfVW5hbGlnbmVkX0xvYWQ7Cisg ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIGVsc2UgaWYgKGZhbWlseSA9PSAweDcpCisg ICAgICAgIHsKKyAgICAgICAgICBpZiAobW9kZWwgPT0gMHgxYikKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlW2luZGV4X2FyY2hfQVZYX1VzYWJsZV0K KyAgICAgICAgICAgICAgICAmPSAofmJpdF9hcmNoX0FWWF9Vc2FibGUKKyAgICAgICAgICAgICAg ICAmIH5iaXRfYXJjaF9BVlgyX1VzYWJsZSk7CisKKyAgICAgICAgICAgICAgY3B1X2ZlYXR1cmVz LT5mZWF0dXJlW2luZGV4X2FyY2hfU2xvd19TU0U0XzJdCisgICAgICAgICAgICAgICAgfD0gYml0 X2FyY2hfU2xvd19TU0U0XzI7CisKKyAgICAgICAgICAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJl W2luZGV4X2FyY2hfQVZYX0Zhc3RfVW5hbGlnbmVkX0xvYWRdCisgICAgICAgICAgICAgICAgJj0g fmJpdF9hcmNoX0FWWF9GYXN0X1VuYWxpZ25lZF9Mb2FkOworICAgICAgICAgICB9CisgICAgICAg ICBlbHNlIGlmIChtb2RlbCA9PSAweDNiKQorICAgICAgICAgICB7CisgICAgICAgICAgICAgY3B1 X2ZlYXR1cmVzLT5mZWF0dXJlW2luZGV4X2FyY2hfQVZYX1VzYWJsZV0KKyAgICAgICAgICAgICAg ICY9ICh+Yml0X2FyY2hfQVZYX1VzYWJsZQorICAgICAgICAgICAgICAgJiB+Yml0X2FyY2hfQVZY Ml9Vc2FibGUpOworCisgICAgICAgICAgICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVbaW5kZXhf YXJjaF9BVlhfRmFzdF9VbmFsaWduZWRfTG9hZF0KKyAgICAgICAgICAgICAgICY9IH5iaXRfYXJj aF9BVlhfRmFzdF9VbmFsaWduZWRfTG9hZDsKKyAgICAgICAgICAgfQorICAgICAgIH0KKyAgICB9 CiAgIGVsc2UKICAgICB7CiAgICAgICBraW5kID0gYXJjaF9raW5kX290aGVyOwpkaWZmIC0tZ2l0 IGEvc3lzZGVwcy94ODYvY3B1LWZlYXR1cmVzLmggYi9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVyZXMu aAppbmRleCBhZWE4M2U2Li5mMDVkNWNlIDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Ni9jcHUtZmVh dHVyZXMuaAorKysgYi9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVyZXMuaApAQCAtNTMsNiArNTMsNyBA QCBlbnVtIGNwdV9mZWF0dXJlc19raW5kCiAgIGFyY2hfa2luZF91bmtub3duID0gMCwKICAgYXJj aF9raW5kX2ludGVsLAogICBhcmNoX2tpbmRfYW1kLAorICBhcmNoX2tpbmRfemhhb3hpbiwKICAg YXJjaF9raW5kX290aGVyCiB9OwogCi0tIAoyLjcuNAoK --_004_e4c34207db02435fa325ad81c9f81e30zhaoxincom_ Content-Type: application/octet-stream; name="0002-x86-Add-cache-information-support-for-Zhaoxin-proces.patch" Content-Description: 0002-x86-Add-cache-information-support-for-Zhaoxin-proces.patch Content-Disposition: attachment; filename="0002-x86-Add-cache-information-support-for-Zhaoxin-proces.patch"; size=16075; creation-date="Thu, 30 Apr 2020 13:13:09 GMT"; modification-date="Thu, 30 Apr 2020 05:11:58 GMT" Content-Transfer-Encoding: base64 RnJvbSAyZjA5Nzc5Y2ZhYTlkMTRlMTRlZjVmOTU3NzAyYTljYjg5MzM5YWJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXlzaGFvLW9jIDxtYXlzaGFvLW9jQHpoYW94aW4uY29tPgpE YXRlOiBTdW4sIDI2IEFwciAyMDIwIDEzOjQ4OjI3ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MyAy LzNdIHg4NjogQWRkIGNhY2hlIGluZm9ybWF0aW9uIHN1cHBvcnQgZm9yIFpoYW94aW4gcHJvY2Vz c29ycwoKVG8gb2J0YWluIFpoYW94aW4gQ1BVIGNhY2hlIGluZm9ybWF0aW9uLCBhZGQgYSBuZXcg ZnVuY3Rpb24KaGFuZGxlX3poYW94aW4oKS4KCkFkZCBhIG5ldyBmdW5jdGlvbiBnZXRfY29tbW9u X2NhY2hlX2luZm8oKSB0aGF0IGV4dHJhY3RzIHRoZSBjb2RlCmluIGluaXRfY2FjaGVpbmZvKCkg dG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgc2hhcmVkLCB0aHJlYWRzLgoKQWRkIFpo YW94aW4gYnJhbmNoIGluIGluaXRfY2FjaGVpbmZvKCkgZm9yIGluaXRpYWxpemluZyB2YXJpYWJs ZXMsCnN1Y2ggYXMgX194ODZfc2hhcmVkX2NhY2hlX3NpemUuCi0tLQogc3lzZGVwcy94ODYvY2Fj aGVpbmZvLmMgfCA0NzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjgyIGluc2VydGlvbnMoKyksIDE5NiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni9jYWNoZWluZm8uYyBiL3N5c2RlcHMveDg2L2Nh Y2hlaW5mby5jCmluZGV4IGUzZThlZjIuLjQzNmMwNWQgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2 L2NhY2hlaW5mby5jCisrKyBiL3N5c2RlcHMveDg2L2NhY2hlaW5mby5jCkBAIC00MzYsNiArNDM2 LDU3IEBAIGhhbmRsZV9hbWQgKGludCBuYW1lKQogfQogCiAKK3N0YXRpYyBsb25nIGludCBfX2F0 dHJpYnV0ZV9fICgobm9pbmxpbmUpKQoraGFuZGxlX3poYW94aW4gKGludCBuYW1lKQoreworICB1 bnNpZ25lZCBpbnQgZWF4OworICB1bnNpZ25lZCBpbnQgZWJ4OworICB1bnNpZ25lZCBpbnQgZWN4 OworICB1bnNpZ25lZCBpbnQgZWR4OworCisgIGludCBmb2xkZWRfcmVsX25hbWUgPSAoTShuYW1l KSAvIDMpICogMzsKKworICB1bnNpZ25lZCBpbnQgcm91bmQgPSAwOworICB3aGlsZSAoMSkKKyAg ICB7CisgICAgICBfX2NwdWlkX2NvdW50ICg0LCByb3VuZCwgZWF4LCBlYngsIGVjeCwgZWR4KTsK KworICAgICAgZW51bSB7IG51bGwgPSAwLCBkYXRhID0gMSwgaW5zdCA9IDIsIHVuaSA9IDMgfSB0 eXBlID0gZWF4ICYgMHgxZjsKKyAgICAgIGlmICh0eXBlID09IG51bGwpCisgICAgICAgIGJyZWFr OworCisgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwgPSAoZWF4ID4+IDUpICYgMHg3OworCisgICAg ICBpZiAoKGxldmVsID09IDEgJiYgdHlwZSA9PSBkYXRhCisgICAgICAgICYmIGZvbGRlZF9yZWxf bmFtZSA9PSBNKF9TQ19MRVZFTDFfRENBQ0hFX1NJWkUpKQorICAgICAgICB8fCAobGV2ZWwgPT0g MSAmJiB0eXBlID09IGluc3QKKyAgICAgICAgICAgICYmIGZvbGRlZF9yZWxfbmFtZSA9PSBNKF9T Q19MRVZFTDFfSUNBQ0hFX1NJWkUpKQorICAgICAgICB8fCAobGV2ZWwgPT0gMiAmJiBmb2xkZWRf cmVsX25hbWUgPT0gTShfU0NfTEVWRUwyX0NBQ0hFX1NJWkUpKQorICAgICAgICB8fCAobGV2ZWwg PT0gMyAmJiBmb2xkZWRfcmVsX25hbWUgPT0gTShfU0NfTEVWRUwzX0NBQ0hFX1NJWkUpKSkKKyAg ICAgICAgeworICAgICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQgPSBNKG5hbWUpIC0gZm9sZGVk X3JlbF9uYW1lOworCisgICAgICAgICAgaWYgKG9mZnNldCA9PSAwKQorICAgICAgICAgICAgLyog Q2FjaGUgc2l6ZS4gICovCisgICAgICAgICAgICByZXR1cm4gKCgoZWJ4ID4+IDIyKSArIDEpCisg ICAgICAgICAgICAgICAgKiAoKChlYnggPj4gMTIpICYgMHgzZmYpICsgMSkKKyAgICAgICAgICAg ICAgICAqICgoZWJ4ICYgMHhmZmYpICsgMSkKKyAgICAgICAgICAgICAgICAqIChlY3ggKyAxKSk7 CisgICAgICAgICAgaWYgKG9mZnNldCA9PSAxKQorICAgICAgICAgICAgcmV0dXJuIChlYnggPj4g MjIpICsgMTsKKworICAgICAgICAgIGFzc2VydCAob2Zmc2V0ID09IDIpOworICAgICAgICAgIHJl dHVybiAoZWJ4ICYgMHhmZmYpICsgMTsKKyAgICAgICAgfQorCisgICAgICArK3JvdW5kOworICAg IH0KKworICAvKiBOb3RoaW5nIGZvdW5kLiAgKi8JCisgIHJldHVybiAwOworfQorCisKIC8qIEdl dCB0aGUgdmFsdWUgb2YgdGhlIHN5c3RlbSB2YXJpYWJsZSBOQU1FLiAgKi8KIGxvbmcgaW50CiBh dHRyaWJ1dGVfaGlkZGVuCkBAIC00NDksNiArNTAwLDkgQEAgX19jYWNoZV9zeXNjb25mIChpbnQg bmFtZSkKICAgaWYgKGNwdV9mZWF0dXJlcy0+YmFzaWMua2luZCA9PSBhcmNoX2tpbmRfYW1kKQog ICAgIHJldHVybiBoYW5kbGVfYW1kIChuYW1lKTsKIAorICBpZiAoY3B1X2ZlYXR1cmVzLT5iYXNp Yy5raW5kID09IGFyY2hfa2luZF96aGFveGluKQorICAgIHJldHVybiBoYW5kbGVfemhhb3hpbiAo bmFtZSk7CisKICAgLy8gWFhYIEZpbGwgaW4gbW9yZSB2ZW5kb3JzLgogCiAgIC8qIENQVSBub3Qg a25vd24sIHdlIGhhdmUgbm8gaW5mb3JtYXRpb24uICAqLwpAQCAtNDgzLDYgKzUzNywyMjQgQEAg aW50IF9feDg2X3ByZWZldGNodyBhdHRyaWJ1dGVfaGlkZGVuOwogCiAKIHN0YXRpYyB2b2lkCitn ZXRfY29tbW9uX2NhY2hlX2luZm8gKGxvbmcgaW50ICpzaGFyZWRfcHRyLCB1bnNpZ25lZCBpbnQg KnRocmVhZHNfcHRyLAorICAgICAgICAgICAgICAgIGxvbmcgaW50IGNvcmUpCit7CisgIHVuc2ln bmVkIGludCBlYXg7CisgIHVuc2lnbmVkIGludCBlYng7CisgIHVuc2lnbmVkIGludCBlY3g7Cisg IHVuc2lnbmVkIGludCBlZHg7CisKKyAgLyogTnVtYmVyIG9mIGxvZ2ljYWwgcHJvY2Vzc29ycyBz aGFyaW5nIEwyIGNhY2hlLiAgKi8KKyAgaW50IHRocmVhZHNfbDI7CisKKyAgLyogTnVtYmVyIG9m IGxvZ2ljYWwgcHJvY2Vzc29ycyBzaGFyaW5nIEwzIGNhY2hlLiAgKi8KKyAgaW50IHRocmVhZHNf bDM7CisKKyAgY29uc3Qgc3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzID0gX19nZXRf Y3B1X2ZlYXR1cmVzICgpOworICBpbnQgbWF4X2NwdWlkID0gY3B1X2ZlYXR1cmVzLT5iYXNpYy5t YXhfY3B1aWQ7CisgIHVuc2lnbmVkIGludCBmYW1pbHkgPSBjcHVfZmVhdHVyZXMtPmJhc2ljLmZh bWlseTsKKyAgdW5zaWduZWQgaW50IG1vZGVsID0gY3B1X2ZlYXR1cmVzLT5iYXNpYy5tb2RlbDsK KyAgbG9uZyBpbnQgc2hhcmVkID0gKnNoYXJlZF9wdHI7CisgIHVuc2lnbmVkIGludCB0aHJlYWRz ID0gKnRocmVhZHNfcHRyOworICBib29sIGluY2x1c2l2ZV9jYWNoZSA9IHRydWU7CisgIGJvb2wg c3VwcG9ydF9jb3VudF9tYXNrID0gdHJ1ZTsgCisKKyAgLyogVHJ5IEwzIGZpcnN0LiAgKi8KKyAg dW5zaWduZWQgaW50IGxldmVsID0gMzsKKworICBpZiAoY3B1X2ZlYXR1cmVzLT5iYXNpYy5raW5k ID09IGFyY2hfa2luZF96aGFveGluICYmIGZhbWlseSA9PSA2KQorICAgIHN1cHBvcnRfY291bnRf bWFzayA9IGZhbHNlOworICAKKyAgaWYgKHNoYXJlZCA8PSAwKQorICAgIHsKKyAgICAgIC8qIFRy eSBMMiBvdGhlcndpc2UuICAqLworICAgICAgbGV2ZWwgID0gMjsKKyAgICAgIHNoYXJlZCA9IGNv cmU7CisgICAgICB0aHJlYWRzX2wyID0gMDsKKyAgICAgIHRocmVhZHNfbDMgPSAtMTsKKyAgICB9 CisgIGVsc2UKKyAgICB7CisgICAgICB0aHJlYWRzX2wyID0gMDsKKyAgICAgIHRocmVhZHNfbDMg PSAwOworICAgIH0KKworICAvKiBBIHZhbHVlIG9mIDAgZm9yIHRoZSBIVFQgYml0IGluZGljYXRl cyB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlCisgICAgIGxvZ2ljYWwgcHJvY2Vzc29yLiAgKi8KKyAg aWYgKEhBU19DUFVfRkVBVFVSRSAoSFRUKSkKKyAgICB7CisgICAgICAvKiBGaWd1cmUgb3V0IHRo ZSBudW1iZXIgb2YgbG9naWNhbCB0aHJlYWRzIHRoYXQgc2hhcmUgdGhlCisgICAgICAgICBoaWdo ZXN0IGNhY2hlIGxldmVsLiAgKi8KKyAgICAgIGlmIChtYXhfY3B1aWQgPj0gNCkKKyAgICAgICAg eworICAgICAgICAgIGludCBpID0gMDsKKworICAgICAgICAgIC8qIFF1ZXJ5IHVudGlsIGNhY2hl IGxldmVsIDIgYW5kIDMgYXJlIGVudW1lcmF0ZWQuICAqLworICAgICAgICAgIGludCBjaGVjayA9 IDB4MSB8ICh0aHJlYWRzX2wzID09IDApIDw8IDE7CisgICAgICAgICAgZG8KKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgX19jcHVpZF9jb3VudCAoNCwgaSsrLCBlYXgsIGVieCwgZWN4LCBl ZHgpOworCisgICAgICAgICAgICAgIC8qIFRoZXJlIHNlZW1zIHRvIGJlIGEgYnVnIGluIGF0IGxl YXN0IHNvbWUgUGVudGl1bSBEcworICAgICAgICAgICAgICAgICB3aGljaCBzb21ldGltZXMgZmFp bCB0byBpdGVyYXRlIGFsbCBjYWNoZSBwYXJhbWV0ZXJzLgorICAgICAgICAgICAgICAgICBEbyBu b3QgbG9vcCBpbmRlZmluaXRlbHkgaGVyZSwgc3RvcCBpbiB0aGlzIGNhc2UgYW5kCisgICAgICAg ICAgICAgICAgIGFzc3VtZSB0aGVyZSBpcyBubyBzdWNoIGluZm9ybWF0aW9uLiAgKi8KKyAgICAg ICAgICAgICAgaWYgKGNwdV9mZWF0dXJlcy0+YmFzaWMua2luZCA9PSBhcmNoX2tpbmRfaW50ZWwK KyAgICAgICAgICAgICAgICAgICYmIChlYXggJiAweDFmKSA9PSAwICkKKyAgICAgICAgICAgICAg ICBnb3RvIGludGVsX2J1Z19ub19jYWNoZV9pbmZvOworCisgICAgICAgICAgICAgIHN3aXRjaCAo KGVheCA+PiA1KSAmIDB4NykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBk ZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgIGNh c2UgMjoKKyAgICAgICAgICAgICAgICAgICAgaWYgKChjaGVjayAmIDB4MSkpCisgICAgICAgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogR2V0IG1heGltdW0gbnVt YmVyIG9mIGxvZ2ljYWwgcHJvY2Vzc29ycworICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hh cmluZyBMMiBjYWNoZS4gICovCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRzX2wyID0g KGVheCA+PiAxNCkgJiAweDNmZjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrICY9IH4w eDE7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKChjaGVj ayAmICgweDEgPDwgMSkpKQorICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgIC8qIEdldCBtYXhpbXVtIG51bWJlciBvZiBsb2dpY2FsIHByb2Nlc3NvcnMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJpbmcgTDMgY2FjaGUuICAqLworICAgICAgICAg ICAgICAgICAgICAgICAgdGhyZWFkc19sMyA9IChlYXggPj4gMTQpICYgMHgzZmY7CisKKyAgICAg ICAgICAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIEwyIGFuZCBMMyBjYWNoZXMgYXJlIGluY2x1 c2l2ZS4gICovCisgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmVfY2FjaGUgPSAoZWR4 ICYgMHgyKSAhPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2sgJj0gfigweDEgPDwg MSk7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgd2hpbGUgKGNoZWNr KTsKKworICAgICAgICAgIC8qIElmIG1heF9jcHVpZCA+PSAxMSwgVEhSRUFEU19MMi9USFJFQURT X0wzIGFyZSB0aGUgbWF4aW11bQorICAgICAgICAgICAgIG51bWJlcnMgb2YgYWRkcmVzc2FibGUg SURzIGZvciBsb2dpY2FsIHByb2Nlc3NvcnMgc2hhcmluZworICAgICAgICAgICAgIHRoZSBjYWNo ZSwgaW5zdGVhZCBvZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGhyZWFkcworICAgICAgICAgICAg IHNoYXJpbmcgdGhlIGNhY2hlLiAgKi8KKyAgICAgICAgICBpZiAobWF4X2NwdWlkID49IDExICYm IHN1cHBvcnRfY291bnRfbWFzaykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgLyogRmlu ZCB0aGUgbnVtYmVyIG9mIGxvZ2ljYWwgcHJvY2Vzc29ycyBzaGlwcGVkIGluCisgICAgICAgICAg ICAgICAgIG9uZSBjb3JlIGFuZCBhcHBseSBjb3VudCBtYXNrLiAgKi8KKyAgICAgICAgICAgICAg aSA9IDA7CisKKyAgICAgICAgICAgICAgLyogQ291bnQgU01UIG9ubHkgaWYgdGhlcmUgaXMgTDMg Y2FjaGUuICBBbHdheXMgY291bnQKKyAgICAgICAgICAgICAgICAgY29yZSBpZiB0aGVyZSBpcyBu byBMMyBjYWNoZS4gICovCisgICAgICAgICAgICAgIGludCBjb3VudCA9ICgodGhyZWFkc19sMiA+ IDAgJiYgbGV2ZWwgPT0gMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCh0aHJlYWRz X2wzID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICh0aHJlYWRzX2wyID4g MCAmJiBsZXZlbCA9PSAyKSkgPDwgMSkpOworCisgICAgICAgICAgICAgIHdoaWxlIChjb3VudCkK KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBfX2NwdWlkX2NvdW50ICgxMSwg aSsrLCBlYXgsIGVieCwgZWN4LCBlZHgpOworCisgICAgICAgICAgICAgICAgICBpbnQgc2hpcHBl ZCA9IGVieCAmIDB4ZmY7CisgICAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IGVjeCAmIDB4ZmYw MDsKKyAgICAgICAgICAgICAgICAgIGlmIChzaGlwcGVkID09IDAgfHwgdHlwZSA9PSAwKQorICAg ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUg PT0gMHgxMDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAv KiBDb3VudCBTTVQuICAqLworICAgICAgICAgICAgICAgICAgICAgIGlmICgoY291bnQgJiAweDEp KQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgY291bnRfbWFzazsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wdXRlIGNv dW50IG1hc2suICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICBhc20gKCJic3IgJTEsICUw IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1yIiAoY291bnRfbWFzaykgOiAi ZyIgKHRocmVhZHNfbDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRfbWFzayA9 IH4oLTEgPDwgKGNvdW50X21hc2sgKyAxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRo cmVhZHNfbDIgPSAoc2hpcHBlZCAtIDEpICYgY291bnRfbWFzazsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgY291bnQgJj0gfjB4MTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSAweDIw MCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIC8qIENvdW50 IGNvcmUuICAqLworICAgICAgICAgICAgICAgICAgICAgIGlmICgoY291bnQgJiAoMHgxIDw8IDEp KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IGNvdW50X21hc2s7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aHJlYWRzX2Nv cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChsZXZlbCA9PSAyID8gdGhyZWFkc19s MiA6IHRocmVhZHNfbDMpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXB1dGUg Y291bnQgbWFzay4gICovCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoImJzciAlMSwg JTAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPXIiIChjb3VudF9tYXNrKSA6 ICJnIiAodGhyZWFkc19jb3JlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50X21h c2sgPSB+KC0xIDw8IChjb3VudF9tYXNrICsgMSkpOworICAgICAgICAgICAgICAgICAgICAgICAg ICB0aHJlYWRzX2NvcmUgPSAoc2hpcHBlZCAtIDEpICYgY291bnRfbWFzazsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKGxldmVsID09IDIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhyZWFkc19sMiA9IHRocmVhZHNfY29yZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZHNfbDMgPSB0aHJlYWRzX2Nv cmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICY9IH4oMHgxIDw8IDEpOworICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIGlmICh0aHJlYWRzX2wyID4gMCkKKyAg ICAgICAgICAgIHRocmVhZHNfbDIgKz0gMTsKKyAgICAgICAgICBpZiAodGhyZWFkc19sMyA+IDAp CisgICAgICAgICAgICB0aHJlYWRzX2wzICs9IDE7CisgICAgICAgICAgaWYgKGxldmVsID09IDIp CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlmICh0aHJlYWRzX2wyKQorICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHRocmVhZHMgPSB0aHJlYWRzX2wyOworICAgICAg ICAgICAgICAgICAgaWYgKGNwdV9mZWF0dXJlcy0+YmFzaWMua2luZCA9PSBhcmNoX2tpbmRfaW50 ZWwKKyAgICAgICAgICAgICAgICAgICAgICAmJiB0aHJlYWRzID4gMiAKKyAgICAgICAgICAgICAg ICAgICAgICAmJiBmYW1pbHkgPT0gNikKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChtb2Rl bCkKKyAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNl IDB4Mzc6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDB4NGE6CisgICAgICAgICAgICAg ICAgICAgICAgICBjYXNlIDB4NGQ6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDB4NWE6 CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDB4NWQ6CisgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFNpbHZlcm1vbnQgaGFzIEwyIGNhY2hlIHNoYXJlZCBieSAyIGNvcmVzLiAgKi8K KyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkcyA9IDI7CisgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlIGlmICh0aHJlYWRz X2wzKQorICAgICAgICAgICAgdGhyZWFkcyA9IHRocmVhZHNfbDM7CisgICAgICAgIH0KKyAgICAg IGVsc2UKKyAgICAgICAgeworaW50ZWxfYnVnX25vX2NhY2hlX2luZm86CisgICAgICAgICAgLyog QXNzdW1lIHRoYXQgYWxsIGxvZ2ljYWwgdGhyZWFkcyBzaGFyZSB0aGUgaGlnaGVzdCBjYWNoZQor ICAgICAgICAgICAgIGxldmVsLiAgKi8KKyAgICAgICAgICB0aHJlYWRzCisgICAgICAgICAgICA9 ICgoY3B1X2ZlYXR1cmVzLT5jcHVpZFtDT01NT05fQ1BVSURfSU5ERVhfMV0uZWJ4CisgICAgICAg ICAgICAgICAgPj4gMTYpICYgMHhmZik7CisgICAgICAgIH0KKworICAgICAgICAvKiBDYXAgdXNh Z2Ugb2YgaGlnaGVzdCBjYWNoZSBsZXZlbCB0byB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZAorICAg ICAgICAgICB0aHJlYWRzLiAgKi8KKyAgICAgICAgaWYgKHNoYXJlZCA+IDAgJiYgdGhyZWFkcyA+ IDApCisgICAgICAgICAgc2hhcmVkIC89IHRocmVhZHM7CisgICAgfQorCisgIC8qIEFjY291bnQg Zm9yIG5vbi1pbmNsdXNpdmUgTDIgYW5kIEwzIGNhY2hlcy4gICovCisgIGlmICghaW5jbHVzaXZl X2NhY2hlKQorICAgIHsKKyAgICAgIGlmICh0aHJlYWRzX2wyID4gMCkKKyAgICAgICAgY29yZSAv PSB0aHJlYWRzX2wyOworICAgICAgc2hhcmVkICs9IGNvcmU7CisgICAgfQorCisgICpzaGFyZWRf cHRyID0gc2hhcmVkOworICAqdGhyZWFkc19wdHIgPSB0aHJlYWRzOworfQorCisKK3N0YXRpYyB2 b2lkCiBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpCiBpbml0X2NhY2hlaW5mbyAodm9pZCkK IHsKQEAgLTQ5NCwyMTEgKzc2NiwyNSBAQCBpbml0X2NhY2hlaW5mbyAodm9pZCkKICAgaW50IG1h eF9jcHVpZF9leDsKICAgbG9uZyBpbnQgZGF0YSA9IC0xOwogICBsb25nIGludCBzaGFyZWQgPSAt MTsKLSAgdW5zaWduZWQgaW50IGxldmVsOworICBsb25nIGludCBjb3JlOwogICB1bnNpZ25lZCBp bnQgdGhyZWFkcyA9IDA7CiAgIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0dXJl cyA9IF9fZ2V0X2NwdV9mZWF0dXJlcyAoKTsKLSAgaW50IG1heF9jcHVpZCA9IGNwdV9mZWF0dXJl cy0+YmFzaWMubWF4X2NwdWlkOwogCiAgIGlmIChjcHVfZmVhdHVyZXMtPmJhc2ljLmtpbmQgPT0g YXJjaF9raW5kX2ludGVsKQogICAgIHsKICAgICAgIGRhdGEgPSBoYW5kbGVfaW50ZWwgKF9TQ19M RVZFTDFfRENBQ0hFX1NJWkUsIGNwdV9mZWF0dXJlcyk7Ci0KLSAgICAgIGxvbmcgaW50IGNvcmUg PSBoYW5kbGVfaW50ZWwgKF9TQ19MRVZFTDJfQ0FDSEVfU0laRSwgY3B1X2ZlYXR1cmVzKTsKLSAg ICAgIGJvb2wgaW5jbHVzaXZlX2NhY2hlID0gdHJ1ZTsKLQotICAgICAgLyogVHJ5IEwzIGZpcnN0 LiAgKi8KLSAgICAgIGxldmVsICA9IDM7CisgICAgICBjb3JlID0gaGFuZGxlX2ludGVsIChfU0Nf TEVWRUwyX0NBQ0hFX1NJWkUsIGNwdV9mZWF0dXJlcyk7CiAgICAgICBzaGFyZWQgPSBoYW5kbGVf aW50ZWwgKF9TQ19MRVZFTDNfQ0FDSEVfU0laRSwgY3B1X2ZlYXR1cmVzKTsKIAotICAgICAgLyog TnVtYmVyIG9mIGxvZ2ljYWwgcHJvY2Vzc29ycyBzaGFyaW5nIEwyIGNhY2hlLiAgKi8KLSAgICAg IGludCB0aHJlYWRzX2wyOwotCi0gICAgICAvKiBOdW1iZXIgb2YgbG9naWNhbCBwcm9jZXNzb3Jz IHNoYXJpbmcgTDMgY2FjaGUuICAqLwotICAgICAgaW50IHRocmVhZHNfbDM7Ci0KLSAgICAgIGlm IChzaGFyZWQgPD0gMCkKLQl7Ci0JICAvKiBUcnkgTDIgb3RoZXJ3aXNlLiAgKi8KLQkgIGxldmVs ICA9IDI7Ci0JICBzaGFyZWQgPSBjb3JlOwotCSAgdGhyZWFkc19sMiA9IDA7Ci0JICB0aHJlYWRz X2wzID0gLTE7Ci0JfQotICAgICAgZWxzZQotCXsKLQkgIHRocmVhZHNfbDIgPSAwOwotCSAgdGhy ZWFkc19sMyA9IDA7Ci0JfQotCi0gICAgICAvKiBBIHZhbHVlIG9mIDAgZm9yIHRoZSBIVFQgYml0 IGluZGljYXRlcyB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlCi0JIGxvZ2ljYWwgcHJvY2Vzc29yLiAg Ki8KLSAgICAgIGlmIChIQVNfQ1BVX0ZFQVRVUkUgKEhUVCkpCi0JewotCSAgLyogRmlndXJlIG91 dCB0aGUgbnVtYmVyIG9mIGxvZ2ljYWwgdGhyZWFkcyB0aGF0IHNoYXJlIHRoZQotCSAgICAgaGln aGVzdCBjYWNoZSBsZXZlbC4gICovCi0JICBpZiAobWF4X2NwdWlkID49IDQpCi0JICAgIHsKLQkg ICAgICB1bnNpZ25lZCBpbnQgZmFtaWx5ID0gY3B1X2ZlYXR1cmVzLT5iYXNpYy5mYW1pbHk7Ci0J ICAgICAgdW5zaWduZWQgaW50IG1vZGVsID0gY3B1X2ZlYXR1cmVzLT5iYXNpYy5tb2RlbDsKLQot CSAgICAgIGludCBpID0gMDsKLQotCSAgICAgIC8qIFF1ZXJ5IHVudGlsIGNhY2hlIGxldmVsIDIg YW5kIDMgYXJlIGVudW1lcmF0ZWQuICAqLwotCSAgICAgIGludCBjaGVjayA9IDB4MSB8ICh0aHJl YWRzX2wzID09IDApIDw8IDE7Ci0JICAgICAgZG8KLQkJewotCQkgIF9fY3B1aWRfY291bnQgKDQs IGkrKywgZWF4LCBlYngsIGVjeCwgZWR4KTsKLQotCQkgIC8qIFRoZXJlIHNlZW1zIHRvIGJlIGEg YnVnIGluIGF0IGxlYXN0IHNvbWUgUGVudGl1bSBEcwotCQkgICAgIHdoaWNoIHNvbWV0aW1lcyBm YWlsIHRvIGl0ZXJhdGUgYWxsIGNhY2hlIHBhcmFtZXRlcnMuCi0JCSAgICAgRG8gbm90IGxvb3Ag aW5kZWZpbml0ZWx5IGhlcmUsIHN0b3AgaW4gdGhpcyBjYXNlIGFuZAotCQkgICAgIGFzc3VtZSB0 aGVyZSBpcyBubyBzdWNoIGluZm9ybWF0aW9uLiAgKi8KLQkJICBpZiAoKGVheCAmIDB4MWYpID09 IDApCi0JCSAgICBnb3RvIGludGVsX2J1Z19ub19jYWNoZV9pbmZvOwotCi0JCSAgc3dpdGNoICgo ZWF4ID4+IDUpICYgMHg3KQotCQkgICAgewotCQkgICAgZGVmYXVsdDoKLQkJICAgICAgYnJlYWs7 Ci0JCSAgICBjYXNlIDI6Ci0JCSAgICAgIGlmICgoY2hlY2sgJiAweDEpKQotCQkJewotCQkJICAv KiBHZXQgbWF4aW11bSBudW1iZXIgb2YgbG9naWNhbCBwcm9jZXNzb3JzCi0JCQkgICAgIHNoYXJp bmcgTDIgY2FjaGUuICAqLwotCQkJICB0aHJlYWRzX2wyID0gKGVheCA+PiAxNCkgJiAweDNmZjsK LQkJCSAgY2hlY2sgJj0gfjB4MTsKLQkJCX0KLQkJICAgICAgYnJlYWs7Ci0JCSAgICBjYXNlIDM6 Ci0JCSAgICAgIGlmICgoY2hlY2sgJiAoMHgxIDw8IDEpKSkKLQkJCXsKLQkJCSAgLyogR2V0IG1h eGltdW0gbnVtYmVyIG9mIGxvZ2ljYWwgcHJvY2Vzc29ycwotCQkJICAgICBzaGFyaW5nIEwzIGNh Y2hlLiAgKi8KLQkJCSAgdGhyZWFkc19sMyA9IChlYXggPj4gMTQpICYgMHgzZmY7Ci0KLQkJCSAg LyogQ2hlY2sgaWYgTDIgYW5kIEwzIGNhY2hlcyBhcmUgaW5jbHVzaXZlLiAgKi8KLQkJCSAgaW5j bHVzaXZlX2NhY2hlID0gKGVkeCAmIDB4MikgIT0gMDsKLQkJCSAgY2hlY2sgJj0gfigweDEgPDwg MSk7Ci0JCQl9Ci0JCSAgICAgIGJyZWFrOwotCQkgICAgfQotCQl9Ci0JICAgICAgd2hpbGUgKGNo ZWNrKTsKLQotCSAgICAgIC8qIElmIG1heF9jcHVpZCA+PSAxMSwgVEhSRUFEU19MMi9USFJFQURT X0wzIGFyZSB0aGUgbWF4aW11bQotCQkgbnVtYmVycyBvZiBhZGRyZXNzYWJsZSBJRHMgZm9yIGxv Z2ljYWwgcHJvY2Vzc29ycyBzaGFyaW5nCi0JCSB0aGUgY2FjaGUsIGluc3RlYWQgb2YgdGhlIG1h eGltdW0gbnVtYmVyIG9mIHRocmVhZHMKLQkJIHNoYXJpbmcgdGhlIGNhY2hlLiAgKi8KLQkgICAg ICBpZiAobWF4X2NwdWlkID49IDExKQotCQl7Ci0JCSAgLyogRmluZCB0aGUgbnVtYmVyIG9mIGxv Z2ljYWwgcHJvY2Vzc29ycyBzaGlwcGVkIGluCi0JCSAgICAgb25lIGNvcmUgYW5kIGFwcGx5IGNv dW50IG1hc2suICAqLwotCQkgIGkgPSAwOwotCi0JCSAgLyogQ291bnQgU01UIG9ubHkgaWYgdGhl cmUgaXMgTDMgY2FjaGUuICBBbHdheXMgY291bnQKLQkJICAgICBjb3JlIGlmIHRoZXJlIGlzIG5v IEwzIGNhY2hlLiAgKi8KLQkJICBpbnQgY291bnQgPSAoKHRocmVhZHNfbDIgPiAwICYmIGxldmVs ID09IDMpCi0JCQkgICAgICAgfCAoKHRocmVhZHNfbDMgPiAwCi0JCQkJICAgfHwgKHRocmVhZHNf bDIgPiAwICYmIGxldmVsID09IDIpKSA8PCAxKSk7Ci0KLQkJICB3aGlsZSAoY291bnQpCi0JCSAg ICB7Ci0JCSAgICAgIF9fY3B1aWRfY291bnQgKDExLCBpKyssIGVheCwgZWJ4LCBlY3gsIGVkeCk7 Ci0KLQkJICAgICAgaW50IHNoaXBwZWQgPSBlYnggJiAweGZmOwotCQkgICAgICBpbnQgdHlwZSA9 IGVjeCAmIDB4ZmYwMDsKLQkJICAgICAgaWYgKHNoaXBwZWQgPT0gMCB8fCB0eXBlID09IDApCi0J CQlicmVhazsKLQkJICAgICAgZWxzZSBpZiAodHlwZSA9PSAweDEwMCkKLQkJCXsKLQkJCSAgLyog Q291bnQgU01ULiAgKi8KLQkJCSAgaWYgKChjb3VudCAmIDB4MSkpCi0JCQkgICAgewotCQkJICAg ICAgaW50IGNvdW50X21hc2s7Ci0KLQkJCSAgICAgIC8qIENvbXB1dGUgY291bnQgbWFzay4gICov Ci0JCQkgICAgICBhc20gKCJic3IgJTEsICUwIgotCQkJCSAgIDogIj1yIiAoY291bnRfbWFzaykg OiAiZyIgKHRocmVhZHNfbDIpKTsKLQkJCSAgICAgIGNvdW50X21hc2sgPSB+KC0xIDw8IChjb3Vu dF9tYXNrICsgMSkpOwotCQkJICAgICAgdGhyZWFkc19sMiA9IChzaGlwcGVkIC0gMSkgJiBjb3Vu dF9tYXNrOwotCQkJICAgICAgY291bnQgJj0gfjB4MTsKLQkJCSAgICB9Ci0JCQl9Ci0JCSAgICAg IGVsc2UgaWYgKHR5cGUgPT0gMHgyMDApCi0JCQl7Ci0JCQkgIC8qIENvdW50IGNvcmUuICAqLwot CQkJICBpZiAoKGNvdW50ICYgKDB4MSA8PCAxKSkpCi0JCQkgICAgewotCQkJICAgICAgaW50IGNv dW50X21hc2s7Ci0JCQkgICAgICBpbnQgdGhyZWFkc19jb3JlCi0JCQkJPSAobGV2ZWwgPT0gMiA/ IHRocmVhZHNfbDIgOiB0aHJlYWRzX2wzKTsKLQotCQkJICAgICAgLyogQ29tcHV0ZSBjb3VudCBt YXNrLiAgKi8KLQkJCSAgICAgIGFzbSAoImJzciAlMSwgJTAiCi0JCQkJICAgOiAiPXIiIChjb3Vu dF9tYXNrKSA6ICJnIiAodGhyZWFkc19jb3JlKSk7Ci0JCQkgICAgICBjb3VudF9tYXNrID0gfigt MSA8PCAoY291bnRfbWFzayArIDEpKTsKLQkJCSAgICAgIHRocmVhZHNfY29yZSA9IChzaGlwcGVk IC0gMSkgJiBjb3VudF9tYXNrOwotCQkJICAgICAgaWYgKGxldmVsID09IDIpCi0JCQkJdGhyZWFk c19sMiA9IHRocmVhZHNfY29yZTsKLQkJCSAgICAgIGVsc2UKLQkJCQl0aHJlYWRzX2wzID0gdGhy ZWFkc19jb3JlOwotCQkJICAgICAgY291bnQgJj0gfigweDEgPDwgMSk7Ci0JCQkgICAgfQotCQkJ fQotCQkgICAgfQotCQl9Ci0JICAgICAgaWYgKHRocmVhZHNfbDIgPiAwKQotCQl0aHJlYWRzX2wy ICs9IDE7Ci0JICAgICAgaWYgKHRocmVhZHNfbDMgPiAwKQotCQl0aHJlYWRzX2wzICs9IDE7Ci0J ICAgICAgaWYgKGxldmVsID09IDIpCi0JCXsKLQkJICBpZiAodGhyZWFkc19sMikKLQkJICAgIHsK LQkJICAgICAgdGhyZWFkcyA9IHRocmVhZHNfbDI7Ci0JCSAgICAgIGlmICh0aHJlYWRzID4gMiAm JiBmYW1pbHkgPT0gNikKLQkJCXN3aXRjaCAobW9kZWwpCi0JCQkgIHsKLQkJCSAgY2FzZSAweDM3 OgotCQkJICBjYXNlIDB4NGE6Ci0JCQkgIGNhc2UgMHg0ZDoKLQkJCSAgY2FzZSAweDVhOgotCQkJ ICBjYXNlIDB4NWQ6Ci0JCQkgICAgLyogU2lsdmVybW9udCBoYXMgTDIgY2FjaGUgc2hhcmVkIGJ5 IDIgY29yZXMuICAqLwotCQkJICAgIHRocmVhZHMgPSAyOwotCQkJICAgIGJyZWFrOwotCQkJICBk ZWZhdWx0OgotCQkJICAgIGJyZWFrOwotCQkJICB9Ci0JCSAgICB9Ci0JCX0KLQkgICAgICBlbHNl IGlmICh0aHJlYWRzX2wzKQotCQl0aHJlYWRzID0gdGhyZWFkc19sMzsKLQkgICAgfQotCSAgZWxz ZQotCSAgICB7Ci1pbnRlbF9idWdfbm9fY2FjaGVfaW5mbzoKLQkgICAgICAvKiBBc3N1bWUgdGhh dCBhbGwgbG9naWNhbCB0aHJlYWRzIHNoYXJlIHRoZSBoaWdoZXN0IGNhY2hlCi0JCSBsZXZlbC4g ICovCi0KLQkgICAgICB0aHJlYWRzCi0JCT0gKChjcHVfZmVhdHVyZXMtPmNwdWlkW0NPTU1PTl9D UFVJRF9JTkRFWF8xXS5lYngKLQkJICAgID4+IDE2KSAmIDB4ZmYpOwotCSAgICB9Ci0KLQkgIC8q IENhcCB1c2FnZSBvZiBoaWdoZXN0IGNhY2hlIGxldmVsIHRvIHRoZSBudW1iZXIgb2Ygc3VwcG9y dGVkCi0JICAgICB0aHJlYWRzLiAgKi8KLQkgIGlmIChzaGFyZWQgPiAwICYmIHRocmVhZHMgPiAw KQotCSAgICBzaGFyZWQgLz0gdGhyZWFkczsKLQl9CisgICAgICBnZXRfY29tbW9uX2NhY2hlX2lu Zm8gKCZzaGFyZWQsICZ0aHJlYWRzLCBjb3JlKTsKKyAgICB9CisgIGVsc2UgaWYgKGNwdV9mZWF0 dXJlcy0+YmFzaWMua2luZCA9PSBhcmNoX2tpbmRfemhhb3hpbikKKyAgICB7CisgICAgICBkYXRh ID0gaGFuZGxlX3poYW94aW4gKF9TQ19MRVZFTDFfRENBQ0hFX1NJWkUpOworICAgICAgY29yZSA9 IGhhbmRsZV96aGFveGluIChfU0NfTEVWRUwyX0NBQ0hFX1NJWkUpOworICAgICAgc2hhcmVkID0g aGFuZGxlX3poYW94aW4gKF9TQ19MRVZFTDNfQ0FDSEVfU0laRSk7CiAKLSAgICAgIC8qIEFjY291 bnQgZm9yIG5vbi1pbmNsdXNpdmUgTDIgYW5kIEwzIGNhY2hlcy4gICovCi0gICAgICBpZiAoIWlu Y2x1c2l2ZV9jYWNoZSkKLQl7Ci0JICBpZiAodGhyZWFkc19sMiA+IDApCi0JICAgIGNvcmUgLz0g dGhyZWFkc19sMjsKLQkgIHNoYXJlZCArPSBjb3JlOwotCX0KKyAgICAgIGdldF9jb21tb25fY2Fj aGVfaW5mbyAoJnNoYXJlZCwgJnRocmVhZHMsIGNvcmUpOwogICAgIH0KICAgZWxzZSBpZiAoY3B1 X2ZlYXR1cmVzLT5iYXNpYy5raW5kID09IGFyY2hfa2luZF9hbWQpCiAgICAgewotLSAKMi43LjQK Cg== --_004_e4c34207db02435fa325ad81c9f81e30zhaoxincom_ Content-Type: application/octet-stream; name="0003-x86-Add-the-test-case-of-__get_cpu_features-support-.patch" Content-Description: 0003-x86-Add-the-test-case-of-__get_cpu_features-support-.patch Content-Disposition: attachment; filename="0003-x86-Add-the-test-case-of-__get_cpu_features-support-.patch"; size=1066; creation-date="Thu, 30 Apr 2020 13:13:09 GMT"; modification-date="Thu, 30 Apr 2020 05:11:58 GMT" Content-Transfer-Encoding: base64 RnJvbSBkZTY4YTE4MzFhNDM0YzY5Yzk2MTRlMTQ0ZWQ2MGRkMDY3N2RmZDFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXlzaGFvLW9jIDxtYXlzaGFvLW9jQHpoYW94aW4uY29tPgpE YXRlOiBTdW4sIDI2IEFwciAyMDIwIDEzOjQ5OjQ0ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MyAz LzNdIHg4NjogQWRkIHRoZSB0ZXN0IGNhc2Ugb2YgX19nZXRfY3B1X2ZlYXR1cmVzIHN1cHBvcnQg Zm9yCiBaaGFveGluIHByb2Nlc3NvcnMKCkZvciB0aGUgdGVzdCBjYXNlIG9mIHRoZSBfX2dldF9j cHVfZmVhdHVyZXMgaW50ZXJmYWNlLCBhZGQgYW4gaXRlbSBpbgpjcHVfa2luZHMgYW5kIGEgc3dp dGNoIGNhc2UgZm9yIFpoYW94aW4gc3VwcG9ydC4KLS0tCiBzeXNkZXBzL3g4Ni90c3QtZ2V0LWNw dS1mZWF0dXJlcy5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL3N5c2RlcHMveDg2L3RzdC1nZXQtY3B1LWZlYXR1cmVzLmMgYi9zeXNkZXBzL3g4 Ni90c3QtZ2V0LWNwdS1mZWF0dXJlcy5jCmluZGV4IDBmNTU5ODcuLjBkY2I5MDYgMTAwNjQ0Ci0t LSBhL3N5c2RlcHMveDg2L3RzdC1nZXQtY3B1LWZlYXR1cmVzLmMKKysrIGIvc3lzZGVwcy94ODYv dHN0LWdldC1jcHUtZmVhdHVyZXMuYwpAQCAtMzgsNiArMzgsNyBAQCBzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IGNwdV9raW5kc1tdID0KICAgIlVua25vd24iLAogICAiSW50ZWwiLAogICAiQU1E IiwKKyAgIlpIQU9YSU4iLAogICAiT3RoZXIiLAogfTsKIApAQCAtNTAsNiArNTEsNyBAQCBkb190 ZXN0ICh2b2lkKQogICAgIHsKICAgICBjYXNlIGFyY2hfa2luZF9pbnRlbDoKICAgICBjYXNlIGFy Y2hfa2luZF9hbWQ6CisgICAgY2FzZSBhcmNoX2tpbmRfemhhb3hpbjoKICAgICBjYXNlIGFyY2hf a2luZF9vdGhlcjoKICAgICAgIHByaW50ZiAoIlZlbmRvcjogJXNcbiIsIGNwdV9raW5kc1tjcHVf ZmVhdHVyZXMtPmJhc2ljLmtpbmRdKTsKICAgICAgIHByaW50ZiAoIkZhbWlseTogMHgleFxuIiwg Y3B1X2ZlYXR1cmVzLT5iYXNpYy5mYW1pbHkpOwotLSAKMi43LjQKCg== --_004_e4c34207db02435fa325ad81c9f81e30zhaoxincom_--