From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 2/4] libxl: add new pvusb backend "qusb" provided by qemu Date: Tue, 29 Mar 2016 08:52:34 +0200 Message-ID: <1459234356-2333-3-git-send-email-jgross@suse.com> References: <1459234356-2333-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1459234356-2333-1-git-send-email-jgross@suse.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: Juergen Gross , wei.liu2@citrix.com, stefano.stabellini@eu.citrix.com, George.Dunlap@eu.citrix.com, ian.jackson@eu.citrix.com, cyliu@suse.com List-Id: xen-devel@lists.xenproject.org QWRkIGEgbmV3IHB2dXNiIGJhY2tlbmQgdHlwZSAicXVzYiIgd2hpY2ggaXMgcHJvdmlkZWQgYnkg cWVtdS4gSXQgY2FuCmJlIHNlbGVjdGVkIGVpdGhlciBieSBzcGVjaWZ5aW5nIHRoZSB0eXBlIGRp cmVjdGx5IGluIHRoZSBjb25maWd1cmF0aW9uCm9yIGl0IGlzIHNlbGVjdGVkIGF1dG9tYXRpY2Fs bHkgYnkgbGlieGwgaW4gY2FzZSB0aGVyZSBpcyBubyAidXNiYmFjayIKZHJpdmVyIGxvYWRlZC4K ClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tClY0OiBi YWlsIG91dCBpbiBjYXNlIG9mIHVzYmJhY2tfaXNfbG9hZGVkKCkgZXJyb3IgYXMgcmVxdWVzdGVk IGJ5CiAgICBDaHVuIFlhbiBMaXUKLS0tCiBkb2NzL21hbi94bC5jZmcucG9kLjUgICAgICAgICAg ICAgICAgfCAgMTEgKysrLQogdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMgICAgICAgICAgIHwg ICAzICstCiB0b29scy9saWJ4bC9saWJ4bF9kbS5jICAgICAgICAgICAgICAgfCAgIDggKysrCiB0 b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oICAgICAgICAgfCAgIDEgKwogdG9vbHMvbGlieGwv bGlieGxfcHZ1c2IuYyAgICAgICAgICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCiB0b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICAgfCAgIDEgKwog dG9vbHMvbGlieGwvbGlieGxfdHlwZXNfaW50ZXJuYWwuaWRsIHwgICAxICsKIDcgZmlsZXMgY2hh bmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Rv Y3MvbWFuL3hsLmNmZy5wb2QuNSBiL2RvY3MvbWFuL3hsLmNmZy5wb2QuNQppbmRleCBlYzczOWNj Li5hNGNjMWIzIDEwMDY0NAotLS0gYS9kb2NzL21hbi94bC5jZmcucG9kLjUKKysrIGIvZG9jcy9t YW4veGwuY2ZnLnBvZC41CkBAIC03MzcsOCArNzM3LDE1IEBAIFBvc3NpYmxlIEI8S0VZPnMgYXJl OgogCiA9aXRlbSBCPHR5cGU9VFlQRT4KIAotU3BlY2lmaWVzIHRoZSB1c2IgY29udHJvbGxlciB0 eXBlLiAgQ3VycmVudGx5IG9ubHkgJ3B2JyBhbmQgJ2F1dG8nCi1hcmUgc3VwcG9ydGVkLgorU3Bl Y2lmaWVzIHRoZSB1c2IgY29udHJvbGxlciB0eXBlLgorCisicHYiIGRlbm90ZXMgYSBrZXJuZWwg YmFzZWQgcHZ1c2IgYmFja2VuZC4KKworInF1c2IiIHNwZWNpZmllcyBhIHFlbXUgYmFzZSBiYWNr ZW5kIGZvciBwdnVzYi4KKworImF1dG8iICh0aGUgZGVmYXVsdCkgZGV0ZXJtaW5lcyB3aGV0aGVy IGEga2VybmVsIGJhc2VkIGJhY2tlbmQgaXMgaW5zdGFsbGVkLgorSWYgdGhpcyBpcyB0aGUgY2Fz ZSwgInB2IiBpcyBzZWxlY3RlZCwgInF1c2IiIHdpbGwgYmUgc2VsZWN0ZWQgaWYgbm8ga2VybmVs CitiYWNrZW5kIGlzIGN1cnJlbnRseSBhdmFpbGFibGUuCiAKID1pdGVtIEI8dmVyc2lvbj1WRVJT SU9OPgogCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYyBiL3Rvb2xzL2xp YnhsL2xpYnhsX2RldmljZS5jCmluZGV4IDRjZWQ5YjYuLmViYTMwODcgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5j CkBAIC02ODAsNyArNjgwLDggQEAgdm9pZCBsaWJ4bF9fZGV2aWNlc19kZXN0cm95KGxpYnhsX19l Z2MgKmVnYywgbGlieGxfX2RldmljZXNfcmVtb3ZlX3N0YXRlICpkcnMpCiAgICAgICAgICAgICAg ICAgYW9kZXYtPmFjdGlvbiA9IExJQlhMX19ERVZJQ0VfQUNUSU9OX1JFTU9WRTsKICAgICAgICAg ICAgICAgICBhb2Rldi0+ZGV2ID0gZGV2OwogICAgICAgICAgICAgICAgIGFvZGV2LT5mb3JjZSA9 IGRycy0+Zm9yY2U7Ci0gICAgICAgICAgICAgICAgaWYgKGRldi0+YmFja2VuZF9raW5kID09IExJ QlhMX19ERVZJQ0VfS0lORF9WVVNCKQorICAgICAgICAgICAgICAgIGlmIChkZXYtPmJhY2tlbmRf a2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfVlVTQiB8fAorICAgICAgICAgICAgICAgICAgICBk ZXYtPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfUVVTQikKICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2luaXRpYXRlX2RldmljZV91c2JjdHJsX3JlbW92ZShlZ2MsIGFvZGV2 KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19pbml0 aWF0ZV9kZXZpY2VfZ2VuZXJpY19yZW1vdmUoZWdjLCBhb2Rldik7CmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwppbmRleCAwZDg4YzM3 Li43MzhjOWRjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kbS5jCisrKyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2RtLmMKQEAgLTIxNDcsNiArMjE0NywxNCBAQCBpbnQgbGlieGxfX25lZWRf eGVucHZfcWVtdShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZykK ICAgICAgICAgfQogICAgIH0KIAorICAgIGZvciAoaSA9IDA7IGkgPCBkX2NvbmZpZy0+bnVtX3Vz YmN0cmxzOyBpKyspIHsKKyAgICAgICBpZiAoZF9jb25maWctPnVzYmN0cmxzW2ldLnR5cGUgPT0g TElCWExfVVNCQ1RSTF9UWVBFX1FVU0IgJiYKKyAgICAgICAgICAgZF9jb25maWctPnVzYmN0cmxz W2ldLmJhY2tlbmRfZG9taWQgPT0gZG9taWQpIHsKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAg ICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0KKwogb3V0OgogICAgIHJldHVybiBy ZXQ7CiB9CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCBmYzdiZGFiLi4yZGI4YjFiIDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmgKQEAgLTQ4Nyw2ICs0ODcsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIFFF TVVfQkFDS0VORChkZXYpIChcCiAgICAgKGRldiktPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVW SUNFX0tJTkRfUURJU0sgfHwgXAogICAgIChkZXYpLT5iYWNrZW5kX2tpbmQgPT0gTElCWExfX0RF VklDRV9LSU5EX1ZGQiB8fCBcCisgICAgKGRldiktPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVW SUNFX0tJTkRfUVVTQiB8fCBcCiAgICAgKGRldiktPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVW SUNFX0tJTkRfVktCRCkKIAogI2RlZmluZSBYQ19QQ0lfQkRGICAgICAgICAgICAgICIweCV4LCAw eCV4LCAweCV4LCAweCV4IgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYyBi L3Rvb2xzL2xpYnhsL2xpYnhsX3B2dXNiLmMKaW5kZXggNWY5MjYyOC4uMDY5YjJhOSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9w dnVzYi5jCkBAIC0yMiw2ICsyMiwyMSBAQAogCiAjZGVmaW5lIFVTQkhVQl9DTEFTU19DT0RFIDkK IAorc3RhdGljIGludCB1c2JiYWNrX2lzX2xvYWRlZChsaWJ4bF9fZ2MgKmdjKQoreworICAgIGlu dCByOworICAgIHN0cnVjdCBzdGF0IHN0OworCisgICAgciA9IGxzdGF0KFNZU0ZTX1VTQkJBQ0tf RFJJVkVSLCAmc3QpOworCisgICAgaWYgKHIgPT0gMCkKKyAgICAgICAgcmV0dXJuIDE7CisgICAg aWYgKHIgPCAwICYmIGVycm5vID09IEVOT0VOVCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgTE9H RShFUlJPUiwgIkFjY2Vzc2luZyAlcyIsIFNZU0ZTX1VTQkJBQ0tfRFJJVkVSKTsKKyAgICByZXR1 cm4gRVJST1JfRkFJTDsKK30KKwogc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3VzYmN0cmxfc2V0 ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmN0cmwgKnVzYmN0cmwp CiB7CkBAIC0zNiw3ICs1MSwxMSBAQCBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiY3RybF9z ZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogCiAgICAgaWYgKHVzYmN0 cmwtPnR5cGUgPT0gTElCWExfVVNCQ1RSTF9UWVBFX0FVVE8pIHsKICAgICAgICAgaWYgKGRvbXR5 cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFYpIHsKLSAgICAgICAgICAgIHVzYmN0cmwtPnR5cGUg PSBMSUJYTF9VU0JDVFJMX1RZUEVfUFY7CisgICAgICAgICAgICByYyA9IHVzYmJhY2tfaXNfbG9h ZGVkKGdjKTsKKyAgICAgICAgICAgIGlmIChyYyA8IDApCisgICAgICAgICAgICAgICAgZ290byBv dXQ7CisgICAgICAgICAgICB1c2JjdHJsLT50eXBlID0gcmMgPyBMSUJYTF9VU0JDVFJMX1RZUEVf UFYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IExJQlhMX1VTQkNUUkxfVFlQRV9R VVNCOwogICAgICAgICB9IGVsc2UgaWYgKGRvbXR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfSFZN KSB7CiAgICAgICAgICAgICAvKiBGSVhNRTogU2VlIGlmIHdlIGNhbiBkZXRlY3QgUFYgZnJvbnRl bmQgKi8KICAgICAgICAgICAgIHVzYmN0cmwtPnR5cGUgPSBMSUJYTF9VU0JDVFJMX1RZUEVfREVW SUNFTU9ERUw7CkBAIC00NSw2ICs2NCw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV91c2Jj dHJsX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAKICAgICByYyA9 IGxpYnhsX19yZXNvbHZlX2RvbWlkKGdjLCB1c2JjdHJsLT5iYWNrZW5kX2RvbW5hbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmdXNiY3RybC0+YmFja2VuZF9kb21pZCk7CisKK291 dDoKICAgICByZXR1cm4gcmM7CiB9CiAKQEAgLTU0LDcgKzc1LDkgQEAgaW50IGxpYnhsX19kZXZp Y2VfZnJvbV91c2JjdHJsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogewogICAgIGRl dmljZS0+YmFja2VuZF9kZXZpZCAgID0gdXNiY3RybC0+ZGV2aWQ7CiAgICAgZGV2aWNlLT5iYWNr ZW5kX2RvbWlkICAgPSB1c2JjdHJsLT5iYWNrZW5kX2RvbWlkOwotICAgIGRldmljZS0+YmFja2Vu ZF9raW5kICAgID0gTElCWExfX0RFVklDRV9LSU5EX1ZVU0I7CisgICAgZGV2aWNlLT5iYWNrZW5k X2tpbmQgICAgPSAodXNiY3RybC0+dHlwZSA9PSBMSUJYTF9VU0JDVFJMX1RZUEVfUFYpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA/IExJQlhMX19ERVZJQ0VfS0lORF9WVVNCCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IExJQlhMX19ERVZJQ0VfS0lORF9RVVNCOwogICAg IGRldmljZS0+ZGV2aWQgICAgICAgICAgID0gdXNiY3RybC0+ZGV2aWQ7CiAgICAgZGV2aWNlLT5k b21pZCAgICAgICAgICAgPSBkb21pZDsKICAgICBkZXZpY2UtPmtpbmQgICAgICAgICAgICA9IExJ QlhMX19ERVZJQ0VfS0lORF9WVVNCOwpAQCAtNjQsOSArODcsOSBAQCBpbnQgbGlieGxfX2Rldmlj ZV9mcm9tX3VzYmN0cmwobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAKIC8qIEFkZCB1 c2JjdHJsIGluZm9ybWF0aW9uIHRvIHhlbnN0b3JlLgogICoKLSAqIEFkZGluZyBhIHVzYiBjb250 cm9sbGVyIHdpbGwgYWRkIGEgbmV3ICd2dXNiJyBkZXZpY2UgaW4geGVuc3RvcmUsIGFuZAotICog YWRkIGNvcnJlc3BvbmRpbmcgZnJvbnRlbmQsIGJhY2tlbmQgaW5mb3JtYXRpb24gdG8gaXQuIEFj Y29yZGluZyB0bwotICogInVwZGF0ZV9qc29uIiwgZGVjaWRlIHdldGhlciB0byB1cGRhdGUganNv biBjb25maWcgZmlsZS4KKyAqIEFkZGluZyBhIHVzYiBjb250cm9sbGVyIHdpbGwgYWRkIGEgbmV3 ICdxdXNiJyBvciAndnVzYicgZGV2aWNlIGluIHhlbnN0b3JlLAorICogYW5kIGFkZCBjb3JyZXNw b25kaW5nIGZyb250ZW5kLCBiYWNrZW5kIGluZm9ybWF0aW9uIHRvIGl0LiBBY2NvcmRpbmcgdG8K KyAqICJ1cGRhdGVfanNvbiIsIGRlY2lkZSB3aGV0aGVyIHRvIHVwZGF0ZSBqc29uIGNvbmZpZyBm aWxlLgogICovCiBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiY3RybF9hZGRfeGVuc3RvcmUo bGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmN0cmwgKnVzYmN0cmwsCkBAIC0x NTksNiArMTgyLDE4IEBAIG91dDoKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBjaGFyICpw dnVzYl9nZXRfZGV2aWNlX3R5cGUobGlieGxfdXNiY3RybF90eXBlIHR5cGUpCit7CisgICAgc3dp dGNoICh0eXBlKSB7CisgICAgY2FzZSBMSUJYTF9VU0JDVFJMX1RZUEVfUFY6CisgICAgICAgIHJl dHVybiAidnVzYiI7CisgICAgY2FzZSBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQjoKKyAgICAgICAg cmV0dXJuICJxdXNiIjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9 Cit9CisKIC8qIEFPIG9wZXJhdGlvbiB0byBhZGQgYSB1c2IgY29udHJvbGxlci4KICAqCiAgKiBH ZW5lcmFsbHksIGl0IGRvZXM6CkBAIC0xOTAsNyArMjI1LDggQEAgdm9pZCBsaWJ4bF9fZGV2aWNl X3VzYmN0cmxfYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgIH0K ICAgICB9CiAKLSAgICBpZiAodXNiY3RybC0+dHlwZSAhPSBMSUJYTF9VU0JDVFJMX1RZUEVfUFYp IHsKKyAgICBpZiAodXNiY3RybC0+dHlwZSAhPSBMSUJYTF9VU0JDVFJMX1RZUEVfUFYgJiYKKyAg ICAgICAgdXNiY3RybC0+dHlwZSAhPSBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQikgewogICAgICAg ICBMT0coRVJST1IsICJVbnN1cHBvcnRlZCBVU0IgY29udHJvbGxlciB0eXBlIik7CiAgICAgICAg IHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CkBAIC0yNTIsNyArMjg4LDggQEAg dm9pZCBsaWJ4bF9faW5pdGlhdGVfZGV2aWNlX3VzYmN0cmxfcmVtb3ZlKGxpYnhsX19lZ2MgKmVn YywKICAgICByYyA9IGxpYnhsX2RldmljZV91c2JjdHJsX2dldGluZm8oQ1RYLCBkb21pZCwgJnVz YmN0cmwsICZ1c2JjdHJsaW5mbyk7CiAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAotICAgIGlmICh1 c2JjdHJsaW5mby50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9QVikgeworICAgIGlmICh1c2Jj dHJsaW5mby50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9QViAmJgorICAgICAgICB1c2JjdHJs aW5mby50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9RVVNCKSB7CiAgICAgICAgIExPRyhFUlJP UiwgIlVuc3VwcG9ydGVkIFVTQiBjb250cm9sbGVyIHR5cGUiKTsKICAgICAgICAgcmMgPSBFUlJP Ul9GQUlMOwogICAgICAgICBnb3RvIG91dDsKQEAgLTI5Myw2ICszMzAsNyBAQCBzdGF0aWMgY29u c3QgY2hhciAqdnVzYl9iZV9mcm9tX3hzX2ZlKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKmZl X3BhdGgsCiAgICAgY29uc3QgY2hhciAqYmVfcGF0aDsKICAgICBpbnQgcjsKICAgICB1aW50MzJf dCBiZV9kb21pZCwgZmVfZG9taWQ7CisgICAgY2hhciBiZV90eXBlWzE2XTsKIAogICAgIHIgPSBs aWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwgR0NTUFJJTlRGKCIlcy9iYWNrZW5k IiwgZmVfcGF0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJlX3BhdGgpOwpA QCAtMzAwLDEwICszMzgsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnZ1c2JfYmVfZnJvbV94c19m ZShsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFyICpmZV9wYXRoLAogCiAgICAgLyogQ2hlY2sgdG8g c2VlIHRoYXQgaXQgaGFzIHRoZSBwcm9wZXIgZm9ybSwgYW5kIHRoYXQgZmVfZG9taWQgPT0KICAg ICAgKiB0YXJnZXQgZG9taWQgKi8KLSAgICByID0gc3NjYW5mKGJlX3BhdGgsICIvbG9jYWwvZG9t YWluLyVkL2JhY2tlbmQvdnVzYi8lZCIsCi0gICAgICAgICAgICAgICAmYmVfZG9taWQsICZmZV9k b21pZCk7CisgICAgciA9IHNzY2FuZihiZV9wYXRoLCAiL2xvY2FsL2RvbWFpbi8lZC9iYWNrZW5k LyUxNVteL10vJWQiLAorICAgICAgICAgICAgICAgJmJlX2RvbWlkLCBiZV90eXBlLCAmZmVfZG9t aWQpOwogCi0gICAgaWYgKHIgIT0gMiB8fCBmZV9kb21pZCAhPSB0Z3RfZG9taWQpIHsKKyAgICBp ZiAociAhPSAzIHx8IGZlX2RvbWlkICE9IHRndF9kb21pZCkgewogICAgICAgICBMT0coRVJST1Is ICJNYWxmb3JtZWQgYmFja2VuZCwgcmVmdXNpbmcgdG8gdXNlIik7CiAgICAgICAgIHJldHVybiBO VUxMOwogICAgIH0KQEAgLTc0MCw4ICs3NzgsOSBAQCBsaWJ4bF9fZGV2aWNlX3VzYmRldl9zZXRf ZGVmYXVsdF91c2JjdHJsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICBm b3IgKGogPSAwOyBqIDwgdXNiY3RybHNbaV0ucG9ydHM7IGorKykgewogICAgICAgICAgICAgY29u c3QgY2hhciAqcGF0aCwgKnRtcDsKIAotICAgICAgICAgICAgcGF0aCA9IEdDU1BSSU5URigiJXMv YmFja2VuZC92dXNiLyVkLyVkL3BvcnQvJWQiLAorICAgICAgICAgICAgcGF0aCA9IEdDU1BSSU5U RigiJXMvYmFja2VuZC8lcy8lZC8lZC9wb3J0LyVkIiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfX3hzX2dldF9kb21wYXRoKGdjLCBMSUJYTF9UT09MU1RBQ0tfRE9NSUQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUodXNiY3Ry bHNbaV0udHlwZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkLCB1c2JjdHJs c1tpXS5kZXZpZCwgaiArIDEpOwogICAgICAgICAgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVj a2VkKGdjLCBYQlRfTlVMTCwgcGF0aCwgJnRtcCk7CiAgICAgICAgICAgICBpZiAocmMpIGdvdG8g b3V0OwpAQCAtODgzLDExICs5MjIsMTIgQEAgb3V0OgogCiAvKiBBZGQgdXNiIGluZm9ybWF0aW9u IHRvIHhlbnN0b3JlCiAgKgotICogQWRkaW5nIGEgdXNiIGRldmljZSB3b24ndCBjcmVhdGUgbmV3 ICd2dXNiJyBkZXZpY2UsIGJ1dCBvbmx5IHdyaXRlCisgKiBBZGRpbmcgYSB1c2IgZGV2aWNlIHdv bid0IGNyZWF0ZSBuZXcgJ3F1c2InLyd2dXNiJyBkZXZpY2UsIGJ1dCBvbmx5IHdyaXRlCiAgKiB0 aGUgZGV2aWNlIGJ1c2lkIHRvIHRoZSBjb250cm9sbGVyOnBvcnQgaW4geGVuc3RvcmUuCiAgKi8K IHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3JlKGxpYnhsX19nYyAq Z2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmRldiAqdXNiZGV2LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdXNiY3RybF90eXBlIHR5cGUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHVwZGF0ZV9qc29u KQogewogICAgIGNoYXIgKmJlX3BhdGgsICpidXNpZDsKQEAgLTkzMSw4ICs5NzEsOSBAQCBzdGF0 aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiZGV2X2FkZF94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCB1 aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CiAgICAgICAgIH0K IAotICAgICAgICBiZV9wYXRoID0gR0NTUFJJTlRGKCIlcy9iYWNrZW5kL3Z1c2IvJWQvJWQvcG9y dC8lZCIsCisgICAgICAgIGJlX3BhdGggPSBHQ1NQUklOVEYoIiVzL2JhY2tlbmQvJXMvJWQvJWQv cG9ydC8lZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hzX2dldF9kb21w YXRoKGdjLCBMSUJYTF9UT09MU1RBQ0tfRE9NSUQpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHB2dXNiX2dldF9kZXZpY2VfdHlwZSh0eXBlKSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYtPnBvcnQpOwogCiAgICAgICAgIExPRyhE RUJVRywgIkFkZGluZyB1c2IgZGV2aWNlICVzIHRvIHhlbnN0b3JlOiBjb250cm9sbGVyICVkLCBw b3J0ICVkIiwKQEAgLTk1NiwxMiArOTk3LDE0IEBAIG91dDoKIH0KIAogc3RhdGljIGludCBsaWJ4 bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVuc3RvcmUobGlieGxfX2djICpnYywgdWludDMyX3Qg ZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF91c2JjdHJsX3R5 cGUgdHlwZSkKIHsKICAgICBjaGFyICpiZV9wYXRoOwogCi0gICAgYmVfcGF0aCA9IEdDU1BSSU5U RigiJXMvYmFja2VuZC92dXNiLyVkLyVkL3BvcnQvJWQiLAorICAgIGJlX3BhdGggPSBHQ1NQUklO VEYoIiVzL2JhY2tlbmQvJXMvJWQvJWQvcG9ydC8lZCIsCiAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIExJQlhMX1RPT0xTVEFDS19ET01JRCksCisgICAg ICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUodHlwZSksCiAgICAgICAg ICAgICAgICAgICAgICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYtPnBvcnQpOwogCiAg ICAgTE9HKERFQlVHLCAiUmVtb3ZpbmcgdXNiIGRldmljZSBmcm9tIHhlbnN0b3JlOiBjb250cm9s bGVyICVkLCBwb3J0ICVkIiwKQEAgLTk3MSwxMiArMTAxNCwxNCBAQCBzdGF0aWMgaW50IGxpYnhs X19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBk b21pZCwKIH0KIAogc3RhdGljIGNoYXIgKnVzYmRldl9idXNpZF9mcm9tX2N0cmxwb3J0KGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RldmljZV91c2JkZXYgKnVzYmRldikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdXNiY3RybF90eXBlIHR5 cGUpCiB7CiAgICAgcmV0dXJuIGxpYnhsX194c19yZWFkKGdjLCBYQlRfTlVMTCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy9iYWNrZW5kL3Z1c2IvJWQvJWQvcG9ydC8l ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvYmFja2VuZC8lcy8l ZC8lZC9wb3J0LyVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194c19n ZXRfZG9tcGF0aChnYywgTElCWExfVE9PTFNUQUNLX0RPTUlEKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9taWQsIHVzYmRldi0+Y3RybCwgdXNiZGV2LT5wb3J0KSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUodHlwZSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYtPnBvcnQp KTsKIH0KIAogLyogZ2V0IG9yaWdpbmFsIGRyaXZlciBwYXRoIG9mIHVzYiBpbnRlcmZhY2UsIHN0 b3JlZCBpbiBAZHJ2cGF0aCAqLwpAQCAtMTMzMywxNSArMTM3OCwyNSBAQCBzdGF0aWMgaW50IGRv X3VzYmRldl9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICBn b3RvIG91dDsKICAgICAgICAgfQogCi0gICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZf YWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LCB1cGRhdGVfanNvbik7CisgICAgICAgIHJj ID0gbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9VU0JD VFJMX1RZUEVfUFYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVwZGF0ZV9qc29uKTsKICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAogICAgICAgICBy YyA9IHVzYmJhY2tfZGV2X2Fzc2lnbihnYywgYnVzaWQpOwogICAgICAgICBpZiAocmMpIHsKLSAg ICAgICAgICAgIGxpYnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShnYywgZG9taWQs IHVzYmRldik7CisgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVuc3Rv cmUoZ2MsIGRvbWlkLCB1c2JkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTElCWExfVVNCQ1RSTF9UWVBFX1BWKTsKICAgICAgICAgICAgIGdvdG8g b3V0OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTElCWExfVVNCQ1RSTF9U WVBFX1FVU0I6CisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3Jl KGdjLCBkb21pZCwgdXNiZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2pzb24pOworICAgICAgICBpZiAocmMp IGdvdG8gb3V0OworCisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTElCWExfVVNCQ1RSTF9UWVBF X0RFVklDRU1PREVMOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIExPRyhFUlJPUiwgIlVuc3VwcG9y dGVkIHVzYiBjb250cm9sbGVyIHR5cGUiKTsKQEAgLTE0NTgsNyArMTUxMyw3IEBAIHN0YXRpYyBp bnQgZG9fdXNiZGV2X3JlbW92ZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKIAogICAg IHN3aXRjaCAodXNiY3RybGluZm8udHlwZSkgewogICAgIGNhc2UgTElCWExfVVNCQ1RSTF9UWVBF X1BWOgotICAgICAgICBidXNpZCA9IHVzYmRldl9idXNpZF9mcm9tX2N0cmxwb3J0KGdjLCBkb21p ZCwgdXNiZGV2KTsKKyAgICAgICAgYnVzaWQgPSB1c2JkZXZfYnVzaWRfZnJvbV9jdHJscG9ydChn YywgZG9taWQsIHVzYmRldiwgdXNiY3RybGluZm8udHlwZSk7CiAgICAgICAgIGlmICghYnVzaWQp IHsKICAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgICAgIGdvdG8gb3V0OwpA QCAtMTQ4Myw3ICsxNTM4LDggQEAgc3RhdGljIGludCBkb191c2JkZXZfcmVtb3ZlKGxpYnhsX19n YyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgIH0K IAotICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShnYywg ZG9taWQsIHVzYmRldik7CisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZfcmVtb3Zl X3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9VU0JDVFJMX1RZUEVfUFYpOwogICAgICAgICBp ZiAocmMpIHsKICAgICAgICAgICAgIExPRyhFUlJPUiwgIkVycm9yIHJlbW92aW5nIGRldmljZSBm cm9tIGd1ZXN0LiIKICAgICAgICAgICAgICAgICAiIFRyeSBydW5uaW5nIHVzYmRldi1kZXRhY2gg YWdhaW4uIik7CkBAIC0xNDk5LDYgKzE1NTUsMTIgQEAgc3RhdGljIGludCBkb191c2JkZXZfcmVt b3ZlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICB9CiAKICAgICAgICAg YnJlYWs7CisgICAgY2FzZSBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQjoKKyAgICAgICAgcmMgPSBs aWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVuc3RvcmUoZ2MsIGRvbWlkLCB1c2JkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX1VT QkNUUkxfVFlQRV9RVVNCKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgICAgICBi cmVhazsKICAgICBjYXNlIExJQlhMX1VTQkNUUkxfVFlQRV9ERVZJQ0VNT0RFTDoKICAgICBkZWZh dWx0OgogICAgICAgICBMT0coRVJST1IsICJVbnN1cHBvcnRlZCB1c2IgY29udHJvbGxlciB0eXBl Iik7CkBAIC0xNTgzLDcgKzE2NDUsNiBAQCBpbnQgbGlieGxfY3RybHBvcnRfdG9fZGV2aWNlX3Vz YmRldihsaWJ4bF9jdHggKmN0eCwKICAgICBkb21wYXRoID0gbGlieGxfX3hzX2dldF9kb21wYXRo KGdjLCBkb21pZCk7CiAKICAgICBmZV9wYXRoID0gR0NTUFJJTlRGKCIlcy9kZXZpY2UvdnVzYi8l ZCIsIGRvbXBhdGgsIGN0cmwpOwotCiAgICAgYmVfcGF0aCA9IHZ1c2JfYmVfZnJvbV94c19mZShn YywgZmVfcGF0aCwgZG9taWQpOwogICAgIGlmICghYmVfcGF0aCkgewogICAgICAgICByYyA9IEVS Uk9SX0ZBSUw7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgYi90b29s cy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5kZXggNTliMTgzYy4uMzA0YWExMSAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5 cGVzLmlkbApAQCAtNjE4LDYgKzYxOCw3IEBAIGxpYnhsX3VzYmN0cmxfdHlwZSA9IEVudW1lcmF0 aW9uKCJ1c2JjdHJsX3R5cGUiLCBbCiAgICAgKDAsICJBVVRPIiksCiAgICAgKDEsICJQViIpLAog ICAgICgyLCAiREVWSUNFTU9ERUwiKSwKKyAgICAoMywgIlFVU0IiKSwKICAgICBdKQogCiBsaWJ4 bF91c2JkZXZfdHlwZSA9IEVudW1lcmF0aW9uKCJ1c2JkZXZfdHlwZSIsIFsKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhs X3R5cGVzX2ludGVybmFsLmlkbAppbmRleCA2OTZmNWY4Li4xNzdmOWI3IDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwKKysrIGIvdG9vbHMvbGlieGwvbGli eGxfdHlwZXNfaW50ZXJuYWwuaWRsCkBAIC0yMyw2ICsyMyw3IEBAIGxpYnhsX19kZXZpY2Vfa2lu ZCA9IEVudW1lcmF0aW9uKCJkZXZpY2Vfa2luZCIsIFsKICAgICAoNywgIkNPTlNPTEUiKSwKICAg ICAoOCwgIlZUUE0iKSwKICAgICAoOSwgIlZVU0IiKSwKKyAgICAoMTAsICJRVVNCIiksCiAgICAg XSkKIAogbGlieGxfX2NvbnNvbGVfYmFja2VuZCA9IEVudW1lcmF0aW9uKCJjb25zb2xlX2JhY2tl bmQiLCBbCi0tIAoyLjYuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==