From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v3 9/9] DO NOT APPLY libxl: Change hotplug script interface to use physical-device-path Date: Thu, 24 Mar 2016 17:22:40 +0000 Message-ID: <1458840160-26733-10-git-send-email-george.dunlap@citrix.com> References: <1458840160-26733-1-git-send-email-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458840160-26733-1-git-send-email-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Wei Liu , Ian Jackson , George Dunlap , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org RnJvbTogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CgpETyBOT1QgQVBQ TFkuICBUaGlzIGlzIHByb3ZpZGVkIGZvciBmdXR1cmUgcmVmZXJlbmNlLCBhcyBhIHN0YXJ0aW5n CnBvaW50IHRvIGNsZWFuIHVwIHRoZSBkaXNrIHBhdGguICBBIHNpbXBsZSBmaXggd2lsbCBtYWtl IGl0ICJ3b3JrIiwKYnV0IHdpbGwgaW50cm9kdWNlIGEgc3VidGxlIHJhY2UgY29uZGl0aW9uLgoK KiBDaGFuZ2UgYmxvY2stY29tbW9uLnNoIG9uIExpbnV4IHRvIG9ubHkgd3JpdGUgcGh5c2ljYWwt ZGV2aWNlLXBhdGgKICB3aXRoIHRoZSBwYXRoIG9mIHRoZSBkZXZpY2Ugbm9kZSwgcmF0aGVyIHRo YW4gYWxzbyB3cml0aW5nCiAgcGh5c2ljYWwtZGV2aWNlIHdpdGggaXRzIG1ham9yOm1pbm9yIG51 bWJlcnMuCgoqIEhhdmUgdGhlIGxpYnhsIExpbnV4IGhvdHBsdWcgc2NyaXB0IHNjaGVkdWxlciBj b252ZXJ0IHRoaXMsIGJ5CiAgcmVhZGluZyBwaHlzaWNhbC1kZXZpY2UtcGF0aCBhbmQgd3JpdGlu ZyBwaHlzaWNhbC1kZXZpY2UuICBUaGlzCiAgaGFwcGVucyBqdXN0IHdoZW4gd2UgaGF2ZSBkZWNp ZGVkIHRoYXQgdGhlcmUgaXMgbm8gbW9yZSBzY3JpcHQgdG8KICBydW4uCgooQXMgYSByZW1pbmRl cjogTWFueSBob3RwbHVnIHNjcmlwdHMgYXJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lczsgc28KbGli eGxfX2dldF9ob3RwbHVnX3NjcmlwdF9pbmZvKCkgaXMgY2FsbGVkIHJlcGVhdGVkbHkgdW50aWwg aXQgcmV0dXJucwonMCcuICBCbG9jayBzY3JpcHRzIGFyZSBvbmx5IGNhbGxlZCBvbmNlOyBidXQg dGhpcyBnaXZlcyB1cyB0aGUKb3Bwb3J0dW5pdHkgdG8gZG8gdGhlIHRyYW5zbGF0aW9uIGF0IGFu eSBwb2ludCB3aGVuCmxpYnhsX19nZXRfaG90cGx1Z19zY3JpcHRfaW5mbygpICp3b3VsZCogcmV0 dXJuIHplcm8uKQoKKiBBZGQgYW4geHh4IGFib3V0IHRoZSBmYWN0IHRoYXQgdGhlIHNoYXJpbmcg Y2hlY2sgaW4KICB0b29scy9ob3RwbHVnL0xpbnV4L2Jsb2NrIG5lZWRzIGFkanVzdGluZy4gIE5v dGUgdGhhdCBXSVRIT1VUIFRISVMKICBPVEhFUiBGSVggVEhFIENIQU5HRSBUTyBCTE9DSy1DT01N T04uU0ggSVMgQlJPS0VOLgoKKiBUaGlzIGhhcyBiZWVuIHRlc3RlZCAod2l0aCB0aGUgeHh4IGNv bW1lbnRlZCBvdXQpIGFuZCB3b3Jrcy4KClRoZSByZWFzb24gdGhlIGJsb2NrIHNjcmlwdCBpcyBi cm9rZW4gd2l0aCB0aGlzIGNoYW5nZSBpcyB0aGF0CmJsb2NrOmNoZWNrX3NoYXJpbmcoKSByZWFk cyBwaHlzaWNhbC1kZXZpY2UgdG8gY2hlY2sgdGhlIG1ham9yOm1pbm9yCmZvciBkdXBsaWNhdGVz IHJhdGhlciB0aGFuIGNoZWNraW5nIHRoZSBwYXRoLiAgQnV0IHNpbmNlIHRoaXMgaXMgKG5vdykK d3JpdHRlbiBieSBsaWJ4bCB3aXRob3V0IHRoZSBibG9jayBzY3JpcHQgbG9jayBoZWxkLCBpdCdz IHBvc3NpYmxlCnRoYXQgYSBkdXBsaWNhdGUgaW5zdGFuY2Ugd2lsbCBydW4gdGhlIGNoZWNrX3No YXJpbmcoKSBjaGVjayBiZWZvcmUKbGlieGwgZ2V0cyBhIGNoYW5jZSB0byB3cml0ZSB0aGF0IG5v ZGUuCgpJdCBzaG91bGQgYmUgc3VmZmljaWVudCB0byBtb2RpZnkgY2hlY2tfc2hhcmluZygpIHRv IHJlYWQgdGhhdCBub2RlIGlmCml0J3MgYXZpYWxhYmxlLCBhbmQgaWYgaXQncyBub3QgYXZhaWxh YmxlLCB0byBpbnN0ZWFkIHJlYWQgdGhlCm1ham9yL21pbm9yIGZyb20gcGh5c2ljYWwtZGV2aWNl LXBhdGguCgpTaWduZWQtb2ZmLWJ5OiBJYW4gSmFja3NvbiA8SWFuLkphY2tzb25AZXUuY2l0cml4 LmNvbT4KU2lnbmVkLW9mZi1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXgu Y29tPgotLS0KQ2hhbmNlcyBzaW5jZSByZmMgdjE6Ci0gRml4ZWQgdHdvIGJ1Z3MgaW4gdGhlIHBh dGNoCiAtIFVzZSBiYWNrZW5kIHhlbnN0b3JlIG5vZGUgcmF0aGVyIHRoYW4gZnJvbmRlbmQKIC0g Q29ycmVjdGx5IGludGVycHJldCByZXR1cm4gdmFsdWUgZm9yIGxpYnhsX19kZXZpY2VfcGh5c2Rp c2tfbWFqb3JfbWlub3IoKQotIFJlbW92ZSBlcnJvbmVvdXMgY29tbWVudCBhYm91dCBsaWJ4bF9f ZGV2aWNlX3BoeXNkaXNrX21ham9yX21pbm9yKCkncyByZXR1cm4gdmFsdWUKLSBQb3J0IHRvIGxp YnhsIHNjcmlwdAoKQ0M6IFJvZ2VyIFBhdSBNb25uZSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkND OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIGRvY3MvbWlzYy9ibG9jay1zY3Jp cHRzLnR4dCAgICAgICAgIHwgMzggKysrKysrLS0tLS0tLS0tLS0tLS0KIHRvb2xzL2hvdHBsdWcv TGludXgvYmxvY2stY29tbW9uLnNoIHwgMTUgKystLS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2xp bnV4LmMgICAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQogMyBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2NzL21pc2MvYmxvY2stc2NyaXB0cy50eHQgYi9kb2NzL21pc2MvYmxvY2st c2NyaXB0cy50eHQKaW5kZXggZjlhMDAxZS4uNTM5MGU3YyAxMDA2NDQKLS0tIGEvZG9jcy9taXNj L2Jsb2NrLXNjcmlwdHMudHh0CisrKyBiL2RvY3MvbWlzYy9ibG9jay1zY3JpcHRzLnR4dApAQCAt NTksMTggKzU5LDE4IEBAIE91dHB1dAogQmxvY2sgc2NyaXB0cyBhcmUgcmVzcG9uc2libGUgZm9y IG1ha2luZyBzdXJlIHRoYXQgaWYgYSBmaWxlIGlzCiBwcm92aWRlZCB0byBhIFZNIHJlYWQvd3Jp dGUsIHRoYXQgaXQgaXMgbm90IHByb3ZpZGVkIHRvIGFueSBvdGhlciBWTS4KIAotRnJlZUJTRCBi bG9jayBob3RwbHVnIHNjcmlwdHMgbXVzdCB3cml0ZQotIiRYRU5CVVNfUEFUSC9waHlzaWNhbC1k ZXZpY2UtcGF0aCIgd2l0aCB0aGUgcGF0aCB0byB0aGUgcGh5c2ljYWwKLWRldmljZSBvciBmaWxl LiAgTGludXggYW5kIE5ldEJTRCBibG9jayBob3RwbHVnIHNjcmlwdHMgKnNob3VsZCogYWxzbwot d3JpdGUgdGhpcyBub2RlLgorQmxvY2sgaG90cGx1ZyBzY3JpcHRzIG11c3Qgd3JpdGUgIiRYRU5C VVNfUEFUSC9waHlzaWNhbC1kZXZpY2UtcGF0aCIKK3dpdGggdGhlIHBhdGggdG8gdGhlIHBoeXNp Y2FsIGRldmljZSBvciBmaWxlLgogCi1Gb3IgdGhlIHRpbWUgYmVpbmcsIExpbnV4IGFuZCBOZXRC U0QgYmxvY2sgaG90cGx1ZyBzY3JpcHRzIG11c3Qgd3JpdGUKLSIkWEVOQlVTX1BBVEgvcGh5c2lj YWwtZGV2aWNlIiB3aXRoIHRoZSBkZXZpY2UncyBtYWpvciBhbmQgbWlub3IKLW51bWJlcnMsIHdy aXR0ZW4gaW4gaGV4LCBhbmQgc2VwYXJhdGVkIGJ5IGEgY29sb24uCitMaW51eCBzY3JpcHRzIHVz ZWQgdG8gd3JpdGUgIiRYRU5CVVNfUEFUSC9waHlzaWNhbC1kZXZpY2UiIHdpdGggdGhlCittYWpv ciBhbmQgbWlub3IgbnVtYmVyIG9mIGEgYmxvY2sgZGV2aWNlLCBzZXBhcmF0ZWQgYnkgYSBjb2xv biwKK2luc3RlYWQgb2YgcGh5c2ljYWwtZGV2aWNlLXBhdGguICBUaGlzIGludGVyZmFjZSBzdHls ZSBpcyBkZXByZWNhdGVkCitidXQgc3RpbGwgc3VwcG9ydGVkLiAgSG93ZXZlciwgc29tZSBmdW5j dGlvbmFsaXR5LCBzdWNoIGFzIGVtdWxhdGVkCitkZXZpY2VzIGZvciBIVk0gZ3Vlc3RzLCBtYXkg bm90IHdvcmsuCiAKIFNjcmlwdHMgd2hpY2ggaW5jbHVkZSBibG9jay1jb21tb24uc2ggY2FuIHNp bXBseSBjYWxsIHdyaXRlX2RldiAiJGRldiIKIHdpdGggYSBwYXRoIHRvIHRoZSBkZXZpY2UsIGFu ZCB3cml0ZV9kZXYgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcsIG5vdwotYW5kIGdvaW5nIGZvcndh cmQuICAoU2VlIHRoZSBkaXNjdXNzaW9uIGJlbG93LikKK2FuZCBnb2luZyBmb3J3YXJkLgogCiBS YXRpb25hbGUgYW5kIGZ1dHVyZSB3b3JrCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04 NSwyNSArODUsOSBAQCBtYWpvci9taW5vciBudW1iZXJzLCBhbmQgY2FuIGdpdmUgZGlyZWN0IGFj Y2VzcyB0byBhIGZpbGUgd2l0aG91dAogZ29pbmcgdGhyb3VnaCBsb29wYmFjazsgc28gaXRzIGRy aXZlciB3aWxsIGNvbnN1bWUKIHBoeXNpY2FsLWRldmljZS1wYXRoLgogCi1PbiBMaW51eCwgdGhl IGRldmljZSBtb2RlbCAocWVtdSkgbmVlZHMgYWNjZXNzIHRvIGEgZmlsZSBpdCBjYW4KLWludGVy cHJldCB0byBwcm92aWRlIGVtdWxhdGVkIGRpc2tzIGJlZm9yZSBwYXJhdmlydHVhbGl6ZWQgZHJp dmVycyBhcmUKLW1hcmtlZCBhcyB1cC4gIFRoZSBlYXNpZXN0IHdheSB0byBhY2NvbXBsaXNoIHRo aXMgaXMgdG8gYWxsb3cgcWVtdSB0bwotY29uc3VtZSBwaHlzaWNhbC1kZXZpY2UtcGF0aCAocmF0 aGVyIHRoYW4sIHNheSwgaGF2aW5nIGRvbTAgYWN0IGFzCi1ib3RoIGEgZnJvbnRlbmQgYW5kIGEg YmFja2VuZCkuCi0KLUdvaW5nIGZvcndhcmQsIHRoZSBwbGFuIGlzIGF0IHNvbWUgcG9pbnQgdG8g aGF2ZSBhbGwgYmxvY2sgc2NyaXB0cwotc2ltcGx5IHdyaXRlICJwaHlzaWNhbC1kZXZpY2UtcGF0 aCIsIGFuZCB0aGVuIGhhdmUgbGlieGwgd3JpdGUgdGhlCi1vdGhlciBub2Rlcy4gIFRoZSByZWFz b24gd2UgaGF2ZW4ndCBkb25lIHRoaXMgeWV0IGlzIHRoYXQgdGhlIG1haW4KLWJsb2NrIHNjcmlw dCB3YW50cyB0byBjaGVjayB0byBtYWtlIHN1cmUgdGhlICptYWpvci9taW5vciogbnVtYmVyCi1o YXNuJ3QgYmVlbiByZS11c2VkLCByYXRoZXIgdGhhbiBqdXN0IGNoZWNraW5nIHRoYXQgdGhlICpz cGVjaWZpYwotZGV2aWNlIG5vZGUqIGlzbid0IHJlLXVzZWQuICBUbyBkbyB0aGlzIGl0IGN1cnJl bnRseSB1c2VzCi1waHlzaWNhbC1kZXZpY2U7IGFuZCB0byBkbyB0aGlzICpzYWZlbHkqIGl0IG5l ZWRzIHBoeXNpY2FsLWRldmljZSB0bwotYmUgd3JpdHRlbiB3aXRoIHRoZSBsb2NrIGhlbGQuCi0K LVRoZSBzaW1wbGVzdCBzb2x1dGlvbiBmb3Igc29ydGluZyB0aGlzIG91dCB3b3VsZCBiZSB0byBo YXZlIHRoZSBibG9jawotc2NyaXB0IHVzZSBwaHlzaWNhbC1kZXZpY2UgaWYgaXQncyBwcmVzZW50 LCBidXQgaWYgbm90LCB0byBkaXJlY3RseQotc3RhdCBwaHlzaWNhbC1kZXZpY2UtcGF0aC4gIEJ1 dCB0aGVyZSdzIG5vdCB0aW1lIGJlZm9yZSB0aGUgNC43Ci1yZWxlYXNlIHRvIG1ha2Ugc3VyZSBh bGwgdGhhdCB3b3Jrcy4KK1JhdGhlciB0aGFuIGhhdmUgZGlmZmVyZW50IGludGVyZmFjZXMgZm9y IGRpZmZlcmVudCBvcGVyYXRpbmcgc3lzdGVtcywKK3dlIGp1c3QgaGF2ZSB0aGUgYmxvY2sgc2Ny aXB0IHdyaXRlIHRoZSBwYXRoLCBhbmQgbGlieGwgZG8gdGhlCit0cmFubGF0aW9uIHdoZW4gbmVj ZXNzYXJ5LgogCiBBbm90aGVyIHBvc3NpYmlsaXR5IHdvdWxkIGJlIHRvIG9ubHkgY2FsbCBvdXQg dG8gc2NyaXB0cyB3aGVuIHVzaW5nCiBjdXN0b20gaG90cGx1ZyBzY3JpcHRzOyBhbmQgd2hlbiBk b2luZyBmaWxlcyBvciBwaHlzaWNhbCBkZXZpY2VzLCB0bwpkaWZmIC0tZ2l0IGEvdG9vbHMvaG90 cGx1Zy9MaW51eC9ibG9jay1jb21tb24uc2ggYi90b29scy9ob3RwbHVnL0xpbnV4L2Jsb2NrLWNv bW1vbi5zaAppbmRleCAzNTExMGI0Li4yZmNiZjc2IDEwMDY0NAotLS0gYS90b29scy9ob3RwbHVn L0xpbnV4L2Jsb2NrLWNvbW1vbi5zaAorKysgYi90b29scy9ob3RwbHVnL0xpbnV4L2Jsb2NrLWNv bW1vbi5zaApAQCAtNTAsMjMgKzUwLDE0IEBAIGRldmljZV9tYWpvcl9taW5vcigpCiAKIAogIyMK LSMgV3JpdGUgcGh5c2ljYWwtZGV2aWNlID0gTU0sbW0gdG8gdGhlIHN0b3JlLCB3aGVyZSBNTSBh bmQgbW0gYXJlIHRoZSBtYWpvciAKLSMgYW5kIG1pbm9yIG51bWJlcnMgb2YgZGV2aWNlIHJlc3Bl Y3RpdmVseS4KKyMgV3JpdGUgcGh5c2ljYWwtZGV2aWNlLXBhdGggPSAiJDEiIHRvIHRoZSBzdG9y ZQogIwogIyBAcGFyYW0gZGV2aWNlIFRoZSBkZXZpY2UgZnJvbSB3aGljaCBtYWpvciBhbmQgbWlu b3IgbnVtYmVycyBhcmUgcmVhZCwgd2hpY2gKICMgICAgICAgICAgICAgICB3aWxsIGJlIHdyaXR0 ZW4gaW50byB0aGUgc3RvcmUuCiAjCiB3cml0ZV9kZXYoKSB7Ci0gIGxvY2FsIG1tCi0gIAotICBt bT0kKGRldmljZV9tYWpvcl9taW5vciAiJDEiKQotIAotICBpZiBbIC16ICRtbSBdCi0gIHRoZW4K LSAgICBmYXRhbCAiQmFja2VuZCBkZXZpY2UgZG9lcyBub3QgZXhpc3QiCi0gIGZpCi0gCi0gIHhl bnN0b3JlX3dyaXRlICIkWEVOQlVTX1BBVEgvcGh5c2ljYWwtZGV2aWNlIiAiJG1tIgorICB4eHgg Y2hlY2tfc2hhcmluZyBuZWVkcyB0byBiZSBmaXhlZCBvciB0aGlzIGludHJvZHVjZXMgYSByYWNl CisgICAgCiAgIHhlbnN0b3JlX3dyaXRlICIkWEVOQlVTX1BBVEgvcGh5c2ljYWwtZGV2aWNlLXBh dGgiICIkMSIKICAgCiAgIHN1Y2Nlc3MKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2xp bnV4LmMgYi90b29scy9saWJ4bC9saWJ4bF9saW51eC5jCmluZGV4IGJlNGFmYzYuLjk1MjZkYmQg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2xpbnV4LmMKKysrIGIvdG9vbHMvbGlieGwv bGlieGxfbGludXguYwpAQCAtMjMzLDYgKzIzMyw2NSBAQCBlcnJvcjoKICAgICByZXR1cm4gcmM7 CiB9CiAKK3N0YXRpYyBpbnQgZGlza19jb3B5X2Jsb2NrX2RldmljZShsaWJ4bF9fZ2MgKmdjLCBs aWJ4bF9fZGV2aWNlICpkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX2RldmljZV9hY3Rpb24gYWN0aW9uKQoreworICAgIGludCByYzsKKyAgICB4c190cmFuc2Fj dGlvbl90IHQgPSAwOworICAgIGNvbnN0IGNoYXIgKmJlX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Jh Y2tlbmRfcGF0aChnYywgZGV2KTsKKyAgICBjb25zdCBjaGFyICptYWptaW5fcGF0aCA9IEdDU1BS SU5URigiJXMvcGh5c2ljYWwtZGV2aWNlIiwgYmVfcGF0aCk7CisgICAgY29uc3QgY2hhciAqcGF0 aF9wYXRoID0gR0NTUFJJTlRGKCIlcy9waHlzaWNhbC1kZXZpY2UtcGF0aCIsIGJlX3BhdGgpOwor ICAgIGludCBtYWpvciwgbWlub3I7CisKKyAgICBpZiAoYWN0aW9uICE9IExJQlhMX19ERVZJQ0Vf QUNUSU9OX0FERCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAg IHJjID0gbGlieGxfX3hzX3RyYW5zYWN0aW9uX3N0YXJ0KGdjLCAmdCk7CisgICAgICAgIGlmIChy YykgZ290byBvdXQ7CisKKyAgICAgICAgY29uc3QgY2hhciAqbWFqbWluOworICAgICAgICByYyA9 IGxpYnhsX194c19yZWFkX2NoZWNrZWQoZ2MsdCwgbWFqbWluX3BhdGgsICZtYWptaW4pOworICAg ICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgICAgICBpZiAobWFqbWluKSB7CisgICAgICAgICAg ICAvKiBPbGQtc3R5bGUgTGludXgtb25seSBob3RwbHVnIHNjcmlwdCB3cm90ZSBwaHlzaWNhbC1k ZXZpY2UgKi8KKyAgICAgICAgICAgIHJjID0gMDsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAg ICAgICB9CisKKyAgICAgICAgY29uc3QgY2hhciAqYmRldjsKKyAgICAgICAgcmMgPSBsaWJ4bF9f eHNfcmVhZF9jaGVja2VkKGdjLHQsIHBhdGhfcGF0aCwgJmJkZXYpOworICAgICAgICBpZiAocmMp IGdvdG8gb3V0OworICAgICAgICBpZiAoIWJkZXYpIHsKKyAgICAgICAgICAgIExPR0UoRVJST1Is ICJub3RoaW5nIHdyb3RlIHBoeXNpY2FsIGRldmljZSB0byAlcyIsIHBhdGhfcGF0aCk7CisgICAg ICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAg fQorCisgICAgICAgIGlmIChsaWJ4bF9fZGV2aWNlX3BoeXNkaXNrX21ham9yX21pbm9yKGJkZXYs ICZtYWpvciwgJm1pbm9yKTwwKSB7CisgICAgICAgICAgICBMT0coRVJST1IsICJsaWJ4bF9fZGV2 aWNlX3BoeXNkaXNrX21ham9yX21pbm9yIGZhaWxlZCAob24gJXMpIiwKKyAgICAgICAgICAgICAg ICBiZGV2KTsKKyAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgICAgIGdvdG8g b3V0OworICAgICAgICB9CisKKyAgICAgICAgbWFqbWluID0gR0NTUFJJTlRGKCIleDoleCIsIG1h am9yLCBtaW5vcik7CisgICAgICAgIHJjID0gbGlieGxfX3hzX3dyaXRlX2NoZWNrZWQoZ2MsdCwg bWFqbWluX3BhdGgsIG1ham1pbik7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAg ICAgcmMgPSBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fY29tbWl0KGdjLCAmdCk7CisgICAgICAgIGlm ICghcmMpIGJyZWFrOworICAgICAgICBpZiAocmM8MCkgZ290byBvdXQ7CisgICAgfQorCisgICAg cmV0dXJuIHJjOworCisgb3V0OgorICAgIGxpYnhsX194c190cmFuc2FjdGlvbl9hYm9ydChnYywg JnQpOworICAgIHJldHVybiByYzsKK30KKworCiBpbnQgbGlieGxfX2dldF9ob3RwbHVnX3Njcmlw dF9pbmZvKGxpYnhsX19nYyAqZ2MsIGxpYnhsX19kZXZpY2UgKmRldiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2hhciAqKiphcmdzLCBjaGFyICoqKmVudiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RldmljZV9hY3Rpb24gYWN0aW9uLApA QCAtMjQ1LDkgKzMwNCwxNiBAQCBpbnQgbGlieGxfX2dldF9ob3RwbHVnX3NjcmlwdF9pbmZvKGxp YnhsX19nYyAqZ2MsIGxpYnhsX19kZXZpY2UgKmRldiwKICAgICAgICAgaWYgKG51bV9leGVjICE9 IDApIHsKICAgICAgICAgICAgIExPRyhERUJVRywgIm51bV9leGVjICVkLCBub3QgcnVubmluZyBo b3RwbHVnIHNjcmlwdHMiLCBudW1fZXhlYyk7CiAgICAgICAgICAgICByYyA9IDA7Ci0gICAgICAg ICAgICBnb3RvIG91dDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJjID0gbGlieGxf X2hvdHBsdWdfZGlzayhnYywgZGV2LCBhcmdzLCBlbnYsIGFjdGlvbik7CisgICAgICAgIH0KKyAg ICAgICAgaWYgKCFyYykgeworICAgICAgICAgICAgLyogTm8gbW9yZSBob3RwbHVnIHNjcmlwdHMg dG8gcnVuLiAgQnV0LCB0aGUgaG90cGx1ZworICAgICAgICAgICAgICogc2NyaXB0cyB3cml0ZSBw aHlzaWNhbC1kZXZpY2UtcGF0aCBidXQgd2UgYmxrYmFjayB3YW50cworICAgICAgICAgICAgICog cGh5c2ljYWwtZGV2aWNlIChtYWpvcjptaW5vcikuICBTbyBub3cgd2UgYWRqdXN0CisgICAgICAg ICAgICAgKiB0aGF0LiAqLworICAgICAgICAgICAgcmMgPSBkaXNrX2NvcHlfYmxvY2tfZGV2aWNl KGdjLCBkZXYsIGFjdGlvbik7CiAgICAgICAgIH0KLSAgICAgICAgcmMgPSBsaWJ4bF9faG90cGx1 Z19kaXNrKGdjLCBkZXYsIGFyZ3MsIGVudiwgYWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAg Y2FzZSBMSUJYTF9fREVWSUNFX0tJTkRfVklGOgogICAgICAgICAvKgotLSAKMi4xLjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=