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 X-Spam-Level: X-Spam-Status: No, score=-3.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9700BC7618B for ; Thu, 25 Jul 2019 13:32:00 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 66A192190F for ; Thu, 25 Jul 2019 13:32:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 66A192190F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hqdqO-0007Tl-AK; Thu, 25 Jul 2019 13:31:40 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hqdqN-0007Tg-EA for xen-devel@lists.xenproject.org; Thu, 25 Jul 2019 13:31:39 +0000 X-Inumbo-ID: 866cb1b6-aee0-11e9-8980-bc764e045a96 Received: from m9a0002g.houston.softwaregrp.com (unknown [15.124.64.67]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 866cb1b6-aee0-11e9-8980-bc764e045a96; Thu, 25 Jul 2019 13:31:36 +0000 (UTC) Received: FROM m9a0002g.houston.softwaregrp.com (15.121.0.191) BY m9a0002g.houston.softwaregrp.com WITH ESMTP; Thu, 25 Jul 2019 13:31:36 +0000 Received: from M4W0334.microfocus.com (2002:f78:1192::f78:1192) by M9W0068.microfocus.com (2002:f79:bf::f79:bf) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1591.10; Thu, 25 Jul 2019 13:29:43 +0000 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (15.124.8.13) by M4W0334.microfocus.com (15.120.17.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1591.10 via Frontend Transport; Thu, 25 Jul 2019 13:29:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bY1n1UZKQDyB2wjCz5AqOQWAUKJoBtcLYBNAiQEW9TdbeEAI5zMOKRvD1vk4DZ/n4OpoLAEV/sGly53UYUORlAGfrpc6muRPiVLIFyYzXUSrNStHQ0VgcDz1intuq2kJbXMEzCWWAAh/bIpKuS9yCBJymWPxtDRMAAYeXNShwEQe13ljO0Vmo2h0yXp21Q7LlbWJ/405ZaccRkTNDZFxO67kICosQ3o9NMYelXhpwVrypXyUaaP75nOkWZXnlHIqHfla6sm1ajBp90zKrSRI8ifXJUIG2ObgzHQZ4aq4JtlzsDwaHAKPUNlzqy5Eg2/xCwWyieHInPt1WKCcqf4eTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=APmU9A90r8hmj8/JTjjesmMV1FXPm5kZ+yXxwNas22k=; b=Zxq2QjhGp5f4F6xVvrIDTYwC7E9+LdOwfyrTTevNj3sJgiShrEuTT9lYFY8YlVGVsaTpFzvzBhZmjq65h0O5/W4AHlwItTLSzdV966giUCsjx7Alh6GFZ26gB905NtHmXZJxUKQZiK69oE+TkaEnn54nMPFAh/cdS7PUwdt911tEK8xxXya9Op6GNX5yit8xZdvbU6YirIBgVVuFviqFUe1gvX9OZDwmRoIUG7k4dcnUG0lULJbWTgTMcsrG66VGMN8oGpLWUbT0zUWr1FIY9rXq0lVclvflmevlVSeO7avSvqg64pxkI8tmMSyAlTodvxtDYf+miGVoCrBzBoHEWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=suse.com;dmarc=pass action=none header.from=suse.com;dkim=pass header.d=suse.com;arc=none Received: from BY5PR18MB3394.namprd18.prod.outlook.com (10.255.139.95) by BY5PR18MB3267.namprd18.prod.outlook.com (10.255.138.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2115.14; Thu, 25 Jul 2019 13:29:41 +0000 Received: from BY5PR18MB3394.namprd18.prod.outlook.com ([fe80::a4f0:4f46:c076:f74b]) by BY5PR18MB3394.namprd18.prod.outlook.com ([fe80::a4f0:4f46:c076:f74b%7]) with mapi id 15.20.2115.005; Thu, 25 Jul 2019 13:29:41 +0000 From: Jan Beulich To: "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH v4 02/12] AMD/IOMMU: use bit field for control register Thread-Index: AQHVQu0Db6rWCJz35kqZVnQVqpXEVA== Date: Thu, 25 Jul 2019 13:29:41 +0000 Message-ID: <347eeac8-9847-17fa-b070-b1ad59a74104@suse.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0448.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:e::28) To BY5PR18MB3394.namprd18.prod.outlook.com (2603:10b6:a03:194::31) authentication-results: spf=none (sender IP is ) smtp.mailfrom=JBeulich@suse.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [87.234.252.170] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b9b077c8-13cd-4b24-67d7-08d7110425d6 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:BY5PR18MB3267; x-ms-traffictypediagnostic: BY5PR18MB3267: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2582; x-forefront-prvs: 0109D382B0 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(366004)(39860400002)(376002)(136003)(346002)(396003)(189003)(199004)(6436002)(2906002)(3846002)(6116002)(86362001)(478600001)(36756003)(5640700003)(6916009)(31696002)(31686004)(14454004)(305945005)(66946007)(6486002)(66476007)(66556008)(66446008)(64756008)(30864003)(5660300002)(4326008)(26005)(66066001)(25786009)(68736007)(53936002)(6512007)(53946003)(71200400001)(71190400001)(7736002)(2616005)(476003)(486006)(11346002)(54906003)(80792005)(446003)(99286004)(2351001)(52116002)(2501003)(14444005)(256004)(186003)(102836004)(386003)(6506007)(76176011)(8936002)(81156014)(81166006)(8676002)(316002); DIR:OUT; SFP:1102; SCL:1; SRVR:BY5PR18MB3267; H:BY5PR18MB3394.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: suse.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: eCyaSSLzyUOSOet2eJmFx6F1IHPK3wG9ghx6LuVb/1/nErUQ4pTEhcxwC3lcAzKRCAAO/22Uikfxry3qfdLMq85bC0Ov3/XRZU+mNJYVNbquSMlw61v2DZTJZ1jCi3SWnU/0K6HQkvshIycGT+z0qUjqeAz0pazQsnrFRiDkgIt6sgbHQav8143M/Oy14rNxlHBgsmrNBQuxZh71mNmnQv2seUPxfOqTxQnItaivcDbMZzmTcaIJNDq6phI3pCvegxk3x00qM5mSe74mBbbsNYiqhq0QXBmSXJXR+knZfNmBmObBzxzRrt7gWVoynQY4JYLejRFfaSw3/x1Dg8bzTleTNrSc23Vc1eDu7IvtsCyZFslznovmkKIptp78aAiUSpppNK/4V+wUAAZVoq9nACMzNZvASHyfGrutR8+HEyA= Content-ID: <7D92D74A1E941A4CB8653CE75DA3FB34@namprd18.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: b9b077c8-13cd-4b24-67d7-08d7110425d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2019 13:29:41.1762 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 856b813c-16e5-49a5-85ec-6f081e13b527 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JBeulich@suse.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR18MB3267 X-OriginatorOrg: suse.com Subject: [Xen-devel] [PATCH v4 02/12] AMD/IOMMU: use bit field for control register X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Brian Woods , Suravee Suthikulpanit Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWxzbyBpbnRyb2R1Y2UgYSBmaWVsZCBpbiBzdHJ1Y3QgYW1kX2lvbW11IGNhY2hpbmcgdGhlIG1v c3QgcmVjZW50bHkNCndyaXR0ZW4gY29udHJvbCByZWdpc3Rlci4gQWxsIHdyaXRlcyBzaG91bGQg bm93IGhhcHBlbiBleGNsdXNpdmVseSBmcm9tDQp0aGF0IGNhY2hlZCB2YWx1ZSwgc3VjaCB0aGF0 IGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgdXAgdG8gZGF0ZS4NCg0KVGFrZSB0aGUgb3Bwb3J0dW5p dHkgYW5kIGFkZCBmdXJ0aGVyIGZpZWxkcy4gQWxzbyBjb252ZXJ0IGEgZmV3IGJvb2xlYW4NCmZ1 bmN0aW9uIHBhcmFtZXRlcnMgdG8gYm9vbCwgc3VjaCB0aGF0IHVzZSBvZiAhISBjYW4gYmUgYXZv aWRlZC4NCg0KQmVjYXVzZSBvZiB0aGVyZSBub3cgYmVpbmcgZGVmaW5pdGlvbnMgYmV5b25kIGJp dCAzMSwgd3JpdGVsKCkgYWxzbyBnZXRzDQpyZXBsYWNlZCBieSB3cml0ZXEoKSB3aGVuIHVwZGF0 aW5nIGhhcmR3YXJlLg0KDQpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+DQpBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4NCkFja2VkLWJ5OiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4NCi0tLQ0KdjM6 IFN3aXRjaCBib29sZWFuIGJpdGZpZWxkcyB0byBib29sLg0KdjI6IEFkZCBkb21haW5faWRfcG5l IGZpZWxkLiBNZW50aW9uIHdyaXRlbCgpIC0+IHdyaXRlcSgpIGNoYW5nZS4NCg0KLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMNCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9ndWVzdC5jDQpAQCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRp YyBpbnQgZG9faW52YWxpZGF0ZV9pb3RsYl9wYWdlcyhzdHINCiAgDQogIHN0YXRpYyBpbnQgZG9f Y29tcGxldGlvbl93YWl0KHN0cnVjdCBkb21haW4gKmQsIGNtZF9lbnRyeV90ICpjbWQpDQogIHsN Ci0gICAgYm9vbF90IGNvbV93YWl0X2ludF9lbiwgY29tX3dhaXRfaW50LCBpLCBzOw0KKyAgICBi b29sIGNvbV93YWl0X2ludCwgaSwgczsNCiAgICAgIHN0cnVjdCBndWVzdF9pb21tdSAqaW9tbXU7 DQogICAgICB1bnNpZ25lZCBsb25nIGdmbjsNCiAgICAgIHAybV90eXBlX3QgcDJtdDsNCkBAIC0z NTQsMTIgKzM1NCwxMCBAQCBzdGF0aWMgaW50IGRvX2NvbXBsZXRpb25fd2FpdChzdHJ1Y3QgZG9t DQogICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UodmFkZHIpOw0KICAgICAgfQ0KICANCi0gICAg Y29tX3dhaXRfaW50X2VuID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+cmVnX2N0cmwubG8sDQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfQ09OVFJPTF9DT01QX1dBSVRf SU5UX1NISUZUKTsNCiAgICAgIGNvbV93YWl0X2ludCA9IGlvbW11X2dldF9iaXQoaW9tbXUtPnJl Z19zdGF0dXMubG8sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1NU QVRVU19DT01QX1dBSVRfSU5UX1NISUZUKTsNCiAgDQotICAgIGlmICggY29tX3dhaXRfaW50X2Vu ICYmIGNvbV93YWl0X2ludCApDQorICAgIGlmICggaW9tbXUtPnJlZ19jdHJsLmNvbV93YWl0X2lu dF9lbiAmJiBjb21fd2FpdF9pbnQgKQ0KICAgICAgICAgIGd1ZXN0X2lvbW11X2RlbGl2ZXJfbXNp KGQpOw0KICANCiAgICAgIHJldHVybiAwOw0KQEAgLTUyMSw0MCArNTE5LDE3IEBAIHN0YXRpYyB2 b2lkIGd1ZXN0X2lvbW11X3Byb2Nlc3NfY29tbWFuZCgNCiAgICAgIHJldHVybjsNCiAgfQ0KICAN Ci1zdGF0aWMgaW50IGd1ZXN0X2lvbW11X3dyaXRlX2N0cmwoc3RydWN0IGd1ZXN0X2lvbW11ICpp b21tdSwgdWludDY0X3QgbmV3Y3RybCkNCitzdGF0aWMgaW50IGd1ZXN0X2lvbW11X3dyaXRlX2N0 cmwoc3RydWN0IGd1ZXN0X2lvbW11ICppb21tdSwgdWludDY0X3QgdmFsKQ0KICB7DQotICAgIGJv b2xfdCBjbWRfZW4sIGV2ZW50X2VuLCBpb21tdV9lbiwgcHByX2VuLCBwcHJfbG9nX2VuOw0KLSAg ICBib29sX3QgY21kX2VuX29sZCwgZXZlbnRfZW5fb2xkLCBpb21tdV9lbl9vbGQ7DQotICAgIGJv b2xfdCBjbWRfcnVuOw0KLQ0KLSAgICBpb21tdV9lbiA9IGlvbW11X2dldF9iaXQobmV3Y3RybCwN Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0NPTlRST0xfVFJBTlNMQVRJT05f RU5BQkxFX1NISUZUKTsNCi0gICAgaW9tbXVfZW5fb2xkID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+ cmVnX2N0cmwubG8sDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfQ09O VFJPTF9UUkFOU0xBVElPTl9FTkFCTEVfU0hJRlQpOw0KLQ0KLSAgICBjbWRfZW4gPSBpb21tdV9n ZXRfYml0KG5ld2N0cmwsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfQ09OVFJP TF9DT01NQU5EX0JVRkZFUl9FTkFCTEVfU0hJRlQpOw0KLSAgICBjbWRfZW5fb2xkID0gaW9tbXVf Z2V0X2JpdChpb21tdS0+cmVnX2N0cmwubG8sDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElPTU1VX0NPTlRST0xfQ09NTUFORF9CVUZGRVJfRU5BQkxFX1NISUZUKTsNCi0gICAgY21k X3J1biA9IGlvbW11X2dldF9iaXQoaW9tbXUtPnJlZ19zdGF0dXMubG8sDQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VX1NUQVRVU19DTURfQlVGRkVSX1JVTl9TSElGVCk7DQotICAg IGV2ZW50X2VuID0gaW9tbXVfZ2V0X2JpdChuZXdjdHJsLA0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfRU5BQkxFX1NISUZUKTsNCi0gICAgZXZl bnRfZW5fb2xkID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+cmVnX2N0cmwubG8sDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfRU5BQkxFX1NI SUZUKTsNCi0NCi0gICAgcHByX2VuID0gaW9tbXVfZ2V0X2JpdChuZXdjdHJsLA0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VX0NPTlRST0xfUFBSX0VOQUJMRV9TSElGVCk7DQotICAg IHBwcl9sb2dfZW4gPSBpb21tdV9nZXRfYml0KG5ld2N0cmwsDQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VX0NPTlRST0xfUFBSX0xPR19FTkFCTEVfU0hJRlQpOw0KKyAgICB1 bmlvbiBhbWRfaW9tbXVfY29udHJvbCBuZXdjdHJsID0geyAucmF3ID0gdmFsIH07DQogIA0KLSAg ICBpZiAoIGlvbW11X2VuICkNCisgICAgaWYgKCBuZXdjdHJsLmlvbW11X2VuICkNCiAgICAgIHsN CiAgICAgICAgICBndWVzdF9pb21tdV9lbmFibGUoaW9tbXUpOw0KICAgICAgICAgIGd1ZXN0X2lv bW11X2VuYWJsZV9kZXZfdGFibGUoaW9tbXUpOw0KICAgICAgfQ0KICANCi0gICAgaWYgKCBpb21t dV9lbiAmJiBjbWRfZW4gKQ0KKyAgICBpZiAoIG5ld2N0cmwuaW9tbXVfZW4gJiYgbmV3Y3RybC5j bWRfYnVmX2VuICkNCiAgICAgIHsNCiAgICAgICAgICBndWVzdF9pb21tdV9lbmFibGVfcmluZ19i dWZmZXIoaW9tbXUsICZpb21tdS0+Y21kX2J1ZmZlciwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNtZF9lbnRyeV90KSk7DQpAQCAtNTYyLDcgKzUzNyw3 IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfaW9tbXVfd3JpdGVfY3RybChzdHJ1Y3QNCiAgICAgICAgICB0 YXNrbGV0X3NjaGVkdWxlKCZpb21tdS0+Y21kX2J1ZmZlcl90YXNrbGV0KTsNCiAgICAgIH0NCiAg DQotICAgIGlmICggaW9tbXVfZW4gJiYgZXZlbnRfZW4gKQ0KKyAgICBpZiAoIG5ld2N0cmwuaW9t bXVfZW4gJiYgbmV3Y3RybC5ldmVudF9sb2dfZW4gKQ0KICAgICAgew0KICAgICAgICAgIGd1ZXN0 X2lvbW11X2VuYWJsZV9yaW5nX2J1ZmZlcihpb21tdSwgJmlvbW11LT5ldmVudF9sb2csDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihldmVudF9lbnRyeV90 KSk7DQpAQCAtNTcwLDcgKzU0NSw3IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfaW9tbXVfd3JpdGVfY3Ry bChzdHJ1Y3QNCiAgICAgICAgICBndWVzdF9pb21tdV9jbGVhcl9zdGF0dXMoaW9tbXUsIElPTU1V X1NUQVRVU19FVkVOVF9PVkVSRkxPV19TSElGVCk7DQogICAgICB9DQogIA0KLSAgICBpZiAoIGlv bW11X2VuICYmIHBwcl9lbiAmJiBwcHJfbG9nX2VuICkNCisgICAgaWYgKCBuZXdjdHJsLmlvbW11 X2VuICYmIG5ld2N0cmwucHByX2VuICYmIG5ld2N0cmwucHByX2xvZ19lbiApDQogICAgICB7DQog ICAgICAgICAgZ3Vlc3RfaW9tbXVfZW5hYmxlX3JpbmdfYnVmZmVyKGlvbW11LCAmaW9tbXUtPnBw cl9sb2csDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihw cHJfZW50cnlfdCkpOw0KQEAgLTU3OCwxOSArNTUzLDIxIEBAIHN0YXRpYyBpbnQgZ3Vlc3RfaW9t bXVfd3JpdGVfY3RybChzdHJ1Y3QNCiAgICAgICAgICBndWVzdF9pb21tdV9jbGVhcl9zdGF0dXMo aW9tbXUsIElPTU1VX1NUQVRVU19QUFJfTE9HX09WRVJGTE9XX1NISUZUKTsNCiAgICAgIH0NCiAg DQotICAgIGlmICggaW9tbXVfZW4gJiYgY21kX2VuX29sZCAmJiAhY21kX2VuICkNCisgICAgaWYg KCBuZXdjdHJsLmlvbW11X2VuICYmIGlvbW11LT5yZWdfY3RybC5jbWRfYnVmX2VuICYmDQorICAg ICAgICAgIW5ld2N0cmwuY21kX2J1Zl9lbiApDQogICAgICB7DQogICAgICAgICAgLyogRGlzYWJs ZSBpb21tdSBjb21tYW5kIHByb2Nlc3NpbmcgKi8NCiAgICAgICAgICB0YXNrbGV0X2tpbGwoJmlv bW11LT5jbWRfYnVmZmVyX3Rhc2tsZXQpOw0KICAgICAgfQ0KICANCi0gICAgaWYgKCBldmVudF9l bl9vbGQgJiYgIWV2ZW50X2VuICkNCisgICAgaWYgKCBpb21tdS0+cmVnX2N0cmwuZXZlbnRfbG9n X2VuICYmICFuZXdjdHJsLmV2ZW50X2xvZ19lbiApDQogICAgICAgICAgZ3Vlc3RfaW9tbXVfY2xl YXJfc3RhdHVzKGlvbW11LCBJT01NVV9TVEFUVVNfRVZFTlRfTE9HX1JVTl9TSElGVCk7DQogIA0K LSAgICBpZiAoIGlvbW11X2VuX29sZCAmJiAhaW9tbXVfZW4gKQ0KKyAgICBpZiAoIGlvbW11LT5y ZWdfY3RybC5pb21tdV9lbiAmJiAhbmV3Y3RybC5pb21tdV9lbiApDQogICAgICAgICAgZ3Vlc3Rf aW9tbXVfZGlzYWJsZShpb21tdSk7DQogIA0KLSAgICB1NjRfdG9fcmVnKCZpb21tdS0+cmVnX2N0 cmwsIG5ld2N0cmwpOw0KKyAgICBpb21tdS0+cmVnX2N0cmwgPSBuZXdjdHJsOw0KKw0KICAgICAg cmV0dXJuIDA7DQogIH0NCiAgDQpAQCAtNjMyLDcgKzYwOSw3IEBAIHN0YXRpYyB1aW50NjRfdCBp b21tdV9tbWlvX3JlYWQ2NChzdHJ1Y3QNCiAgICAgICAgICB2YWwgPSByZWdfdG9fdTY0KGlvbW11 LT5wcHJfbG9nLnJlZ190YWlsKTsNCiAgICAgICAgICBicmVhazsNCiAgICAgIGNhc2UgSU9NTVVf Q09OVFJPTF9NTUlPX09GRlNFVDoNCi0gICAgICAgIHZhbCA9IHJlZ190b191NjQoaW9tbXUtPnJl Z19jdHJsKTsNCisgICAgICAgIHZhbCA9IGlvbW11LT5yZWdfY3RybC5yYXc7DQogICAgICAgICAg YnJlYWs7DQogICAgICBjYXNlIElPTU1VX1NUQVRVU19NTUlPX09GRlNFVDoNCiAgICAgICAgICB2 YWwgPSByZWdfdG9fdTY0KGlvbW11LT5yZWdfc3RhdHVzKTsNCi0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMNCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9pbml0LmMNCkBAIC00MSw3ICs0MSw3IEBAIExJU1RfSEVBRF9SRUFEX01PU1RM WShhbWRfaW9tbXVfaGVhZCk7DQogIHN0cnVjdCB0YWJsZV9zdHJ1Y3QgZGV2aWNlX3RhYmxlOw0K ICBib29sX3QgaW9tbXV2Ml9lbmFibGVkOw0KICANCi1zdGF0aWMgaW50IGlvbW11X2hhc19odF9m bGFnKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1OCBtYXNrKQ0KK3N0YXRpYyBib29sIGlvbW11 X2hhc19odF9mbGFnKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1OCBtYXNrKQ0KICB7DQogICAg ICByZXR1cm4gaW9tbXUtPmh0X2ZsYWdzICYgbWFzazsNCiAgfQ0KQEAgLTY5LDMxICs2OSwxOCBA QCBzdGF0aWMgdm9pZCBfX2luaXQgdW5tYXBfaW9tbXVfbW1pb19yZWdpDQogIA0KICBzdGF0aWMg dm9pZCBzZXRfaW9tbXVfaHRfZmxhZ3Moc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpDQogIHsNCi0g ICAgdTMyIGVudHJ5Ow0KLSAgICBlbnRyeSA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBJT01N VV9DT05UUk9MX01NSU9fT0ZGU0VUKTsNCi0NCiAgICAgIC8qIFNldHVwIEhUIGZsYWdzICovDQog ICAgICBpZiAoIGlvbW11X2hhc19jYXAoaW9tbXUsIFBDSV9DQVBfSFRfVFVOTkVMX1NISUZUKSAp DQotICAgICAgICBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9JVkhEX1RUX0VOQUJMRSkg Pw0KLSAgICAgICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0hUX1RV Tk5FTF9UUkFOU0xBVElPTl9TSElGVCkgOg0KLSAgICAgICAgICAgIGlvbW11X2NsZWFyX2JpdCgm ZW50cnksIElPTU1VX0NPTlRST0xfSFRfVFVOTkVMX1RSQU5TTEFUSU9OX1NISUZUKTsNCi0NCi0g ICAgaW9tbXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9SRVNfUEFTU19QVykgPw0KLSAg ICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfUkVTUF9QQVNTX1BPU1RF RF9XUklURV9TSElGVCk6DQotICAgICAgICBpb21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9D T05UUk9MX1JFU1BfUEFTU19QT1NURURfV1JJVEVfU0hJRlQpOw0KLQ0KLSAgICBpb21tdV9oYXNf aHRfZmxhZyhpb21tdSwgQUNQSV9JVkhEX0lTT0MpID8NCi0gICAgICAgIGlvbW11X3NldF9iaXQo JmVudHJ5LCBJT01NVV9DT05UUk9MX0lTT0NIUk9OT1VTX1NISUZUKToNCi0gICAgICAgIGlvbW11 X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfSVNPQ0hST05PVVNfU0hJRlQpOw0KLQ0K LSAgICBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9JVkhEX1BBU1NfUFcpID8NCi0gICAg ICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX1BBU1NfUE9TVEVEX1dSSVRF X1NISUZUKToNCi0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xf UEFTU19QT1NURURfV1JJVEVfU0hJRlQpOw0KKyAgICAgICAgaW9tbXUtPmN0cmwuaHRfdHVuX2Vu ID0gaW9tbXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9UVF9FTkFCTEUpOw0KKw0KKyAg ICBpb21tdS0+Y3RybC5wYXNzX3B3ICAgICA9IGlvbW11X2hhc19odF9mbGFnKGlvbW11LCBBQ1BJ X0lWSERfUEFTU19QVyk7DQorICAgIGlvbW11LT5jdHJsLnJlc19wYXNzX3B3ID0gaW9tbXVfaGFz X2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9SRVNfUEFTU19QVyk7DQorICAgIGlvbW11LT5jdHJs Lmlzb2MgICAgICAgID0gaW9tbXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9JU09DKTsN CiAgDQogICAgICAvKiBGb3JjZSBjb2hlcmVudCAqLw0KLSAgICBpb21tdV9zZXRfYml0KCZlbnRy eSwgSU9NTVVfQ09OVFJPTF9DT0hFUkVOVF9TSElGVCk7DQorICAgIGlvbW11LT5jdHJsLmNvaGVy ZW50ID0gdHJ1ZTsNCiAgDQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZStJT01N VV9DT05UUk9MX01NSU9fT0ZGU0VUKTsNCisgICAgd3JpdGVxKGlvbW11LT5jdHJsLnJhdywgaW9t bXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOw0KICB9DQogIA0KICBz dGF0aWMgdm9pZCByZWdpc3Rlcl9pb21tdV9kZXZfdGFibGVfaW5fbW1pb19zcGFjZShzdHJ1Y3Qg YW1kX2lvbW11ICppb21tdSkNCkBAIC0yMDUsNTUgKzE5MiwzNyBAQCBzdGF0aWMgdm9pZCByZWdp c3Rlcl9pb21tdV9wcHJfbG9nX2luX21tDQogIA0KICANCiAgc3RhdGljIHZvaWQgc2V0X2lvbW11 X3RyYW5zbGF0aW9uX2NvbnRyb2woc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmFibGUpDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBlbmFibGUpDQogIHsN Ci0gICAgdTMyIGVudHJ5Ow0KKyAgICBpb21tdS0+Y3RybC5pb21tdV9lbiA9IGVuYWJsZTsNCiAg DQotICAgIGVudHJ5ID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1J T19PRkZTRVQpOw0KLQ0KLSAgICBlbmFibGUgPw0KLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50 cnksIElPTU1VX0NPTlRST0xfVFJBTlNMQVRJT05fRU5BQkxFX1NISUZUKSA6DQotICAgICAgICBp b21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX1RSQU5TTEFUSU9OX0VOQUJMRV9T SElGVCk7DQotDQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZStJT01NVV9DT05U Uk9MX01NSU9fT0ZGU0VUKTsNCisgICAgd3JpdGVxKGlvbW11LT5jdHJsLnJhdywgaW9tbXUtPm1t aW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOw0KICB9DQogIA0KICBzdGF0aWMg dm9pZCBzZXRfaW9tbXVfZ3Vlc3RfdHJhbnNsYXRpb25fY29udHJvbChzdHJ1Y3QgYW1kX2lvbW11 ICppb21tdSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgZW5hYmxlKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgZW5hYmxlKQ0KICB7DQotICAgIHUzMiBlbnRyeTsNCi0NCi0gICAgZW50cnkg PSByZWFkbChpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7DQor ICAgIGlvbW11LT5jdHJsLmd0X2VuID0gZW5hYmxlOw0KICANCi0gICAgZW5hYmxlID8NCi0gICAg ICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0dUX0VOQUJMRV9TSElGVCkg Og0KLSAgICAgICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9HVF9FTkFC TEVfU0hJRlQpOw0KLQ0KLSAgICB3cml0ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UrSU9NTVVf Q09OVFJPTF9NTUlPX09GRlNFVCk7DQorICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlvbW11 LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsNCiAgDQogICAgICBpZiAo IGVuYWJsZSApDQogICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJHdWVzdCBUcmFuc2xhdGlvbiBF bmFibGVkLlxuIik7DQogIH0NCiAgDQogIHN0YXRpYyB2b2lkIHNldF9pb21tdV9jb21tYW5kX2J1 ZmZlcl9jb250cm9sKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LA0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5hYmxlKQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5hYmxlKQ0KICB7DQot ICAgIHUzMiBlbnRyeTsNCi0NCi0gICAgZW50cnkgPSByZWFkbChpb21tdS0+bW1pb19iYXNlICsg SU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7DQotDQotICAgIC8qcmVzZXQgaGVhZCBhbmQgdGFp bCBwb2ludGVyIG1hbnVhbGx5IGJlZm9yZSBlbmFibGVtZW50ICovDQorICAgIC8qIFJlc2V0IGhl YWQgYW5kIHRhaWwgcG9pbnRlciBtYW51YWxseSBiZWZvcmUgZW5hYmxlbWVudCAqLw0KICAgICAg aWYgKCBlbmFibGUgKQ0KICAgICAgew0KICAgICAgICAgIHdyaXRlcSgwLCBpb21tdS0+bW1pb19i YXNlICsgSU9NTVVfQ01EX0JVRkZFUl9IRUFEX09GRlNFVCk7DQogICAgICAgICAgd3JpdGVxKDAs IGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DTURfQlVGRkVSX1RBSUxfT0ZGU0VUKTsNCi0NCi0g ICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0NPTU1BTkRfQlVGRkVS X0VOQUJMRV9TSElGVCk7DQogICAgICB9DQotICAgIGVsc2UNCi0gICAgICAgIGlvbW11X2NsZWFy X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfQ09NTUFORF9CVUZGRVJfRU5BQkxFX1NISUZUKTsN CiAgDQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZStJT01NVV9DT05UUk9MX01N SU9fT0ZGU0VUKTsNCisgICAgaW9tbXUtPmN0cmwuY21kX2J1Zl9lbiA9IGVuYWJsZTsNCisNCisg ICAgd3JpdGVxKGlvbW11LT5jdHJsLnJhdywgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRS T0xfTU1JT19PRkZTRVQpOw0KICB9DQogIA0KICBzdGF0aWMgdm9pZCByZWdpc3Rlcl9pb21tdV9l eGNsdXNpb25fcmFuZ2Uoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpDQpAQCAtMjk1LDU3ICsyNjQs MzggQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJfaW9tbXVfZXhjbHVzaW9uX3Jhbg0KICB9DQogIA0K ICBzdGF0aWMgdm9pZCBzZXRfaW9tbXVfZXZlbnRfbG9nX2NvbnRyb2woc3RydWN0IGFtZF9pb21t dSAqaW9tbXUsDQotICAgICAgICAgICAgaW50IGVuYWJsZSkNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCBlbmFibGUpDQogIHsNCi0gICAgdTMyIGVudHJ5Ow0K LQ0KLSAgICBlbnRyeSA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01N SU9fT0ZGU0VUKTsNCi0NCi0gICAgLypyZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFs bHkgYmVmb3JlIGVuYWJsZW1lbnQgKi8NCisgICAgLyogUmVzZXQgaGVhZCBhbmQgdGFpbCBwb2lu dGVyIG1hbnVhbGx5IGJlZm9yZSBlbmFibGVtZW50ICovDQogICAgICBpZiAoIGVuYWJsZSApDQog ICAgICB7DQogICAgICAgICAgd3JpdGVxKDAsIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9FVkVO VF9MT0dfSEVBRF9PRkZTRVQpOw0KICAgICAgICAgIHdyaXRlcSgwLCBpb21tdS0+bW1pb19iYXNl ICsgSU9NTVVfRVZFTlRfTE9HX1RBSUxfT0ZGU0VUKTsNCi0NCi0gICAgICAgIGlvbW11X3NldF9i aXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0VWRU5UX0xPR19JTlRfU0hJRlQpOw0KLSAgICAgICAg aW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElG VCk7DQotICAgIH0NCi0gICAgZWxzZQ0KLSAgICB7DQotICAgICAgICBpb21tdV9jbGVhcl9iaXQo JmVudHJ5LCBJT01NVV9DT05UUk9MX0VWRU5UX0xPR19JTlRfU0hJRlQpOw0KLSAgICAgICAgaW9t bXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfRU5BQkxFX1NISUZU KTsNCiAgICAgIH0NCiAgDQotICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRS T0xfQ09NUF9XQUlUX0lOVF9TSElGVCk7DQorICAgIGlvbW11LT5jdHJsLmV2ZW50X2ludF9lbiA9 IGVuYWJsZTsNCisgICAgaW9tbXUtPmN0cmwuZXZlbnRfbG9nX2VuID0gZW5hYmxlOw0KKyAgICBp b21tdS0+Y3RybC5jb21fd2FpdF9pbnRfZW4gPSBmYWxzZTsNCiAgDQotICAgIHdyaXRlbChlbnRy eSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOw0KKyAgICB3 cml0ZXEoaW9tbXUtPmN0cmwucmF3LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9N TUlPX09GRlNFVCk7DQogIH0NCiAgDQogIHN0YXRpYyB2b2lkIHNldF9pb21tdV9wcHJfbG9nX2Nv bnRyb2woc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsDQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgZW5hYmxlKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBlbmFibGUpDQogIHsNCi0gICAgdTMyIGVudHJ5Ow0KLQ0KLSAgICBlbnRy eSA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsN Ci0NCi0gICAgLypyZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFsbHkgYmVmb3JlIGVu YWJsZW1lbnQgKi8NCisgICAgLyogUmVzZXQgaGVhZCBhbmQgdGFpbCBwb2ludGVyIG1hbnVhbGx5 IGJlZm9yZSBlbmFibGVtZW50ICovDQogICAgICBpZiAoIGVuYWJsZSApDQogICAgICB7DQogICAg ICAgICAgd3JpdGVxKDAsIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9QUFJfTE9HX0hFQURfT0ZG U0VUKTsNCiAgICAgICAgICB3cml0ZXEoMCwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX1BQUl9M T0dfVEFJTF9PRkZTRVQpOw0KLQ0KLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1V X0NPTlRST0xfUFBSX0VOQUJMRV9TSElGVCk7DQotICAgICAgICBpb21tdV9zZXRfYml0KCZlbnRy eSwgSU9NTVVfQ09OVFJPTF9QUFJfTE9HX0lOVF9TSElGVCk7DQotICAgICAgICBpb21tdV9zZXRf Yml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9QUFJfTE9HX0VOQUJMRV9TSElGVCk7DQotICAgIH0N Ci0gICAgZWxzZQ0KLSAgICB7DQotICAgICAgICBpb21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01N VV9DT05UUk9MX1BQUl9FTkFCTEVfU0hJRlQpOw0KLSAgICAgICAgaW9tbXVfY2xlYXJfYml0KCZl bnRyeSwgSU9NTVVfQ09OVFJPTF9QUFJfTE9HX0lOVF9TSElGVCk7DQotICAgICAgICBpb21tdV9j bGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX1BQUl9MT0dfRU5BQkxFX1NISUZUKTsNCiAg ICAgIH0NCiAgDQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NP TlRST0xfTU1JT19PRkZTRVQpOw0KKyAgICBpb21tdS0+Y3RybC5wcHJfZW4gPSBlbmFibGU7DQor ICAgIGlvbW11LT5jdHJsLnBwcl9pbnRfZW4gPSBlbmFibGU7DQorICAgIGlvbW11LT5jdHJsLnBw cl9sb2dfZW4gPSBlbmFibGU7DQorDQorICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlvbW11 LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsNCisNCiAgICAgIGlmICgg ZW5hYmxlICkNCiAgICAgICAgICBBTURfSU9NTVVfREVCVUcoIlBQUiBMb2cgRW5hYmxlZC5cbiIp Ow0KICB9DQpAQCAtMzk4LDcgKzM0OCw3IEBAIHN0YXRpYyBpbnQgaW9tbXVfcmVhZF9sb2coc3Ry dWN0IGFtZF9pb20NCiAgLyogcmVzZXQgZXZlbnQgbG9nIG9yIHBwciBsb2cgd2hlbiBvdmVyZmxv dyAqLw0KICBzdGF0aWMgdm9pZCBpb21tdV9yZXNldF9sb2coc3RydWN0IGFtZF9pb21tdSAqaW9t bXUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmluZ19idWZmZXIgKmxv ZywNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmN0cmxfZnVuYykoc3RydWN0 IGFtZF9pb21tdSAqaW9tbXUsIGludCkpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv aWQgKCpjdHJsX2Z1bmMpKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBib29sKSkNCiAgew0KICAg ICAgdTMyIGVudHJ5Ow0KICAgICAgaW50IGxvZ19ydW4sIHJ1bl9iaXQ7DQpAQCAtNjE1LDExICs1 NjUsMTEgQEAgc3RhdGljIHZvaWQgaW9tbXVfY2hlY2tfZXZlbnRfbG9nKHN0cnVjdA0KICAgICAg ICAgIGlvbW11X3Jlc2V0X2xvZyhpb21tdSwgJmlvbW11LT5ldmVudF9sb2csIHNldF9pb21tdV9l dmVudF9sb2dfY29udHJvbCk7DQogICAgICBlbHNlDQogICAgICB7DQotICAgICAgICBlbnRyeSA9 IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsNCi0g ICAgICAgIGlmICggIShlbnRyeSAmIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0lOVF9NQVNLKSAp DQorICAgICAgICBpZiAoICFpb21tdS0+Y3RybC5ldmVudF9pbnRfZW4gKQ0KICAgICAgICAgIHsN Ci0gICAgICAgICAgICBlbnRyeSB8PSBJT01NVV9DT05UUk9MX0VWRU5UX0xPR19JTlRfTUFTSzsN Ci0gICAgICAgICAgICB3cml0ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05U Uk9MX01NSU9fT0ZGU0VUKTsNCisgICAgICAgICAgICBpb21tdS0+Y3RybC5ldmVudF9pbnRfZW4g PSB0cnVlOw0KKyAgICAgICAgICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsDQorICAgICAgICAg ICAgICAgICAgIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsN CiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgICogUmUtc2NoZWR1bGUgdGhlIHRhc2ts ZXQgdG8gaGFuZGxlIGV2ZW50dWFsIGxvZyBlbnRyaWVzIGFkZGVkDQogICAgICAgICAgICAgICAq IGJldHdlZW4gcmVhZGluZyB0aGUgbG9nIGFib3ZlIGFuZCByZS1lbmFibGluZyB0aGUgaW50ZXJy dXB0Lg0KQEAgLTcwNCwxMSArNjU0LDExIEBAIHN0YXRpYyB2b2lkIGlvbW11X2NoZWNrX3Bwcl9s b2coc3RydWN0IGENCiAgICAgICAgICBpb21tdV9yZXNldF9sb2coaW9tbXUsICZpb21tdS0+cHBy X2xvZywgc2V0X2lvbW11X3Bwcl9sb2dfY29udHJvbCk7DQogICAgICBlbHNlDQogICAgICB7DQot ICAgICAgICBlbnRyeSA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01N SU9fT0ZGU0VUKTsNCi0gICAgICAgIGlmICggIShlbnRyeSAmIElPTU1VX0NPTlRST0xfUFBSX0xP R19JTlRfTUFTSykgKQ0KKyAgICAgICAgaWYgKCAhaW9tbXUtPmN0cmwucHByX2ludF9lbiApDQog ICAgICAgICAgew0KLSAgICAgICAgICAgIGVudHJ5IHw9IElPTU1VX0NPTlRST0xfUFBSX0xPR19J TlRfTUFTSzsNCi0gICAgICAgICAgICB3cml0ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UgKyBJ T01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsNCisgICAgICAgICAgICBpb21tdS0+Y3RybC5wcHJf aW50X2VuID0gdHJ1ZTsNCisgICAgICAgICAgICB3cml0ZXEoaW9tbXUtPmN0cmwucmF3LA0KKyAg ICAgICAgICAgICAgICAgICBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09G RlNFVCk7DQogICAgICAgICAgICAgIC8qDQogICAgICAgICAgICAgICAqIFJlLXNjaGVkdWxlIHRo ZSB0YXNrbGV0IHRvIGhhbmRsZSBldmVudHVhbCBsb2cgZW50cmllcyBhZGRlZA0KICAgICAgICAg ICAgICAgKiBiZXR3ZWVuIHJlYWRpbmcgdGhlIGxvZyBhYm92ZSBhbmQgcmUtZW5hYmxpbmcgdGhl IGludGVycnVwdC4NCkBAIC03NTQsNyArNzA0LDYgQEAgc3RhdGljIHZvaWQgZG9fYW1kX2lvbW11 X2lycSh1bnNpZ25lZCBsbw0KICBzdGF0aWMgdm9pZCBpb21tdV9pbnRlcnJ1cHRfaGFuZGxlcihp bnQgaXJxLCB2b2lkICpkZXZfaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KICB7DQotICAgIHUzMiBlbnRyeTsNCiAg ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSA9 IGRldl9pZDsNCiAgDQpAQCAtNzY0LDEwICs3MTMsOSBAQCBzdGF0aWMgdm9pZCBpb21tdV9pbnRl cnJ1cHRfaGFuZGxlcihpbnQNCiAgICAgICAqIFNpbGVuY2UgaW50ZXJydXB0cyBmcm9tIGJvdGgg ZXZlbnQgYW5kIFBQUiBieSBjbGVhcmluZyB0aGUNCiAgICAgICAqIGVuYWJsZSBsb2dnaW5nIGJp dHMgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXINCiAgICAgICAqLw0KLSAgICBlbnRyeSA9IHJlYWRs KGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsNCi0gICAgaW9t bXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfSU5UX1NISUZUKTsN Ci0gICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9QUFJfTE9HX0lOVF9T SElGVCk7DQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRS T0xfTU1JT19PRkZTRVQpOw0KKyAgICBpb21tdS0+Y3RybC5ldmVudF9pbnRfZW4gPSBmYWxzZTsN CisgICAgaW9tbXUtPmN0cmwucHByX2ludF9lbiA9IGZhbHNlOw0KKyAgICB3cml0ZXEoaW9tbXUt PmN0cmwucmF3LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7 DQogIA0KICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsN CiAgDQotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2FtZC1pb21tdS5oDQorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2FtZC1pb21tdS5oDQpAQCAtODgsNiArODgsOCBAQCBzdHJ1Y3QgYW1kX2lv bW11IHsNCiAgICAgIHZvaWQgKm1taW9fYmFzZTsNCiAgICAgIHVuc2lnbmVkIGxvbmcgbW1pb19i YXNlX3BoeXM7DQogIA0KKyAgICB1bmlvbiBhbWRfaW9tbXVfY29udHJvbCBjdHJsOw0KKw0KICAg ICAgc3RydWN0IHRhYmxlX3N0cnVjdCBkZXZfdGFibGU7DQogICAgICBzdHJ1Y3QgcmluZ19idWZm ZXIgY21kX2J1ZmZlcjsNCiAgICAgIHN0cnVjdCByaW5nX2J1ZmZlciBldmVudF9sb2c7DQpAQCAt MTczLDcgKzE3NSw3IEBAIHN0cnVjdCBndWVzdF9pb21tdSB7DQogICAgICB1aW50NjRfdCAgICAg ICAgICAgICAgICBtbWlvX2Jhc2U7ICAgICAgICAgICAgIC8qIE1NSU8gYmFzZSBhZGRyZXNzICov DQogIA0KICAgICAgLyogTU1JTyByZWdzICovDQotICAgIHN0cnVjdCBtbWlvX3JlZyAgICAgICAg IHJlZ19jdHJsOyAgICAgICAgICAgICAgLyogTU1JTyBvZmZzZXQgMDAxOGggKi8NCisgICAgdW5p b24gYW1kX2lvbW11X2NvbnRyb2wgcmVnX2N0cmw7ICAgICAgICAgICAgICAvKiBNTUlPIG9mZnNl dCAwMDE4aCAqLw0KICAgICAgc3RydWN0IG1taW9fcmVnICAgICAgICAgcmVnX3N0YXR1czsgICAg ICAgICAgICAvKiBNTUlPIG9mZnNldCAyMDIwaCAqLw0KICAgICAgdW5pb24gYW1kX2lvbW11X2V4 dF9mZWF0dXJlcyByZWdfZXh0X2ZlYXR1cmU7ICAvKiBNTUlPIG9mZnNldCAwMDMwaCAqLw0KICAN Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtZGVmcy5oDQorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LWRlZnMuaA0KQEAgLTI5NSwz OCArMjk1LDU2IEBAIHN0cnVjdCBhbWRfaW9tbXVfZHRlIHsNCiAgDQogIC8qIENvbnRyb2wgUmVn aXN0ZXIgKi8NCiAgI2RlZmluZSBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUCQkJMHgxOA0KLSNk ZWZpbmUgSU9NTVVfQ09OVFJPTF9UUkFOU0xBVElPTl9FTkFCTEVfTUFTSwkJMHgwMDAwMDAwMQ0K LSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9UUkFOU0xBVElPTl9FTkFCTEVfU0hJRlQJCTANCi0jZGVm aW5lIElPTU1VX0NPTlRST0xfSFRfVFVOTkVMX1RSQU5TTEFUSU9OX01BU0sJMHgwMDAwMDAwMg0K LSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9IVF9UVU5ORUxfVFJBTlNMQVRJT05fU0hJRlQJMQ0KLSNk ZWZpbmUgSU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfRU5BQkxFX01BU0sJCTB4MDAwMDAwMDQNCi0j ZGVmaW5lIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElGVAkJMg0KLSNkZWZpbmUg SU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfSU5UX01BU0sJCTB4MDAwMDAwMDgNCi0jZGVmaW5lIElP TU1VX0NPTlRST0xfRVZFTlRfTE9HX0lOVF9TSElGVAkJMw0KLSNkZWZpbmUgSU9NTVVfQ09OVFJP TF9DT01QX1dBSVRfSU5UX01BU0sJCTB4MDAwMDAwMTANCi0jZGVmaW5lIElPTU1VX0NPTlRST0xf Q09NUF9XQUlUX0lOVF9TSElGVAkJNA0KLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9JTlZBTElEQVRJ T05fVElNRU9VVF9NQVNLCQkweDAwMDAwMEUwDQotI2RlZmluZSBJT01NVV9DT05UUk9MX0lOVkFM SURBVElPTl9USU1FT1VUX1NISUZUCTUNCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfUEFTU19QT1NU RURfV1JJVEVfTUFTSwkJMHgwMDAwMDEwMA0KLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9QQVNTX1BP U1RFRF9XUklURV9TSElGVAkJOA0KLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9SRVNQX1BBU1NfUE9T VEVEX1dSSVRFX01BU0sJMHgwMDAwMDIwMA0KLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9SRVNQX1BB U1NfUE9TVEVEX1dSSVRFX1NISUZUCTkNCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfQ09IRVJFTlRf TUFTSwkJCTB4MDAwMDA0MDANCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfQ09IRVJFTlRfU0hJRlQJ CQkxMA0KLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9JU09DSFJPTk9VU19NQVNLCQkJMHgwMDAwMDgw MA0KLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9JU09DSFJPTk9VU19TSElGVAkJCTExDQotI2RlZmlu ZSBJT01NVV9DT05UUk9MX0NPTU1BTkRfQlVGRkVSX0VOQUJMRV9NQVNLCTB4MDAwMDEwMDANCi0j ZGVmaW5lIElPTU1VX0NPTlRST0xfQ09NTUFORF9CVUZGRVJfRU5BQkxFX1NISUZUCTEyDQotI2Rl ZmluZSBJT01NVV9DT05UUk9MX1BQUl9MT0dfRU5BQkxFX01BU0sJCTB4MDAwMDIwMDANCi0jZGVm aW5lIElPTU1VX0NPTlRST0xfUFBSX0xPR19FTkFCTEVfU0hJRlQJCTEzDQotI2RlZmluZSBJT01N VV9DT05UUk9MX1BQUl9MT0dfSU5UX01BU0sJCQkweDAwMDA0MDAwDQotI2RlZmluZSBJT01NVV9D T05UUk9MX1BQUl9MT0dfSU5UX1NISUZUCQkJMTQNCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfUFBS X0VOQUJMRV9NQVNLCQkJMHgwMDAwODAwMA0KLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9QUFJfRU5B QkxFX1NISUZUCQkJMTUNCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfR1RfRU5BQkxFX01BU0sJCQkw eDAwMDEwMDAwDQotI2RlZmluZSBJT01NVV9DT05UUk9MX0dUX0VOQUJMRV9TSElGVAkJCTE2DQot I2RlZmluZSBJT01NVV9DT05UUk9MX1JFU1RBUlRfTUFTSwkJCTB4ODAwMDAwMDANCi0jZGVmaW5l IElPTU1VX0NPTlRST0xfUkVTVEFSVF9TSElGVAkJCTMxDQorDQordW5pb24gYW1kX2lvbW11X2Nv bnRyb2wgew0KKyAgICB1aW50NjRfdCByYXc7DQorICAgIHN0cnVjdCB7DQorICAgICAgICBib29s IGlvbW11X2VuOjE7DQorICAgICAgICBib29sIGh0X3R1bl9lbjoxOw0KKyAgICAgICAgYm9vbCBl dmVudF9sb2dfZW46MTsNCisgICAgICAgIGJvb2wgZXZlbnRfaW50X2VuOjE7DQorICAgICAgICBi b29sIGNvbV93YWl0X2ludF9lbjoxOw0KKyAgICAgICAgdW5zaWduZWQgaW50IGludl90aW1lb3V0 OjM7DQorICAgICAgICBib29sIHBhc3NfcHc6MTsNCisgICAgICAgIGJvb2wgcmVzX3Bhc3NfcHc6 MTsNCisgICAgICAgIGJvb2wgY29oZXJlbnQ6MTsNCisgICAgICAgIGJvb2wgaXNvYzoxOw0KKyAg ICAgICAgYm9vbCBjbWRfYnVmX2VuOjE7DQorICAgICAgICBib29sIHBwcl9sb2dfZW46MTsNCisg ICAgICAgIGJvb2wgcHByX2ludF9lbjoxOw0KKyAgICAgICAgYm9vbCBwcHJfZW46MTsNCisgICAg ICAgIGJvb2wgZ3RfZW46MTsNCisgICAgICAgIGJvb2wgZ2FfZW46MTsNCisgICAgICAgIHVuc2ln bmVkIGludCBjcnc6NDsNCisgICAgICAgIGJvb2wgc21pZl9lbjoxOw0KKyAgICAgICAgYm9vbCBz bGZfd2JfZGlzOjE7DQorICAgICAgICBib29sIHNtaWZfbG9nX2VuOjE7DQorICAgICAgICB1bnNp Z25lZCBpbnQgZ2FtX2VuOjM7DQorICAgICAgICBib29sIGdhX2xvZ19lbjoxOw0KKyAgICAgICAg Ym9vbCBnYV9pbnRfZW46MTsNCisgICAgICAgIHVuc2lnbmVkIGludCBkdWFsX3Bwcl9sb2dfZW46 MjsNCisgICAgICAgIHVuc2lnbmVkIGludCBkdWFsX2V2ZW50X2xvZ19lbjoyOw0KKyAgICAgICAg dW5zaWduZWQgaW50IGRldl90Ymxfc2VnX2VuOjM7DQorICAgICAgICB1bnNpZ25lZCBpbnQgcHJp dl9hYnJ0X2VuOjI7DQorICAgICAgICBib29sIHBwcl9hdXRvX3JzcF9lbjoxOw0KKyAgICAgICAg Ym9vbCBtYXJjX2VuOjE7DQorICAgICAgICBib29sIGJsa19zdG9wX21ya19lbjoxOw0KKyAgICAg ICAgYm9vbCBwcHJfYXV0b19yc3BfYW9uOjE7DQorICAgICAgICBib29sIGRvbWFpbl9pZF9wbmU6 MTsNCisgICAgICAgIHVuc2lnbmVkIGludCA6MTsNCisgICAgICAgIGJvb2wgZXBoX2VuOjE7DQor ICAgICAgICB1bnNpZ25lZCBpbnQgaGFkX3VwZGF0ZToyOw0KKyAgICAgICAgYm9vbCBnZF91cGRh dGVfZGlzOjE7DQorICAgICAgICB1bnNpZ25lZCBpbnQgOjE7DQorICAgICAgICBib29sIHh0X2Vu OjE7DQorICAgICAgICBib29sIGludF9jYXBfeHRfZW46MTsNCisgICAgICAgIGJvb2wgdmNtZF9l bjoxOw0KKyAgICAgICAgYm9vbCB2aW9tbXVfZW46MTsNCisgICAgICAgIGJvb2wgZ2FfdXBkYXRl X2RpczoxOw0KKyAgICAgICAgYm9vbCBnYXBwaV9lbjoxOw0KKyAgICAgICAgdW5zaWduZWQgaW50 IDo4Ow0KKyAgICB9Ow0KK307DQogIA0KICAvKiBFeGNsdXNpb24gUmVnaXN0ZXIgKi8NCiAgI2Rl ZmluZSBJT01NVV9FWENMVVNJT05fQkFTRV9MT1dfT0ZGU0VUCQkweDIwDQoNCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=