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=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_GIT autolearn=ham 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 335D3C2D0BF for ; Tue, 10 Dec 2019 05:05:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C6377207FF for ; Tue, 10 Dec 2019 05:05:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="SWOKu2BM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727184AbfLJFFo (ORCPT ); Tue, 10 Dec 2019 00:05:44 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:25163 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726085AbfLJFFn (ORCPT ); Tue, 10 Dec 2019 00:05:43 -0500 X-UUID: bdc99bb0fb1e4ebdabf18ddbfeb83faf-20191210 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=Bh4f/pJ1G5Y1usxueSX6L/F7vzquDSO+zcHNExHv1Ts=; b=SWOKu2BMBZaWphUnc68RpZMx2oT/zoevTg1GYgzQYzf0pu26JDBlFxraTMb2YnRjUVyUlBTDZ88xd3Mmx+7rC+wAAwq4gz+1wrR+bWDo0nngrISUytlTxUUDNwWPVWU9l3z+qM9Lm/MT8/TGQH/gyrp74mYFgXW1JaFwskLSSwQ=; X-UUID: bdc99bb0fb1e4ebdabf18ddbfeb83faf-20191210 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1337748602; Tue, 10 Dec 2019 13:05:29 +0800 Received: from mtkcas09.mediatek.inc (172.21.101.178) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 10 Dec 2019 13:05:05 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas09.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 10 Dec 2019 13:05:22 +0800 From: Bibby Hsieh To: David Airlie , Matthias Brugger , Daniel Vetter , , CC: Philipp Zabel , YT Shen , Thierry Reding , CK Hu , , , , , , Bibby Hsieh , Yongqiang Niu Subject: [PATCH v5 6/7] drm/mediatek: support CMDQ interface in ddp component Date: Tue, 10 Dec 2019 13:05:25 +0800 Message-ID: <20191210050526.4437-7-bibby.hsieh@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20191210050526.4437-1-bibby.hsieh@mediatek.com> References: <20191210050526.4437-1-bibby.hsieh@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org VGhlIENNRFEgKENvbW1hbmQgUXVldWUpIGluIE1UODE4MyBpcyB1c2VkIHRvIGhlbHANCnVwZGF0 ZSBhbGwgcmVsZXZhbnQgZGlzcGxheSBjb250cm9sbGVyIHJlZ2lzdGVycw0Kd2l0aCBjcml0aWNh bCB0aW1lIGxpbWF0aW9uLg0KVGhpcyBwYXRjaCBhZGQgY21kcSBpbnRlcmZhY2UgaW4gZGRwX2Nv bXAgaW50ZXJmYWNlLA0KbGV0IGFsbCBkZHBfY29tcCBpbnRlcmZhY2UgY2FuIHN1cHBvcnQgY3B1 L2NtZHEgZnVuY3Rpb24NCmF0IHRoZSBzYW1lIHRpbWUuDQoNClNpZ25lZC1vZmYtYnk6IFlUIFNo ZW4gPHl0LnNoZW5AbWVkaWF0ZWsuY29tPg0KU2lnbmVkLW9mZi1ieTogQ0sgSHUgPGNrLmh1QG1l ZGlhdGVrLmNvbT4NClNpZ25lZC1vZmYtYnk6IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0 cm9uaXguZGU+DQpTaWduZWQtb2ZmLWJ5OiBCaWJieSBIc2llaCA8YmliYnkuaHNpZWhAbWVkaWF0 ZWsuY29tPg0KU2lnbmVkLW9mZi1ieTogWW9uZ3FpYW5nIE5pdSA8eW9uZ3FpYW5nLm5pdUBtZWRp YXRlay5jb20+DQpSZXZpZXdlZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4NCi0tLQ0K IGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9jb2xvci5jICAgfCAgIDcgKy0NCiBk cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMgICAgIHwgIDY1ICsrKysrLS0t LS0NCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5jICAgIHwgIDQzICsr KystLS0NCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgICAgIHwgIDEw ICstDQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYyB8IDEzMSAr KysrKysrKysrKysrKystLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rk cF9jb21wLmggfCAgMzEgKysrLS0NCiA2IGZpbGVzIGNoYW5nZWQsIDE5MyBpbnNlcnRpb25zKCsp LCA5NCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZGlzcF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Nv bG9yLmMNCmluZGV4IDU5ZGUyYTQ2YWE0OS4uNmZiMGQ2OTgzYTRhIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2NvbG9yLmMNCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZGlzcF9jb2xvci5jDQpAQCAtOSw2ICs5LDcgQEANCiAjaW5jbHVk ZSA8bGludXgvb2ZfZGV2aWNlLmg+DQogI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPg0KICNpbmNs dWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCisjaW5jbHVkZSA8bGludXgvc29jL21lZGlh dGVrL210ay1jbWRxLmg+DQogDQogI2luY2x1ZGUgIm10a19kcm1fY3J0Yy5oIg0KICNpbmNsdWRl ICJtdGtfZHJtX2RkcF9jb21wLmgiDQpAQCAtNDUsMTIgKzQ2LDEyIEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IG10a19kaXNwX2NvbG9yICpjb21wX3RvX2NvbG9yKHN0cnVjdCBtdGtfZGRwX2NvbXAg KmNvbXApDQogDQogc3RhdGljIHZvaWQgbXRrX2NvbG9yX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9j b21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywNCiAJCQkgICAgIHVuc2lnbmVkIGludCBoLCB1bnNp Z25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgICB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJCSAgICAg dW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCXN0cnVj dCBtdGtfZGlzcF9jb2xvciAqY29sb3IgPSBjb21wX3RvX2NvbG9yKGNvbXApOw0KIA0KLQl3cml0 ZWwodywgY29tcC0+cmVncyArIERJU1BfQ09MT1JfV0lEVEgoY29sb3IpKTsNCi0Jd3JpdGVsKGgs IGNvbXAtPnJlZ3MgKyBESVNQX0NPTE9SX0hFSUdIVChjb2xvcikpOw0KKwltdGtfZGRwX3dyaXRl KGNtZHFfcGt0LCB3LCBjb21wLCBESVNQX0NPTE9SX1dJRFRIKGNvbG9yKSk7DQorCW10a19kZHBf d3JpdGUoY21kcV9wa3QsIGgsIGNvbXAsIERJU1BfQ09MT1JfSEVJR0hUKGNvbG9yKSk7DQogfQ0K IA0KIHN0YXRpYyB2b2lkIG10a19jb2xvcl9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYw0KaW5kZXggOGEzMjI0ODY3 MWMzLi42NDllMzcxZGQ5YjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3Bfb3ZsLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9v dmwuYw0KQEAgLTEyLDYgKzEyLDcgQEANCiAjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50 aW1lLmg+DQorI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oPg0KIA0KICNp bmNsdWRlICJtdGtfZHJtX2NydGMuaCINCiAjaW5jbHVkZSAibXRrX2RybV9kZHBfY29tcC5oIg0K QEAgLTEyNSwxNCArMTI2LDE1IEBAIHN0YXRpYyB2b2lkIG10a19vdmxfc3RvcChzdHJ1Y3QgbXRr X2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19vdmxfY29uZmlnKHN0cnVjdCBt dGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LA0KIAkJCSAgIHVuc2lnbmVkIGludCBo LCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgdW5zaWduZWQgaW50IGJwYykNCisJCQkg ICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCiAJaWYg KHcgIT0gMCAmJiBoICE9IDApDQotCQl3cml0ZWxfcmVsYXhlZChoIDw8IDE2IHwgdywgY29tcC0+ cmVncyArIERJU1BfUkVHX09WTF9ST0lfU0laRSk7DQotCXdyaXRlbF9yZWxheGVkKDB4MCwgY29t cC0+cmVncyArIERJU1BfUkVHX09WTF9ST0lfQkdDTFIpOw0KKwkJbXRrX2RkcF93cml0ZV9yZWxh eGVkKGNtZHFfcGt0LCBoIDw8IDE2IHwgdywgY29tcCwNCisJCQkJICAgICAgRElTUF9SRUdfT1ZM X1JPSV9TSVpFKTsNCisJbXRrX2RkcF93cml0ZV9yZWxheGVkKGNtZHFfcGt0LCAweDAsIGNvbXAs IERJU1BfUkVHX09WTF9ST0lfQkdDTFIpOw0KIA0KLQl3cml0ZWwoMHgxLCBjb21wLT5yZWdzICsg RElTUF9SRUdfT1ZMX1JTVCk7DQotCXdyaXRlbCgweDAsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19P VkxfUlNUKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgMHgxLCBjb21wLCBESVNQX1JFR19P VkxfUlNUKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgMHgwLCBjb21wLCBESVNQX1JFR19P VkxfUlNUKTsNCiB9DQogDQogc3RhdGljIHVuc2lnbmVkIGludCBtdGtfb3ZsX2xheWVyX25yKHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTc2LDE2ICsxNzgsMTYgQEAgc3RhdGljIGlu dCBtdGtfb3ZsX2xheWVyX2NoZWNrKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVk IGludCBpZHgsDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVy X29uKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgpDQorc3RhdGlj IHZvaWQgbXRrX292bF9sYXllcl9vbihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25l ZCBpbnQgaWR4LA0KKwkJCSAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQotCXVu c2lnbmVkIGludCByZWc7DQogCXVuc2lnbmVkIGludCBnbWNfdGhyc2hkX2w7DQogCXVuc2lnbmVk IGludCBnbWNfdGhyc2hkX2g7DQogCXVuc2lnbmVkIGludCBnbWNfdmFsdWU7DQogCXN0cnVjdCBt dGtfZGlzcF9vdmwgKm92bCA9IGNvbXBfdG9fb3ZsKGNvbXApOw0KIA0KLQl3cml0ZWwoMHgxLCBj b21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1JETUFfQ1RSTChpZHgpKTsNCi0NCisJbXRrX2RkcF93 cml0ZShjbWRxX3BrdCwgMHgxLCBjb21wLA0KKwkJICAgICAgRElTUF9SRUdfT1ZMX1JETUFfQ1RS TChpZHgpKTsNCiAJZ21jX3RocnNoZF9sID0gR01DX1RIUkVTSE9MRF9MT1cgPj4NCiAJCSAgICAg IChHTUNfVEhSRVNIT0xEX0JJVFMgLSBvdmwtPmRhdGEtPmdtY19iaXRzKTsNCiAJZ21jX3RocnNo ZF9oID0gR01DX1RIUkVTSE9MRF9ISUdIID4+DQpAQCAtMTk1LDIyICsxOTcsMTkgQEAgc3RhdGlj IHZvaWQgbXRrX292bF9sYXllcl9vbihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25l ZCBpbnQgaWR4KQ0KIAllbHNlDQogCQlnbWNfdmFsdWUgPSBnbWNfdGhyc2hkX2wgfCBnbWNfdGhy c2hkX2wgPDwgOCB8DQogCQkJICAgIGdtY190aHJzaGRfaCA8PCAxNiB8IGdtY190aHJzaGRfaCA8 PCAyNDsNCi0Jd3JpdGVsKGdtY192YWx1ZSwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9SRE1B X0dNQyhpZHgpKTsNCi0NCi0JcmVnID0gcmVhZGwoY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9T UkNfQ09OKTsNCi0JcmVnID0gcmVnIHwgQklUKGlkeCk7DQotCXdyaXRlbChyZWcsIGNvbXAtPnJl Z3MgKyBESVNQX1JFR19PVkxfU1JDX0NPTik7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIGdt Y192YWx1ZSwNCisJCSAgICAgIGNvbXAsIERJU1BfUkVHX09WTF9SRE1BX0dNQyhpZHgpKTsNCisJ bXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBCSVQoaWR4KSwgY29tcCwNCisJCQkgICBESVNQ X1JFR19PVkxfU1JDX0NPTiwgQklUKGlkeCkpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBtdGtfb3Zs X2xheWVyX29mZihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4KQ0K K3N0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfb2ZmKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAs IHVuc2lnbmVkIGludCBpZHgsDQorCQkJICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkN CiB7DQotCXVuc2lnbmVkIGludCByZWc7DQotDQotCXJlZyA9IHJlYWRsKGNvbXAtPnJlZ3MgKyBE SVNQX1JFR19PVkxfU1JDX0NPTik7DQotCXJlZyA9IHJlZyAmIH5CSVQoaWR4KTsNCi0Jd3JpdGVs KHJlZywgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9TUkNfQ09OKTsNCi0NCi0Jd3JpdGVsKDB4 MCwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9SRE1BX0NUUkwoaWR4KSk7DQorCW10a19kZHBf d3JpdGVfbWFzayhjbWRxX3BrdCwgMCwgY29tcCwNCisJCQkgICBESVNQX1JFR19PVkxfU1JDX0NP TiwgQklUKGlkeCkpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAwLCBjb21wLA0KKwkJICAg ICAgRElTUF9SRUdfT1ZMX1JETUFfQ1RSTChpZHgpKTsNCiB9DQogDQogc3RhdGljIHVuc2lnbmVk IGludCBvdmxfZm10X2NvbnZlcnQoc3RydWN0IG10a19kaXNwX292bCAqb3ZsLCB1bnNpZ25lZCBp bnQgZm10KQ0KQEAgLTI1MCw3ICsyNDksOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG92bF9mbXRf Y29udmVydChzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsICpvdmwsIHVuc2lnbmVkIGludCBmbXQpDQogfQ0K IA0KIHN0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAg KmNvbXAsIHVuc2lnbmVkIGludCBpZHgsDQotCQkJCSBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpz dGF0ZSkNCisJCQkJIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KKwkJCQkgc3RydWN0 IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCXN0cnVjdCBtdGtfZGlzcF9vdmwgKm92bCA9IGNv bXBfdG9fb3ZsKGNvbXApOw0KIAlzdHJ1Y3QgbXRrX3BsYW5lX3BlbmRpbmdfc3RhdGUgKnBlbmRp bmcgPSAmc3RhdGUtPnBlbmRpbmc7DQpAQCAtMjYyLDcgKzI2Miw3IEBAIHN0YXRpYyB2b2lkIG10 a19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGlu dCBpZHgsDQogCXVuc2lnbmVkIGludCBjb247DQogDQogCWlmICghcGVuZGluZy0+ZW5hYmxlKQ0K LQkJbXRrX292bF9sYXllcl9vZmYoY29tcCwgaWR4KTsNCisJCW10a19vdmxfbGF5ZXJfb2ZmKGNv bXAsIGlkeCwgY21kcV9wa3QpOw0KIA0KIAljb24gPSBvdmxfZm10X2NvbnZlcnQob3ZsLCBmbXQp Ow0KIAlpZiAoaWR4ICE9IDApDQpAQCAtMjc4LDE0ICsyNzgsMTkgQEAgc3RhdGljIHZvaWQgbXRr X292bF9sYXllcl9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50 IGlkeCwNCiAJCWFkZHIgKz0gcGVuZGluZy0+cGl0Y2ggLSAxOw0KIAl9DQogDQotCXdyaXRlbF9y ZWxheGVkKGNvbiwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9DT04oaWR4KSk7DQotCXdyaXRl bF9yZWxheGVkKHBpdGNoLCBjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1BJVENIKGlkeCkpOw0K LQl3cml0ZWxfcmVsYXhlZChzcmNfc2l6ZSwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9TUkNf U0laRShpZHgpKTsNCi0Jd3JpdGVsX3JlbGF4ZWQob2Zmc2V0LCBjb21wLT5yZWdzICsgRElTUF9S RUdfT1ZMX09GRlNFVChpZHgpKTsNCi0Jd3JpdGVsX3JlbGF4ZWQoYWRkciwgY29tcC0+cmVncyAr IERJU1BfUkVHX09WTF9BRERSKG92bCwgaWR4KSk7DQorCW10a19kZHBfd3JpdGVfcmVsYXhlZChj bWRxX3BrdCwgY29uLCBjb21wLA0KKwkJCSAgICAgIERJU1BfUkVHX09WTF9DT04oaWR4KSk7DQor CW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgcGl0Y2gsIGNvbXAsDQorCQkJICAgICAg RElTUF9SRUdfT1ZMX1BJVENIKGlkeCkpOw0KKwltdGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9w a3QsIHNyY19zaXplLCBjb21wLA0KKwkJCSAgICAgIERJU1BfUkVHX09WTF9TUkNfU0laRShpZHgp KTsNCisJbXRrX2RkcF93cml0ZV9yZWxheGVkKGNtZHFfcGt0LCBvZmZzZXQsIGNvbXAsDQorCQkJ ICAgICAgRElTUF9SRUdfT1ZMX09GRlNFVChpZHgpKTsNCisJbXRrX2RkcF93cml0ZV9yZWxheGVk KGNtZHFfcGt0LCBhZGRyLCBjb21wLA0KKwkJCSAgICAgIERJU1BfUkVHX09WTF9BRERSKG92bCwg aWR4KSk7DQogDQogCWlmIChwZW5kaW5nLT5lbmFibGUpDQotCQltdGtfb3ZsX2xheWVyX29uKGNv bXAsIGlkeCk7DQorCQltdGtfb3ZsX2xheWVyX29uKGNvbXAsIGlkeCwgY21kcV9wa3QpOw0KIH0N CiANCiBzdGF0aWMgdm9pZCBtdGtfb3ZsX2JnY2xyX2luX29uKHN0cnVjdCBtdGtfZGRwX2NvbXAg KmNvbXApDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3Jk bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMNCmluZGV4IDFl MDU2NjRhZWNiZC4uYTkxNWY2OGFhYzM1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kaXNwX3JkbWEuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kaXNwX3JkbWEuYw0KQEAgLTEwLDYgKzEwLDcgQEANCiAjaW5jbHVkZSA8bGludXgvb2ZfaXJx Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KICNpbmNsdWRlIDxsaW51 eC9wbV9ydW50aW1lLmg+DQorI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5o Pg0KIA0KICNpbmNsdWRlICJtdGtfZHJtX2NydGMuaCINCiAjaW5jbHVkZSAibXRrX2RybV9kZHBf Y29tcC5oIg0KQEAgLTEyNywxNCArMTI4LDE2IEBAIHN0YXRpYyB2b2lkIG10a19yZG1hX3N0b3Ao c3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCiANCiBzdGF0aWMgdm9pZCBtdGtfcmRtYV9jb25m aWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHdpZHRoLA0KIAkJCSAg ICB1bnNpZ25lZCBpbnQgaGVpZ2h0LCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgIHVu c2lnbmVkIGludCBicGMpDQorCQkJICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpDQogew0KIAl1bnNpZ25lZCBpbnQgdGhyZXNob2xkOw0KIAl1bnNpZ25lZCBp bnQgcmVnOw0KIAlzdHJ1Y3QgbXRrX2Rpc3BfcmRtYSAqcmRtYSA9IGNvbXBfdG9fcmRtYShjb21w KTsNCiANCi0JcmRtYV91cGRhdGVfYml0cyhjb21wLCBESVNQX1JFR19SRE1BX1NJWkVfQ09OXzAs IDB4ZmZmLCB3aWR0aCk7DQotCXJkbWFfdXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRNQV9T SVpFX0NPTl8xLCAweGZmZmZmLCBoZWlnaHQpOw0KKwltdGtfZGRwX3dyaXRlX21hc2soY21kcV9w a3QsIHdpZHRoLCBjb21wLA0KKwkJCSAgIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwgMHhmZmYp Ow0KKwltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGhlaWdodCwgY29tcCwNCisJCQkgICBE SVNQX1JFR19SRE1BX1NJWkVfQ09OXzEsIDB4ZmZmZmYpOw0KIA0KIAkvKg0KIAkgKiBFbmFibGUg RklGTyB1bmRlcmZsb3cgc2luY2UgRFNJIGFuZCBEUEkgY2FuJ3QgYmUgYmxvY2tlZC4NCkBAIC0x NDYsNyArMTQ5LDcgQEAgc3RhdGljIHZvaWQgbXRrX3JkbWFfY29uZmlnKHN0cnVjdCBtdGtfZGRw X2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3aWR0aCwNCiAJcmVnID0gUkRNQV9GSUZPX1VOREVS RkxPV19FTiB8DQogCSAgICAgIFJETUFfRklGT19QU0VVRE9fU0laRShSRE1BX0ZJRk9fU0laRShy ZG1hKSkgfA0KIAkgICAgICBSRE1BX09VVFBVVF9WQUxJRF9GSUZPX1RIUkVTSE9MRCh0aHJlc2hv bGQpOw0KLQl3cml0ZWwocmVnLCBjb21wLT5yZWdzICsgRElTUF9SRUdfUkRNQV9GSUZPX0NPTik7 DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIHJlZywgY29tcCwgRElTUF9SRUdfUkRNQV9GSUZP X0NPTik7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgcmRtYV9mbXRfY29udmVydChzdHJ1 Y3QgbXRrX2Rpc3BfcmRtYSAqcmRtYSwNCkBAIC0xOTIsNyArMTk1LDggQEAgc3RhdGljIHVuc2ln bmVkIGludCBtdGtfcmRtYV9sYXllcl9ucihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIH0N CiANCiBzdGF0aWMgdm9pZCBtdGtfcmRtYV9sYXllcl9jb25maWcoc3RydWN0IG10a19kZHBfY29t cCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCwNCi0JCQkJICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRl ICpzdGF0ZSkNCisJCQkJICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSwNCisJCQkJICBz dHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCiAJc3RydWN0IG10a19kaXNwX3JkbWEgKnJk bWEgPSBjb21wX3RvX3JkbWEoY29tcCk7DQogCXN0cnVjdCBtdGtfcGxhbmVfcGVuZGluZ19zdGF0 ZSAqcGVuZGluZyA9ICZzdGF0ZS0+cGVuZGluZzsNCkBAIC0yMDIsMjQgKzIwNiwyNyBAQCBzdGF0 aWMgdm9pZCBtdGtfcmRtYV9sYXllcl9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwg dW5zaWduZWQgaW50IGlkeCwNCiAJdW5zaWduZWQgaW50IGNvbjsNCiANCiAJY29uID0gcmRtYV9m bXRfY29udmVydChyZG1hLCBmbXQpOw0KLQl3cml0ZWxfcmVsYXhlZChjb24sIGNvbXAtPnJlZ3Mg KyBESVNQX1JETUFfTUVNX0NPTik7DQorCW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwg Y29uLCBjb21wLCBESVNQX1JETUFfTUVNX0NPTik7DQogDQogCWlmIChmbXQgPT0gRFJNX0ZPUk1B VF9VWVZZIHx8IGZtdCA9PSBEUk1fRk9STUFUX1lVWVYpIHsNCi0JCXJkbWFfdXBkYXRlX2JpdHMo Y29tcCwgRElTUF9SRUdfUkRNQV9TSVpFX0NPTl8wLA0KLQkJCQkgUkRNQV9NQVRSSVhfRU5BQkxF LCBSRE1BX01BVFJJWF9FTkFCTEUpOw0KLQkJcmRtYV91cGRhdGVfYml0cyhjb21wLCBESVNQX1JF R19SRE1BX1NJWkVfQ09OXzAsDQotCQkJCSBSRE1BX01BVFJJWF9JTlRfTVRYX1NFTCwNCi0JCQkJ IFJETUFfTUFUUklYX0lOVF9NVFhfQlQ2MDFfdG9fUkdCKTsNCisJCW10a19kZHBfd3JpdGVfbWFz ayhjbWRxX3BrdCwgUkRNQV9NQVRSSVhfRU5BQkxFLCBjb21wLA0KKwkJCQkgICBESVNQX1JFR19S RE1BX1NJWkVfQ09OXzAsDQorCQkJCSAgIFJETUFfTUFUUklYX0VOQUJMRSk7DQorCQltdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIFJETUFfTUFUUklYX0lOVF9NVFhfQlQ2MDFfdG9fUkdCLA0K KwkJCQkgICBjb21wLCBESVNQX1JFR19SRE1BX1NJWkVfQ09OXzAsDQorCQkJCSAgIFJETUFfTUFU UklYX0lOVF9NVFhfU0VMKTsNCiAJfSBlbHNlIHsNCi0JCXJkbWFfdXBkYXRlX2JpdHMoY29tcCwg RElTUF9SRUdfUkRNQV9TSVpFX0NPTl8wLA0KLQkJCQkgUkRNQV9NQVRSSVhfRU5BQkxFLCAwKTsN CisJCW10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgMCwgY29tcCwNCisJCQkJICAgRElTUF9S RUdfUkRNQV9TSVpFX0NPTl8wLA0KKwkJCQkgICBSRE1BX01BVFJJWF9FTkFCTEUpOw0KIAl9DQor CW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgYWRkciwgY29tcCwgRElTUF9SRE1BX01F TV9TVEFSVF9BRERSKTsNCisJbXRrX2RkcF93cml0ZV9yZWxheGVkKGNtZHFfcGt0LCBwaXRjaCwg Y29tcCwgRElTUF9SRE1BX01FTV9TUkNfUElUQ0gpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0 LCBSRE1BX01FTV9HTUMsIGNvbXAsDQorCQkgICAgICBESVNQX1JETUFfTUVNX0dNQ19TRVRUSU5H XzApOw0KKwltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJETUFfTU9ERV9NRU1PUlksIGNv bXAsDQorCQkJICAgRElTUF9SRUdfUkRNQV9HTE9CQUxfQ09OLCBSRE1BX01PREVfTUVNT1JZKTsN CiANCi0Jd3JpdGVsX3JlbGF4ZWQoYWRkciwgY29tcC0+cmVncyArIERJU1BfUkRNQV9NRU1fU1RB UlRfQUREUik7DQotCXdyaXRlbF9yZWxheGVkKHBpdGNoLCBjb21wLT5yZWdzICsgRElTUF9SRE1B X01FTV9TUkNfUElUQ0gpOw0KLQl3cml0ZWwoUkRNQV9NRU1fR01DLCBjb21wLT5yZWdzICsgRElT UF9SRE1BX01FTV9HTUNfU0VUVElOR18wKTsNCi0JcmRtYV91cGRhdGVfYml0cyhjb21wLCBESVNQ X1JFR19SRE1BX0dMT0JBTF9DT04sDQotCQkJIFJETUFfTU9ERV9NRU1PUlksIFJETUFfTU9ERV9N RU1PUlkpOw0KIH0NCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBt dGtfZGlzcF9yZG1hX2Z1bmNzID0gew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Ny dGMuYw0KaW5kZXggYWRmMDcyZmI0YWUzLi41YjNlMjRhN2VmNmMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYw0KQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0aWMgaW50 IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19jcnRjKQ0KIAkJ aWYgKGkgPT0gMSkNCiAJCQltdGtfZGRwX2NvbXBfYmdjbHJfaW5fb24oY29tcCk7DQogDQotCQlt dGtfZGRwX2NvbXBfY29uZmlnKGNvbXAsIHdpZHRoLCBoZWlnaHQsIHZyZWZyZXNoLCBicGMpOw0K KwkJbXRrX2RkcF9jb21wX2NvbmZpZyhjb21wLCB3aWR0aCwgaGVpZ2h0LCB2cmVmcmVzaCwgYnBj LCBOVUxMKTsNCiAJCW10a19kZHBfY29tcF9zdGFydChjb21wKTsNCiAJfQ0KIA0KQEAgLTMyMSw3 ICszMjEsNyBAQCBzdGF0aWMgaW50IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfZHJt X2NydGMgKm10a19jcnRjKQ0KIAkJY29tcCA9IG10a19kcm1fZGRwX2NvbXBfZm9yX3BsYW5lKGNy dGMsIHBsYW5lLCAmbG9jYWxfbGF5ZXIpOw0KIAkJaWYgKGNvbXApDQogCQkJbXRrX2RkcF9jb21w X2xheWVyX2NvbmZpZyhjb21wLCBsb2NhbF9sYXllciwNCi0JCQkJCQkgIHBsYW5lX3N0YXRlKTsN CisJCQkJCQkgIHBsYW5lX3N0YXRlLCBOVUxMKTsNCiAJfQ0KIA0KIAlyZXR1cm4gMDsNCkBAIC0z OTEsNyArMzkxLDcgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNfZGRwX2NvbmZpZyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMpDQogCWlmIChzdGF0ZS0+cGVuZGluZ19jb25maWcpIHsNCiAJCW10a19kZHBf Y29tcF9jb25maWcoY29tcCwgc3RhdGUtPnBlbmRpbmdfd2lkdGgsDQogCQkJCSAgICBzdGF0ZS0+ cGVuZGluZ19oZWlnaHQsDQotCQkJCSAgICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCk7DQor CQkJCSAgICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCwgTlVMTCk7DQogDQogCQlzdGF0ZS0+ cGVuZGluZ19jb25maWcgPSBmYWxzZTsNCiAJfQ0KQEAgLTQxMSw3ICs0MTEsNyBAQCBzdGF0aWMg dm9pZCBtdGtfY3J0Y19kZHBfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiANCiAJCQlp ZiAoY29tcCkNCiAJCQkJbXRrX2RkcF9jb21wX2xheWVyX2NvbmZpZyhjb21wLCBsb2NhbF9sYXll ciwNCi0JCQkJCQkJICBwbGFuZV9zdGF0ZSk7DQorCQkJCQkJCSAgcGxhbmVfc3RhdGUsIE5VTEwp Ow0KIAkJCXBsYW5lX3N0YXRlLT5wZW5kaW5nLmNvbmZpZyA9IGZhbHNlOw0KIAkJfQ0KIAkJbXRr X2NydGMtPnBlbmRpbmdfcGxhbmVzID0gZmFsc2U7DQpAQCAtNDMyLDcgKzQzMiw3IEBAIHN0YXRp YyB2b2lkIG10a19jcnRjX2RkcF9jb25maWcoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KIA0KIAkJ CWlmIChjb21wKQ0KIAkJCQltdGtfZGRwX2NvbXBfbGF5ZXJfY29uZmlnKGNvbXAsIGxvY2FsX2xh eWVyLA0KLQkJCQkJCQkgIHBsYW5lX3N0YXRlKTsNCisJCQkJCQkJICBwbGFuZV9zdGF0ZSwgTlVM TCk7DQogCQkJcGxhbmVfc3RhdGUtPnBlbmRpbmcuYXN5bmNfY29uZmlnID0gZmFsc2U7DQogCQl9 DQogCQltdGtfY3J0Yy0+cGVuZGluZ19hc3luY19wbGFuZXMgPSBmYWxzZTsNCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYw0KaW5kZXggMzQwN2QzOGFmZjhmLi5j YjMyOTZmNjdmNTAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Ry bV9kZHBfY29tcC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBf Y29tcC5jDQpAQCAtMTIsNyArMTIsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4NCiAj aW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4NCiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1f ZGV2aWNlLmg+DQotDQorI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oPg0K ICNpbmNsdWRlICJtdGtfZHJtX2Rydi5oIg0KICNpbmNsdWRlICJtdGtfZHJtX3BsYW5lLmgiDQog I2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCINCkBAIC03NiwzNiArNzYsODQgQEANCiAjZGVm aW5lIERJVEhFUl9BRERfTFNISUZUX0coeCkJCQkoKCh4KSAmIDB4NykgPDwgNCkNCiAjZGVmaW5l IERJVEhFUl9BRERfUlNISUZUX0coeCkJCQkoKCh4KSAmIDB4NykgPDwgMCkNCiANCit2b2lkIG10 a19kZHBfd3JpdGUoc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCwgdW5zaWduZWQgaW50IHZhbHVl LA0KKwkJICAgc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IG9mZnNldCkN Cit7DQorI2lmIElTX0VOQUJMRUQoQ09ORklHX01US19DTURRKQ0KKwlpZiAoY21kcV9wa3QpDQor CQljbWRxX3BrdF93cml0ZShjbWRxX3BrdCwgY29tcC0+c3Vic3lzLA0KKwkJCSAgICAgICBjb21w LT5yZWdzX3BhICsgb2Zmc2V0LCB2YWx1ZSk7DQorCWVsc2UNCisjZW5kaWYNCisJCXdyaXRlbCh2 YWx1ZSwgY29tcC0+cmVncyArIG9mZnNldCk7DQorfQ0KKw0KK3ZvaWQgbXRrX2RkcF93cml0ZV9y ZWxheGVkKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QsIHVuc2lnbmVkIGludCB2YWx1ZSwNCisJ CQkgICBzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KKwkJCSAgIHVuc2lnbmVkIGludCBvZmZz ZXQpDQorew0KKyNpZiBJU19FTkFCTEVEKENPTkZJR19NVEtfQ01EUSkNCisJaWYgKGNtZHFfcGt0 KQ0KKwkJY21kcV9wa3Rfd3JpdGUoY21kcV9wa3QsIGNvbXAtPnN1YnN5cywNCisJCQkgICAgICAg Y29tcC0+cmVnc19wYSArIG9mZnNldCwgdmFsdWUpOw0KKwllbHNlDQorI2VuZGlmDQorCQl3cml0 ZWxfcmVsYXhlZCh2YWx1ZSwgY29tcC0+cmVncyArIG9mZnNldCk7DQorfQ0KKw0KK3ZvaWQgbXRr X2RkcF93cml0ZV9tYXNrKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QsDQorCQkJdW5zaWduZWQg aW50IHZhbHVlLA0KKwkJCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQorCQkJdW5zaWduZWQg aW50IG9mZnNldCwNCisJCQl1bnNpZ25lZCBpbnQgbWFzaykNCit7DQorI2lmIElTX0VOQUJMRUQo Q09ORklHX01US19DTURRKQ0KKwlpZiAoY21kcV9wa3QpIHsNCisJCWNtZHFfcGt0X3dyaXRlX21h c2soY21kcV9wa3QsIGNvbXAtPnN1YnN5cywNCisJCQkJICAgIGNvbXAtPnJlZ3NfcGEgKyBvZmZz ZXQsIHZhbHVlLCBtYXNrKTsNCisJfSBlbHNlIHsNCisjZW5kaWYNCisJCXUzMiB0bXAgPSByZWFk bChjb21wLT5yZWdzICsgb2Zmc2V0KTsNCisNCisJCXRtcCA9ICh0bXAgJiB+bWFzaykgfCAodmFs dWUgJiBtYXNrKTsNCisJCXdyaXRlbCh0bXAsIGNvbXAtPnJlZ3MgKyBvZmZzZXQpOw0KKyNpZiBJ U19FTkFCTEVEKENPTkZJR19NVEtfQ01EUSkNCisJfQ0KKyNlbmRpZg0KK30NCisNCiB2b2lkIG10 a19kaXRoZXJfc2V0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBicGMs DQotCQkgICAgdW5zaWduZWQgaW50IENGRykNCisJCSAgICB1bnNpZ25lZCBpbnQgQ0ZHLCBzdHJ1 Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCiAJLyogSWYgYnBjIGVxdWFsIHRvIDAsIHRoZSBk aXRoZXJpbmcgZnVuY3Rpb24gZGlkbid0IGJlIGVuYWJsZWQgKi8NCiAJaWYgKGJwYyA9PSAwKQ0K IAkJcmV0dXJuOw0KIA0KIAlpZiAoYnBjID49IE1US19NSU5fQlBDKSB7DQotCQl3cml0ZWwoMCwg Y29tcC0+cmVncyArIERJU1BfRElUSEVSXzUpOw0KLQkJd3JpdGVsKDAsIGNvbXAtPnJlZ3MgKyBE SVNQX0RJVEhFUl83KTsNCi0JCXdyaXRlbChESVRIRVJfTFNCX0VSUl9TSElGVF9SKE1US19NQVhf QlBDIC0gYnBjKSB8DQotCQkgICAgICAgRElUSEVSX0FERF9MU0hJRlRfUihNVEtfTUFYX0JQQyAt IGJwYykgfA0KLQkJICAgICAgIERJVEhFUl9ORVdfQklUX01PREUsDQotCQkgICAgICAgY29tcC0+ cmVncyArIERJU1BfRElUSEVSXzE1KTsNCi0JCXdyaXRlbChESVRIRVJfTFNCX0VSUl9TSElGVF9C KE1US19NQVhfQlBDIC0gYnBjKSB8DQotCQkgICAgICAgRElUSEVSX0FERF9MU0hJRlRfQihNVEtf TUFYX0JQQyAtIGJwYykgfA0KLQkJICAgICAgIERJVEhFUl9MU0JfRVJSX1NISUZUX0coTVRLX01B WF9CUEMgLSBicGMpIHwNCi0JCSAgICAgICBESVRIRVJfQUREX0xTSElGVF9HKE1US19NQVhfQlBD IC0gYnBjKSwNCi0JCSAgICAgICBjb21wLT5yZWdzICsgRElTUF9ESVRIRVJfMTYpOw0KLQkJd3Jp dGVsKERJU1BfRElUSEVSSU5HLCBjb21wLT5yZWdzICsgQ0ZHKTsNCisJCW10a19kZHBfd3JpdGUo Y21kcV9wa3QsIDAsIGNvbXAsIERJU1BfRElUSEVSXzUpOw0KKwkJbXRrX2RkcF93cml0ZShjbWRx X3BrdCwgMCwgY29tcCwgRElTUF9ESVRIRVJfNyk7DQorCQltdGtfZGRwX3dyaXRlKGNtZHFfcGt0 LA0KKwkJCSAgICAgIERJVEhFUl9MU0JfRVJSX1NISUZUX1IoTVRLX01BWF9CUEMgLSBicGMpIHwN CisJCQkgICAgICBESVRIRVJfQUREX0xTSElGVF9SKE1US19NQVhfQlBDIC0gYnBjKSB8DQorCQkJ ICAgICAgRElUSEVSX05FV19CSVRfTU9ERSwNCisJCQkgICAgICBjb21wLCBESVNQX0RJVEhFUl8x NSk7DQorCQltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LA0KKwkJCSAgICAgIERJVEhFUl9MU0JfRVJS X1NISUZUX0IoTVRLX01BWF9CUEMgLSBicGMpIHwNCisJCQkgICAgICBESVRIRVJfQUREX0xTSElG VF9CKE1US19NQVhfQlBDIC0gYnBjKSB8DQorCQkJICAgICAgRElUSEVSX0xTQl9FUlJfU0hJRlRf RyhNVEtfTUFYX0JQQyAtIGJwYykgfA0KKwkJCSAgICAgIERJVEhFUl9BRERfTFNISUZUX0coTVRL X01BWF9CUEMgLSBicGMpLA0KKwkJCSAgICAgIGNvbXAsIERJU1BfRElUSEVSXzE2KTsNCisJCW10 a19kZHBfd3JpdGUoY21kcV9wa3QsIERJU1BfRElUSEVSSU5HLCBjb21wLCBDRkcpOw0KIAl9DQog fQ0KIA0KIHN0YXRpYyB2b2lkIG10a19vZF9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29t cCwgdW5zaWduZWQgaW50IHcsDQogCQkJICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZy ZWZyZXNoLA0KLQkJCSAgdW5zaWduZWQgaW50IGJwYykNCisJCQkgIHVuc2lnbmVkIGludCBicGMs IHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KLQl3cml0ZWwodyA8PCAxNiB8IGgsIGNv bXAtPnJlZ3MgKyBESVNQX09EX1NJWkUpOw0KLQl3cml0ZWwoT0RfUkVMQVlNT0RFLCBjb21wLT5y ZWdzICsgRElTUF9PRF9DRkcpOw0KLQltdGtfZGl0aGVyX3NldChjb21wLCBicGMsIERJU1BfT0Rf Q0ZHKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgdyA8PCAxNiB8IGgsIGNvbXAsIERJU1Bf T0RfU0laRSk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIE9EX1JFTEFZTU9ERSwgY29tcCwg RElTUF9PRF9DRkcpOw0KKwltdGtfZGl0aGVyX3NldChjb21wLCBicGMsIERJU1BfT0RfQ0ZHLCBj bWRxX3BrdCk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIG10a19vZF9zdGFydChzdHJ1Y3QgbXRrX2Rk cF9jb21wICpjb21wKQ0KQEAgLTEyMCw5ICsxNjgsOSBAQCBzdGF0aWMgdm9pZCBtdGtfdWZvZV9z dGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19hYWxf Y29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LA0KIAkJCSAg IHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgdW5zaWduZWQg aW50IGJwYykNCisJCQkgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFf cGt0KQ0KIHsNCi0Jd3JpdGVsKGggPDwgMTYgfCB3LCBjb21wLT5yZWdzICsgRElTUF9BQUxfU0la RSk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIGggPDwgMTYgfCB3LCBjb21wLCBESVNQX0FB TF9TSVpFKTsNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX2FhbF9zdGFydChzdHJ1Y3QgbXRrX2Rk cF9jb21wICpjb21wKQ0KQEAgLTEzNywxMCArMTg1LDEwIEBAIHN0YXRpYyB2b2lkIG10a19hYWxf c3RvcChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19jY29y cl9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsDQogCQkJ ICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgICAgdW5z aWduZWQgaW50IGJwYykNCisJCQkgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpDQogew0KLQl3cml0ZWwoaCA8PCAxNiB8IHcsIGNvbXAtPnJlZ3MgKyBESVNQ X0NDT1JSX1NJWkUpOw0KLQl3cml0ZWwoQ0NPUlJfUkVMQVlfTU9ERSwgY29tcC0+cmVncyArIERJ U1BfQ0NPUlJfQ0ZHKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgaCA8PCAxNiB8IHcsIGNv bXAsIERJU1BfQ0NPUlJfU0laRSk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIENDT1JSX1JF TEFZX01PREUsIGNvbXAsIERJU1BfQ0NPUlJfQ0ZHKTsNCiB9DQogDQogc3RhdGljIHZvaWQgbXRr X2Njb3JyX3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTU1LDEwICsyMDMs MTAgQEAgc3RhdGljIHZvaWQgbXRrX2Njb3JyX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29t cCkNCiANCiBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21w ICpjb21wLCB1bnNpZ25lZCBpbnQgdywNCiAJCQkgICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWdu ZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgICAgIHVuc2lnbmVkIGludCBicGMpDQorCQkJICAgICAg dW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQotCXdyaXRl bChoIDw8IDE2IHwgdywgY29tcC0+cmVncyArIERJU1BfRElUSEVSX1NJWkUpOw0KLQl3cml0ZWwo RElUSEVSX1JFTEFZX01PREUsIGNvbXAtPnJlZ3MgKyBESVNQX0RJVEhFUl9DRkcpOw0KKwltdGtf ZGRwX3dyaXRlKGNtZHFfcGt0LCBoIDw8IDE2IHwgdywgY29tcCwgRElTUF9ESVRIRVJfU0laRSk7 DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIERJVEhFUl9SRUxBWV9NT0RFLCBjb21wLCBESVNQ X0RJVEhFUl9DRkcpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX3N0YXJ0KHN0cnVj dCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTczLDEwICsyMjEsMTAgQEAgc3RhdGljIHZvaWQg bXRrX2RpdGhlcl9zdG9wKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogDQogc3RhdGljIHZv aWQgbXRrX2dhbW1hX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBp bnQgdywNCiAJCQkgICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQot CQkJICAgICB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJCSAgICAgdW5zaWduZWQgaW50IGJwYywgc3Ry dWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQotCXdyaXRlbChoIDw8IDE2IHwgdywgY29tcC0+ cmVncyArIERJU1BfR0FNTUFfU0laRSk7DQotCW10a19kaXRoZXJfc2V0KGNvbXAsIGJwYywgRElT UF9HQU1NQV9DRkcpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCBoIDw8IDE2IHwgdywgY29t cCwgRElTUF9HQU1NQV9TSVpFKTsNCisJbXRrX2RpdGhlcl9zZXQoY29tcCwgYnBjLCBESVNQX0dB TU1BX0NGRywgY21kcV9wa3QpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfZ2FtbWFfc3RhcnQo c3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCkBAIC0zMjQsNiArMzcyLDkgQEAgaW50IG10a19k ZHBfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpub2Rl LA0KIAkJICAgICAgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyAqZnVuY3MpDQogew0K IAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjb21wX3BkZXY7DQorCXN0cnVjdCByZXNvdXJjZSBy ZXM7DQorCXN0cnVjdCBjbWRxX2NsaWVudF9yZWcgY21kcV9yZWc7DQorCWludCByZXQgPSAwOw0K IA0KIAlpZiAoY29tcF9pZCA8IDAgfHwgY29tcF9pZCA+PSBERFBfQ09NUE9ORU5UX0lEX01BWCkN CiAJCXJldHVybiAtRUlOVkFMOw0KQEAgLTM1OCw2ICs0MDksMjggQEAgaW50IG10a19kZHBfY29t cF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpub2RlLA0KIAl9 DQogCWNvbXAtPmRldiA9ICZjb21wX3BkZXYtPmRldjsNCiANCisjaWYgSVNfRU5BQkxFRChDT05G SUdfTVRLX0NNRFEpDQorCWlmIChvZl9hZGRyZXNzX3RvX3Jlc291cmNlKG5vZGUsIDAsICZyZXMp ICE9IDApIHsNCisJCWRldl9lcnIoZGV2LCAiTWlzc2luZyByZWcgaW4gJXMgbm9kZVxuIiwNCisJ CQlub2RlLT5mdWxsX25hbWUpOw0KKwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisJY29tcC0+cmVn c19wYSA9IHJlcy5zdGFydDsNCisNCisJY29tcF9wZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9k ZShub2RlKTsNCisJaWYgKCFjb21wX3BkZXYpIHsNCisJCWRldl93YXJuKGRldiwgIldhaXRpbmcg Zm9yIGNvbXBvbmVudCBkZXZpY2UgJXNcbiIsDQorCQkJIG5vZGUtPmZ1bGxfbmFtZSk7DQorCQly ZXR1cm4gLUVQUk9CRV9ERUZFUjsNCisJfQ0KKw0KKwlyZXQgPSBjbWRxX2Rldl9nZXRfY2xpZW50 X3JlZygmY29tcF9wZGV2LT5kZXYsICZjbWRxX3JlZywgMCk7DQorCWlmIChyZXQgIT0gMCkNCisJ CWRldl9kYmcoJmNvbXBfcGRldi0+ZGV2LA0KKwkJCSJnZXQgbWVkaWF0ZWssZ2NlLWNsaWVudC1y ZWcgZmFpbCFcbiIpOw0KKwllbHNlDQorCQljb21wLT5zdWJzeXMgPSBjbWRxX3JlZy5zdWJzeXM7 DQorI2VuZGlmDQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZGRwX2NvbXAuaA0KaW5kZXggZGJmYjkwZTliOWNmLi4zODRhYmFlNWE4YzggMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oDQor KysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oDQpAQCAtNjks MTAgKzY5LDExIEBAIGVudW0gbXRrX2RkcF9jb21wX2lkIHsNCiB9Ow0KIA0KIHN0cnVjdCBtdGtf ZGRwX2NvbXA7DQotDQorc3RydWN0IGNtZHFfcGt0Ow0KIHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVu Y3Mgew0KIAl2b2lkICgqY29uZmlnKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25l ZCBpbnQgdywNCi0JCSAgICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNo LCB1bnNpZ25lZCBpbnQgYnBjKTsNCisJCSAgICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQg aW50IHZyZWZyZXNoLA0KKwkJICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpOw0KIAl2b2lkICgqc3RhcnQpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAp Ow0KIAl2b2lkICgqc3RvcCkoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCk7DQogCXZvaWQgKCpl bmFibGVfdmJsYW5rKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCBzdHJ1Y3QgZHJtX2NydGMg KmNydGMpOw0KQEAgLTg1LDcgKzg2LDggQEAgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyB7DQog CQkJICAgdW5zaWduZWQgaW50IGlkeCwNCiAJCQkgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpz dGF0ZSk7DQogCXZvaWQgKCpsYXllcl9jb25maWcpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAs IHVuc2lnbmVkIGludCBpZHgsDQotCQkJICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0 ZSk7DQorCQkJICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSwNCisJCQkgICAgIHN0 cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpOw0KIAl2b2lkICgqZ2FtbWFfc2V0KShzdHJ1Y3QgbXRr X2RkcF9jb21wICpjb21wLA0KIAkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSk7DQog CXZvaWQgKCpiZ2Nscl9pbl9vbikoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCk7DQpAQCAtOTks MTQgKzEwMSwxNyBAQCBzdHJ1Y3QgbXRrX2RkcF9jb21wIHsNCiAJc3RydWN0IGRldmljZSAqZGV2 Ow0KIAllbnVtIG10a19kZHBfY29tcF9pZCBpZDsNCiAJY29uc3Qgc3RydWN0IG10a19kZHBfY29t cF9mdW5jcyAqZnVuY3M7DQorCXJlc291cmNlX3NpemVfdCByZWdzX3BhOw0KKwl1OCBzdWJzeXM7 DQogfTsNCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2RkcF9jb21wX2NvbmZpZyhzdHJ1Y3Qg bXRrX2RkcF9jb21wICpjb21wLA0KIAkJCQkgICAgICAgdW5zaWduZWQgaW50IHcsIHVuc2lnbmVk IGludCBoLA0KLQkJCQkgICAgICAgdW5zaWduZWQgaW50IHZyZWZyZXNoLCB1bnNpZ25lZCBpbnQg YnBjKQ0KKwkJCQkgICAgICAgdW5zaWduZWQgaW50IHZyZWZyZXNoLCB1bnNpZ25lZCBpbnQgYnBj LA0KKwkJCQkgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCWlmIChjb21w LT5mdW5jcyAmJiBjb21wLT5mdW5jcy0+Y29uZmlnKQ0KLQkJY29tcC0+ZnVuY3MtPmNvbmZpZyhj b21wLCB3LCBoLCB2cmVmcmVzaCwgYnBjKTsNCisJCWNvbXAtPmZ1bmNzLT5jb25maWcoY29tcCwg dywgaCwgdnJlZnJlc2gsIGJwYywgY21kcV9wa3QpOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIHZv aWQgbXRrX2RkcF9jb21wX3ByZXBhcmUoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCkBAIC0x NzQsMTAgKzE3OSwxMSBAQCBzdGF0aWMgaW5saW5lIGludCBtdGtfZGRwX2NvbXBfbGF5ZXJfY2hl Y2soc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwNCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgbXRr X2RkcF9jb21wX2xheWVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KIAkJCQkJ ICAgICB1bnNpZ25lZCBpbnQgaWR4LA0KLQkJCQkJICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRl ICpzdGF0ZSkNCisJCQkJCSAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUsDQorCQkJ CQkgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KIAlpZiAoY29tcC0+ZnVuY3Mg JiYgY29tcC0+ZnVuY3MtPmxheWVyX2NvbmZpZykNCi0JCWNvbXAtPmZ1bmNzLT5sYXllcl9jb25m aWcoY29tcCwgaWR4LCBzdGF0ZSk7DQorCQljb21wLT5mdW5jcy0+bGF5ZXJfY29uZmlnKGNvbXAs IGlkeCwgc3RhdGUsIGNtZHFfcGt0KTsNCiB9DQogDQogc3RhdGljIGlubGluZSB2b2lkIG10a19k ZHBfZ2FtbWFfc2V0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQpAQCAtMjA3LDYgKzIxMywx MyBAQCBpbnQgbXRrX2RkcF9jb21wX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlX25vZGUgKmNvbXBfbm9kZSwNCiBpbnQgbXRrX2RkcF9jb21wX3JlZ2lzdGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkcm0sIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApOw0KIHZvaWQgbXRrX2Rk cF9jb21wX3VucmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IG10a19kZHBf Y29tcCAqY29tcCk7DQogdm9pZCBtdGtfZGl0aGVyX3NldChzdHJ1Y3QgbXRrX2RkcF9jb21wICpj b21wLCB1bnNpZ25lZCBpbnQgYnBjLA0KLQkJICAgIHVuc2lnbmVkIGludCBDRkcpOw0KLQ0KKwkJ ICAgIHVuc2lnbmVkIGludCBDRkcsIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpOw0KK2VudW0g bXRrX2RkcF9jb21wX3R5cGUgbXRrX2RkcF9jb21wX2dldF90eXBlKGVudW0gbXRrX2RkcF9jb21w X2lkIGNvbXBfaWQpOw0KK3ZvaWQgbXRrX2RkcF93cml0ZShzdHJ1Y3QgY21kcV9wa3QgKmNtZHFf cGt0LCB1bnNpZ25lZCBpbnQgdmFsdWUsDQorCQkgICBzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w LCB1bnNpZ25lZCBpbnQgb2Zmc2V0KTsNCit2b2lkIG10a19kZHBfd3JpdGVfcmVsYXhlZChzdHJ1 Y3QgY21kcV9wa3QgKmNtZHFfcGt0LCB1bnNpZ25lZCBpbnQgdmFsdWUsDQorCQkJICAgc3RydWN0 IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IG9mZnNldCk7DQordm9pZCBtdGtfZGRw X3dyaXRlX21hc2soc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCwgdW5zaWduZWQgaW50IHZhbHVl LA0KKwkJCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBvZmZzZXQsDQor CQkJdW5zaWduZWQgaW50IG1hc2spOw0KICNlbmRpZiAvKiBNVEtfRFJNX0REUF9DT01QX0ggKi8N Ci0tIA0KMi4xOC4wDQo=