From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v5 10/12] libxl: change nic to use generec add function Date: Mon, 11 Sep 2017 20:15:00 +0300 Message-ID: <1505150102-30806-11-git-send-email-al1img@gmail.com> References: <1505150102-30806-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 1drSJ2-0001zm-U8 for xen-devel@lists.xenproject.org; Mon, 11 Sep 2017 17:15:33 +0000 Received: by mail-lf0-f65.google.com with SMTP id m199so4226051lfe.5 for ; Mon, 11 Sep 2017 10:15:31 -0700 (PDT) In-Reply-To: <1505150102-30806-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 L2xpYnhsX2NvbG9fc2F2ZS5jICAgICAgICAgfCAgIDQgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2Rt LmMgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgg ICAgICAgICAgfCAgIDIgLQogdG9vbHMvbGlieGwvbGlieGxfbmljLmMgICAgICAgICAgICAgICB8 IDE5MSArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB0b29scy9vY2FtbC9saWJz L3hsL3hlbmxpZ2h0X3N0dWJzLmMgIHwgICAzICstCiB0b29scy94bC94bF9uaWMuYyAgICAgICAg ICAgICAgICAgICAgIHwgICAzICstCiA4IGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyks 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 dG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKaW5kZXggZjY4N2Q1YS4uOGE5ZDM3YSAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKKysrIGIvdG9vbHMvbGlieGwv bGlieGxfY29sb19zYXZlLmMKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBsaWJ4bF9fY29sb19zYXZl X3NldHVwKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZSAqY3NzKQogICAg IGxpYnhsX19zcm1fc2F2ZV9hdXRvZ2VuX2NhbGxiYWNrcyAqY29uc3QgY2FsbGJhY2tzID0KICAg ICAgICAgJmRzcy0+c3dzLnNocy5jYWxsYmFja3Muc2F2ZS5hOwogICAgIGxpYnhsX2RldmljZV9u aWMgKm5pY3M7CisgICAgaW50IG5iOwogCiAgICAgU1RBVEVfQU9fR0MoZHNzLT5hbyk7CiAKQEAg LTEyMiw5ICsxMjMsMTAgQEAgdm9pZCBsaWJ4bF9fY29sb19zYXZlX3NldHVwKGxpYnhsX19lZ2Mg KmVnYywgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZSAqY3NzKQogICAgICAgICBjZHMtPmRldmljZV9r aW5kX2ZsYWdzID0gKDEgPDwgTElCWExfX0RFVklDRV9LSU5EX1ZCRCk7CiAKICAgICAgICAgLyog VXNlIHRoaXMgYXJncyB3ZSBjYW4gY29ubmVjdCB0byBxZW11IGNvbG8tY29tcGFyZSAqLwotICAg ICAgICBuaWNzID0gbGlieGxfZGV2aWNlX25pY19saXN0KENUWCwgY2RzLT5kb21pZCwgJmNkcy0+ bnVtX25pY3MpOworICAgICAgICBuaWNzID0gbGlieGxfZGV2aWNlX25pY19saXN0KENUWCwgY2Rz LT5kb21pZCwgJm5iKTsKICAgICAgICAgY3NzLT5jcHMuY2hlY2twb2ludF9ob3N0ID0gbmljcy0+ Y29sb19jaGVja3BvaW50X2hvc3Q7CiAgICAgICAgIGNzcy0+Y3BzLmNoZWNrcG9pbnRfcG9ydCA9 IG5pY3MtPmNvbG9fY2hlY2twb2ludF9wb3J0OworICAgICAgICBsaWJ4bF9kZXZpY2VfbmljX2xp c3RfZnJlZShuaWNzLCBuYik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgY2RzLT5kZXZpY2Vfa2lu ZF9mbGFncyA9ICgxIDw8IExJQlhMX19ERVZJQ0VfS0lORF9WSUYpIHwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgxIDw8IExJQlhMX19ERVZJQ0VfS0lORF9WQkQpOwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKaW5k ZXggMjc1ZmFiYy4uOThmODlhOSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYwor KysgYi90b29scy9saWJ4bC9saWJ4bF9kbS5jCkBAIC0xOTc1LDggKzE5NzUsOCBAQCBzdGF0aWMg dm9pZCBzcGF3bl9zdHViX2xhdW5jaF9kbShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAqIGNh bGxlZCBsaWJ4bF9kZXZpY2VfbmljX2FkZCBhdCB0aGlzIHBvaW50LCBidXQgcWVtdSBuZWVkcwog ICAgICAgICAgKiB0aGUgbmljIGluZm9ybWF0aW9uIHRvIGJlIGNvbXBsZXRlLgogICAgICAgICAg Ki8KLSAgICAgICAgcmV0ID0gbGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChnYywgZG1fZG9t aWQsICZkbV9jb25maWctPm5pY3NbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmFsc2UpOworICAgICAgICByZXQgPSBsaWJ4bF9fbmljX2RldnR5cGUuc2V0 X2RlZmF1bHQoZ2MsIGRtX2RvbWlkLCAmZG1fY29uZmlnLT5uaWNzW2ldLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogICAgICAgICBpZiAocmV0 KQogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggZGUx NzA2Yy4uOTc2ODI3YSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAor KysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0xMjQyLDggKzEyNDIsNiBAQCBf aGlkZGVuIGludCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9pbmZvX3NldGRlZmF1bHQobGlieGxfX2dj ICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21h aW5fY3JlYXRlX2luZm8gKmNfaW5mbyk7CiBfaGlkZGVuIGludCBsaWJ4bF9fZG9tYWluX2J1aWxk X2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8pOwotX2hpZGRl biBpbnQgbGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJf dCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf ZGV2aWNlX25pYyAqbmljLCBib29sIGhvdHBsdWcpOwogX2hpZGRlbiB2b2lkIGxpYnhsX19yZG1f c2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvKTsKIApkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfbmljLmMgYi90b29scy9saWJ4bC9saWJ4bF9uaWMuYwppbmRleCBlNzc5 MmJhLi5kODFiOTViIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9uaWMuYworKysgYi90 b29scy9saWJ4bC9saWJ4bF9uaWMuYwpAQCAtMjAsNiArMjAsNyBAQAogaW50IGxpYnhsX21hY190 b19kZXZpY2VfbmljKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptYWMsIGxpYnhsX2RldmljZV9uaWMgKm5pYykK IHsKKyAgICBHQ19JTklUKGN0eCk7CiAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljczsKICAgICBp bnQgbmIsIHJjLCBpOwogICAgIGxpYnhsX21hYyBtYWNfbjsKQEAgLTI4LDcgKzI5LDcgQEAgaW50 IGxpYnhsX21hY190b19kZXZpY2VfbmljKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwK ICAgICBpZiAocmMpCiAgICAgICAgIHJldHVybiByYzsKIAotICAgIG5pY3MgPSBsaWJ4bF9kZXZp Y2VfbmljX2xpc3QoY3R4LCBkb21pZCwgJm5iKTsKKyAgICBuaWNzID0gbGlieGxfX2RldmljZV9s aXN0KGdjLCAmbGlieGxfX25pY19kZXZ0eXBlLCBkb21pZCwgInZpZiIsICZuYik7CiAgICAgaWYg KCFuaWNzKQogICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsKIApAQCAtNTIsOCArNTMsOCBAQCBp bnQgbGlieGxfbWFjX3RvX2RldmljZV9uaWMobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlk LAogICAgIHJldHVybiByYzsKIH0KIAotaW50IGxpYnhsX19kZXZpY2VfbmljX3NldGRlZmF1bHQo bGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsIGJvb2wgaG90cGx1ZykKK3N0YXRpYyBpbnQg bGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2Vf bmljICpuaWMsIGJvb2wgaG90cGx1ZykKIHsKICAgICBpbnQgcmM7CiAKQEAgLTE0MCw0NSArMTQx LDEzIEBAIHN0YXRpYyB2b2lkIGxpYnhsX191cGRhdGVfY29uZmlnX25pYyhsaWJ4bF9fZ2MgKmdj LCBsaWJ4bF9kZXZpY2VfbmljICpkc3QsCiAKIHN0YXRpYyBMSUJYTF9ERUZJTkVfVVBEQVRFX0RF VklEKG5pYywgInZpZiIpCiAKLXN0YXRpYyB2b2lkIGxpYnhsX19kZXZpY2VfbmljX2FkZChsaWJ4 bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2RldikKK3N0YXRpYyBpbnQgbGlieGxfX3NldF94 ZW5zdG9yZV9uaWMobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X3QgKmJhY2ssIGZsZXhhcnJheV90ICpm cm9udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X3QgKnJv X2Zyb250KQogewotICAgIFNUQVRFX0FPX0dDKGFvZGV2LT5hbyk7Ci0gICAgZmxleGFycmF5X3Qg KmZyb250OwotICAgIGZsZXhhcnJheV90ICpiYWNrOwotICAgIGxpYnhsX19kZXZpY2UgKmRldmlj ZTsKLSAgICBpbnQgcmM7Ci0gICAgeHNfdHJhbnNhY3Rpb25fdCB0ID0gWEJUX05VTEw7Ci0gICAg bGlieGxfZG9tYWluX2NvbmZpZyBkX2NvbmZpZzsKLSAgICBsaWJ4bF9kZXZpY2VfbmljIG5pY19z YXZlZDsKLSAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxvY2sgPSBOVUxMOwotCi0g ICAgbGlieGxfZG9tYWluX2NvbmZpZ19pbml0KCZkX2NvbmZpZyk7Ci0gICAgbGlieGxfZGV2aWNl X25pY19pbml0KCZuaWNfc2F2ZWQpOwotICAgIGxpYnhsX2RldmljZV9uaWNfY29weShDVFgsICZu aWNfc2F2ZWQsIG5pYyk7Ci0KLSAgICByYyA9IGxpYnhsX19kZXZpY2VfbmljX3NldGRlZmF1bHQo Z2MsIGRvbWlkLCBuaWMsIGFvZGV2LT51cGRhdGVfanNvbik7Ci0gICAgaWYgKHJjKSBnb3RvIG91 dDsKKyAgICBmbGV4YXJyYXlfZ3JvdyhiYWNrLCAyKTsKIAotICAgIGZyb250ID0gZmxleGFycmF5 X21ha2UoZ2MsIDE2LCAxKTsKLSAgICBiYWNrID0gZmxleGFycmF5X21ha2UoZ2MsIDE4LCAxKTsK LQotICAgIHJjID0gbGlieGxfX2RldmljZV9uaWNfdXBkYXRlX2RldmlkKGdjLCBkb21pZCwgbmlj KTsKLSAgICBpZiAocmMpIGdvdG8gb3V0OwotCi0gICAgbGlieGxfX3VwZGF0ZV9jb25maWdfbmlj KGdjLCAmbmljX3NhdmVkLCBuaWMpOwotCi0gICAgR0NORVcoZGV2aWNlKTsKLSAgICByYyA9IGxp YnhsX19kZXZpY2VfZnJvbV9uaWMoZ2MsIGRvbWlkLCBuaWMsIGRldmljZSk7Ci0gICAgaWYgKCBy YyAhPSAwICkgZ290byBvdXQ7Ci0KLSAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssICJmcm9udGVu ZC1pZCIpOwotICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgR0NTUFJJTlRGKCIlZCIsIGRvbWlk KSk7Ci0gICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCAib25saW5lIik7Ci0gICAgZmxleGFycmF5 X2FwcGVuZChiYWNrLCAiMSIpOwotICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgInN0YXRlIik7 Ci0gICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCBHQ1NQUklOVEYoIiVkIiwgWGVuYnVzU3RhdGVJ bml0aWFsaXNpbmcpKTsKICAgICBpZiAobmljLT5zY3JpcHQpCiAgICAgICAgIGZsZXhhcnJheV9h cHBlbmRfcGFpcihiYWNrLCAic2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX19hYnNfcGF0aChnYywgbmljLT5zY3JpcHQsCkBAIC0yNzksNzggKzI0OCwyNCBAQCBz dGF0aWMgdm9pZCBsaWJ4bF9fZGV2aWNlX25pY19hZGQobGlieGxfX2VnYyAqZWdjLCB1aW50MzJf dCBkb21pZCwKICAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssIGxpYnhsX19zdHJkdXAoZ2MsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfbmljX3R5cGVfdG9fc3Ry aW5nKG5pYy0+bmljdHlwZSkpKTsKIAotICAgIGZsZXhhcnJheV9hcHBlbmQoZnJvbnQsICJiYWNr ZW5kLWlkIik7Ci0gICAgZmxleGFycmF5X2FwcGVuZChmcm9udCwgR0NTUFJJTlRGKCIlZCIsIG5p Yy0+YmFja2VuZF9kb21pZCkpOwotICAgIGZsZXhhcnJheV9hcHBlbmQoZnJvbnQsICJzdGF0ZSIp OwotICAgIGZsZXhhcnJheV9hcHBlbmQoZnJvbnQsIEdDU1BSSU5URigiJWQiLCBYZW5idXNTdGF0 ZUluaXRpYWxpc2luZykpOwogICAgIGZsZXhhcnJheV9hcHBlbmQoZnJvbnQsICJoYW5kbGUiKTsK ICAgICBmbGV4YXJyYXlfYXBwZW5kKGZyb250LCBHQ1NQUklOVEYoIiVkIiwgbmljLT5kZXZpZCkp OwogICAgIGZsZXhhcnJheV9hcHBlbmQoZnJvbnQsICJtYWMiKTsKICAgICBmbGV4YXJyYXlfYXBw ZW5kKGZyb250LCBHQ1NQUklOVEYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMSUJYTF9NQUNfRk1ULCBMSUJYTF9NQUNfQllURVMobmljLT5tYWMpKSk7CiAKLSAgICBpZiAo YW9kZXYtPnVwZGF0ZV9qc29uKSB7Ci0gICAgICAgIGxvY2sgPSBsaWJ4bF9fbG9ja19kb21haW5f dXNlcmRhdGEoZ2MsIGRvbWlkKTsKLSAgICAgICAgaWYgKCFsb2NrKSB7Ci0gICAgICAgICAgICBy YyA9IEVSUk9SX0xPQ0tfRkFJTDsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0K LSAgICAgICAgcmMgPSBsaWJ4bF9fZ2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwg JmRfY29uZmlnKTsKLSAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKLQotICAgICAgICBERVZJQ0Vf QUREKG5pYywgbmljcywgZG9taWQsICZuaWNfc2F2ZWQsIENPTVBBUkVfREVWSUQsICZkX2NvbmZp Zyk7Ci0KLSAgICAgICAgcmMgPSBsaWJ4bF9fZG1fY2hlY2tfc3RhcnQoZ2MsICZkX2NvbmZpZywg ZG9taWQpOwotICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwotICAgIH0KLQotICAgIGZvciAoOzsp IHsKLSAgICAgICAgcmMgPSBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fc3RhcnQoZ2MsICZ0KTsKLSAg ICAgICAgaWYgKHJjKSBnb3RvIG91dDsKLQotICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfZXhp c3RzKGdjLCB0LCBkZXZpY2UpOwotICAgICAgICBpZiAocmMgPCAwKSBnb3RvIG91dDsKLSAgICAg ICAgaWYgKHJjID09IDEpIHsgICAgICAgICAgICAgIC8qIGFscmVhZHkgZXhpc3RzIGluIHhlbnN0 b3JlICovCi0gICAgICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgImRldmljZSBhbHJlYWR5IGV4 aXN0cyBpbiB4ZW5zdG9yZSIpOwotICAgICAgICAgICAgYW9kZXYtPmFjdGlvbiA9IExJQlhMX19E RVZJQ0VfQUNUSU9OX0FERDsgLyogZm9yIGVycm9yIG1lc3NhZ2UgKi8KLSAgICAgICAgICAgIHJj ID0gRVJST1JfREVWSUNFX0VYSVNUUzsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9 Ci0KLSAgICAgICAgaWYgKGFvZGV2LT51cGRhdGVfanNvbikgewotICAgICAgICAgICAgcmMgPSBs aWJ4bF9fc2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwgJmRfY29uZmlnKTsKLSAg ICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBsaWJ4bF9f ZGV2aWNlX2dlbmVyaWNfYWRkKGdjLCB0LCBkZXZpY2UsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX3hzX2t2c19vZl9mbGV4YXJyYXkoZ2MsIGJhY2spLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194c19rdnNfb2ZfZmxleGFycmF5KGdj LCBmcm9udCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAg ICAgICAgcmMgPSBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fY29tbWl0KGdjLCAmdCk7Ci0gICAgICAg IGlmICghcmMpIGJyZWFrOwotICAgICAgICBpZiAocmMgPCAwKSBnb3RvIG91dDsKLSAgICB9Ci0K LSAgICBhb2Rldi0+ZGV2ID0gZGV2aWNlOwotICAgIGFvZGV2LT5hY3Rpb24gPSBMSUJYTF9fREVW SUNFX0FDVElPTl9BREQ7Ci0gICAgbGlieGxfX3dhaXRfZGV2aWNlX2Nvbm5lY3Rpb24oZWdjLCBh b2Rldik7CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICByYyA9IDA7Ci1vdXQ6Ci0gICAgbGlieGxf X3hzX3RyYW5zYWN0aW9uX2Fib3J0KGdjLCAmdCk7Ci0gICAgaWYgKGxvY2spIGxpYnhsX191bmxv Y2tfZG9tYWluX3VzZXJkYXRhKGxvY2spOwotICAgIGxpYnhsX2RldmljZV9uaWNfZGlzcG9zZSgm bmljX3NhdmVkKTsKLSAgICBsaWJ4bF9kb21haW5fY29uZmlnX2Rpc3Bvc2UoJmRfY29uZmlnKTsK LSAgICBhb2Rldi0+cmMgPSByYzsKLSAgICBpZiAocmMpIGFvZGV2LT5jYWxsYmFjayhlZ2MsIGFv ZGV2KTsKLSAgICByZXR1cm47CitzdGF0aWMgdm9pZCBsaWJ4bF9fZGV2aWNlX25pY19hZGQobGli eGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCit7CisgICAgbGlieGxfX2RldmljZV9h ZGRfYXN5bmMoZWdjLCBkb21pZCwgJmxpYnhsX19uaWNfZGV2dHlwZSwgbmljLCBhb2Rldik7CiB9 CiAKLXN0YXRpYyBpbnQgbGlieGxfX2RldmljZV9uaWNfZnJvbV94ZW5zdG9yZShsaWJ4bF9fZ2Mg KmdjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKmxpYnhsX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfZGV2aWNlX25pYyAqbmljKQorc3RhdGljIGludCBsaWJ4bF9fbmljX2Zyb21feGVu c3RvcmUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqbGlieGxfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmlkIGRldmlkLCBsaWJ4bF9kZXZpY2Vf bmljICpuaWMpCiB7CiAgICAgY29uc3QgY2hhciAqdG1wOwogICAgIGludCByYzsKQEAgLTQ5Niw3 ICs0MTEsNyBAQCBpbnQgbGlieGxfZGV2aWRfdG9fZGV2aWNlX25pYyhsaWJ4bF9jdHggKmN0eCwg dWludDMyX3QgZG9taWQsCiAKICAgICBsaWJ4bF9wYXRoID0gR0NTUFJJTlRGKCIlcy9kZXZpY2Uv dmlmLyVkIiwgbGlieGxfZG9tX3BhdGgsIGRldmlkKTsKIAotICAgIHJjID0gbGlieGxfX2Rldmlj ZV9uaWNfZnJvbV94ZW5zdG9yZShnYywgbGlieGxfcGF0aCwgbmljKTsKKyAgICByYyA9IGxpYnhs X19uaWNfZnJvbV94ZW5zdG9yZShnYywgbGlieGxfcGF0aCwgZGV2aWQsIG5pYyk7CiAgICAgaWYg KHJjKSBnb3RvIG91dDsKIAogICAgIHJjID0gMDsKQEAgLTUwNSw2NCArNDIwLDIyIEBAIG91dDoK ICAgICByZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgbGlieGxfX2FwcGVuZF9uaWNfbGlzdChs aWJ4bF9fZ2MgKmdjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RldmljZV9uaWMgKipuaWNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCAqbm5pY3MpCi17Ci0gICAgY2hhciAqbGlieGxfZGlyX3BhdGgg PSBOVUxMOwotICAgIGNoYXIgKipkaXIgPSBOVUxMOwotICAgIHVuc2lnbmVkIGludCBuID0gMDsK LSAgICBsaWJ4bF9kZXZpY2VfbmljICpwbmljID0gTlVMTCwgKnBuaWNfZW5kID0gTlVMTDsKLSAg ICBpbnQgcmM7Ci0KLSAgICBsaWJ4bF9kaXJfcGF0aCA9IEdDU1BSSU5URigiJXMvZGV2aWNlL3Zp ZiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hzX2xpYnhsX3BhdGgo Z2MsIGRvbWlkKSk7Ci0gICAgZGlyID0gbGlieGxfX3hzX2RpcmVjdG9yeShnYywgWEJUX05VTEws IGxpYnhsX2Rpcl9wYXRoLCAmbik7Ci0gICAgaWYgKGRpciAmJiBuKSB7Ci0gICAgICAgIGxpYnhs X2RldmljZV9uaWMgKnRtcDsKLSAgICAgICAgdG1wID0gcmVhbGxvYygqbmljcywgc2l6ZW9mIChs aWJ4bF9kZXZpY2VfbmljKSAqICgqbm5pY3MgKyBuKSk7Ci0gICAgICAgIGlmICh0bXAgPT0gTlVM TCkKLSAgICAgICAgICAgIHJldHVybiBFUlJPUl9OT01FTTsKLSAgICAgICAgKm5pY3MgPSB0bXA7 Ci0gICAgICAgIHBuaWMgPSAqbmljcyArICpubmljczsKLSAgICAgICAgcG5pY19lbmQgPSAqbmlj cyArICpubmljcyArIG47Ci0gICAgICAgIGZvciAoOyBwbmljIDwgcG5pY19lbmQ7IHBuaWMrKywg ZGlyKyspIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKnA7Ci0gICAgICAgICAgICBwID0gR0NT UFJJTlRGKCIlcy8lcyIsIGxpYnhsX2Rpcl9wYXRoLCAqZGlyKTsKLSAgICAgICAgICAgIHJjID0g bGlieGxfX2RldmljZV9uaWNfZnJvbV94ZW5zdG9yZShnYywgcCwgcG5pYyk7Ci0gICAgICAgICAg ICBpZiAocmMpIGdvdG8gb3V0OwotICAgICAgICB9Ci0gICAgICAgICpubmljcyArPSBuOwotICAg IH0KLSAgICByZXR1cm4gMDsKLQotIG91dDoKLSAgICByZXR1cm4gcmM7Ci19Ci0KIGxpYnhsX2Rl dmljZV9uaWMgKmxpYnhsX2RldmljZV9uaWNfbGlzdChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3Qg ZG9taWQsIGludCAqbnVtKQogewotICAgIEdDX0lOSVQoY3R4KTsKLSAgICBsaWJ4bF9kZXZpY2Vf bmljICpuaWNzID0gTlVMTDsKLSAgICBpbnQgcmM7CisgICAgbGlieGxfZGV2aWNlX25pYyAqcjsK IAotICAgICpudW0gPSAwOworICAgIEdDX0lOSVQoY3R4KTsKIAotICAgIHJjID0gbGlieGxfX2Fw cGVuZF9uaWNfbGlzdChnYywgZG9taWQsICZuaWNzLCBudW0pOwotICAgIGlmIChyYykgZ290byBv dXRfZXJyOworICAgIHIgPSBsaWJ4bF9fZGV2aWNlX2xpc3QoZ2MsICZsaWJ4bF9fbmljX2RldnR5 cGUsIGRvbWlkLCAidmlmIiwgbnVtKTsKIAogICAgIEdDX0ZSRUU7Ci0gICAgcmV0dXJuIG5pY3M7 CiAKLW91dF9lcnI6Ci0gICAgTE9HRChFUlJPUiwgZG9taWQsICJVbmFibGUgdG8gbGlzdCBuaWNz Iik7Ci0gICAgd2hpbGUgKCpudW0pIHsKLSAgICAgICAgKCpudW0pLS07Ci0gICAgICAgIGxpYnhs X2RldmljZV9uaWNfZGlzcG9zZSgmbmljc1sqbnVtXSk7Ci0gICAgfQotICAgIGZyZWUobmljcyk7 Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIHI7Cit9CisKK3ZvaWQgbGlieGxfZGV2aWNl X25pY19saXN0X2ZyZWUobGlieGxfZGV2aWNlX25pYyogbGlzdCwgaW50IG51bSkKK3sKKyAgICBs aWJ4bF9fZGV2aWNlX2xpc3RfZnJlZSgmbGlieGxfX25pY19kZXZ0eXBlLCBsaXN0LCBudW0pOwog fQogCiBpbnQgbGlieGxfZGV2aWNlX25pY19nZXRpbmZvKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJf dCBkb21pZCwKQEAgLTY2OCw3ICs1NDEsMTMgQEAgTElCWExfREVGSU5FX0RFVklDRVNfQUREKG5p YykKIExJQlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFKG5pYykKIAogREVGSU5FX0RFVklDRV9UWVBF X1NUUlVDVChuaWMsCi0gICAgLnVwZGF0ZV9jb25maWcgPSBsaWJ4bF9kZXZpY2VfbmljX3VwZGF0 ZV9jb25maWcKKyAgICAudXBkYXRlX2NvbmZpZyA9IGxpYnhsX2RldmljZV9uaWNfdXBkYXRlX2Nv bmZpZywKKyAgICAuZnJvbV94ZW5zdG9yZSA9IChpbnQgKCopKGxpYnhsX19nYyAqLCBjb25zdCBj aGFyICosIGxpYnhsX2RldmlkLCB2b2lkICopKQorICAgICAgICAgICAgICAgICAgICAgbGlieGxf X25pY19mcm9tX3hlbnN0b3JlLAorICAgIC5zZXRfeGVuc3RvcmVfY29uZmlnID0gKGludCAoKiko bGlieGxfX2djICosIHVpbnQzMl90LCB2b2lkICosCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmbGV4YXJyYXlfdCAqYmFjaywgZmxleGFycmF5X3QgKmZyb250LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X3QgKnJvX2Zyb250KSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zZXRfeGVuc3RvcmVfbmljCiApOwogCiAv KgpkaWZmIC0tZ2l0IGEvdG9vbHMvb2NhbWwvbGlicy94bC94ZW5saWdodF9zdHVicy5jIGIvdG9v bHMvb2NhbWwvbGlicy94bC94ZW5saWdodF9zdHVicy5jCmluZGV4IDU1ZjA5ZDcuLmJhZGY5Yzkg MTAwNjQ0Ci0tLSBhL3Rvb2xzL29jYW1sL2xpYnMveGwveGVubGlnaHRfc3R1YnMuYworKysgYi90 b29scy9vY2FtbC9saWJzL3hsL3hlbmxpZ2h0X3N0dWJzLmMKQEAgLTczNCw5ICs3MzQsOCBAQCB2 YWx1ZSBzdHViX3hsX2RldmljZV9uaWNfbGlzdCh2YWx1ZSBjdHgsIHZhbHVlIGRvbWlkKQogCQlG aWVsZChsaXN0LCAxKSA9IHRlbXA7CiAJCXRlbXAgPSBsaXN0OwogCQlTdG9yZV9maWVsZChsaXN0 LCAwLCBWYWxfZGV2aWNlX25pYygmY19saXN0W2ldKSk7Ci0JCWxpYnhsX2RldmljZV9uaWNfZGlz cG9zZSgmY19saXN0W2ldKTsKIAl9Ci0JZnJlZShjX2xpc3QpOworCWxpYnhsX2RldmljZV9uaWNf bGlzdF9mcmVlKGNfbGlzdCwgbmIpCiAKIAlDQU1McmV0dXJuKGxpc3QpOwogfQpkaWZmIC0tZ2l0 IGEvdG9vbHMveGwveGxfbmljLmMgYi90b29scy94bC94bF9uaWMuYwppbmRleCBhNzhkOTQ0Li4y MzE1ZGNkIDEwMDY0NAotLS0gYS90b29scy94bC94bF9uaWMuYworKysgYi90b29scy94bC94bF9u aWMuYwpAQCAtMTI0LDkgKzEyNCw4IEBAIGludCBtYWluX25ldHdvcmtsaXN0KGludCBhcmdjLCBj aGFyICoqYXJndikKICAgICAgICAgICAgICAgICAgICAgICAgbmljaW5mby5ycmVmX3R4LCBuaWNp bmZvLnJyZWZfcngsIG5pY2luZm8uYmFja2VuZCk7CiAgICAgICAgICAgICAgICAgbGlieGxfbmlj aW5mb19kaXNwb3NlKCZuaWNpbmZvKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxpYnhs X2RldmljZV9uaWNfZGlzcG9zZSgmbmljc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgZnJlZShu aWNzKTsKKyAgICAgICAgbGlieGxfZGV2aWNlX25pY19saXN0X2ZyZWUobmljcywgbmIpOwogICAg IH0KICAgICByZXR1cm4gMDsKIH0KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==