From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yang Hongyang Subject: [PATCH v10 1/5] libxl: introduce asynchronous execution API Date: Thu, 5 Jun 2014 09:34:25 +0800 Message-ID: <1401932069-16460-2-git-send-email-yanghy@cn.fujitsu.com> References: <1401932069-16460-1-git-send-email-yanghy@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1401932069-16460-1-git-send-email-yanghy@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: ian.campbell@citrix.com, wency@cn.fujitsu.com, stefano.stabellini@eu.citrix.com, andrew.cooper3@citrix.com, yunhong.jiang@intel.com, ian.jackson@eu.citrix.com, eddie.dong@intel.com, rshriram@cs.ubc.ca, roger.pau@citrix.com, laijs@cn.fujitsu.com List-Id: xen-devel@lists.xenproject.org MS5pbnRyb2R1Y2UgYXN5bmNocm9ub3VzIGV4ZWN1dGlvbiBBUEk6CiAgbGlieGxfX2FzeW5jX2V4 ZWNfaW5pdAogIGxpYnhsX19hc3luY19leGVjX3N0YXJ0CiAgbGlieGxfX2FzeW5jX2V4ZWNfaW51 c2UKMi51c2UgdGhlIGFzeW5jIGV4ZWMgQVBJIHRvIGV4ZWN1dGUgZGV2aWNlIGhvdHBsdWcgc2Ny aXB0cwoKU2lnbmVkLW9mZi1ieTogTGFpIEppYW5nc2hhbiA8bGFpanNAY24uZnVqaXRzdS5jb20+ ClNpZ25lZC1vZmYtYnk6IFdlbiBDb25neWFuZyA8d2VuY3lAY24uZnVqaXRzdS5jb20+ClNpZ25l ZC1vZmYtYnk6IFlhbmcgSG9uZ3lhbmcgPHlhbmdoeUBjbi5mdWppdHN1LmNvbT4KQWNrZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tCkFja2VkLWJ5OiBJYW4gSmFj a3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4bC9saWJ4bF9h b3V0aWxzLmMgIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIHRvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5jICAgfCA3OCArKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCB8IDM0ICsr KysrKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCA2MCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9hb3V0aWxzLmMgYi90 b29scy9saWJ4bC9saWJ4bF9hb3V0aWxzLmMKaW5kZXggMWM5ZWI5ZS4uYjEwZDJlMSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGxfYW91dGlscy5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2FvdXRpbHMuYwpAQCAtNDUxLDMgKzQ1MSw5MiBAQCBpbnQgbGlieGxfX29wZW5wdHlzKGxpYnhs X19vcGVucHR5X3N0YXRlICpvcCwKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyB2b2lkIGFz eW5jX2V4ZWNfdGltZW91dChsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2V2X3RpbWUgKmV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB0aW1ldmFsICpyZXF1ZXN0ZWRfYWJzKQoreworICAgIGxpYnhsX19h c3luY19leGVjX3N0YXRlICphZXMgPSBDT05UQUlORVJfT0YoZXYsICphZXMsIHRpbWUpOworICAg IFNUQVRFX0FPX0dDKGFlcy0+YW8pOworCisgICAgbGlieGxfX2V2X3RpbWVfZGVyZWdpc3Rlcihn YywgJmFlcy0+dGltZSk7CisKKyAgICBhc3NlcnQobGlieGxfX2V2X2NoaWxkX2ludXNlKCZhZXMt PmNoaWxkKSk7CisgICAgTE9HKEVSUk9SLCAia2lsbGluZyBleGVjdXRpb24gb2YgJXMgYmVjYXVz ZSBvZiB0aW1lb3V0IiwgYWVzLT53aGF0KTsKKworICAgIGlmIChraWxsKGFlcy0+Y2hpbGQucGlk LCBTSUdLSUxMKSkgeworICAgICAgICBMT0dFVihFUlJPUiwgZXJybm8sICJ1bmFibGUgdG8ga2ls bCAlcyBbJWxkXSIsCisgICAgICAgICAgICAgIGFlcy0+d2hhdCwgKHVuc2lnbmVkIGxvbmcpYWVz LT5jaGlsZC5waWQpOworICAgIH0KKworICAgIHJldHVybjsKK30KKworc3RhdGljIHZvaWQgYXN5 bmNfZXhlY19kb25lKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9fZXZfY2hpbGQgKmNoaWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBp ZF90IHBpZCwgaW50IHN0YXR1cykKK3sKKyAgICBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVz ID0gQ09OVEFJTkVSX09GKGNoaWxkLCAqYWVzLCBjaGlsZCk7CisgICAgU1RBVEVfQU9fR0MoYWVz LT5hbyk7CisKKyAgICBsaWJ4bF9fZXZfdGltZV9kZXJlZ2lzdGVyKGdjLCAmYWVzLT50aW1lKTsK KworICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgbGlieGxfcmVwb3J0X2NoaWxkX2V4aXRzdGF0 dXMoQ1RYLCBMSUJYTF9fTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhZXMtPndoYXQsIHBpZCwgc3RhdHVzKTsKKyAgICB9CisKKyAgICBhZXMtPmNhbGxi YWNrKGVnYywgYWVzLCBzdGF0dXMpOworfQorCit2b2lkIGxpYnhsX19hc3luY19leGVjX2luaXQo bGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcykKK3sKKyAgICBsaWJ4bF9fZXZfdGltZV9pbml0 KCZhZXMtPnRpbWUpOworICAgIGxpYnhsX19ldl9jaGlsZF9pbml0KCZhZXMtPmNoaWxkKTsKK30K KworaW50IGxpYnhsX19hc3luY19leGVjX3N0YXJ0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX19hc3lu Y19leGVjX3N0YXRlICphZXMpCit7CisgICAgcGlkX3QgcGlkOworCisgICAgLyogQ29udmVuaWVu Y2UgYWxpYXNlcyAqLworICAgIGxpYnhsX19ldl9jaGlsZCAqY29uc3QgY2hpbGQgPSAmYWVzLT5j aGlsZDsKKyAgICBjaGFyICoqIGNvbnN0IGFyZ3MgPSBhZXMtPmFyZ3M7CisKKyAgICAvKiBTZXQg ZXhlY3V0aW9uIHRpbWVvdXQgKi8KKyAgICBpZiAobGlieGxfX2V2X3RpbWVfcmVnaXN0ZXJfcmVs KGdjLCAmYWVzLT50aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN5 bmNfZXhlY190aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVz LT50aW1lb3V0X21zKSkgeworICAgICAgICBMT0coRVJST1IsICJ1bmFibGUgdG8gcmVnaXN0ZXIg dGltZW91dCBmb3IgZXhlY3V0aW5nOiAlcyIsIGFlcy0+d2hhdCk7CisgICAgICAgIGdvdG8gb3V0 OworICAgIH0KKworICAgIExPRyhERUJVRywgImZvcmtpbmcgdG8gZXhlY3V0ZTogJXMgIiwgYWVz LT53aGF0KTsKKworICAgIC8qIEZvcmsgYW5kIGV4ZWMgKi8KKyAgICBwaWQgPSBsaWJ4bF9fZXZf Y2hpbGRfZm9yayhnYywgY2hpbGQsIGFzeW5jX2V4ZWNfZG9uZSk7CisgICAgaWYgKHBpZCA9PSAt MSkgeworICAgICAgICBMT0coRVJST1IsICJ1bmFibGUgdG8gZm9yayIpOworICAgICAgICBnb3Rv IG91dDsKKyAgICB9CisKKyAgICBpZiAoIXBpZCkgeworICAgICAgICAvKiBjaGlsZCAqLworICAg ICAgICBsaWJ4bF9fZXhlYyhnYywgYWVzLT5zdGRmZHNbMF0sIGFlcy0+c3RkZmRzWzFdLAorICAg ICAgICAgICAgICAgICAgICBhZXMtPnN0ZGZkc1syXSwgYXJnc1swXSwgYXJncywgYWVzLT5lbnYp OworICAgICAgICAvKiBub3RyZWFjaGVkICovCisgICAgICAgIGFib3J0KCk7CisgICAgfQorCisg ICAgcmV0dXJuIDA7CisKK291dDoKKyAgICByZXR1cm4gRVJST1JfRkFJTDsKK30KKworYm9vbCBs aWJ4bF9fYXN5bmNfZXhlY19pbnVzZShjb25zdCBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVz KQoreworICAgIGJvb2wgdGltZV9pbnVzZSA9IGxpYnhsX19ldl90aW1lX2lzcmVnaXN0ZXJlZCgm YWVzLT50aW1lKTsKKyAgICBib29sIGNoaWxkX2ludXNlID0gbGlieGxfX2V2X2NoaWxkX2ludXNl KCZhZXMtPmNoaWxkKTsKKyAgICBhc3NlcnQodGltZV9pbnVzZSA9PSBjaGlsZF9pbnVzZSk7Cisg ICAgcmV0dXJuIGNoaWxkX2ludXNlOworfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxf ZGV2aWNlLmMgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwppbmRleCBmYTk5Zjc3Li45MGFl NTY0IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYworKysgYi90b29scy9s aWJ4bC9saWJ4bF9kZXZpY2UuYwpAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQgbGlieGxfX3ByZXBh cmVfYW9fZGV2aWNlKGxpYnhsX19hbyAqYW8sIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2KQogICAg IGFvZGV2LT5yYyA9IDA7CiAgICAgYW9kZXYtPmRldiA9IE5VTEw7CiAgICAgYW9kZXYtPm51bV9l eGVjID0gMDsKLSAgICAvKiBJbml0aWFsaXplIHRpbWVyIGZvciBRRU1VIEJvZGdlIGFuZCBob3Rw bHVnIGV4ZWN1dGlvbiAqLworICAgIC8qIEluaXRpYWxpemUgdGltZXIgZm9yIFFFTVUgQm9kZ2Ug Ki8KICAgICBsaWJ4bF9fZXZfdGltZV9pbml0KCZhb2Rldi0+dGltZW91dCk7CiAgICAgLyoKICAg ICAgKiBJbml0aWFsaXplIHhzX3dhdGNoLCBiZWNhdXNlIGl0J3Mgbm90IHVzZWQgb24gYWxsIHBv c3NpYmxlCkBAIC00NDAsNyArNDQwLDcgQEAgdm9pZCBsaWJ4bF9fcHJlcGFyZV9hb19kZXZpY2Uo bGlieGxfX2FvICphbywgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCiAgICAgYW9kZXYtPmFjdGl2 ZSA9IDE7CiAgICAgLyogV2UgaW5pdCB0aGlzIGhlcmUgYmVjYXVzZSB3ZSBtaWdodCBjYWxsIGRl dmljZV9ob3RwbHVnX2RvbmUKICAgICAgKiB3aXRob3V0IGFjdHVhbGx5IGNhbGxpbmcgYW55IGhv dHBsdWcgc2NyaXB0ICovCi0gICAgbGlieGxfX2V2X2NoaWxkX2luaXQoJmFvZGV2LT5jaGlsZCk7 CisgICAgbGlieGxfX2FzeW5jX2V4ZWNfaW5pdCgmYW9kZXYtPmFlcyk7CiB9CiAKIC8qIG11bHRp ZGV2ICovCkBAIC03MDcsMTIgKzcwNyw5IEBAIHN0YXRpYyB2b2lkIGRldmljZV9iYWNrZW5kX2Ns ZWFudXAobGlieGxfX2djICpnYywKIAogc3RhdGljIHZvaWQgZGV2aWNlX2hvdHBsdWcobGlieGxf X2VnYyAqZWdjLCBsaWJ4bF9fYW9fZGV2aWNlICphb2Rldik7CiAKLXN0YXRpYyB2b2lkIGRldmlj ZV9ob3RwbHVnX3RpbWVvdXRfY2IobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZfdGltZSAqZXYs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1l dmFsICpyZXF1ZXN0ZWRfYWJzKTsKLQogc3RhdGljIHZvaWQgZGV2aWNlX2hvdHBsdWdfY2hpbGRf ZGVhdGhfY2IobGlieGxfX2VnYyAqZWdjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX2V2X2NoaWxkICpjaGlsZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBpZF90IHBpZCwgaW50IHN0YXR1cyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAq YWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXR1 cyk7CiAKIHN0YXRpYyB2b2lkIGRldmljZV9kZXN0cm95X2JlX3RpbWVvdXRfY2IobGlieGxfX2Vn YyAqZWdjLCBsaWJ4bF9fZXZfdGltZSAqZXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1ldmFsICpyZXF1ZXN0ZWRfYWJzKTsKQEAgLTk1 MywxMSArOTUwLDExIEBAIHN0YXRpYyB2b2lkIGRldmljZV9iYWNrZW5kX2NsZWFudXAobGlieGxf X2djICpnYywgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCiBzdGF0aWMgdm9pZCBkZXZpY2VfaG90 cGx1ZyhsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2KQogewogICAgIFNU QVRFX0FPX0dDKGFvZGV2LT5hbyk7CisgICAgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcyA9 ICZhb2Rldi0+YWVzOwogICAgIGNoYXIgKmJlX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2JhY2tlbmRf cGF0aChnYywgYW9kZXYtPmRldik7CiAgICAgY2hhciAqKmFyZ3MgPSBOVUxMLCAqKmVudiA9IE5V TEw7CiAgICAgaW50IHJjID0gMDsKICAgICBpbnQgaG90cGx1ZywgbnVsbGZkID0gLTE7Ci0gICAg cGlkX3QgcGlkOwogICAgIHVpbnQzMl90IGRvbWlkOwogCiAgICAgLyoKQEAgLTEwMDksMTYgKzEw MDYsNiBAQCBzdGF0aWMgdm9pZCBkZXZpY2VfaG90cGx1ZyhsaWJ4bF9fZWdjICplZ2MsIGxpYnhs X19hb19kZXZpY2UgKmFvZGV2KQogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICAvKiBT ZXQgaG90cGx1ZyB0aW1lb3V0ICovCi0gICAgcmMgPSBsaWJ4bF9fZXZfdGltZV9yZWdpc3Rlcl9y ZWwoZ2MsICZhb2Rldi0+dGltZW91dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXZpY2VfaG90cGx1Z190aW1lb3V0X2NiLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExJQlhMX0hPVFBMVUdfVElNRU9VVCAqIDEwMDApOwotICAgIGlmIChyYykg ewotICAgICAgICBMT0coRVJST1IsICJ1bmFibGUgdG8gcmVnaXN0ZXIgdGltZW91dCBmb3IgaG90 cGx1ZyBkZXZpY2UgJXMiLCBiZV9wYXRoKTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotCi0g ICAgYW9kZXYtPndoYXQgPSBHQ1NQUklOVEYoIiVzICVzIiwgYXJnc1swXSwgYXJnc1sxXSk7CiAg ICAgTE9HKERFQlVHLCAiY2FsbGluZyBob3RwbHVnIHNjcmlwdDogJXMgJXMiLCBhcmdzWzBdLCBh cmdzWzFdKTsKIAogICAgIG51bGxmZCA9IG9wZW4oIi9kZXYvbnVsbCIsIE9fUkRPTkxZKTsKQEAg LTEwMjgsMjMgKzEwMTUsMjIgQEAgc3RhdGljIHZvaWQgZGV2aWNlX2hvdHBsdWcobGlieGxfX2Vn YyAqZWdjLCBsaWJ4bF9fYW9fZGV2aWNlICphb2RldikKICAgICAgICAgZ290byBvdXQ7CiAgICAg fQogCi0gICAgLyogZm9yayBhbmQgZXhlY3V0ZSBob3RwbHVnIHNjcmlwdCAqLwotICAgIHBpZCA9 IGxpYnhsX19ldl9jaGlsZF9mb3JrKGdjLCAmYW9kZXYtPmNoaWxkLCBkZXZpY2VfaG90cGx1Z19j aGlsZF9kZWF0aF9jYik7Ci0gICAgaWYgKHBpZCA9PSAtMSkgewotICAgICAgICBMT0coRVJST1Is ICJ1bmFibGUgdG8gZm9yayIpOwotICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgYWVzLT5h byA9IGFvOworICAgIGFlcy0+d2hhdCA9IEdDU1BSSU5URigiJXMgJXMiLCBhcmdzWzBdLCBhcmdz WzFdKTsKKyAgICBhZXMtPmVudiA9IGVudjsKKyAgICBhZXMtPmFyZ3MgPSBhcmdzOworICAgIGFl cy0+Y2FsbGJhY2sgPSBkZXZpY2VfaG90cGx1Z19jaGlsZF9kZWF0aF9jYjsKKyAgICBhZXMtPnRp bWVvdXRfbXMgPSBMSUJYTF9IT1RQTFVHX1RJTUVPVVQgKiAxMDAwOworICAgIGFlcy0+c3RkZmRz WzBdID0gbnVsbGZkOworICAgIGFlcy0+c3RkZmRzWzFdID0gMjsKKyAgICBhZXMtPnN0ZGZkc1sy XSA9IC0xOworCisgICAgcmMgPSBsaWJ4bF9fYXN5bmNfZXhlY19zdGFydChnYywgYWVzKTsKKyAg ICBpZiAocmMpCiAgICAgICAgIGdvdG8gb3V0OwotICAgIH0KLQotICAgIGlmICghcGlkKSB7Ci0g ICAgICAgIC8qIGNoaWxkICovCi0gICAgICAgIGxpYnhsX19leGVjKGdjLCBudWxsZmQsIDIsIC0x LCBhcmdzWzBdLCBhcmdzLCBlbnYpOwotICAgICAgICAvKiBub3RyZWFjaGVkICovCi0gICAgICAg IGFib3J0KCk7Ci0gICAgfQogCiAgICAgY2xvc2UobnVsbGZkKTsKLSAgICBhc3NlcnQobGlieGxf X2V2X2NoaWxkX2ludXNlKCZhb2Rldi0+Y2hpbGQpKTsKKyAgICBhc3NlcnQobGlieGxfX2FzeW5j X2V4ZWNfaW51c2UoJmFvZGV2LT5hZXMpKTsKIAogICAgIHJldHVybjsKIApAQCAtMTA1NSwyOSAr MTA0MSwxMSBAQCBvdXQ6CiAgICAgcmV0dXJuOwogfQogCi1zdGF0aWMgdm9pZCBkZXZpY2VfaG90 cGx1Z190aW1lb3V0X2NiKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2V2X3RpbWUgKmV2LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXZhbCAq cmVxdWVzdGVkX2FicykKLXsKLSAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2RldiA9IENPTlRBSU5F Ul9PRihldiwgKmFvZGV2LCB0aW1lb3V0KTsKLSAgICBTVEFURV9BT19HQyhhb2Rldi0+YW8pOwot Ci0gICAgbGlieGxfX2V2X3RpbWVfZGVyZWdpc3RlcihnYywgJmFvZGV2LT50aW1lb3V0KTsKLQot ICAgIGFzc2VydChsaWJ4bF9fZXZfY2hpbGRfaW51c2UoJmFvZGV2LT5jaGlsZCkpOwotICAgIExP RyhERUJVRywgImtpbGxpbmcgaG90cGx1ZyBzY3JpcHQgJXMgYmVjYXVzZSBvZiB0aW1lb3V0Iiwg YW9kZXYtPndoYXQpOwotICAgIGlmIChraWxsKGFvZGV2LT5jaGlsZC5waWQsIFNJR0tJTEwpKSB7 Ci0gICAgICAgIExPR0VWKEVSUk9SLCBlcnJubywgInVuYWJsZSB0byBraWxsIGhvdHBsdWcgc2Ny aXB0ICVzIFslbGRdIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhb2Rldi0+d2hhdCwg KHVuc2lnbmVkIGxvbmcpYW9kZXYtPmNoaWxkLnBpZCk7Ci0gICAgfQotCi0gICAgcmV0dXJuOwot fQotCiBzdGF0aWMgdm9pZCBkZXZpY2VfaG90cGx1Z19jaGlsZF9kZWF0aF9jYihsaWJ4bF9fZWdj ICplZ2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f ZXZfY2hpbGQgKmNoaWxkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGlkX3QgcGlkLCBpbnQgc3RhdHVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGF0dXMpCiB7Ci0gICAgbGlieGxfX2Fv X2RldmljZSAqYW9kZXYgPSBDT05UQUlORVJfT0YoY2hpbGQsICphb2RldiwgY2hpbGQpOworICAg IGxpYnhsX19hb19kZXZpY2UgKmFvZGV2ID0gQ09OVEFJTkVSX09GKGFlcywgKmFvZGV2LCBhZXMp OwogICAgIFNUQVRFX0FPX0dDKGFvZGV2LT5hbyk7CiAgICAgY2hhciAqYmVfcGF0aCA9IGxpYnhs X19kZXZpY2VfYmFja2VuZF9wYXRoKGdjLCBhb2Rldi0+ZGV2KTsKICAgICBjaGFyICpob3RwbHVn X2Vycm9yOwpAQCAtMTA4NSw4ICsxMDUzLDYgQEAgc3RhdGljIHZvaWQgZGV2aWNlX2hvdHBsdWdf Y2hpbGRfZGVhdGhfY2IobGlieGxfX2VnYyAqZWdjLAogICAgIGRldmljZV9ob3RwbHVnX2NsZWFu KGdjLCBhb2Rldik7CiAKICAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIGxpYnhsX3JlcG9ydF9j aGlsZF9leGl0c3RhdHVzKENUWCwgTElCWExfX0xPR19FUlJPUiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW9kZXYtPndoYXQsIHBpZCwgc3RhdHVzKTsKICAgICAgICAg aG90cGx1Z19lcnJvciA9IGxpYnhsX194c19yZWFkKGdjLCBYQlRfTlVMTCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvaG90cGx1Zy1lcnJvciIs IGJlX3BhdGgpKTsKICAgICAgICAgaWYgKGhvdHBsdWdfZXJyb3IpCkBAIC0xMTc4LDcgKzExNDQs NyBAQCBzdGF0aWMgdm9pZCBkZXZpY2VfaG90cGx1Z19jbGVhbihsaWJ4bF9fZ2MgKmdjLCBsaWJ4 bF9fYW9fZGV2aWNlICphb2RldikKICAgICAvKiBDbGVhbiBldmVudHMgYW5kIGNoZWNrIHJlZW50 cmFuY3kgKi8KICAgICBsaWJ4bF9fZXZfdGltZV9kZXJlZ2lzdGVyKGdjLCAmYW9kZXYtPnRpbWVv dXQpOwogICAgIGxpYnhsX19ldl94c3dhdGNoX2RlcmVnaXN0ZXIoZ2MsICZhb2Rldi0+eHNfd2F0 Y2gpOwotICAgIGFzc2VydCghbGlieGxfX2V2X2NoaWxkX2ludXNlKCZhb2Rldi0+Y2hpbGQpKTsK KyAgICBhc3NlcnQoIWxpYnhsX19hc3luY19leGVjX2ludXNlKCZhb2Rldi0+YWVzKSk7CiB9CiAK IHN0YXRpYyB2b2lkIGRldmljZXNfcmVtb3ZlX2NhbGxiYWNrKGxpYnhsX19lZ2MgKmVnYywKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4 bF9pbnRlcm5hbC5oCmluZGV4IDA4Mjc0OWUuLjU5Njg0ODUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaApA QCAtMjA1MCw2ICsyMDUwLDMzIEBAIF9oaWRkZW4gY29uc3QgY2hhciAqbGlieGxfX3hlbl9zY3Jp cHRfZGlyX3BhdGgodm9pZCk7CiBfaGlkZGVuIGNvbnN0IGNoYXIgKmxpYnhsX19sb2NrX2Rpcl9w YXRoKHZvaWQpOwogX2hpZGRlbiBjb25zdCBjaGFyICpsaWJ4bF9fcnVuX2Rpcl9wYXRoKHZvaWQp OwogCisvKi0tLS0tIHN1YnByb2Nlc3MgZXhlY3V0aW9uIHdpdGggdGltZW91dCAtLS0tLSovCisK K3R5cGVkZWYgc3RydWN0IGxpYnhsX19hc3luY19leGVjX3N0YXRlIGxpYnhsX19hc3luY19leGVj X3N0YXRlOworCit0eXBlZGVmIHZvaWQgbGlieGxfX2FzeW5jX2V4ZWNfY2FsbGJhY2sobGlieGxf X2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2FzeW5jX2V4ZWNfc3Rh dGUgKmFlcywgaW50IHN0YXR1cyk7CisKK3N0cnVjdCBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSB7 CisgICAgLyogY2FsbGVyIG11c3QgZmlsbCB0aGVzZSBpbiAqLworICAgIGxpYnhsX19hbyAqYW87 CisgICAgY29uc3QgY2hhciAqd2hhdDsgLyogZm9yIGVycm9yIG1zZ3MsIHdoYXQgd2UncmUgZXhl Y3V0aW5nICovCisgICAgaW50IHRpbWVvdXRfbXM7CisgICAgbGlieGxfX2FzeW5jX2V4ZWNfY2Fs bGJhY2sgKmNhbGxiYWNrOworICAgIC8qIGNhbGxlciBtdXN0IGZpbGwgaW47IGFzIGZvciBsaWJ4 bF9fZXhlYyAqLworICAgIGludCBzdGRmZHNbM107CisgICAgY2hhciAqKmFyZ3M7IC8qIGV4ZWN1 dGlvbiBhcmd1bWVudHMgKi8KKyAgICBjaGFyICoqZW52OyAvKiBleGVjdXRpb24gZW52aXJvbm1l bnQgKi8KKworICAgIC8qIHByaXZhdGUgKi8KKyAgICBsaWJ4bF9fZXZfdGltZSB0aW1lOworICAg IGxpYnhsX19ldl9jaGlsZCBjaGlsZDsKK307CisKK3ZvaWQgbGlieGxfX2FzeW5jX2V4ZWNfaW5p dChsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVzKTsKK2ludCBsaWJ4bF9fYXN5bmNfZXhlY19z dGFydChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVzKTsKK2Jvb2wg bGlieGxfX2FzeW5jX2V4ZWNfaW51c2UoY29uc3QgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFl cyk7CisKIC8qLS0tLS0gZGV2aWNlIGFkZGl0aW9uL3JlbW92YWwgLS0tLS0qLwogCiB0eXBlZGVm IHN0cnVjdCBsaWJ4bF9fYW9fZGV2aWNlIGxpYnhsX19hb19kZXZpY2U7CkBAIC0yMDg2LDE0ICsy MTEzLDEzIEBAIHN0cnVjdCBsaWJ4bF9fYW9fZGV2aWNlIHsKICAgICBsaWJ4bF9fbXVsdGlkZXYg Km11bHRpZGV2OyAvKiByZWZlcmVuY2UgdG8gdGhlIGNvbnRhaW5pbmcgbXVsdGlkZXYgKi8KICAg ICAvKiBwcml2YXRlIGZvciBhZGQvcmVtb3ZlIGltcGxlbWVudGF0aW9uICovCiAgICAgbGlieGxf X2V2X2RldnN0YXRlIGJhY2tlbmRfZHM7Ci0gICAgLyogQm9kZ2UgZm9yIFFlbXUgZGV2aWNlcywg YWxzbyB1c2VkIGZvciB0aW1lb3V0IG9mIGhvdHBsdWcgZXhlY3V0aW9uICovCisgICAgLyogQm9k Z2UgZm9yIFFlbXUgZGV2aWNlcyAqLwogICAgIGxpYnhsX19ldl90aW1lIHRpbWVvdXQ7CiAgICAg LyogeGVuc3RvcmUgd2F0Y2ggZm9yIGJhY2tlbmQgcGF0aCBvZiBkcml2ZXIgZG9tYWlucyAqLwog ICAgIGxpYnhsX19ldl94c3dhdGNoIHhzX3dhdGNoOwotICAgIC8qIGRldmljZSBob3RwbHVnIGV4 ZWN1dGlvbiAqLwotICAgIGNvbnN0IGNoYXIgKndoYXQ7CiAgICAgaW50IG51bV9leGVjOwotICAg IGxpYnhsX19ldl9jaGlsZCBjaGlsZDsKKyAgICAvKiBmb3IgY2FsbGluZyBob3RwbHVnIHNjcmlw dHMgKi8KKyAgICBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSBhZXM7CiB9OwogCiAvKgotLSAKMS45 LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=