From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v2 2/3] libxl: add new pvusb backend "qusb" provided by qemu Date: Tue, 22 Mar 2016 08:29:22 +0100 Message-ID: <1458631763-16644-3-git-send-email-jgross@suse.com> References: <1458631763-16644-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: <1458631763-16644-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 ClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiBkb2Nz L21hbi94bC5jZmcucG9kLjUgICAgICAgICAgICAgICAgfCAgMTEgKysrLQogdG9vbHMvbGlieGwv bGlieGxfZGV2aWNlLmMgICAgICAgICAgIHwgICAzICstCiB0b29scy9saWJ4bC9saWJ4bF9kbS5j ICAgICAgICAgICAgICAgfCAgIDggKysrCiB0b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oICAg ICAgICAgfCAgIDEgKwogdG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYyAgICAgICAgICAgIHwgMTAy ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiB0b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwgICAgICAgICAgfCAgIDEgKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXNfaW50ZXJu YWwuaWRsIHwgICAxICsKIDcgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDI2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWFuL3hsLmNmZy5wb2QuNSBiL2RvY3MvbWFu L3hsLmNmZy5wb2QuNQppbmRleCBlYzczOWNjLi5hNGNjMWIzIDEwMDY0NAotLS0gYS9kb2NzL21h bi94bC5jZmcucG9kLjUKKysrIGIvZG9jcy9tYW4veGwuY2ZnLnBvZC41CkBAIC03MzcsOCArNzM3 LDE1IEBAIFBvc3NpYmxlIEI8S0VZPnMgYXJlOgogCiA9aXRlbSBCPHR5cGU9VFlQRT4KIAotU3Bl Y2lmaWVzIHRoZSB1c2IgY29udHJvbGxlciB0eXBlLiAgQ3VycmVudGx5IG9ubHkgJ3B2JyBhbmQg J2F1dG8nCi1hcmUgc3VwcG9ydGVkLgorU3BlY2lmaWVzIHRoZSB1c2IgY29udHJvbGxlciB0eXBl LgorCisicHYiIGRlbm90ZXMgYSBrZXJuZWwgYmFzZWQgcHZ1c2IgYmFja2VuZC4KKworInF1c2Ii IHNwZWNpZmllcyBhIHFlbXUgYmFzZSBiYWNrZW5kIGZvciBwdnVzYi4KKworImF1dG8iICh0aGUg ZGVmYXVsdCkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEga2VybmVsIGJhc2VkIGJhY2tlbmQgaXMgaW5z dGFsbGVkLgorSWYgdGhpcyBpcyB0aGUgY2FzZSwgInB2IiBpcyBzZWxlY3RlZCwgInF1c2IiIHdp bGwgYmUgc2VsZWN0ZWQgaWYgbm8ga2VybmVsCitiYWNrZW5kIGlzIGN1cnJlbnRseSBhdmFpbGFi bGUuCiAKID1pdGVtIEI8dmVyc2lvbj1WRVJTSU9OPgogCmRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF9kZXZpY2UuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCmluZGV4IDRjZWQ5 YjYuLmViYTMwODcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCisrKyBi L3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCkBAIC02ODAsNyArNjgwLDggQEAgdm9pZCBsaWJ4 bF9fZGV2aWNlc19kZXN0cm95KGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2RldmljZXNfcmVtb3Zl X3N0YXRlICpkcnMpCiAgICAgICAgICAgICAgICAgYW9kZXYtPmFjdGlvbiA9IExJQlhMX19ERVZJ Q0VfQUNUSU9OX1JFTU9WRTsKICAgICAgICAgICAgICAgICBhb2Rldi0+ZGV2ID0gZGV2OwogICAg ICAgICAgICAgICAgIGFvZGV2LT5mb3JjZSA9IGRycy0+Zm9yY2U7Ci0gICAgICAgICAgICAgICAg aWYgKGRldi0+YmFja2VuZF9raW5kID09IExJQlhMX19ERVZJQ0VfS0lORF9WVVNCKQorICAgICAg ICAgICAgICAgIGlmIChkZXYtPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfVlVT QiB8fAorICAgICAgICAgICAgICAgICAgICBkZXYtPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVW SUNFX0tJTkRfUVVTQikKICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2luaXRpYXRlX2Rldmlj ZV91c2JjdHJsX3JlbW92ZShlZ2MsIGFvZGV2KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX19pbml0aWF0ZV9kZXZpY2VfZ2VuZXJpY19yZW1vdmUoZWdj LCBhb2Rldik7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGli eGwvbGlieGxfZG0uYwppbmRleCA4OTdmM2Y5Li4zNjFlNTg0IDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9saWJ4bF9kbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTIxMzgsNiAr MjEzOCwxNCBAQCBpbnQgbGlieGxfX25lZWRfeGVucHZfcWVtdShsaWJ4bF9fZ2MgKmdjLCBsaWJ4 bF9kb21haW5fY29uZmlnICpkX2NvbmZpZykKICAgICAgICAgfQogICAgIH0KIAorICAgIGZvciAo aSA9IDA7IGkgPCBkX2NvbmZpZy0+bnVtX3VzYmN0cmxzOyBpKyspIHsKKyAgICAgICBpZiAoZF9j b25maWctPnVzYmN0cmxzW2ldLnR5cGUgPT0gTElCWExfVVNCQ1RSTF9UWVBFX1FVU0IgJiYKKyAg ICAgICAgICAgZF9jb25maWctPnVzYmN0cmxzW2ldLmJhY2tlbmRfZG9taWQgPT0gZG9taWQpIHsK KyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQor ICAgIH0KKwogb3V0OgogICAgIHJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCBm YzdiZGFiLi4yZGI4YjFiIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5o CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKQEAgLTQ4Nyw2ICs0ODcsNyBAQCB0 eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIFFFTVVfQkFDS0VORChkZXYpIChcCiAgICAgKGRldikt PmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfUURJU0sgfHwgXAogICAgIChkZXYp LT5iYWNrZW5kX2tpbmQgPT0gTElCWExfX0RFVklDRV9LSU5EX1ZGQiB8fCBcCisgICAgKGRldikt PmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfUVVTQiB8fCBcCiAgICAgKGRldikt PmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfVktCRCkKIAogI2RlZmluZSBYQ19Q Q0lfQkRGICAgICAgICAgICAgICIweCV4LCAweCV4LCAweCV4LCAweCV4IgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3B2dXNiLmMKaW5k ZXggNWY5MjYyOC4uNzIwMGVhZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfcHZ1c2Iu YworKysgYi90b29scy9saWJ4bC9saWJ4bF9wdnVzYi5jCkBAIC0yMiw2ICsyMiwyMSBAQAogCiAj ZGVmaW5lIFVTQkhVQl9DTEFTU19DT0RFIDkKIAorc3RhdGljIGludCB1c2JiYWNrX2lzX2xvYWRl ZChsaWJ4bF9fZ2MgKmdjKQoreworICAgIGludCByOworICAgIHN0cnVjdCBzdGF0IHN0OworCisg ICAgciA9IGxzdGF0KFNZU0ZTX1VTQkJBQ0tfRFJJVkVSLCAmc3QpOworCisgICAgaWYgKHIgPT0g MCkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgaWYgKHIgPCAwICYmIGVycm5vID09IEVOT0VOVCkK KyAgICAgICAgcmV0dXJuIDA7CisgICAgTE9HRShFUlJPUiwgIkFjY2Vzc2luZyAlcyIsIFNZU0ZT X1VTQkJBQ0tfRFJJVkVSKTsKKyAgICByZXR1cm4gLTE7Cit9CisKIHN0YXRpYyBpbnQgbGlieGxf X2RldmljZV91c2JjdHJsX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rldmlj ZV91c2JjdHJsICp1c2JjdHJsKQogewpAQCAtMzYsNyArNTEsOCBAQCBzdGF0aWMgaW50IGxpYnhs X19kZXZpY2VfdXNiY3RybF9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LAogCiAgICAgaWYgKHVzYmN0cmwtPnR5cGUgPT0gTElCWExfVVNCQ1RSTF9UWVBFX0FVVE8pIHsK ICAgICAgICAgaWYgKGRvbXR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFYpIHsKLSAgICAgICAg ICAgIHVzYmN0cmwtPnR5cGUgPSBMSUJYTF9VU0JDVFJMX1RZUEVfUFY7CisgICAgICAgICAgICB1 c2JjdHJsLT50eXBlID0gdXNiYmFja19pc19sb2FkZWQoZ2MpID8gTElCWExfVVNCQ1RSTF9UWVBF X1BWCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog TElCWExfVVNCQ1RSTF9UWVBFX1FVU0I7CiAgICAgICAgIH0gZWxzZSBpZiAoZG9tdHlwZSA9PSBM SUJYTF9ET01BSU5fVFlQRV9IVk0pIHsKICAgICAgICAgICAgIC8qIEZJWE1FOiBTZWUgaWYgd2Ug Y2FuIGRldGVjdCBQViBmcm9udGVuZCAqLwogICAgICAgICAgICAgdXNiY3RybC0+dHlwZSA9IExJ QlhMX1VTQkNUUkxfVFlQRV9ERVZJQ0VNT0RFTDsKQEAgLTU0LDcgKzcwLDkgQEAgaW50IGxpYnhs X19kZXZpY2VfZnJvbV91c2JjdHJsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogewog ICAgIGRldmljZS0+YmFja2VuZF9kZXZpZCAgID0gdXNiY3RybC0+ZGV2aWQ7CiAgICAgZGV2aWNl LT5iYWNrZW5kX2RvbWlkICAgPSB1c2JjdHJsLT5iYWNrZW5kX2RvbWlkOwotICAgIGRldmljZS0+ YmFja2VuZF9raW5kICAgID0gTElCWExfX0RFVklDRV9LSU5EX1ZVU0I7CisgICAgZGV2aWNlLT5i YWNrZW5kX2tpbmQgICAgPSAodXNiY3RybC0+dHlwZSA9PSBMSUJYTF9VU0JDVFJMX1RZUEVfUFYp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IExJQlhMX19ERVZJQ0VfS0lORF9WVVNC CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IExJQlhMX19ERVZJQ0VfS0lORF9RVVNC OwogICAgIGRldmljZS0+ZGV2aWQgICAgICAgICAgID0gdXNiY3RybC0+ZGV2aWQ7CiAgICAgZGV2 aWNlLT5kb21pZCAgICAgICAgICAgPSBkb21pZDsKICAgICBkZXZpY2UtPmtpbmQgICAgICAgICAg ICA9IExJQlhMX19ERVZJQ0VfS0lORF9WVVNCOwpAQCAtNjQsOSArODIsOSBAQCBpbnQgbGlieGxf X2RldmljZV9mcm9tX3VzYmN0cmwobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAKIC8q IEFkZCB1c2JjdHJsIGluZm9ybWF0aW9uIHRvIHhlbnN0b3JlLgogICoKLSAqIEFkZGluZyBhIHVz YiBjb250cm9sbGVyIHdpbGwgYWRkIGEgbmV3ICd2dXNiJyBkZXZpY2UgaW4geGVuc3RvcmUsIGFu ZAotICogYWRkIGNvcnJlc3BvbmRpbmcgZnJvbnRlbmQsIGJhY2tlbmQgaW5mb3JtYXRpb24gdG8g aXQuIEFjY29yZGluZyB0bwotICogInVwZGF0ZV9qc29uIiwgZGVjaWRlIHdldGhlciB0byB1cGRh dGUganNvbiBjb25maWcgZmlsZS4KKyAqIEFkZGluZyBhIHVzYiBjb250cm9sbGVyIHdpbGwgYWRk IGEgbmV3ICdxdXNiJyBvciAndnVzYicgZGV2aWNlIGluIHhlbnN0b3JlLAorICogYW5kIGFkZCBj b3JyZXNwb25kaW5nIGZyb250ZW5kLCBiYWNrZW5kIGluZm9ybWF0aW9uIHRvIGl0LiBBY2NvcmRp bmcgdG8KKyAqICJ1cGRhdGVfanNvbiIsIGRlY2lkZSB3aGV0aGVyIHRvIHVwZGF0ZSBqc29uIGNv bmZpZyBmaWxlLgogICovCiBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiY3RybF9hZGRfeGVu c3RvcmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmN0cmwgKnVzYmN0cmws CkBAIC0xNTksNiArMTc3LDE4IEBAIG91dDoKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBj aGFyICpwdnVzYl9nZXRfZGV2aWNlX3R5cGUobGlieGxfdXNiY3RybF90eXBlIHR5cGUpCit7Cisg ICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBMSUJYTF9VU0JDVFJMX1RZUEVfUFY6CisgICAg ICAgIHJldHVybiAidnVzYiI7CisgICAgY2FzZSBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQjoKKyAg ICAgICAgcmV0dXJuICJxdXNiIjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gTlVMTDsK KyAgICB9Cit9CisKIC8qIEFPIG9wZXJhdGlvbiB0byBhZGQgYSB1c2IgY29udHJvbGxlci4KICAq CiAgKiBHZW5lcmFsbHksIGl0IGRvZXM6CkBAIC0xOTAsNyArMjIwLDggQEAgdm9pZCBsaWJ4bF9f ZGV2aWNlX3VzYmN0cmxfYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCiAgICAg ICAgIH0KICAgICB9CiAKLSAgICBpZiAodXNiY3RybC0+dHlwZSAhPSBMSUJYTF9VU0JDVFJMX1RZ UEVfUFYpIHsKKyAgICBpZiAodXNiY3RybC0+dHlwZSAhPSBMSUJYTF9VU0JDVFJMX1RZUEVfUFYg JiYKKyAgICAgICAgdXNiY3RybC0+dHlwZSAhPSBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQikgewog ICAgICAgICBMT0coRVJST1IsICJVbnN1cHBvcnRlZCBVU0IgY29udHJvbGxlciB0eXBlIik7CiAg ICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CkBAIC0yNTIsNyArMjgz LDggQEAgdm9pZCBsaWJ4bF9faW5pdGlhdGVfZGV2aWNlX3VzYmN0cmxfcmVtb3ZlKGxpYnhsX19l Z2MgKmVnYywKICAgICByYyA9IGxpYnhsX2RldmljZV91c2JjdHJsX2dldGluZm8oQ1RYLCBkb21p ZCwgJnVzYmN0cmwsICZ1c2JjdHJsaW5mbyk7CiAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAotICAg IGlmICh1c2JjdHJsaW5mby50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9QVikgeworICAgIGlm ICh1c2JjdHJsaW5mby50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9QViAmJgorICAgICAgICB1 c2JjdHJsaW5mby50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9RVVNCKSB7CiAgICAgICAgIExP RyhFUlJPUiwgIlVuc3VwcG9ydGVkIFVTQiBjb250cm9sbGVyIHR5cGUiKTsKICAgICAgICAgcmMg PSBFUlJPUl9GQUlMOwogICAgICAgICBnb3RvIG91dDsKQEAgLTI5Myw2ICszMjUsNyBAQCBzdGF0 aWMgY29uc3QgY2hhciAqdnVzYl9iZV9mcm9tX3hzX2ZlKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNo YXIgKmZlX3BhdGgsCiAgICAgY29uc3QgY2hhciAqYmVfcGF0aDsKICAgICBpbnQgcjsKICAgICB1 aW50MzJfdCBiZV9kb21pZCwgZmVfZG9taWQ7CisgICAgY2hhciBiZV90eXBlWzE2XTsKIAogICAg IHIgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwgR0NTUFJJTlRGKCIlcy9i YWNrZW5kIiwgZmVfcGF0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJlX3Bh dGgpOwpAQCAtMzAwLDEwICszMzMsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnZ1c2JfYmVfZnJv bV94c19mZShsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFyICpmZV9wYXRoLAogCiAgICAgLyogQ2hl Y2sgdG8gc2VlIHRoYXQgaXQgaGFzIHRoZSBwcm9wZXIgZm9ybSwgYW5kIHRoYXQgZmVfZG9taWQg PT0KICAgICAgKiB0YXJnZXQgZG9taWQgKi8KLSAgICByID0gc3NjYW5mKGJlX3BhdGgsICIvbG9j YWwvZG9tYWluLyVkL2JhY2tlbmQvdnVzYi8lZCIsCi0gICAgICAgICAgICAgICAmYmVfZG9taWQs ICZmZV9kb21pZCk7CisgICAgciA9IHNzY2FuZihiZV9wYXRoLCAiL2xvY2FsL2RvbWFpbi8lZC9i YWNrZW5kLyUxNVteL10vJWQiLAorICAgICAgICAgICAgICAgJmJlX2RvbWlkLCBiZV90eXBlLCAm ZmVfZG9taWQpOwogCi0gICAgaWYgKHIgIT0gMiB8fCBmZV9kb21pZCAhPSB0Z3RfZG9taWQpIHsK KyAgICBpZiAociAhPSAzIHx8IGZlX2RvbWlkICE9IHRndF9kb21pZCkgewogICAgICAgICBMT0co RVJST1IsICJNYWxmb3JtZWQgYmFja2VuZCwgcmVmdXNpbmcgdG8gdXNlIik7CiAgICAgICAgIHJl dHVybiBOVUxMOwogICAgIH0KQEAgLTc0MCw4ICs3NzMsOSBAQCBsaWJ4bF9fZGV2aWNlX3VzYmRl dl9zZXRfZGVmYXVsdF91c2JjdHJsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAg ICAgICBmb3IgKGogPSAwOyBqIDwgdXNiY3RybHNbaV0ucG9ydHM7IGorKykgewogICAgICAgICAg ICAgY29uc3QgY2hhciAqcGF0aCwgKnRtcDsKIAotICAgICAgICAgICAgcGF0aCA9IEdDU1BSSU5U RigiJXMvYmFja2VuZC92dXNiLyVkLyVkL3BvcnQvJWQiLAorICAgICAgICAgICAgcGF0aCA9IEdD U1BSSU5URigiJXMvYmFja2VuZC8lcy8lZC8lZC9wb3J0LyVkIiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX3hzX2dldF9kb21wYXRoKGdjLCBMSUJYTF9UT09MU1RBQ0tfRE9N SUQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUo dXNiY3RybHNbaV0udHlwZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkLCB1 c2JjdHJsc1tpXS5kZXZpZCwgaiArIDEpOwogICAgICAgICAgICAgcmMgPSBsaWJ4bF9feHNfcmVh ZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwgcGF0aCwgJnRtcCk7CiAgICAgICAgICAgICBpZiAocmMp IGdvdG8gb3V0OwpAQCAtODgzLDExICs5MTcsMTIgQEAgb3V0OgogCiAvKiBBZGQgdXNiIGluZm9y bWF0aW9uIHRvIHhlbnN0b3JlCiAgKgotICogQWRkaW5nIGEgdXNiIGRldmljZSB3b24ndCBjcmVh dGUgbmV3ICd2dXNiJyBkZXZpY2UsIGJ1dCBvbmx5IHdyaXRlCisgKiBBZGRpbmcgYSB1c2IgZGV2 aWNlIHdvbid0IGNyZWF0ZSBuZXcgJ3F1c2InLyd2dXNiJyBkZXZpY2UsIGJ1dCBvbmx5IHdyaXRl CiAgKiB0aGUgZGV2aWNlIGJ1c2lkIHRvIHRoZSBjb250cm9sbGVyOnBvcnQgaW4geGVuc3RvcmUu CiAgKi8KIHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3JlKGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmRldiAqdXNiZGV2LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdXNiY3RybF90eXBlIHR5cGUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHVwZGF0 ZV9qc29uKQogewogICAgIGNoYXIgKmJlX3BhdGgsICpidXNpZDsKQEAgLTkzMSw4ICs5NjYsOSBA QCBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiZGV2X2FkZF94ZW5zdG9yZShsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CiAgICAg ICAgIH0KIAotICAgICAgICBiZV9wYXRoID0gR0NTUFJJTlRGKCIlcy9iYWNrZW5kL3Z1c2IvJWQv JWQvcG9ydC8lZCIsCisgICAgICAgIGJlX3BhdGggPSBHQ1NQUklOVEYoIiVzL2JhY2tlbmQvJXMv JWQvJWQvcG9ydC8lZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hzX2dl dF9kb21wYXRoKGdjLCBMSUJYTF9UT09MU1RBQ0tfRE9NSUQpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHB2dXNiX2dldF9kZXZpY2VfdHlwZSh0eXBlKSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYtPnBvcnQpOwogCiAgICAgICAg IExPRyhERUJVRywgIkFkZGluZyB1c2IgZGV2aWNlICVzIHRvIHhlbnN0b3JlOiBjb250cm9sbGVy ICVkLCBwb3J0ICVkIiwKQEAgLTk1NiwxMiArOTkyLDE0IEBAIG91dDoKIH0KIAogc3RhdGljIGlu dCBsaWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVuc3RvcmUobGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF91c2Jj dHJsX3R5cGUgdHlwZSkKIHsKICAgICBjaGFyICpiZV9wYXRoOwogCi0gICAgYmVfcGF0aCA9IEdD U1BSSU5URigiJXMvYmFja2VuZC92dXNiLyVkLyVkL3BvcnQvJWQiLAorICAgIGJlX3BhdGggPSBH Q1NQUklOVEYoIiVzL2JhY2tlbmQvJXMvJWQvJWQvcG9ydC8lZCIsCiAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIExJQlhMX1RPT0xTVEFDS19ET01JRCks CisgICAgICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUodHlwZSksCiAg ICAgICAgICAgICAgICAgICAgICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYtPnBvcnQp OwogCiAgICAgTE9HKERFQlVHLCAiUmVtb3ZpbmcgdXNiIGRldmljZSBmcm9tIHhlbnN0b3JlOiBj b250cm9sbGVyICVkLCBwb3J0ICVkIiwKQEAgLTk3MSwxMiArMTAwOSwxNCBAQCBzdGF0aWMgaW50 IGxpYnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCB1aW50 MzJfdCBkb21pZCwKIH0KIAogc3RhdGljIGNoYXIgKnVzYmRldl9idXNpZF9mcm9tX2N0cmxwb3J0 KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV91c2JkZXYgKnVzYmRldikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdXNiY3RybF90 eXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIGxpYnhsX194c19yZWFkKGdjLCBYQlRfTlVMTCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy9iYWNrZW5kL3Z1c2IvJWQvJWQv cG9ydC8lZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvYmFja2Vu ZC8lcy8lZC8lZC9wb3J0LyVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X194c19nZXRfZG9tcGF0aChnYywgTElCWExfVE9PTFNUQUNLX0RPTUlEKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgZG9taWQsIHVzYmRldi0+Y3RybCwgdXNiZGV2LT5wb3J0KSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUodHlwZSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYt PnBvcnQpKTsKIH0KIAogLyogZ2V0IG9yaWdpbmFsIGRyaXZlciBwYXRoIG9mIHVzYiBpbnRlcmZh Y2UsIHN0b3JlZCBpbiBAZHJ2cGF0aCAqLwpAQCAtMTMzMywxNSArMTM3MywyNSBAQCBzdGF0aWMg aW50IGRvX3VzYmRldl9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAg ICAgICBnb3RvIG91dDsKICAgICAgICAgfQogCi0gICAgICAgIHJjID0gbGlieGxfX2RldmljZV91 c2JkZXZfYWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LCB1cGRhdGVfanNvbik7CisgICAg ICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNi ZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJY TF9VU0JDVFJMX1RZUEVfUFYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVwZGF0ZV9qc29uKTsKICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAogICAg ICAgICByYyA9IHVzYmJhY2tfZGV2X2Fzc2lnbihnYywgYnVzaWQpOwogICAgICAgICBpZiAocmMp IHsKLSAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShnYywg ZG9taWQsIHVzYmRldik7CisgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVf eGVuc3RvcmUoZ2MsIGRvbWlkLCB1c2JkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTElCWExfVVNCQ1RSTF9UWVBFX1BWKTsKICAgICAgICAgICAg IGdvdG8gb3V0OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTElCWExfVVNC Q1RSTF9UWVBFX1FVU0I6CisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hl bnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2pzb24pOworICAgICAgICBp ZiAocmMpIGdvdG8gb3V0OworCisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTElCWExfVVNCQ1RS TF9UWVBFX0RFVklDRU1PREVMOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIExPRyhFUlJPUiwgIlVu c3VwcG9ydGVkIHVzYiBjb250cm9sbGVyIHR5cGUiKTsKQEAgLTE0NTgsNyArMTUwOCw3IEBAIHN0 YXRpYyBpbnQgZG9fdXNiZGV2X3JlbW92ZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwK IAogICAgIHN3aXRjaCAodXNiY3RybGluZm8udHlwZSkgewogICAgIGNhc2UgTElCWExfVVNCQ1RS TF9UWVBFX1BWOgotICAgICAgICBidXNpZCA9IHVzYmRldl9idXNpZF9mcm9tX2N0cmxwb3J0KGdj LCBkb21pZCwgdXNiZGV2KTsKKyAgICAgICAgYnVzaWQgPSB1c2JkZXZfYnVzaWRfZnJvbV9jdHJs cG9ydChnYywgZG9taWQsIHVzYmRldiwgdXNiY3RybGluZm8udHlwZSk7CiAgICAgICAgIGlmICgh YnVzaWQpIHsKICAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgICAgIGdvdG8g b3V0OwpAQCAtMTQ4Myw3ICsxNTMzLDggQEAgc3RhdGljIGludCBkb191c2JkZXZfcmVtb3ZlKGxp YnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAg ICAgIH0KIAotICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9y ZShnYywgZG9taWQsIHVzYmRldik7CisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZf cmVtb3ZlX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9VU0JDVFJMX1RZUEVfUFYpOwogICAg ICAgICBpZiAocmMpIHsKICAgICAgICAgICAgIExPRyhFUlJPUiwgIkVycm9yIHJlbW92aW5nIGRl dmljZSBmcm9tIGd1ZXN0LiIKICAgICAgICAgICAgICAgICAiIFRyeSBydW5uaW5nIHVzYmRldi1k ZXRhY2ggYWdhaW4uIik7CkBAIC0xNDk5LDYgKzE1NTAsMTIgQEAgc3RhdGljIGludCBkb191c2Jk ZXZfcmVtb3ZlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICB9CiAKICAg ICAgICAgYnJlYWs7CisgICAgY2FzZSBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQjoKKyAgICAgICAg cmMgPSBsaWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVuc3RvcmUoZ2MsIGRvbWlkLCB1c2Jk ZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJ QlhMX1VTQkNUUkxfVFlQRV9RVVNCKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAg ICAgICBicmVhazsKICAgICBjYXNlIExJQlhMX1VTQkNUUkxfVFlQRV9ERVZJQ0VNT0RFTDoKICAg ICBkZWZhdWx0OgogICAgICAgICBMT0coRVJST1IsICJVbnN1cHBvcnRlZCB1c2IgY29udHJvbGxl ciB0eXBlIik7CkBAIC0xNTgzLDcgKzE2NDAsNiBAQCBpbnQgbGlieGxfY3RybHBvcnRfdG9fZGV2 aWNlX3VzYmRldihsaWJ4bF9jdHggKmN0eCwKICAgICBkb21wYXRoID0gbGlieGxfX3hzX2dldF9k b21wYXRoKGdjLCBkb21pZCk7CiAKICAgICBmZV9wYXRoID0gR0NTUFJJTlRGKCIlcy9kZXZpY2Uv dnVzYi8lZCIsIGRvbXBhdGgsIGN0cmwpOwotCiAgICAgYmVfcGF0aCA9IHZ1c2JfYmVfZnJvbV94 c19mZShnYywgZmVfcGF0aCwgZG9taWQpOwogICAgIGlmICghYmVfcGF0aCkgewogICAgICAgICBy YyA9IEVSUk9SX0ZBSUw7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwg Yi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5kZXggNTliMTgzYy4uMzA0YWExMSAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX3R5cGVzLmlkbApAQCAtNjE4LDYgKzYxOCw3IEBAIGxpYnhsX3VzYmN0cmxfdHlwZSA9IEVu dW1lcmF0aW9uKCJ1c2JjdHJsX3R5cGUiLCBbCiAgICAgKDAsICJBVVRPIiksCiAgICAgKDEsICJQ ViIpLAogICAgICgyLCAiREVWSUNFTU9ERUwiKSwKKyAgICAoMywgIlFVU0IiKSwKICAgICBdKQog CiBsaWJ4bF91c2JkZXZfdHlwZSA9IEVudW1lcmF0aW9uKCJ1c2JkZXZfdHlwZSIsIFsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbCBiL3Rvb2xzL2xpYnhs L2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbAppbmRleCA2OTZmNWY4Li4xNzdmOWI3IDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfdHlwZXNfaW50ZXJuYWwuaWRsCkBAIC0yMyw2ICsyMyw3IEBAIGxpYnhsX19kZXZp Y2Vfa2luZCA9IEVudW1lcmF0aW9uKCJkZXZpY2Vfa2luZCIsIFsKICAgICAoNywgIkNPTlNPTEUi KSwKICAgICAoOCwgIlZUUE0iKSwKICAgICAoOSwgIlZVU0IiKSwKKyAgICAoMTAsICJRVVNCIiks CiAgICAgXSkKIAogbGlieGxfX2NvbnNvbGVfYmFja2VuZCA9IEVudW1lcmF0aW9uKCJjb25zb2xl X2JhY2tlbmQiLCBbCi0tIAoyLjYuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==