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=-11.4 required=3.0 tests=BAYES_00,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=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 A1537C433E0 for ; Sat, 8 Aug 2020 02:55:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5FAC222CF8 for ; Sat, 8 Aug 2020 02:55:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="gcBCE+gj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726948AbgHHCzK (ORCPT ); Fri, 7 Aug 2020 22:55:10 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:5016 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726426AbgHHCzC (ORCPT ); Fri, 7 Aug 2020 22:55:02 -0400 X-UUID: 7822fd91d68c4457afe66bd2e05c4bac-20200808 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=NKfEP+pHnq4ukyQ2+Gla9A+p3PAZsWxQIAUcZTxAsXU=; b=gcBCE+gjrUA0I6V8V5rnjybZjP0xTlmt6NmH9+XWK5wpk1BXv08C5QDIyhI3R+eh3MAYzw8X4Y7NvYeT4k7kI32vivB6Q46tyRMaCbciIqPknsUV7lah4q8ZuvVWB+cmV5yt2AP8vVqY7gAPu+gCnCQeuqHDceUJFuwvhzCUOR8=; X-UUID: 7822fd91d68c4457afe66bd2e05c4bac-20200808 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1394124182; Sat, 08 Aug 2020 10:54:43 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 8 Aug 2020 10:54:41 +0800 Received: from localhost.localdomain (10.17.3.153) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 8 Aug 2020 10:54:41 +0800 From: Yongqiang Niu To: CK Hu , Philipp Zabel , Rob Herring , Matthias Brugger CC: David Airlie , Daniel Vetter , Mark Rutland , , , , , , Yongqiang Niu Subject: [RESEND v7, PATCH 3/7] mtk-mmsys: add mmsys private data Date: Sat, 8 Aug 2020 10:53:47 +0800 Message-ID: <1596855231-5782-4-git-send-email-yongqiang.niu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1596855231-5782-1-git-send-email-yongqiang.niu@mediatek.com> References: <1596855231-5782-1-git-send-email-yongqiang.niu@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 dGhlIHJlYXNvbiB3aHkgc3BsaXQgb3V0IGRpc3BsYXkgY29ubmVjdGlvbiBmdW5jdGlvbjoNCjEu IHRoZXJlIHdpbGwgbW9yZSBhbmQgbW9yZSBNZWRpYXRlayBTb2MgdXBzdHJlYW0sIGFuZCB0aGUg ZGlzcGxheSBwYXRoDQpjb25uZWN0aW9uIGZ1bmN0aW9uIG10a19tbXN5c19kZHBfbW91dF9lbiwg bXRrX21tc3lzX2RkcF9zZWxfaW4gYW5kDQptdGtfbW1zeXNfZGRwX3NvdXRfc2VsIHdpbGwgY29t cGxpY2F0ZWQgbW9yZSBhbmQgbW9yZQ0KMi4gbWFueSBvZiB0aGUgY29ubmVjdGlvbiBhcmUgb25s eSB1c2VkIGluIHNvbWUgU29DLCBhbmQgdXNlbGVzcyBmb3INCm90aGVyIFNvQyBhbmQgbm90IHJl YWRhYmxlLA0KMy4gaWYgd2UgYWRkIGEgbmV3IFNvQyBjb25uZWN0aW9uLCB3ZSBuZWVkIGNoZWNr IGlzIHRoaXMgYWZmZWN0IG90aGVyDQpTb2MNCg0KdGhlIHJlYXNvbiB3aHkgbm90IGFwcGx5IHRo ZSBwcmV2aW91cyBzZXJpZXMgbWV0aG9kOg0KdGhpcyB2ZXJzaW9uIGlzIG1vcmUgcmVhZGFibGUg YW5kIGNsZWFyDQppZiBnbyBvbiB1c2UgdjYsIGV4Y2VwdCBtdDI3MDEvbXQ4MTczL210MjcxMiwg d2UgbmVlZCBhZGQgdHdvIG1vcmUNCnByaXZhdGUgZGF0YSBhcnJheSBmb3IgbXQ2Nzc5IGFuZCBt dDY3OTcsIGFuZCB0aGUgY29ubmVjdCBmdW5jdGlvbg0Kd2lsbCBhZGQgbW9yZSBpZi9lbHNlIHVz ZWNhc2UNCg0KbW92ZSBjdXJyZW50IGRpc3BsYXkgY29ubmVjdGlvbiBmdW5jdGlvbiBpbnRvIG10 MjcwMS1tbXN5cy5jDQprZWVwIG10MjcwMS9tdDgxNzMvbXQyNzEyL210Njc3OS9tdDY3OTcgd2l0 aCBvcmlnaW5hbCB2ZXJzaW9uDQpjb25uZWN0aW9uIGZ1bmN0aW9uDQp0aGUgY29ycmVzcG9uZGVk IFNvQyB1cHN0cmVhbSBtZW1iZXIgd2lsbCBjb2RpbmcgdGhlc2UgYW5kIHRlc3QgaXQNCm9uIHRo ZSBTb0MgaWYgaXQgaXMgbmVlZC4NCg0KU2lnbmVkLW9mZi1ieTogWW9uZ3FpYW5nIE5pdSA8eW9u Z3FpYW5nLm5pdUBtZWRpYXRlay5jb20+DQotLS0NCiBkcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtl ZmlsZSAgICAgICAgICAgICB8ICAgMSArDQogZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvTWFr ZWZpbGUgICAgICAgfCAgIDIgKw0KIGRyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210MjcwMS1t bXN5cy5jIHwgMjUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGRyaXZlcnMvc29jL21l ZGlhdGVrL210ay1tbXN5cy5jICAgICAgICAgIHwgMjcxICsrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KIGluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210ay1tbXN5cy5oICAgIHwgIDE1 ICsrDQogNSBmaWxlcyBjaGFuZ2VkLCAzMTQgaW5zZXJ0aW9ucygrKSwgMjI1IGRlbGV0aW9ucygt KQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmls ZQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9tdDI3MDEt bW1zeXMuYw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGUgYi9k cml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZQ0KaW5kZXggMmFmYTdiOS4uYjM3YWMyYyAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxlDQorKysgYi9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9NYWtlZmlsZQ0KQEAgLTMsMyArMyw0IEBAIG9iai0kKENPTkZJR19NVEtfQ01E USkgKz0gbXRrLWNtZHEtaGVscGVyLm8NCiBvYmotJChDT05GSUdfTVRLX1BNSUNfV1JBUCkgKz0g bXRrLXBtaWMtd3JhcC5vDQogb2JqLSQoQ09ORklHX01US19TQ1BTWVMpICs9IG10ay1zY3BzeXMu bw0KIG9iai0kKENPTkZJR19NVEtfTU1TWVMpICs9IG10ay1tbXN5cy5vDQorb2JqLSQoQ09ORklH X01US19NTVNZUykgKz0gbW1zeXMvDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsv bW1zeXMvTWFrZWZpbGUgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmlsZQ0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjMzYjBkYWINCi0tLSAvZGV2L251bGwN CisrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlDQpAQCAtMCwwICsxLDIg QEANCisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCitvYmoteSArPSBt dDI3MDEtbW1zeXMubw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210 MjcwMS1tbXN5cy5jIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXQyNzAxLW1tc3lzLmMN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5iOGU1M2IwDQotLS0gL2Rldi9u dWxsDQorKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9tdDI3MDEtbW1zeXMuYw0KQEAg LTAsMCArMSwyNTAgQEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KKy8v DQorLy8gQ29weXJpZ2h0IChjKSAyMDIwIE1lZGlhVGVrIEluYy4NCisNCisjaW5jbHVkZSA8bGlu dXgvZGV2aWNlLmg+DQorI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQorI2luY2x1ZGUgPGxpbnV4L29m X2RldmljZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCisjaW5jbHVk ZSA8bGludXgvc29jL21lZGlhdGVrL210ay1tbXN5cy5oPg0KKw0KKyNkZWZpbmUgRElTUF9SRUdf Q09ORklHX0RJU1BfT1ZMMF9NT1VUX0VOCTB4MDQwDQorI2RlZmluZSBESVNQX1JFR19DT05GSUdf RElTUF9PVkwxX01PVVRfRU4JMHgwNDQNCisjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX09E X01PVVRfRU4JCTB4MDQ4DQorI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9HQU1NQV9NT1VU X0VOCTB4MDRjDQorI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9VRk9FX01PVVRfRU4JMHgw NTANCisjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMF9TRUxfSU4JMHgwODQNCisj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMV9TRUxfSU4JMHgwODgNCisjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTgkJMHgwYTQNCisjZGVmaW5lIERJU1BfUkVHX0NP TkZJR19EU0lPX1NFTF9JTgkJMHgwYTgNCisjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19EUElfU0VM X0lOCQkweDBhYw0KKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVAkJMHgw YjgNCisjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU4JMHgwYzQNCisj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU4JMHgwYzgNCisjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19NTVNZU19DR19DT04wCQkweDEwMA0KKw0KKyNkZWZpbmUgRElTUF9S RUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU4JMHgwMzANCisjZGVmaW5lIERJU1BfUkVHX0NPTkZJ R19PVVRfU0VMCQkJMHgwNGMNCisjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19EU0lfU0VMCQkJMHgw NTANCisjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19EUElfU0VMCQkJMHgwNjQNCisNCisjZGVmaW5l IE9WTDBfTU9VVF9FTl9DT0xPUjAJCQkweDENCisjZGVmaW5lIE9EX01PVVRfRU5fUkRNQTAJCQkw eDENCisjZGVmaW5lIE9EMV9NT1VUX0VOX1JETUExCQkJQklUKDE2KQ0KKyNkZWZpbmUgVUZPRV9N T1VUX0VOX0RTSTAJCQkweDENCisjZGVmaW5lIENPTE9SMF9TRUxfSU5fT1ZMMAkJCTB4MQ0KKyNk ZWZpbmUgT1ZMMV9NT1VUX0VOX0NPTE9SMQkJCTB4MQ0KKyNkZWZpbmUgR0FNTUFfTU9VVF9FTl9S RE1BMQkJCTB4MQ0KKyNkZWZpbmUgUkRNQTBfU09VVF9EUEkwCQkJCTB4Mg0KKyNkZWZpbmUgUkRN QTBfU09VVF9EUEkxCQkJCTB4Mw0KKyNkZWZpbmUgUkRNQTBfU09VVF9EU0kxCQkJCTB4MQ0KKyNk ZWZpbmUgUkRNQTBfU09VVF9EU0kyCQkJCTB4NA0KKyNkZWZpbmUgUkRNQTBfU09VVF9EU0kzCQkJ CTB4NQ0KKyNkZWZpbmUgUkRNQTFfU09VVF9EUEkwCQkJCTB4Mg0KKyNkZWZpbmUgUkRNQTFfU09V VF9EUEkxCQkJCTB4Mw0KKyNkZWZpbmUgUkRNQTFfU09VVF9EU0kxCQkJCTB4MQ0KKyNkZWZpbmUg UkRNQTFfU09VVF9EU0kyCQkJCTB4NA0KKyNkZWZpbmUgUkRNQTFfU09VVF9EU0kzCQkJCTB4NQ0K KyNkZWZpbmUgUkRNQTJfU09VVF9EUEkwCQkJCTB4Mg0KKyNkZWZpbmUgUkRNQTJfU09VVF9EUEkx CQkJCTB4Mw0KKyNkZWZpbmUgUkRNQTJfU09VVF9EU0kxCQkJCTB4MQ0KKyNkZWZpbmUgUkRNQTJf U09VVF9EU0kyCQkJCTB4NA0KKyNkZWZpbmUgUkRNQTJfU09VVF9EU0kzCQkJCTB4NQ0KKyNkZWZp bmUgRFBJMF9TRUxfSU5fUkRNQTEJCQkweDENCisjZGVmaW5lIERQSTBfU0VMX0lOX1JETUEyCQkJ MHgzDQorI2RlZmluZSBEUEkxX1NFTF9JTl9SRE1BMQkJCSgweDEgPDwgOCkNCisjZGVmaW5lIERQ STFfU0VMX0lOX1JETUEyCQkJKDB4MyA8PCA4KQ0KKyNkZWZpbmUgRFNJMF9TRUxfSU5fUkRNQTEJ CQkweDENCisjZGVmaW5lIERTSTBfU0VMX0lOX1JETUEyCQkJMHg0DQorI2RlZmluZSBEU0kxX1NF TF9JTl9SRE1BMQkJCTB4MQ0KKyNkZWZpbmUgRFNJMV9TRUxfSU5fUkRNQTIJCQkweDQNCisjZGVm aW5lIERTSTJfU0VMX0lOX1JETUExCQkJKDB4MSA8PCAxNikNCisjZGVmaW5lIERTSTJfU0VMX0lO X1JETUEyCQkJKDB4NCA8PCAxNikNCisjZGVmaW5lIERTSTNfU0VMX0lOX1JETUExCQkJKDB4MSA8 PCAxNikNCisjZGVmaW5lIERTSTNfU0VMX0lOX1JETUEyCQkJKDB4NCA8PCAxNikNCisjZGVmaW5l IENPTE9SMV9TRUxfSU5fT1ZMMQkJCTB4MQ0KKw0KKyNkZWZpbmUgT1ZMX01PVVRfRU5fUkRNQQkJ CTB4MQ0KKyNkZWZpbmUgQkxTX1RPX0RTSV9SRE1BMV9UT19EUEkxCQkweDgNCisjZGVmaW5lIEJM U19UT19EUElfUkRNQTFfVE9fRFNJCQkJMHgyDQorI2RlZmluZSBEU0lfU0VMX0lOX0JMUwkJCQkw eDANCisjZGVmaW5lIERQSV9TRUxfSU5fQkxTCQkJCTB4MA0KKyNkZWZpbmUgRFNJX1NFTF9JTl9S RE1BCQkJCTB4MQ0KKw0KK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX21tc3lzX2RkcF9tb3V0X2Vu KGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCisJCQkJCSAgZW51bSBtdGtfZGRwX2NvbXBfaWQg bmV4dCwNCisJCQkJCSAgdW5zaWduZWQgaW50ICphZGRyKQ0KK3sNCisJdW5zaWduZWQgaW50IHZh bHVlOw0KKw0KKwlpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAmJiBuZXh0ID09IEREUF9D T01QT05FTlRfQ09MT1IwKSB7DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09WTDBf TU9VVF9FTjsNCisJCXZhbHVlID0gT1ZMMF9NT1VUX0VOX0NPTE9SMDsNCisJfSBlbHNlIGlmIChj dXIgPT0gRERQX0NPTVBPTkVOVF9PVkwwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCkg ew0KKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PVkxfTU9VVF9FTjsNCisJCXZhbHVl ID0gT1ZMX01PVVRfRU5fUkRNQTsNCisJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9P RDAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX1JETUEwKSB7DQorCQkqYWRkciA9IERJU1BfUkVH X0NPTkZJR19ESVNQX09EX01PVVRfRU47DQorCQl2YWx1ZSA9IE9EX01PVVRfRU5fUkRNQTA7DQor CX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfVUZPRSAmJiBuZXh0ID09IEREUF9DT01Q T05FTlRfRFNJMCkgew0KKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9VRk9FX01PVVRf RU47DQorCQl2YWx1ZSA9IFVGT0VfTU9VVF9FTl9EU0kwOw0KKwl9IGVsc2UgaWYgKGN1ciA9PSBE RFBfQ09NUE9ORU5UX09WTDEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMSkgew0KKwkJ KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwxX01PVVRfRU47DQorCQl2YWx1ZSA9IE9W TDFfTU9VVF9FTl9DT0xPUjE7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfR0FN TUEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX1JETUExKSB7DQorCQkqYWRkciA9IERJU1BfUkVH X0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU47DQorCQl2YWx1ZSA9IEdBTU1BX01PVVRfRU5fUkRN QTE7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT0QxICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMSkgew0KKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PRF9N T1VUX0VOOw0KKwkJdmFsdWUgPSBPRDFfTU9VVF9FTl9SRE1BMTsNCisJfSBlbHNlIGlmIChjdXIg PT0gRERQX0NPTVBPTkVOVF9SRE1BMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0K KwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9TT1VUX0VOOw0KKwkJdmFsdWUg PSBSRE1BMF9TT1VUX0RQSTA7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRN QTAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTEpIHsNCisJCSphZGRyID0gRElTUF9SRUdf Q09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsNCisJCXZhbHVlID0gUkRNQTBfU09VVF9EUEkxOw0K Kwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NP TVBPTkVOVF9EU0kxKSB7DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NP VVRfRU47DQorCQl2YWx1ZSA9IFJETUEwX1NPVVRfRFNJMTsNCisJfSBlbHNlIGlmIChjdXIgPT0g RERQX0NPTVBPTkVOVF9SRE1BMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMikgew0KKwkJ KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9TT1VUX0VOOw0KKwkJdmFsdWUgPSBS RE1BMF9TT1VUX0RTSTI7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTAg JiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTMpIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09O RklHX0RJU1BfUkRNQTBfU09VVF9FTjsNCisJCXZhbHVlID0gUkRNQTBfU09VVF9EU0kzOw0KKwl9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kxKSB7DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRf RU47DQorCQl2YWx1ZSA9IFJETUExX1NPVVRfRFNJMTsNCisJfSBlbHNlIGlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMikgew0KKwkJKmFk ZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KKwkJdmFsdWUgPSBSRE1B MV9TT1VUX0RTSTI7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTMpIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfUkRNQTFfU09VVF9FTjsNCisJCXZhbHVlID0gUkRNQTFfU09VVF9EU0kzOw0KKwl9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVO VF9EUEkwKSB7DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47 DQorCQl2YWx1ZSA9IFJETUExX1NPVVRfRFBJMDsNCisJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NP TVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMSkgew0KKwkJKmFkZHIg PSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KKwkJdmFsdWUgPSBSRE1BMV9T T1VUX0RQSTE7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX0RQSTApIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTJfU09VVDsNCisJCXZhbHVlID0gUkRNQTJfU09VVF9EUEkwOw0KKwl9IGVsc2UgaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkx KSB7DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQorCQl2YWx1 ZSA9IFJETUEyX1NPVVRfRFBJMTsNCisJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9S RE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMSkgew0KKwkJKmFkZHIgPSBESVNQX1JF R19DT05GSUdfRElTUF9SRE1BMl9TT1VUOw0KKwkJdmFsdWUgPSBSRE1BMl9TT1VUX0RTSTE7DQor CX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09N UE9ORU5UX0RTSTIpIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09V VDsNCisJCXZhbHVlID0gUkRNQTJfU09VVF9EU0kyOw0KKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7DQorCQkqYWRk ciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQorCQl2YWx1ZSA9IFJETUEyX1NP VVRfRFNJMzsNCisJfSBlbHNlIHsNCisJCXZhbHVlID0gMDsNCisJfQ0KKw0KKwlyZXR1cm4gdmFs dWU7DQorfQ0KKw0KK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX21tc3lzX2RkcF9zZWxfaW4oZW51 bSBtdGtfZGRwX2NvbXBfaWQgY3VyLA0KKwkJCQkJIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQs DQorCQkJCQkgdW5zaWduZWQgaW50ICphZGRyKQ0KK3sNCisJdW5zaWduZWQgaW50IHZhbHVlOw0K Kw0KKwlpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfQ09MT1IwKSB7DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMF9TRUxf SU47DQorCQl2YWx1ZSA9IENPTE9SMF9TRUxfSU5fT1ZMMDsNCisJfSBlbHNlIGlmIChjdXIgPT0g RERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0KKwkJ KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFBJX1NFTF9JTjsNCisJCXZhbHVlID0gRFBJMF9TRUxf SU5fUkRNQTE7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX0RQSTEpIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQ SV9TRUxfSU47DQorCQl2YWx1ZSA9IERQSTFfU0VMX0lOX1JETUExOw0KKwl9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kwKSB7 DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsNCisJCXZhbHVlID0gRFNJ MF9TRUxfSU5fUkRNQTE7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEg JiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09O RklHX0RTSU9fU0VMX0lOOw0KKwkJdmFsdWUgPSBEU0kxX1NFTF9JTl9SRE1BMTsNCisJfSBlbHNl IGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRf RFNJMikgew0KKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47DQorCQl2YWx1 ZSA9IERTSTJfU0VMX0lOX1JETUExOw0KKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7DQorCQkqYWRkciA9IERJU1Bf UkVHX0NPTkZJR19EU0lPX1NFTF9JTjsNCisJCXZhbHVlID0gRFNJM19TRUxfSU5fUkRNQTE7DQor CX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09N UE9ORU5UX0RQSTApIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47DQor CQl2YWx1ZSA9IERQSTBfU0VMX0lOX1JETUEyOw0KKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7DQorCQkqYWRkciA9 IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOw0KKwkJdmFsdWUgPSBEUEkxX1NFTF9JTl9SRE1B MjsNCisJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMCkgew0KKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxf SU47DQorCQl2YWx1ZSA9IERTSTBfU0VMX0lOX1JETUEyOw0KKwl9IGVsc2UgaWYgKGN1ciA9PSBE RFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7DQorCQkq YWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsNCisJCXZhbHVlID0gRFNJMV9TRUxf SU5fUkRNQTI7DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsNCisJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RT SUVfU0VMX0lOOw0KKwkJdmFsdWUgPSBEU0kyX1NFTF9JTl9SRE1BMjsNCisJfSBlbHNlIGlmIChj dXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykg ew0KKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47DQorCQl2YWx1ZSA9IERT STNfU0VMX0lOX1JETUEyOw0KKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX09WTDEg JiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMSkgew0KKwkJKmFkZHIgPSBESVNQX1JFR19D T05GSUdfRElTUF9DT0xPUjFfU0VMX0lOOw0KKwkJdmFsdWUgPSBDT0xPUjFfU0VMX0lOX09WTDE7 DQorCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfQkxTICYmIG5leHQgPT0gRERQX0NP TVBPTkVOVF9EU0kwKSB7DQorCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lfU0VMOw0KKwkJ dmFsdWUgPSBEU0lfU0VMX0lOX0JMUzsNCisJfSBlbHNlIHsNCisJCXZhbHVlID0gMDsNCisJfQ0K Kw0KKwlyZXR1cm4gdmFsdWU7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIG10a19tbXN5c19kZHBfc291 dF9zZWwodm9pZCBfX2lvbWVtICpjb25maWdfcmVncywNCisJCQkJICAgZW51bSBtdGtfZGRwX2Nv bXBfaWQgY3VyLA0KKwkJCQkgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0KQ0KK3sNCisJaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkg ew0KKwkJd3JpdGVsX3JlbGF4ZWQoQkxTX1RPX0RTSV9SRE1BMV9UT19EUEkxLA0KKwkJCSAgICAg ICBjb25maWdfcmVncyArIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMKTsNCisJfSBlbHNlIGlmIChj dXIgPT0gRERQX0NPTVBPTkVOVF9CTFMgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTApIHsN CisJCXdyaXRlbF9yZWxheGVkKEJMU19UT19EUElfUkRNQTFfVE9fRFNJLA0KKwkJCSAgICAgICBj b25maWdfcmVncyArIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMKTsNCisJCXdyaXRlbF9yZWxheGVk KERTSV9TRUxfSU5fUkRNQSwNCisJCQkgICAgICAgY29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05G SUdfRFNJX1NFTCk7DQorCQl3cml0ZWxfcmVsYXhlZChEUElfU0VMX0lOX0JMUywNCisJCQkgICAg ICAgY29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdfRFBJX1NFTCk7DQorCX0NCit9DQorDQor c3RhdGljIHN0cnVjdCBtdGtfbW1zeXNfY29ubl9mdW5jcyBtbXN5c19mdW5jcyA9IHsNCisJLm1v dXRfZW4gPSBtdGtfbW1zeXNfZGRwX21vdXRfZW4sDQorCS5zZWxfaW4gPSBtdGtfbW1zeXNfZGRw X3NlbF9pbiwNCisJLnNvdXRfc2VsID0gbXRrX21tc3lzX2RkcF9zb3V0X3NlbCwNCit9Ow0KKw0K K3N0YXRpYyBpbnQgbW1zeXNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCit7 DQorCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQorDQorCW10a19tbXN5c19yZWdp c3Rlcl9jb25uX2Z1bmNzKGRldi0+cGFyZW50LCAmbW1zeXNfZnVuY3MpOw0KKw0KKwlyZXR1cm4g MDsNCit9DQorDQorc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbW1zeXNfZHJ2ID0gew0K KwkucHJvYmUgPSBtbXN5c19wcm9iZSwNCisJLmRyaXZlciA9IHsNCisJCS5uYW1lID0gIm10Mjcw MS1tbXN5cyIsDQorCX0sDQorfTsNCisNCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihtbXN5c19k cnYpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1tbXN5cy5jIGIvZHJp dmVycy9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmMNCmluZGV4IDM2YWQ2NmIuLjYwNWI5OTIgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstbW1zeXMuYw0KKysrIGIvZHJpdmVy cy9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmMNCkBAIC0xMCwyNjcgKzEwLDYzIEBADQogI2luY2x1 ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KICNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0 ZWsvbXRrLW1tc3lzLmg+DQogDQotI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01P VVRfRU4JMHgwNDANCi0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX09WTDFfTU9VVF9FTgkw eDA0NA0KLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfT0RfTU9VVF9FTgkJMHgwNDgNCi0j ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU4JMHgwNGMNCi0jZGVmaW5l IERJU1BfUkVHX0NPTkZJR19ESVNQX1VGT0VfTU9VVF9FTgkweDA1MA0KLSNkZWZpbmUgRElTUF9S RUdfQ09ORklHX0RJU1BfQ09MT1IwX1NFTF9JTgkweDA4NA0KLSNkZWZpbmUgRElTUF9SRUdfQ09O RklHX0RJU1BfQ09MT1IxX1NFTF9JTgkweDA4OA0KLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RT SUVfU0VMX0lOCQkweDBhNA0KLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RTSU9fU0VMX0lOCQkw eDBhOA0KLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU4JCTB4MGFjDQotI2RlZmlu ZSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMl9TT1VUCQkweDBiOA0KLSNkZWZpbmUgRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTgkweDBjNA0KLSNkZWZpbmUgRElTUF9SRUdfQ09O RklHX0RJU1BfUkRNQTFfU09VVF9FTgkweDBjOA0KLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX01N U1lTX0NHX0NPTjAJCTB4MTAwDQotDQotI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkxf TU9VVF9FTgkweDAzMA0KLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX09VVF9TRUwJCQkweDA0Yw0K LSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RTSV9TRUwJCQkweDA1MA0KLSNkZWZpbmUgRElTUF9S RUdfQ09ORklHX0RQSV9TRUwJCQkweDA2NA0KLQ0KLSNkZWZpbmUgT1ZMMF9NT1VUX0VOX0NPTE9S MAkJCTB4MQ0KLSNkZWZpbmUgT0RfTU9VVF9FTl9SRE1BMAkJCTB4MQ0KLSNkZWZpbmUgT0QxX01P VVRfRU5fUkRNQTEJCQlCSVQoMTYpDQotI2RlZmluZSBVRk9FX01PVVRfRU5fRFNJMAkJCTB4MQ0K LSNkZWZpbmUgQ09MT1IwX1NFTF9JTl9PVkwwCQkJMHgxDQotI2RlZmluZSBPVkwxX01PVVRfRU5f Q09MT1IxCQkJMHgxDQotI2RlZmluZSBHQU1NQV9NT1VUX0VOX1JETUExCQkJMHgxDQotI2RlZmlu ZSBSRE1BMF9TT1VUX0RQSTAJCQkJMHgyDQotI2RlZmluZSBSRE1BMF9TT1VUX0RQSTEJCQkJMHgz DQotI2RlZmluZSBSRE1BMF9TT1VUX0RTSTEJCQkJMHgxDQotI2RlZmluZSBSRE1BMF9TT1VUX0RT STIJCQkJMHg0DQotI2RlZmluZSBSRE1BMF9TT1VUX0RTSTMJCQkJMHg1DQotI2RlZmluZSBSRE1B MV9TT1VUX0RQSTAJCQkJMHgyDQotI2RlZmluZSBSRE1BMV9TT1VUX0RQSTEJCQkJMHgzDQotI2Rl ZmluZSBSRE1BMV9TT1VUX0RTSTEJCQkJMHgxDQotI2RlZmluZSBSRE1BMV9TT1VUX0RTSTIJCQkJ MHg0DQotI2RlZmluZSBSRE1BMV9TT1VUX0RTSTMJCQkJMHg1DQotI2RlZmluZSBSRE1BMl9TT1VU X0RQSTAJCQkJMHgyDQotI2RlZmluZSBSRE1BMl9TT1VUX0RQSTEJCQkJMHgzDQotI2RlZmluZSBS RE1BMl9TT1VUX0RTSTEJCQkJMHgxDQotI2RlZmluZSBSRE1BMl9TT1VUX0RTSTIJCQkJMHg0DQot I2RlZmluZSBSRE1BMl9TT1VUX0RTSTMJCQkJMHg1DQotI2RlZmluZSBEUEkwX1NFTF9JTl9SRE1B MQkJCTB4MQ0KLSNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTIJCQkweDMNCi0jZGVmaW5lIERQSTFf U0VMX0lOX1JETUExCQkJKDB4MSA8PCA4KQ0KLSNkZWZpbmUgRFBJMV9TRUxfSU5fUkRNQTIJCQko MHgzIDw8IDgpDQotI2RlZmluZSBEU0kwX1NFTF9JTl9SRE1BMQkJCTB4MQ0KLSNkZWZpbmUgRFNJ MF9TRUxfSU5fUkRNQTIJCQkweDQNCi0jZGVmaW5lIERTSTFfU0VMX0lOX1JETUExCQkJMHgxDQot I2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMgkJCTB4NA0KLSNkZWZpbmUgRFNJMl9TRUxfSU5fUkRN QTEJCQkoMHgxIDw8IDE2KQ0KLSNkZWZpbmUgRFNJMl9TRUxfSU5fUkRNQTIJCQkoMHg0IDw8IDE2 KQ0KLSNkZWZpbmUgRFNJM19TRUxfSU5fUkRNQTEJCQkoMHgxIDw8IDE2KQ0KLSNkZWZpbmUgRFNJ M19TRUxfSU5fUkRNQTIJCQkoMHg0IDw8IDE2KQ0KLSNkZWZpbmUgQ09MT1IxX1NFTF9JTl9PVkwx CQkJMHgxDQotDQotI2RlZmluZSBPVkxfTU9VVF9FTl9SRE1BCQkJMHgxDQotI2RlZmluZSBCTFNf VE9fRFNJX1JETUExX1RPX0RQSTEJCTB4OA0KLSNkZWZpbmUgQkxTX1RPX0RQSV9SRE1BMV9UT19E U0kJCQkweDINCi0jZGVmaW5lIERTSV9TRUxfSU5fQkxTCQkJCTB4MA0KLSNkZWZpbmUgRFBJX1NF TF9JTl9CTFMJCQkJMHgwDQotI2RlZmluZSBEU0lfU0VMX0lOX1JETUEJCQkJMHgxDQotDQogc3Ry dWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSB7DQogCWNvbnN0IGNoYXIgKmNsa19kcml2ZXI7DQor CWNvbnN0IGNoYXIgKm1tc3lzX2RyaXZlcjsNCit9Ow0KKw0KK3N0cnVjdCBtdGtfbW1zeXNfcHJp dmF0ZV9kYXRhIHsNCisJdm9pZCBfX2lvbWVtICpjb25maWdfcmVnczsNCisJc3RydWN0IG10a19t bXN5c19jb25uX2Z1bmNzICpmdW5jczsNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRr X21tc3lzX2RyaXZlcl9kYXRhIG10MjcwMV9tbXN5c19kcml2ZXJfZGF0YSA9IHsNCiAJLmNsa19k cml2ZXIgPSAiY2xrLW10MjcwMS1tbSIsDQorCS5tbXN5c19kcml2ZXIgPSAibXQyNzAxLW1tc3lz IiwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10 MjcxMl9tbXN5c19kcml2ZXJfZGF0YSA9IHsNCiAJLmNsa19kcml2ZXIgPSAiY2xrLW10MjcxMi1t bSIsDQorCS5tbXN5c19kcml2ZXIgPSAibXQyNzAxLW1tc3lzIiwNCiB9Ow0KIA0KIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10Njc3OV9tbXN5c19kcml2ZXJfZGF0 YSA9IHsNCiAJLmNsa19kcml2ZXIgPSAiY2xrLW10Njc3OS1tbSIsDQorCS5tbXN5c19kcml2ZXIg PSAibXQyNzAxLW1tc3lzIiwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lz X2RyaXZlcl9kYXRhIG10Njc5N19tbXN5c19kcml2ZXJfZGF0YSA9IHsNCiAJLmNsa19kcml2ZXIg PSAiY2xrLW10Njc5Ny1tbSIsDQorCS5tbXN5c19kcml2ZXIgPSAibXQyNzAxLW1tc3lzIiwNCiB9 Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE3M19t bXN5c19kcml2ZXJfZGF0YSA9IHsNCiAJLmNsa19kcml2ZXIgPSAiY2xrLW10ODE3My1tbSIsDQor CS5tbXN5c19kcml2ZXIgPSAibXQyNzAxLW1tc3lzIiwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBz dHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE4M19tbXN5c19kcml2ZXJfZGF0YSA9IHsN CiAJLmNsa19kcml2ZXIgPSAiY2xrLW10ODE4My1tbSIsDQogfTsNCiANCi1zdGF0aWMgdW5zaWdu ZWQgaW50IG10a19tbXN5c19kZHBfbW91dF9lbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsDQot CQkJCQkgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsDQotCQkJCQkgIHVuc2lnbmVkIGludCAq YWRkcikNCi17DQotCXVuc2lnbmVkIGludCB2YWx1ZTsNCi0NCi0JaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX09WTDAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMCkgew0KLQkJKmFkZHIg PSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRfRU47DQotCQl2YWx1ZSA9IE9WTDBfTU9V VF9FTl9DT0xPUjA7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAmJiBu ZXh0ID09IEREUF9DT01QT05FTlRfUkRNQTApIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfT1ZMX01PVVRfRU47DQotCQl2YWx1ZSA9IE9WTF9NT1VUX0VOX1JETUE7DQotCX0gZWxz ZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT0QwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9S RE1BMCkgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PRF9NT1VUX0VOOw0KLQkJ dmFsdWUgPSBPRF9NT1VUX0VOX1JETUEwOw0KLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1VGT0UgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsNCi0JCSphZGRyID0gRElT UF9SRUdfQ09ORklHX0RJU1BfVUZPRV9NT1VUX0VOOw0KLQkJdmFsdWUgPSBVRk9FX01PVVRfRU5f RFNJMDsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9PVkwxICYmIG5leHQgPT0g RERQX0NPTVBPTkVOVF9DT0xPUjEpIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1Bf T1ZMMV9NT1VUX0VOOw0KLQkJdmFsdWUgPSBPVkwxX01PVVRfRU5fQ09MT1IxOw0KLQl9IGVsc2Ug aWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0dBTU1BICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9S RE1BMSkgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9HQU1NQV9NT1VUX0VOOw0K LQkJdmFsdWUgPSBHQU1NQV9NT1VUX0VOX1JETUExOw0KLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX09EMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfUkRNQTEpIHsNCi0JCSphZGRy ID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT0RfTU9VVF9FTjsNCi0JCXZhbHVlID0gT0QxX01PVVRf RU5fUkRNQTE7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTAgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX0RQSTApIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTBfU09VVF9FTjsNCi0JCXZhbHVlID0gUkRNQTBfU09VVF9EUEkwOw0KLQl9IGVsc2Ug aWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9E UEkxKSB7DQotCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU47DQot CQl2YWx1ZSA9IFJETUEwX1NPVVRfRFBJMTsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBP TkVOVF9SRE1BMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMSkgew0KLQkJKmFkZHIgPSBE SVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9TT1VUX0VOOw0KLQkJdmFsdWUgPSBSRE1BMF9TT1VU X0RTSTE7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTAgJiYgbmV4dCA9 PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1Bf UkRNQTBfU09VVF9FTjsNCi0JCXZhbHVlID0gUkRNQTBfU09VVF9EU0kyOw0KLQl9IGVsc2UgaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kz KSB7DQotCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU47DQotCQl2 YWx1ZSA9IFJETUEwX1NPVVRfRFNJMzsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVO VF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMSkgew0KLQkJKmFkZHIgPSBESVNQ X1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KLQkJdmFsdWUgPSBSRE1BMV9TT1VUX0RT STE7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBE RFBfQ09NUE9ORU5UX0RTSTIpIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRN QTFfU09VVF9FTjsNCi0JCXZhbHVlID0gUkRNQTFfU09VVF9EU0kyOw0KLQl9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7 DQotCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47DQotCQl2YWx1 ZSA9IFJETUExX1NPVVRfRFNJMzsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9S RE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0KLQkJKmFkZHIgPSBESVNQX1JF R19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KLQkJdmFsdWUgPSBSRE1BMV9TT1VUX0RQSTA7 DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBf Q09NUE9ORU5UX0RQSTEpIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFf U09VVF9FTjsNCi0JCXZhbHVlID0gUkRNQTFfU09VVF9EUEkxOw0KLQl9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7DQot CQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQotCQl2YWx1ZSA9IFJE TUEyX1NPVVRfRFBJMDsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAm JiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMSkgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05G SUdfRElTUF9SRE1BMl9TT1VUOw0KLQkJdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTE7DQotCX0gZWxz ZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5U X0RTSTEpIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsNCi0J CXZhbHVlID0gUkRNQTJfU09VVF9EU0kxOw0KLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7DQotCQkqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQotCQl2YWx1ZSA9IFJETUEyX1NPVVRfRFNJ MjsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMykgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1B Ml9TT1VUOw0KLQkJdmFsdWUgPSBSRE1BMl9TT1VUX0RTSTM7DQotCX0gZWxzZSB7DQotCQl2YWx1 ZSA9IDA7DQotCX0NCi0NCi0JcmV0dXJuIHZhbHVlOw0KLX0NCi0NCi1zdGF0aWMgdW5zaWduZWQg aW50IG10a19tbXN5c19kZHBfc2VsX2luKGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCi0JCQkJ CSBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0LA0KLQkJCQkJIHVuc2lnbmVkIGludCAqYWRkcikN Ci17DQotCXVuc2lnbmVkIGludCB2YWx1ZTsNCi0NCi0JaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X09WTDAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMCkgew0KLQkJKmFkZHIgPSBESVNQ X1JFR19DT05GSUdfRElTUF9DT0xPUjBfU0VMX0lOOw0KLQkJdmFsdWUgPSBDT0xPUjBfU0VMX0lO X09WTDA7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9 PSBERFBfQ09NUE9ORU5UX0RQSTApIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9T RUxfSU47DQotCQl2YWx1ZSA9IERQSTBfU0VMX0lOX1JETUExOw0KLQl9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7DQot CQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOw0KLQkJdmFsdWUgPSBEUEkxX1NF TF9JTl9SRE1BMTsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBu ZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdf RFNJRV9TRUxfSU47DQotCQl2YWx1ZSA9IERTSTBfU0VMX0lOX1JETUExOw0KLQl9IGVsc2UgaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kx KSB7DQotCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsNCi0JCXZhbHVlID0g RFNJMV9TRUxfSU5fUkRNQTE7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRN QTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsNCi0JCSphZGRyID0gRElTUF9SRUdf Q09ORklHX0RTSUVfU0VMX0lOOw0KLQkJdmFsdWUgPSBEU0kyX1NFTF9JTl9SRE1BMTsNCi0JfSBl bHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfRFNJMykgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU47DQotCQl2 YWx1ZSA9IERTSTNfU0VMX0lOX1JETUExOw0KLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7DQotCQkqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOw0KLQkJdmFsdWUgPSBEUEkwX1NFTF9JTl9SRE1BMjsN Ci0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9D T01QT05FTlRfRFBJMSkgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFBJX1NFTF9JTjsN Ci0JCXZhbHVlID0gRFBJMV9TRUxfSU5fUkRNQTI7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9D T01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsNCi0JCSphZGRy ID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOw0KLQkJdmFsdWUgPSBEU0kwX1NFTF9JTl9S RE1BMjsNCi0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09 IEREUF9DT01QT05FTlRfRFNJMSkgew0KLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJT19T RUxfSU47DQotCQl2YWx1ZSA9IERTSTFfU0VMX0lOX1JETUEyOw0KLQl9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7DQot CQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsNCi0JCXZhbHVlID0gRFNJMl9T RUxfSU5fUkRNQTI7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTMpIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklH X0RTSUVfU0VMX0lOOw0KLQkJdmFsdWUgPSBEU0kzX1NFTF9JTl9SRE1BMjsNCi0JfSBlbHNlIGlm IChjdXIgPT0gRERQX0NPTVBPTkVOVF9PVkwxICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9DT0xP UjEpIHsNCi0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IxX1NFTF9JTjsNCi0J CXZhbHVlID0gQ09MT1IxX1NFTF9JTl9PVkwxOw0KLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgew0KLQkJKmFkZHIgPSBE SVNQX1JFR19DT05GSUdfRFNJX1NFTDsNCi0JCXZhbHVlID0gRFNJX1NFTF9JTl9CTFM7DQotCX0g ZWxzZSB7DQotCQl2YWx1ZSA9IDA7DQotCX0NCi0NCi0JcmV0dXJuIHZhbHVlOw0KLX0NCi0NCi1z dGF0aWMgdm9pZCBtdGtfbW1zeXNfZGRwX3NvdXRfc2VsKHZvaWQgX19pb21lbSAqY29uZmlnX3Jl Z3MsDQotCQkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCi0JCQkJICAgZW51bSBtdGtf ZGRwX2NvbXBfaWQgbmV4dCkNCi17DQotCWlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9CTFMgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsNCi0JCXdyaXRlbF9yZWxheGVkKEJMU19UT19E U0lfUkRNQTFfVE9fRFBJMSwNCi0JCQkgICAgICAgY29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05G SUdfT1VUX1NFTCk7DQotCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfQkxTICYmIG5l eHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7DQotCQl3cml0ZWxfcmVsYXhlZChCTFNfVE9fRFBJ X1JETUExX1RPX0RTSSwNCi0JCQkgICAgICAgY29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdf T1VUX1NFTCk7DQotCQl3cml0ZWxfcmVsYXhlZChEU0lfU0VMX0lOX1JETUEsDQotCQkJICAgICAg IGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX0RTSV9TRUwpOw0KLQkJd3JpdGVsX3JlbGF4 ZWQoRFBJX1NFTF9JTl9CTFMsDQotCQkJICAgICAgIGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09O RklHX0RQSV9TRUwpOw0KLQl9DQotfQ0KLQ0KIHZvaWQgbXRrX21tc3lzX2RkcF9jb25uZWN0KHN0 cnVjdCBkZXZpY2UgKmRldiwNCiAJCQkgICBlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsDQogCQkJ ICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCkNCiB7DQotCXZvaWQgX19pb21lbSAqY29uZmln X3JlZ3MgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCisJc3RydWN0IG10a19tbXN5c19wcml2YXRl X2RhdGEgKnByaXZhdGUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCisJdm9pZCBfX2lvbWVtICpj b25maWdfcmVncyA9IHByaXZhdGUtPmNvbmZpZ19yZWdzOw0KKwlzdHJ1Y3QgbXRrX21tc3lzX2Nv bm5fZnVuY3MgKnByaXZfZnVuY3MgPSBwcml2YXRlLT5mdW5jczsNCiAJdW5zaWduZWQgaW50IGFk ZHIsIHZhbHVlLCByZWc7DQogDQotCXZhbHVlID0gbXRrX21tc3lzX2RkcF9tb3V0X2VuKGN1ciwg bmV4dCwgJmFkZHIpOw0KKwl2YWx1ZSA9IHByaXZfZnVuY3MtPm1vdXRfZW4oY3VyLCBuZXh0LCAm YWRkcik7DQogCWlmICh2YWx1ZSkgew0KIAkJcmVnID0gcmVhZGxfcmVsYXhlZChjb25maWdfcmVn cyArIGFkZHIpIHwgdmFsdWU7DQogCQl3cml0ZWxfcmVsYXhlZChyZWcsIGNvbmZpZ19yZWdzICsg YWRkcik7DQogCX0NCiANCi0JbXRrX21tc3lzX2RkcF9zb3V0X3NlbChjb25maWdfcmVncywgY3Vy LCBuZXh0KTsNCisJcHJpdl9mdW5jcy0+c291dF9zZWwoY29uZmlnX3JlZ3MsIGN1ciwgbmV4dCk7 DQogDQotCXZhbHVlID0gbXRrX21tc3lzX2RkcF9zZWxfaW4oY3VyLCBuZXh0LCAmYWRkcik7DQor CXZhbHVlID0gcHJpdl9mdW5jcy0+c2VsX2luKGN1ciwgbmV4dCwgJmFkZHIpOw0KIAlpZiAodmFs dWUpIHsNCiAJCXJlZyA9IHJlYWRsX3JlbGF4ZWQoY29uZmlnX3JlZ3MgKyBhZGRyKSB8IHZhbHVl Ow0KIAkJd3JpdGVsX3JlbGF4ZWQocmVnLCBjb25maWdfcmVncyArIGFkZHIpOw0KQEAgLTI4Miwx NiArNzgsMTggQEAgdm9pZCBtdGtfbW1zeXNfZGRwX2Rpc2Nvbm5lY3Qoc3RydWN0IGRldmljZSAq ZGV2LA0KIAkJCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCiAJCQkgICAgICBlbnVt IG10a19kZHBfY29tcF9pZCBuZXh0KQ0KIHsNCi0Jdm9pZCBfX2lvbWVtICpjb25maWdfcmVncyA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KKwlzdHJ1Y3QgbXRrX21tc3lzX3ByaXZhdGVfZGF0YSAq cHJpdmF0ZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KKwl2b2lkIF9faW9tZW0gKmNvbmZpZ19y ZWdzID0gcHJpdmF0ZS0+Y29uZmlnX3JlZ3M7DQorCXN0cnVjdCBtdGtfbW1zeXNfY29ubl9mdW5j cyAqcHJpdl9mdW5jcyA9IHByaXZhdGUtPmZ1bmNzOw0KIAl1bnNpZ25lZCBpbnQgYWRkciwgdmFs dWUsIHJlZzsNCiANCi0JdmFsdWUgPSBtdGtfbW1zeXNfZGRwX21vdXRfZW4oY3VyLCBuZXh0LCAm YWRkcik7DQorCXZhbHVlID0gcHJpdl9mdW5jcy0+bW91dF9lbihjdXIsIG5leHQsICZhZGRyKTsN CiAJaWYgKHZhbHVlKSB7DQogCQlyZWcgPSByZWFkbF9yZWxheGVkKGNvbmZpZ19yZWdzICsgYWRk cikgJiB+dmFsdWU7DQogCQl3cml0ZWxfcmVsYXhlZChyZWcsIGNvbmZpZ19yZWdzICsgYWRkcik7 DQogCX0NCiANCi0JdmFsdWUgPSBtdGtfbW1zeXNfZGRwX3NlbF9pbihjdXIsIG5leHQsICZhZGRy KTsNCisJdmFsdWUgPSBwcml2X2Z1bmNzLT5zZWxfaW4oY3VyLCBuZXh0LCAmYWRkcik7DQogCWlm ICh2YWx1ZSkgew0KIAkJcmVnID0gcmVhZGxfcmVsYXhlZChjb25maWdfcmVncyArIGFkZHIpICYg fnZhbHVlOw0KIAkJd3JpdGVsX3JlbGF4ZWQocmVnLCBjb25maWdfcmVncyArIGFkZHIpOw0KQEAg LTI5OSwxNSArOTcsMjkgQEAgdm9pZCBtdGtfbW1zeXNfZGRwX2Rpc2Nvbm5lY3Qoc3RydWN0IGRl dmljZSAqZGV2LA0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTChtdGtfbW1zeXNfZGRwX2Rpc2Nvbm5l Y3QpOw0KIA0KK3ZvaWQgbXRrX21tc3lzX3JlZ2lzdGVyX2Nvbm5fZnVuY3Moc3RydWN0IGRldmlj ZSAqZGV2LA0KKwkJCQkgICBzdHJ1Y3QgbXRrX21tc3lzX2Nvbm5fZnVuY3MgKmZ1bmNzKQ0KK3sN CisJc3RydWN0IG10a19tbXN5c19wcml2YXRlX2RhdGEgKnByaXZhdGUgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsNCisNCisJcHJpdmF0ZS0+ZnVuY3MgPSBmdW5jczsNCit9DQorDQogc3RhdGljIGlu dCBtdGtfbW1zeXNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiB7DQogCWNv bnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgKmRhdGE7DQogCXN0cnVjdCBkZXZpY2Ug KmRldiA9ICZwZGV2LT5kZXY7DQogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNsa3M7DQogCXN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRybTsNCisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqbW07 DQogCXZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3M7DQogCXN0cnVjdCByZXNvdXJjZSAqbWVtOw0K IAlpbnQgcmV0Ow0KKwlzdHJ1Y3QgbXRrX21tc3lzX3ByaXZhdGVfZGF0YSAqcHJpdmF0ZTsNCisN CisJcHJpdmF0ZSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdmF0ZSksIEdGUF9LRVJO RUwpOw0KKwlpZiAoIXByaXZhdGUpDQorCQlyZXR1cm4gLUVOT01FTTsNCiANCiAJbWVtID0gcGxh dGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCiAJY29uZmlnX3Jl Z3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOw0KQEAgLTMxNyw4ICsxMjksOSBA QCBzdGF0aWMgaW50IG10a19tbXN5c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQ0KIAkJCXJldCk7DQogCQlyZXR1cm4gcmV0Ow0KIAl9DQorCXByaXZhdGUtPmNvbmZpZ19yZWdz ID0gY29uZmlnX3JlZ3M7DQogDQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGNvbmZpZ19y ZWdzKTsNCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdmF0ZSk7DQogDQogCWRhdGEg PSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7DQogDQpAQCAtMzI3LDYgKzE0 MCwxNCBAQCBzdGF0aWMgaW50IG10a19tbXN5c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQ0KIAlpZiAoSVNfRVJSKGNsa3MpKQ0KIAkJcmV0dXJuIFBUUl9FUlIoY2xrcyk7DQog DQorCW1tID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2RhdGEoJnBkZXYtPmRldiwNCisJCQkJ CSAgIGRhdGEtPm1tc3lzX2RyaXZlciwNCisJCQkJCSAgIFBMQVRGT1JNX0RFVklEX0FVVE8sDQor CQkJCQkgICBOVUxMLA0KKwkJCQkJICAgMCk7DQorCWlmIChJU19FUlIobW0pKQ0KKwkJcmV0dXJu IFBUUl9FUlIobW0pOw0KKw0KIAlkcm0gPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0YSgm cGRldi0+ZGV2LCAibWVkaWF0ZWstZHJtIiwNCiAJCQkJCSAgICBQTEFURk9STV9ERVZJRF9BVVRP LCBOVUxMLCAwKTsNCiAJaWYgKElTX0VSUihkcm0pKSB7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmggYi9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRl ay9tdGstbW1zeXMuaA0KaW5kZXggMjIyOGJmNi4uODkxODVjNiAxMDA2NDQNCi0tLSBhL2luY2x1 ZGUvbGludXgvc29jL21lZGlhdGVrL210ay1tbXN5cy5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3Nv Yy9tZWRpYXRlay9tdGstbW1zeXMuaA0KQEAgLTQyLDYgKzQyLDIxIEBAIGVudW0gbXRrX2RkcF9j b21wX2lkIHsNCiAJRERQX0NPTVBPTkVOVF9JRF9NQVgsDQogfTsNCiANCitzdHJ1Y3QgbXRrX21t c3lzX2Nvbm5fZnVuY3Mgew0KKwl1MzIgKCptb3V0X2VuKShlbnVtIG10a19kZHBfY29tcF9pZCBj dXIsDQorCQkgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCwNCisJCSAgICAgICB1bnNp Z25lZCBpbnQgKmFkZHIpOw0KKwl1MzIgKCpzZWxfaW4pKGVudW0gbXRrX2RkcF9jb21wX2lkIGN1 ciwNCisJCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsDQorCQkgICAgICB1bnNpZ25l ZCBpbnQgKmFkZHIpOw0KKwl2b2lkICgqc291dF9zZWwpKHZvaWQgX19pb21lbSAqY29uZmlnX3Jl Z3MsDQorCQkJIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCisJCQkgZW51bSBtdGtfZGRwX2Nv bXBfaWQgbmV4dCk7DQorfTsNCisNCit2b2lkIG10a19tbXN5c19yZWdpc3Rlcl9jb25uX2Z1bmNz KHN0cnVjdCBkZXZpY2UgKmRldiwNCisJCQkJICAgc3RydWN0IG10a19tbXN5c19jb25uX2Z1bmNz ICpmdW5jcyk7DQorDQogdm9pZCBtdGtfbW1zeXNfZGRwX2Nvbm5lY3Qoc3RydWN0IGRldmljZSAq ZGV2LA0KIAkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCiAJCQkgICBlbnVtIG10a19k ZHBfY29tcF9pZCBuZXh0KTsNCi0tIA0KMS44LjEuMS5kaXJ0eQ0K