From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v6 09/13] libxl: change disk to use generic getting list functions Date: Tue, 12 Sep 2017 16:48:14 +0300 Message-ID: <1505224098-19330-10-git-send-email-al1img@gmail.com> References: <1505224098-19330-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1drlYO-0005XC-BY for xen-devel@lists.xenproject.org; Tue, 12 Sep 2017 13:48:40 +0000 Received: by mail-lf0-f66.google.com with SMTP id m199so5376102lfe.5 for ; Tue, 12 Sep 2017 06:48:36 -0700 (PDT) In-Reply-To: <1505224098-19330-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: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKU2ln bmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29t PgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4 bC9saWJ4bC5oICAgICAgICAgICAgICAgICAgIHwgIDkgKysrLQogdG9vbHMvbGlieGwvbGlieGxf Y2hlY2twb2ludF9kZXZpY2UuYyB8ICA3ICsrLQogdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMg ICAgICAgICAgICB8ICA0ICstCiB0b29scy9saWJ4bC9saWJ4bF9kaXNrLmMgICAgICAgICAgICAg IHwgODMgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmggICAgICAgICAgfCAgNyAtLS0KIHRvb2xzL29jYW1sL2xpYnMveGwveGVu bGlnaHRfc3R1YnMuYyAgfCAgMyArLQogdG9vbHMveGwveGxfYmxvY2suYyAgICAgICAgICAgICAg ICAgICB8ICAzICstCiA3IGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDgyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9s aWJ4bC5oCmluZGV4IGUzODYzNTcuLmQ1YTNhYjcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtMTc0OSw5ICsxNzQ5LDE0IEBAIGlu dCBsaWJ4bF9kZXZpY2VfZGlza19kZXN0cm95KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21p ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93 ICphb19ob3cpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9FWFRFUk5BTF9D QUxMRVJTX09OTFk7CiAKLWxpYnhsX2RldmljZV9kaXNrICpsaWJ4bF9kZXZpY2VfZGlza19saXN0 KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50ICpudW0pOworbGlieGxfZGV2aWNl X2Rpc2sgKmxpYnhsX2RldmljZV9kaXNrX2xpc3QobGlieGxfY3R4ICpjdHgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwgaW50ICpudW0p CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9FWFRFUk5B TF9DQUxMRVJTX09OTFk7Cit2b2lkIGxpYnhsX2RldmljZV9kaXNrX2xpc3RfZnJlZShsaWJ4bF9k ZXZpY2VfZGlzayogbGlzdCwgaW50IG51bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKIGludCBsaWJ4bF9kZXZpY2VfZGlza19n ZXRpbmZvKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX2RldmljZV9kaXNrICpkaXNrLCBsaWJ4bF9kaXNraW5mbyAqZGlz a2luZm8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX2Rpc2sg KmRpc2ssIGxpYnhsX2Rpc2tpbmZvICpkaXNraW5mbykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKIAogLyoKICAqIEluc2VydCBhIENE LVJPTSBkZXZpY2UuIEEgZGV2aWNlIGNvcnJlc3BvbmRpbmcgdG8gZGlzayBtdXN0IGFscmVhZHkK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMgYi90b29s cy9saWJ4bC9saWJ4bF9jaGVja3BvaW50X2RldmljZS5jCmluZGV4IDAxZTc0YjUuLmY2YTQ0Mzcg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMKKysrIGIv dG9vbHMvbGlieGwvbGlieGxfY2hlY2twb2ludF9kZXZpY2UuYwpAQCAtNjYsNyArNjYsOCBAQCB2 b2lkIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfc2V0dXAobGlieGxfX2VnYyAqZWdjLAogICAg ICAgICBjZHMtPm5pY3MgPSBsaWJ4bF9kZXZpY2VfbmljX2xpc3QoQ1RYLCBjZHMtPmRvbWlkLCAm Y2RzLT5udW1fbmljcyk7CiAKICAgICBpZiAoY2RzLT5kZXZpY2Vfa2luZF9mbGFncyAmICgxIDw8 IExJQlhMX19ERVZJQ0VfS0lORF9WQkQpKQotICAgICAgICBjZHMtPmRpc2tzID0gbGlieGxfZGV2 aWNlX2Rpc2tfbGlzdChDVFgsIGNkcy0+ZG9taWQsICZjZHMtPm51bV9kaXNrcyk7CisgICAgICAg IGNkcy0+ZGlza3MgPSBsaWJ4bF9fZGV2aWNlX2xpc3QoZ2MsICZsaWJ4bF9fZGlza19kZXZ0eXBl LCBjZHMtPmRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk aXNrIiwgJmNkcy0+bnVtX2Rpc2tzKTsKIAogICAgIGlmIChjZHMtPm51bV9uaWNzID09IDAgJiYg Y2RzLT5udW1fZGlza3MgPT0gMCkKICAgICAgICAgZ290byBvdXQ7CkBAIC0yMjEsOSArMjIyLDcg QEAgc3RhdGljIHZvaWQgZGV2aWNlc190ZWFyZG93bl9jYihsaWJ4bF9fZWdjICplZ2MsCiAgICAg Y2RzLT5udW1fbmljcyA9IDA7CiAKICAgICAvKiBjbGVhbiBkaXNrICovCi0gICAgZm9yIChpID0g MDsgaSA8IGNkcy0+bnVtX2Rpc2tzOyBpKyspCi0gICAgICAgIGxpYnhsX2RldmljZV9kaXNrX2Rp c3Bvc2UoJmNkcy0+ZGlza3NbaV0pOwotICAgIGZyZWUoY2RzLT5kaXNrcyk7CisgICAgbGlieGxf X2RldmljZV9saXN0X2ZyZWUoJmxpYnhsX19kaXNrX2RldnR5cGUsIGNkcy0+ZGlza3MsIGNkcy0+ bnVtX2Rpc2tzKTsKICAgICBjZHMtPmRpc2tzID0gTlVMTDsKICAgICBjZHMtPm51bV9kaXNrcyA9 IDA7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jIGIvdG9vbHMvbGli eGwvbGlieGxfY3JlYXRlLmMKaW5kZXggNzAwNDhmZS4uMGVmNTRkMiAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGwvbGlieGxfY3JlYXRlLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMK QEAgLTkzOCw4ICs5MzgsOCBAQCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21haW5fY3JlYXRlKGxp YnhsX19lZ2MgKmVnYywKICAgICBzdG9yZV9saWJ4bF9lbnRyeShnYywgZG9taWQsICZkX2NvbmZp Zy0+Yl9pbmZvKTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBkX2NvbmZpZy0+bnVtX2Rpc2tzOyBp KyspIHsKLSAgICAgICAgcmV0ID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsIGRv bWlkLCAmZF9jb25maWctPmRpc2tzW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgIHJldCA9IGxpYnhsX19kaXNrX2RldnR5cGUu c2V0X2RlZmF1bHQoZ2MsIGRvbWlkLCAmZF9jb25maWctPmRpc2tzW2ldLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICAgICAgaWYgKHJl dCkgewogICAgICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJVbmFibGUgdG8gc2V0IGRpc2sg ZGVmYXVsdHMgZm9yIGRpc2sgJWQiLCBpKTsKICAgICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0Owpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZGlzay5jIGIvdG9vbHMvbGlieGwvbGlieGxf ZGlzay5jCmluZGV4IDkxYzc3YWQuLmMyMGNjNDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsX2Rpc2suYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kaXNrLmMKQEAgLTE1Miw4ICsxNTIs OCBAQCB2b2lkIGxpYnhsX2V2ZGlzYWJsZV9kaXNrX2VqZWN0KGxpYnhsX2N0eCAqY3R4LCBsaWJ4 bF9ldmdlbl9kaXNrX2VqZWN0ICpldmcpIHsKICAgICBHQ19GUkVFOwogfQogCi1pbnQgbGlieGxf X2RldmljZV9kaXNrX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ss IGJvb2wgaG90cGx1ZykKK3N0YXRpYyBpbnQgbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQo bGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9kaXNrICpkaXNrLCBib29sIGhvdHBsdWcpCiB7 CiAgICAgaW50IHJjOwogCkBAIC0xODEsNyArMTgxLDcgQEAgaW50IGxpYnhsX19kZXZpY2VfZGlz a19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiBy YzsKIH0KIAotaW50IGxpYnhsX19kZXZpY2VfZnJvbV9kaXNrKGxpYnhsX19nYyAqZ2MsIHVpbnQz Ml90IGRvbWlkLAorc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX2Zyb21fZGlzayhsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX19kZXZpY2UgKmRldmljZSkKIHsKQEAgLTQ3MiwxNyArNDcyLDE1IEBA IHN0YXRpYyB2b2lkIGxpYnhsX19kZXZpY2VfZGlza19hZGQobGlieGxfX2VnYyAqZWdjLCB1aW50 MzJfdCBkb21pZCwKICAgICBkZXZpY2VfZGlza19hZGQoZWdjLCBkb21pZCwgZGlzaywgYW9kZXYs IE5VTEwsIE5VTEwpOwogfQogCi1zdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfZGlza19mcm9tX3hl bnN0b3JlKGxpYnhsX19nYyAqZ2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKmxpYnhsX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9kaXNrICpkaXNrKQorc3RhdGljIGludCBsaWJ4 bF9fZGlza19mcm9tX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKmxpYnhsX3Bh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWQgZGV2 aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX2Rp c2sgKmRpc2spCiB7CiAgICAgbGlieGxfY3R4ICpjdHggPSBsaWJ4bF9fZ2Nfb3duZXIoZ2MpOwog ICAgIHVuc2lnbmVkIGludCBsZW47CiAgICAgY2hhciAqdG1wOwogICAgIGludCByYzsKIAotICAg IGxpYnhsX2RldmljZV9kaXNrX2luaXQoZGlzayk7Ci0KICAgICBjb25zdCBjaGFyICpiYWNrZW5k X3BhdGg7CiAgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy9iYWNrZW5kIiwgbGli eGxfcGF0aCksCkBAIC02MTcsNjkgKzYxNSwyOCBAQCBpbnQgbGlieGxfdmRldl90b19kZXZpY2Vf ZGlzayhsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAgfQogICAgIGxpYnhsX3Bh dGggPSBHQ1NQUklOVEYoIiVzL2RldmljZS92YmQvJWQiLCBkb21feGxfcGF0aCwgZGV2aWQpOwog Ci0gICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfZnJvbV94ZW5zdG9yZShnYywgbGlieGxfcGF0 aCwgZGlzayk7CisgICAgcmMgPSBsaWJ4bF9fZGlza19mcm9tX3hlbnN0b3JlKGdjLCBsaWJ4bF9w YXRoLCBkZXZpZCwgZGlzayk7CiBvdXQ6CiAgICAgR0NfRlJFRTsKICAgICByZXR1cm4gcmM7CiB9 CiAKLXN0YXRpYyBpbnQgbGlieGxfX2FwcGVuZF9kaXNrX2xpc3QobGlieGxfX2djICpnYywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2Vf ZGlzayAqKmRpc2tzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCAqbmRpc2tzKQotewotICAgIGNoYXIgKmxpYnhsX2Rpcl9wYXRoID0gTlVMTDsKLSAgICBj aGFyICoqZGlyID0gTlVMTDsKLSAgICB1bnNpZ25lZCBpbnQgbiA9IDA7Ci0gICAgbGlieGxfZGV2 aWNlX2Rpc2sgKnBkaXNrID0gTlVMTCwgKnBkaXNrX2VuZCA9IE5VTEw7Ci0gICAgaW50IHJjPTA7 Ci0gICAgaW50IGluaXRpYWxfZGlza3MgPSAqbmRpc2tzOwotCi0gICAgbGlieGxfZGlyX3BhdGgg PSBHQ1NQUklOVEYoIiVzL2RldmljZS92YmQiLAotICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX3hzX2xpYnhsX3BhdGgoZ2MsIGRvbWlkKSk7Ci0gICAgZGlyID0gbGlieGxfX3hzX2RpcmVj dG9yeShnYywgWEJUX05VTEwsIGxpYnhsX2Rpcl9wYXRoLCAmbik7Ci0gICAgaWYgKGRpciAmJiBu KSB7Ci0gICAgICAgIGxpYnhsX2RldmljZV9kaXNrICp0bXA7Ci0gICAgICAgIHRtcCA9IHJlYWxs b2MoKmRpc2tzLCBzaXplb2YgKGxpYnhsX2RldmljZV9kaXNrKSAqICgqbmRpc2tzICsgbikpOwot ICAgICAgICBpZiAodG1wID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gRVJST1JfTk9NRU07 Ci0gICAgICAgICpkaXNrcyA9IHRtcDsKLSAgICAgICAgcGRpc2sgPSAqZGlza3MgKyBpbml0aWFs X2Rpc2tzOwotICAgICAgICBwZGlza19lbmQgPSAqZGlza3MgKyBpbml0aWFsX2Rpc2tzICsgbjsK LSAgICAgICAgZm9yICg7IHBkaXNrIDwgcGRpc2tfZW5kOyBwZGlzaysrLCBkaXIrKykgewotICAg ICAgICAgICAgY29uc3QgY2hhciAqcDsKLSAgICAgICAgICAgIHAgPSBHQ1NQUklOVEYoIiVzLyVz IiwgbGlieGxfZGlyX3BhdGgsICpkaXIpOwotICAgICAgICAgICAgaWYgKChyYz1saWJ4bF9fZGV2 aWNlX2Rpc2tfZnJvbV94ZW5zdG9yZShnYywgcCwgcGRpc2spKSkKLSAgICAgICAgICAgICAgICBn b3RvIG91dDsKLSAgICAgICAgICAgICpuZGlza3MgKz0gMTsKLSAgICAgICAgfQotICAgIH0KLW91 dDoKLSAgICByZXR1cm4gcmM7Ci19Ci0KIGxpYnhsX2RldmljZV9kaXNrICpsaWJ4bF9kZXZpY2Vf ZGlza19saXN0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50ICpudW0pCiB7Ci0g ICAgR0NfSU5JVChjdHgpOwotICAgIGxpYnhsX2RldmljZV9kaXNrICpkaXNrcyA9IE5VTEw7Ci0g ICAgaW50IHJjOworICAgIGxpYnhsX2RldmljZV9kaXNrICpyOwogCi0gICAgKm51bSA9IDA7Cisg ICAgR0NfSU5JVChjdHgpOwogCi0gICAgcmMgPSBsaWJ4bF9fYXBwZW5kX2Rpc2tfbGlzdChnYywg ZG9taWQsICZkaXNrcywgbnVtKTsKLSAgICBpZiAocmMpIGdvdG8gb3V0X2VycjsKKyAgICByID0g bGlieGxfX2RldmljZV9saXN0KGdjLCAmbGlieGxfX2Rpc2tfZGV2dHlwZSwgZG9taWQsICJkaXNr IiwgbnVtKTsKIAogICAgIEdDX0ZSRUU7Ci0gICAgcmV0dXJuIGRpc2tzOwogCi1vdXRfZXJyOgot ICAgIExPRyhFUlJPUiwgIlVuYWJsZSB0byBsaXN0IGRpc2tzIik7Ci0gICAgd2hpbGUgKGRpc2tz ICYmICpudW0pIHsKLSAgICAgICAgKCpudW0pLS07Ci0gICAgICAgIGxpYnhsX2RldmljZV9kaXNr X2Rpc3Bvc2UoJmRpc2tzWypudW1dKTsKLSAgICB9Ci0gICAgZnJlZShkaXNrcyk7Ci0gICAgcmV0 dXJuIE5VTEw7CisgICAgcmV0dXJuIHI7Cit9CisKK3ZvaWQgbGlieGxfZGV2aWNlX2Rpc2tfbGlz dF9mcmVlKGxpYnhsX2RldmljZV9kaXNrICpsaXN0LCBpbnQgbnVtKQoreworICAgIGxpYnhsX19k ZXZpY2VfbGlzdF9mcmVlKCZsaWJ4bF9fZGlza19kZXZ0eXBlLCBsaXN0LCBudW0pOwogfQogCiBp bnQgbGlieGxfZGV2aWNlX2Rpc2tfZ2V0aW5mbyhsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9t aWQsCkBAIC03ODMsNyArNzQwLDcgQEAgaW50IGxpYnhsX2Nkcm9tX2luc2VydChsaWJ4bF9jdHgg KmN0eCwgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9kaXNrICpkaXNrLAogICAgICAgICBn b3RvIG91dDsKICAgICB9CiAKLSAgICBkaXNrcyA9IGxpYnhsX2RldmljZV9kaXNrX2xpc3QoY3R4 LCBkb21pZCwgJm51bSk7CisgICAgZGlza3MgPSBsaWJ4bF9fZGV2aWNlX2xpc3QoZ2MsICZsaWJ4 bF9fZGlza19kZXZ0eXBlLCBkb21pZCwgImRpc2siLCAmbnVtKTsKICAgICBmb3IgKGkgPSAwOyBp IDwgbnVtOyBpKyspIHsKICAgICAgICAgaWYgKGRpc2tzW2ldLmlzX2Nkcm9tICYmICFzdHJjbXAo ZGlzay0+dmRldiwgZGlza3NbaV0udmRldikpCiAgICAgICAgIHsKQEAgLTkyMSw5ICs4NzgsNyBA QCBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwg bGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAKIG91dDoKICAgICBsaWJ4bF9feHNfdHJhbnNhY3Rp b25fYWJvcnQoZ2MsICZ0KTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspCi0gICAgICAg IGxpYnhsX2RldmljZV9kaXNrX2Rpc3Bvc2UoJmRpc2tzW2ldKTsKLSAgICBmcmVlKGRpc2tzKTsK KyAgICBsaWJ4bF9fZGV2aWNlX2xpc3RfZnJlZSgmbGlieGxfX2Rpc2tfZGV2dHlwZSwgZGlza3Ms IG51bSk7CiAgICAgbGlieGxfZGV2aWNlX2Rpc2tfZGlzcG9zZSgmZGlza19lbXB0eSk7CiAgICAg bGlieGxfZGV2aWNlX2Rpc2tfZGlzcG9zZSgmZGlza19zYXZlZCk7CiAgICAgbGlieGxfZG9tYWlu X2NvbmZpZ19kaXNwb3NlKCZkX2NvbmZpZyk7CkBAIC0xMjUwLDYgKzEyMDUsOCBAQCBzdGF0aWMg aW50IGxpYnhsX2RldmljZV9kaXNrX2RtX25lZWRlZCh2b2lkICplLCB1bnNpZ25lZCBkb21pZCkK IERFRklORV9ERVZJQ0VfVFlQRV9TVFJVQ1QoZGlzaywKICAgICAubWVyZ2UgICAgICAgPSBsaWJ4 bF9kZXZpY2VfZGlza19tZXJnZSwKICAgICAuZG1fbmVlZGVkICAgPSBsaWJ4bF9kZXZpY2VfZGlz a19kbV9uZWVkZWQsCisgICAgLmZyb21feGVuc3RvcmUgPSAoaW50ICgqKShsaWJ4bF9fZ2MgKiwg Y29uc3QgY2hhciAqLCBsaWJ4bF9kZXZpZCwgdm9pZCAqKSkKKyAgICAgICAgICAgICAgICAgICAg IGxpYnhsX19kaXNrX2Zyb21feGVuc3RvcmUsCiAgICAgLnNraXBfYXR0YWNoID0gMQogKTsKIApk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmgKaW5kZXggNmIyMTgxMi4uZGUxNzA2YyAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5o CkBAIC0xMjQyLDkgKzEyNDIsNiBAQCBfaGlkZGVuIGludCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9p bmZvX3NldGRlZmF1bHQobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fY3JlYXRlX2luZm8gKmNfaW5mbyk7CiBfaGlkZGVu IGludCBsaWJ4bF9fZG9tYWluX2J1aWxkX2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWls ZF9pbmZvICpiX2luZm8pOwotX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1 bHQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaG90cGx1Zyk7CiBfaGlkZGVuIGlu dCBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZp Y2VfbmljICpuaWMsIGJvb2wgaG90cGx1Zyk7CiBfaGlkZGVuIHZvaWQgbGlieGxfX3JkbV9zZXRk ZWZhdWx0KGxpYnhsX19nYyAqZ2MsCkBAIC0xNzU0LDEwICsxNzUxLDYgQEAgX2hpZGRlbiBjaGFy ICpsaWJ4bF9fYmxrdGFwX2RldnBhdGgobGlieGxfX2djICpnYywKICAqLwogX2hpZGRlbiBpbnQg bGlieGxfX2RldmljZV9kZXN0cm95X3RhcGRpc2sobGlieGxfX2djICpnYywgY29uc3QgY2hhciAq cGFyYW1zKTsKIAotX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV9mcm9tX2Rpc2sobGlieGxfX2dj ICpnYywgdWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGxpYnhsX2RldmljZV9kaXNrICpkaXNrLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fZGV2aWNlICpkZXZpY2UpOwotCiAvKiBDYWxscyBwb2xsKCkgYWdh aW4gLSB1c2VmdWwgdG8gY2hlY2sgd2hldGhlciBhIHNpZ25hbGVkIGNvbmRpdGlvbgogICogaXMg c3RpbGwgdHJ1ZS4gIENhbm5vdCBmYWlsLiAgUmV0dXJucyBjdXJyZW50bHktdHJ1ZSByZXZlbnRz LiAqLwogX2hpZGRlbiBzaG9ydCBsaWJ4bF9fZmRfcG9sbF9yZWNoZWNrKGxpYnhsX19lZ2MgKmVn YywgaW50IGZkLCBzaG9ydCBldmVudHMpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvb2NhbWwvbGlicy94 bC94ZW5saWdodF9zdHVicy5jIGIvdG9vbHMvb2NhbWwvbGlicy94bC94ZW5saWdodF9zdHVicy5j CmluZGV4IDk4YjUyYjkuLjU1ZjA5ZDcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL29jYW1sL2xpYnMveGwv eGVubGlnaHRfc3R1YnMuYworKysgYi90b29scy9vY2FtbC9saWJzL3hsL3hlbmxpZ2h0X3N0dWJz LmMKQEAgLTc2Myw5ICs3NjMsOCBAQCB2YWx1ZSBzdHViX3hsX2RldmljZV9kaXNrX2xpc3QodmFs dWUgY3R4LCB2YWx1ZSBkb21pZCkKIAkJRmllbGQobGlzdCwgMSkgPSB0ZW1wOwogCQl0ZW1wID0g bGlzdDsKIAkJU3RvcmVfZmllbGQobGlzdCwgMCwgVmFsX2RldmljZV9kaXNrKCZjX2xpc3RbaV0p KTsKLQkJbGlieGxfZGV2aWNlX2Rpc2tfZGlzcG9zZSgmY19saXN0W2ldKTsKIAl9Ci0JZnJlZShj X2xpc3QpOworCWxpYnhsX2RldmljZV9kaXNrX2xpc3RfZnJlZShjX2xpc3QsIG5iKTsKIAogCUNB TUxyZXR1cm4obGlzdCk7CiB9CmRpZmYgLS1naXQgYS90b29scy94bC94bF9ibG9jay5jIGIvdG9v bHMveGwveGxfYmxvY2suYwppbmRleCBkYTMzN2VmLi5hY2FmOWI5IDEwMDY0NAotLS0gYS90b29s cy94bC94bF9ibG9jay5jCisrKyBiL3Rvb2xzL3hsL3hsX2Jsb2NrLmMKQEAgLTg4LDkgKzg4LDgg QEAgaW50IG1haW5fYmxvY2tsaXN0KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgICAg ICAgICAgICAgICAgZGlza2luZm8uc3RhdGUsIGRpc2tpbmZvLmV2dGNoLCBkaXNraW5mby5ycmVm LCBkaXNraW5mby5iYWNrZW5kKTsKICAgICAgICAgICAgICAgICBsaWJ4bF9kaXNraW5mb19kaXNw b3NlKCZkaXNraW5mbyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBsaWJ4bF9kZXZpY2Vf ZGlza19kaXNwb3NlKCZkaXNrc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgZnJlZShkaXNrcyk7 CisgICAgICAgIGxpYnhsX2RldmljZV9kaXNrX2xpc3RfZnJlZShkaXNrcywgbmIpOwogICAgIH0K ICAgICByZXR1cm4gMDsKIH0KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==