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 CAD41C2BBE2 for ; Wed, 4 Dec 2019 09:45:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 73D3C2081B for ; Wed, 4 Dec 2019 09:45:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="W+gF2RHw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727576AbfLDJpC (ORCPT ); Wed, 4 Dec 2019 04:45:02 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:32141 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727477AbfLDJo6 (ORCPT ); Wed, 4 Dec 2019 04:44:58 -0500 X-UUID: 780083e5dc2844319517ec8f373152c1-20191204 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=zeI4ICPtqxp35u4HJC5LrLmjn1XLRLqaMUPt40t6DjE=; b=W+gF2RHw2lT9a/Vm+njPih5ucAkHZf3zqDg4bRiK9Sbu4LlRqWAPdyCf/oAoOZZ6xrCk3MLTwYwhTPcYrf0w10+OodkKjpwF/Z66kqA5NXete7VXRST3VA9N4mRS6icM2rjkhNV4jgi2Bu26beDxqgyk/dHhCwcYDKfmgKwFD2E=; X-UUID: 780083e5dc2844319517ec8f373152c1-20191204 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 277293368; Wed, 04 Dec 2019 17:44:44 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 4 Dec 2019 17:44:40 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 4 Dec 2019 17:43:49 +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 v3 5/6] drm/mediatek: support CMDQ interface in ddp component Date: Wed, 4 Dec 2019 17:44:40 +0800 Message-ID: <20191204094441.5116-6-bibby.hsieh@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20191204094441.5116-1-bibby.hsieh@mediatek.com> References: <20191204094441.5116-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+DQotLS0NCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3Iu YyAgIHwgICA3ICstDQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jICAg ICB8ICA2NSArKysrKy0tLS0tDQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3Jk bWEuYyAgICB8ICA0MyArKysrLS0tDQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f Y3J0Yy5jICAgICB8ICAgOCArLQ0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rk cF9jb21wLmMgfCAxMzYgKysrKysrKysrKysrKysrLS0tLS0NCiBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oIHwgIDMxICsrKy0tDQogNiBmaWxlcyBjaGFuZ2VkLCAx OTcgaW5zZXJ0aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZGlzcF9jb2xvci5jDQppbmRleCA1OWRlMmE0NmFhNDkuLjZmYjBkNjk4M2E0YSAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9jb2xvci5jDQor KysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYw0KQEAgLTksNiAr OSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KICNpbmNsdWRlIDxsaW51eC9v Zl9pcnEuaD4NCiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQorI2luY2x1ZGUg PGxpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oPg0KIA0KICNpbmNsdWRlICJtdGtfZHJtX2Ny dGMuaCINCiAjaW5jbHVkZSAibXRrX2RybV9kZHBfY29tcC5oIg0KQEAgLTQ1LDEyICs0NiwxMiBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBtdGtfZGlzcF9jb2xvciAqY29tcF90b19jb2xvcihzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19jb2xvcl9jb25maWco c3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsDQogCQkJICAgICB1bnNp Z25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgICAgdW5zaWduZWQgaW50 IGJwYykNCisJCQkgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9w a3QpDQogew0KIAlzdHJ1Y3QgbXRrX2Rpc3BfY29sb3IgKmNvbG9yID0gY29tcF90b19jb2xvcihj b21wKTsNCiANCi0Jd3JpdGVsKHcsIGNvbXAtPnJlZ3MgKyBESVNQX0NPTE9SX1dJRFRIKGNvbG9y KSk7DQotCXdyaXRlbChoLCBjb21wLT5yZWdzICsgRElTUF9DT0xPUl9IRUlHSFQoY29sb3IpKTsN CisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgdywgY29tcCwgRElTUF9DT0xPUl9XSURUSChjb2xv cikpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCBoLCBjb21wLCBESVNQX0NPTE9SX0hFSUdI VChjb2xvcikpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfY29sb3Jfc3RhcnQoc3RydWN0IG10 a19kZHBfY29tcCAqY29tcCkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3Bfb3ZsLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMN CmluZGV4IDhhMzIyNDg2NzFjMy4uNjQ5ZTM3MWRkOWI3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMNCkBAIC0xMiw2ICsxMiw3IEBADQogI2luY2x1ZGUgPGxpbnV4 L29mX2lycS5oPg0KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCiAjaW5jbHVk ZSA8bGludXgvcG1fcnVudGltZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRr LWNtZHEuaD4NCiANCiAjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiDQogI2luY2x1ZGUgIm10a19k cm1fZGRwX2NvbXAuaCINCkBAIC0xMjUsMTQgKzEyNiwxNSBAQCBzdGF0aWMgdm9pZCBtdGtfb3Zs X3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCiANCiBzdGF0aWMgdm9pZCBtdGtfb3Zs X2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywNCiAJCQkg ICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgIHVuc2lnbmVk IGludCBicGMpDQorCQkJICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRx X3BrdCkNCiB7DQogCWlmICh3ICE9IDAgJiYgaCAhPSAwKQ0KLQkJd3JpdGVsX3JlbGF4ZWQoaCA8 PCAxNiB8IHcsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfUk9JX1NJWkUpOw0KLQl3cml0ZWxf cmVsYXhlZCgweDAsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfUk9JX0JHQ0xSKTsNCisJCW10 a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgaCA8PCAxNiB8IHcsIGNvbXAsDQorCQkJCSAg ICAgIERJU1BfUkVHX09WTF9ST0lfU0laRSk7DQorCW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRx X3BrdCwgMHgwLCBjb21wLCBESVNQX1JFR19PVkxfUk9JX0JHQ0xSKTsNCiANCi0Jd3JpdGVsKDB4 MSwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9SU1QpOw0KLQl3cml0ZWwoMHgwLCBjb21wLT5y ZWdzICsgRElTUF9SRUdfT1ZMX1JTVCk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIDB4MSwg Y29tcCwgRElTUF9SRUdfT1ZMX1JTVCk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIDB4MCwg Y29tcCwgRElTUF9SRUdfT1ZMX1JTVCk7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgbXRr X292bF9sYXllcl9ucihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KQEAgLTE3NiwxNiArMTc4 LDE2IEBAIHN0YXRpYyBpbnQgbXRrX292bF9sYXllcl9jaGVjayhzdHJ1Y3QgbXRrX2RkcF9jb21w ICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIHZv aWQgbXRrX292bF9sYXllcl9vbihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBp bnQgaWR4KQ0KK3N0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfb24oc3RydWN0IG10a19kZHBfY29t cCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCwNCisJCQkgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21k cV9wa3QpDQogew0KLQl1bnNpZ25lZCBpbnQgcmVnOw0KIAl1bnNpZ25lZCBpbnQgZ21jX3RocnNo ZF9sOw0KIAl1bnNpZ25lZCBpbnQgZ21jX3RocnNoZF9oOw0KIAl1bnNpZ25lZCBpbnQgZ21jX3Zh bHVlOw0KIAlzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsICpvdmwgPSBjb21wX3RvX292bChjb21wKTsNCiAN Ci0Jd3JpdGVsKDB4MSwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9SRE1BX0NUUkwoaWR4KSk7 DQotDQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIDB4MSwgY29tcCwNCisJCSAgICAgIERJU1Bf UkVHX09WTF9SRE1BX0NUUkwoaWR4KSk7DQogCWdtY190aHJzaGRfbCA9IEdNQ19USFJFU0hPTERf TE9XID4+DQogCQkgICAgICAoR01DX1RIUkVTSE9MRF9CSVRTIC0gb3ZsLT5kYXRhLT5nbWNfYml0 cyk7DQogCWdtY190aHJzaGRfaCA9IEdNQ19USFJFU0hPTERfSElHSCA+Pg0KQEAgLTE5NSwyMiAr MTk3LDE5IEBAIHN0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfb24oc3RydWN0IG10a19kZHBfY29t cCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCkNCiAJZWxzZQ0KIAkJZ21jX3ZhbHVlID0gZ21jX3Ro cnNoZF9sIHwgZ21jX3RocnNoZF9sIDw8IDggfA0KIAkJCSAgICBnbWNfdGhyc2hkX2ggPDwgMTYg fCBnbWNfdGhyc2hkX2ggPDwgMjQ7DQotCXdyaXRlbChnbWNfdmFsdWUsIGNvbXAtPnJlZ3MgKyBE SVNQX1JFR19PVkxfUkRNQV9HTUMoaWR4KSk7DQotDQotCXJlZyA9IHJlYWRsKGNvbXAtPnJlZ3Mg KyBESVNQX1JFR19PVkxfU1JDX0NPTik7DQotCXJlZyA9IHJlZyB8IEJJVChpZHgpOw0KLQl3cml0 ZWwocmVnLCBjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1NSQ19DT04pOw0KKwltdGtfZGRwX3dy aXRlKGNtZHFfcGt0LCBnbWNfdmFsdWUsDQorCQkgICAgICBjb21wLCBESVNQX1JFR19PVkxfUkRN QV9HTUMoaWR4KSk7DQorCW10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgQklUKGlkeCksIGNv bXAsDQorCQkJICAgRElTUF9SRUdfT1ZMX1NSQ19DT04sIEJJVChpZHgpKTsNCiB9DQogDQotc3Rh dGljIHZvaWQgbXRrX292bF9sYXllcl9vZmYoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5z aWduZWQgaW50IGlkeCkNCitzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX29mZihzdHJ1Y3QgbXRr X2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KKwkJCSAgICAgIHN0cnVjdCBjbWRx X3BrdCAqY21kcV9wa3QpDQogew0KLQl1bnNpZ25lZCBpbnQgcmVnOw0KLQ0KLQlyZWcgPSByZWFk bChjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1NSQ19DT04pOw0KLQlyZWcgPSByZWcgJiB+QklU KGlkeCk7DQotCXdyaXRlbChyZWcsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfU1JDX0NPTik7 DQotDQotCXdyaXRlbCgweDAsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfUkRNQV9DVFJMKGlk eCkpOw0KKwltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDAsIGNvbXAsDQorCQkJICAgRElT UF9SRUdfT1ZMX1NSQ19DT04sIEJJVChpZHgpKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwg MCwgY29tcCwNCisJCSAgICAgIERJU1BfUkVHX09WTF9SRE1BX0NUUkwoaWR4KSk7DQogfQ0KIA0K IHN0YXRpYyB1bnNpZ25lZCBpbnQgb3ZsX2ZtdF9jb252ZXJ0KHN0cnVjdCBtdGtfZGlzcF9vdmwg Km92bCwgdW5zaWduZWQgaW50IGZtdCkNCkBAIC0yNTAsNyArMjQ5LDggQEAgc3RhdGljIHVuc2ln bmVkIGludCBvdmxfZm10X2NvbnZlcnQoc3RydWN0IG10a19kaXNwX292bCAqb3ZsLCB1bnNpZ25l ZCBpbnQgZm10KQ0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZpZyhzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KLQkJCQkgc3RydWN0IG10 a19wbGFuZV9zdGF0ZSAqc3RhdGUpDQorCQkJCSBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0 ZSwNCisJCQkJIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KIAlzdHJ1Y3QgbXRrX2Rp c3Bfb3ZsICpvdmwgPSBjb21wX3RvX292bChjb21wKTsNCiAJc3RydWN0IG10a19wbGFuZV9wZW5k aW5nX3N0YXRlICpwZW5kaW5nID0gJnN0YXRlLT5wZW5kaW5nOw0KQEAgLTI2Miw3ICsyNjIsNyBA QCBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpj b21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KIAl1bnNpZ25lZCBpbnQgY29uOw0KIA0KIAlpZiAoIXBl bmRpbmctPmVuYWJsZSkNCi0JCW10a19vdmxfbGF5ZXJfb2ZmKGNvbXAsIGlkeCk7DQorCQltdGtf b3ZsX2xheWVyX29mZihjb21wLCBpZHgsIGNtZHFfcGt0KTsNCiANCiAJY29uID0gb3ZsX2ZtdF9j b252ZXJ0KG92bCwgZm10KTsNCiAJaWYgKGlkeCAhPSAwKQ0KQEAgLTI3OCwxNCArMjc4LDE5IEBA IHN0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNv bXAsIHVuc2lnbmVkIGludCBpZHgsDQogCQlhZGRyICs9IHBlbmRpbmctPnBpdGNoIC0gMTsNCiAJ fQ0KIA0KLQl3cml0ZWxfcmVsYXhlZChjb24sIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfQ09O KGlkeCkpOw0KLQl3cml0ZWxfcmVsYXhlZChwaXRjaCwgY29tcC0+cmVncyArIERJU1BfUkVHX09W TF9QSVRDSChpZHgpKTsNCi0Jd3JpdGVsX3JlbGF4ZWQoc3JjX3NpemUsIGNvbXAtPnJlZ3MgKyBE SVNQX1JFR19PVkxfU1JDX1NJWkUoaWR4KSk7DQotCXdyaXRlbF9yZWxheGVkKG9mZnNldCwgY29t cC0+cmVncyArIERJU1BfUkVHX09WTF9PRkZTRVQoaWR4KSk7DQotCXdyaXRlbF9yZWxheGVkKGFk ZHIsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfQUREUihvdmwsIGlkeCkpOw0KKwltdGtfZGRw X3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIGNvbiwgY29tcCwNCisJCQkgICAgICBESVNQX1JFR19P VkxfQ09OKGlkeCkpOw0KKwltdGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIHBpdGNoLCBj b21wLA0KKwkJCSAgICAgIERJU1BfUkVHX09WTF9QSVRDSChpZHgpKTsNCisJbXRrX2RkcF93cml0 ZV9yZWxheGVkKGNtZHFfcGt0LCBzcmNfc2l6ZSwgY29tcCwNCisJCQkgICAgICBESVNQX1JFR19P VkxfU1JDX1NJWkUoaWR4KSk7DQorCW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgb2Zm c2V0LCBjb21wLA0KKwkJCSAgICAgIERJU1BfUkVHX09WTF9PRkZTRVQoaWR4KSk7DQorCW10a19k ZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgYWRkciwgY29tcCwNCisJCQkgICAgICBESVNQX1JF R19PVkxfQUREUihvdmwsIGlkeCkpOw0KIA0KIAlpZiAocGVuZGluZy0+ZW5hYmxlKQ0KLQkJbXRr X292bF9sYXllcl9vbihjb21wLCBpZHgpOw0KKwkJbXRrX292bF9sYXllcl9vbihjb21wLCBpZHgs IGNtZHFfcGt0KTsNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX292bF9iZ2Nscl9pbl9vbihzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZGlzcF9yZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bf cmRtYS5jDQppbmRleCAxNWNjNGFlODRhZWUuLmMxYWJkZTM3NDNiZiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMNCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMNCkBAIC0xMCw2ICsxMCw3IEBADQogI2luY2x1 ZGUgPGxpbnV4L29mX2lycS5oPg0KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4N CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVk aWF0ZWsvbXRrLWNtZHEuaD4NCiANCiAjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiDQogI2luY2x1 ZGUgIm10a19kcm1fZGRwX2NvbXAuaCINCkBAIC0xMjcsMTUgKzEyOCwxNyBAQCBzdGF0aWMgdm9p ZCBtdGtfcmRtYV9zdG9wKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogDQogc3RhdGljIHZv aWQgbXRrX3JkbWFfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGlu dCB3aWR0aCwNCiAJCQkgICAgdW5zaWduZWQgaW50IGhlaWdodCwgdW5zaWduZWQgaW50IHZyZWZy ZXNoLA0KLQkJCSAgICB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJCSAgICB1bnNpZ25lZCBpbnQgYnBj LCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCiAJdW5zaWduZWQgaW50IHRocmVzaG9s ZDsNCiAJdW5zaWduZWQgaW50IHJlZzsNCiAJc3RydWN0IG10a19kaXNwX3JkbWEgKnJkbWEgPSBj b21wX3RvX3JkbWEoY29tcCk7DQogCXUzMiByZG1hX2ZpZm9fc2l6ZTsNCiANCi0JcmRtYV91cGRh dGVfYml0cyhjb21wLCBESVNQX1JFR19SRE1BX1NJWkVfQ09OXzAsIDB4ZmZmLCB3aWR0aCk7DQot CXJkbWFfdXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRNQV9TSVpFX0NPTl8xLCAweGZmZmZm LCBoZWlnaHQpOw0KKwltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHdpZHRoLCBjb21wLA0K KwkJCSAgIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwgMHhmZmYpOw0KKwltdGtfZGRwX3dyaXRl X21hc2soY21kcV9wa3QsIGhlaWdodCwgY29tcCwNCisJCQkgICBESVNQX1JFR19SRE1BX1NJWkVf Q09OXzEsIDB4ZmZmZmYpOw0KIA0KIAlpZiAocmRtYS0+Zmlmb19zaXplKQ0KIAkJcmRtYV9maWZv X3NpemUgPSByZG1hLT5maWZvX3NpemU7DQpAQCAtMTUyLDcgKzE1NSw3IEBAIHN0YXRpYyB2b2lk IG10a19yZG1hX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQg d2lkdGgsDQogCXJlZyA9IFJETUFfRklGT19VTkRFUkZMT1dfRU4gfA0KIAkgICAgICBSRE1BX0ZJ Rk9fUFNFVURPX1NJWkUocmRtYV9maWZvX3NpemUpIHwNCiAJICAgICAgUkRNQV9PVVRQVVRfVkFM SURfRklGT19USFJFU0hPTEQodGhyZXNob2xkKTsNCi0Jd3JpdGVsKHJlZywgY29tcC0+cmVncyAr IERJU1BfUkVHX1JETUFfRklGT19DT04pOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCByZWcs IGNvbXAsIERJU1BfUkVHX1JETUFfRklGT19DT04pOw0KIH0NCiANCiBzdGF0aWMgdW5zaWduZWQg aW50IHJkbWFfZm10X2NvbnZlcnQoc3RydWN0IG10a19kaXNwX3JkbWEgKnJkbWEsDQpAQCAtMTk4 LDcgKzIwMSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX3JkbWFfbGF5ZXJfbnIoc3RydWN0 IG10a19kZHBfY29tcCAqY29tcCkNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX3JkbWFfbGF5ZXJf Y29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgsDQotCQkJ CSAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUpDQorCQkJCSAgc3RydWN0IG10a19wbGFu ZV9zdGF0ZSAqc3RhdGUsDQorCQkJCSAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQog CXN0cnVjdCBtdGtfZGlzcF9yZG1hICpyZG1hID0gY29tcF90b19yZG1hKGNvbXApOw0KIAlzdHJ1 Y3QgbXRrX3BsYW5lX3BlbmRpbmdfc3RhdGUgKnBlbmRpbmcgPSAmc3RhdGUtPnBlbmRpbmc7DQpA QCAtMjA4LDI0ICsyMTIsMjcgQEAgc3RhdGljIHZvaWQgbXRrX3JkbWFfbGF5ZXJfY29uZmlnKHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgsDQogCXVuc2lnbmVkIGlu dCBjb247DQogDQogCWNvbiA9IHJkbWFfZm10X2NvbnZlcnQocmRtYSwgZm10KTsNCi0Jd3JpdGVs X3JlbGF4ZWQoY29uLCBjb21wLT5yZWdzICsgRElTUF9SRE1BX01FTV9DT04pOw0KKwltdGtfZGRw X3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIGNvbiwgY29tcCwgRElTUF9SRE1BX01FTV9DT04pOw0K IA0KIAlpZiAoZm10ID09IERSTV9GT1JNQVRfVVlWWSB8fCBmbXQgPT0gRFJNX0ZPUk1BVF9ZVVlW KSB7DQotCQlyZG1hX3VwZGF0ZV9iaXRzKGNvbXAsIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwN Ci0JCQkJIFJETUFfTUFUUklYX0VOQUJMRSwgUkRNQV9NQVRSSVhfRU5BQkxFKTsNCi0JCXJkbWFf dXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRNQV9TSVpFX0NPTl8wLA0KLQkJCQkgUkRNQV9N QVRSSVhfSU5UX01UWF9TRUwsDQotCQkJCSBSRE1BX01BVFJJWF9JTlRfTVRYX0JUNjAxX3RvX1JH Qik7DQorCQltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJETUFfTUFUUklYX0VOQUJMRSwg Y29tcCwNCisJCQkJICAgRElTUF9SRUdfUkRNQV9TSVpFX0NPTl8wLA0KKwkJCQkgICBSRE1BX01B VFJJWF9FTkFCTEUpOw0KKwkJbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBSRE1BX01BVFJJ WF9JTlRfTVRYX0JUNjAxX3RvX1JHQiwNCisJCQkJICAgY29tcCwgRElTUF9SRUdfUkRNQV9TSVpF X0NPTl8wLA0KKwkJCQkgICBSRE1BX01BVFJJWF9JTlRfTVRYX1NFTCk7DQogCX0gZWxzZSB7DQot CQlyZG1hX3VwZGF0ZV9iaXRzKGNvbXAsIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwNCi0JCQkJ IFJETUFfTUFUUklYX0VOQUJMRSwgMCk7DQorCQltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3Qs IDAsIGNvbXAsDQorCQkJCSAgIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwNCisJCQkJICAgUkRN QV9NQVRSSVhfRU5BQkxFKTsNCiAJfQ0KKwltdGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9wa3Qs IGFkZHIsIGNvbXAsIERJU1BfUkRNQV9NRU1fU1RBUlRfQUREUik7DQorCW10a19kZHBfd3JpdGVf cmVsYXhlZChjbWRxX3BrdCwgcGl0Y2gsIGNvbXAsIERJU1BfUkRNQV9NRU1fU1JDX1BJVENIKTsN CisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgUkRNQV9NRU1fR01DLCBjb21wLA0KKwkJICAgICAg RElTUF9SRE1BX01FTV9HTUNfU0VUVElOR18wKTsNCisJbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFf cGt0LCBSRE1BX01PREVfTUVNT1JZLCBjb21wLA0KKwkJCSAgIERJU1BfUkVHX1JETUFfR0xPQkFM X0NPTiwgUkRNQV9NT0RFX01FTU9SWSk7DQogDQotCXdyaXRlbF9yZWxheGVkKGFkZHIsIGNvbXAt PnJlZ3MgKyBESVNQX1JETUFfTUVNX1NUQVJUX0FERFIpOw0KLQl3cml0ZWxfcmVsYXhlZChwaXRj aCwgY29tcC0+cmVncyArIERJU1BfUkRNQV9NRU1fU1JDX1BJVENIKTsNCi0Jd3JpdGVsKFJETUFf TUVNX0dNQywgY29tcC0+cmVncyArIERJU1BfUkRNQV9NRU1fR01DX1NFVFRJTkdfMCk7DQotCXJk bWFfdXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRNQV9HTE9CQUxfQ09OLA0KLQkJCSBSRE1B X01PREVfTUVNT1JZLCBSRE1BX01PREVfTUVNT1JZKTsNCiB9DQogDQogc3RhdGljIGNvbnN0IHN0 cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgbXRrX2Rpc3BfcmRtYV9mdW5jcyA9IHsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCmluZGV4IDkyYjNiMzk3YzZjNC4uOWYxZmYy ZjNmMTA0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0 Yy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCkBAIC0z MTEsNyArMzExLDcgQEAgc3RhdGljIGludCBtdGtfY3J0Y19kZHBfaHdfaW5pdChzdHJ1Y3QgbXRr X2RybV9jcnRjICptdGtfY3J0YykNCiAJCWlmIChwcmV2ID09IEREUF9DT01QT05FTlRfT1ZMMCkN CiAJCQltdGtfZGRwX2NvbXBfYmdjbHJfaW5fb24oY29tcCk7DQogDQotCQltdGtfZGRwX2NvbXBf Y29uZmlnKGNvbXAsIHdpZHRoLCBoZWlnaHQsIHZyZWZyZXNoLCBicGMpOw0KKwkJbXRrX2RkcF9j b21wX2NvbmZpZyhjb21wLCB3aWR0aCwgaGVpZ2h0LCB2cmVmcmVzaCwgYnBjLCBOVUxMKTsNCiAJ CW10a19kZHBfY29tcF9zdGFydChjb21wKTsNCiAJfQ0KIA0KQEAgLTMyNiw3ICszMjYsNyBAQCBz dGF0aWMgaW50IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19j cnRjKQ0KIAkJY29tcCA9IG10a19kcm1fZGRwX2NvbXBfZm9yX3BsYW5lKGNydGMsIHBsYW5lLCAm bG9jYWxfbGF5ZXIpOw0KIAkJaWYgKGNvbXApDQogCQkJbXRrX2RkcF9jb21wX2xheWVyX2NvbmZp Zyhjb21wLCBsb2NhbF9sYXllciwNCi0JCQkJCQkgIHBsYW5lX3N0YXRlKTsNCisJCQkJCQkgIHBs YW5lX3N0YXRlLCBOVUxMKTsNCiAJfQ0KIA0KIAlyZXR1cm4gMDsNCkBAIC0zOTMsNyArMzkzLDcg QEAgc3RhdGljIHZvaWQgbXRrX2NydGNfZGRwX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMp DQogCWlmIChzdGF0ZS0+cGVuZGluZ19jb25maWcpIHsNCiAJCW10a19kZHBfY29tcF9jb25maWco Y29tcCwgc3RhdGUtPnBlbmRpbmdfd2lkdGgsDQogCQkJCSAgICBzdGF0ZS0+cGVuZGluZ19oZWln aHQsDQotCQkJCSAgICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCk7DQorCQkJCSAgICBzdGF0 ZS0+cGVuZGluZ192cmVmcmVzaCwgMCwgTlVMTCk7DQogDQogCQlzdGF0ZS0+cGVuZGluZ19jb25m aWcgPSBmYWxzZTsNCiAJfQ0KQEAgLTQxMyw3ICs0MTMsNyBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0 Y19kZHBfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiANCiAJCQlpZiAoY29tcCkNCiAJ CQkJbXRrX2RkcF9jb21wX2xheWVyX2NvbmZpZyhjb21wLCBsb2NhbF9sYXllciwNCi0JCQkJCQkJ ICBwbGFuZV9zdGF0ZSk7DQorCQkJCQkJCSAgcGxhbmVfc3RhdGUsIE5VTEwpOw0KIAkJCXBsYW5l X3N0YXRlLT5wZW5kaW5nLmNvbmZpZyA9IGZhbHNlOw0KIAkJfQ0KIAkJbXRrX2NydGMtPnBlbmRp bmdfcGxhbmVzID0gZmFsc2U7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZGRwX2NvbXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rk cF9jb21wLmMNCmluZGV4IDM0MDdkMzhhZmY4Zi4uZTkzZTQ2NzI2ZGU2IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYw0KKysrIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYw0KQEAgLTEyLDcgKzEyLDggQEAN CiAjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+DQogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3Jt Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KLQ0KKyNpbmNsdWRlIDxk cm0vZHJtUC5oPg0KKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaD4NCiAj aW5jbHVkZSAibXRrX2RybV9kcnYuaCINCiAjaW5jbHVkZSAibXRrX2RybV9wbGFuZS5oIg0KICNp bmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiDQpAQCAtNzYsMzYgKzc3LDgyIEBADQogI2RlZmlu ZSBESVRIRVJfQUREX0xTSElGVF9HKHgpCQkJKCgoeCkgJiAweDcpIDw8IDQpDQogI2RlZmluZSBE SVRIRVJfQUREX1JTSElGVF9HKHgpCQkJKCgoeCkgJiAweDcpIDw8IDApDQogDQordm9pZCBtdGtf ZGRwX3dyaXRlKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QsIHVuc2lnbmVkIGludCB2YWx1ZSwN CisJCSAgIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBvZmZzZXQpDQor ew0KKwlpZiAoY21kcV9wa3QpDQorI2lmZGVmIENPTkZJR19NVEtfQ01EUQ0KKwkJY21kcV9wa3Rf d3JpdGUoY21kcV9wa3QsIGNvbXAtPnN1YnN5cywNCisJCQkgICAgICAgY29tcC0+cmVnc19wYSAr IG9mZnNldCwgdmFsdWUpOw0KKyNlbmRpZg0KKwllbHNlDQorCQl3cml0ZWwodmFsdWUsIGNvbXAt PnJlZ3MgKyBvZmZzZXQpOw0KK30NCisNCit2b2lkIG10a19kZHBfd3JpdGVfcmVsYXhlZChzdHJ1 Y3QgY21kcV9wa3QgKmNtZHFfcGt0LCB1bnNpZ25lZCBpbnQgdmFsdWUsDQorCQkJICAgc3RydWN0 IG10a19kZHBfY29tcCAqY29tcCwNCisJCQkgICB1bnNpZ25lZCBpbnQgb2Zmc2V0KQ0KK3sNCisJ aWYgKGNtZHFfcGt0KQ0KKyNpZmRlZiBDT05GSUdfTVRLX0NNRFENCisJCWNtZHFfcGt0X3dyaXRl KGNtZHFfcGt0LCBjb21wLT5zdWJzeXMsDQorCQkJICAgICAgIGNvbXAtPnJlZ3NfcGEgKyBvZmZz ZXQsIHZhbHVlKTsNCisjZW5kaWYNCisJZWxzZQ0KKwkJd3JpdGVsX3JlbGF4ZWQodmFsdWUsIGNv bXAtPnJlZ3MgKyBvZmZzZXQpOw0KK30NCisNCit2b2lkIG10a19kZHBfd3JpdGVfbWFzayhzdHJ1 Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KKwkJCXVuc2lnbmVkIGludCB2YWx1ZSwNCisJCQlzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KKwkJCXVuc2lnbmVkIGludCBvZmZzZXQsDQorCQkJdW5z aWduZWQgaW50IG1hc2spDQorew0KKwlpZiAoY21kcV9wa3QpIHsNCisjaWZkZWYgQ09ORklHX01U S19DTURRDQorCQljbWRxX3BrdF93cml0ZV9tYXNrKGNtZHFfcGt0LCBjb21wLT5zdWJzeXMsDQor CQkJCSAgICBjb21wLT5yZWdzX3BhICsgb2Zmc2V0LCB2YWx1ZSwgbWFzayk7DQorI2VuZGlmDQor CX0gZWxzZSB7DQorCQl1MzIgdG1wID0gcmVhZGwoY29tcC0+cmVncyArIG9mZnNldCk7DQorDQor CQl0bXAgPSAodG1wICYgfm1hc2spIHwgKHZhbHVlICYgbWFzayk7DQorCQl3cml0ZWwodG1wLCBj b21wLT5yZWdzICsgb2Zmc2V0KTsNCisJfQ0KK30NCisNCiB2b2lkIG10a19kaXRoZXJfc2V0KHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBicGMsDQotCQkgICAgdW5zaWdu ZWQgaW50IENGRykNCisJCSAgICB1bnNpZ25lZCBpbnQgQ0ZHLCBzdHJ1Y3QgY21kcV9wa3QgKmNt ZHFfcGt0KQ0KIHsNCiAJLyogSWYgYnBjIGVxdWFsIHRvIDAsIHRoZSBkaXRoZXJpbmcgZnVuY3Rp b24gZGlkbid0IGJlIGVuYWJsZWQgKi8NCiAJaWYgKGJwYyA9PSAwKQ0KIAkJcmV0dXJuOw0KIA0K IAlpZiAoYnBjID49IE1US19NSU5fQlBDKSB7DQotCQl3cml0ZWwoMCwgY29tcC0+cmVncyArIERJ U1BfRElUSEVSXzUpOw0KLQkJd3JpdGVsKDAsIGNvbXAtPnJlZ3MgKyBESVNQX0RJVEhFUl83KTsN Ci0JCXdyaXRlbChESVRIRVJfTFNCX0VSUl9TSElGVF9SKE1US19NQVhfQlBDIC0gYnBjKSB8DQot CQkgICAgICAgRElUSEVSX0FERF9MU0hJRlRfUihNVEtfTUFYX0JQQyAtIGJwYykgfA0KLQkJICAg ICAgIERJVEhFUl9ORVdfQklUX01PREUsDQotCQkgICAgICAgY29tcC0+cmVncyArIERJU1BfRElU SEVSXzE1KTsNCi0JCXdyaXRlbChESVRIRVJfTFNCX0VSUl9TSElGVF9CKE1US19NQVhfQlBDIC0g YnBjKSB8DQotCQkgICAgICAgRElUSEVSX0FERF9MU0hJRlRfQihNVEtfTUFYX0JQQyAtIGJwYykg fA0KLQkJICAgICAgIERJVEhFUl9MU0JfRVJSX1NISUZUX0coTVRLX01BWF9CUEMgLSBicGMpIHwN Ci0JCSAgICAgICBESVRIRVJfQUREX0xTSElGVF9HKE1US19NQVhfQlBDIC0gYnBjKSwNCi0JCSAg ICAgICBjb21wLT5yZWdzICsgRElTUF9ESVRIRVJfMTYpOw0KLQkJd3JpdGVsKERJU1BfRElUSEVS SU5HLCBjb21wLT5yZWdzICsgQ0ZHKTsNCisJCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIDAsIGNv bXAsIERJU1BfRElUSEVSXzUpOw0KKwkJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgMCwgY29tcCwg RElTUF9ESVRIRVJfNyk7DQorCQltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LA0KKwkJCSAgICAgIERJ VEhFUl9MU0JfRVJSX1NISUZUX1IoTVRLX01BWF9CUEMgLSBicGMpIHwNCisJCQkgICAgICBESVRI RVJfQUREX0xTSElGVF9SKE1US19NQVhfQlBDIC0gYnBjKSB8DQorCQkJICAgICAgRElUSEVSX05F V19CSVRfTU9ERSwNCisJCQkgICAgICBjb21wLCBESVNQX0RJVEhFUl8xNSk7DQorCQltdGtfZGRw X3dyaXRlKGNtZHFfcGt0LA0KKwkJCSAgICAgIERJVEhFUl9MU0JfRVJSX1NISUZUX0IoTVRLX01B WF9CUEMgLSBicGMpIHwNCisJCQkgICAgICBESVRIRVJfQUREX0xTSElGVF9CKE1US19NQVhfQlBD IC0gYnBjKSB8DQorCQkJICAgICAgRElUSEVSX0xTQl9FUlJfU0hJRlRfRyhNVEtfTUFYX0JQQyAt IGJwYykgfA0KKwkJCSAgICAgIERJVEhFUl9BRERfTFNISUZUX0coTVRLX01BWF9CUEMgLSBicGMp LA0KKwkJCSAgICAgIGNvbXAsIERJU1BfRElUSEVSXzE2KTsNCisJCW10a19kZHBfd3JpdGUoY21k cV9wa3QsIERJU1BfRElUSEVSSU5HLCBjb21wLCBDRkcpOw0KIAl9DQogfQ0KIA0KIHN0YXRpYyB2 b2lkIG10a19vZF9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50 IHcsDQogCQkJICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAg dW5zaWduZWQgaW50IGJwYykNCisJCQkgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpDQogew0KLQl3cml0ZWwodyA8PCAxNiB8IGgsIGNvbXAtPnJlZ3MgKyBESVNQ X09EX1NJWkUpOw0KLQl3cml0ZWwoT0RfUkVMQVlNT0RFLCBjb21wLT5yZWdzICsgRElTUF9PRF9D RkcpOw0KLQltdGtfZGl0aGVyX3NldChjb21wLCBicGMsIERJU1BfT0RfQ0ZHKTsNCisJbXRrX2Rk cF93cml0ZShjbWRxX3BrdCwgdyA8PCAxNiB8IGgsIGNvbXAsIERJU1BfT0RfU0laRSk7DQorCW10 a19kZHBfd3JpdGUoY21kcV9wa3QsIE9EX1JFTEFZTU9ERSwgY29tcCwgRElTUF9PRF9DRkcpOw0K KwltdGtfZGl0aGVyX3NldChjb21wLCBicGMsIERJU1BfT0RfQ0ZHLCBjbWRxX3BrdCk7DQogfQ0K IA0KIHN0YXRpYyB2b2lkIG10a19vZF9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0K QEAgLTEyMCw5ICsxNjcsOSBAQCBzdGF0aWMgdm9pZCBtdGtfdWZvZV9zdGFydChzdHJ1Y3QgbXRr X2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19hYWxfY29uZmlnKHN0cnVjdCBt dGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LA0KIAkJCSAgIHVuc2lnbmVkIGludCBo LCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgdW5zaWduZWQgaW50IGJwYykNCisJCQkg ICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCi0Jd3Jp dGVsKGggPDwgMTYgfCB3LCBjb21wLT5yZWdzICsgRElTUF9BQUxfU0laRSk7DQorCW10a19kZHBf d3JpdGUoY21kcV9wa3QsIGggPDwgMTYgfCB3LCBjb21wLCBESVNQX0FBTF9TSVpFKTsNCiB9DQog DQogc3RhdGljIHZvaWQgbXRrX2FhbF9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0K QEAgLTEzNywxMCArMTg0LDEwIEBAIHN0YXRpYyB2b2lkIG10a19hYWxfc3RvcChzdHJ1Y3QgbXRr X2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19jY29ycl9jb25maWcoc3RydWN0 IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsDQogCQkJICAgICB1bnNpZ25lZCBp bnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgICAgdW5zaWduZWQgaW50IGJwYykN CisJCQkgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQog ew0KLQl3cml0ZWwoaCA8PCAxNiB8IHcsIGNvbXAtPnJlZ3MgKyBESVNQX0NDT1JSX1NJWkUpOw0K LQl3cml0ZWwoQ0NPUlJfUkVMQVlfTU9ERSwgY29tcC0+cmVncyArIERJU1BfQ0NPUlJfQ0ZHKTsN CisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgaCA8PCAxNiB8IHcsIGNvbXAsIERJU1BfQ0NPUlJf U0laRSk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIENDT1JSX1JFTEFZX01PREUsIGNvbXAs IERJU1BfQ0NPUlJfQ0ZHKTsNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX2Njb3JyX3N0YXJ0KHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTU1LDEwICsyMDIsMTAgQEAgc3RhdGljIHZv aWQgbXRrX2Njb3JyX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCiANCiBzdGF0aWMg dm9pZCBtdGtfZGl0aGVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25l ZCBpbnQgdywNCiAJCQkgICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNo LA0KLQkJCSAgICAgIHVuc2lnbmVkIGludCBicGMpDQorCQkJICAgICAgdW5zaWduZWQgaW50IGJw Yywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQotCXdyaXRlbChoIDw8IDE2IHwgdywg Y29tcC0+cmVncyArIERJU1BfRElUSEVSX1NJWkUpOw0KLQl3cml0ZWwoRElUSEVSX1JFTEFZX01P REUsIGNvbXAtPnJlZ3MgKyBESVNQX0RJVEhFUl9DRkcpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCBoIDw8IDE2IHwgdywgY29tcCwgRElTUF9ESVRIRVJfU0laRSk7DQorCW10a19kZHBfd3Jp dGUoY21kcV9wa3QsIERJVEhFUl9SRUxBWV9NT0RFLCBjb21wLCBESVNQX0RJVEhFUl9DRkcpOw0K IH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAg KmNvbXApDQpAQCAtMTczLDEwICsyMjAsMTAgQEAgc3RhdGljIHZvaWQgbXRrX2RpdGhlcl9zdG9w KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogDQogc3RhdGljIHZvaWQgbXRrX2dhbW1hX2Nv bmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywNCiAJCQkgICAg IHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgICB1bnNpZ25l ZCBpbnQgYnBjKQ0KKwkJCSAgICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpj bWRxX3BrdCkNCiB7DQotCXdyaXRlbChoIDw8IDE2IHwgdywgY29tcC0+cmVncyArIERJU1BfR0FN TUFfU0laRSk7DQotCW10a19kaXRoZXJfc2V0KGNvbXAsIGJwYywgRElTUF9HQU1NQV9DRkcpOw0K KwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCBoIDw8IDE2IHwgdywgY29tcCwgRElTUF9HQU1NQV9T SVpFKTsNCisJbXRrX2RpdGhlcl9zZXQoY29tcCwgYnBjLCBESVNQX0dBTU1BX0NGRywgY21kcV9w a3QpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfZ2FtbWFfc3RhcnQoc3RydWN0IG10a19kZHBf Y29tcCAqY29tcCkNCkBAIC0zMjQsNiArMzcxLDkgQEAgaW50IG10a19kZHBfY29tcF9pbml0KHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpub2RlLA0KIAkJICAgICAgY29u c3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyAqZnVuY3MpDQogew0KIAlzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpjb21wX3BkZXY7DQorCXN0cnVjdCByZXNvdXJjZSByZXM7DQorCXN0cnVjdCBj bWRxX2NsaWVudF9yZWcgKmNtZHFfcmVnOw0KKwlpbnQgcmV0ID0gMDsNCiANCiAJaWYgKGNvbXBf aWQgPCAwIHx8IGNvbXBfaWQgPj0gRERQX0NPTVBPTkVOVF9JRF9NQVgpDQogCQlyZXR1cm4gLUVJ TlZBTDsNCkBAIC0zNTgsNiArNDA4LDM0IEBAIGludCBtdGtfZGRwX2NvbXBfaW5pdChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwNCiAJfQ0KIAljb21wLT5kZXYg PSAmY29tcF9wZGV2LT5kZXY7DQogDQorI2lmZGVmIENPTkZJR19NVEtfQ01EUQ0KKwlpZiAob2Zf YWRkcmVzc190b19yZXNvdXJjZShub2RlLCAwLCAmcmVzKSAhPSAwKSB7DQorCQlkZXZfZXJyKGRl diwgIk1pc3NpbmcgcmVnIGluICVzIG5vZGVcbiIsDQorCQkJbm9kZS0+ZnVsbF9uYW1lKTsNCisJ CXJldHVybiAtRUlOVkFMOw0KKwl9DQorCWNvbXAtPnJlZ3NfcGEgPSByZXMuc3RhcnQ7DQorDQor CWNvbXBfcGRldiA9IG9mX2ZpbmRfZGV2aWNlX2J5X25vZGUobm9kZSk7DQorCWlmICghY29tcF9w ZGV2KSB7DQorCQlkZXZfd2FybihkZXYsICJXYWl0aW5nIGZvciBjb21wb25lbnQgZGV2aWNlICVz XG4iLA0KKwkJCSBub2RlLT5mdWxsX25hbWUpOw0KKwkJcmV0dXJuIC1FUFJPQkVfREVGRVI7DQor CX0NCisNCisJY21kcV9yZWcgPSBremFsbG9jKHNpemVvZigqY21kcV9yZWcpLCBHRlBfS0VSTkVM KTsNCisJaWYgKCFjbWRxX3JlZykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlyZXQgPSBjbWRx X2Rldl9nZXRfY2xpZW50X3JlZygmY29tcF9wZGV2LT5kZXYsIGNtZHFfcmVnLCAwKTsNCisJaWYg KHJldCAhPSAwKQ0KKwkJZGV2X2RiZygmY29tcF9wZGV2LT5kZXYsDQorCQkJImdldCBtZWRpYXRl ayxnY2UtY2xpZW50LXJlZyBmYWlsIVxuIik7DQorCWVsc2UNCisJCWNvbXAtPnN1YnN5cyA9IGNt ZHFfcmVnLT5zdWJzeXM7DQorDQorCWtmcmVlKGNtZHFfcmVnKTsNCisjZW5kaWYNCiAJcmV0dXJu IDA7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2RkcF9jb21wLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5o DQppbmRleCBkYmZiOTBlOWI5Y2YuLjM4NGFiYWU1YThjOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgNCkBAIC02OSwxMCArNjksMTEgQEAgZW51bSBt dGtfZGRwX2NvbXBfaWQgew0KIH07DQogDQogc3RydWN0IG10a19kZHBfY29tcDsNCi0NCitzdHJ1 Y3QgY21kcV9wa3Q7DQogc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyB7DQogCXZvaWQgKCpjb25m aWcpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LA0KLQkJICAgICAg IHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsIHVuc2lnbmVkIGludCBicGMp Ow0KKwkJICAgICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQorCQkg ICAgICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7DQogCXZv aWQgKCpzdGFydCkoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCk7DQogCXZvaWQgKCpzdG9wKShz dHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKTsNCiAJdm9pZCAoKmVuYWJsZV92YmxhbmspKHN0cnVj dCBtdGtfZGRwX2NvbXAgKmNvbXAsIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7DQpAQCAtODUsNyAr ODYsOCBAQCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIHsNCiAJCQkgICB1bnNpZ25lZCBpbnQg aWR4LA0KIAkJCSAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlKTsNCiAJdm9pZCAoKmxh eWVyX2NvbmZpZykoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCwN Ci0JCQkgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlKTsNCisJCQkgICAgIHN0cnVj dCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KKwkJCSAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRx X3BrdCk7DQogCXZvaWQgKCpnYW1tYV9zZXQpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQog CQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKTsNCiAJdm9pZCAoKmJnY2xyX2luX29u KShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKTsNCkBAIC05OSwxNCArMTAxLDE3IEBAIHN0cnVj dCBtdGtfZGRwX2NvbXAgew0KIAlzdHJ1Y3QgZGV2aWNlICpkZXY7DQogCWVudW0gbXRrX2RkcF9j b21wX2lkIGlkOw0KIAljb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzICpmdW5jczsNCisJ cmVzb3VyY2Vfc2l6ZV90IHJlZ3NfcGE7DQorCXU4IHN1YnN5czsNCiB9Ow0KIA0KIHN0YXRpYyBp bmxpbmUgdm9pZCBtdGtfZGRwX2NvbXBfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAs DQogCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgdywgdW5zaWduZWQgaW50IGgsDQotCQkJCSAgICAg ICB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsIHVuc2lnbmVkIGludCBicGMpDQorCQkJCSAgICAgICB1 bnNpZ25lZCBpbnQgdnJlZnJlc2gsIHVuc2lnbmVkIGludCBicGMsDQorCQkJCSAgICAgICBzdHJ1 Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCiAJaWYgKGNvbXAtPmZ1bmNzICYmIGNvbXAtPmZ1 bmNzLT5jb25maWcpDQotCQljb21wLT5mdW5jcy0+Y29uZmlnKGNvbXAsIHcsIGgsIHZyZWZyZXNo LCBicGMpOw0KKwkJY29tcC0+ZnVuY3MtPmNvbmZpZyhjb21wLCB3LCBoLCB2cmVmcmVzaCwgYnBj LCBjbWRxX3BrdCk7DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtfZGRwX2NvbXBfcHJl cGFyZShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KQEAgLTE3NCwxMCArMTc5LDExIEBAIHN0 YXRpYyBpbmxpbmUgaW50IG10a19kZHBfY29tcF9sYXllcl9jaGVjayhzdHJ1Y3QgbXRrX2RkcF9j b21wICpjb21wLA0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtfZGRwX2NvbXBfbGF5ZXJfY29u ZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQogCQkJCQkgICAgIHVuc2lnbmVkIGludCBp ZHgsDQotCQkJCQkgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlKQ0KKwkJCQkJICAg ICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSwNCisJCQkJCSAgICAgc3RydWN0IGNtZHFf cGt0ICpjbWRxX3BrdCkNCiB7DQogCWlmIChjb21wLT5mdW5jcyAmJiBjb21wLT5mdW5jcy0+bGF5 ZXJfY29uZmlnKQ0KLQkJY29tcC0+ZnVuY3MtPmxheWVyX2NvbmZpZyhjb21wLCBpZHgsIHN0YXRl KTsNCisJCWNvbXAtPmZ1bmNzLT5sYXllcl9jb25maWcoY29tcCwgaWR4LCBzdGF0ZSwgY21kcV9w a3QpOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2RkcF9nYW1tYV9zZXQoc3RydWN0 IG10a19kZHBfY29tcCAqY29tcCwNCkBAIC0yMDcsNiArMjEzLDEzIEBAIGludCBtdGtfZGRwX2Nv bXBfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqY29tcF9ub2Rl LA0KIGludCBtdGtfZGRwX2NvbXBfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCk7DQogdm9pZCBtdGtfZGRwX2NvbXBfdW5yZWdpc3Rlcihz dHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKTsNCiB2b2lk IG10a19kaXRoZXJfc2V0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBi cGMsDQotCQkgICAgdW5zaWduZWQgaW50IENGRyk7DQotDQorCQkgICAgdW5zaWduZWQgaW50IENG Rywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7DQorZW51bSBtdGtfZGRwX2NvbXBfdHlwZSBt dGtfZGRwX2NvbXBfZ2V0X3R5cGUoZW51bSBtdGtfZGRwX2NvbXBfaWQgY29tcF9pZCk7DQordm9p ZCBtdGtfZGRwX3dyaXRlKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QsIHVuc2lnbmVkIGludCB2 YWx1ZSwNCisJCSAgIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBvZmZz ZXQpOw0KK3ZvaWQgbXRrX2RkcF93cml0ZV9yZWxheGVkKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9w a3QsIHVuc2lnbmVkIGludCB2YWx1ZSwNCisJCQkgICBzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w LCB1bnNpZ25lZCBpbnQgb2Zmc2V0KTsNCit2b2lkIG10a19kZHBfd3JpdGVfbWFzayhzdHJ1Y3Qg Y21kcV9wa3QgKmNtZHFfcGt0LCB1bnNpZ25lZCBpbnQgdmFsdWUsDQorCQkJc3RydWN0IG10a19k ZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IG9mZnNldCwNCisJCQl1bnNpZ25lZCBpbnQgbWFz ayk7DQogI2VuZGlmIC8qIE1US19EUk1fRERQX0NPTVBfSCAqLw0KLS0gDQoyLjE4LjANCg==