From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v13.1 23/26] COLO nic: implement COLO nic subkind Date: Mon, 28 Mar 2016 11:46:56 +0800 Message-ID: <56F8A930.30702@cn.fujitsu.com> References: <1458888273-7469-1-git-send-email-xiecl.fnst@cn.fujitsu.com> <1458888273-7469-24-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458888273-7469-24-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Wen Congyang , Li Zhijian , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org IEZyb20gNjk5ZjIwZDQ2ZmNjZTBiY2NlOGZkN2Y3MDYzNTUxMDg4YTQyNTI1NCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4K RGF0ZTogV2VkLCAxNSBKdWwgMjAxNSAxNzoxODo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz LjEgMjMvMjZdIENPTE8gbmljOiBpbXBsZW1lbnQgQ09MTyBuaWMgc3Via2luZAoKaW1wbGVtZW50 IENPTE8gbmljIHN1YmtpbmQuCgpTaWduZWQtb2ZmLWJ5OiBZYW5nIEhvbmd5YW5nIDxob25neWFu Zy55YW5nQGVhc3lzdGFjay5jbj4KU2lnbmVkLW9mZi1ieTogV2VuIENvbmd5YW5nIDx3ZW5jeUBj bi5mdWppdHN1LmNvbT4KU2lnbmVkLW9mZi1ieTogQ2hhbmdsb25nIFhpZSA8eGllY2wuZm5zdEBj bi5mdWppdHN1LmNvbT4KLS0tCiAgdG9vbHMvaG90cGx1Zy9MaW51eC9NYWtlZmlsZSAgICAgICAg IHwgICAxICsKICB0b29scy9ob3RwbHVnL0xpbnV4L2NvbG8tcHJveHktc2V0dXAgfCAxMzUgKysr KysrKysrKysrKysrCiAgdG9vbHMvbGlieGwvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAx ICsKICB0b29scy9saWJ4bC9saWJ4bF9jb2xvLmggICAgICAgICAgICAgfCAgMTAgKysKICB0b29s cy9saWJ4bC9saWJ4bF9jb2xvX25pYy5jICAgICAgICAgfCAzMjAgCisrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiAgdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCAgICAgICAg IHwgICAyICsKICB0b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICAgfCAgIDMgKwog IDcgZmlsZXMgY2hhbmdlZCwgNDcyIGluc2VydGlvbnMoKykKICBjcmVhdGUgbW9kZSAxMDA3NTUg dG9vbHMvaG90cGx1Zy9MaW51eC9jb2xvLXByb3h5LXNldHVwCiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IHRvb2xzL2xpYnhsL2xpYnhsX2NvbG9fbmljLmMKCmRpZmYgLS1naXQgYS90b29scy9ob3RwbHVn L0xpbnV4L01ha2VmaWxlIGIvdG9vbHMvaG90cGx1Zy9MaW51eC9NYWtlZmlsZQppbmRleCA2ZTEw MTE4Li45YmI4NTJiIDEwMDY0NAotLS0gYS90b29scy9ob3RwbHVnL0xpbnV4L01ha2VmaWxlCisr KyBiL3Rvb2xzL2hvdHBsdWcvTGludXgvTWFrZWZpbGUKQEAgLTI4LDYgKzI4LDcgQEAgWEVOX1ND UklQVFMgKz0gYmxvY2staXNjc2kKICBYRU5fU0NSSVBUUyArPSBibG9jay10YXAKICBYRU5fU0NS SVBUUyArPSBibG9jay1kcmJkLXByb2JlCiAgWEVOX1NDUklQVFMgKz0gJChYRU5fU0NSSVBUUy15 KQorWEVOX1NDUklQVFMgKz0gY29sby1wcm94eS1zZXR1cAoKICBTVUJESVJTLSQoQ09ORklHX1NZ U1RFTUQpICs9IHN5c3RlbWQKCmRpZmYgLS1naXQgYS90b29scy9ob3RwbHVnL0xpbnV4L2NvbG8t cHJveHktc2V0dXAgCmIvdG9vbHMvaG90cGx1Zy9MaW51eC9jb2xvLXByb3h5LXNldHVwCm5ldyBm aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk0ZTIwMzQKLS0tIC9kZXYvbnVsbAorKysg Yi90b29scy9ob3RwbHVnL0xpbnV4L2NvbG8tcHJveHktc2V0dXAKQEAgLTAsMCArMSwxMzUgQEAK KyMhIC9iaW4vYmFzaAorCitkaXI9JChkaXJuYW1lICIkMCIpCisuICIkZGlyL3hlbi1ob3RwbHVn LWNvbW1vbi5zaCIKKy4gIiRkaXIvaG90cGx1Z3BhdGguc2giCisKK2ZpbmRDb21tYW5kICIkQCIK KworaWYgWyAiJGNvbW1hbmQiICE9ICJzZXR1cCIgLWEgICIkY29tbWFuZCIgIT0gInRlYXJkb3du IiBdCit0aGVuCisgICAgZWNobyAiSW52YWxpZCBjb21tYW5kOiAkY29tbWFuZCIKKyAgICBsb2cg ZXJyICJJbnZhbGlkIGNvbW1hbmQ6ICRjb21tYW5kIgorICAgIGV4aXQgMQorZmkKKworZXZhbFZh cmlhYmxlcyAiJEAiCisKKzogJHt2aWZuYW1lOj99Cis6ICR7Zm9yd2FyZGRldjo/fQorOiAke21v ZGU6P30KKzogJHtpbmRleDo/fQorOiAke2JyaWRnZTo/fQorCitmb3J3YXJkYnI9ImNvbG9icjAi CisKK2lmIFsgIiRtb2RlIiAhPSAicHJpbWFyeSIgLWEgIiRtb2RlIiAhPSAic2Vjb25kYXJ5IiBd Cit0aGVuCisgICAgZWNobyAiSW52YWxpZCBtb2RlOiAkbW9kZSIKKyAgICBsb2cgZXJyICJJbnZh bGlkIG1vZGU6ICRtb2RlIgorICAgIGV4aXQgMQorZmkKKworaWYgWyAkaW5kZXggLWx0IDAgXSB8 fCBbICRpbmRleCAtZ3QgMTAwIF07IHRoZW4KKyAgICBlY2hvICJpbmRleCBvdmVyZmxvdyIKKyAg ICBleGl0IDEKK2ZpCisKK2Z1bmN0aW9uIHNldHVwX3ByaW1hcnkoKQoreworICAgIGRvX3dpdGhv dXRfZXJyb3IgdGMgcWRpc2MgYWRkIGRldiAkdmlmbmFtZSByb290IGhhbmRsZSAxOiBwcmlvCisg ICAgZG9fd2l0aG91dF9lcnJvciB0YyBmaWx0ZXIgYWRkIGRldiAkdmlmbmFtZSBwYXJlbnQgMTog cHJvdG9jb2wgaXAgCnByaW8gMTAgXAorICAgICAgICB1MzIgbWF0Y2ggdTMyIDAgMCBmbG93aWQg MToyIGFjdGlvbiBtaXJyZWQgZWdyZXNzIG1pcnJvciBkZXYgCiRmb3J3YXJkZGV2CisgICAgZG9f d2l0aG91dF9lcnJvciB0YyBmaWx0ZXIgYWRkIGRldiAkdmlmbmFtZSBwYXJlbnQgMTogcHJvdG9j b2wgYXJwIApwcmlvIDExIFwKKyAgICAgICAgdTMyIG1hdGNoIHUzMiAwIDAgZmxvd2lkIDE6MiBh Y3Rpb24gbWlycmVkIGVncmVzcyBtaXJyb3IgZGV2IAokZm9yd2FyZGRldgorICAgIGRvX3dpdGhv dXRfZXJyb3IgdGMgZmlsdGVyIGFkZCBkZXYgJHZpZm5hbWUgcGFyZW50IDE6IHByb3RvY29sIGlw djYgCnByaW8gXAorICAgICAgICAxMiB1MzIgbWF0Y2ggdTMyIDAgMCBmbG93aWQgMToyIGFjdGlv biBtaXJyZWQgZWdyZXNzIG1pcnJvciBcCisgICAgICAgIGRldiAkZm9yd2FyZGRldgorCisgICAg ZG9fd2l0aG91dF9lcnJvciBtb2Rwcm9iZSBuZl9jb25udHJhY2tfaXB2NAorICAgIGRvX3dpdGhv dXRfZXJyb3IgbW9kcHJvYmUgeHRfUE1ZQ09MTyBzZWNfZGV2PSRmb3J3YXJkZGV2CisKKyAgICBp cHRhYmxlcyAtdCBtYW5nbGUgLUkgUFJFUk9VVElORyAtbSBwaHlzZGV2IC0tcGh5c2Rldi1pbiBc CisgICAgICAgICR2aWZuYW1lIC1qIFBNWUNPTE8gLS1pbmRleCAkaW5kZXgKKyAgICBpcDZ0YWJs ZXMgLXQgbWFuZ2xlIC1JIFBSRVJPVVRJTkcgLW0gcGh5c2RldiAtLXBoeXNkZXYtaW4gXAorICAg ICAgICAkdmlmbmFtZSAtaiBQTVlDT0xPIC0taW5kZXggJGluZGV4CisgICAgZG9fd2l0aG91dF9l cnJvciBhcnB0YWJsZXMgLUkgSU5QVVQgLWkgJGZvcndhcmRkZXYgLWogTUFSSyAKLS1zZXQtbWFy ayAkaW5kZXgKK30KKworZnVuY3Rpb24gdGVhcmRvd25fcHJpbWFyeSgpCit7CisgICAgZG9fd2l0 aG91dF9lcnJvciB0YyBmaWx0ZXIgZGVsIGRldiAkdmlmbmFtZSBwYXJlbnQgMTogcHJvdG9jb2wg aXAgCnByaW8gMTAgdTMyIG1hdGNoIHUzMiBcCisgICAgICAgIDAgMCBmbG93aWQgMToyIGFjdGlv biBtaXJyZWQgZWdyZXNzIG1pcnJvciBkZXYgJGZvcndhcmRkZXYKKyAgICBkb193aXRob3V0X2Vy cm9yIHRjIGZpbHRlciBkZWwgZGV2ICR2aWZuYW1lIHBhcmVudCAxOiBwcm90b2NvbCBhcnAgCnBy aW8gMTEgdTMyIG1hdGNoIHUzMiBcCisgICAgICAgIDAgMCBmbG93aWQgMToyIGFjdGlvbiBtaXJy ZWQgZWdyZXNzIG1pcnJvciBkZXYgJGZvcndhcmRkZXYKKyAgICBkb193aXRob3V0X2Vycm9yIHRj IGZpbHRlciBkZWwgZGV2ICR2aWZuYW1lIHBhcmVudCAxOiBwcm90b2NvbCBpcHY2IApwcmlvIDEy IHUzMiBtYXRjaCB1MzIgXAorICAgICAgICAwIDAgZmxvd2lkIDE6MiBhY3Rpb24gbWlycmVkIGVn cmVzcyBtaXJyb3IgZGV2ICRmb3J3YXJkZGV2CisgICAgZG9fd2l0aG91dF9lcnJvciB0YyBxZGlz YyBkZWwgZGV2ICR2aWZuYW1lIHJvb3QgaGFuZGxlIDE6IHByaW8KKworICAgIGRvX3dpdGhvdXRf ZXJyb3IgaXB0YWJsZXMgLXQgbWFuZ2xlIC1EIFBSRVJPVVRJTkcgLW0gcGh5c2RldiAKLS1waHlz ZGV2LWluIFwKKyAgICAgICAgJHZpZm5hbWUgLWogUE1ZQ09MTyAtLWluZGV4ICRpbmRleAorICAg IGRvX3dpdGhvdXRfZXJyb3IgaXA2dGFibGVzIC10IG1hbmdsZSAtRCBQUkVST1VUSU5HIC1tIHBo eXNkZXYgCi0tcGh5c2Rldi1pbiBcCisgICAgICAgICR2aWZuYW1lIC1qIFBNWUNPTE8gLS1pbmRl eCAkaW5kZXgKKyAgICBkb193aXRob3V0X2Vycm9yIGFycHRhYmxlcyAtRgorICAgIGRvX3dpdGhv dXRfZXJyb3Igcm1tb2QgeHRfUE1ZQ09MTworfQorCitmdW5jdGlvbiBzZXR1cF9zZWNvbmRhcnko KQoreworICAgIGRvX3dpdGhvdXRfZXJyb3IgYnJjdGwgZGVsaWYgJGJyaWRnZSAkdmlmbmFtZQor ICAgIGRvX3dpdGhvdXRfZXJyb3IgYnJjdGwgYWRkYnIgJGZvcndhcmRicgorICAgIGRvX3dpdGhv dXRfZXJyb3IgYnJjdGwgYWRkaWYgJGZvcndhcmRiciAkdmlmbmFtZQorICAgIGRvX3dpdGhvdXRf ZXJyb3IgYnJjdGwgYWRkaWYgJGZvcndhcmRiciAkZm9yd2FyZGRldgorICAgIGRvX3dpdGhvdXRf ZXJyb3IgaXAgbGluayBzZXQgZGV2ICRmb3J3YXJkYnIgdXAKKyAgICBkb193aXRob3V0X2Vycm9y IG1vZHByb2JlIHh0X1NFQ0NPTE8KKworICAgIGlwdGFibGVzIC10IG1hbmdsZSAtSSBQUkVST1VU SU5HIC1tIHBoeXNkZXYgLS1waHlzZGV2LWluIFwKKyAgICAgICAgJHZpZm5hbWUgLWogU0VDQ09M TyAtLWluZGV4ICRpbmRleAorICAgIGlwNnRhYmxlcyAtdCBtYW5nbGUgLUkgUFJFUk9VVElORyAt bSBwaHlzZGV2IC0tcGh5c2Rldi1pbiBcCisgICAgICAgICR2aWZuYW1lIC1qIFNFQ0NPTE8gLS1p bmRleCAkaW5kZXgKK30KKworZnVuY3Rpb24gdGVhcmRvd25fc2Vjb25kYXJ5KCkKK3sKKyAgICBk b193aXRob3V0X2Vycm9yIGJyY3RsIGRlbGlmICRmb3J3YXJkYnIgJGZvcndhcmRkZXYKKyAgICBk b193aXRob3V0X2Vycm9yIGJyY3RsIGRlbGlmICRmb3J3YXJkYnIgJHZpZm5hbWUKKyAgICBkb193 aXRob3V0X2Vycm9yIGJyY3RsIGRlbGJyICRmb3J3YXJkYnIKKyAgICBkb193aXRob3V0X2Vycm9y IGJyY3RsIGFkZGlmICRicmlkZ2UgJHZpZm5hbWUKKworICAgIGRvX3dpdGhvdXRfZXJyb3IgaXB0 YWJsZXMgLXQgbWFuZ2xlIC1EIFBSRVJPVVRJTkcgLW0gcGh5c2RldiAKLS1waHlzZGV2LWluIFwK KyAgICAgICAgJHZpZm5hbWUgLWogU0VDQ09MTyAtLWluZGV4ICRpbmRleAorICAgIGRvX3dpdGhv dXRfZXJyb3IgaXA2dGFibGVzIC10IG1hbmdsZSAtRCBQUkVST1VUSU5HIC1tIHBoeXNkZXYgCi0t cGh5c2Rldi1pbiBcCisgICAgICAgICR2aWZuYW1lIC1qIFNFQ0NPTE8gLS1pbmRleCAkaW5kZXgK KyAgICBkb193aXRob3V0X2Vycm9yIHJtbW9kIHh0X1NFQ0NPTE8KK30KKworY2FzZSAiJGNvbW1h bmQiIGluCisgICAgc2V0dXApCisgICAgICAgIGlmIFsgIiRtb2RlIiA9ICJwcmltYXJ5IiBdCisg ICAgICAgIHRoZW4KKyAgICAgICAgICAgIHNldHVwX3ByaW1hcnkKKyAgICAgICAgZWxzZQorICAg ICAgICAgICAgc2V0dXBfc2Vjb25kYXJ5CisgICAgICAgIGZpCisKKyAgICAgICAgc3VjY2Vzcwor ICAgICAgICA7OworICAgIHRlYXJkb3duKQorICAgICAgICBpZiBbICIkbW9kZSIgPSAicHJpbWFy eSIgXQorICAgICAgICB0aGVuCisgICAgICAgICAgICB0ZWFyZG93bl9wcmltYXJ5CisgICAgICAg IGVsc2UKKyAgICAgICAgICAgIHRlYXJkb3duX3NlY29uZGFyeQorICAgICAgICBmaQorICAgICAg ICA7OworZXNhYworCitpZiBbICIkbW9kZSIgPSAicHJpbWFyeSIgXQordGhlbgorICAgIGxvZyBk ZWJ1ZyAiU3VjY2Vzc2Z1bCBjb2xvLXByb3h5LXNldHVwICRjb21tYW5kIGZvciAkdmlmbmFtZS4i IFwKKyAgICAgICAgICAgICAgIiB2aWZuYW1lOiAkdmlmbmFtZSwgaW5kZXg6ICRpbmRleCwgZm9y d2FyZGRldjogJGZvcndhcmRkZXYuIgorZWxzZQorICAgIGxvZyBkZWJ1ZyAiU3VjY2Vzc2Z1bCBj b2xvLXByb3h5LXNldHVwICRjb21tYW5kIGZvciAkdmlmbmFtZS4iIFwKKyAgICAgICAgICAgICAg IiB2aWZuYW1lOiAkdmlmbmFtZSwgaW5kZXg6ICRpbmRleCwgZm9yd2FyZGRldjogCiRmb3J3YXJk ZGV2LCJcCisgICAgICAgICAgICAgICIgZm9yd2FyZGJyOiAkZm9yd2FyZGJyLiIKK2ZpCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9NYWtlZmlsZSBiL3Rvb2xzL2xpYnhsL01ha2VmaWxlCmluZGV4 IDcyZjNiMWEuLmE0MzNhYWEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL01ha2VmaWxlCisrKyBi L3Rvb2xzL2xpYnhsL01ha2VmaWxlCkBAIC02OCw2ICs2OCw3IEBAIExJQlhMX09CSlMteSArPSBs aWJ4bF9yZW11cy5vIApsaWJ4bF9jaGVja3BvaW50X2RldmljZS5vIGxpYnhsX3JlbXVzX2Rpc2tf ZHJiZC5vCiAgTElCWExfT0JKUy15ICs9IGxpYnhsX2NvbG9fcmVzdG9yZS5vIGxpYnhsX2NvbG9f c2F2ZS5vCiAgTElCWExfT0JKUy15ICs9IGxpYnhsX2NvbG9fcWRpc2subwogIExJQlhMX09CSlMt eSArPSBsaWJ4bF9jb2xvX3Byb3h5Lm8KK0xJQlhMX09CSlMteSArPSBsaWJ4bF9jb2xvX25pYy5v CgogIExJQlhMX09CSlMtJChDT05GSUdfWDg2KSArPSBsaWJ4bF9jcHVpZC5vIGxpYnhsX3g4Ni5v IGxpYnhsX3Bzci5vCiAgTElCWExfT0JKUy0kKENPTkZJR19BUk0pICs9IGxpYnhsX25vY3B1aWQu byBsaWJ4bF9hcm0ubyAKbGlieGxfbGliZmR0X2NvbXBhdC5vCmRpZmYgLS1naXQgYS90b29scy9s aWJ4bC9saWJ4bF9jb2xvLmggYi90b29scy9saWJ4bC9saWJ4bF9jb2xvLmgKaW5kZXggYTUyOWNl OC4uNWZiYjY1OSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY29sby5oCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsX2NvbG8uaApAQCAtNDAsNiArNDAsMTEgQEAgZW51bSBjb2xvX25ldGxp bmtfb3AgewogICAgICBDT0xPX1BST1hZX1JFU0VULCAvKiBVTlVTRUQsIHdpbGwgYmUgdXNlZCBm b3IgY29udGludW91cyBGVCAqLwogIH07CgordHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2NvbG9fZGV2 aWNlX25pYyB7CisgICAgaW50IGRldmlkOworICAgIGNvbnN0IGNoYXIgKnZpZjsKK30gbGlieGxf X2NvbG9fZGV2aWNlX25pYzsKKwogIHR5cGVkZWYgc3RydWN0IGxpYnhsX19jb2xvX3FkaXNrIHsK ICAgICAgYm9vbCBzZXR1cGVkOwogIH0gbGlieGxfX2NvbG9fcWRpc2s7CkBAIC03MCw2ICs3NSw3 IEBAIHN0cnVjdCBsaWJ4bF9fY29sb19yZXN0b3JlX3N0YXRlIHsKICAgICAgaW50IHJlY3ZfZmQ7 CiAgICAgIGludCBodm07CiAgICAgIGxpYnhsX19jb2xvX2NhbGxiYWNrICpjYWxsYmFjazsKKyAg ICBjaGFyICpjb2xvX3Byb3h5X3NjcmlwdDsKCiAgICAgIC8qIHByaXZhdGUsIGNvbG8gcmVzdG9y ZSBjaGVja3BvaW50IHN0YXRlICovCiAgICAgIGxpYnhsX19kb21haW5fY3JlYXRlX2NiICpzYXZl ZF9jYjsKQEAgLTg5LDYgKzk1LDEwIEBAIGludCBpbml0X3N1YmtpbmRfcWRpc2soc3RydWN0IAps aWJ4bF9fY2hlY2twb2ludF9kZXZpY2VzX3N0YXRlICpjZHMpOwoKICB2b2lkIGNsZWFudXBfc3Vi a2luZF9xZGlzayhzdHJ1Y3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlc19zdGF0ZSAqY2RzKTsK CitpbnQgaW5pdF9zdWJraW5kX2NvbG9fbmljKHN0cnVjdCBsaWJ4bF9fY2hlY2twb2ludF9kZXZp Y2VzX3N0YXRlICpjZHMpOworCit2b2lkIGNsZWFudXBfc3Via2luZF9jb2xvX25pYyhzdHJ1Y3Qg bGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlc19zdGF0ZSAqY2RzKTsKKwogIGV4dGVybiB2b2lkIGxp YnhsX19jb2xvX3Jlc3RvcmVfc2V0dXAoc3RydWN0IGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUg KmNycyk7CiAgZXh0ZXJuIHZvaWQgbGlieGxfX2NvbG9fcmVzdG9yZV90ZWFyZG93bihzdHJ1Y3Qg bGlieGxfX2VnYyAqZWdjLCB2b2lkIAoqZGNzX3ZvaWQsCmRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF9jb2xvX25pYy5jIGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19uaWMuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTAwYzI4Ci0tLSAvZGV2L251bGwKKysrIGIv dG9vbHMvbGlieGwvbGlieGxfY29sb19uaWMuYwpAQCAtMCwwICsxLDMyMCBAQAorLyoKKyAqIENv cHlyaWdodCAoQykgMjAxNiBGVUpJVFNVIExJTUlURUQKKyAqIEF1dGhvcjogV2VuIENvbmd5YW5n IDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuMSBv bmx5LiB3aXRoIHRoZSBzcGVjaWFsCisgKiBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQg aW4gZmlsZSBMSUNFTlNFLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisK KyNpbmNsdWRlICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBjb21lIGJlZm9yZSBhbnkgb3RoZXIg aGVhZGVycyAqLworCisjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKKworZW51bSB7CisgICAg cHJpbWFyeSwKKyAgICBzZWNvbmRhcnksCit9OworCisvKiA9PT09PT09PT09IGluaXQoKSBhbmQg Y2xlYW51cCgpID09PT09PT09PT0gKi8KKworaW50IGluaXRfc3Via2luZF9jb2xvX25pYyhsaWJ4 bF9fY2hlY2twb2ludF9kZXZpY2VzX3N0YXRlICpjZHMpCit7CisgICAgcmV0dXJuIDA7Cit9CisK K3ZvaWQgY2xlYW51cF9zdWJraW5kX2NvbG9fbmljKGxpYnhsX19jaGVja3BvaW50X2RldmljZXNf c3RhdGUgKmNkcykKK3sKK30KKworLyogPT09PT09PT09PSBoZWxwZXIgZnVuY3Rpb25zID09PT09 PT09PT0gKi8KKworc3RhdGljIHZvaWQgY29sb19zYXZlX3NldHVwX3NjcmlwdF9jYihsaWJ4bF9f ZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Fz eW5jX2V4ZWNfc3RhdGUgKmFlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgcmMsIGludCBzdGF0dXMpOworc3RhdGljIHZvaWQgY29sb19zYXZlX3RlYXJkb3duX3Nj cmlwdF9jYihsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYywgaW50IHN0YXR1cyk7CisKKy8qCisgKiBJ ZiB0aGUgZGV2aWNlIGhhcyBhIHZpZm5hbWUsIHRoZW4gdXNlIHRoYXQgaW5zdGVhZCBvZgorICog dGhlIHZpZlguWSBmb3JtYXQuCisgKiBpdCBtdXN0IE9OTFkgYmUgdXNlZCBmb3IgcmVtdXMgYmVj YXVzZSBpZiBkcml2ZXIgZG9tYWlucworICogd2VyZSBpbiB1c2UgaXQgd291bGQgY29uc3RpdHV0 ZSBhIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdHkuCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpnZXRf dmlmbmFtZShsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2UgKmRldiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9kZXZpY2VfbmljICpuaWMpCit7CisgICAgY29uc3Qg Y2hhciAqdmlmbmFtZSA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqcGF0aDsKKyAgICBpbnQgcmM7 CisKKyAgICBTVEFURV9BT19HQyhkZXYtPmNkcy0+YW8pOworCisgICAgLyogQ29udmVuaWVuY2Ug YWxpYXNlcyAqLworICAgIGNvbnN0IHVpbnQzMl90IGRvbWlkID0gZGV2LT5jZHMtPmRvbWlkOwor CisgICAgcGF0aCA9IEdDU1BSSU5URigiJXMvYmFja2VuZC92aWYvJWQvJWQvdmlmbmFtZSIsCisg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIDApLCBkb21pZCwg bmljLT5kZXZpZCk7CisgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVM TCwgcGF0aCwgJnZpZm5hbWUpOworICAgIGlmICghcmMgJiYgIXZpZm5hbWUpIHsKKyAgICAgICAg dmlmbmFtZSA9IGxpYnhsX19kZXZpY2VfbmljX2Rldm5hbWUoZ2MsIGRvbWlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWMtPmRldmlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWMtPm5pY3R5cGUpOworICAgIH0K KworICAgIHJldHVybiB2aWZuYW1lOworfQorCisvKgorICogdGhlIHNjcmlwdCBuZWVkcyB0aGUg Zm9sbG93aW5nIGVudiAmIGFyZ3MKKyAqICR2aWZuYW1lCisgKiAkZm9yd2FyZGRldgorICogJG1v ZGUocHJpbWFyeS9zZWNvbmRhcnkpCisgKiAkaW5kZXgKKyAqICRicmlkZ2UKKyAqIHNldHVwL3Rl YXJkb3duIGFzIGNvbW1hbmQgbGluZSBhcmcuCisgKi8KK3N0YXRpYyB2b2lkIHNldHVwX2FzeW5j X2V4ZWMobGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlICpkZXYsIGNoYXIgKm9wLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSAqY3BzLCBpbnQgc2lk ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqY29sb19wcm94eV9zY3JpcHQp Cit7CisgICAgaW50IGFycmF5c2l6ZSwgbnIgPSAwOworICAgIGNoYXIgKiplbnYgPSBOVUxMLCAq KmFyZ3MgPSBOVUxMOworICAgIGxpYnhsX19jb2xvX2RldmljZV9uaWMgKmNvbG9fbmljID0gZGV2 LT5jb25jcmV0ZV9kYXRhOworICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfc3RhdGUgKmNk cyA9IGRldi0+Y2RzOworICAgIGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMgPSAmZGV2LT5h b2Rldi5hZXM7CisgICAgY29uc3QgbGlieGxfZGV2aWNlX25pYyAqbmljID0gZGV2LT5iYWNrZW5k X2RldjsKKworICAgIFNUQVRFX0FPX0dDKGNkcy0+YW8pOworCisgICAgLyogQ29udmVuaWVuY2Ug YWxpYXNlcyAqLworICAgIGNvbnN0IGNoYXIgKmNvbnN0IHZpZiA9IGNvbG9fbmljLT52aWY7CisK KyAgICBhcnJheXNpemUgPSAxMTsKKyAgICBHQ05FV19BUlJBWShlbnYsIGFycmF5c2l6ZSk7Cisg ICAgZW52W25yKytdID0gInZpZm5hbWUiOworICAgIGVudltucisrXSA9IGxpYnhsX19zdHJkdXAo Z2MsIHZpZik7CisgICAgZW52W25yKytdID0gImZvcndhcmRkZXYiOworICAgIGVudltucisrXSA9 IGxpYnhsX19zdHJkdXAoZ2MsIG5pYy0+Y29sb2Z0X2ZvcndhcmRkZXYpOworICAgIGVudltucisr XSA9ICJtb2RlIjsKKyAgICBpZiAoc2lkZSA9PSBwcmltYXJ5KQorICAgICAgICBlbnZbbnIrK10g PSAicHJpbWFyeSI7CisgICAgZWxzZQorICAgICAgICBlbnZbbnIrK10gPSAic2Vjb25kYXJ5IjsK KyAgICBlbnZbbnIrK10gPSAiaW5kZXgiOworICAgIGVudltucisrXSA9IEdDU1BSSU5URigiJWQi LCBjcHMtPmluZGV4KTsKKyAgICBlbnZbbnIrK10gPSAiYnJpZGdlIjsKKyAgICBlbnZbbnIrK10g PSBsaWJ4bF9fc3RyZHVwKGdjLCBuaWMtPmJyaWRnZSk7CisgICAgZW52W25yKytdID0gTlVMTDsK KyAgICBhc3NlcnQobnIgPT0gYXJyYXlzaXplKTsKKworICAgIGFycmF5c2l6ZSA9IDM7IG5yID0g MDsKKyAgICBHQ05FV19BUlJBWShhcmdzLCBhcnJheXNpemUpOworICAgIGFyZ3NbbnIrK10gPSBj b2xvX3Byb3h5X3NjcmlwdDsKKyAgICBhcmdzW25yKytdID0gb3A7CisgICAgYXJnc1tucisrXSA9 IE5VTEw7CisgICAgYXNzZXJ0KG5yID09IGFycmF5c2l6ZSk7CisKKyAgICBhZXMtPmFvID0gZGV2 LT5jZHMtPmFvOworICAgIGFlcy0+d2hhdCA9IEdDU1BSSU5URigiJXMgJXMiLCBhcmdzWzBdLCBh cmdzWzFdKTsKKyAgICBhZXMtPmVudiA9IGVudjsKKyAgICBhZXMtPmFyZ3MgPSBhcmdzOworICAg IGFlcy0+dGltZW91dF9tcyA9IExJQlhMX0hPVFBMVUdfVElNRU9VVCAqIDEwMDA7CisgICAgYWVz LT5zdGRmZHNbMF0gPSAtMTsKKyAgICBhZXMtPnN0ZGZkc1sxXSA9IC0xOworICAgIGFlcy0+c3Rk ZmRzWzJdID0gLTE7CisKKyAgICBpZiAoIXN0cmNtcChvcCwgInRlYXJkb3duIikpCisgICAgICAg IGFlcy0+Y2FsbGJhY2sgPSBjb2xvX3NhdmVfdGVhcmRvd25fc2NyaXB0X2NiOworICAgIGVsc2UK KyAgICAgICAgYWVzLT5jYWxsYmFjayA9IGNvbG9fc2F2ZV9zZXR1cF9zY3JpcHRfY2I7Cit9CisK Ky8qID09PT09PT09PT0gc2V0dXAoKSBhbmQgdGVhcmRvd24oKSA9PT09PT09PT09ICovCisKK3N0 YXRpYyB2b2lkIGNvbG9fbmljX3NldHVwKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2NoZWNrcG9p bnRfZGV2aWNlICpkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fY29sb19w cm94eV9zdGF0ZSAqY3BzLCBpbnQgc2lkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo YXIgKmNvbG9fcHJveHlfc2NyaXB0KQoreworICAgIGludCByYzsKKyAgICBsaWJ4bF9fY29sb19k ZXZpY2VfbmljICpjb2xvX25pYzsKKyAgICBjb25zdCBsaWJ4bF9kZXZpY2VfbmljICpuaWMgPSBk ZXYtPmJhY2tlbmRfZGV2OworCisgICAgU1RBVEVfQU9fR0MoZGV2LT5jZHMtPmFvKTsKKworICAg IC8qCisgICAgICogdGhlcnMncyBubyBzdWJraW5kIG9mIG5pYyBkZXZpY2VzLCBzbyBuaWMgb3Bz IGlzIGFsd2F5cyBtYXRjaGVkCisgICAgICogd2l0aCBuaWMgZGV2aWNlcywgd2UgYmVnaW4gdG8g c2V0dXAgdGhlIG5pYyBkZXZpY2UKKyAgICAgKi8KKyAgICBkZXYtPm1hdGNoZWQgPSAxOworCisg ICAgaWYgKCFuaWMtPmNvbG9mdF9mb3J3YXJkZGV2KSB7CisgICAgICAgIHJjID0gRVJST1JfRkFJ TDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgR0NORVcoY29sb19uaWMpOworICAg IGRldi0+Y29uY3JldGVfZGF0YSA9IGNvbG9fbmljOworICAgIGNvbG9fbmljLT5kZXZpZCA9IG5p Yy0+ZGV2aWQ7CisgICAgY29sb19uaWMtPnZpZiA9IGdldF92aWZuYW1lKGRldiwgbmljKTsKKyAg ICBpZiAoIWNvbG9fbmljLT52aWYpIHsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAg ICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBzZXR1cF9hc3luY19leGVjKGRldiwgInNldHVwIiwg Y3BzLCBzaWRlLCBjb2xvX3Byb3h5X3NjcmlwdCk7CisgICAgcmMgPSBsaWJ4bF9fYXN5bmNfZXhl Y19zdGFydCgmZGV2LT5hb2Rldi5hZXMpOworICAgIGlmIChyYykKKyAgICAgICAgZ290byBvdXQ7 CisKKyAgICByZXR1cm47CisKK291dDoKKyAgICBkZXYtPmFvZGV2LnJjID0gcmM7CisgICAgZGV2 LT5hb2Rldi5jYWxsYmFjayhlZ2MsICZkZXYtPmFvZGV2KTsKK30KKworc3RhdGljIHZvaWQgY29s b19zYXZlX3NldHVwX3NjcmlwdF9jYihsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYywgaW50IHN0YXR1cykKK3sK KyAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2RldiA9IENPTlRBSU5FUl9PRihhZXMsICphb2Rldiwg YWVzKTsKKyAgICBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2UgKmRldiA9IENPTlRBSU5FUl9PRihh b2RldiwgKmRldiwgYW9kZXYpOworICAgIGxpYnhsX19jb2xvX2RldmljZV9uaWMgKmNvbG9fbmlj ID0gZGV2LT5jb25jcmV0ZV9kYXRhOworICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfc3Rh dGUgKmNkcyA9IGRldi0+Y2RzOworICAgIGNvbnN0IGNoYXIgKm91dF9wYXRoX2Jhc2UsICpob3Rw bHVnX2Vycm9yID0gTlVMTDsKKworICAgIEVHQ19HQzsKKworICAgIC8qIENvbnZlbmllbmNlIGFs aWFzZXMgKi8KKyAgICBjb25zdCB1aW50MzJfdCBkb21pZCA9IGNkcy0+ZG9taWQ7CisgICAgY29u c3QgaW50IGRldmlkID0gY29sb19uaWMtPmRldmlkOworICAgIGNvbnN0IGNoYXIgKmNvbnN0IHZp ZiA9IGNvbG9fbmljLT52aWY7CisKKyAgICBpZiAoc3RhdHVzICYmICFyYykKKyAgICAgICAgcmMg PSBFUlJPUl9GQUlMOworICAgIGlmIChyYykKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBvdXRf cGF0aF9iYXNlID0gR0NTUFJJTlRGKCIlcy9jb2xvX3Byb3h5LyVkIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX194c19saWJ4bF9wYXRoKGdjLCBkb21pZCksIGRldmlkKTsK KworICAgIHJjID0gbGlieGxfX3hzX3JlYWRfY2hlY2tlZChnYywgWEJUX05VTEwsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvaG90cGx1Zy1lcnJvciIsIApv dXRfcGF0aF9iYXNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhvdHBsdWdf ZXJyb3IpOworICAgIGlmIChyYykKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBpZiAoaG90cGx1 Z19lcnJvcikgeworICAgICAgICBMT0coRVJST1IsICJjb2xvX3Byb3h5IHNjcmlwdCAlcyBzZXR1 cCBmYWlsZWQgZm9yIHZpZiAlczogJXMiLAorICAgICAgICAgICAgYWVzLT5hcmdzWzBdLCB2aWYs IGhvdHBsdWdfZXJyb3IpOworICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgIGdvdG8g b3V0OworICAgIH0KKworICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlM OworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICByYyA9IDA7CisKK291dDoKKyAgICBh b2Rldi0+cmMgPSByYzsKKyAgICBhb2Rldi0+Y2FsbGJhY2soZWdjLCBhb2Rldik7Cit9CisKK3N0 YXRpYyB2b2lkIGNvbG9fbmljX3RlYXJkb3duKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2NoZWNr cG9pbnRfZGV2aWNlIAoqZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf X2NvbG9fcHJveHlfc3RhdGUgKmNwcywgaW50IHNpZGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjaGFyICpjb2xvX3Byb3h5X3NjcmlwdCkKK3sKKyAgICBpbnQgcmM7CisgICAgbGli eGxfX2NvbG9fZGV2aWNlX25pYyAqY29sb19uaWMgPSBkZXYtPmNvbmNyZXRlX2RhdGE7CisKKyAg ICBpZiAoIWNvbG9fbmljIHx8ICFjb2xvX25pYy0+dmlmKSB7CisgICAgICAgIC8qIGNvbG8gbmlj IGhhcyBub3QgeWV0IGJlZW4gc2V0IHVwLCBqdXN0IHJldHVybiAqLworICAgICAgICByYyA9IDA7 CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHNldHVwX2FzeW5jX2V4ZWMoZGV2LCAi dGVhcmRvd24iLCBjcHMsIHNpZGUsIGNvbG9fcHJveHlfc2NyaXB0KTsKKworICAgIHJjID0gbGli eGxfX2FzeW5jX2V4ZWNfc3RhcnQoJmRldi0+YW9kZXYuYWVzKTsKKyAgICBpZiAocmMpCisgICAg ICAgIGdvdG8gb3V0OworCisgICAgcmV0dXJuOworCitvdXQ6CisgICAgZGV2LT5hb2Rldi5yYyA9 IHJjOworICAgIGRldi0+YW9kZXYuY2FsbGJhY2soZWdjLCAmZGV2LT5hb2Rldik7Cit9CisKK3N0 YXRpYyB2b2lkIGNvbG9fc2F2ZV90ZWFyZG93bl9zY3JpcHRfY2IobGlieGxfX2VnYyAqZWdjLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fYXN5bmNfZXhl Y19zdGF0ZSAqYWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgcmMsIGludCBzdGF0dXMpCit7CisgICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYgPSBDT05U QUlORVJfT0YoYWVzLCAqYW9kZXYsIGFlcyk7CisKKyAgICBpZiAoc3RhdHVzICYmICFyYykKKyAg ICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgIGVsc2UKKyAgICAgICAgcmMgPSAwOworCisgICAg YW9kZXYtPnJjID0gcmM7CisgICAgYW9kZXYtPmNhbGxiYWNrKGVnYywgYW9kZXYpOworfQorCisv KiA9PT09PT09PSBwcmltYXJ5ID09PT09PT09ICovCisKK3N0YXRpYyB2b2lkIGNvbG9fbmljX3Nh dmVfc2V0dXAobGlieGxfX2VnYyAqZWdjLCAKbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlICpkZXYp Cit7CisgICAgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZSAqY3NzID0gZGV2LT5jZHMtPmNvbmNyZXRl X2RhdGE7CisKKyAgICBjb2xvX25pY19zZXR1cChlZ2MsIGRldiwgJmNzcy0+Y3BzLCBwcmltYXJ5 LCBjc3MtPmNvbG9fcHJveHlfc2NyaXB0KTsKK30KKworc3RhdGljIHZvaWQgY29sb19uaWNfc2F2 ZV90ZWFyZG93bihsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZSAqZGV2KQoreworICAgIGxpYnhsX19jb2xv X3NhdmVfc3RhdGUgKmNzcyA9IGRldi0+Y2RzLT5jb25jcmV0ZV9kYXRhOworCisgICAgY29sb19u aWNfdGVhcmRvd24oZWdjLCBkZXYsICZjc3MtPmNwcywgcHJpbWFyeSwgCmNzcy0+Y29sb19wcm94 eV9zY3JpcHQpOworfQorCitjb25zdCBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2VfaW5zdGFuY2Vf b3BzIGNvbG9fc2F2ZV9kZXZpY2VfbmljID0geworICAgIC5raW5kID0gTElCWExfX0RFVklDRV9L SU5EX1ZJRiwKKyAgICAuc2V0dXAgPSBjb2xvX25pY19zYXZlX3NldHVwLAorICAgIC50ZWFyZG93 biA9IGNvbG9fbmljX3NhdmVfdGVhcmRvd24sCit9OworCisvKiA9PT09PT09PSBzZWNvbmRhcnkg PT09PT09PT0gKi8KKworc3RhdGljIHZvaWQgY29sb19uaWNfcmVzdG9yZV9zZXR1cChsaWJ4bF9f ZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jaGVj a3BvaW50X2RldmljZSAqZGV2KQoreworICAgIGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUgKmNy cyA9IGRldi0+Y2RzLT5jb25jcmV0ZV9kYXRhOworCisgICAgY29sb19uaWNfc2V0dXAoZWdjLCBk ZXYsICZjcnMtPmNwcywgc2Vjb25kYXJ5LCBjcnMtPmNvbG9fcHJveHlfc2NyaXB0KTsKK30KKwor c3RhdGljIHZvaWQgY29sb19uaWNfcmVzdG9yZV90ZWFyZG93bihsaWJ4bF9fZWdjICplZ2MsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jaGVja3BvaW50X2Rl dmljZSAqZGV2KQoreworICAgIGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUgKmNycyA9IGRldi0+ Y2RzLT5jb25jcmV0ZV9kYXRhOworCisgICAgY29sb19uaWNfdGVhcmRvd24oZWdjLCBkZXYsICZj cnMtPmNwcywgc2Vjb25kYXJ5LCAKY3JzLT5jb2xvX3Byb3h5X3NjcmlwdCk7Cit9CisKK2NvbnN0 IGxpYnhsX19jaGVja3BvaW50X2RldmljZV9pbnN0YW5jZV9vcHMgY29sb19yZXN0b3JlX2Rldmlj ZV9uaWMgPSB7CisgICAgLmtpbmQgPSBMSUJYTF9fREVWSUNFX0tJTkRfVklGLAorICAgIC5zZXR1 cCA9IGNvbG9fbmljX3Jlc3RvcmVfc2V0dXAsCisgICAgLnRlYXJkb3duID0gY29sb19uaWNfcmVz dG9yZV90ZWFyZG93biwKK307CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5h bC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCA4ZjAyMjIyLi43NTliOGQw IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xp YnhsL2xpYnhsX2ludGVybmFsLmgKQEAgLTMyMDYsNiArMzIwNiw3IEBAIHR5cGVkZWYgc3RydWN0 IGxpYnhsX19jb2xvX3NhdmVfc3RhdGUgCmxpYnhsX19jb2xvX3NhdmVfc3RhdGU7CiAgc3RydWN0 IGxpYnhsX19jb2xvX3NhdmVfc3RhdGUgewogICAgICBpbnQgc2VuZF9mZDsKICAgICAgaW50IHJl Y3ZfZmQ7CisgICAgY2hhciAqY29sb19wcm94eV9zY3JpcHQ7CgogICAgICAvKiBwcml2YXRlICov CiAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSBzcnM7CkBAIC0zNTU0LDYgKzM1NTUsNyBA QCBzdHJ1Y3QgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgewogICAgICBsaWJ4bF9hc3luY3By b2dyZXNzX2hvdyBhb3BfY29uc29sZV9ob3c7CiAgICAgIC8qIHByaXZhdGUgdG8gZG9tYWluX2Ny ZWF0ZSAqLwogICAgICBpbnQgZ3Vlc3RfZG9taWQ7CisgICAgY29uc3QgY2hhciAqY29sb19wcm94 eV9zY3JpcHQ7CiAgICAgIGxpYnhsX19kb21haW5fYnVpbGRfc3RhdGUgYnVpbGRfc3RhdGU7CiAg ICAgIGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUgY3JzOwogICAgICBsaWJ4bF9fY2hlY2twb2lu dF9kZXZpY2VzX3N0YXRlIGNkczsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVz LmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAppbmRleCA4MzM1MjkxLi5mODhmYWUw IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfdHlwZXMuaWRsCkBAIC02MDIsNiArNjAyLDkgQEAgbGlieGxfZGV2aWNlX25pYyA9 IFN0cnVjdCgiZGV2aWNlX25pYyIsIFsKICAgICAgKCJyYXRlX2J5dGVzX3Blcl9pbnRlcnZhbCIs IHVpbnQ2NCksCiAgICAgICgicmF0ZV9pbnRlcnZhbF91c2VjcyIsIHVpbnQzMiksCiAgICAgICgi Z2F0ZXdheWRldiIsIHN0cmluZyksCisgICAgIyBOb3RlIHRoYXQgdGhlIENPTE8gY29uZmlndXJh dGlvbiBzZXR0aW5ncyBzaG91bGQgYmUgY29uc2lkZXJlZCAKdW5zdGFibGUuCisgICAgIyBUaGV5 IG1heSBjaGFuZ2UgaW5jb21wYXRpYmx5IGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBYZW4uCisgICAg KCJjb2xvZnRfZm9yd2FyZGRldiIsIHN0cmluZykKICAgICAgXSkKCiAgbGlieGxfZGV2aWNlX3Bj aSA9IFN0cnVjdCgiZGV2aWNlX3BjaSIsIFsKLS0gCjEuOS4zCgoKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=