From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC v1 56/74] xen/pvshim: add grant table operations Date: Thu, 4 Jan 2018 13:06:07 +0000 Message-ID: <20180104130625.28605-57-wei.liu2@citrix.com> References: <20180104130625.28605-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eX5aI-0005av-0b for xen-devel@lists.xenproject.org; Thu, 04 Jan 2018 13:29:26 +0000 In-Reply-To: <20180104130625.28605-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KClNpZ25lZC1vZmYt Ynk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5 OiBBbnRob255IExpZ3VvcmkgPGFsaWd1b3JpQGFtYXpvbi5jb20+ClNpZ25lZC1vZmYtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2 L3B2L3NoaW0uYyAgICAgICAgICAgICAgICB8IDE3NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiB4ZW4vY29tbW9uL2NvbXBhdC9ncmFudF90YWJsZS5jICAgICAgIHwgICA1ICsK IHhlbi9jb21tb24vZ3JhbnRfdGFibGUuYyAgICAgICAgICAgICAgfCAgMTAgKysKIHhlbi9pbmNs dWRlL2FzbS14ODYvZ3Vlc3QvaHlwZXJjYWxsLmggfCAgIDYgKysKIHhlbi9pbmNsdWRlL2FzbS14 ODYvcHYvc2hpbS5oICAgICAgICAgfCAgIDkgKysKIDUgZmlsZXMgY2hhbmdlZCwgMjA0IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvc2hpbS5jIGIveGVuL2FyY2gv eDg2L3B2L3NoaW0uYwppbmRleCA2OTQ4Mjk5M2Y5Li45OGMxZTMxZThmIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvcHYvc2hpbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9zaGltLmMKQEAgLTIy LDYgKzIyLDcgQEAKICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVu L2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CisjaW5jbHVkZSA8eGVuL2lvY2Fw Lmg+CiAjaW5jbHVkZSA8eGVuL3NodXRkb3duLmg+CiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CiAK QEAgLTMwLDExICszMSwxNyBAQAogI2luY2x1ZGUgPGFzbS9ndWVzdC5oPgogI2luY2x1ZGUgPGFz bS9wdi9tbS5oPgogCisjaW5jbHVkZSA8Y29tcGF0L2dyYW50X3RhYmxlLmg+CisKICNpZm5kZWYg Q09ORklHX1BWX1NISU1fRVhDTFVTSVZFCiBib29sIHB2X3NoaW07CiBib29sZWFuX3BhcmFtKCJw di1zaGltIiwgcHZfc2hpbSk7CiAjZW5kaWYKIAorc3RhdGljIHVuc2lnbmVkIGludCBucl9ncmFu dF9saXN0Oworc3RhdGljIHVuc2lnbmVkIGxvbmcgKmdyYW50X2ZyYW1lczsKK3N0YXRpYyBERUZJ TkVfU1BJTkxPQ0soZ3JhbnRfbG9jayk7CisKICNkZWZpbmUgTDFfUFJPVCAoX1BBR0VfUFJFU0VO VHxfUEFHRV9SV3xfUEFHRV9BQ0NFU1NFRHxfUEFHRV9VU0VSfCBcCiAgICAgICAgICAgICAgICAg IF9QQUdFX0dVRVNUX0tFUk5FTCkKICNkZWZpbmUgQ09NUEFUX0wxX1BST1QgKF9QQUdFX1BSRVNF TlR8X1BBR0VfUld8X1BBR0VfQUNDRVNTRUQpCkBAIC0zNjAsNiArMzY3LDE3MyBAQCB2b2lkIHB2 X3NoaW1faW5qZWN0X2V2dGNobih1bnNpZ25lZCBpbnQgcG9ydCkKICAgICB9CiB9CiAKK2xvbmcg cHZfc2hpbV9ncmFudF90YWJsZV9vcCh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExF X1BBUkFNKHZvaWQpIHVvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgY291bnQsIGJvb2wgY29tcGF0KQoreworICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50 LT5kb21haW47CisgICAgbG9uZyByYyA9IDA7CisKKyAgICBpZiAoIGNvdW50ICE9IDEgKQorICAg ICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHN3aXRjaCAoIGNtZCApCisgICAgeworICAgIGNh c2UgR05UVEFCT1Bfc2V0dXBfdGFibGU6CisgICAgeworICAgICAgICBzdHJ1Y3QgZ250dGFiX3Nl dHVwX3RhYmxlIG5hdDsKKyAgICAgICAgc3RydWN0IGNvbXBhdF9nbnR0YWJfc2V0dXBfdGFibGUg Y21wOworICAgICAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgICAgICBpZiAoIHVubGlrZWx5KGNv bXBhdCA/IGNvcHlfZnJvbV9ndWVzdCgmY21wLCB1b3AsIDEpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogY29weV9mcm9tX2d1ZXN0KCZuYXQsIHVvcCwgMSkpIHx8CisgICAgICAgICAg ICAgdW5saWtlbHkoY29tcGF0ID8gIWNvbXBhdF9oYW5kbGVfb2theShjbXAuZnJhbWVfbGlzdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcC5u cl9mcmFtZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIWd1ZXN0X2hhbmRsZV9v a2F5KG5hdC5mcmFtZV9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYXQubnJfZnJhbWVzKSkgKQorICAgICAgICB7CisgICAgICAgICAgICBy YyA9IC1FRkFVTFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAo IGNvbXBhdCApCisjZGVmaW5lIFhMQVRfZ250dGFiX3NldHVwX3RhYmxlX0hORExfZnJhbWVfbGlz dChkLCBzKQorICAgICAgICAgICAgICAgIFhMQVRfZ250dGFiX3NldHVwX3RhYmxlKCZuYXQsICZj bXApOworI3VuZGVmIFhMQVRfZ250dGFiX3NldHVwX3RhYmxlX0hORExfZnJhbWVfbGlzdAorCisg ICAgICAgIG5hdC5zdGF0dXMgPSBHTlRTVF9va2F5OworCisgICAgICAgIHNwaW5fbG9jaygmZ3Jh bnRfbG9jayk7CisgICAgICAgIGlmICggIW5yX2dyYW50X2xpc3QgKQorICAgICAgICB7CisgICAg ICAgICAgICBzdHJ1Y3QgZ250dGFiX3F1ZXJ5X3NpemUgcXVlcnlfc2l6ZSA9IHsKKyAgICAgICAg ICAgICAgICAuZG9tID0gRE9NSURfU0VMRiwKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAg IHJjID0geGVuX2h5cGVyY2FsbF9ncmFudF90YWJsZV9vcChHTlRUQUJPUF9xdWVyeV9zaXplLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZxdWVyeV9zaXpl LCAxKTsKKyAgICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgIHNwaW5fdW5sb2NrKCZncmFudF9sb2NrKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgQVNTRVJUKCFncmFudF9mcmFtZXMpOworICAgICAg ICAgICAgZ3JhbnRfZnJhbWVzID0geHphbGxvY19hcnJheSh1bnNpZ25lZCBsb25nLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeV9zaXplLm1heF9ucl9mcmFt ZXMpOworICAgICAgICAgICAgaWYgKCAhZ3JhbnRfZnJhbWVzICkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICBzcGluX3VubG9jaygmZ3JhbnRfbG9jayk7CisgICAgICAgICAgICAgICAg cmMgPSAtRU5PTUVNOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisg ICAgICAgICAgICBucl9ncmFudF9saXN0ID0gcXVlcnlfc2l6ZS5tYXhfbnJfZnJhbWVzOworICAg ICAgICB9CisKKyAgICAgICAgaWYgKCBuYXQubnJfZnJhbWVzID4gbnJfZ3JhbnRfbGlzdCApCisg ICAgICAgIHsKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZncmFudF9sb2NrKTsKKyAgICAgICAg ICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAg ICAgZm9yICggaSA9IDA7IGkgPCBuYXQubnJfZnJhbWVzOyBpKysgKQorICAgICAgICB7CisgICAg ICAgICAgICBpZiAoICFncmFudF9mcmFtZXNbaV0gKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXAgeGF0cCA9IHsKKyAgICAgICAgICAgICAg ICAgICAgLmRvbWlkID0gRE9NSURfU0VMRiwKKyAgICAgICAgICAgICAgICAgICAgLmlkeCA9IGks CisgICAgICAgICAgICAgICAgICAgIC5zcGFjZSA9IFhFTk1BUFNQQUNFX2dyYW50X3RhYmxlLAor ICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgbWZuX3QgbWZuOworCisgICAgICAg ICAgICAgICAgcmMgPSBoeXBlcnZpc29yX2FsbG9jX3VudXNlZF9wYWdlKCZtZm4pOworICAgICAg ICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg ICAgZ3ByaW50ayhYRU5MT0dfRVJSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFi bGUgdG8gZ2V0IG1lbW9yeSBmb3IgZ3JhbnQgdGFibGVcbiIpOworICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB4YXRwLmdwZm4g PSBtZm5feChtZm4pOworICAgICAgICAgICAgICAgIHJjID0geGVuX2h5cGVyY2FsbF9tZW1vcnlf b3AoWEVOTUVNX2FkZF90b19waHlzbWFwLCAmeGF0cCk7CisgICAgICAgICAgICAgICAgaWYgKCBy YyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBoeXBlcnZpc29yX2Zy ZWVfdW51c2VkX3BhZ2UobWZuKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgQlVHX09OKGlvbWVtX3Blcm1pdF9hY2Nlc3Mo ZCwgbWZuX3gobWZuKSwgbWZuX3gobWZuKSkpOworICAgICAgICAgICAgICAgIGdyYW50X2ZyYW1l c1tpXSA9IG1mbl94KG1mbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEFTU0VSVChn cmFudF9mcmFtZXNbaV0pOworICAgICAgICAgICAgaWYgKCBjb21wYXQgKQorICAgICAgICAgICAg eworICAgICAgICAgICAgICAgIGNvbXBhdF9wZm5fdCBwZm4gPSBncmFudF9mcmFtZXNbaV07CisK KyAgICAgICAgICAgICAgICBpZiAoIF9fY29weV90b19jb21wYXRfb2Zmc2V0KGNtcC5mcmFtZV9s aXN0LCBpLCAmcGZuLCAxKSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICBuYXQuc3RhdHVzID0gR05UU1RfYmFkX3ZpcnRfYWRkcjsKKyAgICAgICAgICAgICAgICAgICAg cmMgPSAtRUZBVUxUOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICggX19jb3B5X3RvX2d1ZXN0 X29mZnNldChuYXQuZnJhbWVfbGlzdCwgaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZncmFudF9mcmFtZXNbaV0sIDEpICkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICBuYXQuc3RhdHVzID0gR05UU1RfYmFkX3ZpcnRfYWRkcjsKKyAgICAgICAg ICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKyAgICAgICAgc3Bpbl91bmxvY2soJmdyYW50X2xvY2spOworCisgICAg ICAgIGlmICggY29tcGF0ICkKKyNkZWZpbmUgWExBVF9nbnR0YWJfc2V0dXBfdGFibGVfSE5ETF9m cmFtZV9saXN0KGQsIHMpCisgICAgICAgICAgICAgICAgWExBVF9nbnR0YWJfc2V0dXBfdGFibGUo JmNtcCwgJm5hdCk7CisjdW5kZWYgWExBVF9nbnR0YWJfc2V0dXBfdGFibGVfSE5ETF9mcmFtZV9s aXN0CisKKyAgICAgICAgaWYgKCB1bmxpa2VseShjb21wYXQgPyBjb3B5X3RvX2d1ZXN0KHVvcCwg JmNtcCwgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb3B5X3RvX2d1ZXN0KHVv cCwgJm5hdCwgMSkpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBicmVhazsKKyAgICB9CisgICAg Y2FzZSBHTlRUQUJPUF9xdWVyeV9zaXplOgorICAgIHsKKyAgICAgICAgc3RydWN0IGdudHRhYl9x dWVyeV9zaXplIG9wOworICAgICAgICBpbnQgcmM7CisKKyAgICAgICAgaWYgKCB1bmxpa2VseShj b3B5X2Zyb21fZ3Vlc3QoJm9wLCB1b3AsIDEpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gLUVGQVVMVDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmMg PSB4ZW5faHlwZXJjYWxsX2dyYW50X3RhYmxlX29wKEdOVFRBQk9QX3F1ZXJ5X3NpemUsICZvcCwg Y291bnQpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg IGlmICggY29weV90b19ndWVzdCh1b3AsICZvcCwgMSkgKQorICAgICAgICB7CisgICAgICAgICAg ICByYyA9IC1FRkFVTFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAg IGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByYyA9IC1FTk9TWVM7CisgICAg ICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByYzsKK30KKwogZG9taWRfdCBnZXRfZG9t MF9kb21pZCh2b2lkKQogewogICAgIHVpbnQzMl90IGVheCwgZWJ4LCBlY3gsIGVkeDsKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vY29tcGF0L2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2NvbXBh dC9ncmFudF90YWJsZS5jCmluZGV4IGZmMWQ2NzhmMDEuLjg4YzYwOGI2MmIgMTAwNjQ0Ci0tLSBh L3hlbi9jb21tb24vY29tcGF0L2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9jb21wYXQv Z3JhbnRfdGFibGUuYwpAQCAtMTIyLDYgKzEyMiwxMSBAQCBpbnQgY29tcGF0X2dyYW50X3RhYmxl X29wKHVuc2lnbmVkIGludCBjbWQsCiAgICAgICAgIHJldHVybiBkb19ncmFudF90YWJsZV9vcChj bWQsIGNtcF91b3AsIGNvdW50KTsKICAgICB9CiAKKyNpZmRlZiBDT05GSUdfWDg2CisgICAgaWYg KCBwdl9zaGltICkKKyAgICAgICAgcmV0dXJuIHB2X3NoaW1fZ3JhbnRfdGFibGVfb3AoY21kLCBj bXBfdW9wLCBjb3VudCwgdHJ1ZSk7CisjZW5kaWYKKwogICAgIGlmICggKGludCljb3VudCA8IDAg KQogICAgICAgICByYyA9IC1FSU5WQUw7CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRf dGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCAyNTA0NTBiZGRhLi5jYWY5 ZDJjZmFlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2Nv bW1vbi9ncmFudF90YWJsZS5jCkBAIC00MCw2ICs0MCwxMCBAQAogI2luY2x1ZGUgPHhzbS94c20u aD4KICNpbmNsdWRlIDxhc20vZmx1c2h0bGIuaD4KIAorI2lmZGVmIENPTkZJR19YODYKKyNpbmNs dWRlIDxhc20vcHYvc2hpbS5oPgorI2VuZGlmCisKIC8qIFBlci1kb21haW4gZ3JhbnQgaW5mb3Jt YXRpb24uICovCiBzdHJ1Y3QgZ3JhbnRfdGFibGUgewogICAgIC8qCkBAIC0zMzI0LDYgKzMzMjgs MTIgQEAgZG9fZ3JhbnRfdGFibGVfb3AoCiAgICAgaWYgKCAoY21kICY9IEdOVFRBQk9QX0NNRF9N QVNLKSAhPSBHTlRUQUJPUF9jYWNoZV9mbHVzaCAmJiBvcGFxdWVfaW4gKQogICAgICAgICByZXR1 cm4gLUVJTlZBTDsKIAorI2lmZGVmIENPTkZJR19YODYKKyAgICBpZiAoIHB2X3NoaW0gKQorICAg ICAgICAvKiBOQjogbm8gY29udGludWF0aW9uIHN1cHBvcnQgZm9yIHB2LXNoaW0gb3BzLiAqLwor ICAgICAgICByZXR1cm4gcHZfc2hpbV9ncmFudF90YWJsZV9vcChjbWQsIHVvcCwgY291bnQsIGZh bHNlKTsKKyNlbmRpZgorCiAgICAgcmMgPSAtRUZBVUxUOwogICAgIHN3aXRjaCAoIGNtZCApCiAg ICAgewpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC9oeXBlcmNhbGwuaCBi L3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QvaHlwZXJjYWxsLmgKaW5kZXggN2QxMWRmMjlmYS4u ODU5ODVhN2Q5OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC9oeXBlcmNh bGwuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L2h5cGVyY2FsbC5oCkBAIC0xMDMs NiArMTAzLDEyIEBAIHN0YXRpYyBpbmxpbmUgbG9uZyB4ZW5faHlwZXJjYWxsX2V2ZW50X2NoYW5u ZWxfb3AodW5zaWduZWQgaW50IGNtZCwgdm9pZCAqYXJnKQogICAgIHJldHVybiBfaHlwZXJjYWxs NjRfMihsb25nLCBfX0hZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCwgY21kLCBhcmcpOwogfQog CitzdGF0aWMgaW5saW5lIGxvbmcgeGVuX2h5cGVyY2FsbF9ncmFudF90YWJsZV9vcCh1bnNpZ25l ZCBpbnQgY21kLCB2b2lkICphcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQpCit7CisgICAgcmV0dXJuIF9oeXBlcmNh bGw2NF8zKGxvbmcsIF9fSFlQRVJWSVNPUl9ncmFudF90YWJsZV9vcCwgY21kLCBhcmcsIGNvdW50 KTsKK30KKwogc3RhdGljIGlubGluZSBsb25nIHhlbl9oeXBlcmNhbGxfaHZtX29wKHVuc2lnbmVk IGludCBvcCwgdm9pZCAqYXJnKQogewogICAgIHJldHVybiBfaHlwZXJjYWxsNjRfMihsb25nLCBf X0hZUEVSVklTT1JfaHZtX29wLCBvcCwgYXJnKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvcHYvc2hpbS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9zaGltLmgKaW5kZXggNmY3 YjM5YzNlMC4uNDdiYzQyNjdhZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9z aGltLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9zaGltLmgKQEAgLTM4LDYgKzM4LDgg QEAgdm9pZCBwdl9zaGltX3NldHVwX2RvbShzdHJ1Y3QgZG9tYWluICpkLCBsNF9wZ2VudHJ5X3Qg Kmw0c3RhcnQsCiB2b2lkIHB2X3NoaW1fc2h1dGRvd24odWludDhfdCByZWFzb24pOwogbG9uZyBw dl9zaGltX2V2ZW50X2NoYW5uZWxfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcmcpOwogdm9pZCBwdl9zaGltX2luamVjdF9ldnRjaG4odW5zaWduZWQgaW50IHBvcnQp OworbG9uZyBwdl9zaGltX2dyYW50X3RhYmxlX29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0odm9pZCkgdW9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBjb3VudCwgYm9vbCBjb21wYXQpOwogZG9taWRfdCBnZXRfZG9tMF9kb21pZCh2 b2lkKTsKIAogI2Vsc2UKQEAgLTY1LDYgKzY3LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdl9z aGltX2luamVjdF9ldnRjaG4odW5zaWduZWQgaW50IHBvcnQpCiB7CiAgICAgQVNTRVJUX1VOUkVB Q0hBQkxFKCk7CiB9CitzdGF0aWMgaW5saW5lIGxvbmcgcHZfc2hpbV9ncmFudF90YWJsZV9vcCh1 bnNpZ25lZCBpbnQgY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1b3AsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQsIGJvb2wgY29tcGF0KQor eworICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgIHJldHVybiAwOworfQogc3RhdGljIGlu bGluZSBkb21pZF90IGdldF9kb20wX2RvbWlkKHZvaWQpCiB7CiAgICAgcmV0dXJuIDA7Ci0tIAoy LjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs