From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8102CA0530; Wed, 12 Feb 2020 11:31:45 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BBDDA2C18; Wed, 12 Feb 2020 11:31:44 +0100 (CET) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2050.outbound.protection.outlook.com [40.107.93.50]) by dpdk.org (Postfix) with ESMTP id 65E3A2629; Wed, 12 Feb 2020 11:31:43 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UCEunGcKt0QneL0GHj1xIaSf3xCkaoT13fJpJZJVjsuYunvi/uj6kDKprnjyB+oiTMmGjKldfgd+DVonnXaX2Eih1k+aq9EwY2y9e1jSD39FyCxU21GIBvVpm0OEDHMTLsPnKXpxbW9Sj+0LTukfM7e0HRePHutevOwkW0U6A5nt+i23Vjti3eo9XkfsKlzyiYx7wQ1JEojkxFQd9O75py56EXaKvtu32KAEIOGEUkVbXvaPDr0p0sFKVixO24y/ynqoCgAd3SUo2KZVXAMImL6KpjhOt8igd1R7v4j8CCs8V+vrX2RFWDXmTqTRbqzAnkvxzx32EJ0nt8cG+6PU3A== 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=GYdnUhc2EZrznO2rhQtKPhugp3z/ZvJaE4ajyWQp4dU=; b=D4oSTGuqwRMGfDp1hl86yxS9FQ9BxA5LEY/RYtIgEpi93je7L7J2SnJSimqt6i7IGXA5lHoqcFrLJeii1+wKOdk6l1Yby3kNWdayMsEsut8dFs6ojvzqqT/TjfIWsoEUFnTSJiacqJRUADZmnZjdARhx+3eRduw0Z1WJ3QuQJf+lYrTq4hzn0JHUA89pNmww8AfFfqPexzaTq5Q8ZTWmGdIN7JValdCyztjk37oq3Wgl5YC6F1GbaofL0A9RY37ulnL0EsHZ+q6eE2LXqpk6RYF/ablBrsBA3HOaLO7SeMCANcb6gvypUx4B9HdcB+Ouz7C0+4MDFMPsdshdRIIX+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GYdnUhc2EZrznO2rhQtKPhugp3z/ZvJaE4ajyWQp4dU=; b=DF0mj7pr7Qdi4xnlprBhyV3c6cQi+EhRy978Nhi6vlhUunNmPSdiDhbmkPIXWhGOzHE3JGlLcUCq4b+4AfQiEmVsNDVuowN8rCrDW50XKwMk4VqlKBx5cNPW9hTGzMhycoit/SD8fEjOMLK9AYZ2XsiWJLxvAK7dOA64R7AN1uU= Received: from MW2PR12MB2570.namprd12.prod.outlook.com (52.132.181.13) by MW2PR12MB2537.namprd12.prod.outlook.com (52.132.179.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.22; Wed, 12 Feb 2020 10:31:40 +0000 Received: from MW2PR12MB2570.namprd12.prod.outlook.com ([fe80::ec36:5d88:cc24:c660]) by MW2PR12MB2570.namprd12.prod.outlook.com ([fe80::ec36:5d88:cc24:c660%3]) with mapi id 15.20.2707.030; Wed, 12 Feb 2020 10:31:40 +0000 From: "Kumar, Ravi1" To: "Somalapuram, Amaranath" , "dev@dpdk.org" CC: "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2] crypto/ccp: enable IOMMU for CCP Thread-Index: AQHV1bbHNsJejJkLEkqn0CM0eQwblqgXdALg Date: Wed, 12 Feb 2020 10:31:40 +0000 Message-ID: References: <20200128083819.32834-1-asomalap@amd.com> In-Reply-To: <20200128083819.32834-1-asomalap@amd.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Enabled=true; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SetDate=2020-02-12T10:33:31Z; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Method=Standard; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Name=Internal Use Only - Unrestricted; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ActionId=f335ee93-dd05-4831-a0ee-000040c61256; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ContentBits=1 msip_label_76546daa-41b6-470c-bb85-f6f40f044d7f_enabled: true msip_label_76546daa-41b6-470c-bb85-f6f40f044d7f_setdate: 2020-02-12T10:33:31Z msip_label_76546daa-41b6-470c-bb85-f6f40f044d7f_method: Standard msip_label_76546daa-41b6-470c-bb85-f6f40f044d7f_name: Internal Use Only - Unrestricted msip_label_76546daa-41b6-470c-bb85-f6f40f044d7f_siteid: 3dd8961f-e488-4e60-8e11-a82d994e183d msip_label_76546daa-41b6-470c-bb85-f6f40f044d7f_actionid: 3ade6a9e-bb45-491c-9dc6-0000a0d4d7c6 msip_label_76546daa-41b6-470c-bb85-f6f40f044d7f_contentbits: 0 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ravi1.Kumar@amd.com; x-originating-ip: [165.204.157.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: f666a1d4-9a22-492d-8b5f-08d7afa6bf72 x-ms-traffictypediagnostic: MW2PR12MB2537:|MW2PR12MB2537: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:353; x-forefront-prvs: 0311124FA9 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(39860400002)(346002)(136003)(366004)(396003)(199004)(189003)(71200400001)(186003)(8676002)(81166006)(81156014)(316002)(33656002)(110136005)(478600001)(6506007)(76116006)(86362001)(2906002)(5660300002)(30864003)(26005)(55016002)(9686003)(450100002)(52536014)(64756008)(4326008)(7696005)(8936002)(66556008)(66946007)(66476007)(66446008)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2537; H:MW2PR12MB2570.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MVP2W3uBo6HvipT14P87cEuRucxILZ2eZw8s3MyqnikCpEfzdH6JP7O/ry8v0SJ/M/vjzYTSyPGVr5F5D0vIDQUJk0ZoQODRSgB6e+8dY1FbZVHlFUio6CwlSNPZczi1T5DptYzDzCnswpleRSSty5bnucKmWG5Eas5xo99LDpJqyG3q5I2audw8+ext/4VIVZjPyGX0I53ybRHE0LYITJYCUK/zbvDsiPqjrGgt1152mbjwwJgMWRsyEduIGPHpFQz1zGccNGQhOEnB19cbrt16GlkU6GuYYzCKZ2Z7QjtoDkEoBBSIUFiPW5wk1jjTBk3OMO4ce7gGzktoESqBKb5y3u9rjygs7Mhs9HOsQUEG0Lppn2+P9XvIIQ1/dX81+HAceGVkz5MOokyUYrCoxaPlVvgf6p41JN/IUmyzoFhVoEEsGUGSA5WFTEGRk8gF x-ms-exchange-antispam-messagedata: fb03UlYkbcjxX6Kv69T7uRheTNm7XlencmMLW4KJGHxmb7Vh7ftwUmQPN2eCys+WUJlRQvrq9u4VJoc9MZD2sqcGjOCbFxElbQon7r2wUOlK4uIe2JuyP/TR70/FG/zqau/2Rnab5Kn8JonGg0PP1A== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: f666a1d4-9a22-492d-8b5f-08d7afa6bf72 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2020 10:31:40.5432 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: rFEgIYJcg/BXYGhN6eS/q3g8vjYE/bjv3KNN4p6KfRID9fT5rQNBPRGw4dJQmwe4Z+LVg8Y2IfMyV19trvmfxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2537 Subject: Re: [dpdk-dev] [PATCH v2] crypto/ccp: enable IOMMU for CCP X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERpc3RyaWJ1dGlvbiBPbmx5XQ0KDQpB Y2tlZC1ieTogUmF2aSBLdW1hciA8cmF2aTEua3VtYXJAYW1kLmNvbT4NCg0KPg0KPi0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogZGV2IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4gT24g QmVoYWxmIE9mIGFzb21hbGFwQGFtZC5jb20NCj5TZW50OiBUdWVzZGF5LCBKYW51YXJ5IDI4LCAy MDIwIDI6MDggUE0NCj5UbzogZGV2QGRwZGsub3JnDQo+Q2M6IHN0YWJsZUBkcGRrLm9yZw0KPlN1 YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIHYyXSBjcnlwdG8vY2NwOiBlbmFibGUgSU9NTVUgZm9y IENDUA0KPg0KPltDQVVUSU9OOiBFeHRlcm5hbCBFbWFpbF0NCj4NCj5Gcm9tOiBBbWFyYW5hdGgg U29tYWxhcHVyYW0gPGFzb21hbGFwQGFtZC5jb20+DQo+DQo+Q0NQIHVzZSB2ZGV2IGZyYW1ld29y aywgYW5kIHZkZXYgZnJhbWV3b3JrIGRvbuKAmXQgc3VwcG9ydCBJT01NVS4NCj5BZGRpbmcgY3Vz dG9tIElPTU1VIHN1cHBvcnQgZm9yIEFNRCBDQ1AgZHJpdmVzLg0KPkNjOiBzdGFibGVAZHBkay5v cmcNCj4NCj5TaWduZWQtb2ZmLWJ5OiBBbWFyYW5hdGggU29tYWxhcHVyYW0gPGFzb21hbGFwQGFt ZC5jb20+DQo+LS0tDQo+IGRyaXZlcnMvY3J5cHRvL2NjcC9jY3BfY3J5cHRvLmMgIHwgMTI3ICsr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0NCj4gZHJpdmVycy9jcnlwdG8vY2NwL2NjcF9k ZXYuYyAgICAgfCAgNTQgKysrLS0tLS0tLS0tLQ0KPiBkcml2ZXJzL2NyeXB0by9jY3AvY2NwX3Bj aS5jICAgICB8ICAgMSArDQo+IGRyaXZlcnMvY3J5cHRvL2NjcC9ydGVfY2NwX3BtZC5jIHwgICAz ICsNCj4gNCBmaWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0p DQo+DQo+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfY3J5cHRvLmMgYi9kcml2 ZXJzL2NyeXB0by9jY3AvY2NwX2NyeXB0by5jIGluZGV4IDQyNTY3MzRkMS4uMTkxOGFlODhkIDEw MDY0NA0KPi0tLSBhL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfY3J5cHRvLmMNCj4rKysgYi9kcml2 ZXJzL2NyeXB0by9jY3AvY2NwX2NyeXB0by5jDQo+QEAgLTMxLDggKzMxLDEwIEBADQo+ICNpbmNs dWRlIDxvcGVuc3NsL2Vyci5oPg0KPiAjaW5jbHVkZSA8b3BlbnNzbC9obWFjLmg+DQo+DQo+K2V4 dGVybiBpbnQgaW9tbXVfbW9kZTsNCj4rdm9pZCAqc2hhX2N0eDsNCj4gLyogU0hBIGluaXRpYWwg Y29udGV4dCB2YWx1ZXMgKi8NCj4tc3RhdGljIHVpbnQzMl90IGNjcF9zaGExX2luaXRbU0hBX0NP TU1PTl9ESUdFU1RfU0laRSAvIHNpemVvZih1aW50MzJfdCldID0gew0KPit1aW50MzJfdCBjY3Bf c2hhMV9pbml0W1NIQV9DT01NT05fRElHRVNUX1NJWkUgLyBzaXplb2YodWludDMyX3QpXSA9IHsN Cj4gICAgICAgIFNIQTFfSDQsIFNIQTFfSDMsDQo+ICAgICAgICBTSEExX0gyLCBTSEExX0gxLA0K PiAgICAgICAgU0hBMV9IMCwgMHgwVSwNCj5AQCAtNzQ0LDggKzc0NiwxMyBAQCBjY3BfY29uZmln dXJlX3Nlc3Npb25fY2lwaGVyKHN0cnVjdCBjY3Bfc2Vzc2lvbiAqc2VzcywNCj4gICAgICAgICAg ICAgICAgQ0NQX0xPR19FUlIoIkludmFsaWQgQ0NQIEVuZ2luZSIpOw0KPiAgICAgICAgICAgICAg ICByZXR1cm4gLUVOT1RTVVA7DQo+ICAgICAgICB9DQo+LSAgICAgICBzZXNzLT5jaXBoZXIubm9u Y2VfcGh5cyA9IHJ0ZV9tZW1fdmlydDJwaHkoc2Vzcy0+Y2lwaGVyLm5vbmNlKTsNCj4tICAgICAg IHNlc3MtPmNpcGhlci5rZXlfcGh5cyA9IHJ0ZV9tZW1fdmlydDJwaHkoc2Vzcy0+Y2lwaGVyLmtl eV9jY3ApOw0KPisgICAgICAgaWYgKGlvbW11X21vZGUgPT0gMikgew0KPisgICAgICAgICAgICAg ICBzZXNzLT5jaXBoZXIubm9uY2VfcGh5cyA9IHJ0ZV9tZW1fdmlydDJpb3ZhKHNlc3MtPmNpcGhl ci5ub25jZSk7DQo+KyAgICAgICAgICAgICAgIHNlc3MtPmNpcGhlci5rZXlfcGh5cyA9IHJ0ZV9t ZW1fdmlydDJpb3ZhKHNlc3MtPmNpcGhlci5rZXlfY2NwKTsNCj4rICAgICAgIH0gZWxzZSB7DQo+ KyAgICAgICAgICAgICAgIHNlc3MtPmNpcGhlci5ub25jZV9waHlzID0gcnRlX21lbV92aXJ0MnBo eShzZXNzLT5jaXBoZXIubm9uY2UpOw0KPisgICAgICAgICAgICAgICBzZXNzLT5jaXBoZXIua2V5 X3BoeXMgPSBydGVfbWVtX3ZpcnQycGh5KHNlc3MtPmNpcGhlci5rZXlfY2NwKTsNCj4rICAgICAg IH0NCj4gICAgICAgIHJldHVybiAwOw0KPiB9DQo+DQo+QEAgLTc4NCw2ICs3OTEsNyBAQCBjY3Bf Y29uZmlndXJlX3Nlc3Npb25fYXV0aChzdHJ1Y3QgY2NwX3Nlc3Npb24gKnNlc3MsDQo+ICAgICAg ICAgICAgICAgIHNlc3MtPmF1dGguY3R4ID0gKHZvaWQgKiljY3Bfc2hhMV9pbml0Ow0KPiAgICAg ICAgICAgICAgICBzZXNzLT5hdXRoLmN0eF9sZW4gPSBDQ1BfU0JfQllURVM7DQo+ICAgICAgICAg ICAgICAgIHNlc3MtPmF1dGgub2Zmc2V0ID0gQ0NQX1NCX0JZVEVTIC0gU0hBMV9ESUdFU1RfU0la RTsNCj4rICAgICAgICAgICAgICAgcnRlX21lbWNweShzaGFfY3R4LCBzZXNzLT5hdXRoLmN0eCwg DQo+KyBTSEFfQ09NTU9OX0RJR0VTVF9TSVpFKTsNCj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+ ICAgICAgICBjYXNlIFJURV9DUllQVE9fQVVUSF9TSEExX0hNQUM6DQo+ICAgICAgICAgICAgICAg IGlmIChzZXNzLT5hdXRoX29wdCkgew0KPkBAIC04MjIsNiArODMwLDcgQEAgY2NwX2NvbmZpZ3Vy ZV9zZXNzaW9uX2F1dGgoc3RydWN0IGNjcF9zZXNzaW9uICpzZXNzLA0KPiAgICAgICAgICAgICAg ICBzZXNzLT5hdXRoLmN0eCA9ICh2b2lkICopY2NwX3NoYTIyNF9pbml0Ow0KPiAgICAgICAgICAg ICAgICBzZXNzLT5hdXRoLmN0eF9sZW4gPSBDQ1BfU0JfQllURVM7DQo+ICAgICAgICAgICAgICAg IHNlc3MtPmF1dGgub2Zmc2V0ID0gQ0NQX1NCX0JZVEVTIC0gU0hBMjI0X0RJR0VTVF9TSVpFOw0K PisgICAgICAgICAgICAgICBydGVfbWVtY3B5KHNoYV9jdHgsIHNlc3MtPmF1dGguY3R4LCBTSEEy NTZfRElHRVNUX1NJWkUpOw0KPiAgICAgICAgICAgICAgICBicmVhazsNCj4gICAgICAgIGNhc2Ug UlRFX0NSWVBUT19BVVRIX1NIQTIyNF9ITUFDOg0KPiAgICAgICAgICAgICAgICBpZiAoc2Vzcy0+ YXV0aF9vcHQpIHsNCj5AQCAtODg0LDYgKzg5Myw3IEBAIGNjcF9jb25maWd1cmVfc2Vzc2lvbl9h dXRoKHN0cnVjdCBjY3Bfc2Vzc2lvbiAqc2VzcywNCj4gICAgICAgICAgICAgICAgc2Vzcy0+YXV0 aC5jdHggPSAodm9pZCAqKWNjcF9zaGEyNTZfaW5pdDsNCj4gICAgICAgICAgICAgICAgc2Vzcy0+ YXV0aC5jdHhfbGVuID0gQ0NQX1NCX0JZVEVTOw0KPiAgICAgICAgICAgICAgICBzZXNzLT5hdXRo Lm9mZnNldCA9IENDUF9TQl9CWVRFUyAtIFNIQTI1Nl9ESUdFU1RfU0laRTsNCj4rICAgICAgICAg ICAgICAgcnRlX21lbWNweShzaGFfY3R4LCBzZXNzLT5hdXRoLmN0eCwgU0hBMjU2X0RJR0VTVF9T SVpFKTsNCj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgICBjYXNlIFJURV9DUllQVE9f QVVUSF9TSEEyNTZfSE1BQzoNCj4gICAgICAgICAgICAgICAgaWYgKHNlc3MtPmF1dGhfb3B0KSB7 DQo+QEAgLTk0Niw2ICs5NTYsNyBAQCBjY3BfY29uZmlndXJlX3Nlc3Npb25fYXV0aChzdHJ1Y3Qg Y2NwX3Nlc3Npb24gKnNlc3MsDQo+ICAgICAgICAgICAgICAgIHNlc3MtPmF1dGguY3R4ID0gKHZv aWQgKiljY3Bfc2hhMzg0X2luaXQ7DQo+ICAgICAgICAgICAgICAgIHNlc3MtPmF1dGguY3R4X2xl biA9IENDUF9TQl9CWVRFUyA8PCAxOw0KPiAgICAgICAgICAgICAgICBzZXNzLT5hdXRoLm9mZnNl dCA9IChDQ1BfU0JfQllURVMgPDwgMSkgLSBTSEEzODRfRElHRVNUX1NJWkU7DQo+KyAgICAgICAg ICAgICAgIHJ0ZV9tZW1jcHkoc2hhX2N0eCwgc2Vzcy0+YXV0aC5jdHgsIFNIQTUxMl9ESUdFU1Rf U0laRSk7DQo+ICAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgY2FzZSBSVEVfQ1JZUFRP X0FVVEhfU0hBMzg0X0hNQUM6DQo+ICAgICAgICAgICAgICAgIGlmIChzZXNzLT5hdXRoX29wdCkg ew0KPkBAIC0xMDEwLDYgKzEwMjEsNyBAQCBjY3BfY29uZmlndXJlX3Nlc3Npb25fYXV0aChzdHJ1 Y3QgY2NwX3Nlc3Npb24gKnNlc3MsDQo+ICAgICAgICAgICAgICAgIHNlc3MtPmF1dGguY3R4ID0g KHZvaWQgKiljY3Bfc2hhNTEyX2luaXQ7DQo+ICAgICAgICAgICAgICAgIHNlc3MtPmF1dGguY3R4 X2xlbiA9IENDUF9TQl9CWVRFUyA8PCAxOw0KPiAgICAgICAgICAgICAgICBzZXNzLT5hdXRoLm9m ZnNldCA9IChDQ1BfU0JfQllURVMgPDwgMSkgLSBTSEE1MTJfRElHRVNUX1NJWkU7DQo+KyAgICAg ICAgICAgICAgIHJ0ZV9tZW1jcHkoc2hhX2N0eCwgc2Vzcy0+YXV0aC5jdHgsIFNIQTUxMl9ESUdF U1RfU0laRSk7DQo+ICAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgY2FzZSBSVEVfQ1JZ UFRPX0FVVEhfU0hBNTEyX0hNQUM6DQo+ICAgICAgICAgICAgICAgIGlmIChzZXNzLT5hdXRoX29w dCkgew0KPkBAIC0xMTU5LDggKzExNzEsMTMgQEAgY2NwX2NvbmZpZ3VyZV9zZXNzaW9uX2FlYWQo c3RydWN0IGNjcF9zZXNzaW9uICpzZXNzLA0KPiAgICAgICAgICAgICAgICBDQ1BfTE9HX0VSUigi VW5zdXBwb3J0ZWQgYWVhZCBhbGdvIik7DQo+ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PVFNV UDsNCj4gICAgICAgIH0NCj4tICAgICAgIHNlc3MtPmNpcGhlci5ub25jZV9waHlzID0gcnRlX21l bV92aXJ0MnBoeShzZXNzLT5jaXBoZXIubm9uY2UpOw0KPi0gICAgICAgc2Vzcy0+Y2lwaGVyLmtl eV9waHlzID0gcnRlX21lbV92aXJ0MnBoeShzZXNzLT5jaXBoZXIua2V5X2NjcCk7DQo+KyAgICAg ICBpZiAoaW9tbXVfbW9kZSA9PSAyKSB7DQo+KyAgICAgICAgICAgICAgIHNlc3MtPmNpcGhlci5u b25jZV9waHlzID0gcnRlX21lbV92aXJ0MmlvdmEoc2Vzcy0+Y2lwaGVyLm5vbmNlKTsNCj4rICAg ICAgICAgICAgICAgc2Vzcy0+Y2lwaGVyLmtleV9waHlzID0gcnRlX21lbV92aXJ0MmlvdmEoc2Vz cy0+Y2lwaGVyLmtleV9jY3ApOw0KPisgICAgICAgfSBlbHNlIHsNCj4rICAgICAgICAgICAgICAg c2Vzcy0+Y2lwaGVyLm5vbmNlX3BoeXMgPSBydGVfbWVtX3ZpcnQycGh5KHNlc3MtPmNpcGhlci5u b25jZSk7DQo+KyAgICAgICAgICAgICAgIHNlc3MtPmNpcGhlci5rZXlfcGh5cyA9IHJ0ZV9tZW1f dmlydDJwaHkoc2Vzcy0+Y2lwaGVyLmtleV9jY3ApOw0KPisgICAgICAgfQ0KPiAgICAgICAgcmV0 dXJuIDA7DQo+IH0NCj4NCj5AQCAtMTU3NSwxMSArMTU5MiwxNiBAQCBjY3BfcGVyZm9ybV9obWFj KHN0cnVjdCBydGVfY3J5cHRvX29wICpvcCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb3AtPnN5bS0+YXV0aC5kYXRhLm9mZnNldCk7DQo+ICAgICAgICBh cHBlbmRfcHRyID0gKHZvaWQgKilydGVfcGt0bWJ1Zl9hcHBlbmQob3AtPnN5bS0+bV9zcmMsDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+ YXV0aC5jdHhfbGVuKTsNCj4tICAgICAgIGRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVt X3ZpcnQycGh5KGFwcGVuZF9wdHIpOw0KPisgICAgICAgaWYgKGlvbW11X21vZGUgPT0gMikgew0K PisgICAgICAgICAgICAgICBkZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0Mmlv dmEoYXBwZW5kX3B0cik7DQo+KyAgICAgICAgICAgICAgIHBzdC5zcmNfYWRkciA9IChwaHlzX2Fk ZHJfdClydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAqKWFkZHIpOw0KPisgICAgICAgfSBlbHNlIHsN Cj4rICAgICAgICAgICAgICAgZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJw aHkoYXBwZW5kX3B0cik7DQo+KyAgICAgICAgICAgICAgIHBzdC5zcmNfYWRkciA9IChwaHlzX2Fk ZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopYWRkcik7DQo+KyAgICAgICB9DQo+ICAgICAg ICBkZXN0X2FkZHJfdCA9IGRlc3RfYWRkcjsNCj4NCj4gICAgICAgIC8qKiBMb2FkIFBIYXNoMSB0 byBMU0IqLw0KPi0gICAgICAgcHN0LnNyY19hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmly dDJwaHkoKHZvaWQgKilhZGRyKTsNCj4gICAgICAgIHBzdC5kZXN0X2FkZHIgPSAocGh5c19hZGRy X3QpKGNtZF9xLT5zYl9zaGEgKiBDQ1BfU0JfQllURVMpOw0KPiAgICAgICAgcHN0LmxlbiA9IHNl c3Npb24tPmF1dGguY3R4X2xlbjsNCj4gICAgICAgIHBzdC5kaXIgPSAxOw0KPkBAIC0xNjU5LDcg KzE2ODEsMTAgQEAgY2NwX3BlcmZvcm1faG1hYyhzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsDQo+ DQo+ICAgICAgICAvKiogTG9hZCBQSGFzaDIgdG8gTFNCKi8NCj4gICAgICAgIGFkZHIgKz0gc2Vz c2lvbi0+YXV0aC5jdHhfbGVuOw0KPi0gICAgICAgcHN0LnNyY19hZGRyID0gKHBoeXNfYWRkcl90 KXJ0ZV9tZW1fdmlydDJwaHkoKHZvaWQgKilhZGRyKTsNCj4rICAgICAgIGlmIChpb21tdV9tb2Rl ID09IDIpDQo+KyAgICAgICAgICAgICAgIHBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVf bWVtX3ZpcnQyaW92YSgodm9pZCAqKWFkZHIpOw0KPisgICAgICAgZWxzZQ0KPisgICAgICAgICAg ICAgICBwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeSgodm9pZCAN Cj4rICopYWRkcik7DQo+ICAgICAgICBwc3QuZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KShjbWRf cS0+c2Jfc2hhICogQ0NQX1NCX0JZVEVTKTsNCj4gICAgICAgIHBzdC5sZW4gPSBzZXNzaW9uLT5h dXRoLmN0eF9sZW47DQo+ICAgICAgICBwc3QuZGlyID0gMTsNCj5AQCAtMTc0NSwxNSArMTc3MCwx OSBAQCBjY3BfcGVyZm9ybV9zaGEoc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLA0KPg0KPiAgICAg ICAgc3JjX2FkZHIgPSBydGVfcGt0bWJ1Zl9tdG9waHlzX29mZnNldChvcC0+c3ltLT5tX3NyYywN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AtPnN5bS0+ YXV0aC5kYXRhLm9mZnNldCk7DQo+LQ0KPiAgICAgICAgYXBwZW5kX3B0ciA9ICh2b2lkICopcnRl X3BrdG1idWZfYXBwZW5kKG9wLT5zeW0tPm1fc3JjLA0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPmF1dGguY3R4X2xlbik7DQo+LSAgICAg ICBkZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeShhcHBlbmRfcHRyKTsN Cj4rICAgICAgIGlmIChpb21tdV9tb2RlID09IDIpIHsNCj4rICAgICAgICAgICAgICAgZGVzdF9h ZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKGFwcGVuZF9wdHIpOw0KPisgICAg ICAgICAgICAgICBwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRyX3Qpc2hhX2N0eDsNCj4rICAgICAg IH0gZWxzZSB7DQo+KyAgICAgICAgICAgICAgIGRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVf bWVtX3ZpcnQycGh5KGFwcGVuZF9wdHIpOw0KPisgICAgICAgICAgICAgICBwc3Quc3JjX2FkZHIg PSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeSgodm9pZCAqKQ0KPisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+YXV0aC5jdHgp Ow0KPisgICAgICAgfQ0KPg0KPiAgICAgICAgLyoqIFBhc3N0aHJ1IHNoYSBjb250ZXh0Ki8NCj4N Cj4tICAgICAgIHBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2 b2lkICopDQo+LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXNzaW9uLT5hdXRoLmN0eCk7DQo+ICAgICAgICBwc3QuZGVzdF9hZGRyID0gKHBoeXNf YWRkcl90KShjbWRfcS0+c2Jfc2hhICogQ0NQX1NCX0JZVEVTKTsNCj4gICAgICAgIHBzdC5sZW4g PSBzZXNzaW9uLT5hdXRoLmN0eF9sZW47DQo+ICAgICAgICBwc3QuZGlyID0gMTsNCj5AQCAtMTg0 MCwxMCArMTg2OSwxNiBAQCBjY3BfcGVyZm9ybV9zaGEzX2htYWMoc3RydWN0IHJ0ZV9jcnlwdG9f b3AgKm9wLA0KPiAgICAgICAgICAgICAgICBDQ1BfTE9HX0VSUigiQ0NQIE1CVUYgYXBwZW5kIGZh aWxlZFxuIik7DQo+ICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCj4gICAgICAgIH0NCj4tICAg ICAgIGRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopYXBw ZW5kX3B0cik7DQo+KyAgICAgICBpZiAoaW9tbXVfbW9kZSA9PSAyKSB7DQo+KyAgICAgICAgICAg ICAgIGRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAqKWFw cGVuZF9wdHIpOw0KPisgICAgICAgICAgICAgICBjdHhfcGFkZHIgPSAocGh5c19hZGRyX3QpcnRl X21lbV92aXJ0MmlvdmEoDQo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlc3Npb24tPmF1dGgucHJlX2NvbXB1dGUpOw0KPisgICAgICAgfSBlbHNlIHsNCj4rICAgICAg ICAgICAgICAgZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoKHZvaWQg KilhcHBlbmRfcHRyKTsNCj4rICAgICAgICAgICAgICAgY3R4X3BhZGRyID0gKHBoeXNfYWRkcl90 KXJ0ZV9tZW1fdmlydDJwaHkoDQo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlc3Npb24tPmF1dGgucHJlX2NvbXB1dGUpOw0KPisgICAgICAgfQ0KPiAgICAgICAgZGVz dF9hZGRyX3QgPSBkZXN0X2FkZHIgKyAoc2Vzc2lvbi0+YXV0aC5jdHhfbGVuIC8gMik7DQo+LSAg ICAgICBjdHhfcGFkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeSgodm9pZA0KPi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopc2Vzc2lv bi0+YXV0aC5wcmVfY29tcHV0ZSk7DQo+ICAgICAgICBkZXNjID0gJmNtZF9xLT5xYmFzZV9kZXNj W2NtZF9xLT5xaWR4XTsNCj4gICAgICAgIG1lbXNldChkZXNjLCAwLCBRX0RFU0NfU0laRSk7DQo+ DQo+QEAgLTE5NjQsNyArMTk5OSw3IEBAIGNjcF9wZXJmb3JtX3NoYTMoc3RydWN0IHJ0ZV9jcnlw dG9fb3AgKm9wLA0KPiAgICAgICAgc3RydWN0IGNjcF9zZXNzaW9uICpzZXNzaW9uOw0KPiAgICAg ICAgdW5pb24gY2NwX2Z1bmN0aW9uIGZ1bmN0aW9uOw0KPiAgICAgICAgc3RydWN0IGNjcF9kZXNj ICpkZXNjOw0KPi0gICAgICAgdWludDhfdCAqY3R4X2FkZHIsICphcHBlbmRfcHRyOw0KPisgICAg ICAgdWludDhfdCAqY3R4X2FkZHIgPSBOVUxMLCAqYXBwZW5kX3B0ciA9IE5VTEw7DQo+ICAgICAg ICB1aW50MzJfdCB0YWlsOw0KPiAgICAgICAgcGh5c19hZGRyX3Qgc3JjX2FkZHIsIGRlc3RfYWRk ciwgY3R4X3BhZGRyOw0KPg0KPkBAIC0xOTgwLDkgKzIwMTUsMTUgQEAgY2NwX3BlcmZvcm1fc2hh MyhzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsDQo+ICAgICAgICAgICAgICAgIENDUF9MT0dfRVJS KCJDQ1AgTUJVRiBhcHBlbmQgZmFpbGVkXG4iKTsNCj4gICAgICAgICAgICAgICAgcmV0dXJuIC0x Ow0KPiAgICAgICAgfQ0KPi0gICAgICAgZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1f dmlydDJwaHkoKHZvaWQgKilhcHBlbmRfcHRyKTsNCj4rICAgICAgIGlmIChpb21tdV9tb2RlID09 IDIpIHsNCj4rICAgICAgICAgICAgICAgZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1f dmlydDJpb3ZhKCh2b2lkICopYXBwZW5kX3B0cik7DQo+KyAgICAgICAgICAgICAgIGN0eF9wYWRk ciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAqKWN0eF9hZGRyKTsNCj4r ICAgICAgIH0gZWxzZSB7DQo+KyAgICAgICAgICAgICAgIGRlc3RfYWRkciA9IChwaHlzX2FkZHJf dClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopYXBwZW5kX3B0cik7DQo+KyAgICAgICAgICAgICAg IGN0eF9wYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopY3R4X2Fk ZHIpOw0KPisgICAgICAgfQ0KPisNCj4gICAgICAgIGN0eF9hZGRyID0gc2Vzc2lvbi0+YXV0aC5z aGEzX2N0eDsNCj4tICAgICAgIGN0eF9wYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQy cGh5KCh2b2lkICopY3R4X2FkZHIpOw0KPg0KPiAgICAgICAgZGVzYyA9ICZjbWRfcS0+cWJhc2Vf ZGVzY1tjbWRfcS0+cWlkeF07DQo+ICAgICAgICBtZW1zZXQoZGVzYywgMCwgUV9ERVNDX1NJWkUp Ow0KPkBAIC0yMDMyLDIwICsyMDczLDI1IEBAIGNjcF9wZXJmb3JtX2Flc19jbWFjKHN0cnVjdCBy dGVfY3J5cHRvX29wICpvcCwNCj4gICAgICAgIHN0cnVjdCBjY3BfcGFzc3RocnUgcHN0Ow0KPiAg ICAgICAgc3RydWN0IGNjcF9kZXNjICpkZXNjOw0KPiAgICAgICAgdWludDMyX3QgdGFpbDsNCj4t ICAgICAgIHVpbnQ4X3QgKnNyY190YiwgKmFwcGVuZF9wdHIsICpjdHhfYWRkcjsNCj4tICAgICAg IHBoeXNfYWRkcl90IHNyY19hZGRyLCBkZXN0X2FkZHIsIGtleV9hZGRyOw0KPisgICAgICAgdWlu dDhfdCAqc3JjX3RiLCAqYXBwZW5kX3B0ciA9IDAsICpjdHhfYWRkcjsNCj4rICAgICAgIHBoeXNf YWRkcl90IHNyY19hZGRyLCBkZXN0X2FkZHIgPSAwLCBrZXlfYWRkciA9IDA7DQo+ICAgICAgICBp bnQgbGVuZ3RoLCBub25fYWxpZ25fbGVuOw0KPg0KPiAgICAgICAgc2Vzc2lvbiA9IChzdHJ1Y3Qg Y2NwX3Nlc3Npb24gKilnZXRfc3ltX3Nlc3Npb25fcHJpdmF0ZV9kYXRhKA0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AtPnN5bS0+c2Vzc2lvbiwNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NwX2NyeXB0b2Rldl9kcml2ZXJfaWQp Ow0KPi0gICAgICAga2V5X2FkZHIgPSBydGVfbWVtX3ZpcnQycGh5KHNlc3Npb24tPmF1dGgua2V5 X2NjcCk7DQo+DQo+ICAgICAgICBzcmNfYWRkciA9IHJ0ZV9wa3RtYnVmX210b3BoeXNfb2Zmc2V0 KG9wLT5zeW0tPm1fc3JjLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvcC0+c3ltLT5hdXRoLmRhdGEub2Zmc2V0KTsNCj4gICAgICAgIGFwcGVuZF9wdHIg PSAodWludDhfdCAqKXJ0ZV9wa3RtYnVmX2FwcGVuZChvcC0+c3ltLT5tX3NyYywNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5hdXRoLmN0 eF9sZW4pOw0KPi0gICAgICAgZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJw aHkoKHZvaWQgKilhcHBlbmRfcHRyKTsNCj4rICAgICAgIGlmIChpb21tdV9tb2RlID09IDIpIHsN Cj4rICAgICAgICAgICAgICAga2V5X2FkZHIgPSBydGVfbWVtX3ZpcnQyaW92YShzZXNzaW9uLT5h dXRoLmtleV9jY3ApOw0KPisgICAgICAgICAgICAgICBkZXN0X2FkZHIgPSAocGh5c19hZGRyX3Qp cnRlX21lbV92aXJ0MmlvdmEoKHZvaWQgKilhcHBlbmRfcHRyKTsNCj4rICAgICAgIH0gZWxzZSB7 DQo+KyAgICAgICAgICAgICAgIGtleV9hZGRyID0gcnRlX21lbV92aXJ0MnBoeShzZXNzaW9uLT5h dXRoLmtleV9jY3ApOw0KPisgICAgICAgICAgICAgICBkZXN0X2FkZHIgPSAocGh5c19hZGRyX3Qp cnRlX21lbV92aXJ0MnBoeSgodm9pZCAqKWFwcGVuZF9wdHIpOw0KPisgICAgICAgfQ0KPg0KPiAg ICAgICAgZnVuY3Rpb24ucmF3ID0gMDsNCj4gICAgICAgIENDUF9BRVNfRU5DUllQVCgmZnVuY3Rp b24pID0gQ0NQX0NJUEhFUl9ESVJfRU5DUllQVDsgQEAgLTIwNTYsNyArMjEwMiwxMyBAQCBjY3Bf cGVyZm9ybV9hZXNfY21hYyhzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsDQo+DQo+ICAgICAgICAg ICAgICAgIGN0eF9hZGRyID0gc2Vzc2lvbi0+YXV0aC5wcmVfY29tcHV0ZTsNCj4gICAgICAgICAg ICAgICAgbWVtc2V0KGN0eF9hZGRyLCAwLCBBRVNfQkxPQ0tfU0laRSk7DQo+LSAgICAgICAgICAg ICAgIHBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICop Y3R4X2FkZHIpOw0KPisgICAgICAgICAgICAgICBpZiAoaW9tbXVfbW9kZSA9PSAyKQ0KPisgICAg ICAgICAgICAgICAgICAgICAgIHBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3Zp cnQyaW92YSgNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh2b2lkICopY3R4X2FkZHIpOw0KPisgICAgICAgICAgICAgICBlbHNlDQo+KyAg ICAgICAgICAgICAgICAgICAgICAgcHN0LnNyY19hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1f dmlydDJwaHkoDQo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAodm9pZCANCj4rICopY3R4X2FkZHIpOw0KPisNCj4gICAgICAgICAgICAgICAg cHN0LmRlc3RfYWRkciA9IChwaHlzX2FkZHJfdCkoY21kX3EtPnNiX2l2ICogQ0NQX1NCX0JZVEVT KTsNCj4gICAgICAgICAgICAgICAgcHN0LmxlbiA9IENDUF9TQl9CWVRFUzsNCj4gICAgICAgICAg ICAgICAgcHN0LmRpciA9IDE7DQo+QEAgLTIwOTQsNyArMjE0NiwxMiBAQCBjY3BfcGVyZm9ybV9h ZXNfY21hYyhzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsDQo+ICAgICAgICB9IGVsc2Ugew0KPiAg ICAgICAgICAgICAgICBjdHhfYWRkciA9IHNlc3Npb24tPmF1dGgucHJlX2NvbXB1dGUgKyBDQ1Bf U0JfQllURVM7DQo+ICAgICAgICAgICAgICAgIG1lbXNldChjdHhfYWRkciwgMCwgQUVTX0JMT0NL X1NJWkUpOw0KPi0gICAgICAgICAgICAgICBwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRyX3QpcnRl X21lbV92aXJ0MnBoeSgodm9pZCAqKWN0eF9hZGRyKTsNCj4rICAgICAgICAgICAgICAgaWYgKGlv bW11X21vZGUgPT0gMikNCj4rICAgICAgICAgICAgICAgICAgICAgICBwc3Quc3JjX2FkZHIgPSAo cGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoDQo+KyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKWN0eF9hZGRyKTsNCj4rICAg ICAgICAgICAgICAgZWxzZQ0KPisgICAgICAgICAgICAgICAgICAgICAgIHBzdC5zcmNfYWRkciA9 IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KA0KPisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgDQo+KyAqKWN0eF9hZGRyKTsN Cj4gICAgICAgICAgICAgICAgcHN0LmRlc3RfYWRkciA9IChwaHlzX2FkZHJfdCkoY21kX3EtPnNi X2l2ICogQ0NQX1NCX0JZVEVTKTsNCj4gICAgICAgICAgICAgICAgcHN0LmxlbiA9IENDUF9TQl9C WVRFUzsNCj4gICAgICAgICAgICAgICAgcHN0LmRpciA9IDE7DQo+QEAgLTIyODgsOCArMjM0NSwx MiBAQCBjY3BfcGVyZm9ybV8zZGVzKHN0cnVjdCBydGVfY3J5cHRvX29wICpvcCwNCj4NCj4gICAg ICAgICAgICAgICAgcnRlX21lbWNweShsc2JfYnVmICsgKENDUF9TQl9CWVRFUyAtIHNlc3Npb24t Pml2Lmxlbmd0aCksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIHNlc3Npb24tPml2 Lmxlbmd0aCk7DQo+LQ0KPi0gICAgICAgICAgICAgICBwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRy X3QpcnRlX21lbV92aXJ0MnBoeSgodm9pZCAqKSBsc2JfYnVmKTsNCj4rICAgICAgICAgICAgICAg aWYgKGlvbW11X21vZGUgPT0gMikNCj4rICAgICAgICAgICAgICAgICAgICAgICBwc3Quc3JjX2Fk ZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoDQo+KyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBsc2JfYnVmKTsN Cj4rICAgICAgICAgICAgICAgZWxzZQ0KPisgICAgICAgICAgICAgICAgICAgICAgIHBzdC5zcmNf YWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KA0KPisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgDQo+KyBsc2Jf YnVmKTsNCj4gICAgICAgICAgICAgICAgcHN0LmRlc3RfYWRkciA9IChwaHlzX2FkZHJfdCkoY21k X3EtPnNiX2l2ICogQ0NQX1NCX0JZVEVTKTsNCj4gICAgICAgICAgICAgICAgcHN0LmxlbiA9IEND UF9TQl9CWVRFUzsNCj4gICAgICAgICAgICAgICAgcHN0LmRpciA9IDE7DQo+QEAgLTIzMTIsNyAr MjM3MywxMCBAQCBjY3BfcGVyZm9ybV8zZGVzKHN0cnVjdCBydGVfY3J5cHRvX29wICpvcCwNCj4g ICAgICAgIGVsc2UNCj4gICAgICAgICAgICAgICAgZGVzdF9hZGRyID0gc3JjX2FkZHI7DQo+DQo+ LSAgICAgICBrZXlfYWRkciA9IHJ0ZV9tZW1fdmlydDJwaHkoc2Vzc2lvbi0+Y2lwaGVyLmtleV9j Y3ApOw0KPisgICAgICAgaWYgKGlvbW11X21vZGUgPT0gMikNCj4rICAgICAgICAgICAgICAga2V5 X2FkZHIgPSBydGVfbWVtX3ZpcnQyaW92YShzZXNzaW9uLT5jaXBoZXIua2V5X2NjcCk7DQo+KyAg ICAgICBlbHNlDQo+KyAgICAgICAgICAgICAgIGtleV9hZGRyID0gcnRlX21lbV92aXJ0MnBoeShz ZXNzaW9uLT5jaXBoZXIua2V5X2NjcCk7DQo+DQo+ICAgICAgICBkZXNjID0gJmNtZF9xLT5xYmFz ZV9kZXNjW2NtZF9xLT5xaWR4XTsNCj4NCj5AQCAtMjcwNyw4ICsyNzcxLDEzIEBAIHByb2Nlc3Nf b3BzX3RvX2VucXVldWUoc3RydWN0IGNjcF9xcCAqcXAsDQo+ICAgICAgICBiX2luZm8tPmxzYl9i dWZfaWR4ID0gMDsNCj4gICAgICAgIGJfaW5mby0+ZGVzY2NudCA9IDA7DQo+ICAgICAgICBiX2lu Zm8tPmNtZF9xID0gY21kX3E7DQo+LSAgICAgICBiX2luZm8tPmxzYl9idWZfcGh5cyA9DQo+LSAg ICAgICAgICAgICAgIChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopYl9pbmZv LT5sc2JfYnVmKTsNCj4rICAgICAgIGlmIChpb21tdV9tb2RlID09IDIpDQo+KyAgICAgICAgICAg ICAgIGJfaW5mby0+bHNiX2J1Zl9waHlzID0NCj4rICAgICAgICAgICAgICAgICAgICAgICAocGh5 c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoKHZvaWQgKiliX2luZm8tPmxzYl9idWYpOw0KPisg ICAgICAgZWxzZQ0KPisgICAgICAgICAgICAgICBiX2luZm8tPmxzYl9idWZfcGh5cyA9DQo+KyAg ICAgICAgICAgICAgICAgICAgICAgKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoKHZvaWQg DQo+KyAqKWJfaW5mby0+bHNiX2J1Zik7DQo+Kw0KPiAgICAgICAgcnRlX2F0b21pYzY0X3N1Yigm Yl9pbmZvLT5jbWRfcS0+ZnJlZV9zbG90cywgc2xvdHNfcmVxKTsNCj4NCj4gICAgICAgIGJfaW5m by0+aGVhZF9vZmZzZXQgPSAodWludDMyX3QpKGNtZF9xLT5xYmFzZV9waHlzX2FkZHIgKyBjbWRf cS0+cWlkeCAqIGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jY3AvY2NwX2Rldi5jIGIvZHJp dmVycy9jcnlwdG8vY2NwL2NjcF9kZXYuYyBpbmRleCA4MGZlNmE0NTMuLjNhNjNiMDFlNiAxMDA2 NDQNCj4tLS0gYS9kcml2ZXJzL2NyeXB0by9jY3AvY2NwX2Rldi5jDQo+KysrIGIvZHJpdmVycy9j cnlwdG8vY2NwL2NjcF9kZXYuYw0KPkBAIC0yMyw2ICsyMyw3IEBADQo+ICNpbmNsdWRlICJjY3Bf cGNpLmgiDQo+ICNpbmNsdWRlICJjY3BfcG1kX3ByaXZhdGUuaCINCj4NCj4raW50IGlvbW11X21v ZGU7DQo+IHN0cnVjdCBjY3BfbGlzdCBjY3BfbGlzdCA9IFRBSUxRX0hFQURfSU5JVElBTElaRVIo Y2NwX2xpc3QpOyAgc3RhdGljIGludCBjY3BfZGV2X2lkOw0KPg0KPkBAIC01MTIsNyArNTEzLDcg QEAgY2NwX2FkZF9kZXZpY2Uoc3RydWN0IGNjcF9kZXZpY2UgKmRldiwgaW50IHR5cGUpDQo+DQo+ ICAgICAgICAgICAgICAgIENDUF9XUklURV9SRUcodmFkZHIsIENNRF9DTEtfR0FURV9DVExfT0ZG U0VULCAweDAwMTA4ODIzKTsNCj4gICAgICAgIH0NCj4tICAgICAgIENDUF9XUklURV9SRUcodmFk ZHIsIENNRF9SRVFJRF9DT05GSUdfT0ZGU0VULCAweDAwMDAxMjQ5KTsNCj4rICAgICAgIENDUF9X UklURV9SRUcodmFkZHIsIENNRF9SRVFJRF9DT05GSUdfT0ZGU0VULCAweDApOw0KPg0KPiAgICAg ICAgLyogQ29weSB0aGUgcHJpdmF0ZSBMU0IgbWFzayB0byB0aGUgcHVibGljIHJlZ2lzdGVycyAq Lw0KPiAgICAgICAgc3RhdHVzX2xvID0gQ0NQX1JFQURfUkVHKHZhZGRyLCBMU0JfUFJJVkFURV9N QVNLX0xPX09GRlNFVCk7IEBAIC02NTcsOSArNjU4LDcgQEAgY2NwX3Byb2JlX2RldmljZShjb25z dCBjaGFyICpkaXJuYW1lLCB1aW50MTZfdCBkb21haW4sDQo+ICAgICAgICBzdHJ1Y3QgcnRlX3Bj aV9kZXZpY2UgKnBjaTsNCj4gICAgICAgIGNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOw0KPiAgICAg ICAgdW5zaWduZWQgbG9uZyB0bXA7DQo+LSAgICAgICBpbnQgdWlvX2ZkID0gLTEsIGksIHVpb19u dW07DQo+LSAgICAgICBjaGFyIHVpb19kZXZuYW1lW1BBVEhfTUFYXTsNCj4tICAgICAgIHZvaWQg Km1hcF9hZGRyOw0KPisgICAgICAgaW50IHVpb19mZCA9IC0xOw0KPg0KPiAgICAgICAgY2NwX2Rl diA9IHJ0ZV96bWFsbG9jKCJjY3BfZGV2aWNlIiwgc2l6ZW9mKCpjY3BfZGV2KSwNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSVEVfQ0FDSEVfTElORV9TSVpFKTsgQEAgLTcxMCw0NiAr NzA5LDE0IEBAIGNjcF9wcm9iZV9kZXZpY2UoY29uc3QgY2hhciAqZGlybmFtZSwgdWludDE2X3Qg ZG9tYWluLA0KPiAgICAgICAgc25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIl cy9yZXNvdXJjZSIsIGRpcm5hbWUpOw0KPiAgICAgICAgaWYgKGNjcF9wY2lfcGFyc2Vfc3lzZnNf cmVzb3VyY2UoZmlsZW5hbWUsIHBjaSkgPCAwKQ0KPiAgICAgICAgICAgICAgICBnb3RvIGZhaWw7 DQo+KyAgICAgICBpZiAoaW9tbXVfbW9kZSA9PSAyKQ0KPisgICAgICAgICAgICAgICBwY2ktPmtk cnYgPSBSVEVfS0RSVl9WRklPOw0KPisgICAgICAgZWxzZSBpZiAoaW9tbXVfbW9kZSA9PSAwKQ0K PisgICAgICAgICAgICAgICBwY2ktPmtkcnYgPSBSVEVfS0RSVl9JR0JfVUlPOw0KPisgICAgICAg ZWxzZSBpZiAoaW9tbXVfbW9kZSA9PSAxKQ0KPisgICAgICAgICAgICAgICBwY2ktPmtkcnYgPSBS VEVfS0RSVl9VSU9fR0VORVJJQzsNCj4NCj4tICAgICAgIHVpb19udW0gPSBjY3BfZmluZF91aW9f ZGV2bmFtZShkaXJuYW1lKTsNCj4tICAgICAgIGlmICh1aW9fbnVtIDwgMCkgew0KPi0gICAgICAg ICAgICAgICAvKg0KPi0gICAgICAgICAgICAgICAgKiBJdCBtYXkgdGFrZSB0aW1lIGZvciB1aW8g ZGV2aWNlIHRvIGFwcGVhciwNCj4tICAgICAgICAgICAgICAgICogd2FpdCAgaGVyZSBhbmQgdHJ5 IGFnYWluDQo+LSAgICAgICAgICAgICAgICAqLw0KPi0gICAgICAgICAgICAgICB1c2xlZXAoMTAw MDAwKTsNCj4tICAgICAgICAgICAgICAgdWlvX251bSA9IGNjcF9maW5kX3Vpb19kZXZuYW1lKGRp cm5hbWUpOw0KPi0gICAgICAgICAgICAgICBpZiAodWlvX251bSA8IDApDQo+LSAgICAgICAgICAg ICAgICAgICAgICAgZ290byBmYWlsOw0KPi0gICAgICAgfQ0KPi0gICAgICAgc25wcmludGYodWlv X2Rldm5hbWUsIHNpemVvZih1aW9fZGV2bmFtZSksICIvZGV2L3VpbyV1IiwgdWlvX251bSk7DQo+ LQ0KPi0gICAgICAgdWlvX2ZkID0gb3Blbih1aW9fZGV2bmFtZSwgT19SRFdSIHwgT19OT05CTE9D Syk7DQo+LSAgICAgICBpZiAodWlvX2ZkIDwgMCkNCj4tICAgICAgICAgICAgICAgZ290byBmYWls Ow0KPi0gICAgICAgaWYgKGZsb2NrKHVpb19mZCwgTE9DS19FWCB8IExPQ0tfTkIpKQ0KPi0gICAg ICAgICAgICAgICBnb3RvIGZhaWw7DQo+LQ0KPi0gICAgICAgLyogTWFwIHRoZSBQQ0kgbWVtb3J5 IHJlc291cmNlIG9mIGRldmljZSAqLw0KPi0gICAgICAgZm9yIChpID0gMDsgaSA8IFBDSV9NQVhf UkVTT1VSQ0U7IGkrKykgew0KPi0NCj4tICAgICAgICAgICAgICAgY2hhciBkZXZuYW1lW1BBVEhf TUFYXTsNCj4tICAgICAgICAgICAgICAgaW50IHJlc19mZDsNCj4tDQo+LSAgICAgICAgICAgICAg IGlmIChwY2ktPm1lbV9yZXNvdXJjZVtpXS5waHlzX2FkZHIgPT0gMCkNCj4tICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsNCj4tICAgICAgICAgICAgICAgc25wcmludGYoZGV2bmFtZSwg c2l6ZW9mKGRldm5hbWUpLCAiJXMvcmVzb3VyY2UlZCIsIGRpcm5hbWUsIGkpOw0KPi0gICAgICAg ICAgICAgICByZXNfZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRXUik7DQo+LSAgICAgICAgICAgICAg IGlmIChyZXNfZmQgPCAwKQ0KPi0gICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsNCj4t ICAgICAgICAgICAgICAgbWFwX2FkZHIgPSBtbWFwKE5VTEwsIHBjaS0+bWVtX3Jlc291cmNlW2ld LmxlbiwNCj4tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBST1Rf V1JJVEUsDQo+LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVBfU0hBUkVELCByZXNf ZmQsIDApOw0KPi0gICAgICAgICAgICAgICBpZiAobWFwX2FkZHIgPT0gTUFQX0ZBSUxFRCkNCj4t ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7DQo+LQ0KPi0gICAgICAgICAgICAgICBw Y2ktPm1lbV9yZXNvdXJjZVtpXS5hZGRyID0gbWFwX2FkZHI7DQo+LSAgICAgICB9DQo+KyAgICAg ICBydGVfcGNpX21hcF9kZXZpY2UocGNpKTsNCj4NCj4gICAgICAgIC8qIGRldmljZSBpcyB2YWxp ZCwgYWRkIGluIGxpc3QgKi8NCj4gICAgICAgIGlmIChjY3BfYWRkX2RldmljZShjY3BfZGV2LCBj Y3BfdHlwZSkpIHsgQEAgLTc4NCw2ICs3NTEsNyBAQCBjY3BfcHJvYmVfZGV2aWNlcyhjb25zdCBz dHJ1Y3QgcnRlX3BjaV9pZCAqY2NwX2lkKQ0KPiAgICAgICAgaWYgKG1vZHVsZV9pZHggPCAwKQ0K PiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQo+DQo+KyAgICAgICBpb21tdV9tb2RlID0gbW9k dWxlX2lkeDsNCj4gICAgICAgIFRBSUxRX0lOSVQoJmNjcF9saXN0KTsNCj4gICAgICAgIGRpciA9 IG9wZW5kaXIoU1lTRlNfUENJX0RFVklDRVMpOw0KPiAgICAgICAgaWYgKGRpciA9PSBOVUxMKQ0K PmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jY3AvY2NwX3BjaS5jIGIvZHJpdmVycy9jcnlw dG8vY2NwL2NjcF9wY2kuYyBpbmRleCAxNzAyYTA5YzQuLjM4MDI5YTkwOCAxMDA2NDQNCj4tLS0g YS9kcml2ZXJzL2NyeXB0by9jY3AvY2NwX3BjaS5jDQo+KysrIGIvZHJpdmVycy9jcnlwdG8vY2Nw L2NjcF9wY2kuYw0KPkBAIC0xNSw2ICsxNSw3IEBADQo+IHN0YXRpYyBjb25zdCBjaGFyICogY29u c3QgdWlvX21vZHVsZV9uYW1lc1tdID0gew0KPiAgICAgICAgImlnYl91aW8iLA0KPiAgICAgICAg InVpb19wY2lfZ2VuZXJpYyIsDQo+KyAgICAgICAidmZpb19wY2kiDQo+IH07DQo+DQo+IGludA0K PmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jY3AvcnRlX2NjcF9wbWQuYyBiL2RyaXZlcnMv Y3J5cHRvL2NjcC9ydGVfY2NwX3BtZC5jDQo+aW5kZXggMzhjYjFmZTNkLi41ZjhhYjA2MTggMTAw NjQ0DQo+LS0tIGEvZHJpdmVycy9jcnlwdG8vY2NwL3J0ZV9jY3BfcG1kLmMNCj4rKysgYi9kcml2 ZXJzL2NyeXB0by9jY3AvcnRlX2NjcF9wbWQuYw0KPkBAIC0yMyw2ICsyMyw3IEBADQo+IHN0YXRp YyB1bnNpZ25lZCBpbnQgY2NwX3BtZF9pbml0X2RvbmU7DQo+IHVpbnQ4X3QgY2NwX2NyeXB0b2Rl dl9kcml2ZXJfaWQ7DQo+IHVpbnQ4X3QgY3J5cHRvZGV2X2NudDsNCj4rZXh0ZXJuIHZvaWQgKnNo YV9jdHg7DQo+DQo+IHN0cnVjdCBjY3BfcG1kX2luaXRfcGFyYW1zIHsNCj4gICAgICAgIHN0cnVj dCBydGVfY3J5cHRvZGV2X3BtZF9pbml0X3BhcmFtcyBkZWZfcDsgQEAgLTMwMyw2ICszMDQsNyBA QCBjcnlwdG9kZXZfY2NwX3JlbW92ZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICpkZXYpDQo+DQo+ ICAgICAgICBjY3BfcG1kX2luaXRfZG9uZSA9IDA7DQo+ICAgICAgICBuYW1lID0gcnRlX3ZkZXZf ZGV2aWNlX25hbWUoZGV2KTsNCj4rICAgICAgIHJ0ZV9mcmVlKHNoYV9jdHgpOw0KPiAgICAgICAg aWYgKG5hbWUgPT0gTlVMTCkNCj4gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+DQo+ QEAgLTM4NSw2ICszODcsNyBAQCBjcnlwdG9kZXZfY2NwX3Byb2JlKHN0cnVjdCBydGVfdmRldl9k ZXZpY2UgKnZkZXYpDQo+ICAgICAgICB9Ow0KPiAgICAgICAgY29uc3QgY2hhciAqaW5wdXRfYXJn czsNCj4NCj4rICAgICAgIHNoYV9jdHggPSAodm9pZCAqKXJ0ZV9tYWxsb2MoTlVMTCwgU0hBNTEy X0RJR0VTVF9TSVpFLCA2NCk7DQo+ICAgICAgICBpZiAoY2NwX3BtZF9pbml0X2RvbmUpIHsNCj4g ICAgICAgICAgICAgICAgUlRFX0xPRyhJTkZPLCBQTUQsICJDQ1AgUE1EIGFscmVhZHkgaW5pdGlh bGl6ZWRcbiIpOw0KPiAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsNCj4tLQ0KPjIuMTcu MQ0KPg0KPg0K