From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Druzhinin Subject: [PATCH v3 3/4] xen/mapcache: introduce xen_replace_cache_entry() Date: Mon, 10 Jul 2017 23:40:02 +0100 Message-ID: <1499726403-10129-4-git-send-email-igor.druzhinin@citrix.com> References: <1499726403-10129-1-git-send-email-igor.druzhinin@citrix.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 1dUhM2-0007BB-TM for xen-devel@lists.xenproject.org; Mon, 10 Jul 2017 22:40:34 +0000 In-Reply-To: <1499726403-10129-1-git-send-email-igor.druzhinin@citrix.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, qemu-devel@nongnu.org Cc: anthony.perard@citrix.com, Igor Druzhinin , sstabellini@kernel.org, paul.durrant@citrix.com, pbonzini@redhat.com List-Id: xen-devel@lists.xenproject.org VGhpcyBuZXcgY2FsbCBpcyB0cnlpbmcgdG8gdXBkYXRlIGEgcmVxdWVzdGVkIG1hcCBjYWNoZSBl bnRyeQphY2NvcmRpbmcgdG8gdGhlIGNoYW5nZXMgaW4gdGhlIHBoeXNtYXAuIFRoZSBjYWxsIGlz IHNlYXJjaGluZwpmb3IgdGhlIGVudHJ5LCB1bm1hcHMgaXQgYW5kIG1hcHMgYWdhaW4gYXQgdGhl IHNhbWUgcGxhY2UgdXNpbmcKYSBuZXcgZ3Vlc3QgYWRkcmVzcy4gSWYgdGhlIG1hcHBpbmcgaXMg ZHVtbXkgdGhpcyBjYWxsIHdpbGwKbWFrZSBpdCByZWFsLgoKVGhpcyBmdW5jdGlvbiBtYWtlcyB1 c2Ugb2YgYSBuZXcgeGVuZm9yZWlnbm1lbW9yeV9tYXAyKCkgY2FsbAp3aXRoIGFuIGV4dGVuZGVk IGludGVyZmFjZSB0aGF0IHdhcyByZWNlbnRseSBpbnRyb2R1Y2VkIGluCmxpYnhlbmZvcmVpZ25t ZW1vcnkgWzFdLgoKWzFdIGh0dHBzOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20veGVuLWRldmVsQGxp c3RzLnhlbi5vcmcvbXNnMTEzMDA3Lmh0bWwKClNpZ25lZC1vZmYtYnk6IElnb3IgRHJ1emhpbmlu IDxpZ29yLmRydXpoaW5pbkBjaXRyaXguY29tPgotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAg ICAgICAgIHwgMTggKysrKysrKysrCiBody9pMzg2L3hlbi94ZW4tbWFwY2FjaGUuYyAgICB8IDg1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGluY2x1ZGUvaHcv eGVuL3hlbl9jb21tb24uaCAgIHwgMTQgKysrKysrKwogaW5jbHVkZS9zeXNlbXUveGVuLW1hcGNh Y2hlLmggfCAxMSArKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGM1 NzFhZDEuLmFkNjE1NmIgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAg LTIwMjEsNiArMjAyMSwyNCBAQCBFT0YKICAgICAjIFhlbiB1bnN0YWJsZQogICAgIGVsaWYKICAg ICAgICAgY2F0ID4gJFRNUEMgPDxFT0YgJiYKKyN1bmRlZiBYQ19XQU5UX0NPTVBBVF9NQVBfRk9S RUlHTl9BUEkKKyNpbmNsdWRlIDx4ZW5mb3JlaWdubWVtb3J5Lmg+CitpbnQgbWFpbih2b2lkKSB7 CisgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICp4Zm1lbTsKKworICB4Zm1lbSA9IHhlbmZvcmVp Z25tZW1vcnlfb3BlbigwLCAwKTsKKyAgeGVuZm9yZWlnbm1lbW9yeV9tYXAyKHhmbWVtLCAwLCAw LCAwLCAwLCAwLCAwLCAwKTsKKworICByZXR1cm4gMDsKK30KK0VPRgorICAgICAgICBjb21waWxl X3Byb2cgIiIgIiR4ZW5fbGlicyAtbHhlbmRldmljZW1vZGVsICR4ZW5fc3RhYmxlX2xpYnMiCisg ICAgICB0aGVuCisgICAgICB4ZW5fc3RhYmxlX2xpYnM9Ii1seGVuZGV2aWNlbW9kZWwgJHhlbl9z dGFibGVfbGlicyIKKyAgICAgIHhlbl9jdHJsX3ZlcnNpb249NDEwMDAKKyAgICAgIHhlbj15ZXMK KyAgICBlbGlmCisgICAgICAgIGNhdCA+ICRUTVBDIDw8RU9GICYmCiAjdW5kZWYgWENfV0FOVF9D T01QQVRfREVWSUNFTU9ERUxfQVBJCiAjZGVmaW5lIF9fWEVOX1RPT0xTX18KICNpbmNsdWRlIDx4 ZW5kZXZpY2Vtb2RlbC5oPgpkaWZmIC0tZ2l0IGEvaHcvaTM4Ni94ZW4veGVuLW1hcGNhY2hlLmMg Yi9ody9pMzg2L3hlbi94ZW4tbWFwY2FjaGUuYwppbmRleCAzOWNiNTExLi44YmM2M2UwIDEwMDY0 NAotLS0gYS9ody9pMzg2L3hlbi94ZW4tbWFwY2FjaGUuYworKysgYi9ody9pMzg2L3hlbi94ZW4t bWFwY2FjaGUuYwpAQCAtMTUxLDYgKzE1MSw3IEBAIHZvaWQgeGVuX21hcF9jYWNoZV9pbml0KHBo eXNfb2Zmc2V0X3RvX2dhZGRyX3QgZiwgdm9pZCAqb3BhcXVlKQogfQogCiBzdGF0aWMgdm9pZCB4 ZW5fcmVtYXBfYnVja2V0KE1hcENhY2hlRW50cnkgKmVudHJ5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2b2lkICp2YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdh ZGRyIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBhZGRyZXNzX2lu ZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGR1bW15KQpAQCAtMTY3LDcg KzE2OCw5IEBAIHN0YXRpYyB2b2lkIHhlbl9yZW1hcF9idWNrZXQoTWFwQ2FjaGVFbnRyeSAqZW50 cnksCiAgICAgZXJyID0gZ19tYWxsb2MwKG5iX3BmbiAqIHNpemVvZiAoaW50KSk7CiAKICAgICBp ZiAoZW50cnktPnZhZGRyX2Jhc2UgIT0gTlVMTCkgewotICAgICAgICByYW1fYmxvY2tfbm90aWZ5 X3JlbW92ZShlbnRyeS0+dmFkZHJfYmFzZSwgZW50cnktPnNpemUpOworICAgICAgICBpZiAoIShl bnRyeS0+ZmxhZ3MgJiBYRU5fTUFQQ0FDSEVfRU5UUllfRFVNTVkpKSB7CisgICAgICAgICAgICBy YW1fYmxvY2tfbm90aWZ5X3JlbW92ZShlbnRyeS0+dmFkZHJfYmFzZSwgZW50cnktPnNpemUpOwor ICAgICAgICB9CiAgICAgICAgIGlmIChtdW5tYXAoZW50cnktPnZhZGRyX2Jhc2UsIGVudHJ5LT5z aXplKSAhPSAwKSB7CiAgICAgICAgICAgICBwZXJyb3IoInVubWFwIGZhaWxzIik7CiAgICAgICAg ICAgICBleGl0KC0xKTsKQEAgLTE4MSwxMSArMTg0LDExIEBAIHN0YXRpYyB2b2lkIHhlbl9yZW1h cF9idWNrZXQoTWFwQ2FjaGVFbnRyeSAqZW50cnksCiAgICAgfQogCiAgICAgaWYgKCFkdW1teSkg ewotICAgICAgICB2YWRkcl9iYXNlID0geGVuZm9yZWlnbm1lbW9yeV9tYXAoeGVuX2ZtZW0sIHhl bl9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9U X1JFQUQgfCBQUk9UX1dSSVRFLAorICAgICAgICB2YWRkcl9iYXNlID0geGVuZm9yZWlnbm1lbW9y eV9tYXAyKHhlbl9mbWVtLCB4ZW5fZG9taWQsIHZhZGRyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJfcGZuLCBwZm5zLCBlcnIpOwog ICAgICAgICBpZiAodmFkZHJfYmFzZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBwZXJyb3IoInhl bmZvcmVpZ25tZW1vcnlfbWFwIik7CisgICAgICAgICAgICBwZXJyb3IoInhlbmZvcmVpZ25tZW1v cnlfbWFwMiIpOwogICAgICAgICAgICAgZXhpdCgtMSk7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug ewpAQCAtMTkzLDcgKzE5Niw3IEBAIHN0YXRpYyB2b2lkIHhlbl9yZW1hcF9idWNrZXQoTWFwQ2Fj aGVFbnRyeSAqZW50cnksCiAgICAgICAgICAqIFdlIGNyZWF0ZSBkdW1teSBtYXBwaW5ncyB3aGVy ZSB3ZSBhcmUgdW5hYmxlIHRvIGNyZWF0ZSBhIGZvcmVpZ24KICAgICAgICAgICogbWFwcGluZyBp bW1lZGlhdGVseSBkdWUgdG8gY2VydGFpbiBjaXJjdW1zdGFuY2VzIChpLmUuIG9uIHJlc3VtZSBu b3cpCiAgICAgICAgICAqLwotICAgICAgICB2YWRkcl9iYXNlID0gbW1hcChOVUxMLCBzaXplLCBQ Uk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorICAgICAgICB2YWRkcl9iYXNlID0gbW1hcCh2YWRkciwg c2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg TUFQX0FOT04gfCBNQVBfU0hBUkVELCAtMSwgMCk7CiAgICAgICAgIGlmICh2YWRkcl9iYXNlID09 IE5VTEwpIHsKICAgICAgICAgICAgIHBlcnJvcigibW1hcCIpOwpAQCAtMjAxLDYgKzIwNCwxMCBA QCBzdGF0aWMgdm9pZCB4ZW5fcmVtYXBfYnVja2V0KE1hcENhY2hlRW50cnkgKmVudHJ5LAogICAg ICAgICB9CiAgICAgfQogCisgICAgaWYgKCEoZW50cnktPmZsYWdzICYgWEVOX01BUENBQ0hFX0VO VFJZX0RVTU1ZKSkgeworICAgICAgICByYW1fYmxvY2tfbm90aWZ5X2FkZCh2YWRkcl9iYXNlLCBz aXplKTsKKyAgICB9CisKICAgICBlbnRyeS0+dmFkZHJfYmFzZSA9IHZhZGRyX2Jhc2U7CiAgICAg ZW50cnktPnBhZGRyX2luZGV4ID0gYWRkcmVzc19pbmRleDsKICAgICBlbnRyeS0+c2l6ZSA9IHNp emU7CkBAIC0yMTMsNyArMjIwLDYgQEAgc3RhdGljIHZvaWQgeGVuX3JlbWFwX2J1Y2tldChNYXBD YWNoZUVudHJ5ICplbnRyeSwKICAgICAgICAgZW50cnktPmZsYWdzICY9IH4oWEVOX01BUENBQ0hF X0VOVFJZX0RVTU1ZKTsKICAgICB9CiAKLSAgICByYW1fYmxvY2tfbm90aWZ5X2FkZChlbnRyeS0+ dmFkZHJfYmFzZSwgZW50cnktPnNpemUpOwogICAgIGJpdG1hcF96ZXJvKGVudHJ5LT52YWxpZF9t YXBwaW5nLCBuYl9wZm4pOwogICAgIGZvciAoaSA9IDA7IGkgPCBuYl9wZm47IGkrKykgewogICAg ICAgICBpZiAoIWVycltpXSkgewpAQCAtMjg2LDE0ICsyOTIsMTQgQEAgdHJ5YWdhaW46CiAgICAg aWYgKCFlbnRyeSkgewogICAgICAgICBlbnRyeSA9IGdfbWFsbG9jMChzaXplb2YgKE1hcENhY2hl RW50cnkpKTsKICAgICAgICAgcGVudHJ5LT5uZXh0ID0gZW50cnk7Ci0gICAgICAgIHhlbl9yZW1h cF9idWNrZXQoZW50cnksIGNhY2hlX3NpemUsIGFkZHJlc3NfaW5kZXgsIGR1bW15KTsKKyAgICAg ICAgeGVuX3JlbWFwX2J1Y2tldChlbnRyeSwgTlVMTCwgY2FjaGVfc2l6ZSwgYWRkcmVzc19pbmRl eCwgZHVtbXkpOwogICAgIH0gZWxzZSBpZiAoIWVudHJ5LT5sb2NrKSB7CiAgICAgICAgIGlmICgh ZW50cnktPnZhZGRyX2Jhc2UgfHwgZW50cnktPnBhZGRyX2luZGV4ICE9IGFkZHJlc3NfaW5kZXgg fHwKICAgICAgICAgICAgICAgICBlbnRyeS0+c2l6ZSAhPSBjYWNoZV9zaXplIHx8CiAgICAgICAg ICAgICAgICAgIXRlc3RfYml0cyhhZGRyZXNzX29mZnNldCA+PiBYQ19QQUdFX1NISUZULAogICAg ICAgICAgICAgICAgICAgICB0ZXN0X2JpdF9zaXplID4+IFhDX1BBR0VfU0hJRlQsCiAgICAgICAg ICAgICAgICAgICAgIGVudHJ5LT52YWxpZF9tYXBwaW5nKSkgewotICAgICAgICAgICAgeGVuX3Jl bWFwX2J1Y2tldChlbnRyeSwgY2FjaGVfc2l6ZSwgYWRkcmVzc19pbmRleCwgZHVtbXkpOworICAg ICAgICAgICAgeGVuX3JlbWFwX2J1Y2tldChlbnRyeSwgTlVMTCwgY2FjaGVfc2l6ZSwgYWRkcmVz c19pbmRleCwgZHVtbXkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00OTAsMyArNDk2LDY2IEBA IHZvaWQgeGVuX2ludmFsaWRhdGVfbWFwX2NhY2hlKHZvaWQpCiAKICAgICBtYXBjYWNoZV91bmxv Y2soKTsKIH0KKworc3RhdGljIHVpbnQ4X3QgKnhlbl9yZXBsYWNlX2NhY2hlX2VudHJ5X3VubG9j a2VkKGh3YWRkciBvbGRfcGh5c19hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGh3YWRkciBuZXdfcGh5c19hZGRyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBzaXplKQoreworICAgIE1h cENhY2hlRW50cnkgKmVudHJ5OworICAgIGh3YWRkciBhZGRyZXNzX2luZGV4LCBhZGRyZXNzX29m ZnNldDsKKyAgICBod2FkZHIgdGVzdF9iaXRfc2l6ZSwgY2FjaGVfc2l6ZSA9IHNpemU7CisKKyAg ICBhZGRyZXNzX2luZGV4ICA9IG9sZF9waHlzX2FkZHIgPj4gTUNBQ0hFX0JVQ0tFVF9TSElGVDsK KyAgICBhZGRyZXNzX29mZnNldCA9IG9sZF9waHlzX2FkZHIgJiAoTUNBQ0hFX0JVQ0tFVF9TSVpF IC0gMSk7CisKKyAgICBhc3NlcnQoc2l6ZSk7CisgICAgLyogdGVzdF9iaXRfc2l6ZSBpcyBhbHdh eXMgYSBtdWx0aXBsZSBvZiBYQ19QQUdFX1NJWkUgKi8KKyAgICB0ZXN0X2JpdF9zaXplID0gc2l6 ZSArIChvbGRfcGh5c19hZGRyICYgKFhDX1BBR0VfU0laRSAtIDEpKTsKKyAgICBpZiAodGVzdF9i aXRfc2l6ZSAlIFhDX1BBR0VfU0laRSkgeworICAgICAgICB0ZXN0X2JpdF9zaXplICs9IFhDX1BB R0VfU0laRSAtICh0ZXN0X2JpdF9zaXplICUgWENfUEFHRV9TSVpFKTsKKyAgICB9CisgICAgY2Fj aGVfc2l6ZSA9IHNpemUgKyBhZGRyZXNzX29mZnNldDsKKyAgICBpZiAoY2FjaGVfc2l6ZSAlIE1D QUNIRV9CVUNLRVRfU0laRSkgeworICAgICAgICBjYWNoZV9zaXplICs9IE1DQUNIRV9CVUNLRVRf U0laRSAtIChjYWNoZV9zaXplICUgTUNBQ0hFX0JVQ0tFVF9TSVpFKTsKKyAgICB9CisKKyAgICBl bnRyeSA9ICZtYXBjYWNoZS0+ZW50cnlbYWRkcmVzc19pbmRleCAlIG1hcGNhY2hlLT5ucl9idWNr ZXRzXTsKKyAgICB3aGlsZSAoZW50cnkgJiYgIShlbnRyeS0+cGFkZHJfaW5kZXggPT0gYWRkcmVz c19pbmRleCAmJgorICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5zaXplID09IGNhY2hlX3Np emUpKSB7CisgICAgICAgIGVudHJ5ID0gZW50cnktPm5leHQ7CisgICAgfQorICAgIGlmICghZW50 cnkpIHsKKyAgICAgICAgRFBSSU5URigiVHJ5aW5nIHRvIHVwZGF0ZSBhbiBlbnRyeSBmb3IgJWx4 ICIgXAorICAgICAgICAgICAgICAgICJ0aGF0IGlzIG5vdCBpbiB0aGUgbWFwY2FjaGUhXG4iLCBv bGRfcGh5c19hZGRyKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgYWRkcmVz c19pbmRleCAgPSBuZXdfcGh5c19hZGRyID4+IE1DQUNIRV9CVUNLRVRfU0hJRlQ7CisgICAgYWRk cmVzc19vZmZzZXQgPSBuZXdfcGh5c19hZGRyICYgKE1DQUNIRV9CVUNLRVRfU0laRSAtIDEpOwor CisgICAgZnByaW50ZihzdGRlcnIsICJSZXBsYWNpbmcgYSBkdW1teSBtYXBjYWNoZSBlbnRyeSBm b3IgJWx4IHdpdGggJWx4XG4iLAorICAgICAgICAgICAgb2xkX3BoeXNfYWRkciwgbmV3X3BoeXNf YWRkcik7CisKKyAgICB4ZW5fcmVtYXBfYnVja2V0KGVudHJ5LCBlbnRyeS0+dmFkZHJfYmFzZSwK KyAgICAgICAgICAgICAgICAgICAgIGNhY2hlX3NpemUsIGFkZHJlc3NfaW5kZXgsIGZhbHNlKTsK KyAgICBpZighdGVzdF9iaXRzKGFkZHJlc3Nfb2Zmc2V0ID4+IFhDX1BBR0VfU0hJRlQsCisgICAg ICAgICAgICAgICAgdGVzdF9iaXRfc2l6ZSA+PiBYQ19QQUdFX1NISUZULAorICAgICAgICAgICAg ICAgIGVudHJ5LT52YWxpZF9tYXBwaW5nKSkgeworICAgICAgICBEUFJJTlRGKCJVbmFibGUgdG8g dXBkYXRlIGEgbWFwY2FjaGUgZW50cnkgZm9yICVseCFcbiIsIG9sZF9waHlzX2FkZHIpOworICAg ICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gZW50cnktPnZhZGRyX2Jhc2Ug KyBhZGRyZXNzX29mZnNldDsKK30KKwordWludDhfdCAqeGVuX3JlcGxhY2VfY2FjaGVfZW50cnko aHdhZGRyIG9sZF9waHlzX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo d2FkZHIgbmV3X3BoeXNfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3 YWRkciBzaXplKQoreworICAgIHVpbnQ4X3QgKnA7CisKKyAgICBtYXBjYWNoZV9sb2NrKCk7Cisg ICAgcCA9IHhlbl9yZXBsYWNlX2NhY2hlX2VudHJ5X3VubG9ja2VkKG9sZF9waHlzX2FkZHIsIG5l d19waHlzX2FkZHIsIHNpemUpOworICAgIG1hcGNhY2hlX3VubG9jaygpOworICAgIHJldHVybiBw OworfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oIGIvaW5jbHVkZS9o dy94ZW4veGVuX2NvbW1vbi5oCmluZGV4IGUwMGRkZDcuLmUyOGVkNDggMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaAorKysgYi9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9u LmgKQEAgLTc4LDYgKzc4LDIwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqeGVuZm9yZWlnbm1lbW9y eV9tYXAoeGNfaW50ZXJmYWNlICpoLCB1aW50MzJfdCBkb20sCiAKIGV4dGVybiB4ZW5mb3JlaWdu bWVtb3J5X2hhbmRsZSAqeGVuX2ZtZW07CiAKKyNpZiBDT05GSUdfWEVOX0NUUkxfSU5URVJGQUNF X1ZFUlNJT04gPCA0MTAwMAorCitzdGF0aWMgaW5saW5lIHZvaWQgKnhlbmZvcmVpZ25tZW1vcnlf bWFwMih4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqaCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbSwgdm9pZCAqYWRkciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcm90LCBpbnQgZmxhZ3MsIHNpemVf dCBwYWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHhlbl9wZm5fdCBhcnJbLypwYWdlcyovXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBlcnJbLypwYWdlcyovXSkKK3sKKyAgICBhc3NlcnQoYWRkciA9PSBO VUxMICYmIGZsYWdzID09IDApOworICAgIHJldHVybiB4ZW5mb3JlaWdubWVtb3J5X21hcChoLCBk b20sIHByb3QsIHBhZ2VzLCBhcnIsIGVycik7Cit9CisKKyNlbmRpZgorCiAjaWYgQ09ORklHX1hF Tl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OIDwgNDA5MDAKIAogdHlwZWRlZiB4Y19pbnRlcmZhY2Ug eGVuZGV2aWNlbW9kZWxfaGFuZGxlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zeXNlbXUveGVuLW1h cGNhY2hlLmggYi9pbmNsdWRlL3N5c2VtdS94ZW4tbWFwY2FjaGUuaAppbmRleCAwMWRhYWFkLi5i Mzg5NjJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3N5c2VtdS94ZW4tbWFwY2FjaGUuaAorKysgYi9p bmNsdWRlL3N5c2VtdS94ZW4tbWFwY2FjaGUuaApAQCAtMjEsNyArMjEsOSBAQCB1aW50OF90ICp4 ZW5fbWFwX2NhY2hlKGh3YWRkciBwaHlzX2FkZHIsIGh3YWRkciBzaXplLAogcmFtX2FkZHJfdCB4 ZW5fcmFtX2FkZHJfZnJvbV9tYXBjYWNoZSh2b2lkICpwdHIpOwogdm9pZCB4ZW5faW52YWxpZGF0 ZV9tYXBfY2FjaGVfZW50cnkodWludDhfdCAqYnVmZmVyKTsKIHZvaWQgeGVuX2ludmFsaWRhdGVf bWFwX2NhY2hlKHZvaWQpOwotCit1aW50OF90ICp4ZW5fcmVwbGFjZV9jYWNoZV9lbnRyeShod2Fk ZHIgb2xkX3BoeXNfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRk ciBuZXdfcGh5c19hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRy IHNpemUpOwogI2Vsc2UKIAogc3RhdGljIGlubGluZSB2b2lkIHhlbl9tYXBfY2FjaGVfaW5pdChw aHlzX29mZnNldF90b19nYWRkcl90IGYsCkBAIC01MCw2ICs1MiwxMyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgeGVuX2ludmFsaWRhdGVfbWFwX2NhY2hlKHZvaWQpCiB7CiB9CiAKK3VpbnQ4X3QgKnhl bl9yZXBsYWNlX2NhY2hlX2VudHJ5KGh3YWRkciBvbGRfcGh5c19hZGRyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIG5ld19waHlzX2FkZHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBod2FkZHIgc2l6ZSkKK3sKKyAgICBhYm9ydCgpOworfQorCiAj ZW5kaWYKIAogI2VuZGlmIC8qIFhFTl9NQVBDQUNIRV9IICovCi0tIAoyLjcuNAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=