From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v3 04/11] libxl: add generic function to add device Date: Tue, 27 Jun 2017 13:03:20 +0300 Message-ID: <1498557807-10810-5-git-send-email-al1img@gmail.com> References: <1498557807-10810-1-git-send-email-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dPnLR-0007Ey-3Z for xen-devel@lists.xenproject.org; Tue, 27 Jun 2017 10:03:41 +0000 Received: by mail-lf0-f68.google.com with SMTP id t72so2312560lff.0 for ; Tue, 27 Jun 2017 03:03:39 -0700 (PDT) In-Reply-To: <1498557807-10810-1-git-send-email-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, ian.jackson@eu.citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IGxpYnhsX19kZXZpY2VfYWRkIGZ1bmN0aW8uCkFsbW9zdCBhbGwgZGV2aWNlcyBoYXZlIHNpbWls YXIgbGlieGxfX2RldmljZV94eHh4X2FkZCBmdW5jdGlvbi4KVGhpcyBnZW5lcmljIGZ1bmN0aW9u IGltcGxlbWVudHMgc2FtZSBmdW5jdGlvbmFsaXR5IGJ1dAp1c2luZyB0aGUgZGV2aWNlIGhhbmRs aW5nIGZyYW1ld29yay4gVGhlIGRldmljZSBzcGVjaWZpYwpwYXJ0IHRoaXMgaXMgc2V0dGluZyB4 ZW4gc3RvcmUgY29uZmlndXJhdGlvbi4gVGhpcyBwYXJ0CmlzIG1vdmVkIHRvIHNldF94ZW5zdG9y ZV9jb25maWcgY2FsbGJhY2sgb2YgdGhlIGRldmljZSBmcmFtZXdvcmsuCgpTaWduZWQtb2ZmLWJ5 OiBPbGVrc2FuZHIgR3J5dHNvdiA8b2xla3NhbmRyX2dyeXRzb3ZAZXBhbS5jb20+Ci0tLQogdG9v bHMvbGlieGwvbGlieGxfY3JlYXRlLmMgICB8ICAgMiArCiB0b29scy9saWJ4bC9saWJ4bF9kZXZp Y2UuYyAgIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggfCAgMTUgKysrKysrKwogdG9vbHMvbGlieGwv bGlieGxfdXNiLmMgICAgICB8ICAgMiArCiB0b29scy9saWJ4bC9saWJ4bF92ZGlzcGwuYyAgIHwg IDE3ICsrKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xp YnhsL2xpYnhsX2NyZWF0ZS5jCmluZGV4IGJmZmJjNDUuLjRlNWJhMjkgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5j CkBAIC0xNDMwLDYgKzE0MzAsOCBAQCBvdXQ6CiAKICNkZWZpbmUgbGlieGxfZGV2aWNlX2R0ZGV2 X2xpc3QgTlVMTAogI2RlZmluZSBsaWJ4bF9kZXZpY2VfZHRkZXZfY29tcGFyZSBOVUxMCisjZGVm aW5lIGxpYnhsX19kZXZpY2VfZnJvbV9kdGRldiBOVUxMCisjZGVmaW5lIGxpYnhsX19kZXZpY2Vf ZHRkZXZfc2V0ZGVmYXVsdCBOVUxMCiBzdGF0aWMgREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVChk dGRldik7CiAKIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZGV2aWNlX3R5cGVfdGJs W10gPSB7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYyBiL3Rvb2xzL2xp YnhsL2xpYnhsX2RldmljZS5jCmluZGV4IDhiY2ZhMmIuLmUyMDI1MDMgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5j CkBAIC0xNzkzLDYgKzE3OTMsMTA5IEBAIG91dDoKICAgICByZXR1cm4gQU9fQ1JFQVRFX0ZBSUwo cmMpOwogfQogCitzdGF0aWMgaW50IGRldmljZV9hZGRfZG9tYWluX2NvbmZpZyhsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZHQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2b2lkICp0eXBlKQoreworICAgIGludCByYzsKKyAgICBsaWJ4bF9k b21haW5fY29uZmlnIGRfY29uZmlnOworICAgIGxpYnhsX19kb21haW5fdXNlcmRhdGFfbG9jayAq bG9jayA9IE5VTEw7CisgICAgaW50ICpudW1fZGV2OworICAgIGludCBpOworICAgIHZvaWQgKml0 ZW0gPSBOVUxMOworCisgICAgbGlieGxfZG9tYWluX2NvbmZpZ19pbml0KCZkX2NvbmZpZyk7CisK KyAgICBsb2NrID0gbGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGdjLCBkb21pZCk7CisgICAg aWYgKCFsb2NrKSB7CisgICAgICAgIHJjID0gRVJST1JfTE9DS19GQUlMOyBnb3RvIG91dDsKKyAg ICB9CisKKyAgICByYyA9IGxpYnhsX19nZXRfZG9tYWluX2NvbmZpZ3VyYXRpb24oZ2MsIGRvbWlk LCAmZF9jb25maWcpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICBudW1fZGV2ID0gbGli eGxfX2RldmljZV90eXBlX2dldF9udW0oZHQsICZkX2NvbmZpZyk7CisKKyAgICAvKiBDaGVjayBm b3IgZXhpc3RpbmcgZGV2aWNlICovCisgICAgZm9yIChpID0gMDsgaSA8ICpudW1fZGV2OyBpKysp IHsKKyAgICAgICAgaWYgKGR0LT5jb21wYXJlKGxpYnhsX19kZXZpY2VfdHlwZV9nZXRfZWxlbShk dCwgJmRfY29uZmlnLCBpKSwgdHlwZSkpIHsKKyAgICAgICAgICAgIGl0ZW0gPSBsaWJ4bF9fZGV2 aWNlX3R5cGVfZ2V0X2VsZW0oZHQsICZkX2NvbmZpZywgaSk7CisgICAgICAgIH0KKyAgICB9CisK KyAgICBpZiAoIWl0ZW0pIHsKKyAgICAgICAgdm9pZCAqKmRldnM9IGxpYnhsX19kZXZpY2VfdHlw ZV9nZXRfcHRyKGR0LCAmZF9jb25maWcpOworICAgICAgICAqZGV2cyA9IGxpYnhsX19yZWFsbG9j KE5PR0MsICpkZXZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR0LT5kZXZfZWxl bV9zaXplICogKCpudW1fZGV2ICsgMSkpOworICAgICAgICBpdGVtID0gbGlieGxfX2RldmljZV90 eXBlX2dldF9lbGVtKGR0LCAmZF9jb25maWcsICpudW1fZGV2KTsKKyAgICAgICAgKCpudW1fZGV2 KSsrOworICAgIH0gZWxzZSB7CisgICAgICAgIGR0LT5kaXNwb3NlKGl0ZW0pOworICAgIH0KKwor ICAgIGR0LT5pbml0KGl0ZW0pOworICAgIGR0LT5jb3B5KENUWCwgaXRlbSwgdHlwZSk7CisKKyAg ICByYyA9IGxpYnhsX19kbV9jaGVja19zdGFydChnYywgJmRfY29uZmlnLCBkb21pZCk7CisgICAg aWYgKHJjKSBnb3RvIG91dDsKKworICAgIHJjID0gbGlieGxfX3NldF9kb21haW5fY29uZmlndXJh dGlvbihnYywgZG9taWQsICZkX2NvbmZpZyk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAg IHJjID0gMDsKKworb3V0OgorICAgIGlmIChsb2NrKSBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2Vy ZGF0YShsb2NrKTsKKyAgICBsaWJ4bF9kb21haW5fY29uZmlnX2Rpc3Bvc2UoJmRfY29uZmlnKTsK KyAgICByZXR1cm4gcmM7Cit9CisKK3ZvaWQgbGlieGxfX2RldmljZV9hZGQobGlieGxfX2VnYyAq ZWdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGxpYnhsX2RldmljZV90eXBlICpkdCwgdm9pZCAqdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCit7CisgICAgU1RBVEVfQU9fR0MoYW9kZXYtPmFv KTsKKyAgICBsaWJ4bF9fZGV2aWNlICpkZXZpY2U7CisgICAgaW50IHJjOworCisgICAgcmMgPSBk dC0+c2V0X2RlZmF1bHQoZ2MsIGRvbWlkLCB0eXBlKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0Owor CisgICAgR0NORVcoZGV2aWNlKTsKKyAgICByYyA9IGR0LT50b19kZXZpY2UoZ2MsIGRvbWlkLCB0 eXBlLCBkZXZpY2UpOworICAgIGlmICggcmMgIT0gMCApIGdvdG8gb3V0OworCisgICAgcmMgPSBs aWJ4bF9fZGV2aWNlX2V4aXN0cyhnYywgWEJUX05VTEwsIGRldmljZSk7CisgICAgaWYgKHJjIDwg MCkgZ290byBvdXQ7CisgICAgaWYgKHJjID09IDEpIHsgICAgICAgICAgICAgIC8qIGFscmVhZHkg ZXhpc3RzIGluIHhlbnN0b3JlICovCisgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiZGV2aWNl IGFscmVhZHkgZXhpc3RzIGluIHhlbnN0b3JlIik7CisgICAgICAgIGFvZGV2LT5hY3Rpb24gPSBM SUJYTF9fREVWSUNFX0FDVElPTl9BREQ7IC8qIGZvciBlcnJvciBtZXNzYWdlICovCisgICAgICAg IHJjID0gRVJST1JfREVWSUNFX0VYSVNUUzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisg ICAgaWYgKGFvZGV2LT51cGRhdGVfanNvbikgeworICAgICAgICByYyA9IGRldmljZV9hZGRfZG9t YWluX2NvbmZpZyhnYywgZG9taWQsIGR0LCB0eXBlKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91 dDsKKyAgICB9CisKKyAgICBpZiAoZHQtPnNldF94ZW5zdG9yZV9jb25maWcpIHsKKyAgICAgICAg cmMgPSBkdC0+c2V0X3hlbnN0b3JlX2NvbmZpZyhnYywgZG9taWQsIHR5cGUpOworICAgICAgICBp ZiAocmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIGFvZGV2LT5kZXYgPSBkZXZpY2U7CisgICAg YW9kZXYtPmFjdGlvbiA9IExJQlhMX19ERVZJQ0VfQUNUSU9OX0FERDsKKyAgICBsaWJ4bF9fd2Fp dF9kZXZpY2VfY29ubmVjdGlvbihlZ2MsIGFvZGV2KTsKKworICAgIHJjID0gMDsKKworb3V0Ogor ICAgIGFvZGV2LT5yYyA9IHJjOworICAgIGlmKHJjKSBhb2Rldi0+Y2FsbGJhY2soZWdjLCBhb2Rl dik7CisgICAgcmV0dXJuOworfQorCiB2b2lkKiBsaWJ4bF9fZGV2aWNlX2xpc3QoY29uc3Qgc3Ry dWN0IGxpYnhsX2RldmljZV90eXBlICpkdCwKICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4 bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGludCAqbnVtKQogewpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgK aW5kZXggYzE5MjU1OS4uMzM5NzY1NSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0zNDg0LDEzICsz NDg0LDE3IEBAIHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSB7CiAgICAgdm9pZCAoKmFkZCkobGli eGxfX2VnYyAqLCBsaWJ4bF9fYW8gKiwgdWludDMyX3QsIGxpYnhsX2RvbWFpbl9jb25maWcgKiwK ICAgICAgICAgICAgICAgICBsaWJ4bF9fbXVsdGlkZXYgKik7CiAgICAgdm9pZCAqKCpsaXN0KShs aWJ4bF9jdHggKiwgdWludDMyX3QsIGludCAqKTsKKyAgICBpbnQgKCpzZXRfZGVmYXVsdCkobGli eGxfX2djICosIHVpbnQzMl90LCB2b2lkICopOworICAgIGludCAoKnRvX2RldmljZSkobGlieGxf X2djICosIHVpbnQzMl90LCB2b2lkICosIGxpYnhsX19kZXZpY2UgKik7CiAgICAgdm9pZCAoKmlu aXQpKHZvaWQgKik7CisgICAgdm9pZCAoKmNvcHkpKGxpYnhsX2N0eCAqLCB2b2lkICosIHZvaWQg Kik7CiAgICAgdm9pZCAoKmRpc3Bvc2UpKHZvaWQgKik7CiAgICAgaW50ICgqY29tcGFyZSkodm9p ZCAqLCB2b2lkICopOwogICAgIHZvaWQgKCptZXJnZSkobGlieGxfY3R4ICosIHZvaWQgKiwgdm9p ZCAqKTsKICAgICBpbnQgKCpkbV9uZWVkZWQpKHZvaWQgKiwgdW5zaWduZWQpOwogICAgIHZvaWQg KCp1cGRhdGVfY29uZmlnKShsaWJ4bF9fZ2MgKiwgdm9pZCAqLCB2b2lkICopOwogICAgIGludCAo KmZyb21feGVuc3RvcmUpKGxpYnhsX19nYyAqLCBjb25zdCBjaGFyICosIHVpbnQzMl90LCB2b2lk ICopOworICAgIGludCAoKnNldF94ZW5zdG9yZV9jb25maWcpKGxpYnhsX19nYyAqLCB1aW50MzJf dCwgdm9pZCAqKTsKIH07CiAKICNkZWZpbmUgREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVF9YKG5h bWUsIHNuYW1lLCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0zNTAyLDcgKzM1 MDYsMTQgQEAgc3RydWN0IGxpYnhsX2RldmljZV90eXBlIHsKICAgICAgICAgLmFkZCAgICAgICAg ICAgPSBsaWJ4bF9fYWRkXyAjIyBuYW1lICMjIHMsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgICAgIC5saXN0ICAgICAgICAgID0gKHZvaWQgKigqKShsaWJ4bF9jdHggKiwgdWlu dDMyX3QsIGludCAqKSkgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX2RldmljZV8gIyMgc25hbWUgIyMgX2xpc3QsICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgLnNldF9kZWZhdWx0ICAgPSAoaW50ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZv aWQgKikpICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Rl dmljZV8gIyMgc25hbWUgIyMgX3NldGRlZmF1bHQsICAgICAgICAgICAgICAgXAorICAgICAgICAu dG9fZGV2aWNlICAgICA9IChpbnQgKCopKGxpYnhsX19nYyAqLCB1aW50MzJfdCwgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICos IGxpYnhsX19kZXZpY2UgKikpICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2RldmljZV9mcm9tXyAjIyBuYW1lLCAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICAgICAuaW5pdCAgICAgICAgICA9ICh2b2lkICgqKSh2b2lkICopKWxpYnhs X2RldmljZV8gIyMgc25hbWUgIyMgX2luaXQsICAgIFwKKyAgICAgICAgLmNvcHkgICAgICAgICAg PSAodm9pZCAoKikobGlieGxfY3R4ICosIHZvaWQgKiwgdm9pZCAqKSkgICAgICAgICAgICAgICBc CisgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlXyAjIyBzbmFtZSAjIyBfY29w eSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAuZGlzcG9zZSAgICAgICA9ICh2b2lk ICgqKSh2b2lkICopKWxpYnhsX2RldmljZV8gIyMgc25hbWUgIyMgX2Rpc3Bvc2UsIFwKICAgICAg ICAgLmNvbXBhcmUgICAgICAgPSAoaW50ICgqKSh2b2lkICosIHZvaWQgKikpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNl XyAjIyBzbmFtZSAjIyBfY29tcGFyZSwgICAgICAgICAgICAgICAgICAgXApAQCAtNDM1NCw2ICs0 MzY1LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsaWJ4bF9fYWNwaV9kZWZib29sX3ZhbChjb25z dCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvCiAgICAgcmV0dXJuIGxpYnhsX2RlZmJv b2xfdmFsKGJfaW5mby0+YWNwaSkgJiYKICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoYl9p bmZvLT51Lmh2bS5hY3BpKTsKIH0KKwordm9pZCBsaWJ4bF9fZGV2aWNlX2FkZChsaWJ4bF9fZWdj ICplZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgbGlieGxfZGV2aWNlX3R5cGUgKmR0LCB2b2lkICp0eXBlLAorICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2Rldik7CiB2b2lkKiBsaWJ4bF9fZGV2aWNlX2xpc3Qo Y29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBlICpkdCwKICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGludCAqbnVtKTsKIHZvaWQgbGli eGxfX2RldmljZV9saXN0X2ZyZWUoY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBlICpkdCwK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3VzYi5jIGIvdG9vbHMvbGlieGwvbGlieGxf dXNiLmMKaW5kZXggZDg5NDhkNS4uZDFlYzI4ZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfdXNiLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdXNiLmMKQEAgLTE5NjgsNiArMTk2OCw4 IEBAIHZvaWQgbGlieGxfZGV2aWNlX3VzYmRldl9saXN0X2ZyZWUobGlieGxfZGV2aWNlX3VzYmRl diAqbGlzdCwgaW50IG5yKQogREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVCh1c2JjdHJsLAogICAg IC5kbV9uZWVkZWQgPSBsaWJ4bF9kZXZpY2VfdXNiY3RybF9kbV9uZWVkZWQKICk7CisKKyNkZWZp bmUgbGlieGxfX2RldmljZV9mcm9tX3VzYmRldiBOVUxMCiBERUZJTkVfREVWSUNFX1RZUEVfU1RS VUNUKHVzYmRldik7CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF92ZGlzcGwu YyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3ZkaXNwbC5jCmluZGV4IGE2MjhhZGMuLmM3OWJjZGEgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3ZkaXNwbC5jCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX3ZkaXNwbC5jCkBAIC0xNCw2ICsxNCwyMSBAQAogCiAjaW5jbHVkZSAibGlieGxfaW50ZXJu YWwuaCIKIAorc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3ZkaXNwbF9zZXRkZWZhdWx0KGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX2RldmljZV92ZGlzcGwgKnZkaXNwbCkKK3sKKyAgICBpbnQgcmM7 CisKKyAgICByYyA9IGxpYnhsX19yZXNvbHZlX2RvbWlkKGdjLCB2ZGlzcGwtPmJhY2tlbmRfZG9t bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2ZGlzcGwtPmJhY2tlbmRfZG9t aWQpOworCisgICAgaWYgKHZkaXNwbC0+ZGV2aWQgPT0gLTEpIHsKKyAgICAgICAgdmRpc3BsLT5k ZXZpZCA9IGxpYnhsX19kZXZpY2VfbmV4dGlkKGdjLCBkb21pZCwgInZkaXNwbCIpOworICAgIH0K KworICAgIHJldHVybiByYzsKK30KKwogc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX2Zyb21fdmRp c3BsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92ZGlzcGwgKnZkaXNwbCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlICpkZXZpY2UpCkBAIC00Nyw3 ICs2Miw3IEBAIHN0YXRpYyB2b2lkIGxpYnhsX19kZXZpY2VfdmRpc3BsX2FkZChsaWJ4bF9fZWdj ICplZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RldmljZV92ZGlzcGwgKnZkaXNwbCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2RldikKIHsKLQorICAgIGxpYnhsX19k ZXZpY2VfYWRkKGVnYywgZG9taWQsICZsaWJ4bF9fdmRpc3BsX2RldnR5cGUsIHZkaXNwbCwgYW9k ZXYpOwogfQogCiBsaWJ4bF9kZXZpY2VfdmRpc3BsICpsaWJ4bF9kZXZpY2VfdmRpc3BsX2xpc3Qo bGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAotLSAKMi43LjQKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK