From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v6 10/13] libxl: change nic to use generec add function Date: Tue, 12 Sep 2017 16:48:15 +0300 Message-ID: <1505224098-19330-11-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 1drlYT-0005hz-63 for xen-devel@lists.xenproject.org; Tue, 12 Sep 2017 13:48:45 +0000 Received: by mail-lf0-f67.google.com with SMTP id h80so5384160lfe.1 for ; Tue, 12 Sep 2017 06:48:37 -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 PgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsLmggICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIHRv b2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMgfCAgIDkgKy0KIHRvb2xzL2xpYnhs L2xpYnhsX2NvbG9fc2F2ZS5jICAgICAgICAgfCAgIDMgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2Rt LmMgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgg ICAgICAgICAgfCAgIDIgLQogdG9vbHMvbGlieGwvbGlieGxfbmljLmMgICAgICAgICAgICAgICB8 IDE5MSArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB0b29scy9vY2FtbC9saWJz L3hsL3hlbmxpZ2h0X3N0dWJzLmMgIHwgICAzICstCiB0b29scy94bC94bF9uaWMuYyAgICAgICAg ICAgICAgICAgICAgIHwgICAzICstCiA4IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyks IDE3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIvdG9v bHMvbGlieGwvbGlieGwuaAppbmRleCBkNWEzYWI3Li5hYmUxMjllIDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTE4NTAsOSArMTg1 MCwxNCBAQCBpbnQgbGlieGxfZGV2aWNlX25pY19kZXN0cm95KGxpYnhsX2N0eCAqY3R4LCB1aW50 MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5 bmNvcF9ob3cgKmFvX2hvdykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhU RVJOQUxfQ0FMTEVSU19PTkxZOwogCi1saWJ4bF9kZXZpY2VfbmljICpsaWJ4bF9kZXZpY2Vfbmlj X2xpc3QobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgKm51bSk7CitsaWJ4bF9k ZXZpY2VfbmljICpsaWJ4bF9kZXZpY2VfbmljX2xpc3QobGlieGxfY3R4ICpjdHgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQsIGludCAqbnVt KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VYVEVSTkFM X0NBTExFUlNfT05MWTsKK3ZvaWQgbGlieGxfZGV2aWNlX25pY19saXN0X2ZyZWUobGlieGxfZGV2 aWNlX25pYyogbGlzdCwgaW50IG51bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TElCWExfRVhURVJOQUxfQ0FMTEVSU19PTkxZOwogaW50IGxpYnhsX2RldmljZV9uaWNfZ2V0aW5m byhsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsIGxpYnhsX25pY2luZm8gKm5pY2luZm8pOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsIGxpYnhs X25pY2luZm8gKm5pY2luZm8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VY VEVSTkFMX0NBTExFUlNfT05MWTsKIAogLyoKICAqIFZpcnR1YWwgQ2hhbm5lbHMKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMgYi90b29scy9saWJ4bC9s aWJ4bF9jaGVja3BvaW50X2RldmljZS5jCmluZGV4IGY2YTQ0MzcuLmQxY2MxNTUgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfY2hlY2twb2ludF9kZXZpY2UuYwpAQCAtNjMsNyArNjMsOCBAQCB2b2lkIGxpYnhs X19jaGVja3BvaW50X2RldmljZXNfc2V0dXAobGlieGxfX2VnYyAqZWdjLAogICAgIGNkcy0+bnVt X2Rpc2tzID0gMDsKIAogICAgIGlmIChjZHMtPmRldmljZV9raW5kX2ZsYWdzICYgKDEgPDwgTElC WExfX0RFVklDRV9LSU5EX1ZJRikpCi0gICAgICAgIGNkcy0+bmljcyA9IGxpYnhsX2RldmljZV9u aWNfbGlzdChDVFgsIGNkcy0+ZG9taWQsICZjZHMtPm51bV9uaWNzKTsKKyAgICAgICAgY2RzLT5u aWNzID0gbGlieGxfX2RldmljZV9saXN0KGdjLCAmbGlieGxfX25pY19kZXZ0eXBlLCBjZHMtPmRv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZpZiIsICZjZHMt Pm51bV9uaWNzKTsKIAogICAgIGlmIChjZHMtPmRldmljZV9raW5kX2ZsYWdzICYgKDEgPDwgTElC WExfX0RFVklDRV9LSU5EX1ZCRCkpCiAgICAgICAgIGNkcy0+ZGlza3MgPSBsaWJ4bF9fZGV2aWNl X2xpc3QoZ2MsICZsaWJ4bF9fZGlza19kZXZ0eXBlLCBjZHMtPmRvbWlkLApAQCAtMjA2LDggKzIw Nyw2IEBAIHN0YXRpYyB2b2lkIGRldmljZXNfdGVhcmRvd25fY2IobGlieGxfX2VnYyAqZWdjLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fbXVsdGlkZXYgKm11bHRpZGV2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpCiB7Ci0gICAgaW50IGk7 Ci0KICAgICBTVEFURV9BT19HQyhtdWx0aWRldi0+YW8pOwogCiAgICAgLyogQ29udmVuaWVuY2Ug YWxpYXNlcyAqLwpAQCAtMjE1LDkgKzIxNCw3IEBAIHN0YXRpYyB2b2lkIGRldmljZXNfdGVhcmRv d25fY2IobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlRB SU5FUl9PRihtdWx0aWRldiwgKmNkcywgbXVsdGlkZXYpOwogCiAgICAgLyogY2xlYW4gbmljICov Ci0gICAgZm9yIChpID0gMDsgaSA8IGNkcy0+bnVtX25pY3M7IGkrKykKLSAgICAgICAgbGlieGxf ZGV2aWNlX25pY19kaXNwb3NlKCZjZHMtPm5pY3NbaV0pOwotICAgIGZyZWUoY2RzLT5uaWNzKTsK KyAgICBsaWJ4bF9fZGV2aWNlX2xpc3RfZnJlZSgmbGlieGxfX25pY19kZXZ0eXBlLCBjZHMtPm5p Y3MsIGNkcy0+bnVtX25pY3MpOwogICAgIGNkcy0+bmljcyA9IE5VTEw7CiAgICAgY2RzLT5udW1f bmljcyA9IDA7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fc2F2ZS5jIGIv dG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKaW5kZXggZjY4N2Q1YS4uYmY2ODE5OCAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKKysrIGIvdG9vbHMvbGlieGwv bGlieGxfY29sb19zYXZlLmMKQEAgLTEyMiw3ICsxMjIsOCBAQCB2b2lkIGxpYnhsX19jb2xvX3Nh dmVfc2V0dXAobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fY29sb19zYXZlX3N0YXRlICpjc3MpCiAg ICAgICAgIGNkcy0+ZGV2aWNlX2tpbmRfZmxhZ3MgPSAoMSA8PCBMSUJYTF9fREVWSUNFX0tJTkRf VkJEKTsKIAogICAgICAgICAvKiBVc2UgdGhpcyBhcmdzIHdlIGNhbiBjb25uZWN0IHRvIHFlbXUg Y29sby1jb21wYXJlICovCi0gICAgICAgIG5pY3MgPSBsaWJ4bF9kZXZpY2VfbmljX2xpc3QoQ1RY LCBjZHMtPmRvbWlkLCAmY2RzLT5udW1fbmljcyk7CisgICAgICAgIG5pY3MgPSBsaWJ4bF9fZGV2 aWNlX2xpc3QoZ2MsICZsaWJ4bF9fbmljX2RldnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2RzLT5kb21pZCwgInZpZiIsICZjZHMtPm51bV9uaWNzKTsKICAgICAgICAg Y3NzLT5jcHMuY2hlY2twb2ludF9ob3N0ID0gbmljcy0+Y29sb19jaGVja3BvaW50X2hvc3Q7CiAg ICAgICAgIGNzcy0+Y3BzLmNoZWNrcG9pbnRfcG9ydCA9IG5pY3MtPmNvbG9fY2hlY2twb2ludF9w b3J0OwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIv dG9vbHMvbGlieGwvbGlieGxfZG0uYwppbmRleCAyNzVmYWJjLi45OGY4OWE5IDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF9kbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAg LTE5NzUsOCArMTk3NSw4IEBAIHN0YXRpYyB2b2lkIHNwYXduX3N0dWJfbGF1bmNoX2RtKGxpYnhs X19lZ2MgKmVnYywKICAgICAgICAgICogY2FsbGVkIGxpYnhsX2RldmljZV9uaWNfYWRkIGF0IHRo aXMgcG9pbnQsIGJ1dCBxZW11IG5lZWRzCiAgICAgICAgICAqIHRoZSBuaWMgaW5mb3JtYXRpb24g dG8gYmUgY29tcGxldGUuCiAgICAgICAgICAqLwotICAgICAgICByZXQgPSBsaWJ4bF9fZGV2aWNl X25pY19zZXRkZWZhdWx0KGdjLCBkbV9kb21pZCwgJmRtX2NvbmZpZy0+bmljc1tpXSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgIHJl dCA9IGxpYnhsX19uaWNfZGV2dHlwZS5zZXRfZGVmYXVsdChnYywgZG1fZG9taWQsICZkbV9jb25m aWctPm5pY3NbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmYWxzZSk7CiAgICAgICAgIGlmIChyZXQpCiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICB9 CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuaAppbmRleCBkZTE3MDZjLi45NzY4MjdhIDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFs LmgKQEAgLTEyNDIsOCArMTI0Miw2IEBAIF9oaWRkZW4gaW50IGxpYnhsX19kb21haW5fY3JlYXRl X2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9jcmVhdGVfaW5mbyAqY19pbmZvKTsKIF9oaWRk ZW4gaW50IGxpYnhsX19kb21haW5fYnVpbGRfaW5mb19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1 aWxkX2luZm8gKmJfaW5mbyk7Ci1faGlkZGVuIGludCBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZh dWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsIGJvb2wgaG90cGx1Zyk7 CiBfaGlkZGVuIHZvaWQgbGlieGxfX3JkbV9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpi X2luZm8pOwogCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9uaWMuYyBiL3Rvb2xzL2xp YnhsL2xpYnhsX25pYy5jCmluZGV4IGU3NzkyYmEuLmQ4MWI5NWIgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhsL2xpYnhsX25pYy5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX25pYy5jCkBAIC0yMCw2 ICsyMCw3IEBACiBpbnQgbGlieGxfbWFjX3RvX2RldmljZV9uaWMobGlieGxfY3R4ICpjdHgsIHVp bnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1h YywgbGlieGxfZGV2aWNlX25pYyAqbmljKQogeworICAgIEdDX0lOSVQoY3R4KTsKICAgICBsaWJ4 bF9kZXZpY2VfbmljICpuaWNzOwogICAgIGludCBuYiwgcmMsIGk7CiAgICAgbGlieGxfbWFjIG1h Y19uOwpAQCAtMjgsNyArMjksNyBAQCBpbnQgbGlieGxfbWFjX3RvX2RldmljZV9uaWMobGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgIGlmIChyYykKICAgICAgICAgcmV0dXJuIHJj OwogCi0gICAgbmljcyA9IGxpYnhsX2RldmljZV9uaWNfbGlzdChjdHgsIGRvbWlkLCAmbmIpOwor ICAgIG5pY3MgPSBsaWJ4bF9fZGV2aWNlX2xpc3QoZ2MsICZsaWJ4bF9fbmljX2RldnR5cGUsIGRv bWlkLCAidmlmIiwgJm5iKTsKICAgICBpZiAoIW5pY3MpCiAgICAgICAgIHJldHVybiBFUlJPUl9G QUlMOwogCkBAIC01Miw4ICs1Myw4IEBAIGludCBsaWJ4bF9tYWNfdG9fZGV2aWNlX25pYyhsaWJ4 bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAgcmV0dXJuIHJjOwogfQogCi1pbnQgbGli eGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywg Ym9vbCBob3RwbHVnKQorc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGxp YnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywgYm9vbCBob3RwbHVnKQogewogICAg IGludCByYzsKIApAQCAtMTQwLDQ1ICsxNDEsMTMgQEAgc3RhdGljIHZvaWQgbGlieGxfX3VwZGF0 ZV9jb25maWdfbmljKGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RldmljZV9uaWMgKmRzdCwKIAogc3Rh dGljIExJQlhMX0RFRklORV9VUERBVEVfREVWSUQobmljLCAidmlmIikKIAotc3RhdGljIHZvaWQg bGlieGxfX2RldmljZV9uaWNfYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2 KQorc3RhdGljIGludCBsaWJ4bF9fc2V0X3hlbnN0b3JlX25pYyhsaWJ4bF9fZ2MgKmdjLCB1aW50 MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2 aWNlX25pYyAqbmljLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJy YXlfdCAqYmFjaywgZmxleGFycmF5X3QgKmZyb250LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmbGV4YXJyYXlfdCAqcm9fZnJvbnQpCiB7Ci0gICAgU1RBVEVfQU9fR0MoYW9k ZXYtPmFvKTsKLSAgICBmbGV4YXJyYXlfdCAqZnJvbnQ7Ci0gICAgZmxleGFycmF5X3QgKmJhY2s7 Ci0gICAgbGlieGxfX2RldmljZSAqZGV2aWNlOwotICAgIGludCByYzsKLSAgICB4c190cmFuc2Fj dGlvbl90IHQgPSBYQlRfTlVMTDsKLSAgICBsaWJ4bF9kb21haW5fY29uZmlnIGRfY29uZmlnOwot ICAgIGxpYnhsX2RldmljZV9uaWMgbmljX3NhdmVkOwotICAgIGxpYnhsX19kb21haW5fdXNlcmRh dGFfbG9jayAqbG9jayA9IE5VTEw7Ci0KLSAgICBsaWJ4bF9kb21haW5fY29uZmlnX2luaXQoJmRf Y29uZmlnKTsKLSAgICBsaWJ4bF9kZXZpY2VfbmljX2luaXQoJm5pY19zYXZlZCk7Ci0gICAgbGli eGxfZGV2aWNlX25pY19jb3B5KENUWCwgJm5pY19zYXZlZCwgbmljKTsKLQotICAgIHJjID0gbGli eGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChnYywgZG9taWQsIG5pYywgYW9kZXYtPnVwZGF0ZV9q c29uKTsKLSAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIGZsZXhhcnJheV9ncm93KGJhY2ssIDIp OwogCi0gICAgZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwotICAgIGJhY2sgPSBm bGV4YXJyYXlfbWFrZShnYywgMTgsIDEpOwotCi0gICAgcmMgPSBsaWJ4bF9fZGV2aWNlX25pY191 cGRhdGVfZGV2aWQoZ2MsIGRvbWlkLCBuaWMpOwotICAgIGlmIChyYykgZ290byBvdXQ7Ci0KLSAg ICBsaWJ4bF9fdXBkYXRlX2NvbmZpZ19uaWMoZ2MsICZuaWNfc2F2ZWQsIG5pYyk7Ci0KLSAgICBH Q05FVyhkZXZpY2UpOwotICAgIHJjID0gbGlieGxfX2RldmljZV9mcm9tX25pYyhnYywgZG9taWQs IG5pYywgZGV2aWNlKTsKLSAgICBpZiAoIHJjICE9IDAgKSBnb3RvIG91dDsKLQotICAgIGZsZXhh cnJheV9hcHBlbmQoYmFjaywgImZyb250ZW5kLWlkIik7Ci0gICAgZmxleGFycmF5X2FwcGVuZChi YWNrLCBHQ1NQUklOVEYoIiVkIiwgZG9taWQpKTsKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ss ICJvbmxpbmUiKTsKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssICIxIik7Ci0gICAgZmxleGFy cmF5X2FwcGVuZChiYWNrLCAic3RhdGUiKTsKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssIEdD U1BSSU5URigiJWQiLCBYZW5idXNTdGF0ZUluaXRpYWxpc2luZykpOwogICAgIGlmIChuaWMtPnNj cmlwdCkKICAgICAgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGJhY2ssICJzY3JpcHQiLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Fic19wYXRoKGdjLCBuaWMtPnNjcmlw dCwKQEAgLTI3OSw3OCArMjQ4LDI0IEBAIHN0YXRpYyB2b2lkIGxpYnhsX19kZXZpY2VfbmljX2Fk ZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGZsZXhhcnJheV9hcHBlbmQo YmFjaywgbGlieGxfX3N0cmR1cChnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9uaWNfdHlwZV90b19zdHJpbmcobmljLT5uaWN0eXBlKSkpOwogCi0gICAgZmxl eGFycmF5X2FwcGVuZChmcm9udCwgImJhY2tlbmQtaWQiKTsKLSAgICBmbGV4YXJyYXlfYXBwZW5k KGZyb250LCBHQ1NQUklOVEYoIiVkIiwgbmljLT5iYWNrZW5kX2RvbWlkKSk7Ci0gICAgZmxleGFy cmF5X2FwcGVuZChmcm9udCwgInN0YXRlIik7Ci0gICAgZmxleGFycmF5X2FwcGVuZChmcm9udCwg R0NTUFJJTlRGKCIlZCIsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKSk7CiAgICAgZmxleGFycmF5 X2FwcGVuZChmcm9udCwgImhhbmRsZSIpOwogICAgIGZsZXhhcnJheV9hcHBlbmQoZnJvbnQsIEdD U1BSSU5URigiJWQiLCBuaWMtPmRldmlkKSk7CiAgICAgZmxleGFycmF5X2FwcGVuZChmcm9udCwg Im1hYyIpOwogICAgIGZsZXhhcnJheV9hcHBlbmQoZnJvbnQsIEdDU1BSSU5URigKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX01BQ19GTVQsIExJQlhMX01BQ19CWVRF UyhuaWMtPm1hYykpKTsKIAotICAgIGlmIChhb2Rldi0+dXBkYXRlX2pzb24pIHsKLSAgICAgICAg bG9jayA9IGxpYnhsX19sb2NrX2RvbWFpbl91c2VyZGF0YShnYywgZG9taWQpOwotICAgICAgICBp ZiAoIWxvY2spIHsKLSAgICAgICAgICAgIHJjID0gRVJST1JfTE9DS19GQUlMOwotICAgICAgICAg ICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICByYyA9IGxpYnhsX19nZXRfZG9tYWlu X2NvbmZpZ3VyYXRpb24oZ2MsIGRvbWlkLCAmZF9jb25maWcpOwotICAgICAgICBpZiAocmMpIGdv dG8gb3V0OwotCi0gICAgICAgIERFVklDRV9BREQobmljLCBuaWNzLCBkb21pZCwgJm5pY19zYXZl ZCwgQ09NUEFSRV9ERVZJRCwgJmRfY29uZmlnKTsKLQotICAgICAgICByYyA9IGxpYnhsX19kbV9j aGVja19zdGFydChnYywgJmRfY29uZmlnLCBkb21pZCk7Ci0gICAgICAgIGlmIChyYykgZ290byBv dXQ7Ci0gICAgfQotCi0gICAgZm9yICg7OykgewotICAgICAgICByYyA9IGxpYnhsX194c190cmFu c2FjdGlvbl9zdGFydChnYywgJnQpOwotICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwotCi0gICAg ICAgIHJjID0gbGlieGxfX2RldmljZV9leGlzdHMoZ2MsIHQsIGRldmljZSk7Ci0gICAgICAgIGlm IChyYyA8IDApIGdvdG8gb3V0OwotICAgICAgICBpZiAocmMgPT0gMSkgeyAgICAgICAgICAgICAg LyogYWxyZWFkeSBleGlzdHMgaW4geGVuc3RvcmUgKi8KLSAgICAgICAgICAgIExPR0QoRVJST1Is IGRvbWlkLCAiZGV2aWNlIGFscmVhZHkgZXhpc3RzIGluIHhlbnN0b3JlIik7Ci0gICAgICAgICAg ICBhb2Rldi0+YWN0aW9uID0gTElCWExfX0RFVklDRV9BQ1RJT05fQUREOyAvKiBmb3IgZXJyb3Ig bWVzc2FnZSAqLwotICAgICAgICAgICAgcmMgPSBFUlJPUl9ERVZJQ0VfRVhJU1RTOwotICAgICAg ICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYW9kZXYtPnVwZGF0ZV9q c29uKSB7Ci0gICAgICAgICAgICByYyA9IGxpYnhsX19zZXRfZG9tYWluX2NvbmZpZ3VyYXRpb24o Z2MsIGRvbWlkLCAmZF9jb25maWcpOwotICAgICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKLSAg ICAgICAgfQotCi0gICAgICAgIGxpYnhsX19kZXZpY2VfZ2VuZXJpY19hZGQoZ2MsIHQsIGRldmlj ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfa3ZzX29mX2Zs ZXhhcnJheShnYywgYmFjayksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX3hzX2t2c19vZl9mbGV4YXJyYXkoZ2MsIGZyb250KSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMKTsKLQotICAgICAgICByYyA9IGxpYnhsX194c190cmFuc2FjdGlv bl9jb21taXQoZ2MsICZ0KTsKLSAgICAgICAgaWYgKCFyYykgYnJlYWs7Ci0gICAgICAgIGlmIChy YyA8IDApIGdvdG8gb3V0OwotICAgIH0KLQotICAgIGFvZGV2LT5kZXYgPSBkZXZpY2U7Ci0gICAg YW9kZXYtPmFjdGlvbiA9IExJQlhMX19ERVZJQ0VfQUNUSU9OX0FERDsKLSAgICBsaWJ4bF9fd2Fp dF9kZXZpY2VfY29ubmVjdGlvbihlZ2MsIGFvZGV2KTsKKyAgICByZXR1cm4gMDsKK30KIAotICAg IHJjID0gMDsKLW91dDoKLSAgICBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fYWJvcnQoZ2MsICZ0KTsK LSAgICBpZiAobG9jaykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEobG9jayk7Ci0gICAg bGlieGxfZGV2aWNlX25pY19kaXNwb3NlKCZuaWNfc2F2ZWQpOwotICAgIGxpYnhsX2RvbWFpbl9j b25maWdfZGlzcG9zZSgmZF9jb25maWcpOwotICAgIGFvZGV2LT5yYyA9IHJjOwotICAgIGlmIChy YykgYW9kZXYtPmNhbGxiYWNrKGVnYywgYW9kZXYpOwotICAgIHJldHVybjsKK3N0YXRpYyB2b2lk IGxpYnhsX19kZXZpY2VfbmljX2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2Rl dikKK3sKKyAgICBsaWJ4bF9fZGV2aWNlX2FkZF9hc3luYyhlZ2MsIGRvbWlkLCAmbGlieGxfX25p Y19kZXZ0eXBlLCBuaWMsIGFvZGV2KTsKIH0KIAotc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX25p Y19mcm9tX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbGlieGxfcGF0aCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMpCitzdGF0 aWMgaW50IGxpYnhsX19uaWNfZnJvbV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFy ICpsaWJ4bF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf ZGV2aWQgZGV2aWQsIGxpYnhsX2RldmljZV9uaWMgKm5pYykKIHsKICAgICBjb25zdCBjaGFyICp0 bXA7CiAgICAgaW50IHJjOwpAQCAtNDk2LDcgKzQxMSw3IEBAIGludCBsaWJ4bF9kZXZpZF90b19k ZXZpY2VfbmljKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKIAogICAgIGxpYnhsX3Bh dGggPSBHQ1NQUklOVEYoIiVzL2RldmljZS92aWYvJWQiLCBsaWJ4bF9kb21fcGF0aCwgZGV2aWQp OwogCi0gICAgcmMgPSBsaWJ4bF9fZGV2aWNlX25pY19mcm9tX3hlbnN0b3JlKGdjLCBsaWJ4bF9w YXRoLCBuaWMpOworICAgIHJjID0gbGlieGxfX25pY19mcm9tX3hlbnN0b3JlKGdjLCBsaWJ4bF9w YXRoLCBkZXZpZCwgbmljKTsKICAgICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgcmMgPSAwOwpA QCAtNTA1LDY0ICs0MjAsMjIgQEAgb3V0OgogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGlu dCBsaWJ4bF9fYXBwZW5kX25pY19saXN0KGxpYnhsX19nYyAqZ2MsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqKm5pY3MsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpubmljcykKLXsK LSAgICBjaGFyICpsaWJ4bF9kaXJfcGF0aCA9IE5VTEw7Ci0gICAgY2hhciAqKmRpciA9IE5VTEw7 Ci0gICAgdW5zaWduZWQgaW50IG4gPSAwOwotICAgIGxpYnhsX2RldmljZV9uaWMgKnBuaWMgPSBO VUxMLCAqcG5pY19lbmQgPSBOVUxMOwotICAgIGludCByYzsKLQotICAgIGxpYnhsX2Rpcl9wYXRo ID0gR0NTUFJJTlRGKCIlcy9kZXZpY2UvdmlmIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9feHNfbGlieGxfcGF0aChnYywgZG9taWQpKTsKLSAgICBkaXIgPSBsaWJ4bF9f eHNfZGlyZWN0b3J5KGdjLCBYQlRfTlVMTCwgbGlieGxfZGlyX3BhdGgsICZuKTsKLSAgICBpZiAo ZGlyICYmIG4pIHsKLSAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqdG1wOwotICAgICAgICB0bXAg PSByZWFsbG9jKCpuaWNzLCBzaXplb2YgKGxpYnhsX2RldmljZV9uaWMpICogKCpubmljcyArIG4p KTsKLSAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIEVSUk9SX05P TUVNOwotICAgICAgICAqbmljcyA9IHRtcDsKLSAgICAgICAgcG5pYyA9ICpuaWNzICsgKm5uaWNz OwotICAgICAgICBwbmljX2VuZCA9ICpuaWNzICsgKm5uaWNzICsgbjsKLSAgICAgICAgZm9yICg7 IHBuaWMgPCBwbmljX2VuZDsgcG5pYysrLCBkaXIrKykgewotICAgICAgICAgICAgY29uc3QgY2hh ciAqcDsKLSAgICAgICAgICAgIHAgPSBHQ1NQUklOVEYoIiVzLyVzIiwgbGlieGxfZGlyX3BhdGgs ICpkaXIpOwotICAgICAgICAgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX25pY19mcm9tX3hlbnN0b3Jl KGdjLCBwLCBwbmljKTsKLSAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7Ci0gICAgICAgIH0K LSAgICAgICAgKm5uaWNzICs9IG47Ci0gICAgfQotICAgIHJldHVybiAwOwotCi0gb3V0OgotICAg IHJldHVybiByYzsKLX0KLQogbGlieGxfZGV2aWNlX25pYyAqbGlieGxfZGV2aWNlX25pY19saXN0 KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50ICpudW0pCiB7Ci0gICAgR0NfSU5J VChjdHgpOwotICAgIGxpYnhsX2RldmljZV9uaWMgKm5pY3MgPSBOVUxMOwotICAgIGludCByYzsK KyAgICBsaWJ4bF9kZXZpY2VfbmljICpyOwogCi0gICAgKm51bSA9IDA7CisgICAgR0NfSU5JVChj dHgpOwogCi0gICAgcmMgPSBsaWJ4bF9fYXBwZW5kX25pY19saXN0KGdjLCBkb21pZCwgJm5pY3Ms IG51bSk7Ci0gICAgaWYgKHJjKSBnb3RvIG91dF9lcnI7CisgICAgciA9IGxpYnhsX19kZXZpY2Vf bGlzdChnYywgJmxpYnhsX19uaWNfZGV2dHlwZSwgZG9taWQsICJ2aWYiLCBudW0pOwogCiAgICAg R0NfRlJFRTsKLSAgICByZXR1cm4gbmljczsKIAotb3V0X2VycjoKLSAgICBMT0dEKEVSUk9SLCBk b21pZCwgIlVuYWJsZSB0byBsaXN0IG5pY3MiKTsKLSAgICB3aGlsZSAoKm51bSkgewotICAgICAg ICAoKm51bSktLTsKLSAgICAgICAgbGlieGxfZGV2aWNlX25pY19kaXNwb3NlKCZuaWNzWypudW1d KTsKLSAgICB9Ci0gICAgZnJlZShuaWNzKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4g cjsKK30KKwordm9pZCBsaWJ4bF9kZXZpY2VfbmljX2xpc3RfZnJlZShsaWJ4bF9kZXZpY2Vfbmlj KiBsaXN0LCBpbnQgbnVtKQoreworICAgIGxpYnhsX19kZXZpY2VfbGlzdF9mcmVlKCZsaWJ4bF9f bmljX2RldnR5cGUsIGxpc3QsIG51bSk7CiB9CiAKIGludCBsaWJ4bF9kZXZpY2VfbmljX2dldGlu Zm8obGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLApAQCAtNjY4LDcgKzU0MSwxMyBAQCBM SUJYTF9ERUZJTkVfREVWSUNFU19BREQobmljKQogTElCWExfREVGSU5FX0RFVklDRV9SRU1PVkUo bmljKQogCiBERUZJTkVfREVWSUNFX1RZUEVfU1RSVUNUKG5pYywKLSAgICAudXBkYXRlX2NvbmZp ZyA9IGxpYnhsX2RldmljZV9uaWNfdXBkYXRlX2NvbmZpZworICAgIC51cGRhdGVfY29uZmlnID0g bGlieGxfZGV2aWNlX25pY191cGRhdGVfY29uZmlnLAorICAgIC5mcm9tX3hlbnN0b3JlID0gKGlu dCAoKikobGlieGxfX2djICosIGNvbnN0IGNoYXIgKiwgbGlieGxfZGV2aWQsIHZvaWQgKikpCisg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fbmljX2Zyb21feGVuc3RvcmUsCisgICAgLnNldF94 ZW5zdG9yZV9jb25maWcgPSAoaW50ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZvaWQgKiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV90ICpiYWNrLCBm bGV4YXJyYXlfdCAqZnJvbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm bGV4YXJyYXlfdCAqcm9fZnJvbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf X3NldF94ZW5zdG9yZV9uaWMKICk7CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9vY2FtbC9saWJz L3hsL3hlbmxpZ2h0X3N0dWJzLmMgYi90b29scy9vY2FtbC9saWJzL3hsL3hlbmxpZ2h0X3N0dWJz LmMKaW5kZXggNTVmMDlkNy4uYmFkZjljOSAxMDA2NDQKLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94 bC94ZW5saWdodF9zdHVicy5jCisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGwveGVubGlnaHRfc3R1 YnMuYwpAQCAtNzM0LDkgKzczNCw4IEBAIHZhbHVlIHN0dWJfeGxfZGV2aWNlX25pY19saXN0KHZh bHVlIGN0eCwgdmFsdWUgZG9taWQpCiAJCUZpZWxkKGxpc3QsIDEpID0gdGVtcDsKIAkJdGVtcCA9 IGxpc3Q7CiAJCVN0b3JlX2ZpZWxkKGxpc3QsIDAsIFZhbF9kZXZpY2VfbmljKCZjX2xpc3RbaV0p KTsKLQkJbGlieGxfZGV2aWNlX25pY19kaXNwb3NlKCZjX2xpc3RbaV0pOwogCX0KLQlmcmVlKGNf bGlzdCk7CisJbGlieGxfZGV2aWNlX25pY19saXN0X2ZyZWUoY19saXN0LCBuYikKIAogCUNBTUxy ZXR1cm4obGlzdCk7CiB9CmRpZmYgLS1naXQgYS90b29scy94bC94bF9uaWMuYyBiL3Rvb2xzL3hs L3hsX25pYy5jCmluZGV4IGE3OGQ5NDQuLjIzMTVkY2QgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hs X25pYy5jCisrKyBiL3Rvb2xzL3hsL3hsX25pYy5jCkBAIC0xMjQsOSArMTI0LDggQEAgaW50IG1h aW5fbmV0d29ya2xpc3QoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgICAgICAgICAg ICAgICBuaWNpbmZvLnJyZWZfdHgsIG5pY2luZm8ucnJlZl9yeCwgbmljaW5mby5iYWNrZW5kKTsK ICAgICAgICAgICAgICAgICBsaWJ4bF9uaWNpbmZvX2Rpc3Bvc2UoJm5pY2luZm8pOwogICAgICAg ICAgICAgfQotICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pY19kaXNwb3NlKCZuaWNzW2ldKTsK ICAgICAgICAgfQotICAgICAgICBmcmVlKG5pY3MpOworICAgICAgICBsaWJ4bF9kZXZpY2Vfbmlj X2xpc3RfZnJlZShuaWNzLCBuYik7CiAgICAgfQogICAgIHJldHVybiAwOwogfQotLSAKMi43LjQK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK