From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PULL for-2.10 6/7] xen/mapcache: introduce xen_replace_cache_entry() Date: Tue, 18 Jul 2017 15:22:41 -0700 Message-ID: <1500416562-27337-6-git-send-email-sstabellini@kernel.org> References: <1500416562-27337-1-git-send-email-sstabellini@kernel.org> 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 1dXatk-0007Fe-Du for xen-devel@lists.xenproject.org; Tue, 18 Jul 2017 22:23:20 +0000 In-Reply-To: <1500416562-27337-1-git-send-email-sstabellini@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: peter.maydell@linaro.org, stefanha@gmail.com Cc: Igor Druzhinin , sstabellini@kernel.org, qemu-devel@nongnu.org, stefanha@redhat.com, anthony.perard@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org RnJvbTogSWdvciBEcnV6aGluaW4gPGlnb3IuZHJ1emhpbmluQGNpdHJpeC5jb20+CgpUaGlzIG5l dyBjYWxsIGlzIHRyeWluZyB0byB1cGRhdGUgYSByZXF1ZXN0ZWQgbWFwIGNhY2hlIGVudHJ5CmFj Y29yZGluZyB0byB0aGUgY2hhbmdlcyBpbiB0aGUgcGh5c21hcC4gVGhlIGNhbGwgaXMgc2VhcmNo aW5nCmZvciB0aGUgZW50cnksIHVubWFwcyBpdCBhbmQgbWFwcyBhZ2FpbiBhdCB0aGUgc2FtZSBw bGFjZSB1c2luZwphIG5ldyBndWVzdCBhZGRyZXNzLiBJZiB0aGUgbWFwcGluZyBpcyBkdW1teSB0 aGlzIGNhbGwgd2lsbAptYWtlIGl0IHJlYWwuCgpUaGlzIGZ1bmN0aW9uIG1ha2VzIHVzZSBvZiBh IG5ldyB4ZW5mb3JlaWdubWVtb3J5X21hcDIoKSBjYWxsCndpdGggYW4gZXh0ZW5kZWQgaW50ZXJm YWNlIHRoYXQgd2FzIHJlY2VudGx5IGludHJvZHVjZWQgaW4KbGlieGVuZm9yZWlnbm1lbW9yeSBb MV0uCgpbMV0gaHR0cHM6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS94ZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZy9tc2cxMTMwMDcuaHRtbAoKU2lnbmVkLW9mZi1ieTogSWdvciBEcnV6aGluaW4gPGlnb3Iu ZHJ1emhpbmluQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy cmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs bGluaUBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFi ZWxsaW5pQGtlcm5lbC5vcmc+Ci0tLQogY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgfCAx OCArKysrKysrKysKIGh3L2kzODYveGVuL3hlbi1tYXBjYWNoZS5jICAgIHwgODUgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogaW5jbHVkZS9ody94ZW4veGVuX2Nv bW1vbi5oICAgfCAxNCArKysrKysrCiBpbmNsdWRlL3N5c2VtdS94ZW4tbWFwY2FjaGUuaCB8IDEx ICsrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggZTg3OThjZS4uYmFk NTBmNSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMjEwNyw2ICsy MTA3LDI0IEBAIEVPRgogICAgICMgWGVuIHVuc3RhYmxlCiAgICAgZWxpZgogICAgICAgICBjYXQg PiAkVE1QQyA8PEVPRiAmJgorI3VuZGVmIFhDX1dBTlRfQ09NUEFUX01BUF9GT1JFSUdOX0FQSQor I2luY2x1ZGUgPHhlbmZvcmVpZ25tZW1vcnkuaD4KK2ludCBtYWluKHZvaWQpIHsKKyAgeGVuZm9y ZWlnbm1lbW9yeV9oYW5kbGUgKnhmbWVtOworCisgIHhmbWVtID0geGVuZm9yZWlnbm1lbW9yeV9v cGVuKDAsIDApOworICB4ZW5mb3JlaWdubWVtb3J5X21hcDIoeGZtZW0sIDAsIDAsIDAsIDAsIDAs IDAsIDApOworCisgIHJldHVybiAwOworfQorRU9GCisgICAgICAgIGNvbXBpbGVfcHJvZyAiIiAi JHhlbl9saWJzIC1seGVuZGV2aWNlbW9kZWwgJHhlbl9zdGFibGVfbGlicyIKKyAgICAgIHRoZW4K KyAgICAgIHhlbl9zdGFibGVfbGlicz0iLWx4ZW5kZXZpY2Vtb2RlbCAkeGVuX3N0YWJsZV9saWJz IgorICAgICAgeGVuX2N0cmxfdmVyc2lvbj00MTAwMAorICAgICAgeGVuPXllcworICAgIGVsaWYK KyAgICAgICAgY2F0ID4gJFRNUEMgPDxFT0YgJiYKICN1bmRlZiBYQ19XQU5UX0NPTVBBVF9ERVZJ Q0VNT0RFTF9BUEkKICNkZWZpbmUgX19YRU5fVE9PTFNfXwogI2luY2x1ZGUgPHhlbmRldmljZW1v ZGVsLmg+CmRpZmYgLS1naXQgYS9ody9pMzg2L3hlbi94ZW4tbWFwY2FjaGUuYyBiL2h3L2kzODYv eGVuL3hlbi1tYXBjYWNoZS5jCmluZGV4IDM5Y2I1MTEuLjU2OTg2ZGIgMTAwNjQ0Ci0tLSBhL2h3 L2kzODYveGVuL3hlbi1tYXBjYWNoZS5jCisrKyBiL2h3L2kzODYveGVuL3hlbi1tYXBjYWNoZS5j CkBAIC0xNTEsNiArMTUxLDcgQEAgdm9pZCB4ZW5fbWFwX2NhY2hlX2luaXQocGh5c19vZmZzZXRf dG9fZ2FkZHJfdCBmLCB2b2lkICpvcGFxdWUpCiB9CiAKIHN0YXRpYyB2b2lkIHhlbl9yZW1hcF9i dWNrZXQoTWFwQ2FjaGVFbnRyeSAqZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZvaWQgKnZhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBod2FkZHIgc2l6ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIGFkZHJlc3NfaW5kZXgsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZHVtbXkpCkBAIC0xNjcsNyArMTY4LDkgQEAg c3RhdGljIHZvaWQgeGVuX3JlbWFwX2J1Y2tldChNYXBDYWNoZUVudHJ5ICplbnRyeSwKICAgICBl cnIgPSBnX21hbGxvYzAobmJfcGZuICogc2l6ZW9mIChpbnQpKTsKIAogICAgIGlmIChlbnRyeS0+ dmFkZHJfYmFzZSAhPSBOVUxMKSB7Ci0gICAgICAgIHJhbV9ibG9ja19ub3RpZnlfcmVtb3ZlKGVu dHJ5LT52YWRkcl9iYXNlLCBlbnRyeS0+c2l6ZSk7CisgICAgICAgIGlmICghKGVudHJ5LT5mbGFn cyAmIFhFTl9NQVBDQUNIRV9FTlRSWV9EVU1NWSkpIHsKKyAgICAgICAgICAgIHJhbV9ibG9ja19u b3RpZnlfcmVtb3ZlKGVudHJ5LT52YWRkcl9iYXNlLCBlbnRyeS0+c2l6ZSk7CisgICAgICAgIH0K ICAgICAgICAgaWYgKG11bm1hcChlbnRyeS0+dmFkZHJfYmFzZSwgZW50cnktPnNpemUpICE9IDAp IHsKICAgICAgICAgICAgIHBlcnJvcigidW5tYXAgZmFpbHMiKTsKICAgICAgICAgICAgIGV4aXQo LTEpOwpAQCAtMTgxLDExICsxODQsMTEgQEAgc3RhdGljIHZvaWQgeGVuX3JlbWFwX2J1Y2tldChN YXBDYWNoZUVudHJ5ICplbnRyeSwKICAgICB9CiAKICAgICBpZiAoIWR1bW15KSB7Ci0gICAgICAg IHZhZGRyX2Jhc2UgPSB4ZW5mb3JlaWdubWVtb3J5X21hcCh4ZW5fZm1lbSwgeGVuX2RvbWlkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBS T1RfV1JJVEUsCisgICAgICAgIHZhZGRyX2Jhc2UgPSB4ZW5mb3JlaWdubWVtb3J5X21hcDIoeGVu X2ZtZW0sIHhlbl9kb21pZCwgdmFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgMCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9wZm4sIHBmbnMsIGVycik7CiAgICAgICAgIGlm ICh2YWRkcl9iYXNlID09IE5VTEwpIHsKLSAgICAgICAgICAgIHBlcnJvcigieGVuZm9yZWlnbm1l bW9yeV9tYXAiKTsKKyAgICAgICAgICAgIHBlcnJvcigieGVuZm9yZWlnbm1lbW9yeV9tYXAyIik7 CiAgICAgICAgICAgICBleGl0KC0xKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC0xOTMs NyArMTk2LDcgQEAgc3RhdGljIHZvaWQgeGVuX3JlbWFwX2J1Y2tldChNYXBDYWNoZUVudHJ5ICpl bnRyeSwKICAgICAgICAgICogV2UgY3JlYXRlIGR1bW15IG1hcHBpbmdzIHdoZXJlIHdlIGFyZSB1 bmFibGUgdG8gY3JlYXRlIGEgZm9yZWlnbgogICAgICAgICAgKiBtYXBwaW5nIGltbWVkaWF0ZWx5 IGR1ZSB0byBjZXJ0YWluIGNpcmN1bXN0YW5jZXMgKGkuZS4gb24gcmVzdW1lIG5vdykKICAgICAg ICAgICovCi0gICAgICAgIHZhZGRyX2Jhc2UgPSBtbWFwKE5VTEwsIHNpemUsIFBST1RfUkVBRCB8 IFBST1RfV1JJVEUsCisgICAgICAgIHZhZGRyX2Jhc2UgPSBtbWFwKHZhZGRyLCBzaXplLCBQUk9U X1JFQUQgfCBQUk9UX1dSSVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgICBNQVBfQU5PTiB8 IE1BUF9TSEFSRUQsIC0xLCAwKTsKICAgICAgICAgaWYgKHZhZGRyX2Jhc2UgPT0gTlVMTCkgewog ICAgICAgICAgICAgcGVycm9yKCJtbWFwIik7CkBAIC0yMDEsNiArMjA0LDEwIEBAIHN0YXRpYyB2 b2lkIHhlbl9yZW1hcF9idWNrZXQoTWFwQ2FjaGVFbnRyeSAqZW50cnksCiAgICAgICAgIH0KICAg ICB9CiAKKyAgICBpZiAoIShlbnRyeS0+ZmxhZ3MgJiBYRU5fTUFQQ0FDSEVfRU5UUllfRFVNTVkp KSB7CisgICAgICAgIHJhbV9ibG9ja19ub3RpZnlfYWRkKHZhZGRyX2Jhc2UsIHNpemUpOworICAg IH0KKwogICAgIGVudHJ5LT52YWRkcl9iYXNlID0gdmFkZHJfYmFzZTsKICAgICBlbnRyeS0+cGFk ZHJfaW5kZXggPSBhZGRyZXNzX2luZGV4OwogICAgIGVudHJ5LT5zaXplID0gc2l6ZTsKQEAgLTIx Myw3ICsyMjAsNiBAQCBzdGF0aWMgdm9pZCB4ZW5fcmVtYXBfYnVja2V0KE1hcENhY2hlRW50cnkg KmVudHJ5LAogICAgICAgICBlbnRyeS0+ZmxhZ3MgJj0gfihYRU5fTUFQQ0FDSEVfRU5UUllfRFVN TVkpOwogICAgIH0KIAotICAgIHJhbV9ibG9ja19ub3RpZnlfYWRkKGVudHJ5LT52YWRkcl9iYXNl LCBlbnRyeS0+c2l6ZSk7CiAgICAgYml0bWFwX3plcm8oZW50cnktPnZhbGlkX21hcHBpbmcsIG5i X3Bmbik7CiAgICAgZm9yIChpID0gMDsgaSA8IG5iX3BmbjsgaSsrKSB7CiAgICAgICAgIGlmICgh ZXJyW2ldKSB7CkBAIC0yODYsMTQgKzI5MiwxNCBAQCB0cnlhZ2FpbjoKICAgICBpZiAoIWVudHJ5 KSB7CiAgICAgICAgIGVudHJ5ID0gZ19tYWxsb2MwKHNpemVvZiAoTWFwQ2FjaGVFbnRyeSkpOwog ICAgICAgICBwZW50cnktPm5leHQgPSBlbnRyeTsKLSAgICAgICAgeGVuX3JlbWFwX2J1Y2tldChl bnRyeSwgY2FjaGVfc2l6ZSwgYWRkcmVzc19pbmRleCwgZHVtbXkpOworICAgICAgICB4ZW5fcmVt YXBfYnVja2V0KGVudHJ5LCBOVUxMLCBjYWNoZV9zaXplLCBhZGRyZXNzX2luZGV4LCBkdW1teSk7 CiAgICAgfSBlbHNlIGlmICghZW50cnktPmxvY2spIHsKICAgICAgICAgaWYgKCFlbnRyeS0+dmFk ZHJfYmFzZSB8fCBlbnRyeS0+cGFkZHJfaW5kZXggIT0gYWRkcmVzc19pbmRleCB8fAogICAgICAg ICAgICAgICAgIGVudHJ5LT5zaXplICE9IGNhY2hlX3NpemUgfHwKICAgICAgICAgICAgICAgICAh dGVzdF9iaXRzKGFkZHJlc3Nfb2Zmc2V0ID4+IFhDX1BBR0VfU0hJRlQsCiAgICAgICAgICAgICAg ICAgICAgIHRlc3RfYml0X3NpemUgPj4gWENfUEFHRV9TSElGVCwKICAgICAgICAgICAgICAgICAg ICAgZW50cnktPnZhbGlkX21hcHBpbmcpKSB7Ci0gICAgICAgICAgICB4ZW5fcmVtYXBfYnVja2V0 KGVudHJ5LCBjYWNoZV9zaXplLCBhZGRyZXNzX2luZGV4LCBkdW1teSk7CisgICAgICAgICAgICB4 ZW5fcmVtYXBfYnVja2V0KGVudHJ5LCBOVUxMLCBjYWNoZV9zaXplLCBhZGRyZXNzX2luZGV4LCBk dW1teSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQ5MCwzICs0OTYsNjYgQEAgdm9pZCB4ZW5f aW52YWxpZGF0ZV9tYXBfY2FjaGUodm9pZCkKIAogICAgIG1hcGNhY2hlX3VubG9jaygpOwogfQor CitzdGF0aWMgdWludDhfdCAqeGVuX3JlcGxhY2VfY2FjaGVfZW50cnlfdW5sb2NrZWQoaHdhZGRy IG9sZF9waHlzX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaHdhZGRyIG5ld19waHlzX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIHNpemUpCit7CisgICAgTWFwQ2FjaGVFbnRy eSAqZW50cnk7CisgICAgaHdhZGRyIGFkZHJlc3NfaW5kZXgsIGFkZHJlc3Nfb2Zmc2V0OworICAg IGh3YWRkciB0ZXN0X2JpdF9zaXplLCBjYWNoZV9zaXplID0gc2l6ZTsKKworICAgIGFkZHJlc3Nf aW5kZXggID0gb2xkX3BoeXNfYWRkciA+PiBNQ0FDSEVfQlVDS0VUX1NISUZUOworICAgIGFkZHJl c3Nfb2Zmc2V0ID0gb2xkX3BoeXNfYWRkciAmIChNQ0FDSEVfQlVDS0VUX1NJWkUgLSAxKTsKKwor ICAgIGFzc2VydChzaXplKTsKKyAgICAvKiB0ZXN0X2JpdF9zaXplIGlzIGFsd2F5cyBhIG11bHRp cGxlIG9mIFhDX1BBR0VfU0laRSAqLworICAgIHRlc3RfYml0X3NpemUgPSBzaXplICsgKG9sZF9w aHlzX2FkZHIgJiAoWENfUEFHRV9TSVpFIC0gMSkpOworICAgIGlmICh0ZXN0X2JpdF9zaXplICUg WENfUEFHRV9TSVpFKSB7CisgICAgICAgIHRlc3RfYml0X3NpemUgKz0gWENfUEFHRV9TSVpFIC0g KHRlc3RfYml0X3NpemUgJSBYQ19QQUdFX1NJWkUpOworICAgIH0KKyAgICBjYWNoZV9zaXplID0g c2l6ZSArIGFkZHJlc3Nfb2Zmc2V0OworICAgIGlmIChjYWNoZV9zaXplICUgTUNBQ0hFX0JVQ0tF VF9TSVpFKSB7CisgICAgICAgIGNhY2hlX3NpemUgKz0gTUNBQ0hFX0JVQ0tFVF9TSVpFIC0gKGNh Y2hlX3NpemUgJSBNQ0FDSEVfQlVDS0VUX1NJWkUpOworICAgIH0KKworICAgIGVudHJ5ID0gJm1h cGNhY2hlLT5lbnRyeVthZGRyZXNzX2luZGV4ICUgbWFwY2FjaGUtPm5yX2J1Y2tldHNdOworICAg IHdoaWxlIChlbnRyeSAmJiAhKGVudHJ5LT5wYWRkcl9pbmRleCA9PSBhZGRyZXNzX2luZGV4ICYm CisgICAgICAgICAgICAgICAgICAgICAgZW50cnktPnNpemUgPT0gY2FjaGVfc2l6ZSkpIHsKKyAg ICAgICAgZW50cnkgPSBlbnRyeS0+bmV4dDsKKyAgICB9CisgICAgaWYgKCFlbnRyeSkgeworICAg ICAgICBEUFJJTlRGKCJUcnlpbmcgdG8gdXBkYXRlIGFuIGVudHJ5IGZvciAlbHggIiBcCisgICAg ICAgICAgICAgICAgInRoYXQgaXMgbm90IGluIHRoZSBtYXBjYWNoZSFcbiIsIG9sZF9waHlzX2Fk ZHIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBhZGRyZXNzX2luZGV4ICA9 IG5ld19waHlzX2FkZHIgPj4gTUNBQ0hFX0JVQ0tFVF9TSElGVDsKKyAgICBhZGRyZXNzX29mZnNl dCA9IG5ld19waHlzX2FkZHIgJiAoTUNBQ0hFX0JVQ0tFVF9TSVpFIC0gMSk7CisKKyAgICBmcHJp bnRmKHN0ZGVyciwgIlJlcGxhY2luZyBhIGR1bW15IG1hcGNhY2hlIGVudHJ5IGZvciAlbHggd2l0 aCAlbHhcbiIsCisgICAgICAgICAgICBvbGRfcGh5c19hZGRyLCBuZXdfcGh5c19hZGRyKTsKKwor ICAgIHhlbl9yZW1hcF9idWNrZXQoZW50cnksIGVudHJ5LT52YWRkcl9iYXNlLAorICAgICAgICAg ICAgICAgICAgICAgY2FjaGVfc2l6ZSwgYWRkcmVzc19pbmRleCwgZmFsc2UpOworICAgIGlmICgh dGVzdF9iaXRzKGFkZHJlc3Nfb2Zmc2V0ID4+IFhDX1BBR0VfU0hJRlQsCisgICAgICAgICAgICAg ICAgdGVzdF9iaXRfc2l6ZSA+PiBYQ19QQUdFX1NISUZULAorICAgICAgICAgICAgICAgIGVudHJ5 LT52YWxpZF9tYXBwaW5nKSkgeworICAgICAgICBEUFJJTlRGKCJVbmFibGUgdG8gdXBkYXRlIGEg bWFwY2FjaGUgZW50cnkgZm9yICVseCFcbiIsIG9sZF9waHlzX2FkZHIpOworICAgICAgICByZXR1 cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gZW50cnktPnZhZGRyX2Jhc2UgKyBhZGRyZXNz X29mZnNldDsKK30KKwordWludDhfdCAqeGVuX3JlcGxhY2VfY2FjaGVfZW50cnkoaHdhZGRyIG9s ZF9waHlzX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBod2FkZHIgbmV3 X3BoeXNfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBzaXpl KQoreworICAgIHVpbnQ4X3QgKnA7CisKKyAgICBtYXBjYWNoZV9sb2NrKCk7CisgICAgcCA9IHhl bl9yZXBsYWNlX2NhY2hlX2VudHJ5X3VubG9ja2VkKG9sZF9waHlzX2FkZHIsIG5ld19waHlzX2Fk ZHIsIHNpemUpOworICAgIG1hcGNhY2hlX3VubG9jaygpOworICAgIHJldHVybiBwOworfQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oIGIvaW5jbHVkZS9ody94ZW4veGVu X2NvbW1vbi5oCmluZGV4IGUwMGRkZDcuLmUyOGVkNDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaHcv eGVuL3hlbl9jb21tb24uaAorKysgYi9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmgKQEAgLTc4 LDYgKzc4LDIwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqeGVuZm9yZWlnbm1lbW9yeV9tYXAoeGNf aW50ZXJmYWNlICpoLCB1aW50MzJfdCBkb20sCiAKIGV4dGVybiB4ZW5mb3JlaWdubWVtb3J5X2hh bmRsZSAqeGVuX2ZtZW07CiAKKyNpZiBDT05GSUdfWEVOX0NUUkxfSU5URVJGQUNFX1ZFUlNJT04g PCA0MTAwMAorCitzdGF0aWMgaW5saW5lIHZvaWQgKnhlbmZvcmVpZ25tZW1vcnlfbWFwMih4ZW5m b3JlaWdubWVtb3J5X2hhbmRsZSAqaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IGRvbSwgdm9pZCAqYWRkciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBwcm90LCBpbnQgZmxhZ3MsIHNpemVfdCBwYWdlcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhlbl9wZm5f dCBhcnJbLypwYWdlcyovXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBlcnJbLypwYWdlcyovXSkKK3sKKyAgICBhc3NlcnQoYWRkciA9PSBOVUxMICYmIGZs YWdzID09IDApOworICAgIHJldHVybiB4ZW5mb3JlaWdubWVtb3J5X21hcChoLCBkb20sIHByb3Qs IHBhZ2VzLCBhcnIsIGVycik7Cit9CisKKyNlbmRpZgorCiAjaWYgQ09ORklHX1hFTl9DVFJMX0lO VEVSRkFDRV9WRVJTSU9OIDwgNDA5MDAKIAogdHlwZWRlZiB4Y19pbnRlcmZhY2UgeGVuZGV2aWNl bW9kZWxfaGFuZGxlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zeXNlbXUveGVuLW1hcGNhY2hlLmgg Yi9pbmNsdWRlL3N5c2VtdS94ZW4tbWFwY2FjaGUuaAppbmRleCAwMWRhYWFkLi5iZDRkNDllIDEw MDY0NAotLS0gYS9pbmNsdWRlL3N5c2VtdS94ZW4tbWFwY2FjaGUuaAorKysgYi9pbmNsdWRlL3N5 c2VtdS94ZW4tbWFwY2FjaGUuaApAQCAtMjEsNyArMjEsOSBAQCB1aW50OF90ICp4ZW5fbWFwX2Nh Y2hlKGh3YWRkciBwaHlzX2FkZHIsIGh3YWRkciBzaXplLAogcmFtX2FkZHJfdCB4ZW5fcmFtX2Fk ZHJfZnJvbV9tYXBjYWNoZSh2b2lkICpwdHIpOwogdm9pZCB4ZW5faW52YWxpZGF0ZV9tYXBfY2Fj aGVfZW50cnkodWludDhfdCAqYnVmZmVyKTsKIHZvaWQgeGVuX2ludmFsaWRhdGVfbWFwX2NhY2hl KHZvaWQpOwotCit1aW50OF90ICp4ZW5fcmVwbGFjZV9jYWNoZV9lbnRyeShod2FkZHIgb2xkX3Bo eXNfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBuZXdfcGh5 c19hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIHNpemUpOwog I2Vsc2UKIAogc3RhdGljIGlubGluZSB2b2lkIHhlbl9tYXBfY2FjaGVfaW5pdChwaHlzX29mZnNl dF90b19nYWRkcl90IGYsCkBAIC01MCw2ICs1MiwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVu X2ludmFsaWRhdGVfbWFwX2NhY2hlKHZvaWQpCiB7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdWludDhf dCAqeGVuX3JlcGxhY2VfY2FjaGVfZW50cnkoaHdhZGRyIG9sZF9waHlzX2FkZHIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBuZXdfcGh5c19h ZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBod2Fk ZHIgc2l6ZSkKK3sKKyAgICBhYm9ydCgpOworfQorCiAjZW5kaWYKIAogI2VuZGlmIC8qIFhFTl9N QVBDQUNIRV9IICovCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=