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.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_AGENT_GIT autolearn=unavailable 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 84F2FC43141 for ; Thu, 28 Nov 2019 02:42:59 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 63A7B2166E for ; Thu, 28 Nov 2019 02:42:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 63A7B2166E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C9FC86E5EE; Thu, 28 Nov 2019 02:42:50 +0000 (UTC) Received: from mailgw01.mediatek.com (unknown [210.61.82.183]) by gabe.freedesktop.org (Postfix) with ESMTP id 20B276E038 for ; Thu, 28 Nov 2019 02:42:44 +0000 (UTC) X-UUID: 1bab0158d7064175a1468a63bd11f517-20191128 X-UUID: 1bab0158d7064175a1468a63bd11f517-20191128 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 237422732; Thu, 28 Nov 2019 10:42:42 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 28 Nov 2019 10:42:28 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Thu, 28 Nov 2019 10:42:46 +0800 From: Bibby Hsieh To: David Airlie , Matthias Brugger , Daniel Vetter , , Subject: [PATCH v1 5/6] drm/mediatek: support CMDQ interface in ddp component Date: Thu, 28 Nov 2019 10:42:37 +0800 Message-ID: <20191128024238.9399-6-bibby.hsieh@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20191128024238.9399-1-bibby.hsieh@mediatek.com> References: <20191128024238.9399-1-bibby.hsieh@mediatek.com> MIME-Version: 1.0 X-MTK: N X-Mailman-Original-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=t5+gcIjAum7qHLBmHalYYJ/ZCOBTVsMq/pId+7feYcY=; b=PsD4IEkKuB42hHp08FkZ85aEm41WmXkpIkwvzcBSDTzazk3GAwZmdSPYOOSvMefy1Oq9FUW6rGo4nmIMJ7PzSoGZ/ZhkZL65F4s6UGPB0Zg/GRT13DQssgb9OFP6QPZev+WXLX7w2BS3mIGFtFjNkfCWypH/KX5Oiinaev31dS0=; X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: drinkcat@chromium.org, srv_heupstream@mediatek.com, Yongqiang Niu , linux-kernel@vger.kernel.org, tfiga@chromium.org, Thierry Reding , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191128024237.6cnDIJe7bewxyWUWUwZLWQ-dZ67fe24pjxc2yEi2Nz0@z> 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 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCmluZGV4IGIyNmI3YTk4NTg3Yi4u ZmNmNGU3NTVlMGJkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fY3J0Yy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMN CkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIGludCBtdGtfY3J0Y19kZHBfaHdfaW5pdChzdHJ1 Y3QgbXRrX2RybV9jcnRjICptdGtfY3J0YykNCiAJCWlmIChwcmV2ID09IEREUF9DT01QT05FTlRf T1ZMMCkNCiAJCQltdGtfZGRwX2NvbXBfYmdjbHJfaW5fb24oY29tcCk7DQogDQotCQltdGtfZGRw X2NvbXBfY29uZmlnKGNvbXAsIHdpZHRoLCBoZWlnaHQsIHZyZWZyZXNoLCBicGMpOw0KKwkJbXRr X2RkcF9jb21wX2NvbmZpZyhjb21wLCB3aWR0aCwgaGVpZ2h0LCB2cmVmcmVzaCwgYnBjLCBOVUxM KTsNCiAJCW10a19kZHBfY29tcF9zdGFydChjb21wKTsNCiAJfQ0KIA0KQEAgLTMxOSw3ICszMTks NyBAQCBzdGF0aWMgaW50IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfZHJtX2NydGMg Km10a19jcnRjKQ0KIAkJY29tcCA9IG10a19kcm1fZGRwX2NvbXBfZm9yX3BsYW5lKGNydGMsIHBs YW5lLCAmbG9jYWxfbGF5ZXIpOw0KIAkJaWYgKGNvbXApDQogCQkJbXRrX2RkcF9jb21wX2xheWVy X2NvbmZpZyhjb21wLCBsb2NhbF9sYXllciwNCi0JCQkJCQkgIHBsYW5lX3N0YXRlKTsNCisJCQkJ CQkgIHBsYW5lX3N0YXRlLCBOVUxMKTsNCiAJfQ0KIA0KIAlyZXR1cm4gMDsNCkBAIC0zODMsNyAr MzgzLDcgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNfZGRwX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMpDQogCWlmIChzdGF0ZS0+cGVuZGluZ19jb25maWcpIHsNCiAJCW10a19kZHBfY29tcF9j b25maWcoY29tcCwgc3RhdGUtPnBlbmRpbmdfd2lkdGgsDQogCQkJCSAgICBzdGF0ZS0+cGVuZGlu Z19oZWlnaHQsDQotCQkJCSAgICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCk7DQorCQkJCSAg ICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCwgTlVMTCk7DQogDQogCQlzdGF0ZS0+cGVuZGlu Z19jb25maWcgPSBmYWxzZTsNCiAJfQ0KQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgdm9pZCBt dGtfY3J0Y19kZHBfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiANCiAJCQlpZiAoY29t cCkNCiAJCQkJbXRrX2RkcF9jb21wX2xheWVyX2NvbmZpZyhjb21wLCBsb2NhbF9sYXllciwNCi0J CQkJCQkJICBwbGFuZV9zdGF0ZSk7DQorCQkJCQkJCSAgcGxhbmVfc3RhdGUsIE5VTEwpOw0KIAkJ CXBsYW5lX3N0YXRlLT5wZW5kaW5nLmNvbmZpZyA9IGZhbHNlOw0KIAkJfQ0KIAkJbXRrX2NydGMt PnBlbmRpbmdfcGxhbmVzID0gZmFsc2U7DQpAQCAtNTYyLDcgKzU2Miw4IEBAIHN0YXRpYyB2b2lk IG10a19kcm1fY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLA0KIAkJbXRr X2NydGMtPnBlbmRpbmdfcGxhbmVzID0gdHJ1ZTsNCiAJaWYgKGNydGMtPnN0YXRlLT5jb2xvcl9t Z210X2NoYW5nZWQpDQogCQlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yOyBp KyspDQotCQkJbXRrX2RkcF9nYW1tYV9zZXQobXRrX2NydGMtPmRkcF9jb21wW2ldLCBjcnRjLT5z dGF0ZSk7DQorCQkJbXRrX2RkcF9nYW1tYV9zZXQobXRrX2NydGMtPmRkcF9jb21wW2ldLA0KKwkJ CQkJICBjcnRjLT5zdGF0ZSwgTlVMTCk7DQogDQogCWlmIChwcml2LT5kYXRhLT5zaGFkb3dfcmVn aXN0ZXIpIHsNCiAJCW10a19kaXNwX211dGV4X2FjcXVpcmUobXRrX2NydGMtPm11dGV4KTsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYw0KaW5kZXggMzQwN2Qz OGFmZjhmLi42ZDBmMzQ5ZGRmODIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RybV9kZHBfY29tcC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kZHBfY29tcC5jDQpAQCAtMTIsNyArMTIsOCBAQA0KICNpbmNsdWRlIDxsaW51eC9vZl9p cnEuaD4NCiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4NCiAjaW5jbHVkZSA8bGludXgv cGxhdGZvcm1fZGV2aWNlLmg+DQotDQorI2luY2x1ZGUgPGRybS9kcm1QLmg+DQorI2luY2x1ZGUg PGxpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oPg0KICNpbmNsdWRlICJtdGtfZHJtX2Rydi5o Ig0KICNpbmNsdWRlICJtdGtfZHJtX3BsYW5lLmgiDQogI2luY2x1ZGUgIm10a19kcm1fZGRwX2Nv bXAuaCINCkBAIC03NiwzNiArNzcsODIgQEANCiAjZGVmaW5lIERJVEhFUl9BRERfTFNISUZUX0co eCkJCQkoKCh4KSAmIDB4NykgPDwgNCkNCiAjZGVmaW5lIERJVEhFUl9BRERfUlNISUZUX0coeCkJ CQkoKCh4KSAmIDB4NykgPDwgMCkNCiANCit2b2lkIG10a19kZHBfd3JpdGUoc3RydWN0IGNtZHFf cGt0ICpjbWRxX3BrdCwgdW5zaWduZWQgaW50IHZhbHVlLA0KKwkJICAgc3RydWN0IG10a19kZHBf Y29tcCAqY29tcCwgdW5zaWduZWQgaW50IG9mZnNldCkNCit7DQorCWlmIChjbWRxX3BrdCkNCisj aWZkZWYgQ09ORklHX01US19DTURRDQorCQljbWRxX3BrdF93cml0ZShjbWRxX3BrdCwgY29tcC0+ c3Vic3lzLA0KKwkJCSAgICAgICBjb21wLT5yZWdzX3BhICsgb2Zmc2V0LCB2YWx1ZSk7DQorI2Vu ZGlmDQorCWVsc2UNCisJCXdyaXRlbCh2YWx1ZSwgY29tcC0+cmVncyArIG9mZnNldCk7DQorfQ0K Kw0KK3ZvaWQgbXRrX2RkcF93cml0ZV9yZWxheGVkKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3Qs IHVuc2lnbmVkIGludCB2YWx1ZSwNCisJCQkgICBzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0K KwkJCSAgIHVuc2lnbmVkIGludCBvZmZzZXQpDQorew0KKwlpZiAoY21kcV9wa3QpDQorI2lmZGVm IENPTkZJR19NVEtfQ01EUQ0KKwkJY21kcV9wa3Rfd3JpdGUoY21kcV9wa3QsIGNvbXAtPnN1YnN5 cywNCisJCQkgICAgICAgY29tcC0+cmVnc19wYSArIG9mZnNldCwgdmFsdWUpOw0KKyNlbmRpZg0K KwllbHNlDQorCQl3cml0ZWxfcmVsYXhlZCh2YWx1ZSwgY29tcC0+cmVncyArIG9mZnNldCk7DQor fQ0KKw0KK3ZvaWQgbXRrX2RkcF93cml0ZV9tYXNrKHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3Qs DQorCQkJdW5zaWduZWQgaW50IHZhbHVlLA0KKwkJCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAs DQorCQkJdW5zaWduZWQgaW50IG9mZnNldCwNCisJCQl1bnNpZ25lZCBpbnQgbWFzaykNCit7DQor CWlmIChjbWRxX3BrdCkgew0KKyNpZmRlZiBDT05GSUdfTVRLX0NNRFENCisJCWNtZHFfcGt0X3dy aXRlX21hc2soY21kcV9wa3QsIGNvbXAtPnN1YnN5cywNCisJCQkJICAgIGNvbXAtPnJlZ3NfcGEg KyBvZmZzZXQsIHZhbHVlLCBtYXNrKTsNCisjZW5kaWYNCisJfSBlbHNlIHsNCisJCXUzMiB0bXAg PSByZWFkbChjb21wLT5yZWdzICsgb2Zmc2V0KTsNCisNCisJCXRtcCA9ICh0bXAgJiB+bWFzaykg fCAodmFsdWUgJiBtYXNrKTsNCisJCXdyaXRlbCh0bXAsIGNvbXAtPnJlZ3MgKyBvZmZzZXQpOw0K Kwl9DQorfQ0KKw0KIHZvaWQgbXRrX2RpdGhlcl9zZXQoc3RydWN0IG10a19kZHBfY29tcCAqY29t cCwgdW5zaWduZWQgaW50IGJwYywNCi0JCSAgICB1bnNpZ25lZCBpbnQgQ0ZHKQ0KKwkJICAgIHVu c2lnbmVkIGludCBDRkcsIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KIAkvKiBJZiBi cGMgZXF1YWwgdG8gMCwgdGhlIGRpdGhlcmluZyBmdW5jdGlvbiBkaWRuJ3QgYmUgZW5hYmxlZCAq Lw0KIAlpZiAoYnBjID09IDApDQogCQlyZXR1cm47DQogDQogCWlmIChicGMgPj0gTVRLX01JTl9C UEMpIHsNCi0JCXdyaXRlbCgwLCBjb21wLT5yZWdzICsgRElTUF9ESVRIRVJfNSk7DQotCQl3cml0 ZWwoMCwgY29tcC0+cmVncyArIERJU1BfRElUSEVSXzcpOw0KLQkJd3JpdGVsKERJVEhFUl9MU0Jf RVJSX1NISUZUX1IoTVRLX01BWF9CUEMgLSBicGMpIHwNCi0JCSAgICAgICBESVRIRVJfQUREX0xT SElGVF9SKE1US19NQVhfQlBDIC0gYnBjKSB8DQotCQkgICAgICAgRElUSEVSX05FV19CSVRfTU9E RSwNCi0JCSAgICAgICBjb21wLT5yZWdzICsgRElTUF9ESVRIRVJfMTUpOw0KLQkJd3JpdGVsKERJ VEhFUl9MU0JfRVJSX1NISUZUX0IoTVRLX01BWF9CUEMgLSBicGMpIHwNCi0JCSAgICAgICBESVRI RVJfQUREX0xTSElGVF9CKE1US19NQVhfQlBDIC0gYnBjKSB8DQotCQkgICAgICAgRElUSEVSX0xT Ql9FUlJfU0hJRlRfRyhNVEtfTUFYX0JQQyAtIGJwYykgfA0KLQkJICAgICAgIERJVEhFUl9BRERf TFNISUZUX0coTVRLX01BWF9CUEMgLSBicGMpLA0KLQkJICAgICAgIGNvbXAtPnJlZ3MgKyBESVNQ X0RJVEhFUl8xNik7DQotCQl3cml0ZWwoRElTUF9ESVRIRVJJTkcsIGNvbXAtPnJlZ3MgKyBDRkcp Ow0KKwkJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgMCwgY29tcCwgRElTUF9ESVRIRVJfNSk7DQor CQltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAwLCBjb21wLCBESVNQX0RJVEhFUl83KTsNCisJCW10 a19kZHBfd3JpdGUoY21kcV9wa3QsDQorCQkJICAgICAgRElUSEVSX0xTQl9FUlJfU0hJRlRfUihN VEtfTUFYX0JQQyAtIGJwYykgfA0KKwkJCSAgICAgIERJVEhFUl9BRERfTFNISUZUX1IoTVRLX01B WF9CUEMgLSBicGMpIHwNCisJCQkgICAgICBESVRIRVJfTkVXX0JJVF9NT0RFLA0KKwkJCSAgICAg IGNvbXAsIERJU1BfRElUSEVSXzE1KTsNCisJCW10a19kZHBfd3JpdGUoY21kcV9wa3QsDQorCQkJ ICAgICAgRElUSEVSX0xTQl9FUlJfU0hJRlRfQihNVEtfTUFYX0JQQyAtIGJwYykgfA0KKwkJCSAg ICAgIERJVEhFUl9BRERfTFNISUZUX0IoTVRLX01BWF9CUEMgLSBicGMpIHwNCisJCQkgICAgICBE SVRIRVJfTFNCX0VSUl9TSElGVF9HKE1US19NQVhfQlBDIC0gYnBjKSB8DQorCQkJICAgICAgRElU SEVSX0FERF9MU0hJRlRfRyhNVEtfTUFYX0JQQyAtIGJwYyksDQorCQkJICAgICAgY29tcCwgRElT UF9ESVRIRVJfMTYpOw0KKwkJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgRElTUF9ESVRIRVJJTkcs IGNvbXAsIENGRyk7DQogCX0NCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX29kX2NvbmZpZyhzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywNCiAJCQkgIHVuc2lnbmVkIGlu dCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJ CSAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQotCXdy aXRlbCh3IDw8IDE2IHwgaCwgY29tcC0+cmVncyArIERJU1BfT0RfU0laRSk7DQotCXdyaXRlbChP RF9SRUxBWU1PREUsIGNvbXAtPnJlZ3MgKyBESVNQX09EX0NGRyk7DQotCW10a19kaXRoZXJfc2V0 KGNvbXAsIGJwYywgRElTUF9PRF9DRkcpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCB3IDw8 IDE2IHwgaCwgY29tcCwgRElTUF9PRF9TSVpFKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwg T0RfUkVMQVlNT0RFLCBjb21wLCBESVNQX09EX0NGRyk7DQorCW10a19kaXRoZXJfc2V0KGNvbXAs IGJwYywgRElTUF9PRF9DRkcsIGNtZHFfcGt0KTsNCiB9DQogDQogc3RhdGljIHZvaWQgbXRrX29k X3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTIwLDkgKzE2Nyw5IEBAIHN0 YXRpYyB2b2lkIG10a191Zm9lX3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogDQog c3RhdGljIHZvaWQgbXRrX2FhbF9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5z aWduZWQgaW50IHcsDQogCQkJICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVz aCwNCi0JCQkgICB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJCSAgIHVuc2lnbmVkIGludCBicGMsIHN0 cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQogew0KLQl3cml0ZWwoaCA8PCAxNiB8IHcsIGNvbXAt PnJlZ3MgKyBESVNQX0FBTF9TSVpFKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgaCA8PCAx NiB8IHcsIGNvbXAsIERJU1BfQUFMX1NJWkUpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBtdGtfYWFs X3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTM3LDEwICsxODQsMTAgQEAg c3RhdGljIHZvaWQgbXRrX2FhbF9zdG9wKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogDQog c3RhdGljIHZvaWQgbXRrX2Njb3JyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1 bnNpZ25lZCBpbnQgdywNCiAJCQkgICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJl ZnJlc2gsDQotCQkJICAgICB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJCSAgICAgdW5zaWduZWQgaW50 IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQotCXdyaXRlbChoIDw8IDE2IHwg dywgY29tcC0+cmVncyArIERJU1BfQ0NPUlJfU0laRSk7DQotCXdyaXRlbChDQ09SUl9SRUxBWV9N T0RFLCBjb21wLT5yZWdzICsgRElTUF9DQ09SUl9DRkcpOw0KKwltdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCBoIDw8IDE2IHwgdywgY29tcCwgRElTUF9DQ09SUl9TSVpFKTsNCisJbXRrX2RkcF93cml0 ZShjbWRxX3BrdCwgQ0NPUlJfUkVMQVlfTU9ERSwgY29tcCwgRElTUF9DQ09SUl9DRkcpOw0KIH0N CiANCiBzdGF0aWMgdm9pZCBtdGtfY2NvcnJfc3RhcnQoc3RydWN0IG10a19kZHBfY29tcCAqY29t cCkNCkBAIC0xNTUsMTAgKzIwMiwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfY2NvcnJfc3RvcChzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KIA0KIHN0YXRpYyB2b2lkIG10a19kaXRoZXJfY29uZmln KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LA0KIAkJCSAgICAgIHVu c2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQotCQkJICAgICAgdW5zaWduZWQg aW50IGJwYykNCisJCQkgICAgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNt ZHFfcGt0KQ0KIHsNCi0Jd3JpdGVsKGggPDwgMTYgfCB3LCBjb21wLT5yZWdzICsgRElTUF9ESVRI RVJfU0laRSk7DQotCXdyaXRlbChESVRIRVJfUkVMQVlfTU9ERSwgY29tcC0+cmVncyArIERJU1Bf RElUSEVSX0NGRyk7DQorCW10a19kZHBfd3JpdGUoY21kcV9wa3QsIGggPDwgMTYgfCB3LCBjb21w LCBESVNQX0RJVEhFUl9TSVpFKTsNCisJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgRElUSEVSX1JF TEFZX01PREUsIGNvbXAsIERJU1BfRElUSEVSX0NGRyk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIG10 a19kaXRoZXJfc3RhcnQoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkNCkBAIC0xNzMsMTAgKzIy MCwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAq Y29tcCkNCiANCiBzdGF0aWMgdm9pZCBtdGtfZ2FtbWFfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2Nv bXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LA0KIAkJCSAgICAgdW5zaWduZWQgaW50IGgsIHVuc2ln bmVkIGludCB2cmVmcmVzaCwNCi0JCQkgICAgIHVuc2lnbmVkIGludCBicGMpDQorCQkJICAgICB1 bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCi0Jd3JpdGVs KGggPDwgMTYgfCB3LCBjb21wLT5yZWdzICsgRElTUF9HQU1NQV9TSVpFKTsNCi0JbXRrX2RpdGhl cl9zZXQoY29tcCwgYnBjLCBESVNQX0dBTU1BX0NGRyk7DQorCW10a19kZHBfd3JpdGUoY21kcV9w a3QsIGggPDwgMTYgfCB3LCBjb21wLCBESVNQX0dBTU1BX1NJWkUpOw0KKwltdGtfZGl0aGVyX3Nl dChjb21wLCBicGMsIERJU1BfR0FNTUFfQ0ZHLCBjbWRxX3BrdCk7DQogfQ0KIA0KIHN0YXRpYyB2 b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQ0KQEAgLTE5MCwy NCArMjM3LDIzIEBAIHN0YXRpYyB2b2lkIG10a19nYW1tYV9zdG9wKHN0cnVjdCBtdGtfZGRwX2Nv bXAgKmNvbXApDQogfQ0KIA0KIHN0YXRpYyB2b2lkIG10a19nYW1tYV9zZXQoc3RydWN0IG10a19k ZHBfY29tcCAqY29tcCwNCi0JCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpDQorCQkJ ICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLA0KKwkJCSAgc3RydWN0IGNtZHFfcGt0ICpj bWRxX3BrdCkNCiB7DQotCXVuc2lnbmVkIGludCBpLCByZWc7DQorCXVuc2lnbmVkIGludCBpOw0K IAlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0Ow0KLQl2b2lkIF9faW9tZW0gKmx1dF9iYXNlOw0K IAl1MzIgd29yZDsNCiANCiAJaWYgKHN0YXRlLT5nYW1tYV9sdXQpIHsNCi0JCXJlZyA9IHJlYWRs KGNvbXAtPnJlZ3MgKyBESVNQX0dBTU1BX0NGRyk7DQotCQlyZWcgPSByZWcgfCBHQU1NQV9MVVRf RU47DQotCQl3cml0ZWwocmVnLCBjb21wLT5yZWdzICsgRElTUF9HQU1NQV9DRkcpOw0KLQkJbHV0 X2Jhc2UgPSBjb21wLT5yZWdzICsgRElTUF9HQU1NQV9MVVQ7DQorCQltdGtfZGRwX3dyaXRlX21h c2soY21kcV9wa3QsIEdBTU1BX0xVVF9FTiwgY29tcCwNCisJCQkJICAgRElTUF9HQU1NQV9DRkcs IEdBTU1BX0xVVF9FTik7DQogCQlsdXQgPSAoc3RydWN0IGRybV9jb2xvcl9sdXQgKilzdGF0ZS0+ Z2FtbWFfbHV0LT5kYXRhOw0KIAkJZm9yIChpID0gMDsgaSA8IE1US19MVVRfU0laRTsgaSsrKSB7 DQogCQkJd29yZCA9ICgoKGx1dFtpXS5yZWQgPj4gNikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMjAp ICsNCiAJCQkJKCgobHV0W2ldLmdyZWVuID4+IDYpICYgTFVUXzEwQklUX01BU0spIDw8IDEwKSAr DQogCQkJCSgobHV0W2ldLmJsdWUgPj4gNikgJiBMVVRfMTBCSVRfTUFTSyk7DQotCQkJd3JpdGVs KHdvcmQsIChsdXRfYmFzZSArIGkgKiA0KSk7DQorCQkJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwg d29yZCwgY29tcCwNCisJCQkJICAgICAgRElTUF9HQU1NQV9MVVQgKyBpICogNCk7DQogCQl9DQog CX0NCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRw X2NvbXAuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgNCmlu ZGV4IGVjNTVjNzQ4OGNjMy4uNWIwYTNkNDhkZmE2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaA0KQEAgLTY5LDI1ICs2OSwzMCBAQCBlbnVtIG10a19k ZHBfY29tcF9pZCB7DQogfTsNCiANCiBzdHJ1Y3QgbXRrX2RkcF9jb21wOw0KLQ0KK3N0cnVjdCBj bWRxX3BrdDsNCiBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIHsNCiAJdm9pZCAoKmNvbmZpZyko c3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsDQotCQkgICAgICAgdW5z aWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwgdW5zaWduZWQgaW50IGJwYyk7DQor CQkgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwNCisJCSAgICAg ICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KTsNCiAJdm9pZCAo KnN0YXJ0KShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKTsNCiAJdm9pZCAoKnN0b3ApKHN0cnVj dCBtdGtfZGRwX2NvbXAgKmNvbXApOw0KIAl2b2lkICgqZW5hYmxlX3ZibGFuaykoc3RydWN0IG10 a19kZHBfY29tcCAqY29tcCwgc3RydWN0IGRybV9jcnRjICpjcnRjKTsNCiAJdm9pZCAoKmRpc2Fi bGVfdmJsYW5rKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKTsNCiAJdW5zaWduZWQgaW50ICgq c3VwcG9ydGVkX3JvdGF0aW9ucykoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCk7DQogCXVuc2ln bmVkIGludCAoKmxheWVyX25yKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKTsNCi0Jdm9pZCAo KmxheWVyX29uKShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4KTsN Ci0Jdm9pZCAoKmxheWVyX29mZikoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQg aW50IGlkeCk7DQorCXZvaWQgKCpsYXllcl9vbikoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwg dW5zaWduZWQgaW50IGlkeCwNCisJCQkgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7DQorCXZv aWQgKCpsYXllcl9vZmYpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBp ZHgsDQorCQkJICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KTsNCiAJaW50ICgqbGF5ZXJfY2hl Y2spKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQogCQkJICAgdW5zaWduZWQgaW50IGlkeCwN CiAJCQkgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSk7DQogCXZvaWQgKCpsYXllcl9j b25maWcpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgsDQotCQkJ ICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSk7DQorCQkJICAgICBzdHJ1Y3QgbXRr X3BsYW5lX3N0YXRlICpzdGF0ZSwNCisJCQkgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3Qp Ow0KIAl2b2lkICgqZ2FtbWFfc2V0KShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KLQkJCSAg c3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSk7DQorCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlLA0KKwkJCSAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7DQogCXZvaWQgKCpi Z2Nscl9pbl9vbikoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCk7DQogCXZvaWQgKCpiZ2Nscl9p bl9vZmYpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApOw0KIH07DQpAQCAtOTksMTQgKzEwNCwx NyBAQCBzdHJ1Y3QgbXRrX2RkcF9jb21wIHsNCiAJc3RydWN0IGRldmljZSAqZGV2Ow0KIAllbnVt IG10a19kZHBfY29tcF9pZCBpZDsNCiAJY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyAq ZnVuY3M7DQorCXJlc291cmNlX3NpemVfdCByZWdzX3BhOw0KKwl1OCBzdWJzeXM7DQogfTsNCiAN CiBzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2RkcF9jb21wX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9j b21wICpjb21wLA0KIAkJCQkgICAgICAgdW5zaWduZWQgaW50IHcsIHVuc2lnbmVkIGludCBoLA0K LQkJCQkgICAgICAgdW5zaWduZWQgaW50IHZyZWZyZXNoLCB1bnNpZ25lZCBpbnQgYnBjKQ0KKwkJ CQkgICAgICAgdW5zaWduZWQgaW50IHZyZWZyZXNoLCB1bnNpZ25lZCBpbnQgYnBjLA0KKwkJCQkg ICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCWlmIChjb21wLT5mdW5jcyAm JiBjb21wLT5mdW5jcy0+Y29uZmlnKQ0KLQkJY29tcC0+ZnVuY3MtPmNvbmZpZyhjb21wLCB3LCBo LCB2cmVmcmVzaCwgYnBjKTsNCisJCWNvbXAtPmZ1bmNzLT5jb25maWcoY29tcCwgdywgaCwgdnJl ZnJlc2gsIGJwYywgY21kcV9wa3QpOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2Rk cF9jb21wX3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQpAQCAtMTUyLDE3ICsxNjAs MTkgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbXRrX2RkcF9jb21wX2xheWVyX25yKHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtf ZGRwX2NvbXBfbGF5ZXJfb24oc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwNCi0JCQkJCSB1bnNp Z25lZCBpbnQgaWR4KQ0KKwkJCQkJIHVuc2lnbmVkIGludCBpZHgsDQorCQkJCQkgc3RydWN0IGNt ZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCWlmIChjb21wLT5mdW5jcyAmJiBjb21wLT5mdW5jcy0+ bGF5ZXJfb24pDQotCQljb21wLT5mdW5jcy0+bGF5ZXJfb24oY29tcCwgaWR4KTsNCisJCWNvbXAt PmZ1bmNzLT5sYXllcl9vbihjb21wLCBpZHgsIGNtZHFfcGt0KTsNCiB9DQogDQogc3RhdGljIGlu bGluZSB2b2lkIG10a19kZHBfY29tcF9sYXllcl9vZmYoc3RydWN0IG10a19kZHBfY29tcCAqY29t cCwNCi0JCQkJCSAgdW5zaWduZWQgaW50IGlkeCkNCisJCQkJCSAgdW5zaWduZWQgaW50IGlkeCwN CisJCQkJCSAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCiB7DQogCWlmIChjb21wLT5mdW5j cyAmJiBjb21wLT5mdW5jcy0+bGF5ZXJfb2ZmKQ0KLQkJY29tcC0+ZnVuY3MtPmxheWVyX29mZihj b21wLCBpZHgpOw0KKwkJY29tcC0+ZnVuY3MtPmxheWVyX29mZihjb21wLCBpZHgsIGNtZHFfcGt0 KTsNCiB9DQogDQogc3RhdGljIGlubGluZSBpbnQgbXRrX2RkcF9jb21wX2xheWVyX2NoZWNrKHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsDQpAQCAtMTc2LDE3ICsxODYsMTkgQEAgc3RhdGljIGlu bGluZSBpbnQgbXRrX2RkcF9jb21wX2xheWVyX2NoZWNrKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNv bXAsDQogDQogc3RhdGljIGlubGluZSB2b2lkIG10a19kZHBfY29tcF9sYXllcl9jb25maWcoc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCwNCiAJCQkJCSAgICAgdW5zaWduZWQgaW50IGlkeCwNCi0J CQkJCSAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUpDQorCQkJCQkgICAgIHN0cnVj dCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KKwkJCQkJICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNt ZHFfcGt0KQ0KIHsNCiAJaWYgKGNvbXAtPmZ1bmNzICYmIGNvbXAtPmZ1bmNzLT5sYXllcl9jb25m aWcpDQotCQljb21wLT5mdW5jcy0+bGF5ZXJfY29uZmlnKGNvbXAsIGlkeCwgc3RhdGUpOw0KKwkJ Y29tcC0+ZnVuY3MtPmxheWVyX2NvbmZpZyhjb21wLCBpZHgsIHN0YXRlLCBjbWRxX3BrdCk7DQog fQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtfZGRwX2dhbW1hX3NldChzdHJ1Y3QgbXRrX2Rk cF9jb21wICpjb21wLA0KLQkJCQkgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpDQor CQkJCSAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwNCisJCQkJICAgICBzdHJ1Y3Qg Y21kcV9wa3QgKmNtZHFfcGt0KQ0KIHsNCiAJaWYgKGNvbXAtPmZ1bmNzICYmIGNvbXAtPmZ1bmNz LT5nYW1tYV9zZXQpDQotCQljb21wLT5mdW5jcy0+Z2FtbWFfc2V0KGNvbXAsIHN0YXRlKTsNCisJ CWNvbXAtPmZ1bmNzLT5nYW1tYV9zZXQoY29tcCwgc3RhdGUsIGNtZHFfcGt0KTsNCiB9DQogDQog c3RhdGljIGlubGluZSB2b2lkIG10a19kZHBfY29tcF9iZ2Nscl9pbl9vbihzdHJ1Y3QgbXRrX2Rk cF9jb21wICpjb21wKQ0KQEAgLTIwOSw2ICsyMjEsMTMgQEAgaW50IG10a19kZHBfY29tcF9pbml0 KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGUsDQogaW50 IG10a19kZHBfY29tcF9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgbXRr X2RkcF9jb21wICpjb21wKTsNCiB2b2lkIG10a19kZHBfY29tcF91bnJlZ2lzdGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkcm0sIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApOw0KIHZvaWQgbXRrX2Rp dGhlcl9zZXQoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IGJwYywNCi0J CSAgICB1bnNpZ25lZCBpbnQgQ0ZHKTsNCi0NCisJCSAgICB1bnNpZ25lZCBpbnQgQ0ZHLCBzdHJ1 Y3QgY21kcV9wa3QgKmNtZHFfcGt0KTsNCitlbnVtIG10a19kZHBfY29tcF90eXBlIG10a19kZHBf Y29tcF9nZXRfdHlwZShlbnVtIG10a19kZHBfY29tcF9pZCBjb21wX2lkKTsNCit2b2lkIG10a19k ZHBfd3JpdGUoc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCwgdW5zaWduZWQgaW50IHZhbHVlLA0K KwkJICAgc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IG9mZnNldCk7DQor dm9pZCBtdGtfZGRwX3dyaXRlX3JlbGF4ZWQoc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCwgdW5z aWduZWQgaW50IHZhbHVlLA0KKwkJCSAgIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2ln bmVkIGludCBvZmZzZXQpOw0KK3ZvaWQgbXRrX2RkcF93cml0ZV9tYXNrKHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QsIHVuc2lnbmVkIGludCB2YWx1ZSwNCisJCQlzdHJ1Y3QgbXRrX2RkcF9jb21w ICpjb21wLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LA0KKwkJCXVuc2lnbmVkIGludCBtYXNrKTsNCiAj ZW5kaWYgLyogTVRLX0RSTV9ERFBfQ09NUF9IICovDQotLSANCjIuMTguMA0KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs