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 7B766A2EFC for ; Tue, 15 Oct 2019 09:02:37 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2387B1D17D; Tue, 15 Oct 2019 09:02:37 +0200 (CEST) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-eopbgr740074.outbound.protection.outlook.com [40.107.74.74]) by dpdk.org (Postfix) with ESMTP id B18A31D168; Tue, 15 Oct 2019 09:02:34 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EK98Tur7qtH/IVlJEBHDhUm5vqj9cVk/N8ySKn81E4ujIu7TRMqVuCsKbv7n2WgY/gCqHsvZUJkN4XVUSv0ingbhn9s1LmgHV+whq3X2caS/VScfYib/dNlG4Ny7CwFATkRJ8uqNg9+MNrzPKeeoYLiL/9V+9Qm7sc+Ym1p8XeBS4xY4lDB86wWRDP2h1FcWhdmL3fEOR87Sz7Z6qZoa2ITDuZ6LwLfI4u2ylHOX1QJKgNMhn9AaCFaDuICKvFUKtLChlTJ0/+VZ6njD4dgUwsR9WdihlPd/OoeBTAGh0zcYup+9BYwuLFOf3LA6zwX3tOEr9sowLE5SxqkIVvrkjw== 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=q9koPNMox8+g9LMHFZR65fR2/eEVWpivLnldf9dd2/U=; b=RYi/xBU31iaq+YubKHce35U6wXPQVTfVvcADIMJ+DP+6UMWwY0PfuWVCDtxbYtlu2DyCJXmPl1VN3MxXReWD6dJv8THkxU3p+CJuklcLcPoI0Hn1PmPcM9zRHpI7/IihInAcnyJ4zW6dRwrtfKKmthAoHfn/s3sgJqnf+Uwwi5KSDYWidO3wgkrQp9ILL5h+GYQRh52uVhHUg0R9T+ObKY89TCNzfG6dy8cG7pWIVJfLnaCJmyeVzRp15XTQvoarnpy6OOWtE/in0howI1021DzlkuCnT+E4LF16S4pMdiH6h/p1s7eEiniHMMkdQxu/2onBoVZIrlKgL93x3K4ROA== 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=q9koPNMox8+g9LMHFZR65fR2/eEVWpivLnldf9dd2/U=; b=rBBtTehWNJ/QnHfH4h26mv2w4ho0wyibEPTI6VEnzEvHOEmYDtWEUeJ13Hx9YQ9hBrFwmPYAOdK14Mvd+ubmwiB3xQD5RlP5weoEB6aH5WOINQYl7LDTlIM2CFjqmq82FhtQZvRq2ZMcTFlB75IFrSCoXEZLKh23aL3OC9PClV0= Received: from DM5PR1201MB2474.namprd12.prod.outlook.com (10.172.87.136) by DM5PR1201MB2472.namprd12.prod.outlook.com (10.172.86.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.19; Tue, 15 Oct 2019 07:02:33 +0000 Received: from DM5PR1201MB2474.namprd12.prod.outlook.com ([fe80::f3:94a5:9dbc:1fd5]) by DM5PR1201MB2474.namprd12.prod.outlook.com ([fe80::f3:94a5:9dbc:1fd5%12]) with mapi id 15.20.2347.023; Tue, 15 Oct 2019 07:02:33 +0000 From: To: "dev@dpdk.org" CC: "stable@dpdk.org" Thread-Topic: [PATCH v1 5/6] crypto/ccp: enable IOMMU for CCP Thread-Index: AQHVgyaEMCRCl+DPT0uqf+n/eMGaww== Date: Tue, 15 Oct 2019 07:02:32 +0000 Message-ID: <20191015070214.93403-1-asomalap@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: MA1PR01CA0092.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00::32) To DM5PR1201MB2474.namprd12.prod.outlook.com (2603:10b6:3:e3::8) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Amaranath.Somalapuram@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [165.204.156.251] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 025d62e5-e32b-499d-0000-08d7513da67f x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: DM5PR1201MB2472: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:353; x-forefront-prvs: 01917B1794 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(346002)(366004)(376002)(39860400002)(396003)(189003)(199004)(30864003)(305945005)(450100002)(81156014)(1076003)(25786009)(7736002)(81166006)(1730700003)(66476007)(66446008)(50226002)(8936002)(64756008)(316002)(8676002)(2616005)(71190400001)(71200400001)(6916009)(2906002)(99286004)(36756003)(66556008)(6506007)(386003)(6486002)(102836004)(14444005)(14454004)(2351001)(2501003)(256004)(52116002)(6436002)(186003)(486006)(66946007)(66066001)(5640700003)(476003)(5660300002)(26005)(4326008)(3846002)(6512007)(6116002)(478600001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR1201MB2472; H:DM5PR1201MB2474.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: rn/LUaZ3PJ4s4DL1Rvn1rNRvFHt6vhJCpf8uQuQn1k6OHfzHsetnho3s3GOJc8nvQf49gspGN9QNzyAeLMDsWJG9uGzJGz4MpOZDpo2v4maTma6abFeu6f9DSCKH+z4XaT9Rys4njbbwGnFkx96aoGCdVltyeE5zoMveVNLD/xRba+kWZmRoCHGr5YxTw6bLuilrZDrd+SzVlGaShTyzOPaOFmwhqxukx3rki/MTRwcW4sfBhrRW0SIAwI+KM6txw1MDGy7mlUaSEKFuCn5cc5POGw2Yd3Rh9esu8vJg06vcGLrV0fa6Tra42kV03NXte5URIZ+McKXSMrOczF8d05bzGeZ31WHk5PCKDU2g4ESHVadCa7bWw4kGmqsW56P+qQWviryqfxpmdiCZoD30bbh5llBSfTJwjm04YjqHhGM= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 025d62e5-e32b-499d-0000-08d7513da67f X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2019 07:02:32.8548 (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: l3AX6QhDwaXdNvMeg/dW1kv1Bv7LejPfpp1Fya3PCj6Uih6SWWVikPX977JIIeRS0+CJWyoYTpjTqLcc7cCc9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB2472 Subject: [dpdk-dev] [PATCH v1 5/6] 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" RnJvbTogQW1hcmFuYXRoIFNvbWFsYXB1cmFtIDxhc29tYWxhcEBhbWQuY29tPg0KDQpDQ1AgdXNl IHZkZXYgZnJhbWV3b3JrLCBhbmQgdmRldiBmcmFtZXdvcmsgZG9u4oCZdCBzdXBwb3J0IElPTU1V Lg0KQWRkaW5nIGN1c3RvbSBJT01NVSBzdXBwb3J0IGZvciBBTUQgQ0NQIGRyaXZlcy4NCkNjOiBz dGFibGVAZHBkay5vcmcNCg0KU2lnbmVkLW9mZi1ieTogQW1hcmFuYXRoIFNvbWFsYXB1cmFtIDxh c29tYWxhcEBhbWQuY29tPg0KLS0tDQogZHJpdmVycy9jcnlwdG8vY2NwL2NjcF9jcnlwdG8uYyAg fCAyMzkgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQ0KIGRyaXZlcnMvY3J5cHRvL2Nj cC9jY3BfZGV2LmMgICAgIHwgIDU2ICsrLS0tLS0tDQogZHJpdmVycy9jcnlwdG8vY2NwL2NjcF9k ZXYuaCAgICAgfCAgIDIgKy0NCiBkcml2ZXJzL2NyeXB0by9jY3AvY2NwX3BjaS5jICAgICB8ICAg MSArDQogZHJpdmVycy9jcnlwdG8vY2NwL2NjcF9wY2kuaCAgICAgfCAgIDEgKw0KIGRyaXZlcnMv Y3J5cHRvL2NjcC9ydGVfY2NwX3BtZC5jIHwgICA1ICstDQogNiBmaWxlcyBjaGFuZ2VkLCAyMDIg aW5zZXJ0aW9ucygrKSwgMTAyIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9j cnlwdG8vY2NwL2NjcF9jcnlwdG8uYyBiL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfY3J5cHRvLmMN CmluZGV4IDE4MzdjODU0My4uODg2MmExYTg0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jcnlwdG8v Y2NwL2NjcF9jcnlwdG8uYw0KKysrIGIvZHJpdmVycy9jcnlwdG8vY2NwL2NjcF9jcnlwdG8uYw0K QEAgLTMxLDggKzMxLDExIEBADQogI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+DQogI2luY2x1ZGUg PG9wZW5zc2wvaG1hYy5oPg0KIA0KK2V4dGVybiBpbnQgaW9tbXVfbW9kZTsNCisNCiAvKiBTSEEg aW5pdGlhbCBjb250ZXh0IHZhbHVlcyAqLw0KLXN0YXRpYyB1aW50MzJfdCBjY3Bfc2hhMV9pbml0 W1NIQV9DT01NT05fRElHRVNUX1NJWkUgLyBzaXplb2YodWludDMyX3QpXSA9IHsNCit2b2lkICpz aGFfY3R4Ow0KK3VpbnQzMl90IGNjcF9zaGExX2luaXRbU0hBX0NPTU1PTl9ESUdFU1RfU0laRSAv IHNpemVvZih1aW50MzJfdCldID0gew0KIAlTSEExX0g0LCBTSEExX0gzLA0KIAlTSEExX0gyLCBT SEExX0gxLA0KIAlTSEExX0gwLCAweDBVLA0KQEAgLTc0NCw4ICs3NDcsMTMgQEAgY2NwX2NvbmZp Z3VyZV9zZXNzaW9uX2NpcGhlcihzdHJ1Y3QgY2NwX3Nlc3Npb24gKnNlc3MsDQogCQlDQ1BfTE9H X0VSUigiSW52YWxpZCBDQ1AgRW5naW5lIik7DQogCQlyZXR1cm4gLUVOT1RTVVA7DQogCX0NCi0J c2Vzcy0+Y2lwaGVyLm5vbmNlX3BoeXMgPSBydGVfbWVtX3ZpcnQycGh5KHNlc3MtPmNpcGhlci5u b25jZSk7DQotCXNlc3MtPmNpcGhlci5rZXlfcGh5cyA9IHJ0ZV9tZW1fdmlydDJwaHkoc2Vzcy0+ Y2lwaGVyLmtleV9jY3ApOw0KKwlpZiAoaW9tbXVfbW9kZSA9PSAyKSB7DQorCQlzZXNzLT5jaXBo ZXIubm9uY2VfcGh5cyA9IHJ0ZV9tZW1fdmlydDJpb3ZhKHNlc3MtPmNpcGhlci5ub25jZSk7DQor CQlzZXNzLT5jaXBoZXIua2V5X3BoeXMgPSBydGVfbWVtX3ZpcnQyaW92YShzZXNzLT5jaXBoZXIu a2V5X2NjcCk7DQorCX0gZWxzZSB7DQorCQlzZXNzLT5jaXBoZXIubm9uY2VfcGh5cyA9IHJ0ZV9t ZW1fdmlydDJwaHkoc2Vzcy0+Y2lwaGVyLm5vbmNlKTsNCisJCXNlc3MtPmNpcGhlci5rZXlfcGh5 cyA9IHJ0ZV9tZW1fdmlydDJwaHkoc2Vzcy0+Y2lwaGVyLmtleV9jY3ApOw0KKwl9DQogCXJldHVy biAwOw0KIH0NCiANCkBAIC03ODQsNiArNzkyLDcgQEAgY2NwX2NvbmZpZ3VyZV9zZXNzaW9uX2F1 dGgoc3RydWN0IGNjcF9zZXNzaW9uICpzZXNzLA0KIAkJc2Vzcy0+YXV0aC5jdHggPSAodm9pZCAq KWNjcF9zaGExX2luaXQ7DQogCQlzZXNzLT5hdXRoLmN0eF9sZW4gPSBDQ1BfU0JfQllURVM7DQog CQlzZXNzLT5hdXRoLm9mZnNldCA9IENDUF9TQl9CWVRFUyAtIFNIQTFfRElHRVNUX1NJWkU7DQor CQlydGVfbWVtY3B5KHNoYV9jdHgsIHNlc3MtPmF1dGguY3R4LCBTSEFfQ09NTU9OX0RJR0VTVF9T SVpFKTsNCiAJCWJyZWFrOw0KIAljYXNlIFJURV9DUllQVE9fQVVUSF9TSEExX0hNQUM6DQogCQlp ZiAoc2Vzcy0+YXV0aF9vcHQpIHsNCkBAIC04MjIsNiArODMxLDcgQEAgY2NwX2NvbmZpZ3VyZV9z ZXNzaW9uX2F1dGgoc3RydWN0IGNjcF9zZXNzaW9uICpzZXNzLA0KIAkJc2Vzcy0+YXV0aC5jdHgg PSAodm9pZCAqKWNjcF9zaGEyMjRfaW5pdDsNCiAJCXNlc3MtPmF1dGguY3R4X2xlbiA9IENDUF9T Ql9CWVRFUzsNCiAJCXNlc3MtPmF1dGgub2Zmc2V0ID0gQ0NQX1NCX0JZVEVTIC0gU0hBMjI0X0RJ R0VTVF9TSVpFOw0KKwkJcnRlX21lbWNweShzaGFfY3R4LCBzZXNzLT5hdXRoLmN0eCwgU0hBMjU2 X0RJR0VTVF9TSVpFKTsNCiAJCWJyZWFrOw0KIAljYXNlIFJURV9DUllQVE9fQVVUSF9TSEEyMjRf SE1BQzoNCiAJCWlmIChzZXNzLT5hdXRoX29wdCkgew0KQEAgLTg4NCw2ICs4OTQsNyBAQCBjY3Bf Y29uZmlndXJlX3Nlc3Npb25fYXV0aChzdHJ1Y3QgY2NwX3Nlc3Npb24gKnNlc3MsDQogCQlzZXNz LT5hdXRoLmN0eCA9ICh2b2lkICopY2NwX3NoYTI1Nl9pbml0Ow0KIAkJc2Vzcy0+YXV0aC5jdHhf bGVuID0gQ0NQX1NCX0JZVEVTOw0KIAkJc2Vzcy0+YXV0aC5vZmZzZXQgPSBDQ1BfU0JfQllURVMg LSBTSEEyNTZfRElHRVNUX1NJWkU7DQorCQlydGVfbWVtY3B5KHNoYV9jdHgsIHNlc3MtPmF1dGgu Y3R4LCBTSEEyNTZfRElHRVNUX1NJWkUpOw0KIAkJYnJlYWs7DQogCWNhc2UgUlRFX0NSWVBUT19B VVRIX1NIQTI1Nl9ITUFDOg0KIAkJaWYgKHNlc3MtPmF1dGhfb3B0KSB7DQpAQCAtOTQ2LDYgKzk1 Nyw3IEBAIGNjcF9jb25maWd1cmVfc2Vzc2lvbl9hdXRoKHN0cnVjdCBjY3Bfc2Vzc2lvbiAqc2Vz cywNCiAJCXNlc3MtPmF1dGguY3R4ID0gKHZvaWQgKiljY3Bfc2hhMzg0X2luaXQ7DQogCQlzZXNz LT5hdXRoLmN0eF9sZW4gPSBDQ1BfU0JfQllURVMgPDwgMTsNCiAJCXNlc3MtPmF1dGgub2Zmc2V0 ID0gKENDUF9TQl9CWVRFUyA8PCAxKSAtIFNIQTM4NF9ESUdFU1RfU0laRTsNCisJCXJ0ZV9tZW1j cHkoc2hhX2N0eCwgc2Vzcy0+YXV0aC5jdHgsIFNIQTUxMl9ESUdFU1RfU0laRSk7DQogCQlicmVh azsNCiAJY2FzZSBSVEVfQ1JZUFRPX0FVVEhfU0hBMzg0X0hNQUM6DQogCQlpZiAoc2Vzcy0+YXV0 aF9vcHQpIHsNCkBAIC0xMDEwLDYgKzEwMjIsNyBAQCBjY3BfY29uZmlndXJlX3Nlc3Npb25fYXV0 aChzdHJ1Y3QgY2NwX3Nlc3Npb24gKnNlc3MsDQogCQlzZXNzLT5hdXRoLmN0eCA9ICh2b2lkICop Y2NwX3NoYTUxMl9pbml0Ow0KIAkJc2Vzcy0+YXV0aC5jdHhfbGVuID0gQ0NQX1NCX0JZVEVTIDw8 IDE7DQogCQlzZXNzLT5hdXRoLm9mZnNldCA9IChDQ1BfU0JfQllURVMgPDwgMSkgLSBTSEE1MTJf RElHRVNUX1NJWkU7DQorCQlydGVfbWVtY3B5KHNoYV9jdHgsIHNlc3MtPmF1dGguY3R4LCBTSEE1 MTJfRElHRVNUX1NJWkUpOw0KIAkJYnJlYWs7DQogCWNhc2UgUlRFX0NSWVBUT19BVVRIX1NIQTUx Ml9ITUFDOg0KIAkJaWYgKHNlc3MtPmF1dGhfb3B0KSB7DQpAQCAtMTE1OSw4ICsxMTcyLDEzIEBA IGNjcF9jb25maWd1cmVfc2Vzc2lvbl9hZWFkKHN0cnVjdCBjY3Bfc2Vzc2lvbiAqc2VzcywNCiAJ CUNDUF9MT0dfRVJSKCJVbnN1cHBvcnRlZCBhZWFkIGFsZ28iKTsNCiAJCXJldHVybiAtRU5PVFNV UDsNCiAJfQ0KLQlzZXNzLT5jaXBoZXIubm9uY2VfcGh5cyA9IHJ0ZV9tZW1fdmlydDJwaHkoc2Vz cy0+Y2lwaGVyLm5vbmNlKTsNCi0Jc2Vzcy0+Y2lwaGVyLmtleV9waHlzID0gcnRlX21lbV92aXJ0 MnBoeShzZXNzLT5jaXBoZXIua2V5X2NjcCk7DQorCWlmIChpb21tdV9tb2RlID09IDIpIHsNCisJ CXNlc3MtPmNpcGhlci5ub25jZV9waHlzID0gcnRlX21lbV92aXJ0MmlvdmEoc2Vzcy0+Y2lwaGVy Lm5vbmNlKTsNCisJCXNlc3MtPmNpcGhlci5rZXlfcGh5cyA9IHJ0ZV9tZW1fdmlydDJpb3ZhKHNl c3MtPmNpcGhlci5rZXlfY2NwKTsNCisJfSBlbHNlIHsNCisJCXNlc3MtPmNpcGhlci5ub25jZV9w aHlzID0gcnRlX21lbV92aXJ0MnBoeShzZXNzLT5jaXBoZXIubm9uY2UpOw0KKwkJc2Vzcy0+Y2lw aGVyLmtleV9waHlzID0gcnRlX21lbV92aXJ0MnBoeShzZXNzLT5jaXBoZXIua2V5X2NjcCk7DQor CX0NCiAJcmV0dXJuIDA7DQogfQ0KIA0KQEAgLTE1NzEsMTUgKzE1ODksMjUgQEAgY2NwX3BlcmZv cm1faG1hYyhzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsDQogCQkJCQkgY2NwX2NyeXB0b2Rldl9k cml2ZXJfaWQpOw0KIAlhZGRyID0gc2Vzc2lvbi0+YXV0aC5wcmVfY29tcHV0ZTsNCiANCi0Jc3Jj X2FkZHIgPSBydGVfcGt0bWJ1Zl9tdG9waHlzX29mZnNldChvcC0+c3ltLT5tX3NyYywNCi0JCQkJ CSAgICAgIG9wLT5zeW0tPmF1dGguZGF0YS5vZmZzZXQpOw0KIAlhcHBlbmRfcHRyID0gKHZvaWQg KilydGVfcGt0bWJ1Zl9hcHBlbmQob3AtPnN5bS0+bV9zcmMsDQogCQkJCQkJc2Vzc2lvbi0+YXV0 aC5jdHhfbGVuKTsNCi0JZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJwaHko YXBwZW5kX3B0cik7DQorCWlmIChpb21tdV9tb2RlID09IDIpIHsNCisJCXNyY19hZGRyID0gKHBo eXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKA0KKwkJCQlydGVfcGt0bWJ1Zl9tdG9kX29mZnNl dChvcC0+c3ltLT5tX3NyYywNCisJCQkJCXBoeXNfYWRkcl90KiwNCisJCQkJCW9wLT5zeW0tPmF1 dGguZGF0YS5vZmZzZXQpKTsNCisJCWRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3Zp cnQyaW92YShhcHBlbmRfcHRyKTsNCisJCXBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVf bWVtX3ZpcnQyaW92YSgodm9pZCAqKWFkZHIpOw0KKwl9IGVsc2Ugew0KKwkJc3JjX2FkZHIgPSBy dGVfcGt0bWJ1Zl9tdG9waHlzX29mZnNldChvcC0+c3ltLT5tX3NyYywNCisJCQkJCW9wLT5zeW0t PmF1dGguZGF0YS5vZmZzZXQpOw0KKwkJZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1f dmlydDJwaHkoYXBwZW5kX3B0cik7DQorCQlwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRyX3QpcnRl X21lbV92aXJ0MnBoeSgodm9pZCAqKWFkZHIpOw0KKwl9DQogCWRlc3RfYWRkcl90ID0gZGVzdF9h ZGRyOw0KIA0KIAkvKiogTG9hZCBQSGFzaDEgdG8gTFNCKi8NCi0JcHN0LnNyY19hZGRyID0gKHBo eXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoKHZvaWQgKilhZGRyKTsNCisNCiAJcHN0LmRlc3Rf YWRkciA9IChwaHlzX2FkZHJfdCkoY21kX3EtPnNiX3NoYSAqIENDUF9TQl9CWVRFUyk7DQogCXBz dC5sZW4gPSBzZXNzaW9uLT5hdXRoLmN0eF9sZW47DQogCXBzdC5kaXIgPSAxOw0KQEAgLTE2NTks NyArMTY4NywxMSBAQCBjY3BfcGVyZm9ybV9obWFjKHN0cnVjdCBydGVfY3J5cHRvX29wICpvcCwN CiANCiAJLyoqIExvYWQgUEhhc2gyIHRvIExTQiovDQogCWFkZHIgKz0gc2Vzc2lvbi0+YXV0aC5j dHhfbGVuOw0KLQlwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeSgo dm9pZCAqKWFkZHIpOw0KKwlpZiAoaW9tbXVfbW9kZSA9PSAyKQ0KKwkJcHN0LnNyY19hZGRyID0g KHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKCh2b2lkICopYWRkcik7DQorCWVsc2UNCisJ CXBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopYWRk cik7DQorDQogCXBzdC5kZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpKGNtZF9xLT5zYl9zaGEgKiBD Q1BfU0JfQllURVMpOw0KIAlwc3QubGVuID0gc2Vzc2lvbi0+YXV0aC5jdHhfbGVuOw0KIAlwc3Qu ZGlyID0gMTsNCkBAIC0xNzQzLDE3ICsxNzc1LDIzIEBAIGNjcF9wZXJmb3JtX3NoYShzdHJ1Y3Qg cnRlX2NyeXB0b19vcCAqb3AsDQogCQkJCQkgb3AtPnN5bS0+c2Vzc2lvbiwNCiAJCQkJCWNjcF9j cnlwdG9kZXZfZHJpdmVyX2lkKTsNCiANCi0Jc3JjX2FkZHIgPSBydGVfcGt0bWJ1Zl9tdG9waHlz X29mZnNldChvcC0+c3ltLT5tX3NyYywNCi0JCQkJCSAgICAgIG9wLT5zeW0tPmF1dGguZGF0YS5v ZmZzZXQpOw0KLQ0KIAlhcHBlbmRfcHRyID0gKHZvaWQgKilydGVfcGt0bWJ1Zl9hcHBlbmQob3At PnN5bS0+bV9zcmMsDQogCQkJCQkJc2Vzc2lvbi0+YXV0aC5jdHhfbGVuKTsNCi0JZGVzdF9hZGRy ID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoYXBwZW5kX3B0cik7DQotDQogCS8qKiBQ YXNzdGhydSBzaGEgY29udGV4dCovDQorCWlmIChpb21tdV9tb2RlID09IDIpIHsNCisJCXNyY19h ZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKA0KKwkJCQlydGVfcGt0bWJ1Zl9t dG9kX29mZnNldChvcC0+c3ltLT5tX3NyYywgdm9pZCosDQorCQkJCW9wLT5zeW0tPmF1dGguZGF0 YS5vZmZzZXQpKTsNCisJCWRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQyaW92 YShhcHBlbmRfcHRyKTsNCisJCXBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClzaGFfY3R4Ow0K Kwl9IGVsc2Ugew0KKwkJc3JjX2FkZHIgPSBydGVfcGt0bWJ1Zl9tdG9waHlzX29mZnNldChvcC0+ c3ltLT5tX3NyYywNCisJCQkJCW9wLT5zeW0tPmF1dGguZGF0YS5vZmZzZXQpOw0KKwkJZGVzdF9h ZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoYXBwZW5kX3B0cik7DQorCQlwc3Qu c3JjX2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeSgodm9pZCAqKQ0KKwkJCQkJ CXNlc3Npb24tPmF1dGguY3R4KTsNCisJfQ0KIA0KLQlwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRy X3QpcnRlX21lbV92aXJ0MnBoeSgodm9pZCAqKQ0KLQkJCQkJCSAgICAgc2Vzc2lvbi0+YXV0aC5j dHgpOw0KIAlwc3QuZGVzdF9hZGRyID0gKHBoeXNfYWRkcl90KShjbWRfcS0+c2Jfc2hhICogQ0NQ X1NCX0JZVEVTKTsNCiAJcHN0LmxlbiA9IHNlc3Npb24tPmF1dGguY3R4X2xlbjsNCiAJcHN0LmRp ciA9IDE7DQpAQCAtMTgzMiwxOCArMTg3MCwzMCBAQCBjY3BfcGVyZm9ybV9zaGEzX2htYWMoc3Ry dWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLA0KIAkJCQkJIG9wLT5zeW0tPnNlc3Npb24sDQogCQkJCQlj Y3BfY3J5cHRvZGV2X2RyaXZlcl9pZCk7DQogDQotCXNyY19hZGRyID0gcnRlX3BrdG1idWZfbXRv cGh5c19vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQotCQkJCQkgICAgICBvcC0+c3ltLT5hdXRoLmRh dGEub2Zmc2V0KTsNCiAJYXBwZW5kX3B0ciA9ICh1aW50OF90ICopcnRlX3BrdG1idWZfYXBwZW5k KG9wLT5zeW0tPm1fc3JjLA0KIAkJCQkJCXNlc3Npb24tPmF1dGguY3R4X2xlbik7DQogCWlmICgh YXBwZW5kX3B0cikgew0KIAkJQ0NQX0xPR19FUlIoIkNDUCBNQlVGIGFwcGVuZCBmYWlsZWRcbiIp Ow0KIAkJcmV0dXJuIC0xOw0KIAl9DQotCWRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVt X3ZpcnQycGh5KCh2b2lkICopYXBwZW5kX3B0cik7DQorCWlmIChpb21tdV9tb2RlID09IDIpIHsN CisJCXNyY19hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKA0KKwkJCQlydGVf cGt0bWJ1Zl9tdG9kX29mZnNldChvcC0+c3ltLT5tX3NyYywNCisJCQkJCXBoeXNfYWRkcl90KiwN CisJCQkJCW9wLT5zeW0tPmF1dGguZGF0YS5vZmZzZXQpKTsNCisJCWRlc3RfYWRkciA9IChwaHlz X2FkZHJfdClydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAqKWFwcGVuZF9wdHIpOw0KKwkJY3R4X3Bh ZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKCh2b2lkDQorCQkJCQkJKilzZXNz aW9uLT5hdXRoLnByZV9jb21wdXRlKTsNCisJfSBlbHNlIHsNCisJCXNyY19hZGRyID0gcnRlX3Br dG1idWZfbXRvcGh5c19vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQorCQkJCQkJb3AtPnN5bS0+YXV0 aC5kYXRhLm9mZnNldCk7DQorCQlkZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0 MnBoeSgodm9pZCAqKWFwcGVuZF9wdHIpOw0KKwkJY3R4X3BhZGRyID0gKHBoeXNfYWRkcl90KXJ0 ZV9tZW1fdmlydDJwaHkoKHZvaWQNCisJCQkJCQkqKXNlc3Npb24tPmF1dGgucHJlX2NvbXB1dGUp Ow0KKwl9DQorDQogCWRlc3RfYWRkcl90ID0gZGVzdF9hZGRyICsgKHNlc3Npb24tPmF1dGguY3R4 X2xlbiAvIDIpOw0KLQljdHhfcGFkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeSgo dm9pZA0KLQkJCQkJCSAgICopc2Vzc2lvbi0+YXV0aC5wcmVfY29tcHV0ZSk7DQorDQogCWRlc2Mg PSAmY21kX3EtPnFiYXNlX2Rlc2NbY21kX3EtPnFpZHhdOw0KIAltZW1zZXQoZGVzYywgMCwgUV9E RVNDX1NJWkUpOw0KIA0KQEAgLTE5NjQsNyArMjAxNCw3IEBAIGNjcF9wZXJmb3JtX3NoYTMoc3Ry dWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLA0KIAlzdHJ1Y3QgY2NwX3Nlc3Npb24gKnNlc3Npb247DQog CXVuaW9uIGNjcF9mdW5jdGlvbiBmdW5jdGlvbjsNCiAJc3RydWN0IGNjcF9kZXNjICpkZXNjOw0K LQl1aW50OF90ICpjdHhfYWRkciwgKmFwcGVuZF9wdHI7DQorCXVpbnQ4X3QgKmN0eF9hZGRyID0g TlVMTCwgKmFwcGVuZF9wdHIgPSBOVUxMOw0KIAl1aW50MzJfdCB0YWlsOw0KIAlwaHlzX2FkZHJf dCBzcmNfYWRkciwgZGVzdF9hZGRyLCBjdHhfcGFkZHI7DQogDQpAQCAtMTk3MiwxOCArMjAyMiwy NyBAQCBjY3BfcGVyZm9ybV9zaGEzKHN0cnVjdCBydGVfY3J5cHRvX29wICpvcCwNCiAJCQkJCSBv cC0+c3ltLT5zZXNzaW9uLA0KIAkJCQkJY2NwX2NyeXB0b2Rldl9kcml2ZXJfaWQpOw0KIA0KLQlz cmNfYWRkciA9IHJ0ZV9wa3RtYnVmX210b3BoeXNfb2Zmc2V0KG9wLT5zeW0tPm1fc3JjLA0KLQkJ CQkJICAgICAgb3AtPnN5bS0+YXV0aC5kYXRhLm9mZnNldCk7DQogCWFwcGVuZF9wdHIgPSAodWlu dDhfdCAqKXJ0ZV9wa3RtYnVmX2FwcGVuZChvcC0+c3ltLT5tX3NyYywNCiAJCQkJCQlzZXNzaW9u LT5hdXRoLmN0eF9sZW4pOw0KIAlpZiAoIWFwcGVuZF9wdHIpIHsNCiAJCUNDUF9MT0dfRVJSKCJD Q1AgTUJVRiBhcHBlbmQgZmFpbGVkXG4iKTsNCiAJCXJldHVybiAtMTsNCiAJfQ0KLQlkZXN0X2Fk ZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBoeSgodm9pZCAqKWFwcGVuZF9wdHIpOw0K LQljdHhfYWRkciA9IHNlc3Npb24tPmF1dGguc2hhM19jdHg7DQotCWN0eF9wYWRkciA9IChwaHlz X2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopY3R4X2FkZHIpOw0KKwlpZiAoaW9tbXVf bW9kZSA9PSAyKSB7DQorCQlzcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQyaW92 YSgNCisJCQkJcnRlX3BrdG1idWZfbXRvZF9vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQorCQkJCQlw aHlzX2FkZHJfdCosDQorCQkJCQlvcC0+c3ltLT5hdXRoLmRhdGEub2Zmc2V0KSk7DQorCQlkZXN0 X2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoKHZvaWQgKilhcHBlbmRfcHRy KTsNCisJCWN0eF9wYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAq KWN0eF9hZGRyKTsNCisJfSBlbHNlIHsNCisJCXNyY19hZGRyID0gcnRlX3BrdG1idWZfbXRvcGh5 c19vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQorCQkJCQlvcC0+c3ltLT5hdXRoLmRhdGEub2Zmc2V0 KTsNCisJCWRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICop YXBwZW5kX3B0cik7DQorCQljdHhfcGFkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MnBo eSgodm9pZCAqKWN0eF9hZGRyKTsNCisJfQ0KIA0KKwljdHhfYWRkciA9IHNlc3Npb24tPmF1dGgu c2hhM19jdHg7DQogCWRlc2MgPSAmY21kX3EtPnFiYXNlX2Rlc2NbY21kX3EtPnFpZHhdOw0KIAlt ZW1zZXQoZGVzYywgMCwgUV9ERVNDX1NJWkUpOw0KIA0KQEAgLTIwMzIsMjAgKzIwOTEsMjkgQEAg Y2NwX3BlcmZvcm1fYWVzX2NtYWMoc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLA0KIAlzdHJ1Y3Qg Y2NwX3Bhc3N0aHJ1IHBzdDsNCiAJc3RydWN0IGNjcF9kZXNjICpkZXNjOw0KIAl1aW50MzJfdCB0 YWlsOw0KLQl1aW50OF90ICpzcmNfdGIsICphcHBlbmRfcHRyLCAqY3R4X2FkZHI7DQorCXVpbnQ4 X3QgKnNyY190YiwgKmFwcGVuZF9wdHIgPSBOVUxMLCAqY3R4X2FkZHI7DQogCXBoeXNfYWRkcl90 IHNyY19hZGRyLCBkZXN0X2FkZHIsIGtleV9hZGRyOw0KIAlpbnQgbGVuZ3RoLCBub25fYWxpZ25f bGVuOw0KIA0KIAlzZXNzaW9uID0gKHN0cnVjdCBjY3Bfc2Vzc2lvbiAqKWdldF9zeW1fc2Vzc2lv bl9wcml2YXRlX2RhdGEoDQogCQkJCQkgb3AtPnN5bS0+c2Vzc2lvbiwNCiAJCQkJCWNjcF9jcnlw dG9kZXZfZHJpdmVyX2lkKTsNCi0Ja2V5X2FkZHIgPSBydGVfbWVtX3ZpcnQycGh5KHNlc3Npb24t PmF1dGgua2V5X2NjcCk7DQorCWlmIChpb21tdV9tb2RlID09IDIpIHsNCisJCWtleV9hZGRyID0g cnRlX21lbV92aXJ0MmlvdmEoc2Vzc2lvbi0+YXV0aC5rZXlfY2NwKTsNCisJCXNyY19hZGRyID0g KHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKA0KKwkJCQlydGVfcGt0bWJ1Zl9tdG9kX29m ZnNldChvcC0+c3ltLT5tX3NyYywNCisJCQkJCXBoeXNfYWRkcl90KiwNCisJCQkJCW9wLT5zeW0t PmF1dGguZGF0YS5vZmZzZXQpKTsNCisJCWRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVt X3ZpcnQyaW92YSgodm9pZCAqKWFwcGVuZF9wdHIpOw0KKwl9IGVsc2Ugew0KKwkJa2V5X2FkZHIg PSBydGVfbWVtX3ZpcnQycGh5KHNlc3Npb24tPmF1dGgua2V5X2NjcCk7DQorCQlzcmNfYWRkciA9 IHJ0ZV9wa3RtYnVmX210b3BoeXNfb2Zmc2V0KG9wLT5zeW0tPm1fc3JjLA0KKwkJCQkJb3AtPnN5 bS0+YXV0aC5kYXRhLm9mZnNldCk7DQorCQlkZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21l bV92aXJ0MnBoeSgodm9pZCAqKWFwcGVuZF9wdHIpOw0KKwl9DQogDQotCXNyY19hZGRyID0gcnRl X3BrdG1idWZfbXRvcGh5c19vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQotCQkJCQkgICAgICBvcC0+ c3ltLT5hdXRoLmRhdGEub2Zmc2V0KTsNCiAJYXBwZW5kX3B0ciA9ICh1aW50OF90ICopcnRlX3Br dG1idWZfYXBwZW5kKG9wLT5zeW0tPm1fc3JjLA0KIAkJCQkJCXNlc3Npb24tPmF1dGguY3R4X2xl bik7DQotCWRlc3RfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICop YXBwZW5kX3B0cik7DQogDQogCWZ1bmN0aW9uLnJhdyA9IDA7DQogCUNDUF9BRVNfRU5DUllQVCgm ZnVuY3Rpb24pID0gQ0NQX0NJUEhFUl9ESVJfRU5DUllQVDsNCkBAIC0yMDU2LDcgKzIxMjQsMTIg QEAgY2NwX3BlcmZvcm1fYWVzX2NtYWMoc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLA0KIA0KIAkJ Y3R4X2FkZHIgPSBzZXNzaW9uLT5hdXRoLnByZV9jb21wdXRlOw0KIAkJbWVtc2V0KGN0eF9hZGRy LCAwLCBBRVNfQkxPQ0tfU0laRSk7DQotCQlwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRyX3QpcnRl X21lbV92aXJ0MnBoeSgodm9pZCAqKWN0eF9hZGRyKTsNCisJCWlmIChpb21tdV9tb2RlID09IDIp DQorCQkJcHN0LnNyY19hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKA0KKwkJ CQkJKHZvaWQgKiljdHhfYWRkcik7DQorCQllbHNlDQorCQkJcHN0LnNyY19hZGRyID0gKHBoeXNf YWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoDQorCQkJCQkodm9pZCAqKWN0eF9hZGRyKTsNCiAJCXBz dC5kZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpKGNtZF9xLT5zYl9pdiAqIENDUF9TQl9CWVRFUyk7 DQogCQlwc3QubGVuID0gQ0NQX1NCX0JZVEVTOw0KIAkJcHN0LmRpciA9IDE7DQpAQCAtMjA5NCw3 ICsyMTY3LDEyIEBAIGNjcF9wZXJmb3JtX2Flc19jbWFjKHN0cnVjdCBydGVfY3J5cHRvX29wICpv cCwNCiAJfSBlbHNlIHsNCiAJCWN0eF9hZGRyID0gc2Vzc2lvbi0+YXV0aC5wcmVfY29tcHV0ZSAr IENDUF9TQl9CWVRFUzsNCiAJCW1lbXNldChjdHhfYWRkciwgMCwgQUVTX0JMT0NLX1NJWkUpOw0K LQkJcHN0LnNyY19hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoKHZvaWQgKilj dHhfYWRkcik7DQorCQlpZiAoaW9tbXVfbW9kZSA9PSAyKQ0KKwkJCXBzdC5zcmNfYWRkciA9IChw aHlzX2FkZHJfdClydGVfbWVtX3ZpcnQyaW92YSgNCisJCQkJCSh2b2lkICopY3R4X2FkZHIpOw0K KwkJZWxzZQ0KKwkJCXBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5 KA0KKwkJCQkJKHZvaWQgKiljdHhfYWRkcik7DQogCQlwc3QuZGVzdF9hZGRyID0gKHBoeXNfYWRk cl90KShjbWRfcS0+c2JfaXYgKiBDQ1BfU0JfQllURVMpOw0KIAkJcHN0LmxlbiA9IENDUF9TQl9C WVRFUzsNCiAJCXBzdC5kaXIgPSAxOw0KQEAgLTIyMjEsMTEgKzIyOTksMjQgQEAgY2NwX3BlcmZv cm1fYWVzKHN0cnVjdCBydGVfY3J5cHRvX29wICpvcCwNCiANCiAJZGVzYyA9ICZjbWRfcS0+cWJh c2VfZGVzY1tjbWRfcS0+cWlkeF07DQogDQotCXNyY19hZGRyID0gcnRlX3BrdG1idWZfbXRvcGh5 c19vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQotCQkJCQkgICAgICBvcC0+c3ltLT5jaXBoZXIuZGF0 YS5vZmZzZXQpOw0KLQlpZiAobGlrZWx5KG9wLT5zeW0tPm1fZHN0ICE9IE5VTEwpKQ0KLQkJZGVz dF9hZGRyID0gcnRlX3BrdG1idWZfbXRvcGh5c19vZmZzZXQob3AtPnN5bS0+bV9kc3QsDQotCQkJ CQkJb3AtPnN5bS0+Y2lwaGVyLmRhdGEub2Zmc2V0KTsNCisJaWYgKGlvbW11X21vZGUgPT0gMikN CisJCXNyY19hZGRyID0gKHBoeXNfYWRkcl90KXJ0ZV9tZW1fdmlydDJpb3ZhKA0KKwkJCQlydGVf cGt0bWJ1Zl9tdG9kX29mZnNldChvcC0+c3ltLT5tX3NyYywgdm9pZCAqLA0KKwkJCQlvcC0+c3lt LT5jaXBoZXIuZGF0YS5vZmZzZXQpKTsNCisJZWxzZQ0KKwkJc3JjX2FkZHIgPSBydGVfcGt0bWJ1 Zl9tdG9waHlzX29mZnNldChvcC0+c3ltLT5tX3NyYywNCisJCQkJb3AtPnN5bS0+Y2lwaGVyLmRh dGEub2Zmc2V0KTsNCisJaWYgKGxpa2VseShvcC0+c3ltLT5tX2RzdCAhPSBOVUxMKSkgew0KKwkJ aWYgKGlvbW11X21vZGUgPT0gMikNCisJCQlkZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21l bV92aXJ0MmlvdmEoDQorCQkJCQlydGVfcGt0bWJ1Zl9tdG9kX29mZnNldCgNCisJCQkJCQlvcC0+ c3ltLT5tX2RzdCwgdm9pZCAqLA0KKwkJCQkJCW9wLT5zeW0tPmNpcGhlci5kYXRhLm9mZnNldCkp Ow0KKwkJZWxzZQ0KKwkJCWRlc3RfYWRkciA9IHJ0ZV9wa3RtYnVmX210b3BoeXNfb2Zmc2V0KA0K KwkJCQkJb3AtPnN5bS0+bV9kc3QsDQorCQkJCQlvcC0+c3ltLT5jaXBoZXIuZGF0YS5vZmZzZXQp Ow0KKwl9DQogCWVsc2UNCiAJCWRlc3RfYWRkciA9IHNyY19hZGRyOw0KIAlrZXlfYWRkciA9IHNl c3Npb24tPmNpcGhlci5rZXlfcGh5czsNCkBAIC0yMjg5LDcgKzIzODAsMTMgQEAgY2NwX3BlcmZv cm1fM2RlcyhzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsDQogCQlydGVfbWVtY3B5KGxzYl9idWYg KyAoQ0NQX1NCX0JZVEVTIC0gc2Vzc2lvbi0+aXYubGVuZ3RoKSwNCiAJCQkgICBpdiwgc2Vzc2lv bi0+aXYubGVuZ3RoKTsNCiANCi0JCXBzdC5zcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVt X3ZpcnQycGh5KCh2b2lkICopIGxzYl9idWYpOw0KKwkJaWYgKGlvbW11X21vZGUgPT0gMikNCisJ CQlwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoDQorCQkJCQko dm9pZCAqKSBsc2JfYnVmKTsNCisJCWVsc2UNCisJCQlwc3Quc3JjX2FkZHIgPSAocGh5c19hZGRy X3QpcnRlX21lbV92aXJ0MnBoeSgNCisJCQkJCSh2b2lkICopIGxzYl9idWYpOw0KKw0KIAkJcHN0 LmRlc3RfYWRkciA9IChwaHlzX2FkZHJfdCkoY21kX3EtPnNiX2l2ICogQ0NQX1NCX0JZVEVTKTsN CiAJCXBzdC5sZW4gPSBDQ1BfU0JfQllURVM7DQogCQlwc3QuZGlyID0gMTsNCkBAIC0yMzAzLDE2 ICsyNDAwLDMwIEBAIGNjcF9wZXJmb3JtXzNkZXMoc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLA0K IAkJcmV0dXJuIC1FTk9UU1VQOw0KIAl9DQogDQotCXNyY19hZGRyID0gcnRlX3BrdG1idWZfbXRv cGh5c19vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQotCQkJCQkgICAgICBvcC0+c3ltLT5jaXBoZXIu ZGF0YS5vZmZzZXQpOw0KLQlpZiAodW5saWtlbHkob3AtPnN5bS0+bV9kc3QgIT0gTlVMTCkpDQot CQlkZXN0X2FkZHIgPQ0KLQkJCXJ0ZV9wa3RtYnVmX210b3BoeXNfb2Zmc2V0KG9wLT5zeW0tPm1f ZHN0LA0KLQkJCQkJCSAgIG9wLT5zeW0tPmNpcGhlci5kYXRhLm9mZnNldCk7DQorCWlmIChpb21t dV9tb2RlID09IDIpDQorCQlzcmNfYWRkciA9IChwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQyaW92 YSgNCisJCQkJcnRlX3BrdG1idWZfbXRvZF9vZmZzZXQob3AtPnN5bS0+bV9zcmMsIHZvaWQgKiwN CisJCQkJb3AtPnN5bS0+Y2lwaGVyLmRhdGEub2Zmc2V0KSk7DQorCWVsc2UNCisJCXNyY19hZGRy ID0gcnRlX3BrdG1idWZfbXRvcGh5c19vZmZzZXQob3AtPnN5bS0+bV9zcmMsDQorCQkJCW9wLT5z eW0tPmNpcGhlci5kYXRhLm9mZnNldCk7DQorCWlmICh1bmxpa2VseShvcC0+c3ltLT5tX2RzdCAh PSBOVUxMKSkgew0KKwkJaWYgKGlvbW11X21vZGUgPT0gMikNCisJCQlkZXN0X2FkZHIgPSAocGh5 c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoDQorCQkJCQlydGVfcGt0bWJ1Zl9tdG9kX29mZnNl dCgNCisJCQkJCQlvcC0+c3ltLT5tX2RzdCwgdm9pZCAqLA0KKwkJCQkJCW9wLT5zeW0tPmNpcGhl ci5kYXRhLm9mZnNldCkpOw0KKwkJZWxzZQ0KKwkJCWRlc3RfYWRkciA9IHJ0ZV9wa3RtYnVmX210 b3BoeXNfb2Zmc2V0KG9wLT5zeW0tPm1fZHN0LA0KKwkJCQkJb3AtPnN5bS0+Y2lwaGVyLmRhdGEu b2Zmc2V0KTsNCisJfQ0KIAllbHNlDQogCQlkZXN0X2FkZHIgPSBzcmNfYWRkcjsNCiANCi0Ja2V5 X2FkZHIgPSBydGVfbWVtX3ZpcnQycGh5KHNlc3Npb24tPmNpcGhlci5rZXlfY2NwKTsNCisJaWYg KGlvbW11X21vZGUgPT0gMikNCisJCWtleV9hZGRyID0gcnRlX21lbV92aXJ0MmlvdmEoc2Vzc2lv bi0+Y2lwaGVyLmtleV9jY3ApOw0KKwllbHNlDQorCQlrZXlfYWRkciA9IHJ0ZV9tZW1fdmlydDJw aHkoc2Vzc2lvbi0+Y2lwaGVyLmtleV9jY3ApOw0KIA0KIAlkZXNjID0gJmNtZF9xLT5xYmFzZV9k ZXNjW2NtZF9xLT5xaWR4XTsNCiANCkBAIC0yMzg1LDExICsyNDk2LDIzIEBAIGNjcF9wZXJmb3Jt X2Flc19nY20oc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLCBzdHJ1Y3QgY2NwX3F1ZXVlICpjbWRf cSkNCiAJaXYgPSBydGVfY3J5cHRvX29wX2N0b2Rfb2Zmc2V0KG9wLCB1aW50OF90ICosIHNlc3Np b24tPml2Lm9mZnNldCk7DQogCWtleV9hZGRyID0gc2Vzc2lvbi0+Y2lwaGVyLmtleV9waHlzOw0K IA0KLQlzcmNfYWRkciA9IHJ0ZV9wa3RtYnVmX210b3BoeXNfb2Zmc2V0KG9wLT5zeW0tPm1fc3Jj LA0KLQkJCQkJICAgICAgb3AtPnN5bS0+YWVhZC5kYXRhLm9mZnNldCk7DQotCWlmICh1bmxpa2Vs eShvcC0+c3ltLT5tX2RzdCAhPSBOVUxMKSkNCi0JCWRlc3RfYWRkciA9IHJ0ZV9wa3RtYnVmX210 b3BoeXNfb2Zmc2V0KG9wLT5zeW0tPm1fZHN0LA0KLQkJCQkJCW9wLT5zeW0tPmFlYWQuZGF0YS5v ZmZzZXQpOw0KKwlpZiAoaW9tbXVfbW9kZSA9PSAyKQ0KKwkJc3JjX2FkZHIgPSAocGh5c19hZGRy X3QpcnRlX21lbV92aXJ0MmlvdmEoDQorCQkJCXJ0ZV9wa3RtYnVmX210b2Rfb2Zmc2V0KG9wLT5z eW0tPm1fc3JjLCB2b2lkICosDQorCQkJCW9wLT5zeW0tPmFlYWQuZGF0YS5vZmZzZXQpKTsNCisJ ZWxzZQ0KKwkJc3JjX2FkZHIgPSBydGVfcGt0bWJ1Zl9tdG9waHlzX29mZnNldChvcC0+c3ltLT5t X3NyYywNCisJCQkJb3AtPnN5bS0+YWVhZC5kYXRhLm9mZnNldCk7DQorCWlmICh1bmxpa2VseShv cC0+c3ltLT5tX2RzdCAhPSBOVUxMKSkgew0KKwkJaWYgKGlvbW11X21vZGUgPT0gMikNCisJCQlk ZXN0X2FkZHIgPSAocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoDQorCQkJCQlydGVfcGt0 bWJ1Zl9tdG9kX29mZnNldCgNCisJCQkJCQlvcC0+c3ltLT5tX2RzdCwgdm9pZCAqLA0KKwkJCQkJ CW9wLT5zeW0tPmFlYWQuZGF0YS5vZmZzZXQpKTsNCisJCWVsc2UNCisJCQlkZXN0X2FkZHIgPSBy dGVfcGt0bWJ1Zl9tdG9waHlzX29mZnNldChvcC0+c3ltLT5tX2RzdCwNCisJCQkJCW9wLT5zeW0t PmFlYWQuZGF0YS5vZmZzZXQpOw0KKwl9DQogCWVsc2UNCiAJCWRlc3RfYWRkciA9IHNyY19hZGRy Ow0KIAlydGVfcGt0bWJ1Zl9hcHBlbmQob3AtPnN5bS0+bV9zcmMsIHNlc3Npb24tPmF1dGguY3R4 X2xlbik7DQpAQCAtMjcwNCw4ICsyODI3LDE0IEBAIHByb2Nlc3Nfb3BzX3RvX2VucXVldWUoc3Ry dWN0IGNjcF9xcCAqcXAsDQogCWJfaW5mby0+bHNiX2J1Zl9pZHggPSAwOw0KIAliX2luZm8tPmRl c2NjbnQgPSAwOw0KIAliX2luZm8tPmNtZF9xID0gY21kX3E7DQotCWJfaW5mby0+bHNiX2J1Zl9w aHlzID0NCi0JCShwaHlzX2FkZHJfdClydGVfbWVtX3ZpcnQycGh5KCh2b2lkICopYl9pbmZvLT5s c2JfYnVmKTsNCisNCisJaWYgKGlvbW11X21vZGUgPT0gMikNCisJCWJfaW5mby0+bHNiX2J1Zl9w aHlzID0NCisJCQkocGh5c19hZGRyX3QpcnRlX21lbV92aXJ0MmlvdmEoKHZvaWQgKiliX2luZm8t PmxzYl9idWYpOw0KKwllbHNlDQorCQliX2luZm8tPmxzYl9idWZfcGh5cyA9DQorCQkJKHBoeXNf YWRkcl90KXJ0ZV9tZW1fdmlydDJwaHkoKHZvaWQgKiliX2luZm8tPmxzYl9idWYpOw0KKw0KIAly dGVfYXRvbWljNjRfc3ViKCZiX2luZm8tPmNtZF9xLT5mcmVlX3Nsb3RzLCBzbG90c19yZXEpOw0K IA0KIAliX2luZm8tPmhlYWRfb2Zmc2V0ID0gKHVpbnQzMl90KShjbWRfcS0+cWJhc2VfcGh5c19h ZGRyICsgY21kX3EtPnFpZHggKg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3Bf ZGV2LmMgYi9kcml2ZXJzL2NyeXB0by9jY3AvY2NwX2Rldi5jDQppbmRleCA4MGZlNmE0NTMuLjkw YjE0ZmE2NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfZGV2LmMNCisrKyBi L2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfZGV2LmMNCkBAIC0yMyw2ICsyMyw4IEBADQogI2luY2x1 ZGUgImNjcF9wY2kuaCINCiAjaW5jbHVkZSAiY2NwX3BtZF9wcml2YXRlLmgiDQogDQoraW50IGlv bW11X21vZGU7DQorDQogc3RydWN0IGNjcF9saXN0IGNjcF9saXN0ID0gVEFJTFFfSEVBRF9JTklU SUFMSVpFUihjY3BfbGlzdCk7DQogc3RhdGljIGludCBjY3BfZGV2X2lkOw0KIA0KQEAgLTUxMiw3 ICs1MTQsNyBAQCBjY3BfYWRkX2RldmljZShzdHJ1Y3QgY2NwX2RldmljZSAqZGV2LCBpbnQgdHlw ZSkNCiANCiAJCUNDUF9XUklURV9SRUcodmFkZHIsIENNRF9DTEtfR0FURV9DVExfT0ZGU0VULCAw eDAwMTA4ODIzKTsNCiAJfQ0KLQlDQ1BfV1JJVEVfUkVHKHZhZGRyLCBDTURfUkVRSURfQ09ORklH X09GRlNFVCwgMHgwMDAwMTI0OSk7DQorCUNDUF9XUklURV9SRUcodmFkZHIsIENNRF9SRVFJRF9D T05GSUdfT0ZGU0VULCAweDApOw0KIA0KIAkvKiBDb3B5IHRoZSBwcml2YXRlIExTQiBtYXNrIHRv IHRoZSBwdWJsaWMgcmVnaXN0ZXJzICovDQogCXN0YXR1c19sbyA9IENDUF9SRUFEX1JFRyh2YWRk ciwgTFNCX1BSSVZBVEVfTUFTS19MT19PRkZTRVQpOw0KQEAgLTY1Nyw5ICs2NTksNyBAQCBjY3Bf cHJvYmVfZGV2aWNlKGNvbnN0IGNoYXIgKmRpcm5hbWUsIHVpbnQxNl90IGRvbWFpbiwNCiAJc3Ry dWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2k7DQogCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOw0KIAl1 bnNpZ25lZCBsb25nIHRtcDsNCi0JaW50IHVpb19mZCA9IC0xLCBpLCB1aW9fbnVtOw0KLQljaGFy IHVpb19kZXZuYW1lW1BBVEhfTUFYXTsNCi0Jdm9pZCAqbWFwX2FkZHI7DQorCWludCB1aW9fZmQg PSAtMTsNCiANCiAJY2NwX2RldiA9IHJ0ZV96bWFsbG9jKCJjY3BfZGV2aWNlIiwgc2l6ZW9mKCpj Y3BfZGV2KSwNCiAJCQkgICAgICBSVEVfQ0FDSEVfTElORV9TSVpFKTsNCkBAIC03MTAsNDYgKzcx MCwxNCBAQCBjY3BfcHJvYmVfZGV2aWNlKGNvbnN0IGNoYXIgKmRpcm5hbWUsIHVpbnQxNl90IGRv bWFpbiwNCiAJc25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIlcy9yZXNvdXJj ZSIsIGRpcm5hbWUpOw0KIAlpZiAoY2NwX3BjaV9wYXJzZV9zeXNmc19yZXNvdXJjZShmaWxlbmFt ZSwgcGNpKSA8IDApDQogCQlnb3RvIGZhaWw7DQorCWlmIChpb21tdV9tb2RlID09IDIpDQorCQlw Y2ktPmtkcnYgPSBSVEVfS0RSVl9WRklPOw0KKwllbHNlIGlmIChpb21tdV9tb2RlID09IDApDQor CQlwY2ktPmtkcnYgPSBSVEVfS0RSVl9JR0JfVUlPOw0KKwllbHNlIGlmIChpb21tdV9tb2RlID09 IDEpDQorCQlwY2ktPmtkcnYgPSBSVEVfS0RSVl9VSU9fR0VORVJJQzsNCiANCi0JdWlvX251bSA9 IGNjcF9maW5kX3Vpb19kZXZuYW1lKGRpcm5hbWUpOw0KLQlpZiAodWlvX251bSA8IDApIHsNCi0J CS8qDQotCQkgKiBJdCBtYXkgdGFrZSB0aW1lIGZvciB1aW8gZGV2aWNlIHRvIGFwcGVhciwNCi0J CSAqIHdhaXQgIGhlcmUgYW5kIHRyeSBhZ2Fpbg0KLQkJICovDQotCQl1c2xlZXAoMTAwMDAwKTsN Ci0JCXVpb19udW0gPSBjY3BfZmluZF91aW9fZGV2bmFtZShkaXJuYW1lKTsNCi0JCWlmICh1aW9f bnVtIDwgMCkNCi0JCQlnb3RvIGZhaWw7DQotCX0NCi0Jc25wcmludGYodWlvX2Rldm5hbWUsIHNp emVvZih1aW9fZGV2bmFtZSksICIvZGV2L3VpbyV1IiwgdWlvX251bSk7DQotDQotCXVpb19mZCA9 IG9wZW4odWlvX2Rldm5hbWUsIE9fUkRXUiB8IE9fTk9OQkxPQ0spOw0KLQlpZiAodWlvX2ZkIDwg MCkNCi0JCWdvdG8gZmFpbDsNCi0JaWYgKGZsb2NrKHVpb19mZCwgTE9DS19FWCB8IExPQ0tfTkIp KQ0KLQkJZ290byBmYWlsOw0KLQ0KLQkvKiBNYXAgdGhlIFBDSSBtZW1vcnkgcmVzb3VyY2Ugb2Yg ZGV2aWNlICovDQotCWZvciAoaSA9IDA7IGkgPCBQQ0lfTUFYX1JFU09VUkNFOyBpKyspIHsNCi0N Ci0JCWNoYXIgZGV2bmFtZVtQQVRIX01BWF07DQotCQlpbnQgcmVzX2ZkOw0KLQ0KLQkJaWYgKHBj aS0+bWVtX3Jlc291cmNlW2ldLnBoeXNfYWRkciA9PSAwKQ0KLQkJCWNvbnRpbnVlOw0KLQkJc25w cmludGYoZGV2bmFtZSwgc2l6ZW9mKGRldm5hbWUpLCAiJXMvcmVzb3VyY2UlZCIsIGRpcm5hbWUs IGkpOw0KLQkJcmVzX2ZkID0gb3BlbihkZXZuYW1lLCBPX1JEV1IpOw0KLQkJaWYgKHJlc19mZCA8 IDApDQotCQkJZ290byBmYWlsOw0KLQkJbWFwX2FkZHIgPSBtbWFwKE5VTEwsIHBjaS0+bWVtX3Jl c291cmNlW2ldLmxlbiwNCi0JCQkJUFJPVF9SRUFEIHwgUFJPVF9XUklURSwNCi0JCQkJTUFQX1NI QVJFRCwgcmVzX2ZkLCAwKTsNCi0JCWlmIChtYXBfYWRkciA9PSBNQVBfRkFJTEVEKQ0KLQkJCWdv dG8gZmFpbDsNCi0NCi0JCXBjaS0+bWVtX3Jlc291cmNlW2ldLmFkZHIgPSBtYXBfYWRkcjsNCi0J fQ0KKwlydGVfcGNpX21hcF9kZXZpY2UocGNpKTsNCiANCiAJLyogZGV2aWNlIGlzIHZhbGlkLCBh ZGQgaW4gbGlzdCAqLw0KIAlpZiAoY2NwX2FkZF9kZXZpY2UoY2NwX2RldiwgY2NwX3R5cGUpKSB7 DQpAQCAtNzgzLDcgKzc1MSw3IEBAIGNjcF9wcm9iZV9kZXZpY2VzKGNvbnN0IHN0cnVjdCBydGVf cGNpX2lkICpjY3BfaWQpDQogCW1vZHVsZV9pZHggPSBjY3BfY2hlY2tfcGNpX3Vpb19tb2R1bGUo KTsNCiAJaWYgKG1vZHVsZV9pZHggPCAwKQ0KIAkJcmV0dXJuIC0xOw0KLQ0KKwlpb21tdV9tb2Rl ID0gbW9kdWxlX2lkeDsNCiAJVEFJTFFfSU5JVCgmY2NwX2xpc3QpOw0KIAlkaXIgPSBvcGVuZGly KFNZU0ZTX1BDSV9ERVZJQ0VTKTsNCiAJaWYgKGRpciA9PSBOVUxMKQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY3J5cHRvL2NjcC9jY3BfZGV2LmggYi9kcml2ZXJzL2NyeXB0by9jY3AvY2NwX2Rldi5o DQppbmRleCBkZTNlNGJjYzYuLmY0YWQ5ZWFmZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY3J5cHRv L2NjcC9jY3BfZGV2LmgNCisrKyBiL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfZGV2LmgNCkBAIC01 OSw3ICs1OSw3IEBADQogI2RlZmluZSBDTURfUV9SVU4JCQkweDENCiAjZGVmaW5lIENNRF9RX1NJ WkUJCQkweDFGDQogI2RlZmluZSBDTURfUV9TSElGVAkJCTMNCi0jZGVmaW5lIENPTU1BTkRTX1BF Ul9RVUVVRQkJMjA0OA0KKyNkZWZpbmUgQ09NTUFORFNfUEVSX1FVRVVFCQk4MTkyDQogDQogI2Rl ZmluZSBRVUVVRV9TSVpFX1ZBTCAgICAgICAgICAgICAgICAgICgoZmZzKENPTU1BTkRTX1BFUl9R VUVVRSkgLSAyKSAmIFwNCiAJCQkJCSBDTURfUV9TSVpFKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Y3J5cHRvL2NjcC9jY3BfcGNpLmMgYi9kcml2ZXJzL2NyeXB0by9jY3AvY2NwX3BjaS5jDQppbmRl eCAxNzAyYTA5YzQuLjM4MDI5YTkwOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY3J5cHRvL2NjcC9j Y3BfcGNpLmMNCisrKyBiL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfcGNpLmMNCkBAIC0xNSw2ICsx NSw3IEBADQogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1aW9fbW9kdWxlX25hbWVzW10gPSB7 DQogCSJpZ2JfdWlvIiwNCiAJInVpb19wY2lfZ2VuZXJpYyIsDQorCSJ2ZmlvX3BjaSINCiB9Ow0K IA0KIGludA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfcGNpLmggYi9kcml2 ZXJzL2NyeXB0by9jY3AvY2NwX3BjaS5oDQppbmRleCA3ZWQzYmFjNDAuLmJjZGUxZDk3MCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvY3J5cHRvL2NjcC9jY3BfcGNpLmgNCisrKyBiL2RyaXZlcnMvY3J5 cHRvL2NjcC9jY3BfcGNpLmgNCkBAIC0xMiw2ICsxMiw3IEBADQogI2RlZmluZSBTWVNGU19QQ0lf REVWSUNFUyAiL3N5cy9idXMvcGNpL2RldmljZXMiDQogI2RlZmluZSBQUk9DX01PRFVMRVMgIi9w cm9jL21vZHVsZXMiDQogDQorDQogaW50IGNjcF9jaGVja19wY2lfdWlvX21vZHVsZSh2b2lkKTsN CiANCiBpbnQgY2NwX3BhcnNlX3BjaV9hZGRyX2Zvcm1hdChjb25zdCBjaGFyICpidWYsIGludCBi dWZzaXplLCB1aW50MTZfdCAqZG9tYWluLA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2Nj cC9ydGVfY2NwX3BtZC5jIGIvZHJpdmVycy9jcnlwdG8vY2NwL3J0ZV9jY3BfcG1kLmMNCmluZGV4 IDQ4MTBkNzk5Yy4uYTE4MmM2YTUyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jcnlwdG8vY2NwL3J0 ZV9jY3BfcG1kLmMNCisrKyBiL2RyaXZlcnMvY3J5cHRvL2NjcC9ydGVfY2NwX3BtZC5jDQpAQCAt MjIsNiArMjIsNyBAQA0KICAqLw0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgY2NwX3BtZF9pbml0X2Rv bmU7DQogdWludDhfdCBjY3BfY3J5cHRvZGV2X2RyaXZlcl9pZDsNCitleHRlcm4gdm9pZCAqc2hh X2N0eDsNCiANCiBzdHJ1Y3QgY2NwX3BtZF9pbml0X3BhcmFtcyB7DQogCXN0cnVjdCBydGVfY3J5 cHRvZGV2X3BtZF9pbml0X3BhcmFtcyBkZWZfcDsNCkBAIC0yNzksNiArMjgwLDcgQEAgY3J5cHRv ZGV2X2NjcF9yZW1vdmUoc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQ0KIA0KIAljY3BfcG1k X2luaXRfZG9uZSA9IDA7DQogCW5hbWUgPSBydGVfdmRldl9kZXZpY2VfbmFtZShkZXYpOw0KKwly dGVfZnJlZSgodm9pZCAqKSBzaGFfY3R4KTsNCiAJaWYgKG5hbWUgPT0gTlVMTCkNCiAJCXJldHVy biAtRUlOVkFMOw0KIA0KQEAgLTI5Niw3ICsyOTgsNiBAQCBjcnlwdG9kZXZfY2NwX2NyZWF0ZShj b25zdCBjaGFyICpuYW1lLA0KIHsNCiAJc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldjsNCiAJc3Ry dWN0IGNjcF9wcml2YXRlICppbnRlcm5hbHM7DQotCXVpbnQ4X3QgY3J5cHRvZGV2X2NudCA9IDA7 DQogDQogCWlmIChpbml0X3BhcmFtcy0+ZGVmX3AubmFtZVswXSA9PSAnXDAnKQ0KIAkJc3RybGNw eShpbml0X3BhcmFtcy0+ZGVmX3AubmFtZSwgbmFtZSwNCkBAIC0zNjEsNyArMzYyLDcgQEAgY3J5 cHRvZGV2X2NjcF9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICp2ZGV2KQ0KIAkJLmF1dGhf b3B0ID0gQ0NQX1BNRF9BVVRIX09QVF9DQ1AsDQogCX07DQogCWNvbnN0IGNoYXIgKmlucHV0X2Fy Z3M7DQotDQorCXNoYV9jdHggPSAodm9pZCAqKXJ0ZV9tYWxsb2MoTlVMTCwgU0hBNTEyX0RJR0VT VF9TSVpFLCA2NCk7DQogCWlmIChjY3BfcG1kX2luaXRfZG9uZSkgew0KIAkJUlRFX0xPRyhJTkZP LCBQTUQsICJDQ1AgUE1EIGFscmVhZHkgaW5pdGlhbGl6ZWRcbiIpOw0KIAkJcmV0dXJuIC1FRkFV TFQ7DQotLSANCjIuMTcuMQ0KDQo=