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, URIBL_BLOCKED,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 58E02C432C0 for ; Tue, 26 Nov 2019 06:29:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0D23E2071A for ; Tue, 26 Nov 2019 06:29:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="SjDaJNQ9" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727509AbfKZG3z (ORCPT ); Tue, 26 Nov 2019 01:29:55 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:37573 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725769AbfKZG3u (ORCPT ); Tue, 26 Nov 2019 01:29:50 -0500 X-UUID: e7293a26a0d745fbb4174165556e2b56-20191126 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=zfEggDbvHTs5nAVorZVJVjvQXSTUXBMcN54yu/I/+PE=; b=SjDaJNQ9eLiDAsxqYxuY0bXZ7ZrHUMW9VBExe9UVCiZuyax+RWkWN2hGQutgjmQx+VZHgPZT9h8P/Qitz3jg7RDWeLswvYt/+biNEpv97TnBxVdMB+OpB5LCsbm8YaOEl006Iek1OR25c4puyeuvFXTMQEWafQaCsgJJ457j+SM=; X-UUID: e7293a26a0d745fbb4174165556e2b56-20191126 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 1513247651; Tue, 26 Nov 2019 14:29:36 +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; Tue, 26 Nov 2019 14:28:59 +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; Tue, 26 Nov 2019 14:29:15 +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 6/7] drm/mediatek: support CMDQ interface in ddp component Date: Tue, 26 Nov 2019 14:29:31 +0800 Message-ID: <20191126062932.19773-7-bibby.hsieh@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20191126062932.19773-1-bibby.hsieh@mediatek.com> References: <20191126062932.19773-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 ICB8ICA2NSArKysrKystLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9y ZG1hLmMgICAgfCAgNDMgKysrKy0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2NydGMuYyAgICAgfCAgMTEgKy0NCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k ZHBfY29tcC5jIHwgMTIwICsrKysrKysrKysrKysrLS0tLS0tDQogZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaCB8ICA1NSArKysrKystLS0NCiA2IGZpbGVzIGNoYW5n ZWQsIDE5MCBpbnNlcnRpb25zKCspLCAxMTEgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9jb2xvci5jDQppbmRleCA1OWRlMmE0NmFhNDkuLjZmYjBkNjk4 M2E0YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9jb2xv ci5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYw0KQEAg LTksNiArOSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KICNpbmNsdWRlIDxs aW51eC9vZl9pcnEuaD4NCiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQorI2lu Y2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oPg0KIA0KICNpbmNsdWRlICJtdGtf ZHJtX2NydGMuaCINCiAjaW5jbHVkZSAibXRrX2RybV9kZHBfY29tcC5oIg0KQEAgLTQ1LDEyICs0 NiwxMiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBtdGtfZGlzcF9jb2xvciAqY29tcF90b19jb2xv cihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19jb2xvcl9j b25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsDQogCQkJICAg ICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgICAgdW5zaWdu ZWQgaW50IGJwYykNCisJCQkgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3BrdCAq Y21kcV9wa3QpDQogew0KIAlzdHJ1Y3QgbXRrX2Rpc3BfY29sb3IgKmNvbG9yID0gY29tcF90b19j b2xvcihjb21wKTsNCiANCi0Jd3JpdGVsKHcsIGNvbXAtPnJlZ3MgKyBESVNQX0NPTE9SX1dJRFRI KGNvbG9yKSk7DQotCXdyaXRlbChoLCBjb21wLT5yZWdzICsgRElTUF9DT0xPUl9IRUlHSFQoY29s b3IpKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgdywgY29tcCwgRElTUF9DT0xPUl9XSURU SChjb2xvcikpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCBoLCBjb21wLCBESVNQX0NPTE9S X0hFSUdIVChjb2xvcikpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfY29sb3Jfc3RhcnQoc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bf b3ZsLmMNCmluZGV4IDcyMmE1YWRiNzlkYy4uMDczMmNkM2VlNGM4IDEwMDY0NA0KLS0tIGEvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jDQorKysgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMNCkBAIC0xMiw2ICsxMiw3IEBADQogI2luY2x1ZGUg PGxpbnV4L29mX2lycS5oPg0KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCiAj aW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0 ZWsvbXRrLWNtZHEuaD4NCiANCiAjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiDQogI2luY2x1ZGUg Im10a19kcm1fZGRwX2NvbXAuaCINCkBAIC0xMjUsMTQgKzEyNiwxNSBAQCBzdGF0aWMgdm9pZCBt dGtfb3ZsX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCiANCiBzdGF0aWMgdm9pZCBt dGtfb3ZsX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywN CiAJCQkgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgIHVu c2lnbmVkIGludCBicGMpDQorCQkJICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0 ICpjbWRxX3BrdCkNCiB7DQogCWlmICh3ICE9IDAgJiYgaCAhPSAwKQ0KLQkJd3JpdGVsX3JlbGF4 ZWQoaCA8PCAxNiB8IHcsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfUk9JX1NJWkUpOw0KLQl3 cml0ZWxfcmVsYXhlZCgweDAsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfUk9JX0JHQ0xSKTsN CisJCW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgaCA8PCAxNiB8IHcsIGNvbXAsDQor CQkJCSAgICAgIERJU1BfUkVHX09WTF9ST0lfU0laRSk7DQorCW10a19kZHBfd3JpdGVfcmVsYXhl ZChjbWRxX3BrdCwgMHgwLCBjb21wLCBESVNQX1JFR19PVkxfUk9JX0JHQ0xSKTsNCiANCi0Jd3Jp dGVsKDB4MSwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9SU1QpOw0KLQl3cml0ZWwoMHgwLCBj b21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1JTVCk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3Qs IDB4MSwgY29tcCwgRElTUF9SRUdfT1ZMX1JTVCk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3Qs IDB4MCwgY29tcCwgRElTUF9SRUdfT1ZMX1JTVCk7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBp bnQgbXRrX292bF9sYXllcl9ucihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KQEAgLTE3Niwx NiArMTc4LDE2IEBAIHN0YXRpYyBpbnQgbXRrX292bF9sYXllcl9jaGVjayhzdHJ1Y3QgbXRrX2Rk cF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3Rh dGljIHZvaWQgbXRrX292bF9sYXllcl9vbihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNp Z25lZCBpbnQgaWR4KQ0KK3N0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfb24oc3RydWN0IG10a19k ZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCwNCisJCQkgICAgIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpDQogew0KLQl1bnNpZ25lZCBpbnQgcmVnOw0KIAl1bnNpZ25lZCBpbnQgZ21j X3RocnNoZF9sOw0KIAl1bnNpZ25lZCBpbnQgZ21jX3RocnNoZF9oOw0KIAl1bnNpZ25lZCBpbnQg Z21jX3ZhbHVlOw0KIAlzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsICpvdmwgPSBjb21wX3RvX292bChjb21w KTsNCiANCi0Jd3JpdGVsKDB4MSwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9SRE1BX0NUUkwo aWR4KSk7DQotDQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIDB4MSwgY29tcCwNCisJCSAgICAg IERJU1BfUkVHX09WTF9SRE1BX0NUUkwoaWR4KSk7DQogCWdtY190aHJzaGRfbCA9IEdNQ19USFJF U0hPTERfTE9XID4+DQogCQkgICAgICAoR01DX1RIUkVTSE9MRF9CSVRTIC0gb3ZsLT5kYXRhLT5n bWNfYml0cyk7DQogCWdtY190aHJzaGRfaCA9IEdNQ19USFJFU0hPTERfSElHSCA+Pg0KQEAgLTE5 NSwyMiArMTk3LDE5IEBAIHN0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfb24oc3RydWN0IG10a19k ZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCkNCiAJZWxzZQ0KIAkJZ21jX3ZhbHVlID0g Z21jX3RocnNoZF9sIHwgZ21jX3RocnNoZF9sIDw8IDggfA0KIAkJCSAgICBnbWNfdGhyc2hkX2gg PDwgMTYgfCBnbWNfdGhyc2hkX2ggPDwgMjQ7DQotCXdyaXRlbChnbWNfdmFsdWUsIGNvbXAtPnJl Z3MgKyBESVNQX1JFR19PVkxfUkRNQV9HTUMoaWR4KSk7DQotDQotCXJlZyA9IHJlYWRsKGNvbXAt PnJlZ3MgKyBESVNQX1JFR19PVkxfU1JDX0NPTik7DQotCXJlZyA9IHJlZyB8IEJJVChpZHgpOw0K LQl3cml0ZWwocmVnLCBjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1NSQ19DT04pOw0KKwltdGtf ZGRwX3dyaXRlKGNtZHFfcGt0LCBnbWNfdmFsdWUsDQorCQkgICAgICBjb21wLCBESVNQX1JFR19P VkxfUkRNQV9HTUMoaWR4KSk7DQorCW10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgQklUKGlk eCksIGNvbXAsDQorCQkJICAgRElTUF9SRUdfT1ZMX1NSQ19DT04sIEJJVChpZHgpKTsNCiB9DQog DQotc3RhdGljIHZvaWQgbXRrX292bF9sYXllcl9vZmYoc3RydWN0IG10a19kZHBfY29tcCAqY29t cCwgdW5zaWduZWQgaW50IGlkeCkNCitzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX29mZihzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KKwkJCSAgICAgIHN0cnVj dCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KLQl1bnNpZ25lZCBpbnQgcmVnOw0KLQ0KLQlyZWcg PSByZWFkbChjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1NSQ19DT04pOw0KLQlyZWcgPSByZWcg JiB+QklUKGlkeCk7DQotCXdyaXRlbChyZWcsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfU1JD X0NPTik7DQotDQotCXdyaXRlbCgweDAsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfUkRNQV9D VFJMKGlkeCkpOw0KKwltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDAsIGNvbXAsDQorCQkJ ICAgRElTUF9SRUdfT1ZMX1NSQ19DT04sIEJJVChpZHgpKTsNCisJbXRrX2RkcF93cml0ZShjbWRx X3BrdCwgMCwgY29tcCwNCisJCSAgICAgIERJU1BfUkVHX09WTF9SRE1BX0NUUkwoaWR4KSk7DQog fQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgb3ZsX2ZtdF9jb252ZXJ0KHN0cnVjdCBtdGtfZGlz cF9vdmwgKm92bCwgdW5zaWduZWQgaW50IGZtdCkNCkBAIC0yNTAsNyArMjQ5LDggQEAgc3RhdGlj IHVuc2lnbmVkIGludCBvdmxfZm10X2NvbnZlcnQoc3RydWN0IG10a19kaXNwX292bCAqb3ZsLCB1 bnNpZ25lZCBpbnQgZm10KQ0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZp ZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KLQkJCQkgc3Ry dWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUpDQorCQkJCSBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRl ICpzdGF0ZSwNCisJCQkJIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KIAlzdHJ1Y3Qg bXRrX2Rpc3Bfb3ZsICpvdmwgPSBjb21wX3RvX292bChjb21wKTsNCiAJc3RydWN0IG10a19wbGFu ZV9wZW5kaW5nX3N0YXRlICpwZW5kaW5nID0gJnN0YXRlLT5wZW5kaW5nOw0KQEAgLTI2Miw3ICsy NjIsNyBAQCBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9j b21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KIAl1bnNpZ25lZCBpbnQgY29uOw0KIA0KIAlp ZiAoIXBlbmRpbmctPmVuYWJsZSkNCi0JCW10a19vdmxfbGF5ZXJfb2ZmKGNvbXAsIGlkeCk7DQor CQltdGtfb3ZsX2xheWVyX29mZihjb21wLCBpZHgsIGNtZHFfcGt0KTsNCiANCiAJY29uID0gb3Zs X2ZtdF9jb252ZXJ0KG92bCwgZm10KTsNCiAJaWYgKGlkeCAhPSAwKQ0KQEAgLTI3OCwxNCArMjc4 LDE5IEBAIHN0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2Nv bXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgsDQogCQlhZGRyICs9IHBlbmRpbmctPnBpdGNoIC0g MTsNCiAJfQ0KIA0KLQl3cml0ZWxfcmVsYXhlZChjb24sIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19P VkxfQ09OKGlkeCkpOw0KLQl3cml0ZWxfcmVsYXhlZChwaXRjaCwgY29tcC0+cmVncyArIERJU1Bf UkVHX09WTF9QSVRDSChpZHgpKTsNCi0Jd3JpdGVsX3JlbGF4ZWQoc3JjX3NpemUsIGNvbXAtPnJl Z3MgKyBESVNQX1JFR19PVkxfU1JDX1NJWkUoaWR4KSk7DQotCXdyaXRlbF9yZWxheGVkKG9mZnNl dCwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9PRkZTRVQoaWR4KSk7DQotCXdyaXRlbF9yZWxh eGVkKGFkZHIsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfQUREUihvdmwsIGlkeCkpOw0KKwlt dGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIGNvbiwgY29tcCwNCisJCQkgICAgICBESVNQ X1JFR19PVkxfQ09OKGlkeCkpOw0KKwltdGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIHBp dGNoLCBjb21wLA0KKwkJCSAgICAgIERJU1BfUkVHX09WTF9QSVRDSChpZHgpKTsNCisJbXRrX2Rk cF93cml0ZV9yZWxheGVkKGNtZHFfcGt0LCBzcmNfc2l6ZSwgY29tcCwNCisJCQkgICAgICBESVNQ X1JFR19PVkxfU1JDX1NJWkUoaWR4KSk7DQorCW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3Br dCwgb2Zmc2V0LCBjb21wLA0KKwkJCSAgICAgIERJU1BfUkVHX09WTF9PRkZTRVQoaWR4KSk7DQor CW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgYWRkciwgY29tcCwNCisJCQkgICAgICBE SVNQX1JFR19PVkxfQUREUihvdmwsIGlkeCkpOw0KIA0KIAlpZiAocGVuZGluZy0+ZW5hYmxlKQ0K LQkJbXRrX292bF9sYXllcl9vbihjb21wLCBpZHgpOw0KKwkJbXRrX292bF9sYXllcl9vbihjb21w LCBpZHgsIGNtZHFfcGt0KTsNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX292bF9iZ2Nscl9pbl9v bihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2Rpc3BfcmRtYS5jDQppbmRleCAxNWNjNGFlODRhZWUuLmMxYWJkZTM3NDNiZiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMNCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMNCkBAIC0xMCw2ICsxMCw3IEBADQog I2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPg0KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZp Y2UuaD4NCiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9z b2MvbWVkaWF0ZWsvbXRrLWNtZHEuaD4NCiANCiAjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiDQog I2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCINCkBAIC0xMjcsMTUgKzEyOCwxNyBAQCBzdGF0 aWMgdm9pZCBtdGtfcmRtYV9zdG9wKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogDQogc3Rh dGljIHZvaWQgbXRrX3JkbWFfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2ln bmVkIGludCB3aWR0aCwNCiAJCQkgICAgdW5zaWduZWQgaW50IGhlaWdodCwgdW5zaWduZWQgaW50 IHZyZWZyZXNoLA0KLQkJCSAgICB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJCSAgICB1bnNpZ25lZCBp bnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCiAJdW5zaWduZWQgaW50IHRo cmVzaG9sZDsNCiAJdW5zaWduZWQgaW50IHJlZzsNCiAJc3RydWN0IG10a19kaXNwX3JkbWEgKnJk bWEgPSBjb21wX3RvX3JkbWEoY29tcCk7DQogCXUzMiByZG1hX2ZpZm9fc2l6ZTsNCiANCi0JcmRt YV91cGRhdGVfYml0cyhjb21wLCBESVNQX1JFR19SRE1BX1NJWkVfQ09OXzAsIDB4ZmZmLCB3aWR0 aCk7DQotCXJkbWFfdXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRNQV9TSVpFX0NPTl8xLCAw eGZmZmZmLCBoZWlnaHQpOw0KKwltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHdpZHRoLCBj b21wLA0KKwkJCSAgIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwgMHhmZmYpOw0KKwltdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIGhlaWdodCwgY29tcCwNCisJCQkgICBESVNQX1JFR19SRE1B X1NJWkVfQ09OXzEsIDB4ZmZmZmYpOw0KIA0KIAlpZiAocmRtYS0+Zmlmb19zaXplKQ0KIAkJcmRt YV9maWZvX3NpemUgPSByZG1hLT5maWZvX3NpemU7DQpAQCAtMTUyLDcgKzE1NSw3IEBAIHN0YXRp YyB2b2lkIG10a19yZG1hX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25l ZCBpbnQgd2lkdGgsDQogCXJlZyA9IFJETUFfRklGT19VTkRFUkZMT1dfRU4gfA0KIAkgICAgICBS RE1BX0ZJRk9fUFNFVURPX1NJWkUocmRtYV9maWZvX3NpemUpIHwNCiAJICAgICAgUkRNQV9PVVRQ VVRfVkFMSURfRklGT19USFJFU0hPTEQodGhyZXNob2xkKTsNCi0Jd3JpdGVsKHJlZywgY29tcC0+ cmVncyArIERJU1BfUkVHX1JETUFfRklGT19DT04pOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0 LCByZWcsIGNvbXAsIERJU1BfUkVHX1JETUFfRklGT19DT04pOw0KIH0NCiANCiBzdGF0aWMgdW5z aWduZWQgaW50IHJkbWFfZm10X2NvbnZlcnQoc3RydWN0IG10a19kaXNwX3JkbWEgKnJkbWEsDQpA QCAtMTk4LDcgKzIwMSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX3JkbWFfbGF5ZXJfbnIo c3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX3JkbWFf bGF5ZXJfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgs DQotCQkJCSAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUpDQorCQkJCSAgc3RydWN0IG10 a19wbGFuZV9zdGF0ZSAqc3RhdGUsDQorCQkJCSAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkN CiB7DQogCXN0cnVjdCBtdGtfZGlzcF9yZG1hICpyZG1hID0gY29tcF90b19yZG1hKGNvbXApOw0K IAlzdHJ1Y3QgbXRrX3BsYW5lX3BlbmRpbmdfc3RhdGUgKnBlbmRpbmcgPSAmc3RhdGUtPnBlbmRp bmc7DQpAQCAtMjA4LDI0ICsyMTIsMjcgQEAgc3RhdGljIHZvaWQgbXRrX3JkbWFfbGF5ZXJfY29u ZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgsDQogCXVuc2ln bmVkIGludCBjb247DQogDQogCWNvbiA9IHJkbWFfZm10X2NvbnZlcnQocmRtYSwgZm10KTsNCi0J d3JpdGVsX3JlbGF4ZWQoY29uLCBjb21wLT5yZWdzICsgRElTUF9SRE1BX01FTV9DT04pOw0KKwlt dGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIGNvbiwgY29tcCwgRElTUF9SRE1BX01FTV9D T04pOw0KIA0KIAlpZiAoZm10ID09IERSTV9GT1JNQVRfVVlWWSB8fCBmbXQgPT0gRFJNX0ZPUk1B VF9ZVVlWKSB7DQotCQlyZG1hX3VwZGF0ZV9iaXRzKGNvbXAsIERJU1BfUkVHX1JETUFfU0laRV9D T05fMCwNCi0JCQkJIFJETUFfTUFUUklYX0VOQUJMRSwgUkRNQV9NQVRSSVhfRU5BQkxFKTsNCi0J CXJkbWFfdXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRNQV9TSVpFX0NPTl8wLA0KLQkJCQkg UkRNQV9NQVRSSVhfSU5UX01UWF9TRUwsDQotCQkJCSBSRE1BX01BVFJJWF9JTlRfTVRYX0JUNjAx X3RvX1JHQik7DQorCQltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJETUFfTUFUUklYX0VO QUJMRSwgY29tcCwNCisJCQkJICAgRElTUF9SRUdfUkRNQV9TSVpFX0NPTl8wLA0KKwkJCQkgICBS RE1BX01BVFJJWF9FTkFCTEUpOw0KKwkJbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBSRE1B X01BVFJJWF9JTlRfTVRYX0JUNjAxX3RvX1JHQiwNCisJCQkJICAgY29tcCwgRElTUF9SRUdfUkRN QV9TSVpFX0NPTl8wLA0KKwkJCQkgICBSRE1BX01BVFJJWF9JTlRfTVRYX1NFTCk7DQogCX0gZWxz ZSB7DQotCQlyZG1hX3VwZGF0ZV9iaXRzKGNvbXAsIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwN Ci0JCQkJIFJETUFfTUFUUklYX0VOQUJMRSwgMCk7DQorCQltdGtfZGRwX3dyaXRlX21hc2soY21k cV9wa3QsIDAsIGNvbXAsDQorCQkJCSAgIERJU1BfUkVHX1JETUFfU0laRV9DT05fMCwNCisJCQkJ ICAgUkRNQV9NQVRSSVhfRU5BQkxFKTsNCiAJfQ0KKwltdGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21k cV9wa3QsIGFkZHIsIGNvbXAsIERJU1BfUkRNQV9NRU1fU1RBUlRfQUREUik7DQorCW10a19kZHBf d3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgcGl0Y2gsIGNvbXAsIERJU1BfUkRNQV9NRU1fU1JDX1BJ VENIKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgUkRNQV9NRU1fR01DLCBjb21wLA0KKwkJ ICAgICAgRElTUF9SRE1BX01FTV9HTUNfU0VUVElOR18wKTsNCisJbXRrX2RkcF93cml0ZV9tYXNr KGNtZHFfcGt0LCBSRE1BX01PREVfTUVNT1JZLCBjb21wLA0KKwkJCSAgIERJU1BfUkVHX1JETUFf R0xPQkFMX0NPTiwgUkRNQV9NT0RFX01FTU9SWSk7DQogDQotCXdyaXRlbF9yZWxheGVkKGFkZHIs IGNvbXAtPnJlZ3MgKyBESVNQX1JETUFfTUVNX1NUQVJUX0FERFIpOw0KLQl3cml0ZWxfcmVsYXhl ZChwaXRjaCwgY29tcC0+cmVncyArIERJU1BfUkRNQV9NRU1fU1JDX1BJVENIKTsNCi0Jd3JpdGVs KFJETUFfTUVNX0dNQywgY29tcC0+cmVncyArIERJU1BfUkRNQV9NRU1fR01DX1NFVFRJTkdfMCk7 DQotCXJkbWFfdXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRNQV9HTE9CQUxfQ09OLA0KLQkJ CSBSRE1BX01PREVfTUVNT1JZLCBSRE1BX01PREVfTUVNT1JZKTsNCiB9DQogDQogc3RhdGljIGNv bnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgbXRrX2Rpc3BfcmRtYV9mdW5jcyA9IHsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCmluZGV4IGM0NTc1OTFhMTc2ZS4u MzkzNWZhYzYyNGY2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fY3J0Yy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMN CkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIGludCBtdGtfY3J0Y19kZHBfaHdfaW5pdChzdHJ1 Y3QgbXRrX2RybV9jcnRjICptdGtfY3J0YykNCiAJCWlmIChwcmV2ID09IEREUF9DT01QT05FTlRf T1ZMMCkNCiAJCQltdGtfZGRwX2NvbXBfYmdjbHJfaW5fb24oY29tcCk7DQogDQotCQltdGtfZGRw X2NvbXBfY29uZmlnKGNvbXAsIHdpZHRoLCBoZWlnaHQsIHZyZWZyZXNoLCBicGMpOw0KKwkJbXRr X2RkcF9jb21wX2NvbmZpZyhjb21wLCB3aWR0aCwgaGVpZ2h0LCB2cmVmcmVzaCwgYnBjLCBOVUxM KTsNCiAJCW10a19kZHBfY29tcF9zdGFydChjb21wKTsNCiAJfQ0KIA0KQEAgLTMyMCw3ICszMjAs NyBAQCBzdGF0aWMgaW50IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfZHJtX2NydGMg Km10a19jcnRjKQ0KIAkJY29tcCA9IG10a19kcm1fZGRwX2NvbXBfZm9yX3BsYW5lKGNydGMsIHBs YW5lLCAmbG9jYWxfbGF5ZXIpOw0KIAkJaWYgKGNvbXApDQogCQkJbXRrX2RkcF9jb21wX2xheWVy X2NvbmZpZyhjb21wLCBsb2NhbF9sYXllciwNCi0JCQkJCQkgIHBsYW5lX3N0YXRlKTsNCisJCQkJ CQkgIHBsYW5lX3N0YXRlLCBOVUxMKTsNCiAJfQ0KIA0KIAlyZXR1cm4gMDsNCkBAIC0zODUsNyAr Mzg1LDcgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNfZGRwX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMpDQogCWlmIChzdGF0ZS0+cGVuZGluZ19jb25maWcpIHsNCiAJCW10a19kZHBfY29tcF9j b25maWcoY29tcCwgc3RhdGUtPnBlbmRpbmdfd2lkdGgsDQogCQkJCSAgICBzdGF0ZS0+cGVuZGlu Z19oZWlnaHQsDQotCQkJCSAgICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCk7DQorCQkJCSAg ICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCwgTlVMTCk7DQogDQogCQlzdGF0ZS0+cGVuZGlu Z19jb25maWcgPSBmYWxzZTsNCiAJfQ0KQEAgLTQwNSw3ICs0MDUsNyBAQCBzdGF0aWMgdm9pZCBt dGtfY3J0Y19kZHBfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiANCiAJCQlpZiAoY29t cCkNCiAJCQkJbXRrX2RkcF9jb21wX2xheWVyX2NvbmZpZyhjb21wLCBsb2NhbF9sYXllciwNCi0J CQkJCQkJICBwbGFuZV9zdGF0ZSk7DQorCQkJCQkJCSAgcGxhbmVfc3RhdGUsIE5VTEwpOw0KIAkJ CXBsYW5lX3N0YXRlLT5wZW5kaW5nLmNvbmZpZyA9IGZhbHNlOw0KIAkJfQ0KIAkJbXRrX2NydGMt PnBlbmRpbmdfcGxhbmVzID0gZmFsc2U7DQpAQCAtNTcxLDcgKzU3MSw4IEBAIHN0YXRpYyB2b2lk IG10a19kcm1fY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLA0KIAl9DQog CWlmIChjcnRjLT5zdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkKQ0KIAkJZm9yIChpID0gMDsgaSA8 IG10a19jcnRjLT5kZHBfY29tcF9ucjsgaSsrKQ0KLQkJCW10a19kZHBfZ2FtbWFfc2V0KG10a19j cnRjLT5kZHBfY29tcFtpXSwgY3J0Yy0+c3RhdGUpOw0KKwkJCW10a19kZHBfZ2FtbWFfc2V0KG10 a19jcnRjLT5kZHBfY29tcFtpXSwNCisJCQkJCSAgY3J0Yy0+c3RhdGUsIE5VTEwpOw0KIA0KIAlp ZiAocHJpdi0+ZGF0YS0+c2hhZG93X3JlZ2lzdGVyKSB7DQogCQltdGtfZGlzcF9tdXRleF9hY3F1 aXJlKG10a19jcnRjLT5tdXRleCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZGRwX2NvbXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2RkcF9jb21wLmMNCmluZGV4IDM0MDdkMzhhZmY4Zi4uNmQwZjM0OWRkZjgyIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYw0KKysrIGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYw0KQEAgLTEyLDcgKzEyLDgg QEANCiAjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+DQogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRm b3JtLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KLQ0KKyNpbmNsdWRl IDxkcm0vZHJtUC5oPg0KKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaD4N CiAjaW5jbHVkZSAibXRrX2RybV9kcnYuaCINCiAjaW5jbHVkZSAibXRrX2RybV9wbGFuZS5oIg0K ICNpbmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiDQpAQCAtNzYsMzYgKzc3LDgyIEBADQogI2Rl ZmluZSBESVRIRVJfQUREX0xTSElGVF9HKHgpCQkJKCgoeCkgJiAweDcpIDw8IDQpDQogI2RlZmlu ZSBESVRIRVJfQUREX1JTSElGVF9HKHgpCQkJKCgoeCkgJiAweDcpIDw8IDApDQogDQordm9pZCBt dGtfZGRwX3dyaXRlKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QsIHVuc2lnbmVkIGludCB2YWx1 ZSwNCisJCSAgIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBvZmZzZXQp DQorew0KKwlpZiAoY21kcV9wa3QpDQorI2lmZGVmIENPTkZJR19NVEtfQ01EUQ0KKwkJY21kcV9w a3Rfd3JpdGUoY21kcV9wa3QsIGNvbXAtPnN1YnN5cywNCisJCQkgICAgICAgY29tcC0+cmVnc19w YSArIG9mZnNldCwgdmFsdWUpOw0KKyNlbmRpZg0KKwllbHNlDQorCQl3cml0ZWwodmFsdWUsIGNv bXAtPnJlZ3MgKyBvZmZzZXQpOw0KK30NCisNCit2b2lkIG10a19kZHBfd3JpdGVfcmVsYXhlZChz dHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LCB1bnNpZ25lZCBpbnQgdmFsdWUsDQorCQkJICAgc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCwNCisJCQkgICB1bnNpZ25lZCBpbnQgb2Zmc2V0KQ0KK3sN CisJaWYgKGNtZHFfcGt0KQ0KKyNpZmRlZiBDT05GSUdfTVRLX0NNRFENCisJCWNtZHFfcGt0X3dy aXRlKGNtZHFfcGt0LCBjb21wLT5zdWJzeXMsDQorCQkJICAgICAgIGNvbXAtPnJlZ3NfcGEgKyBv ZmZzZXQsIHZhbHVlKTsNCisjZW5kaWYNCisJZWxzZQ0KKwkJd3JpdGVsX3JlbGF4ZWQodmFsdWUs IGNvbXAtPnJlZ3MgKyBvZmZzZXQpOw0KK30NCisNCit2b2lkIG10a19kZHBfd3JpdGVfbWFzayhz dHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KKwkJCXVuc2lnbmVkIGludCB2YWx1ZSwNCisJCQlz dHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KKwkJCXVuc2lnbmVkIGludCBvZmZzZXQsDQorCQkJ dW5zaWduZWQgaW50IG1hc2spDQorew0KKwlpZiAoY21kcV9wa3QpIHsNCisjaWZkZWYgQ09ORklH X01US19DTURRDQorCQljbWRxX3BrdF93cml0ZV9tYXNrKGNtZHFfcGt0LCBjb21wLT5zdWJzeXMs DQorCQkJCSAgICBjb21wLT5yZWdzX3BhICsgb2Zmc2V0LCB2YWx1ZSwgbWFzayk7DQorI2VuZGlm DQorCX0gZWxzZSB7DQorCQl1MzIgdG1wID0gcmVhZGwoY29tcC0+cmVncyArIG9mZnNldCk7DQor DQorCQl0bXAgPSAodG1wICYgfm1hc2spIHwgKHZhbHVlICYgbWFzayk7DQorCQl3cml0ZWwodG1w LCBjb21wLT5yZWdzICsgb2Zmc2V0KTsNCisJfQ0KK30NCisNCiB2b2lkIG10a19kaXRoZXJfc2V0 KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBicGMsDQotCQkgICAgdW5z aWduZWQgaW50IENGRykNCisJCSAgICB1bnNpZ25lZCBpbnQgQ0ZHLCBzdHJ1Y3QgY21kcV9wa3Qg KmNtZHFfcGt0KQ0KIHsNCiAJLyogSWYgYnBjIGVxdWFsIHRvIDAsIHRoZSBkaXRoZXJpbmcgZnVu Y3Rpb24gZGlkbid0IGJlIGVuYWJsZWQgKi8NCiAJaWYgKGJwYyA9PSAwKQ0KIAkJcmV0dXJuOw0K IA0KIAlpZiAoYnBjID49IE1US19NSU5fQlBDKSB7DQotCQl3cml0ZWwoMCwgY29tcC0+cmVncyAr IERJU1BfRElUSEVSXzUpOw0KLQkJd3JpdGVsKDAsIGNvbXAtPnJlZ3MgKyBESVNQX0RJVEhFUl83 KTsNCi0JCXdyaXRlbChESVRIRVJfTFNCX0VSUl9TSElGVF9SKE1US19NQVhfQlBDIC0gYnBjKSB8 DQotCQkgICAgICAgRElUSEVSX0FERF9MU0hJRlRfUihNVEtfTUFYX0JQQyAtIGJwYykgfA0KLQkJ ICAgICAgIERJVEhFUl9ORVdfQklUX01PREUsDQotCQkgICAgICAgY29tcC0+cmVncyArIERJU1Bf RElUSEVSXzE1KTsNCi0JCXdyaXRlbChESVRIRVJfTFNCX0VSUl9TSElGVF9CKE1US19NQVhfQlBD IC0gYnBjKSB8DQotCQkgICAgICAgRElUSEVSX0FERF9MU0hJRlRfQihNVEtfTUFYX0JQQyAtIGJw YykgfA0KLQkJICAgICAgIERJVEhFUl9MU0JfRVJSX1NISUZUX0coTVRLX01BWF9CUEMgLSBicGMp IHwNCi0JCSAgICAgICBESVRIRVJfQUREX0xTSElGVF9HKE1US19NQVhfQlBDIC0gYnBjKSwNCi0J CSAgICAgICBjb21wLT5yZWdzICsgRElTUF9ESVRIRVJfMTYpOw0KLQkJd3JpdGVsKERJU1BfRElU SEVSSU5HLCBjb21wLT5yZWdzICsgQ0ZHKTsNCisJCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIDAs IGNvbXAsIERJU1BfRElUSEVSXzUpOw0KKwkJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgMCwgY29t cCwgRElTUF9ESVRIRVJfNyk7DQorCQltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LA0KKwkJCSAgICAg IERJVEhFUl9MU0JfRVJSX1NISUZUX1IoTVRLX01BWF9CUEMgLSBicGMpIHwNCisJCQkgICAgICBE SVRIRVJfQUREX0xTSElGVF9SKE1US19NQVhfQlBDIC0gYnBjKSB8DQorCQkJICAgICAgRElUSEVS X05FV19CSVRfTU9ERSwNCisJCQkgICAgICBjb21wLCBESVNQX0RJVEhFUl8xNSk7DQorCQltdGtf ZGRwX3dyaXRlKGNtZHFfcGt0LA0KKwkJCSAgICAgIERJVEhFUl9MU0JfRVJSX1NISUZUX0IoTVRL X01BWF9CUEMgLSBicGMpIHwNCisJCQkgICAgICBESVRIRVJfQUREX0xTSElGVF9CKE1US19NQVhf QlBDIC0gYnBjKSB8DQorCQkJICAgICAgRElUSEVSX0xTQl9FUlJfU0hJRlRfRyhNVEtfTUFYX0JQ QyAtIGJwYykgfA0KKwkJCSAgICAgIERJVEhFUl9BRERfTFNISUZUX0coTVRLX01BWF9CUEMgLSBi cGMpLA0KKwkJCSAgICAgIGNvbXAsIERJU1BfRElUSEVSXzE2KTsNCisJCW10a19kZHBfd3JpdGUo Y21kcV9wa3QsIERJU1BfRElUSEVSSU5HLCBjb21wLCBDRkcpOw0KIAl9DQogfQ0KIA0KIHN0YXRp YyB2b2lkIG10a19vZF9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQg aW50IHcsDQogCQkJICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJ CSAgdW5zaWduZWQgaW50IGJwYykNCisJCQkgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRx X3BrdCAqY21kcV9wa3QpDQogew0KLQl3cml0ZWwodyA8PCAxNiB8IGgsIGNvbXAtPnJlZ3MgKyBE SVNQX09EX1NJWkUpOw0KLQl3cml0ZWwoT0RfUkVMQVlNT0RFLCBjb21wLT5yZWdzICsgRElTUF9P RF9DRkcpOw0KLQltdGtfZGl0aGVyX3NldChjb21wLCBicGMsIERJU1BfT0RfQ0ZHKTsNCisJbXRr X2RkcF93cml0ZShjbWRxX3BrdCwgdyA8PCAxNiB8IGgsIGNvbXAsIERJU1BfT0RfU0laRSk7DQor CW10a19kZHBfd3JpdGUoY21kcV9wa3QsIE9EX1JFTEFZTU9ERSwgY29tcCwgRElTUF9PRF9DRkcp Ow0KKwltdGtfZGl0aGVyX3NldChjb21wLCBicGMsIERJU1BfT0RfQ0ZHLCBjbWRxX3BrdCk7DQog fQ0KIA0KIHN0YXRpYyB2b2lkIG10a19vZF9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w KQ0KQEAgLTEyMCw5ICsxNjcsOSBAQCBzdGF0aWMgdm9pZCBtdGtfdWZvZV9zdGFydChzdHJ1Y3Qg bXRrX2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19hYWxfY29uZmlnKHN0cnVj dCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LA0KIAkJCSAgIHVuc2lnbmVkIGlu dCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgdW5zaWduZWQgaW50IGJwYykNCisJ CQkgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCi0J d3JpdGVsKGggPDwgMTYgfCB3LCBjb21wLT5yZWdzICsgRElTUF9BQUxfU0laRSk7DQorCW10a19k ZHBfd3JpdGUoY21kcV9wa3QsIGggPDwgMTYgfCB3LCBjb21wLCBESVNQX0FBTF9TSVpFKTsNCiB9 DQogDQogc3RhdGljIHZvaWQgbXRrX2FhbF9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w KQ0KQEAgLTEzNywxMCArMTg0LDEwIEBAIHN0YXRpYyB2b2lkIG10a19hYWxfc3RvcChzdHJ1Y3Qg bXRrX2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19jY29ycl9jb25maWcoc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsDQogCQkJICAgICB1bnNpZ25l ZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KLQkJCSAgICAgdW5zaWduZWQgaW50IGJw YykNCisJCQkgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3Qp DQogew0KLQl3cml0ZWwoaCA8PCAxNiB8IHcsIGNvbXAtPnJlZ3MgKyBESVNQX0NDT1JSX1NJWkUp Ow0KLQl3cml0ZWwoQ0NPUlJfUkVMQVlfTU9ERSwgY29tcC0+cmVncyArIERJU1BfQ0NPUlJfQ0ZH KTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgaCA8PCAxNiB8IHcsIGNvbXAsIERJU1BfQ0NP UlJfU0laRSk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIENDT1JSX1JFTEFZX01PREUsIGNv bXAsIERJU1BfQ0NPUlJfQ0ZHKTsNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX2Njb3JyX3N0YXJ0 KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTU1LDEwICsyMDIsMTAgQEAgc3RhdGlj IHZvaWQgbXRrX2Njb3JyX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCiANCiBzdGF0 aWMgdm9pZCBtdGtfZGl0aGVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNp Z25lZCBpbnQgdywNCiAJCQkgICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZy ZXNoLA0KLQkJCSAgICAgIHVuc2lnbmVkIGludCBicGMpDQorCQkJICAgICAgdW5zaWduZWQgaW50 IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQotCXdyaXRlbChoIDw8IDE2IHwg dywgY29tcC0+cmVncyArIERJU1BfRElUSEVSX1NJWkUpOw0KLQl3cml0ZWwoRElUSEVSX1JFTEFZ X01PREUsIGNvbXAtPnJlZ3MgKyBESVNQX0RJVEhFUl9DRkcpOw0KKwltdGtfZGRwX3dyaXRlKGNt ZHFfcGt0LCBoIDw8IDE2IHwgdywgY29tcCwgRElTUF9ESVRIRVJfU0laRSk7DQorCW10a19kZHBf d3JpdGUoY21kcV9wa3QsIERJVEhFUl9SRUxBWV9NT0RFLCBjb21wLCBESVNQX0RJVEhFUl9DRkcp Ow0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2Nv bXAgKmNvbXApDQpAQCAtMTczLDEwICsyMjAsMTAgQEAgc3RhdGljIHZvaWQgbXRrX2RpdGhlcl9z dG9wKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogDQogc3RhdGljIHZvaWQgbXRrX2dhbW1h X2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywNCiAJCQkg ICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgICB1bnNp Z25lZCBpbnQgYnBjKQ0KKwkJCSAgICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0 ICpjbWRxX3BrdCkNCiB7DQotCXdyaXRlbChoIDw8IDE2IHwgdywgY29tcC0+cmVncyArIERJU1Bf R0FNTUFfU0laRSk7DQotCW10a19kaXRoZXJfc2V0KGNvbXAsIGJwYywgRElTUF9HQU1NQV9DRkcp Ow0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCBoIDw8IDE2IHwgdywgY29tcCwgRElTUF9HQU1N QV9TSVpFKTsNCisJbXRrX2RpdGhlcl9zZXQoY29tcCwgYnBjLCBESVNQX0dBTU1BX0NGRywgY21k cV9wa3QpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfZ2FtbWFfc3RhcnQoc3RydWN0IG10a19k ZHBfY29tcCAqY29tcCkNCkBAIC0xOTAsMjQgKzIzNywyMyBAQCBzdGF0aWMgdm9pZCBtdGtfZ2Ft bWFfc3RvcChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIH0NCiANCiBzdGF0aWMgdm9pZCBt dGtfZ2FtbWFfc2V0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQotCQkJICBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKnN0YXRlKQ0KKwkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwN CisJCQkgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KLQl1bnNpZ25lZCBpbnQgaSwg cmVnOw0KKwl1bnNpZ25lZCBpbnQgaTsNCiAJc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDsNCi0J dm9pZCBfX2lvbWVtICpsdXRfYmFzZTsNCiAJdTMyIHdvcmQ7DQogDQogCWlmIChzdGF0ZS0+Z2Ft bWFfbHV0KSB7DQotCQlyZWcgPSByZWFkbChjb21wLT5yZWdzICsgRElTUF9HQU1NQV9DRkcpOw0K LQkJcmVnID0gcmVnIHwgR0FNTUFfTFVUX0VOOw0KLQkJd3JpdGVsKHJlZywgY29tcC0+cmVncyAr IERJU1BfR0FNTUFfQ0ZHKTsNCi0JCWx1dF9iYXNlID0gY29tcC0+cmVncyArIERJU1BfR0FNTUFf TFVUOw0KKwkJbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBHQU1NQV9MVVRfRU4sIGNvbXAs DQorCQkJCSAgIERJU1BfR0FNTUFfQ0ZHLCBHQU1NQV9MVVRfRU4pOw0KIAkJbHV0ID0gKHN0cnVj dCBkcm1fY29sb3JfbHV0ICopc3RhdGUtPmdhbW1hX2x1dC0+ZGF0YTsNCiAJCWZvciAoaSA9IDA7 IGkgPCBNVEtfTFVUX1NJWkU7IGkrKykgew0KIAkJCXdvcmQgPSAoKChsdXRbaV0ucmVkID4+IDYp ICYgTFVUXzEwQklUX01BU0spIDw8IDIwKSArDQogCQkJCSgoKGx1dFtpXS5ncmVlbiA+PiA2KSAm IExVVF8xMEJJVF9NQVNLKSA8PCAxMCkgKw0KIAkJCQkoKGx1dFtpXS5ibHVlID4+IDYpICYgTFVU XzEwQklUX01BU0spOw0KLQkJCXdyaXRlbCh3b3JkLCAobHV0X2Jhc2UgKyBpICogNCkpOw0KKwkJ CW10a19kZHBfd3JpdGUoY21kcV9wa3QsIHdvcmQsIGNvbXAsDQorCQkJCSAgICAgIERJU1BfR0FN TUFfTFVUICsgaSAqIDQpOw0KIAkJfQ0KIAl9DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RybV9kZHBfY29tcC5oDQppbmRleCBlYzU1Yzc0ODhjYzMuLjViMGEzZDQ4ZGZhNiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgN CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgNCkBAIC02 OSwyNSArNjksMzAgQEAgZW51bSBtdGtfZGRwX2NvbXBfaWQgew0KIH07DQogDQogc3RydWN0IG10 a19kZHBfY29tcDsNCi0NCitzdHJ1Y3QgY21kcV9wa3Q7DQogc3RydWN0IG10a19kZHBfY29tcF9m dW5jcyB7DQogCXZvaWQgKCpjb25maWcpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2ln bmVkIGludCB3LA0KLQkJICAgICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJl c2gsIHVuc2lnbmVkIGludCBicGMpOw0KKwkJICAgICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25l ZCBpbnQgdnJlZnJlc2gsDQorCQkgICAgICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFf cGt0ICpjbWRxX3BrdCk7DQogCXZvaWQgKCpzdGFydCkoc3RydWN0IG10a19kZHBfY29tcCAqY29t cCk7DQogCXZvaWQgKCpzdG9wKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKTsNCiAJdm9pZCAo KmVuYWJsZV92YmxhbmspKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHN0cnVjdCBkcm1fY3J0 YyAqY3J0Yyk7DQogCXZvaWQgKCpkaXNhYmxlX3ZibGFuaykoc3RydWN0IG10a19kZHBfY29tcCAq Y29tcCk7DQogCXVuc2lnbmVkIGludCAoKnN1cHBvcnRlZF9yb3RhdGlvbnMpKHN0cnVjdCBtdGtf ZGRwX2NvbXAgKmNvbXApOw0KIAl1bnNpZ25lZCBpbnQgKCpsYXllcl9ucikoc3RydWN0IG10a19k ZHBfY29tcCAqY29tcCk7DQotCXZvaWQgKCpsYXllcl9vbikoc3RydWN0IG10a19kZHBfY29tcCAq Y29tcCwgdW5zaWduZWQgaW50IGlkeCk7DQotCXZvaWQgKCpsYXllcl9vZmYpKHN0cnVjdCBtdGtf ZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgpOw0KKwl2b2lkICgqbGF5ZXJfb24pKHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgsDQorCQkJIHN0cnVjdCBj bWRxX3BrdCAqY21kcV9wa3QpOw0KKwl2b2lkICgqbGF5ZXJfb2ZmKShzdHJ1Y3QgbXRrX2RkcF9j b21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LA0KKwkJCSAgc3RydWN0IGNtZHFfcGt0ICpjbWRx X3BrdCk7DQogCWludCAoKmxheWVyX2NoZWNrKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0K IAkJCSAgIHVuc2lnbmVkIGludCBpZHgsDQogCQkJICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAq c3RhdGUpOw0KIAl2b2lkICgqbGF5ZXJfY29uZmlnKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w LCB1bnNpZ25lZCBpbnQgaWR4LA0KLQkJCSAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3Rh dGUpOw0KKwkJCSAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUsDQorCQkJICAgICBz dHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KTsNCiAJdm9pZCAoKmdhbW1hX3NldCkoc3RydWN0IG10 a19kZHBfY29tcCAqY29tcCwNCi0JCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOw0K KwkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwNCisJCQkgIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpOw0KIAl2b2lkICgqYmdjbHJfaW5fb24pKHN0cnVjdCBtdGtfZGRwX2NvbXAg KmNvbXApOw0KIAl2b2lkICgqYmdjbHJfaW5fb2ZmKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w KTsNCiB9Ow0KQEAgLTk5LDE0ICsxMDQsMTcgQEAgc3RydWN0IG10a19kZHBfY29tcCB7DQogCXN0 cnVjdCBkZXZpY2UgKmRldjsNCiAJZW51bSBtdGtfZGRwX2NvbXBfaWQgaWQ7DQogCWNvbnN0IHN0 cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgKmZ1bmNzOw0KKwlyZXNvdXJjZV9zaXplX3QgcmVnc19w YTsNCisJdTggc3Vic3lzOw0KIH07DQogDQogc3RhdGljIGlubGluZSB2b2lkIG10a19kZHBfY29t cF9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwNCiAJCQkJICAgICAgIHVuc2lnbmVk IGludCB3LCB1bnNpZ25lZCBpbnQgaCwNCi0JCQkJICAgICAgIHVuc2lnbmVkIGludCB2cmVmcmVz aCwgdW5zaWduZWQgaW50IGJwYykNCisJCQkJICAgICAgIHVuc2lnbmVkIGludCB2cmVmcmVzaCwg dW5zaWduZWQgaW50IGJwYywNCisJCQkJICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3Qp DQogew0KIAlpZiAoY29tcC0+ZnVuY3MgJiYgY29tcC0+ZnVuY3MtPmNvbmZpZykNCi0JCWNvbXAt PmZ1bmNzLT5jb25maWcoY29tcCwgdywgaCwgdnJlZnJlc2gsIGJwYyk7DQorCQljb21wLT5mdW5j cy0+Y29uZmlnKGNvbXAsIHcsIGgsIHZyZWZyZXNoLCBicGMsIGNtZHFfcGt0KTsNCiB9DQogDQog c3RhdGljIGlubGluZSB2b2lkIG10a19kZHBfY29tcF9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21w ICpjb21wKQ0KQEAgLTE1MiwxNyArMTYwLDE5IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50 IG10a19kZHBfY29tcF9sYXllcl9ucihzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIH0NCiAN CiBzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2RkcF9jb21wX2xheWVyX29uKHN0cnVjdCBtdGtfZGRw X2NvbXAgKmNvbXAsDQotCQkJCQkgdW5zaWduZWQgaW50IGlkeCkNCisJCQkJCSB1bnNpZ25lZCBp bnQgaWR4LA0KKwkJCQkJIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KIAlpZiAoY29t cC0+ZnVuY3MgJiYgY29tcC0+ZnVuY3MtPmxheWVyX29uKQ0KLQkJY29tcC0+ZnVuY3MtPmxheWVy X29uKGNvbXAsIGlkeCk7DQorCQljb21wLT5mdW5jcy0+bGF5ZXJfb24oY29tcCwgaWR4LCBjbWRx X3BrdCk7DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtfZGRwX2NvbXBfbGF5ZXJfb2Zm KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQotCQkJCQkgIHVuc2lnbmVkIGludCBpZHgpDQor CQkJCQkgIHVuc2lnbmVkIGludCBpZHgsDQorCQkJCQkgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9w a3QpDQogew0KIAlpZiAoY29tcC0+ZnVuY3MgJiYgY29tcC0+ZnVuY3MtPmxheWVyX29mZikNCi0J CWNvbXAtPmZ1bmNzLT5sYXllcl9vZmYoY29tcCwgaWR4KTsNCisJCWNvbXAtPmZ1bmNzLT5sYXll cl9vZmYoY29tcCwgaWR4LCBjbWRxX3BrdCk7DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IG10 a19kZHBfY29tcF9sYXllcl9jaGVjayhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KQEAgLTE3 NiwxNyArMTg2LDE5IEBAIHN0YXRpYyBpbmxpbmUgaW50IG10a19kZHBfY29tcF9sYXllcl9jaGVj ayhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtf ZGRwX2NvbXBfbGF5ZXJfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQogCQkJCQkg ICAgIHVuc2lnbmVkIGludCBpZHgsDQotCQkJCQkgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUg KnN0YXRlKQ0KKwkJCQkJICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSwNCisJCQkJ CSAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCWlmIChjb21wLT5mdW5jcyAm JiBjb21wLT5mdW5jcy0+bGF5ZXJfY29uZmlnKQ0KLQkJY29tcC0+ZnVuY3MtPmxheWVyX2NvbmZp Zyhjb21wLCBpZHgsIHN0YXRlKTsNCisJCWNvbXAtPmZ1bmNzLT5sYXllcl9jb25maWcoY29tcCwg aWR4LCBzdGF0ZSwgY21kcV9wa3QpOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2Rk cF9nYW1tYV9zZXQoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwNCi0JCQkJICAgICBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKnN0YXRlKQ0KKwkJCQkgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq c3RhdGUsDQorCQkJCSAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCWlmIChj b21wLT5mdW5jcyAmJiBjb21wLT5mdW5jcy0+Z2FtbWFfc2V0KQ0KLQkJY29tcC0+ZnVuY3MtPmdh bW1hX3NldChjb21wLCBzdGF0ZSk7DQorCQljb21wLT5mdW5jcy0+Z2FtbWFfc2V0KGNvbXAsIHN0 YXRlLCBjbWRxX3BrdCk7DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtfZGRwX2NvbXBf YmdjbHJfaW5fb24oc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCkBAIC0yMDksNiArMjIxLDEz IEBAIGludCBtdGtfZGRwX2NvbXBfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp Y2Vfbm9kZSAqY29tcF9ub2RlLA0KIGludCBtdGtfZGRwX2NvbXBfcmVnaXN0ZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRybSwgc3RydWN0IG10a19kZHBfY29tcCAqY29tcCk7DQogdm9pZCBtdGtfZGRw X2NvbXBfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgbXRrX2RkcF9j b21wICpjb21wKTsNCiB2b2lkIG10a19kaXRoZXJfc2V0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNv bXAsIHVuc2lnbmVkIGludCBicGMsDQotCQkgICAgdW5zaWduZWQgaW50IENGRyk7DQotDQorCQkg ICAgdW5zaWduZWQgaW50IENGRywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7DQorZW51bSBt dGtfZGRwX2NvbXBfdHlwZSBtdGtfZGRwX2NvbXBfZ2V0X3R5cGUoZW51bSBtdGtfZGRwX2NvbXBf aWQgY29tcF9pZCk7DQordm9pZCBtdGtfZGRwX3dyaXRlKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9w a3QsIHVuc2lnbmVkIGludCB2YWx1ZSwNCisJCSAgIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAs IHVuc2lnbmVkIGludCBvZmZzZXQpOw0KK3ZvaWQgbXRrX2RkcF93cml0ZV9yZWxheGVkKHN0cnVj dCBjbWRxX3BrdCAqY21kcV9wa3QsIHVuc2lnbmVkIGludCB2YWx1ZSwNCisJCQkgICBzdHJ1Y3Qg bXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KTsNCit2b2lkIG10a19kZHBf d3JpdGVfbWFzayhzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LCB1bnNpZ25lZCBpbnQgdmFsdWUs DQorCQkJc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IG9mZnNldCwNCisJ CQl1bnNpZ25lZCBpbnQgbWFzayk7DQogI2VuZGlmIC8qIE1US19EUk1fRERQX0NPTVBfSCAqLw0K LS0gDQoyLjE4LjANCg==