From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: [PULL 08/25] pci: Eliminate redundant PCIDevice::bus pointer Date: Thu, 21 Dec 2017 16:28:49 +0200 Message-ID: <1513866427-27125-9-git-send-email-mst@redhat.com> References: <1513866427-27125-1-git-send-email-mst@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eS1qP-0000E1-V5 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2017 14:29:10 +0000 Content-Disposition: inline In-Reply-To: <1513866427-27125-1-git-send-email-mst@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Peter Maydell , Dmitry Fleytman , Stefano Stabellini , Eduardo Habkost , Christian Borntraeger , qemu-s390x@nongnu.org, Jason Wang , Cornelia Huck , Alexander Graf , Peter Xu , Anthony Perard , Alex Williamson , qemu-arm@nongnu.org, qemu-ppc@nongnu.org, Gerd Hoffmann , Paolo Bonzini , Marcel Apfelbaum , Igor Mammedov , Richard Henderson , xen-devel@lists.xenproject.org, David Gibson List-Id: xen-devel@lists.xenproject.org RnJvbTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CgpUaGUgYnVz IHBvaW50ZXIgaW4gUENJRGV2aWNlIGlzIGJhc2ljYWxseSByZWR1bmRhbnQgd2l0aCBRT00gaW5m b3JtYXRpb24uCkl0J3MgYWx3YXlzIGluaXRpYWxpemVkIHRvIHRoZSBxZGV2X2dldF9wYXJlbnRf YnVzKCksIHRoZSBvbmx5IGRpZmZlcmVuY2UKaXMgdGhlIHR5cGUuCgpUaGVyZWZvcmUgdGhpcyBw YXRjaCBlbGltaW5hdGVzIHRoZSBmaWVsZCwgaW5zdGVhZCBjcmVhdGluZyBhIHBjaV9nZXRfYnVz KCkKaGVscGVyIHRvIGRvIHRoZSB0eXBlIG1hbmdsaW5nIHRvIGRlcml2ZSBpdCBjb252ZW5pZW50 bHkgZnJvbSB0aGUgUU9NCkRldmljZSBvYmplY3QgdW5kZXJuZWF0aC4KClNpZ25lZC1vZmYtYnk6 IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpSZXZpZXdlZC1ieTog TWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFl bCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IEVkdWFyZG8gSGFia29z dCA8ZWhhYmtvc3RAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IE1hcmNlbCBBcGZlbGJhdW0gPG1h cmNlbEByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29t PgotLS0KIGluY2x1ZGUvaHcvcGNpL3BjaS5oICAgICAgICAgICAgICAgIHwgIDkgKysrLS0KIGh3 L2FjcGkvcGNpaHAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGh3L2FjcGkvcGlpeDQu YyAgICAgICAgICAgICAgICAgICAgIHwgIDcgKystLQogaHcvaTM4Ni94ZW4veGVuX3BsYXRmb3Jt LmMgICAgICAgICAgfCAxMiArKystLS0KIGh3L2lzYS9scGNfaWNoOS5jICAgICAgICAgICAgICAg ICAgIHwgMTAgKystLS0KIGh3L25ldC92bXhuZXQzLmMgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGh3L3BjaS1icmlkZ2UvcGNpX2V4cGFuZGVyX2JyaWRnZS5jIHwgMTcgKysrKystLS0tCiBo dy9wY2ktaG9zdC9waWl4LmMgICAgICAgICAgICAgICAgICB8IDEwICsrLS0tCiBody9wY2ktaG9z dC92ZXJzYXRpbGUuYyAgICAgICAgICAgICB8ICAyICstCiBody9wY2kvcGNpLmMgICAgICAgICAg ICAgICAgICAgICAgICB8IDc2ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0K IGh3L3BjaS9wY2lfYnJpZGdlLmMgICAgICAgICAgICAgICAgIHwgIDYgKy0tCiBody9wY2kvcGNp ZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrLQogaHcvcGNpL3BjaWVfYWVyLmMgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogaHcvcHBjL3NwYXByX3BjaS5jICAgICAgICAgICAgICAg ICAgfCAgMiArLQogaHcvczM5MHgvczM5MC1wY2ktYnVzLmMgICAgICAgICAgICAgfCAgOCArKy0t CiBody9zY3NpL3Ztd19wdnNjc2kuYyAgICAgICAgICAgICAgICB8ICAyICstCiBody91c2IvaGNk LXhoY2kuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBody92ZmlvL3BjaS5jICAgICAgICAg ICAgICAgICAgICAgICB8IDEwICsrLS0tCiBody92aXJ0aW8vdmlydGlvLXBjaS5jICAgICAgICAg ICAgICB8ICA0ICstCiBody94ZW4veGVuX3B0LmMgICAgICAgICAgICAgICAgICAgICB8ICA0ICst CiAyMCBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9wY2kvcGNpLmggYi9pbmNsdWRlL2h3L3BjaS9wY2kuaApp bmRleCBlNDUxMjM1Li41OTdmZmI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2h3L3BjaS9wY2kuaAor KysgYi9pbmNsdWRlL2h3L3BjaS9wY2kuaApAQCAtMjg1LDcgKzI4NSw2IEBAIHN0cnVjdCBQQ0lE ZXZpY2UgewogICAgIHVpbnQ4X3QgKnVzZWQ7CiAKICAgICAvKiB0aGUgZm9sbG93aW5nIGZpZWxk cyBhcmUgcmVhZCBvbmx5ICovCi0gICAgUENJQnVzICpidXM7CiAgICAgaW50MzJfdCBkZXZmbjsK ICAgICAvKiBDYWNoZWQgZGV2aWNlIHRvIGZldGNoIHJlcXVlc3RlciBJRCBmcm9tLCB0byBhdm9p ZCB0aGUgUENJCiAgICAgICogdHJlZSB3YWxraW5nIGV2ZXJ5IHRpbWUgd2UgaW52b2tlIFBDSSBy ZXF1ZXN0IChlLmcuLApAQCAtNDM1LDEwICs0MzQsMTQgQEAgUENJRGV2aWNlICpwY2lfbmljX2lu aXRfbm9mYWlsKE5JQ0luZm8gKm5kLCBQQ0lCdXMgKnJvb3RidXMsCiAKIFBDSURldmljZSAqcGNp X3ZnYV9pbml0KFBDSUJ1cyAqYnVzKTsKIAorc3RhdGljIGlubGluZSBQQ0lCdXMgKnBjaV9nZXRf YnVzKGNvbnN0IFBDSURldmljZSAqZGV2KQoreworICAgIHJldHVybiBQQ0lfQlVTKHFkZXZfZ2V0 X3BhcmVudF9idXMoREVWSUNFKGRldikpKTsKK30KIGludCBwY2lfYnVzX251bShQQ0lCdXMgKnMp Owogc3RhdGljIGlubGluZSBpbnQgcGNpX2Rldl9idXNfbnVtKGNvbnN0IFBDSURldmljZSAqZGV2 KQogewotICAgIHJldHVybiBwY2lfYnVzX251bShkZXYtPmJ1cyk7CisgICAgcmV0dXJuIHBjaV9i dXNfbnVtKHBjaV9nZXRfYnVzKGRldikpOwogfQogCiBpbnQgcGNpX2J1c19udW1hX25vZGUoUENJ QnVzICpidXMpOwpAQCAtNzQ1LDcgKzc0OCw3IEBAIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgcGNp X2NvbmZpZ19zaXplKGNvbnN0IFBDSURldmljZSAqZCkKIAogc3RhdGljIGlubGluZSB1aW50MTZf dCBwY2lfZ2V0X2JkZihQQ0lEZXZpY2UgKmRldikKIHsKLSAgICByZXR1cm4gUENJX0JVSUxEX0JE RihwY2lfYnVzX251bShkZXYtPmJ1cyksIGRldi0+ZGV2Zm4pOworICAgIHJldHVybiBQQ0lfQlVJ TERfQkRGKHBjaV9idXNfbnVtKHBjaV9nZXRfYnVzKGRldikpLCBkZXYtPmRldmZuKTsKIH0KIAog dWludDE2X3QgcGNpX3JlcXVlc3Rlcl9pZChQQ0lEZXZpY2UgKmRldik7CmRpZmYgLS1naXQgYS9o dy9hY3BpL3BjaWhwLmMgYi9ody9hY3BpL3BjaWhwLmMKaW5kZXggN2RhNTFjMC4uOTFjODJmZCAx MDA2NDQKLS0tIGEvaHcvYWNwaS9wY2locC5jCisrKyBiL2h3L2FjcGkvcGNpaHAuYwpAQCAtMjIz LDcgKzIyMyw3IEBAIHZvaWQgYWNwaV9wY2locF9kZXZpY2VfcGx1Z19jYihIb3RwbHVnSGFuZGxl ciAqaG90cGx1Z19kZXYsIEFjcGlQY2lIcFN0YXRlICpzLAogewogICAgIFBDSURldmljZSAqcGRl diA9IFBDSV9ERVZJQ0UoZGV2KTsKICAgICBpbnQgc2xvdCA9IFBDSV9TTE9UKHBkZXYtPmRldmZu KTsKLSAgICBpbnQgYnNlbCA9IGFjcGlfcGNpaHBfZ2V0X2JzZWwocGRldi0+YnVzKTsKKyAgICBp bnQgYnNlbCA9IGFjcGlfcGNpaHBfZ2V0X2JzZWwocGNpX2dldF9idXMocGRldikpOwogICAgIGlm IChic2VsIDwgMCkgewogICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJVbnN1cHBvcnRlZCBidXMu IEJ1cyBkb2Vzbid0IGhhdmUgcHJvcGVydHkgJyIKICAgICAgICAgICAgICAgICAgICBBQ1BJX1BD SUhQX1BST1BfQlNFTCAiJyBzZXQiKTsKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIGFjcGlfcGNp aHBfZGV2aWNlX3VucGx1Z19jYihIb3RwbHVnSGFuZGxlciAqaG90cGx1Z19kZXYsIEFjcGlQY2lI cFN0YXRlICpzLAogewogICAgIFBDSURldmljZSAqcGRldiA9IFBDSV9ERVZJQ0UoZGV2KTsKICAg ICBpbnQgc2xvdCA9IFBDSV9TTE9UKHBkZXYtPmRldmZuKTsKLSAgICBpbnQgYnNlbCA9IGFjcGlf cGNpaHBfZ2V0X2JzZWwocGRldi0+YnVzKTsKKyAgICBpbnQgYnNlbCA9IGFjcGlfcGNpaHBfZ2V0 X2JzZWwocGNpX2dldF9idXMocGRldikpOwogICAgIGlmIChic2VsIDwgMCkgewogICAgICAgICBl cnJvcl9zZXRnKGVycnAsICJVbnN1cHBvcnRlZCBidXMuIEJ1cyBkb2Vzbid0IGhhdmUgcHJvcGVy dHkgJyIKICAgICAgICAgICAgICAgICAgICBBQ1BJX1BDSUhQX1BST1BfQlNFTCAiJyBzZXQiKTsK ZGlmZiAtLWdpdCBhL2h3L2FjcGkvcGlpeDQuYyBiL2h3L2FjcGkvcGlpeDQuYwppbmRleCBhMGZi MWNlLi44YjcwMzQ1IDEwMDY0NAotLS0gYS9ody9hY3BpL3BpaXg0LmMKKysrIGIvaHcvYWNwaS9w aWl4NC5jCkBAIC00NjAsOSArNDYwLDkgQEAgc3RhdGljIHZvaWQgcGlpeDRfcG1fbWFjaGluZV9y ZWFkeShOb3RpZmllciAqbiwgdm9pZCAqb3BhcXVlKQogICAgICAgICAobWVtb3J5X3JlZ2lvbl9w cmVzZW50KGlvX2FzLCAweDJmOCkgPyAweDkwIDogMCk7CiAKICAgICBpZiAocy0+dXNlX2FjcGlf cGNpX2hvdHBsdWcpIHsKLSAgICAgICAgcGNpX2Zvcl9lYWNoX2J1cyhkLT5idXMsIHBpaXg0X3Vw ZGF0ZV9idXNfaG90cGx1Zywgcyk7CisgICAgICAgIHBjaV9mb3JfZWFjaF9idXMocGNpX2dldF9i dXMoZCksIHBpaXg0X3VwZGF0ZV9idXNfaG90cGx1Zywgcyk7CiAgICAgfSBlbHNlIHsKLSAgICAg ICAgcGlpeDRfdXBkYXRlX2J1c19ob3RwbHVnKGQtPmJ1cywgcyk7CisgICAgICAgIHBpaXg0X3Vw ZGF0ZV9idXNfaG90cGx1ZyhwY2lfZ2V0X2J1cyhkKSwgcyk7CiAgICAgfQogfQogCkBAIC01MzUs NyArNTM1LDggQEAgc3RhdGljIHZvaWQgcGlpeDRfcG1fcmVhbGl6ZShQQ0lEZXZpY2UgKmRldiwg RXJyb3IgKiplcnJwKQogICAgIHFlbXVfYWRkX21hY2hpbmVfaW5pdF9kb25lX25vdGlmaWVyKCZz LT5tYWNoaW5lX3JlYWR5KTsKICAgICBxZW11X3JlZ2lzdGVyX3Jlc2V0KHBpaXg0X3Jlc2V0LCBz KTsKIAotICAgIHBpaXg0X2FjcGlfc3lzdGVtX2hvdF9hZGRfaW5pdChwY2lfYWRkcmVzc19zcGFj ZV9pbyhkZXYpLCBkZXYtPmJ1cywgcyk7CisgICAgcGlpeDRfYWNwaV9zeXN0ZW1faG90X2FkZF9p bml0KHBjaV9hZGRyZXNzX3NwYWNlX2lvKGRldiksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBjaV9nZXRfYnVzKGRldiksIHMpOwogCiAgICAgcGlpeDRfcG1fYWRkX3Byb3Bl dGllcyhzKTsKIH0KZGlmZiAtLWdpdCBhL2h3L2kzODYveGVuL3hlbl9wbGF0Zm9ybS5jIGIvaHcv aTM4Ni94ZW4veGVuX3BsYXRmb3JtLmMKaW5kZXggMDU2Yjg3ZC4uOWFiNTQ4MyAxMDA2NDQKLS0t IGEvaHcvaTM4Ni94ZW4veGVuX3BsYXRmb3JtLmMKKysrIGIvaHcvaTM4Ni94ZW4veGVuX3BsYXRm b3JtLmMKQEAgLTE4NiwxMSArMTg2LDExIEBAIHN0YXRpYyB2b2lkIHBsYXRmb3JtX2ZpeGVkX2lv cG9ydF93cml0ZXcodm9pZCAqb3BhcXVlLCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2CiAgICAg ICAgIGlmICh2YWwgJiAoVU5QTFVHX0lERV9TQ1NJX0RJU0tTIHwgVU5QTFVHX0FVWF9JREVfRElT S1MgfAogICAgICAgICAgICAgICAgICAgIFVOUExVR19OVk1FX0RJU0tTKSkgewogICAgICAgICAg ICAgRFBSSU5URigidW5wbHVnIGRpc2tzXG4iKTsKLSAgICAgICAgICAgIHBjaV91bnBsdWdfZGlz a3MocGNpX2Rldi0+YnVzLCB2YWwpOworICAgICAgICAgICAgcGNpX3VucGx1Z19kaXNrcyhwY2lf Z2V0X2J1cyhwY2lfZGV2KSwgdmFsKTsKICAgICAgICAgfQogICAgICAgICBpZiAodmFsICYgVU5Q TFVHX0FMTF9OSUNTKSB7CiAgICAgICAgICAgICBEUFJJTlRGKCJ1bnBsdWcgbmljc1xuIik7Ci0g ICAgICAgICAgICBwY2lfdW5wbHVnX25pY3MocGNpX2Rldi0+YnVzKTsKKyAgICAgICAgICAgIHBj aV91bnBsdWdfbmljcyhwY2lfZ2V0X2J1cyhwY2lfZGV2KSk7CiAgICAgICAgIH0KICAgICAgICAg YnJlYWs7CiAgICAgfQpAQCAtMzcyLDE3ICszNzIsMTcgQEAgc3RhdGljIHZvaWQgeGVuX3BsYXRm b3JtX2lvcG9ydF93cml0ZWIodm9pZCAqb3BhcXVlLCBod2FkZHIgYWRkciwKICAgICAgICAgICAg ICAqIElmIFZNRFAgd2FzIHRvIGNvbnRyb2wgYm90aCBkaXNrIGFuZCBMQU4gaXQgd291bGQgdXNl IDQuCiAgICAgICAgICAgICAgKiBJZiBpdCBjb250cm9sbGVkIGp1c3QgZGlzayBvciBqdXN0IExB TiwgaXQgd291bGQgdXNlIDggYmVsb3cuCiAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIHBj aV91bnBsdWdfZGlza3MocGNpX2Rldi0+YnVzLCBVTlBMVUdfSURFX1NDU0lfRElTS1MpOwotICAg ICAgICAgICAgcGNpX3VucGx1Z19uaWNzKHBjaV9kZXYtPmJ1cyk7CisgICAgICAgICAgICBwY2lf dW5wbHVnX2Rpc2tzKHBjaV9nZXRfYnVzKHBjaV9kZXYpLCBVTlBMVUdfSURFX1NDU0lfRElTS1Mp OworICAgICAgICAgICAgcGNpX3VucGx1Z19uaWNzKHBjaV9nZXRfYnVzKHBjaV9kZXYpKTsKICAg ICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIDg6CiAgICAgICAgIHN3aXRjaCAodmFs KSB7CiAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHBjaV91bnBsdWdfZGlza3MocGNpX2Rl di0+YnVzLCBVTlBMVUdfSURFX1NDU0lfRElTS1MpOworICAgICAgICAgICAgcGNpX3VucGx1Z19k aXNrcyhwY2lfZ2V0X2J1cyhwY2lfZGV2KSwgVU5QTFVHX0lERV9TQ1NJX0RJU0tTKTsKICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBwY2lfdW5wbHVnX25p Y3MocGNpX2Rldi0+YnVzKTsKKyAgICAgICAgICAgIHBjaV91bnBsdWdfbmljcyhwY2lfZ2V0X2J1 cyhwY2lfZGV2KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg ICAgICAgIGxvZ193cml0ZWIocywgKHVpbnQzMl90KXZhbCk7CmRpZmYgLS1naXQgYS9ody9pc2Ev bHBjX2ljaDkuYyBiL2h3L2lzYS9scGNfaWNoOS5jCmluZGV4IGVjM2M5ZjcuLmFkY2YwNzcgMTAw NjQ0Ci0tLSBhL2h3L2lzYS9scGNfaWNoOS5jCisrKyBiL2h3L2lzYS9scGNfaWNoOS5jCkBAIC0x NjIsNyArMTYyLDcgQEAgc3RhdGljIHZvaWQgaWNoOV9jY193cml0ZSh2b2lkICpvcGFxdWUsIGh3 YWRkciBhZGRyLAogCiAgICAgaWNoOV9jY19hZGRyX2xlbigmYWRkciwgJmxlbik7CiAgICAgbWVt Y3B5KGxwYy0+Y2hpcF9jb25maWcgKyBhZGRyLCAmdmFsLCBsZW4pOwotICAgIHBjaV9idXNfZmly ZV9pbnR4X3JvdXRpbmdfbm90aWZpZXIobHBjLT5kLmJ1cyk7CisgICAgcGNpX2J1c19maXJlX2lu dHhfcm91dGluZ19ub3RpZmllcihwY2lfZ2V0X2J1cygmbHBjLT5kKSk7CiAgICAgaWNoOV9jY191 cGRhdGUobHBjKTsKIH0KIApAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyB2b2lkIGljaDlfbHBj X3VwZGF0ZV9waWMoSUNIOUxQQ1N0YXRlICpscGMsIGludCBnc2kpCiAgICAgICAgIGludCB0bXBf ZGlzOwogICAgICAgICBpY2g5X2xwY19waWNfaXJxKGxwYywgaSwgJnRtcF9pcnEsICZ0bXBfZGlz KTsKICAgICAgICAgaWYgKCF0bXBfZGlzICYmIHRtcF9pcnEgPT0gZ3NpKSB7Ci0gICAgICAgICAg ICBwaWNfbGV2ZWwgfD0gcGNpX2J1c19nZXRfaXJxX2xldmVsKGxwYy0+ZC5idXMsIGkpOworICAg ICAgICAgICAgcGljX2xldmVsIHw9IHBjaV9idXNfZ2V0X2lycV9sZXZlbChwY2lfZ2V0X2J1cygm bHBjLT5kKSwgaSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKGdzaSA9PSBscGMtPnNjaV9n c2kpIHsKQEAgLTI0Niw3ICsyNDYsNyBAQCBzdGF0aWMgdm9pZCBpY2g5X2xwY191cGRhdGVfYXBp YyhJQ0g5TFBDU3RhdGUgKmxwYywgaW50IGdzaSkKIAogICAgIGFzc2VydChnc2kgPj0gSUNIOV9M UENfUElDX05VTV9QSU5TKTsKIAotICAgIGxldmVsIHw9IHBjaV9idXNfZ2V0X2lycV9sZXZlbChs cGMtPmQuYnVzLCBpY2g5X2dzaV90b19waXJxKGdzaSkpOworICAgIGxldmVsIHw9IHBjaV9idXNf Z2V0X2lycV9sZXZlbChwY2lfZ2V0X2J1cygmbHBjLT5kKSwgaWNoOV9nc2lfdG9fcGlycShnc2kp KTsKICAgICBpZiAoZ3NpID09IGxwYy0+c2NpX2dzaSkgewogICAgICAgICBsZXZlbCB8PSBscGMt PnNjaV9sZXZlbDsKICAgICB9CkBAIC01MjQsMTAgKzUyNCwxMCBAQCBzdGF0aWMgdm9pZCBpY2g5 X2xwY19jb25maWdfd3JpdGUoUENJRGV2aWNlICpkLAogICAgICAgICBpY2g5X2xwY19yY2JhX3Vw ZGF0ZShscGMsIHJjYmFfb2xkKTsKICAgICB9CiAgICAgaWYgKHJhbmdlc19vdmVybGFwKGFkZHIs IGxlbiwgSUNIOV9MUENfUElSUUFfUk9VVCwgNCkpIHsKLSAgICAgICAgcGNpX2J1c19maXJlX2lu dHhfcm91dGluZ19ub3RpZmllcihscGMtPmQuYnVzKTsKKyAgICAgICAgcGNpX2J1c19maXJlX2lu dHhfcm91dGluZ19ub3RpZmllcihwY2lfZ2V0X2J1cygmbHBjLT5kKSk7CiAgICAgfQogICAgIGlm IChyYW5nZXNfb3ZlcmxhcChhZGRyLCBsZW4sIElDSDlfTFBDX1BJUlFFX1JPVVQsIDQpKSB7Ci0g ICAgICAgIHBjaV9idXNfZmlyZV9pbnR4X3JvdXRpbmdfbm90aWZpZXIobHBjLT5kLmJ1cyk7Cisg ICAgICAgIHBjaV9idXNfZmlyZV9pbnR4X3JvdXRpbmdfbm90aWZpZXIocGNpX2dldF9idXMoJmxw Yy0+ZCkpOwogICAgIH0KICAgICBpZiAocmFuZ2VzX292ZXJsYXAoYWRkciwgbGVuLCBJQ0g5X0xQ Q19HRU5fUE1DT05fMSwgOCkpIHsKICAgICAgICAgaWNoOV9scGNfcG1jb25fdXBkYXRlKGxwYyk7 CmRpZmYgLS1naXQgYS9ody9uZXQvdm14bmV0My5jIGIvaHcvbmV0L3ZteG5ldDMuYwppbmRleCBi ODQwNGNiLi4wNjU0ZDU5IDEwMDY0NAotLS0gYS9ody9uZXQvdm14bmV0My5jCisrKyBiL2h3L25l dC92bXhuZXQzLmMKQEAgLTIzNTYsNyArMjM1Niw3IEBAIHN0YXRpYyB2b2lkIHZteG5ldDNfcGNp X3JlYWxpemUoUENJRGV2aWNlICpwY2lfZGV2LCBFcnJvciAqKmVycnApCiAgICAgdm14bmV0M19u ZXRfaW5pdChzKTsKIAogICAgIGlmIChwY2lfaXNfZXhwcmVzcyhwY2lfZGV2KSkgewotICAgICAg ICBpZiAocGNpX2J1c19pc19leHByZXNzKHBjaV9kZXYtPmJ1cykpIHsKKyAgICAgICAgaWYgKHBj aV9idXNfaXNfZXhwcmVzcyhwY2lfZ2V0X2J1cyhwY2lfZGV2KSkpIHsKICAgICAgICAgICAgIHBj aWVfZW5kcG9pbnRfY2FwX2luaXQocGNpX2RldiwgVk1YTkVUM19FWFBfRVBfT0ZGU0VUKTsKICAg ICAgICAgfQogCmRpZmYgLS1naXQgYS9ody9wY2ktYnJpZGdlL3BjaV9leHBhbmRlcl9icmlkZ2Uu YyBiL2h3L3BjaS1icmlkZ2UvcGNpX2V4cGFuZGVyX2JyaWRnZS5jCmluZGV4IGIyZmE4MjkuLjJh ODFlZWMgMTAwNjQ0Ci0tLSBhL2h3L3BjaS1icmlkZ2UvcGNpX2V4cGFuZGVyX2JyaWRnZS5jCisr KyBiL2h3L3BjaS1icmlkZ2UvcGNpX2V4cGFuZGVyX2JyaWRnZS5jCkBAIC01Miw3ICs1Miw4IEBA IHR5cGVkZWYgc3RydWN0IFBYQkRldiB7CiAKIHN0YXRpYyBQWEJEZXYgKmNvbnZlcnRfdG9fcHhi KFBDSURldmljZSAqZGV2KQogewotICAgIHJldHVybiBwY2lfYnVzX2lzX2V4cHJlc3MoZGV2LT5i dXMpID8gUFhCX1BDSUVfREVWKGRldikgOiBQWEJfREVWKGRldik7CisgICAgcmV0dXJuIHBjaV9i dXNfaXNfZXhwcmVzcyhwY2lfZ2V0X2J1cyhkZXYpKQorICAgICAgICA/IFBYQl9QQ0lFX0RFVihk ZXYpIDogUFhCX0RFVihkZXYpOwogfQogCiBzdGF0aWMgR0xpc3QgKnB4Yl9kZXZfbGlzdDsKQEAg LTE2Niw3ICsxNjcsNyBAQCBzdGF0aWMgY29uc3QgVHlwZUluZm8gcHhiX2hvc3RfaW5mbyA9IHsK ICAqLwogc3RhdGljIHZvaWQgcHhiX3JlZ2lzdGVyX2J1cyhQQ0lEZXZpY2UgKmRldiwgUENJQnVz ICpweGJfYnVzLCBFcnJvciAqKmVycnApCiB7Ci0gICAgUENJQnVzICpidXMgPSBkZXYtPmJ1czsK KyAgICBQQ0lCdXMgKmJ1cyA9IHBjaV9nZXRfYnVzKGRldik7CiAgICAgaW50IHB4Yl9idXNfbnVt ID0gcGNpX2J1c19udW0ocHhiX2J1cyk7CiAKICAgICBpZiAoYnVzLT5wYXJlbnRfZGV2KSB7CkBA IC0xODAsMTIgKzE4MSwxMiBAQCBzdGF0aWMgdm9pZCBweGJfcmVnaXN0ZXJfYnVzKFBDSURldmlj ZSAqZGV2LCBQQ0lCdXMgKnB4Yl9idXMsIEVycm9yICoqZXJycCkKICAgICAgICAgICAgIHJldHVy bjsKICAgICAgICAgfQogICAgIH0KLSAgICBRTElTVF9JTlNFUlRfSEVBRCgmZGV2LT5idXMtPmNo aWxkLCBweGJfYnVzLCBzaWJsaW5nKTsKKyAgICBRTElTVF9JTlNFUlRfSEVBRCgmcGNpX2dldF9i dXMoZGV2KS0+Y2hpbGQsIHB4Yl9idXMsIHNpYmxpbmcpOwogfQogCiBzdGF0aWMgaW50IHB4Yl9t YXBfaXJxX2ZuKFBDSURldmljZSAqcGNpX2RldiwgaW50IHBpbikKIHsKLSAgICBQQ0lEZXZpY2Ug KnB4YiA9IHBjaV9kZXYtPmJ1cy0+cGFyZW50X2RldjsKKyAgICBQQ0lEZXZpY2UgKnB4YiA9IHBj aV9nZXRfYnVzKHBjaV9kZXYpLT5wYXJlbnRfZGV2OwogCiAgICAgLyoKICAgICAgKiBUaGUgYmlv cyBkb2VzIG5vdCBpbmRleCB0aGUgcHhiIHNsb3QgbnVtYmVyIHdoZW4KQEAgLTI0MCw4ICsyNDEs OCBAQCBzdGF0aWMgdm9pZCBweGJfZGV2X3JlYWxpemVfY29tbW9uKFBDSURldmljZSAqZGV2LCBi b29sIHBjaWUsIEVycm9yICoqZXJycCkKICAgICB9CiAKICAgICBidXMtPnBhcmVudF9kZXYgPSBk ZXY7Ci0gICAgYnVzLT5hZGRyZXNzX3NwYWNlX21lbSA9IGRldi0+YnVzLT5hZGRyZXNzX3NwYWNl X21lbTsKLSAgICBidXMtPmFkZHJlc3Nfc3BhY2VfaW8gPSBkZXYtPmJ1cy0+YWRkcmVzc19zcGFj ZV9pbzsKKyAgICBidXMtPmFkZHJlc3Nfc3BhY2VfbWVtID0gcGNpX2dldF9idXMoZGV2KS0+YWRk cmVzc19zcGFjZV9tZW07CisgICAgYnVzLT5hZGRyZXNzX3NwYWNlX2lvID0gcGNpX2dldF9idXMo ZGV2KS0+YWRkcmVzc19zcGFjZV9pbzsKICAgICBidXMtPm1hcF9pcnEgPSBweGJfbWFwX2lycV9m bjsKIAogICAgIFBDSV9IT1NUX0JSSURHRShkcyktPmJ1cyA9IGJ1czsKQEAgLTI3Miw3ICsyNzMs NyBAQCBlcnJfcmVnaXN0ZXJfYnVzOgogCiBzdGF0aWMgdm9pZCBweGJfZGV2X3JlYWxpemUoUENJ RGV2aWNlICpkZXYsIEVycm9yICoqZXJycCkKIHsKLSAgICBpZiAocGNpX2J1c19pc19leHByZXNz KGRldi0+YnVzKSkgeworICAgIGlmIChwY2lfYnVzX2lzX2V4cHJlc3MocGNpX2dldF9idXMoZGV2 KSkpIHsKICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAicHhiIGRldmljZXMgY2Fubm90IHJlc2lk ZSBvbiBhIFBDSWUgYnVzIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMjQsNyArMzI1 LDcgQEAgc3RhdGljIGNvbnN0IFR5cGVJbmZvIHB4Yl9kZXZfaW5mbyA9IHsKIAogc3RhdGljIHZv aWQgcHhiX3BjaWVfZGV2X3JlYWxpemUoUENJRGV2aWNlICpkZXYsIEVycm9yICoqZXJycCkKIHsK LSAgICBpZiAoIXBjaV9idXNfaXNfZXhwcmVzcyhkZXYtPmJ1cykpIHsKKyAgICBpZiAoIXBjaV9i dXNfaXNfZXhwcmVzcyhwY2lfZ2V0X2J1cyhkZXYpKSkgewogICAgICAgICBlcnJvcl9zZXRnKGVy cnAsICJweGItcGNpZSBkZXZpY2VzIGNhbm5vdCByZXNpZGUgb24gYSBQQ0kgYnVzIik7CiAgICAg ICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9ody9wY2ktaG9zdC9waWl4LmMgYi9ody9w Y2ktaG9zdC9waWl4LmMKaW5kZXggY2Y5MDcwMS4uZWZmZTNkYiAxMDA2NDQKLS0tIGEvaHcvcGNp LWhvc3QvcGlpeC5jCisrKyBiL2h3L3BjaS1ob3N0L3BpaXguYwpAQCAtNTEyLDEyICs1MTIsMTIg QEAgc3RhdGljIFBDSUlOVHhSb3V0ZSBwaWl4M19yb3V0ZV9pbnR4X3Bpbl90b19pcnEodm9pZCAq b3BhcXVlLCBpbnQgcGluKQogLyogaXJxIHJvdXRpbmcgaXMgY2hhbmdlZC4gc28gcmVidWlsZCBi aXRtYXAgKi8KIHN0YXRpYyB2b2lkIHBpaXgzX3VwZGF0ZV9pcnFfbGV2ZWxzKFBJSVgzU3RhdGUg KnBpaXgzKQogeworICAgIFBDSUJ1cyAqYnVzID0gcGNpX2dldF9idXMoJnBpaXgzLT5kZXYpOwog ICAgIGludCBwaXJxOwogCiAgICAgcGlpeDMtPnBpY19sZXZlbHMgPSAwOwogICAgIGZvciAocGly cSA9IDA7IHBpcnEgPCBQSUlYX05VTV9QSVJRUzsgcGlycSsrKSB7Ci0gICAgICAgIHBpaXgzX3Nl dF9pcnFfbGV2ZWwocGlpeDMsIHBpcnEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNp X2J1c19nZXRfaXJxX2xldmVsKHBpaXgzLT5kZXYuYnVzLCBwaXJxKSk7CisgICAgICAgIHBpaXgz X3NldF9pcnFfbGV2ZWwocGlpeDMsIHBpcnEsIHBjaV9idXNfZ2V0X2lycV9sZXZlbChidXMsIHBp cnEpKTsKICAgICB9CiB9CiAKQEAgLTUyOSw3ICs1MjksNyBAQCBzdGF0aWMgdm9pZCBwaWl4M193 cml0ZV9jb25maWcoUENJRGV2aWNlICpkZXYsCiAgICAgICAgIFBJSVgzU3RhdGUgKnBpaXgzID0g UElJWDNfUENJX0RFVklDRShkZXYpOwogICAgICAgICBpbnQgcGljX2lycTsKIAotICAgICAgICBw Y2lfYnVzX2ZpcmVfaW50eF9yb3V0aW5nX25vdGlmaWVyKHBpaXgzLT5kZXYuYnVzKTsKKyAgICAg ICAgcGNpX2J1c19maXJlX2ludHhfcm91dGluZ19ub3RpZmllcihwY2lfZ2V0X2J1cygmcGlpeDMt PmRldikpOwogICAgICAgICBwaWl4M191cGRhdGVfaXJxX2xldmVscyhwaWl4Myk7CiAgICAgICAg IGZvciAocGljX2lycSA9IDA7IHBpY19pcnEgPCBQSUlYX05VTV9QSUNfSVJRUzsgcGljX2lycSsr KSB7CiAgICAgICAgICAgICBwaWl4M19zZXRfaXJxX3BpYyhwaWl4MywgcGljX2lycSk7CkBAIC02 MDEsNyArNjAxLDcgQEAgc3RhdGljIGludCBwaWl4M19wb3N0X2xvYWQodm9pZCAqb3BhcXVlLCBp bnQgdmVyc2lvbl9pZCkKICAgICBwaWl4My0+cGljX2xldmVscyA9IDA7CiAgICAgZm9yIChwaXJx ID0gMDsgcGlycSA8IFBJSVhfTlVNX1BJUlFTOyBwaXJxKyspIHsKICAgICAgICAgcGlpeDNfc2V0 X2lycV9sZXZlbF9pbnRlcm5hbChwaWl4MywgcGlycSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwY2lfYnVzX2dldF9pcnFfbGV2ZWwocGlpeDMtPmRldi5idXMsIHBpcnEpKTsKKyAgICAg ICAgICAgIHBjaV9idXNfZ2V0X2lycV9sZXZlbChwY2lfZ2V0X2J1cygmcGlpeDMtPmRldiksIHBp cnEpKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC02MTMsNyArNjEzLDcgQEAgc3RhdGlj IGludCBwaWl4M19wcmVfc2F2ZSh2b2lkICpvcGFxdWUpCiAKICAgICBmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShwaWl4My0+cGNpX2lycV9sZXZlbHNfdm1zdGF0ZSk7IGkrKykgewogICAgICAg ICBwaWl4My0+cGNpX2lycV9sZXZlbHNfdm1zdGF0ZVtpXSA9Ci0gICAgICAgICAgICBwY2lfYnVz X2dldF9pcnFfbGV2ZWwocGlpeDMtPmRldi5idXMsIGkpOworICAgICAgICAgICAgcGNpX2J1c19n ZXRfaXJxX2xldmVsKHBjaV9nZXRfYnVzKCZwaWl4My0+ZGV2KSwgaSk7CiAgICAgfQogCiAgICAg cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9ody9wY2ktaG9zdC92ZXJzYXRpbGUuYyBiL2h3L3BjaS1o b3N0L3ZlcnNhdGlsZS5jCmluZGV4IDg4MDNhZGEuLmQwYjAyYmQgMTAwNjQ0Ci0tLSBhL2h3L3Bj aS1ob3N0L3ZlcnNhdGlsZS5jCisrKyBiL2h3L3BjaS1ob3N0L3ZlcnNhdGlsZS5jCkBAIC0zMTEs NyArMzExLDcgQEAgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9wcyBwY2lfdnBiX2NvbmZpZ19v cHMgPSB7CiAKIHN0YXRpYyBpbnQgcGNpX3ZwYl9tYXBfaXJxKFBDSURldmljZSAqZCwgaW50IGly cV9udW0pCiB7Ci0gICAgUENJVlBCU3RhdGUgKnMgPSBjb250YWluZXJfb2YoZC0+YnVzLCBQQ0lW UEJTdGF0ZSwgcGNpX2J1cyk7CisgICAgUENJVlBCU3RhdGUgKnMgPSBjb250YWluZXJfb2YocGNp X2dldF9idXMoZCksIFBDSVZQQlN0YXRlLCBwY2lfYnVzKTsKIAogICAgIGlmIChzLT5pcnFfbWFw cGluZyA9PSBQQ0lfVlBCX0lSUU1BUF9CUk9LRU4pIHsKICAgICAgICAgLyogTGVnYWN5IGJyb2tl biBJUlEgbWFwcGluZyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBhbmQKZGlmZiAtLWdpdCBh L2h3L3BjaS9wY2kuYyBiL2h3L3BjaS9wY2kuYwppbmRleCAyMzJlN2RhLi41NjdiZTFiIDEwMDY0 NAotLS0gYS9ody9wY2kvcGNpLmMKKysrIGIvaHcvcGNpL3BjaS5jCkBAIC0yMjIsNyArMjIyLDcg QEAgc3RhdGljIHZvaWQgcGNpX2NoYW5nZV9pcnFfbGV2ZWwoUENJRGV2aWNlICpwY2lfZGV2LCBp bnQgaXJxX251bSwgaW50IGNoYW5nZSkKIHsKICAgICBQQ0lCdXMgKmJ1czsKICAgICBmb3IgKDs7 KSB7Ci0gICAgICAgIGJ1cyA9IHBjaV9kZXYtPmJ1czsKKyAgICAgICAgYnVzID0gcGNpX2dldF9i dXMocGNpX2Rldik7CiAgICAgICAgIGlycV9udW0gPSBidXMtPm1hcF9pcnEocGNpX2RldiwgaXJx X251bSk7CiAgICAgICAgIGlmIChidXMtPnNldF9pcnEpCiAgICAgICAgICAgICBicmVhazsKQEAg LTM0OSwxMyArMzQ5LDEzIEBAIFBDSUJ1cyAqcGNpX2ZpbmRfcHJpbWFyeV9idXModm9pZCkKIAog UENJQnVzICpwY2lfZGV2aWNlX3Jvb3RfYnVzKGNvbnN0IFBDSURldmljZSAqZCkKIHsKLSAgICBQ Q0lCdXMgKmJ1cyA9IGQtPmJ1czsKKyAgICBQQ0lCdXMgKmJ1cyA9IHBjaV9nZXRfYnVzKGQpOwog CiAgICAgd2hpbGUgKCFwY2lfYnVzX2lzX3Jvb3QoYnVzKSkgewogICAgICAgICBkID0gYnVzLT5w YXJlbnRfZGV2OwogICAgICAgICBhc3NlcnQoZCAhPSBOVUxMKTsKIAotICAgICAgICBidXMgPSBk LT5idXM7CisgICAgICAgIGJ1cyA9IHBjaV9nZXRfYnVzKGQpOwogICAgIH0KIAogICAgIHJldHVy biBidXM7CkBAIC04ODIsNyArODgyLDcgQEAgc3RhdGljIHZvaWQgcGNpX2NvbmZpZ19mcmVlKFBD SURldmljZSAqcGNpX2RldikKIAogc3RhdGljIHZvaWQgZG9fcGNpX3VucmVnaXN0ZXJfZGV2aWNl KFBDSURldmljZSAqcGNpX2RldikKIHsKLSAgICBwY2lfZGV2LT5idXMtPmRldmljZXNbcGNpX2Rl di0+ZGV2Zm5dID0gTlVMTDsKKyAgICBwY2lfZ2V0X2J1cyhwY2lfZGV2KS0+ZGV2aWNlc1twY2lf ZGV2LT5kZXZmbl0gPSBOVUxMOwogICAgIHBjaV9jb25maWdfZnJlZShwY2lfZGV2KTsKIAogICAg IGlmIChtZW1vcnlfcmVnaW9uX2lzX21hcHBlZCgmcGNpX2Rldi0+YnVzX21hc3Rlcl9lbmFibGVf cmVnaW9uKSkgewpAQCAtOTAzLDcgKzkwMyw3IEBAIHN0YXRpYyB1aW50MTZfdCBwY2lfcmVxX2lk X2NhY2hlX2V4dHJhY3QoUENJUmVxSURDYWNoZSAqY2FjaGUpCiAgICAgICAgIHJlc3VsdCA9IHBj aV9nZXRfYmRmKGNhY2hlLT5kZXYpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDSV9SRVFf SURfU0VDT05EQVJZX0JVUzoKLSAgICAgICAgYnVzX24gPSBwY2lfYnVzX251bShjYWNoZS0+ZGV2 LT5idXMpOworICAgICAgICBidXNfbiA9IHBjaV9kZXZfYnVzX251bShjYWNoZS0+ZGV2KTsKICAg ICAgICAgcmVzdWx0ID0gUENJX0JVSUxEX0JERihidXNfbiwgMCk7CiAgICAgICAgIGJyZWFrOwog ICAgIGRlZmF1bHQ6CkBAIC05MzMsOSArOTMzLDkgQEAgc3RhdGljIFBDSVJlcUlEQ2FjaGUgcGNp X3JlcV9pZF9jYWNoZV9nZXQoUENJRGV2aWNlICpkZXYpCiAgICAgICAgIC50eXBlID0gUENJX1JF UV9JRF9CREYsCiAgICAgfTsKIAotICAgIHdoaWxlICghcGNpX2J1c19pc19yb290KGRldi0+YnVz KSkgeworICAgIHdoaWxlICghcGNpX2J1c19pc19yb290KHBjaV9nZXRfYnVzKGRldikpKSB7CiAg ICAgICAgIC8qIFdlIGFyZSB1bmRlciBQQ0kvUENJZSBicmlkZ2VzICovCi0gICAgICAgIHBhcmVu dCA9IGRldi0+YnVzLT5wYXJlbnRfZGV2OworICAgICAgICBwYXJlbnQgPSBwY2lfZ2V0X2J1cyhk ZXYpLT5wYXJlbnRfZGV2OwogICAgICAgICBpZiAocGNpX2lzX2V4cHJlc3MocGFyZW50KSkgewog ICAgICAgICAgICAgaWYgKHBjaWVfY2FwX2dldF90eXBlKHBhcmVudCkgPT0gUENJX0VYUF9UWVBF X1BDSV9CUklER0UpIHsKICAgICAgICAgICAgICAgICAvKiBXaGVuIHdlIHBhc3MgdGhyb3VnaCBQ Q0llLXRvLVBDSS9QQ0lYIGJyaWRnZXMsIHdlCkBAIC05NzgsNyArOTc4LDcgQEAgc3RhdGljIGJv b2wgcGNpX2J1c19kZXZmbl9yZXNlcnZlZChQQ0lCdXMgKmJ1cywgaW50IGRldmZuKQogfQogCiAv KiAtMSBmb3IgZGV2Zm4gbWVhbnMgYXV0byBhc3NpZ24gKi8KLXN0YXRpYyBQQ0lEZXZpY2UgKmRv X3BjaV9yZWdpc3Rlcl9kZXZpY2UoUENJRGV2aWNlICpwY2lfZGV2LCBQQ0lCdXMgKmJ1cywKK3N0 YXRpYyBQQ0lEZXZpY2UgKmRvX3BjaV9yZWdpc3Rlcl9kZXZpY2UoUENJRGV2aWNlICpwY2lfZGV2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lLCBpbnQgZGV2Zm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVycm9yICoqZXJycCkKIHsKQEAgLTk4Nyw4ICs5ODcsOCBAQCBzdGF0aWMgUENJRGV2aWNlICpk b19wY2lfcmVnaXN0ZXJfZGV2aWNlKFBDSURldmljZSAqcGNpX2RldiwgUENJQnVzICpidXMsCiAg ICAgUENJQ29uZmlnV3JpdGVGdW5jICpjb25maWdfd3JpdGUgPSBwYy0+Y29uZmlnX3dyaXRlOwog ICAgIEVycm9yICpsb2NhbF9lcnIgPSBOVUxMOwogICAgIERldmljZVN0YXRlICpkZXYgPSBERVZJ Q0UocGNpX2Rldik7CisgICAgUENJQnVzICpidXMgPSBwY2lfZ2V0X2J1cyhwY2lfZGV2KTsKIAot ICAgIHBjaV9kZXYtPmJ1cyA9IGJ1czsKICAgICAvKiBPbmx5IHBjaSBicmlkZ2VzIGNhbiBiZSBh dHRhY2hlZCB0byBleHRyYSBQQ0kgcm9vdCBidXNlcyAqLwogICAgIGlmIChwY2lfYnVzX2lzX3Jv b3QoYnVzKSAmJiBidXMtPnBhcmVudF9kZXYgJiYgIXBjLT5pc19icmlkZ2UpIHsKICAgICAgICAg ZXJyb3Jfc2V0ZyhlcnJwLApAQCAtMTE0Miw4ICsxMTQyLDggQEAgdm9pZCBwY2lfcmVnaXN0ZXJf YmFyKFBDSURldmljZSAqcGNpX2RldiwgaW50IHJlZ2lvbl9udW0sCiAgICAgci0+dHlwZSA9IHR5 cGU7CiAgICAgci0+bWVtb3J5ID0gbWVtb3J5OwogICAgIHItPmFkZHJlc3Nfc3BhY2UgPSB0eXBl ICYgUENJX0JBU0VfQUREUkVTU19TUEFDRV9JTwotICAgICAgICAgICAgICAgICAgICAgICAgPyBw Y2lfZGV2LT5idXMtPmFkZHJlc3Nfc3BhY2VfaW8KLSAgICAgICAgICAgICAgICAgICAgICAgIDog cGNpX2Rldi0+YnVzLT5hZGRyZXNzX3NwYWNlX21lbTsKKyAgICAgICAgICAgICAgICAgICAgICAg ID8gcGNpX2dldF9idXMocGNpX2RldiktPmFkZHJlc3Nfc3BhY2VfaW8KKyAgICAgICAgICAgICAg ICAgICAgICAgIDogcGNpX2dldF9idXMocGNpX2RldiktPmFkZHJlc3Nfc3BhY2VfbWVtOwogCiAg ICAgd21hc2sgPSB+KHNpemUgLSAxKTsKICAgICBpZiAocmVnaW9uX251bSA9PSBQQ0lfUk9NX1NM T1QpIHsKQEAgLTExODUsMjEgKzExODUsMjMgQEAgc3RhdGljIHZvaWQgcGNpX3VwZGF0ZV92Z2Eo UENJRGV2aWNlICpwY2lfZGV2KQogdm9pZCBwY2lfcmVnaXN0ZXJfdmdhKFBDSURldmljZSAqcGNp X2RldiwgTWVtb3J5UmVnaW9uICptZW0sCiAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5UmVn aW9uICppb19sbywgTWVtb3J5UmVnaW9uICppb19oaSkKIHsKKyAgICBQQ0lCdXMgKmJ1cyA9IHBj aV9nZXRfYnVzKHBjaV9kZXYpOworCiAgICAgYXNzZXJ0KCFwY2lfZGV2LT5oYXNfdmdhKTsKIAog ICAgIGFzc2VydChtZW1vcnlfcmVnaW9uX3NpemUobWVtKSA9PSBRRU1VX1BDSV9WR0FfTUVNX1NJ WkUpOwogICAgIHBjaV9kZXYtPnZnYV9yZWdpb25zW1FFTVVfUENJX1ZHQV9NRU1dID0gbWVtOwot ICAgIG1lbW9yeV9yZWdpb25fYWRkX3N1YnJlZ2lvbl9vdmVybGFwKHBjaV9kZXYtPmJ1cy0+YWRk cmVzc19zcGFjZV9tZW0sCisgICAgbWVtb3J5X3JlZ2lvbl9hZGRfc3VicmVnaW9uX292ZXJsYXAo YnVzLT5hZGRyZXNzX3NwYWNlX21lbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRRU1VX1BDSV9WR0FfTUVNX0JBU0UsIG1lbSwgMSk7CiAKICAgICBhc3NlcnQobWVt b3J5X3JlZ2lvbl9zaXplKGlvX2xvKSA9PSBRRU1VX1BDSV9WR0FfSU9fTE9fU0laRSk7CiAgICAg cGNpX2Rldi0+dmdhX3JlZ2lvbnNbUUVNVV9QQ0lfVkdBX0lPX0xPXSA9IGlvX2xvOwotICAgIG1l bW9yeV9yZWdpb25fYWRkX3N1YnJlZ2lvbl9vdmVybGFwKHBjaV9kZXYtPmJ1cy0+YWRkcmVzc19z cGFjZV9pbywKKyAgICBtZW1vcnlfcmVnaW9uX2FkZF9zdWJyZWdpb25fb3ZlcmxhcChidXMtPmFk ZHJlc3Nfc3BhY2VfaW8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UUVNVV9QQ0lfVkdBX0lPX0xPX0JBU0UsIGlvX2xvLCAxKTsKIAogICAgIGFzc2VydChtZW1vcnlf cmVnaW9uX3NpemUoaW9faGkpID09IFFFTVVfUENJX1ZHQV9JT19ISV9TSVpFKTsKICAgICBwY2lf ZGV2LT52Z2FfcmVnaW9uc1tRRU1VX1BDSV9WR0FfSU9fSEldID0gaW9faGk7Ci0gICAgbWVtb3J5 X3JlZ2lvbl9hZGRfc3VicmVnaW9uX292ZXJsYXAocGNpX2Rldi0+YnVzLT5hZGRyZXNzX3NwYWNl X2lvLAorICAgIG1lbW9yeV9yZWdpb25fYWRkX3N1YnJlZ2lvbl9vdmVybGFwKGJ1cy0+YWRkcmVz c19zcGFjZV9pbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRRU1V X1BDSV9WR0FfSU9fSElfQkFTRSwgaW9faGksIDEpOwogICAgIHBjaV9kZXYtPmhhc192Z2EgPSB0 cnVlOwogCkBAIC0xMjA4LDE1ICsxMjEwLDE3IEBAIHZvaWQgcGNpX3JlZ2lzdGVyX3ZnYShQQ0lE ZXZpY2UgKnBjaV9kZXYsIE1lbW9yeVJlZ2lvbiAqbWVtLAogCiB2b2lkIHBjaV91bnJlZ2lzdGVy X3ZnYShQQ0lEZXZpY2UgKnBjaV9kZXYpCiB7CisgICAgUENJQnVzICpidXMgPSBwY2lfZ2V0X2J1 cyhwY2lfZGV2KTsKKwogICAgIGlmICghcGNpX2Rldi0+aGFzX3ZnYSkgewogICAgICAgICByZXR1 cm47CiAgICAgfQogCi0gICAgbWVtb3J5X3JlZ2lvbl9kZWxfc3VicmVnaW9uKHBjaV9kZXYtPmJ1 cy0+YWRkcmVzc19zcGFjZV9tZW0sCisgICAgbWVtb3J5X3JlZ2lvbl9kZWxfc3VicmVnaW9uKGJ1 cy0+YWRkcmVzc19zcGFjZV9tZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBj aV9kZXYtPnZnYV9yZWdpb25zW1FFTVVfUENJX1ZHQV9NRU1dKTsKLSAgICBtZW1vcnlfcmVnaW9u X2RlbF9zdWJyZWdpb24ocGNpX2Rldi0+YnVzLT5hZGRyZXNzX3NwYWNlX2lvLAorICAgIG1lbW9y eV9yZWdpb25fZGVsX3N1YnJlZ2lvbihidXMtPmFkZHJlc3Nfc3BhY2VfaW8sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBjaV9kZXYtPnZnYV9yZWdpb25zW1FFTVVfUENJX1ZHQV9J T19MT10pOwotICAgIG1lbW9yeV9yZWdpb25fZGVsX3N1YnJlZ2lvbihwY2lfZGV2LT5idXMtPmFk ZHJlc3Nfc3BhY2VfaW8sCisgICAgbWVtb3J5X3JlZ2lvbl9kZWxfc3VicmVnaW9uKGJ1cy0+YWRk cmVzc19zcGFjZV9pbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNpX2Rldi0+ dmdhX3JlZ2lvbnNbUUVNVV9QQ0lfVkdBX0lPX0hJXSk7CiAgICAgcGNpX2Rldi0+aGFzX3ZnYSA9 IGZhbHNlOwogfQpAQCAtMTMxOSw3ICsxMzIzLDcgQEAgc3RhdGljIHZvaWQgcGNpX3VwZGF0ZV9t YXBwaW5ncyhQQ0lEZXZpY2UgKmQpCiAKICAgICAgICAgLyogbm93IGRvIHRoZSByZWFsIG1hcHBp bmcgKi8KICAgICAgICAgaWYgKHItPmFkZHIgIT0gUENJX0JBUl9VTk1BUFBFRCkgewotICAgICAg ICAgICAgdHJhY2VfcGNpX3VwZGF0ZV9tYXBwaW5nc19kZWwoZCwgcGNpX2J1c19udW0oZC0+YnVz KSwKKyAgICAgICAgICAgIHRyYWNlX3BjaV91cGRhdGVfbWFwcGluZ3NfZGVsKGQsIHBjaV9kZXZf YnVzX251bShkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBD SV9TTE9UKGQtPmRldmZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBDSV9GVU5DKGQtPmRldmZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGksIHItPmFkZHIsIHItPnNpemUpOwpAQCAtMTMyNyw3ICsxMzMxLDcgQEAgc3Rh dGljIHZvaWQgcGNpX3VwZGF0ZV9tYXBwaW5ncyhQQ0lEZXZpY2UgKmQpCiAgICAgICAgIH0KICAg ICAgICAgci0+YWRkciA9IG5ld19hZGRyOwogICAgICAgICBpZiAoci0+YWRkciAhPSBQQ0lfQkFS X1VOTUFQUEVEKSB7Ci0gICAgICAgICAgICB0cmFjZV9wY2lfdXBkYXRlX21hcHBpbmdzX2FkZChk LCBwY2lfYnVzX251bShkLT5idXMpLAorICAgICAgICAgICAgdHJhY2VfcGNpX3VwZGF0ZV9tYXBw aW5nc19hZGQoZCwgcGNpX2Rldl9idXNfbnVtKGQpLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZC0+ZGV2Zm4pLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMoZC0+ZGV2Zm4pLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgci0+YWRkciwgci0+c2l6ZSk7CkBAIC0x NDQ2LDkgKzE0NTAsOSBAQCBQQ0lJTlR4Um91dGUgcGNpX2RldmljZV9yb3V0ZV9pbnR4X3RvX2ly cShQQ0lEZXZpY2UgKmRldiwgaW50IHBpbikKICAgICBQQ0lCdXMgKmJ1czsKIAogICAgIGRvIHsK LSAgICAgICAgIGJ1cyA9IGRldi0+YnVzOwotICAgICAgICAgcGluID0gYnVzLT5tYXBfaXJxKGRl diwgcGluKTsKLSAgICAgICAgIGRldiA9IGJ1cy0+cGFyZW50X2RldjsKKyAgICAgICAgYnVzID0g cGNpX2dldF9idXMoZGV2KTsKKyAgICAgICAgcGluID0gYnVzLT5tYXBfaXJxKGRldiwgcGluKTsK KyAgICAgICAgZGV2ID0gYnVzLT5wYXJlbnRfZGV2OwogICAgIH0gd2hpbGUgKGRldik7CiAKICAg ICBpZiAoIWJ1cy0+cm91dGVfaW50eF90b19pcnEpIHsKQEAgLTIwMTgsNyArMjAyMiw2IEBAIHN0 YXRpYyB2b2lkIHBjaV9xZGV2X3JlYWxpemUoRGV2aWNlU3RhdGUgKnFkZXYsIEVycm9yICoqZXJy cCkKICAgICBQQ0lEZXZpY2UgKnBjaV9kZXYgPSAoUENJRGV2aWNlICopcWRldjsKICAgICBQQ0lE ZXZpY2VDbGFzcyAqcGMgPSBQQ0lfREVWSUNFX0dFVF9DTEFTUyhwY2lfZGV2KTsKICAgICBFcnJv ciAqbG9jYWxfZXJyID0gTlVMTDsKLSAgICBQQ0lCdXMgKmJ1czsKICAgICBib29sIGlzX2RlZmF1 bHRfcm9tOwogCiAgICAgLyogaW5pdGlhbGl6ZSBjYXBfcHJlc2VudCBmb3IgcGNpX2lzX2V4cHJl c3MoKSBhbmQgcGNpX2NvbmZpZ19zaXplKCkgKi8KQEAgLTIwMjYsOCArMjAyOSw3IEBAIHN0YXRp YyB2b2lkIHBjaV9xZGV2X3JlYWxpemUoRGV2aWNlU3RhdGUgKnFkZXYsIEVycm9yICoqZXJycCkK ICAgICAgICAgcGNpX2Rldi0+Y2FwX3ByZXNlbnQgfD0gUUVNVV9QQ0lfQ0FQX0VYUFJFU1M7CiAg ICAgfQogCi0gICAgYnVzID0gUENJX0JVUyhxZGV2X2dldF9wYXJlbnRfYnVzKHFkZXYpKTsKLSAg ICBwY2lfZGV2ID0gZG9fcGNpX3JlZ2lzdGVyX2RldmljZShwY2lfZGV2LCBidXMsCisgICAgcGNp X2RldiA9IGRvX3BjaV9yZWdpc3Rlcl9kZXZpY2UocGNpX2RldiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvYmplY3RfZ2V0X3R5cGVuYW1lKE9CSkVDVChxZGV2KSksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNpX2Rldi0+ZGV2Zm4sIGVycnAp OwogICAgIGlmIChwY2lfZGV2ID09IE5VTEwpCkBAIC0yMzIwLDcgKzIzMjIsNyBAQCBpbnQgcGNp X2FkZF9jYXBhYmlsaXR5KFBDSURldmljZSAqcGRldiwgdWludDhfdCBjYXBfaWQsCiAgICAgICAg ICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiJXM6JTAyeDolMDJ4LiV4ICIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJBdHRlbXB0IHRvIGFkZCBQQ0kgY2FwYWJpbGl0eSAleCBhdCBvZmZz ZXQgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiV4IG92ZXJsYXBzIGV4aXN0aW5nIGNh cGFiaWxpdHkgJXggYXQgb2Zmc2V0ICV4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBj aV9yb290X2J1c19wYXRoKHBkZXYpLCBwY2lfYnVzX251bShwZGV2LT5idXMpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGNpX3Jvb3RfYnVzX3BhdGgocGRldiksIHBjaV9kZXZfYnVzX251 bShwZGV2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBkZXYtPmRldmZu KSwgUENJX0ZVTkMocGRldi0+ZGV2Zm4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fw X2lkLCBvZmZzZXQsIG92ZXJsYXBwaW5nX2NhcCwgaSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7CkBAIC0yMzg0LDcgKzIzODYsNyBAQCBzdGF0aWMgdm9pZCBwY2lidXNfZGV2X3By aW50KE1vbml0b3IgKm1vbiwgRGV2aWNlU3RhdGUgKmRldiwgaW50IGluZGVudCkKIAogICAgIG1v bml0b3JfcHJpbnRmKG1vbiwgIiUqc2NsYXNzICVzLCBhZGRyICUwMng6JTAyeC4leCwgIgogICAg ICAgICAgICAgICAgICAgICJwY2kgaWQgJTA0eDolMDR4IChzdWIgJTA0eDolMDR4KVxuIiwKLSAg ICAgICAgICAgICAgICAgICBpbmRlbnQsICIiLCBjdHh0LCBwY2lfYnVzX251bShkLT5idXMpLAor ICAgICAgICAgICAgICAgICAgIGluZGVudCwgIiIsIGN0eHQsIHBjaV9kZXZfYnVzX251bShkKSwK ICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkLT5kZXZmbiksIFBDSV9GVU5DKGQtPmRldmZu KSwKICAgICAgICAgICAgICAgICAgICBwY2lfZ2V0X3dvcmQoZC0+Y29uZmlnICsgUENJX1ZFTkRP Ul9JRCksCiAgICAgICAgICAgICAgICAgICAgcGNpX2dldF93b3JkKGQtPmNvbmZpZyArIFBDSV9E RVZJQ0VfSUQpLApAQCAtMjQ2Nyw3ICsyNDY5LDcgQEAgc3RhdGljIGNoYXIgKnBjaWJ1c19nZXRf ZGV2X3BhdGgoRGV2aWNlU3RhdGUgKmRldikKIAogICAgIC8qIENhbGN1bGF0ZSAjIG9mIHNsb3Rz IG9uIHBhdGggYmV0d2VlbiBkZXZpY2UgYW5kIHJvb3QuICovOwogICAgIHNsb3RfZGVwdGggPSAw OwotICAgIGZvciAodCA9IGQ7IHQ7IHQgPSB0LT5idXMtPnBhcmVudF9kZXYpIHsKKyAgICBmb3Ig KHQgPSBkOyB0OyB0ID0gcGNpX2dldF9idXModCktPnBhcmVudF9kZXYpIHsKICAgICAgICAgKytz bG90X2RlcHRoOwogICAgIH0KIApAQCAtMjQ4Miw3ICsyNDg0LDcgQEAgc3RhdGljIGNoYXIgKnBj aWJ1c19nZXRfZGV2X3BhdGgoRGV2aWNlU3RhdGUgKmRldikKICAgICAvKiBGaWxsIGluIHNsb3Qg bnVtYmVycy4gV2Ugd2FsayB1cCBmcm9tIGRldmljZSB0byByb290LCBzbyBuZWVkIHRvIHByaW50 CiAgICAgICogdGhlbSBpbiB0aGUgcmV2ZXJzZSBvcmRlciwgbGFzdCB0byBmaXJzdC4gKi8KICAg ICBwID0gcGF0aCArIHBhdGhfbGVuOwotICAgIGZvciAodCA9IGQ7IHQ7IHQgPSB0LT5idXMtPnBh cmVudF9kZXYpIHsKKyAgICBmb3IgKHQgPSBkOyB0OyB0ID0gcGNpX2dldF9idXModCktPnBhcmVu dF9kZXYpIHsKICAgICAgICAgcCAtPSBzbG90X2xlbjsKICAgICAgICAgcyA9IHNucHJpbnRmKHNs b3QsIHNpemVvZiBzbG90LCAiOiUwMnguJXgiLAogICAgICAgICAgICAgICAgICAgICAgUENJX1NM T1QodC0+ZGV2Zm4pLCBQQ0lfRlVOQyh0LT5kZXZmbikpOwpAQCAtMjUzMCwxMiArMjUzMiwxMiBA QCBpbnQgcGNpX3FkZXZfZmluZF9kZXZpY2UoY29uc3QgY2hhciAqaWQsIFBDSURldmljZSAqKnBk ZXYpCiAKIE1lbW9yeVJlZ2lvbiAqcGNpX2FkZHJlc3Nfc3BhY2UoUENJRGV2aWNlICpkZXYpCiB7 Ci0gICAgcmV0dXJuIGRldi0+YnVzLT5hZGRyZXNzX3NwYWNlX21lbTsKKyAgICByZXR1cm4gcGNp X2dldF9idXMoZGV2KS0+YWRkcmVzc19zcGFjZV9tZW07CiB9CiAKIE1lbW9yeVJlZ2lvbiAqcGNp X2FkZHJlc3Nfc3BhY2VfaW8oUENJRGV2aWNlICpkZXYpCiB7Ci0gICAgcmV0dXJuIGRldi0+YnVz LT5hZGRyZXNzX3NwYWNlX2lvOworICAgIHJldHVybiBwY2lfZ2V0X2J1cyhkZXYpLT5hZGRyZXNz X3NwYWNlX2lvOwogfQogCiBzdGF0aWMgdm9pZCBwY2lfZGV2aWNlX2NsYXNzX2luaXQoT2JqZWN0 Q2xhc3MgKmtsYXNzLCB2b2lkICpkYXRhKQpAQCAtMjU2MywxMSArMjU2NSwxMSBAQCBzdGF0aWMg dm9pZCBwY2lfZGV2aWNlX2NsYXNzX2Jhc2VfaW5pdChPYmplY3RDbGFzcyAqa2xhc3MsIHZvaWQg KmRhdGEpCiAKIEFkZHJlc3NTcGFjZSAqcGNpX2RldmljZV9pb21tdV9hZGRyZXNzX3NwYWNlKFBD SURldmljZSAqZGV2KQogewotICAgIFBDSUJ1cyAqYnVzID0gUENJX0JVUyhkZXYtPmJ1cyk7Cisg ICAgUENJQnVzICpidXMgPSBwY2lfZ2V0X2J1cyhkZXYpOwogICAgIFBDSUJ1cyAqaW9tbXVfYnVz ID0gYnVzOwogCiAgICAgd2hpbGUoaW9tbXVfYnVzICYmICFpb21tdV9idXMtPmlvbW11X2ZuICYm IGlvbW11X2J1cy0+cGFyZW50X2RldikgewotICAgICAgICBpb21tdV9idXMgPSBQQ0lfQlVTKGlv bW11X2J1cy0+cGFyZW50X2Rldi0+YnVzKTsKKyAgICAgICAgaW9tbXVfYnVzID0gcGNpX2dldF9i dXMoaW9tbXVfYnVzLT5wYXJlbnRfZGV2KTsKICAgICB9CiAgICAgaWYgKGlvbW11X2J1cyAmJiBp b21tdV9idXMtPmlvbW11X2ZuKSB7CiAgICAgICAgIHJldHVybiBpb21tdV9idXMtPmlvbW11X2Zu KGJ1cywgaW9tbXVfYnVzLT5pb21tdV9vcGFxdWUsIGRldi0+ZGV2Zm4pOwpAQCAtMjYzOCw3ICsy NjQwLDcgQEAgdm9pZCBwY2lfYnVzX2dldF93NjRfcmFuZ2UoUENJQnVzICpidXMsIFJhbmdlICpy YW5nZSkKIAogc3RhdGljIGJvb2wgcGNpZV9oYXNfdXBzdHJlYW1fcG9ydChQQ0lEZXZpY2UgKmRl dikKIHsKLSAgICBQQ0lEZXZpY2UgKnBhcmVudF9kZXYgPSBwY2lfYnJpZGdlX2dldF9kZXZpY2Uo ZGV2LT5idXMpOworICAgIFBDSURldmljZSAqcGFyZW50X2RldiA9IHBjaV9icmlkZ2VfZ2V0X2Rl dmljZShwY2lfZ2V0X2J1cyhkZXYpKTsKIAogICAgIC8qIERldmljZSBhc3NvY2lhdGVkIHdpdGgg YW4gdXBzdHJlYW0gcG9ydC4KICAgICAgKiBBcyB0aGVyZSBhcmUgc2V2ZXJhbCB0eXBlcyBvZiB0 aGVzZSwgaXQncyBlYXNpZXIgdG8gY2hlY2sgdGhlCkBAIC0yNjU0LDEyICsyNjU2LDE0IEBAIHN0 YXRpYyBib29sIHBjaWVfaGFzX3Vwc3RyZWFtX3BvcnQoUENJRGV2aWNlICpkZXYpCiAKIFBDSURl dmljZSAqcGNpX2dldF9mdW5jdGlvbl8wKFBDSURldmljZSAqcGNpX2RldikKIHsKKyAgICBQQ0lC dXMgKmJ1cyA9IHBjaV9nZXRfYnVzKHBjaV9kZXYpOworCiAgICAgaWYocGNpZV9oYXNfdXBzdHJl YW1fcG9ydChwY2lfZGV2KSkgewogICAgICAgICAvKiBXaXRoIGFuIHVwc3RyZWFtIFBDSWUgcG9y dCwgd2Ugb25seSBzdXBwb3J0IDEgZGV2aWNlIGF0IHNsb3QgMCAqLwotICAgICAgICByZXR1cm4g cGNpX2Rldi0+YnVzLT5kZXZpY2VzWzBdOworICAgICAgICByZXR1cm4gYnVzLT5kZXZpY2VzWzBd OwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8qIE90aGVyIGJ1cyB0eXBlcyBtaWdodCBzdXBwb3J0 IG11bHRpcGxlIGRldmljZXMgYXQgc2xvdHMgMC0zMSAqLwotICAgICAgICByZXR1cm4gcGNpX2Rl di0+YnVzLT5kZXZpY2VzW1BDSV9ERVZGTihQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiksIDApXTsK KyAgICAgICAgcmV0dXJuIGJ1cy0+ZGV2aWNlc1tQQ0lfREVWRk4oUENJX1NMT1QocGNpX2Rldi0+ ZGV2Zm4pLCAwKV07CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9ody9wY2kvcGNpX2JyaWRnZS5j IGIvaHcvcGNpL3BjaV9icmlkZ2UuYwppbmRleCBhNDdkMjU3Li5iMmU1MGMzIDEwMDY0NAotLS0g YS9ody9wY2kvcGNpX2JyaWRnZS5jCisrKyBiL2h3L3BjaS9wY2lfYnJpZGdlLmMKQEAgLTE4Myw3 ICsxODMsNyBAQCBzdGF0aWMgdm9pZCBwY2lfYnJpZGdlX2luaXRfdmdhX2FsaWFzZXMoUENJQnJp ZGdlICpiciwgUENJQnVzICpwYXJlbnQsCiBzdGF0aWMgUENJQnJpZGdlV2luZG93cyAqcGNpX2Jy aWRnZV9yZWdpb25faW5pdChQQ0lCcmlkZ2UgKmJyKQogewogICAgIFBDSURldmljZSAqcGQgPSBQ Q0lfREVWSUNFKGJyKTsKLSAgICBQQ0lCdXMgKnBhcmVudCA9IHBkLT5idXM7CisgICAgUENJQnVz ICpwYXJlbnQgPSBwY2lfZ2V0X2J1cyhwZCk7CiAgICAgUENJQnJpZGdlV2luZG93cyAqdyA9IGdf bmV3KFBDSUJyaWRnZVdpbmRvd3MsIDEpOwogICAgIHVpbnQxNl90IGNtZCA9IHBjaV9nZXRfd29y ZChwZC0+Y29uZmlnICsgUENJX0NPTU1BTkQpOwogCkBAIC0yMTQsNyArMjE0LDcgQEAgc3RhdGlj IFBDSUJyaWRnZVdpbmRvd3MgKnBjaV9icmlkZ2VfcmVnaW9uX2luaXQoUENJQnJpZGdlICpicikK IHN0YXRpYyB2b2lkIHBjaV9icmlkZ2VfcmVnaW9uX2RlbChQQ0lCcmlkZ2UgKmJyLCBQQ0lCcmlk Z2VXaW5kb3dzICp3KQogewogICAgIFBDSURldmljZSAqcGQgPSBQQ0lfREVWSUNFKGJyKTsKLSAg ICBQQ0lCdXMgKnBhcmVudCA9IHBkLT5idXM7CisgICAgUENJQnVzICpwYXJlbnQgPSBwY2lfZ2V0 X2J1cyhwZCk7CiAKICAgICBtZW1vcnlfcmVnaW9uX2RlbF9zdWJyZWdpb24ocGFyZW50LT5hZGRy ZXNzX3NwYWNlX2lvLCAmdy0+YWxpYXNfaW8pOwogICAgIG1lbW9yeV9yZWdpb25fZGVsX3N1YnJl Z2lvbihwYXJlbnQtPmFkZHJlc3Nfc3BhY2VfbWVtLCAmdy0+YWxpYXNfbWVtKTsKQEAgLTMzOSw3 ICszMzksNyBAQCB2b2lkIHBjaV9icmlkZ2VfcmVzZXQoRGV2aWNlU3RhdGUgKnFkZXYpCiAvKiBk ZWZhdWx0IHFkZXYgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gZm9yIFBDSS10by1QQ0kgYnJpZGdl ICovCiB2b2lkIHBjaV9icmlkZ2VfaW5pdGZuKFBDSURldmljZSAqZGV2LCBjb25zdCBjaGFyICp0 eXBlbmFtZSkKIHsKLSAgICBQQ0lCdXMgKnBhcmVudCA9IGRldi0+YnVzOworICAgIFBDSUJ1cyAq cGFyZW50ID0gcGNpX2dldF9idXMoZGV2KTsKICAgICBQQ0lCcmlkZ2UgKmJyID0gUENJX0JSSURH RShkZXYpOwogICAgIFBDSUJ1cyAqc2VjX2J1cyA9ICZici0+c2VjX2J1czsKIApkaWZmIC0tZ2l0 IGEvaHcvcGNpL3BjaWUuYyBiL2h3L3BjaS9wY2llLmMKaW5kZXggMzIxOTFmMi4uNmM5MWJkNCAx MDA2NDQKLS0tIGEvaHcvcGNpL3BjaWUuYworKysgYi9ody9wY2kvcGNpZS5jCkBAIC0xNTUsNyAr MTU1LDggQEAgcGNpZV9lbmRwb2ludF9jYXBfY29tbW9uX2luaXQoUENJRGV2aWNlICpkZXYsIHVp bnQ4X3Qgb2Zmc2V0LCB1aW50OF90IGNhcF9zaXplKQogICAgICAqIGEgcmVndWxhciBFbmRwb2lu dCB0eXBlIGlzIGV4cG9zZWQgb24gYSByb290IGNvbXBsZXguICBUaGVzZQogICAgICAqIHNob3Vs ZCBpbnN0ZWFkIGJlIFJvb3QgQ29tcGxleCBJbnRlZ3JhdGVkIEVuZHBvaW50cy4KICAgICAgKi8K LSAgICBpZiAocGNpX2J1c19pc19leHByZXNzKGRldi0+YnVzKSAmJiBwY2lfYnVzX2lzX3Jvb3Qo ZGV2LT5idXMpKSB7CisgICAgaWYgKHBjaV9idXNfaXNfZXhwcmVzcyhwY2lfZ2V0X2J1cyhkZXYp KQorICAgICAgICAmJiBwY2lfYnVzX2lzX3Jvb3QocGNpX2dldF9idXMoZGV2KSkpIHsKICAgICAg ICAgdHlwZSA9IFBDSV9FWFBfVFlQRV9SQ19FTkQ7CiAgICAgfQogCkBAIC0zNjksNyArMzcwLDcg QEAgdm9pZCBwY2llX2NhcF9zbG90X2hvdF91bnBsdWdfcmVxdWVzdF9jYihIb3RwbHVnSGFuZGxl ciAqaG90cGx1Z19kZXYsCiB7CiAgICAgdWludDhfdCAqZXhwX2NhcDsKICAgICBQQ0lEZXZpY2Ug KnBjaV9kZXYgPSBQQ0lfREVWSUNFKGRldik7Ci0gICAgUENJQnVzICpidXMgPSBwY2lfZGV2LT5i dXM7CisgICAgUENJQnVzICpidXMgPSBwY2lfZ2V0X2J1cyhwY2lfZGV2KTsKIAogICAgIHBjaWVf Y2FwX3Nsb3RfaG90cGx1Z19jb21tb24oUENJX0RFVklDRShob3RwbHVnX2RldiksIGRldiwgJmV4 cF9jYXAsIGVycnApOwogCmRpZmYgLS1naXQgYS9ody9wY2kvcGNpZV9hZXIuYyBiL2h3L3BjaS9w Y2llX2Flci5jCmluZGV4IDIxZjg5NmEuLmIwMDliZTcgMTAwNjQ0Ci0tLSBhL2h3L3BjaS9wY2ll X2Flci5jCisrKyBiL2h3L3BjaS9wY2llX2Flci5jCkBAIC00MDksNyArNDA5LDcgQEAgc3RhdGlj IHZvaWQgcGNpZV9hZXJfbXNnKFBDSURldmljZSAqZGV2LCBjb25zdCBQQ0lFQUVSTXNnICptc2cp CiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAg ICBkZXYgPSBwY2lfYnJpZGdlX2dldF9kZXZpY2UoZGV2LT5idXMpOworICAgICAgICBkZXYgPSBw Y2lfYnJpZGdlX2dldF9kZXZpY2UocGNpX2dldF9idXMoZGV2KSk7CiAgICAgfQogfQogCmRpZmYg LS1naXQgYS9ody9wcGMvc3BhcHJfcGNpLmMgYi9ody9wcGMvc3BhcHJfcGNpLmMKaW5kZXggOTI2 MjY4Mi4uZjM4YmUyZiAxMDA2NDQKLS0tIGEvaHcvcHBjL3NwYXByX3BjaS5jCisrKyBiL2h3L3Bw Yy9zcGFwcl9wY2kuYwpAQCAtNTA1LDcgKzUwNSw3IEBAIHN0YXRpYyB2b2lkIHJ0YXNfaWJtX2dl dF9jb25maWdfYWRkcl9pbmZvMihQb3dlclBDQ1BVICpjcHUsCiAgICAgICAgICAgICBnb3RvIHBh cmFtX2Vycm9yX2V4aXQ7CiAgICAgICAgIH0KIAotICAgICAgICBydGFzX3N0KHJldHMsIDEsIChw Y2lfYnVzX251bShwZGV2LT5idXMpIDw8IDE2KSArIDEpOworICAgICAgICBydGFzX3N0KHJldHMs IDEsIChwY2lfYnVzX251bShwY2lfZ2V0X2J1cyhwZGV2KSkgPDwgMTYpICsgMSk7CiAgICAgICAg IGJyZWFrOwogICAgIGNhc2UgUlRBU19HRVRfUEVfTU9ERToKICAgICAgICAgcnRhc19zdChyZXRz LCAxLCBSVEFTX1BFX01PREVfU0hBUkVEKTsKZGlmZiAtLWdpdCBhL2h3L3MzOTB4L3MzOTAtcGNp LWJ1cy5jIGIvaHcvczM5MHgvczM5MC1wY2ktYnVzLmMKaW5kZXggZjY0YWQ1OS4uN2Q5YzY1ZSAx MDA2NDQKLS0tIGEvaHcvczM5MHgvczM5MC1wY2ktYnVzLmMKKysrIGIvaHcvczM5MHgvczM5MC1w Y2ktYnVzLmMKQEAgLTY4MCwxMCArNjgwLDEwIEBAIHN0YXRpYyB2b2lkIHMzOTBfcGNpaG9zdF9o b3RfcGx1ZyhIb3RwbHVnSGFuZGxlciAqaG90cGx1Z19kZXYsCiAgICAgICAgICAgICBzLT5idXNf bm8gKz0gMTsKICAgICAgICAgICAgIHBjaV9kZWZhdWx0X3dyaXRlX2NvbmZpZyhwZGV2LCBQQ0lf U0VDT05EQVJZX0JVUywgcy0+YnVzX25vLCAxKTsKICAgICAgICAgICAgIGRvIHsKLSAgICAgICAg ICAgICAgICBwZGV2ID0gcGRldi0+YnVzLT5wYXJlbnRfZGV2OworICAgICAgICAgICAgICAgIHBk ZXYgPSBwY2lfZ2V0X2J1cyhwZGV2KS0+cGFyZW50X2RldjsKICAgICAgICAgICAgICAgICBwY2lf ZGVmYXVsdF93cml0ZV9jb25maWcocGRldiwgUENJX1NVQk9SRElOQVRFX0JVUywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+YnVzX25vLCAxKTsKLSAgICAgICAg ICAgIH0gd2hpbGUgKHBkZXYtPmJ1cyAmJiBwY2lfYnVzX251bShwZGV2LT5idXMpKTsKKyAgICAg ICAgICAgIH0gd2hpbGUgKHBjaV9nZXRfYnVzKHBkZXYpICYmIHBjaV9kZXZfYnVzX251bShwZGV2 KSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG9iamVjdF9keW5hbWljX2Nhc3QoT0JKRUNU KGRldiksIFRZUEVfUENJX0RFVklDRSkpIHsKICAgICAgICAgcGRldiA9IFBDSV9ERVZJQ0UoZGV2 KTsKQEAgLTcxMyw3ICs3MTMsNyBAQCBzdGF0aWMgdm9pZCBzMzkwX3BjaWhvc3RfaG90X3BsdWco SG90cGx1Z0hhbmRsZXIgKmhvdHBsdWdfZGV2LAogICAgICAgICB9CiAKICAgICAgICAgcGJkZXYt PnBkZXYgPSBwZGV2OwotICAgICAgICBwYmRldi0+aW9tbXUgPSBzMzkwX3BjaV9nZXRfaW9tbXUo cywgcGRldi0+YnVzLCBwZGV2LT5kZXZmbik7CisgICAgICAgIHBiZGV2LT5pb21tdSA9IHMzOTBf cGNpX2dldF9pb21tdShzLCBwY2lfZ2V0X2J1cyhwZGV2KSwgcGRldi0+ZGV2Zm4pOwogICAgICAg ICBwYmRldi0+aW9tbXUtPnBiZGV2ID0gcGJkZXY7CiAgICAgICAgIHBiZGV2LT5zdGF0ZSA9IFpQ Q0lfRlNfRElTQUJMRUQ7CiAKQEAgLTgwNyw3ICs4MDcsNyBAQCBzdGF0aWMgdm9pZCBzMzkwX3Bj aWhvc3RfaG90X3VucGx1ZyhIb3RwbHVnSGFuZGxlciAqaG90cGx1Z19kZXYsCiAKICAgICBzMzkw X3BjaV9nZW5lcmF0ZV9wbHVnX2V2ZW50KEhQX0VWRU5UX1NUQU5EQllfVE9fUkVTRVJWRUQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYmRldi0+ZmgsIHBiZGV2LT5maWQpOwot ICAgIGJ1cyA9IHBjaV9kZXYtPmJ1czsKKyAgICBidXMgPSBwY2lfZ2V0X2J1cyhwY2lfZGV2KTsK ICAgICBkZXZmbiA9IHBjaV9kZXYtPmRldmZuOwogICAgIG9iamVjdF91bnBhcmVudChPQkpFQ1Qo cGNpX2RldikpOwogICAgIHMzOTBfcGNpX21zaXhfZnJlZShwYmRldik7CmRpZmYgLS1naXQgYS9o dy9zY3NpL3Ztd19wdnNjc2kuYyBiL2h3L3Njc2kvdm13X3B2c2NzaS5jCmluZGV4IGQ1NjRlNWMu LjI3NzQ5YzAgMTAwNjQ0Ci0tLSBhL2h3L3Njc2kvdm13X3B2c2NzaS5jCisrKyBiL2h3L3Njc2kv dm13X3B2c2NzaS5jCkBAIC0xMTMzLDcgKzExMzMsNyBAQCBwdnNjc2lfcmVhbGl6ZWZuKFBDSURl dmljZSAqcGNpX2RldiwgRXJyb3IgKiplcnJwKQogCiAgICAgcHZzY3NpX2luaXRfbXNpKHMpOwog Ci0gICAgaWYgKHBjaV9pc19leHByZXNzKHBjaV9kZXYpICYmIHBjaV9idXNfaXNfZXhwcmVzcyhw Y2lfZGV2LT5idXMpKSB7CisgICAgaWYgKHBjaV9pc19leHByZXNzKHBjaV9kZXYpICYmIHBjaV9i dXNfaXNfZXhwcmVzcyhwY2lfZ2V0X2J1cyhwY2lfZGV2KSkpIHsKICAgICAgICAgcGNpZV9lbmRw b2ludF9jYXBfaW5pdChwY2lfZGV2LCBQVlNDU0lfRVhQX0VQX09GRlNFVCk7CiAgICAgfQogCmRp ZmYgLS1naXQgYS9ody91c2IvaGNkLXhoY2kuYyBiL2h3L3VzYi9oY2QteGhjaS5jCmluZGV4IGFm M2E5ZDguLjIyOGU4MmIgMTAwNjQ0Ci0tLSBhL2h3L3VzYi9oY2QteGhjaS5jCisrKyBiL2h3L3Vz Yi9oY2QteGhjaS5jCkBAIC0zNDE2LDcgKzM0MTYsNyBAQCBzdGF0aWMgdm9pZCB1c2JfeGhjaV9y ZWFsaXplKHN0cnVjdCBQQ0lEZXZpY2UgKmRldiwgRXJyb3IgKiplcnJwKQogICAgICAgICAgICAg ICAgICAgICAgUENJX0JBU0VfQUREUkVTU19TUEFDRV9NRU1PUll8UENJX0JBU0VfQUREUkVTU19N RU1fVFlQRV82NCwKICAgICAgICAgICAgICAgICAgICAgICZ4aGNpLT5tZW0pOwogCi0gICAgaWYg KHBjaV9idXNfaXNfZXhwcmVzcyhkZXYtPmJ1cykgfHwKKyAgICBpZiAocGNpX2J1c19pc19leHBy ZXNzKHBjaV9nZXRfYnVzKGRldikpIHx8CiAgICAgICAgIHhoY2lfZ2V0X2ZsYWcoeGhjaSwgWEhD SV9GTEFHX0ZPUkNFX1BDSUVfRU5EQ0FQKSkgewogICAgICAgICByZXQgPSBwY2llX2VuZHBvaW50 X2NhcF9pbml0KGRldiwgMHhhMCk7CiAgICAgICAgIGFzc2VydChyZXQgPiAwKTsKZGlmZiAtLWdp dCBhL2h3L3ZmaW8vcGNpLmMgYi9ody92ZmlvL3BjaS5jCmluZGV4IGM5NzdlZTMuLjJjNzEyOTUg MTAwNjQ0Ci0tLSBhL2h3L3ZmaW8vcGNpLmMKKysrIGIvaHcvdmZpby9wY2kuYwpAQCAtMTY1NCw4 ICsxNjU0LDggQEAgc3RhdGljIGludCB2ZmlvX3NldHVwX3BjaWVfY2FwKFZGSU9QQ0lEZXZpY2Ug KnZkZXYsIGludCBwb3MsIHVpbnQ4X3Qgc2l6ZSwKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAg ICAgfQogCi0gICAgaWYgKCFwY2lfYnVzX2lzX2V4cHJlc3ModmRldi0+cGRldi5idXMpKSB7Ci0g ICAgICAgIFBDSUJ1cyAqYnVzID0gdmRldi0+cGRldi5idXM7CisgICAgaWYgKCFwY2lfYnVzX2lz X2V4cHJlc3MocGNpX2dldF9idXMoJnZkZXYtPnBkZXYpKSkgeworICAgICAgICBQQ0lCdXMgKmJ1 cyA9IHBjaV9nZXRfYnVzKCZ2ZGV2LT5wZGV2KTsKICAgICAgICAgUENJRGV2aWNlICpicmlkZ2U7 CiAKICAgICAgICAgLyoKQEAgLTE2ODAsMTQgKzE2ODAsMTQgQEAgc3RhdGljIGludCB2ZmlvX3Nl dHVwX3BjaWVfY2FwKFZGSU9QQ0lEZXZpY2UgKnZkZXYsIGludCBwb3MsIHVpbnQ4X3Qgc2l6ZSwK ICAgICAgICAgICovCiAgICAgICAgIHdoaWxlICghcGNpX2J1c19pc19yb290KGJ1cykpIHsKICAg ICAgICAgICAgIGJyaWRnZSA9IHBjaV9icmlkZ2VfZ2V0X2RldmljZShidXMpOwotICAgICAgICAg ICAgYnVzID0gYnJpZGdlLT5idXM7CisgICAgICAgICAgICBidXMgPSBwY2lfZ2V0X2J1cyhicmlk Z2UpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBjaV9idXNfaXNfZXhwcmVzcyhidXMpKSB7 CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgfSBlbHNlIGlmIChwY2lf YnVzX2lzX3Jvb3QodmRldi0+cGRldi5idXMpKSB7CisgICAgfSBlbHNlIGlmIChwY2lfYnVzX2lz X3Jvb3QocGNpX2dldF9idXMoJnZkZXYtPnBkZXYpKSkgewogICAgICAgICAvKgogICAgICAgICAg KiBPbiBhIFJvb3QgQ29tcGxleCBidXMgRW5kcG9pbnRzIGJlY29tZSBSb290IENvbXBsZXggSW50 ZWdyYXRlZAogICAgICAgICAgKiBFbmRwb2ludHMsIHdoaWNoIGNoYW5nZXMgdGhlIHR5cGUgYW5k IGNsZWFycyB0aGUgTE5LICYgTE5LMiBmaWVsZHMuCkBAIC0xODkwLDcgKzE4OTAsNyBAQCBzdGF0 aWMgdm9pZCB2ZmlvX2FkZF9leHRfY2FwKFZGSU9QQ0lEZXZpY2UgKnZkZXYpCiAgICAgdWludDhf dCAqY29uZmlnOwogCiAgICAgLyogT25seSBhZGQgZXh0ZW5kZWQgY2FwcyBpZiB3ZSBoYXZlIHRo ZW0gYW5kIHRoZSBndWVzdCBjYW4gc2VlIHRoZW0gKi8KLSAgICBpZiAoIXBjaV9pc19leHByZXNz KHBkZXYpIHx8ICFwY2lfYnVzX2lzX2V4cHJlc3MocGRldi0+YnVzKSB8fAorICAgIGlmICghcGNp X2lzX2V4cHJlc3MocGRldikgfHwgIXBjaV9idXNfaXNfZXhwcmVzcyhwY2lfZ2V0X2J1cyhwZGV2 KSkgfHwKICAgICAgICAgIXBjaV9nZXRfbG9uZyhwZGV2LT5jb25maWcgKyBQQ0lfQ09ORklHX1NQ QUNFX1NJWkUpKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9ody92aXJ0 aW8vdmlydGlvLXBjaS5jIGIvaHcvdmlydGlvL3ZpcnRpby1wY2kuYwppbmRleCBlOTI4MzdjLi40 MmIzMWZiIDEwMDY0NAotLS0gYS9ody92aXJ0aW8vdmlydGlvLXBjaS5jCisrKyBiL2h3L3ZpcnRp by92aXJ0aW8tcGNpLmMKQEAgLTE3MDgsOCArMTcwOCw4IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19w Y2lfcmVhbGl6ZShQQ0lEZXZpY2UgKnBjaV9kZXYsIEVycm9yICoqZXJycCkKIHsKICAgICBWaXJ0 SU9QQ0lQcm94eSAqcHJveHkgPSBWSVJUSU9fUENJKHBjaV9kZXYpOwogICAgIFZpcnRpb1BDSUNs YXNzICprID0gVklSVElPX1BDSV9HRVRfQ0xBU1MocGNpX2Rldik7Ci0gICAgYm9vbCBwY2llX3Bv cnQgPSBwY2lfYnVzX2lzX2V4cHJlc3MocGNpX2Rldi0+YnVzKSAmJgotICAgICAgICAgICAgICAg ICAgICAgIXBjaV9idXNfaXNfcm9vdChwY2lfZGV2LT5idXMpOworICAgIGJvb2wgcGNpZV9wb3J0 ID0gcGNpX2J1c19pc19leHByZXNzKHBjaV9nZXRfYnVzKHBjaV9kZXYpKSAmJgorICAgICAgICAg ICAgICAgICAgICAgIXBjaV9idXNfaXNfcm9vdChwY2lfZ2V0X2J1cyhwY2lfZGV2KSk7CiAKICAg ICBpZiAoa3ZtX2VuYWJsZWQoKSAmJiAha3ZtX2hhc19tYW55X2lvZXZlbnRmZHMoKSkgewogICAg ICAgICBwcm94eS0+ZmxhZ3MgJj0gflZJUlRJT19QQ0lfRkxBR19VU0VfSU9FVkVOVEZEOwpkaWZm IC0tZ2l0IGEvaHcveGVuL3hlbl9wdC5jIGIvaHcveGVuL3hlbl9wdC5jCmluZGV4IDYyMzZmMGMu Ljc1MmI2ZjYgMTAwNjQ0Ci0tLSBhL2h3L3hlbi94ZW5fcHQuYworKysgYi9ody94ZW4veGVuX3B0 LmMKQEAgLTYwMiw3ICs2MDIsNyBAQCBzdGF0aWMgdm9pZCB4ZW5fcHRfcmVnaW9uX3VwZGF0ZShY ZW5QQ0lQYXNzdGhyb3VnaFN0YXRlICpzLAogICAgIH0KIAogICAgIGFyZ3MudHlwZSA9IGQtPmlv X3JlZ2lvbnNbYmFyXS50eXBlOwotICAgIHBjaV9mb3JfZWFjaF9kZXZpY2UoZC0+YnVzLCBwY2lf YnVzX251bShkLT5idXMpLAorICAgIHBjaV9mb3JfZWFjaF9kZXZpY2UocGNpX2dldF9idXMoZCks IHBjaV9kZXZfYnVzX251bShkKSwKICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wdF9jaGVj a19iYXJfb3ZlcmxhcCwgJmFyZ3MpOwogICAgIGlmIChhcmdzLnJjKSB7CiAgICAgICAgIFhFTl9Q VF9XQVJOKGQsICJSZWdpb246ICVkIChhZGRyOiAlIyJGTVRfUENJQlVTCkBAIC02OTUsNyArNjk1 LDcgQEAgeGVuX2lnZF9wYXNzdGhyb3VnaF9pc2FfYnJpZGdlX2NyZWF0ZShYZW5QQ0lQYXNzdGhy b3VnaFN0YXRlICpzLAogICAgIFBDSURldmljZSAqZCA9ICZzLT5kZXY7CiAKICAgICBncHVfZGV2 X2lkID0gZGV2LT5kZXZpY2VfaWQ7Ci0gICAgaWdkX3Bhc3N0aHJvdWdoX2lzYV9icmlkZ2VfY3Jl YXRlKGQtPmJ1cywgZ3B1X2Rldl9pZCk7CisgICAgaWdkX3Bhc3N0aHJvdWdoX2lzYV9icmlkZ2Vf Y3JlYXRlKHBjaV9nZXRfYnVzKGQpLCBncHVfZGV2X2lkKTsKIH0KIAogLyogZGVzdHJveS4gKi8K LS0gCk1TVAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=