From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v3] xen/balloon: Mark unallocated host memory as UNUSABLE Date: Wed, 20 Dec 2017 09:05:46 -0500 Message-ID: <1513778746-6155-1-git-send-email-boris.ostrovsky__21229.3469849557$1513778729$gmane$org@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org, linux-kernel@vger.kernel.org Cc: jgross@suse.com, Boris Ostrovsky , helgaas@kernel.org, christian.koenig@amd.com, JBeulich@suse.com List-Id: xen-devel@lists.xenproject.org Q29tbWl0IGY1Nzc1ZTBiNjExNiAoIng4Ni94ZW46IGRpc2NhcmQgUkFNIHJlZ2lvbnMgYWJvdmUg dGhlIG1heGltdW0KcmVzZXJ2YXRpb24iKSBsZWZ0IGhvc3QgbWVtb3J5IG5vdCBhc3NpZ25lZCB0 byBkb20wIGFzIGF2YWlsYWJsZSBmb3IKbWVtb3J5IGhvdHBsdWcuCgpVbmZvcnR1bmF0ZWx5IHRo aXMgYWxzbyBtZWFudCB0aGF0IHRob3NlIHJlZ2lvbnMgY291bGQgYmUgdXNlZCBieQpvdGhlcnMu IFNwZWNpZmljYWxseSwgY29tbWl0IGZhNTY0YWQ5NjM2NiAoIng4Ni9QQ0k6IEVuYWJsZSBhIDY0 Yml0IEJBUgpvbiBBTUQgRmFtaWx5IDE1aCAoTW9kZWxzIDAwLTFmLCAzMC0zZiwgNjAtN2YpIikg bWF5IHRyeSB0byBtYXAgdGhvc2UKYWRkcmVzc2VzIGFzIE1NSU8uCgpUbyBwcmV2ZW50IHRoaXMg bWFyayB1bmFsbG9jYXRlZCBob3N0IG1lbW9yeSBhcyBFODIwX1RZUEVfVU5VU0FCTEUgKHRodXMK ZWZmZWN0aXZlbHkgcmV2ZXJ0aW5nIGY1Nzc1ZTBiNjExNikgYW5kIGtlZXAgdHJhY2sgb2YgdGhh dCByZWdpb24gYXMKYSBob3N0bWVtIHJlc291cmNlIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSBo b3RwbHVnLgoKU2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lA b3JhY2xlLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjM6CiogVXNlIFBGTl9QSFlTCiogUmVwbGFjZSBr emFsbG9jIHdpdGgga21hbGxvYwoqIERlY2xhcmUgYXJjaF94ZW5fYmFsbG9vbl9pbml0IHByb3Rv dHlwZSBpbiBiYWxsb29uLmgKKiBSZW5hbWUgcmVzb3VyY2VzIChzL21lbW9yeS9SQU0vKQoqIENs YXJpZnkgKEkgdGhpbmspIGNvbW1lbnQgd2hlbiBwb3B1bGF0aW5nIGhvc3RtZW1fcmVzb3VyY2UK KiBQcmludCBvcGVuLWVuZGVkIGludGVydmFsIG9uIGluc2VydF9yZXNvdXJjZSgpIGVycm9yCiog Q29uc3RpZnkgZGVjbGFyYXRpb24gb2Ygc3RydWN0IGU4MjBfZW50cnkgKmVudHJ5CgogYXJjaC94 ODYveGVuL2VubGlnaHRlbi5jIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBhcmNoL3g4Ni94ZW4vc2V0dXAuYyAgICAgfCAgNiArKy0tCiBkcml2 ZXJzL3hlbi9iYWxsb29uLmMgICAgfCA2NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLQogaW5jbHVkZS94ZW4vYmFsbG9vbi5oICAgIHwgIDUgKysrCiA0IGZpbGVzIGNoYW5n ZWQsIDE0NCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni94ZW4vZW5saWdodGVuLmMgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMKaW5kZXggZDY2 OWU5ZC4uYzkwODFjNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jCisrKyBi L2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYwpAQCAtMSw4ICsxLDEyIEBACisjaWZkZWYgQ09ORklH X1hFTl9CQUxMT09OX01FTU9SWV9IT1RQTFVHCisjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgor I2VuZGlmCiAjaW5jbHVkZSA8bGludXgvY3B1Lmg+CiAjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4K IAogI2luY2x1ZGUgPHhlbi9mZWF0dXJlcy5oPgogI2luY2x1ZGUgPHhlbi9wYWdlLmg+CisjaW5j bHVkZSA8eGVuL2ludGVyZmFjZS9tZW1vcnkuaD4KIAogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJj YWxsLmg+CiAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+CkBAIC0zMzEsMyArMzM1LDgw IEBAIHZvaWQgeGVuX2FyY2hfdW5yZWdpc3Rlcl9jcHUoaW50IG51bSkKIH0KIEVYUE9SVF9TWU1C T0woeGVuX2FyY2hfdW5yZWdpc3Rlcl9jcHUpOwogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfWEVO X0JBTExPT05fTUVNT1JZX0hPVFBMVUcKK3ZvaWQgX19pbml0IGFyY2hfeGVuX2JhbGxvb25faW5p dChzdHJ1Y3QgcmVzb3VyY2UgKmhvc3RtZW1fcmVzb3VyY2UpCit7CisJc3RydWN0IHhlbl9tZW1v cnlfbWFwIG1lbW1hcDsKKwlpbnQgcmM7CisJdW5zaWduZWQgaW50IGksIGxhc3RfZ3Vlc3RfcmFt OworCXBoeXNfYWRkcl90IG1heF9hZGRyID0gUEZOX1BIWVMobWF4X3Bmbik7CisJc3RydWN0IGU4 MjBfdGFibGUgKnhlbl9lODIwX3RhYmxlOworCWNvbnN0IHN0cnVjdCBlODIwX2VudHJ5ICplbnRy eTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKworCWlmICgheGVuX2luaXRpYWxfZG9tYWluKCkp CisJCXJldHVybjsKKworCXhlbl9lODIwX3RhYmxlID0ga21hbGxvYyhzaXplb2YoKnhlbl9lODIw X3RhYmxlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF4ZW5fZTgyMF90YWJsZSkKKwkJcmV0dXJuOwor CisJbWVtbWFwLm5yX2VudHJpZXMgPSBBUlJBWV9TSVpFKHhlbl9lODIwX3RhYmxlLT5lbnRyaWVz KTsKKwlzZXRfeGVuX2d1ZXN0X2hhbmRsZShtZW1tYXAuYnVmZmVyLCB4ZW5fZTgyMF90YWJsZS0+ ZW50cmllcyk7CisJcmMgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fbWFjaGluZV9tZW1v cnlfbWFwLCAmbWVtbWFwKTsKKwlpZiAocmMpIHsKKwkJcHJfd2FybigiJXM6IENhbid0IHJlYWQg aG9zdCBlODIwICglZClcbiIsIF9fZnVuY19fLCByYyk7CisJCWdvdG8gb3V0OworCX0KKworCWxh c3RfZ3Vlc3RfcmFtID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgbWVtbWFwLm5yX2VudHJpZXM7IGkr KykgeworCQlpZiAoeGVuX2U4MjBfdGFibGUtPmVudHJpZXNbaV0uYWRkciA+PSBtYXhfYWRkcikK KwkJCWJyZWFrOworCQlpZiAoeGVuX2U4MjBfdGFibGUtPmVudHJpZXNbaV0udHlwZSA9PSBFODIw X1RZUEVfUkFNKQorCQkJbGFzdF9ndWVzdF9yYW0gPSBpOworCX0KKworCWVudHJ5ID0gJnhlbl9l ODIwX3RhYmxlLT5lbnRyaWVzW2xhc3RfZ3Vlc3RfcmFtXTsKKwlpZiAobWF4X2FkZHIgPj0gZW50 cnktPmFkZHIgKyBlbnRyeS0+c2l6ZSkKKwkJZ290byBvdXQ7IC8qIE5vIHVuYWxsb2NhdGVkIGhv c3QgUkFNLiAqLworCisJaG9zdG1lbV9yZXNvdXJjZS0+c3RhcnQgPSBtYXhfYWRkcjsKKwlob3N0 bWVtX3Jlc291cmNlLT5lbmQgPSBlbnRyeS0+YWRkciArIGVudHJ5LT5zaXplOworCisJLyoKKwkg KiBNYXJrIG5vbi1SQU0gcmVnaW9ucyBiZXR3ZWVuIHRoZSBlbmQgb2YgZG9tMCBSQU0gYW5kIGVu ZCBvZiBob3N0IFJBTQorCSAqIGFzIHVuYXZhaWxhYmxlLiBUaGUgcmVzdCBvZiB0aGF0IHJlZ2lv biBjYW4gYmUgdXNlZCBmb3IgaG90cGx1Zy1iYXNlZAorCSAqIGJhbGxvb25pbmcuCisJICovCisJ Zm9yICg7IGkgPCBtZW1tYXAubnJfZW50cmllczsgaSsrKSB7CisJCWVudHJ5ID0gJnhlbl9lODIw X3RhYmxlLT5lbnRyaWVzW2ldOworCisJCWlmIChlbnRyeS0+dHlwZSA9PSBFODIwX1RZUEVfUkFN KQorCQkJY29udGludWU7CisKKwkJaWYgKGVudHJ5LT5hZGRyID49IGhvc3RtZW1fcmVzb3VyY2Ut PmVuZCkKKwkJCWJyZWFrOworCisJCXJlcyA9IGt6YWxsb2Moc2l6ZW9mKCpyZXMpLCBHRlBfS0VS TkVMKTsKKwkJaWYgKCFyZXMpCisJCQlnb3RvIG91dDsKKworCQlyZXMtPm5hbWUgPSAiVW5hdmFp bGFibGUgaG9zdCBSQU0iOworCQlyZXMtPnN0YXJ0ID0gZW50cnktPmFkZHI7CisJCXJlcy0+ZW5k ID0gKGVudHJ5LT5hZGRyICsgZW50cnktPnNpemUgPCBob3N0bWVtX3Jlc291cmNlLT5lbmQpID8K KwkJCSAgICBlbnRyeS0+YWRkciArIGVudHJ5LT5zaXplIDogaG9zdG1lbV9yZXNvdXJjZS0+ZW5k OworCQlyYyA9IGluc2VydF9yZXNvdXJjZShob3N0bWVtX3Jlc291cmNlLCByZXMpOworCQlpZiAo cmMpIHsKKwkJCXByX3dhcm4oIiVzOiBDYW4ndCBpbnNlcnQgWyVsbHggLSAlbGx4KSAoJWQpXG4i LAorCQkJCV9fZnVuY19fLCByZXMtPnN0YXJ0LCByZXMtPmVuZCwgcmMpOworCQkJa2ZyZWUocmVz KTsKKwkJCWdvdG8gIG91dDsKKwkJfQorCX0KKworIG91dDoKKwlrZnJlZSh4ZW5fZTgyMF90YWJs ZSk7Cit9CisjZW5kaWYgLyogQ09ORklHX1hFTl9CQUxMT09OX01FTU9SWV9IT1RQTFVHICovCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vc2V0dXAuYyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCmlu ZGV4IGMxMTRjYTcuLjZlMGQyMDggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9zZXR1cC5jCisr KyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCkBAIC04MDgsNyArODA4LDYgQEAgY2hhciAqIF9faW5p dCB4ZW5fbWVtb3J5X3NldHVwKHZvaWQpCiAJYWRkciA9IHhlbl9lODIwX3RhYmxlLmVudHJpZXNb MF0uYWRkcjsKIAlzaXplID0geGVuX2U4MjBfdGFibGUuZW50cmllc1swXS5zaXplOwogCXdoaWxl IChpIDwgeGVuX2U4MjBfdGFibGUubnJfZW50cmllcykgewotCQlib29sIGRpc2NhcmQgPSBmYWxz ZTsKIAogCQljaHVua19zaXplID0gc2l6ZTsKIAkJdHlwZSA9IHhlbl9lODIwX3RhYmxlLmVudHJp ZXNbaV0udHlwZTsKQEAgLTgyNCwxMSArODIzLDEwIEBAIGNoYXIgKiBfX2luaXQgeGVuX21lbW9y eV9zZXR1cCh2b2lkKQogCQkJCXhlbl9hZGRfZXh0cmFfbWVtKHBmbl9zLCBuX3BmbnMpOwogCQkJ CXhlbl9tYXhfcDJtX3BmbiA9IHBmbl9zICsgbl9wZm5zOwogCQkJfSBlbHNlCi0JCQkJZGlzY2Fy ZCA9IHRydWU7CisJCQkJdHlwZSA9IEU4MjBfVFlQRV9VTlVTQUJMRTsKIAkJfQogCi0JCWlmICgh ZGlzY2FyZCkKLQkJCXhlbl9hbGlnbl9hbmRfYWRkX2U4MjBfcmVnaW9uKGFkZHIsIGNodW5rX3Np emUsIHR5cGUpOworCQl4ZW5fYWxpZ25fYW5kX2FkZF9lODIwX3JlZ2lvbihhZGRyLCBjaHVua19z aXplLCB0eXBlKTsKIAogCQlhZGRyICs9IGNodW5rX3NpemU7CiAJCXNpemUgLT0gY2h1bmtfc2l6 ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2JhbGxvb24uYyBiL2RyaXZlcnMveGVuL2JhbGxv b24uYwppbmRleCBmNzdlNDk5Li4wNjVmMGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9iYWxs b29uLmMKKysrIGIvZHJpdmVycy94ZW4vYmFsbG9vbi5jCkBAIC0yNTcsMTAgKzI1NywyNSBAQCBz dGF0aWMgdm9pZCByZWxlYXNlX21lbW9yeV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJlc291 cmNlKQogCWtmcmVlKHJlc291cmNlKTsKIH0KIAorLyoKKyAqIEhvc3QgbWVtb3J5IG5vdCBhbGxv Y2F0ZWQgdG8gZG9tMC4gV2UgY2FuIHVzZSB0aGlzIHJhbmdlIGZvciBob3RwbHVnLWJhc2VkCisg KiBiYWxsb29uaW5nLgorICoKKyAqIEl0J3MgYSB0eXBlLWxlc3MgcmVzb3VyY2UuIFNldHRpbmcg SU9SRVNPVVJDRV9NRU0gd2lsbCBtYWtlIHJlc291cmNlCisgKiBtYW5hZ2VtZW50IGFsZ29yaXRo bXMgKGFyY2hfcmVtb3ZlX3Jlc2VydmF0aW9ucygpKSBsb29rIGludG8gZ3Vlc3QgZTgyMCwKKyAq IHdoaWNoIHdlIGRvbid0IHdhbnQuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgaG9zdG1l bV9yZXNvdXJjZSA9IHsKKwkubmFtZSAgID0gIkhvc3QgUkFNIiwKK307CisKK3ZvaWQgX19hdHRy aWJ1dGVfXygod2VhaykpIF9faW5pdCBhcmNoX3hlbl9iYWxsb29uX2luaXQoc3RydWN0IHJlc291 cmNlICpyZXMpCit7fQorCiBzdGF0aWMgc3RydWN0IHJlc291cmNlICphZGRpdGlvbmFsX21lbW9y eV9yZXNvdXJjZShwaHlzX2FkZHJfdCBzaXplKQogewotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwot CWludCByZXQ7CisJc3RydWN0IHJlc291cmNlICpyZXMsICpyZXNfaG9zdG1lbTsKKwlpbnQgcmV0 ID0gLUVOT01FTTsKIAogCXJlcyA9IGt6YWxsb2Moc2l6ZW9mKCpyZXMpLCBHRlBfS0VSTkVMKTsK IAlpZiAoIXJlcykKQEAgLTI2OSwxMyArMjg0LDQyIEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ug KmFkZGl0aW9uYWxfbWVtb3J5X3Jlc291cmNlKHBoeXNfYWRkcl90IHNpemUpCiAJcmVzLT5uYW1l ID0gIlN5c3RlbSBSQU0iOwogCXJlcy0+ZmxhZ3MgPSBJT1JFU09VUkNFX1NZU1RFTV9SQU0gfCBJ T1JFU09VUkNFX0JVU1k7CiAKLQlyZXQgPSBhbGxvY2F0ZV9yZXNvdXJjZSgmaW9tZW1fcmVzb3Vy Y2UsIHJlcywKLQkJCQlzaXplLCAwLCAtMSwKLQkJCQlQQUdFU19QRVJfU0VDVElPTiAqIFBBR0Vf U0laRSwgTlVMTCwgTlVMTCk7Ci0JaWYgKHJldCA8IDApIHsKLQkJcHJfZXJyKCJDYW5ub3QgYWxs b2NhdGUgbmV3IFN5c3RlbSBSQU0gcmVzb3VyY2VcbiIpOwotCQlrZnJlZShyZXMpOwotCQlyZXR1 cm4gTlVMTDsKKwlyZXNfaG9zdG1lbSA9IGt6YWxsb2Moc2l6ZW9mKCpyZXMpLCBHRlBfS0VSTkVM KTsKKwlpZiAocmVzX2hvc3RtZW0pIHsKKwkJLyogVHJ5IHRvIGdyYWIgYSByYW5nZSBmcm9tIGhv c3RtZW0gKi8KKwkJcmVzX2hvc3RtZW0tPm5hbWUgPSAiSG9zdCBtZW1vcnkiOworCQlyZXQgPSBh bGxvY2F0ZV9yZXNvdXJjZSgmaG9zdG1lbV9yZXNvdXJjZSwgcmVzX2hvc3RtZW0sCisJCQkJCXNp emUsIDAsIC0xLAorCQkJCQlQQUdFU19QRVJfU0VDVElPTiAqIFBBR0VfU0laRSwgTlVMTCwgTlVM TCk7CisJfQorCisJaWYgKCFyZXQpIHsKKwkJLyoKKwkJICogSW5zZXJ0IHRoaXMgcmVzb3VyY2Ug aW50byBpb21lbS4gQmVjYXVzZSBob3N0bWVtX3Jlc291cmNlCisJCSAqIHRyYWNrcyBwb3J0aW9u IG9mIGd1ZXN0IGU4MjAgbWFya2VkIGFzIFVOVVNBQkxFIG5vb25lIGVsc2UKKwkJICogc2hvdWxk IHRyeSB0byB1c2UgaXQuCisJCSAqLworCQlyZXMtPnN0YXJ0ID0gcmVzX2hvc3RtZW0tPnN0YXJ0 OworCQlyZXMtPmVuZCA9IHJlc19ob3N0bWVtLT5lbmQ7CisJCXJldCA9IGluc2VydF9yZXNvdXJj ZSgmaW9tZW1fcmVzb3VyY2UsIHJlcyk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlwcl9lcnIoIkNh bid0IGluc2VydCBpb21lbV9yZXNvdXJjZSBbJWxseCAtICVsbHhdXG4iLAorCQkJCXJlcy0+c3Rh cnQsIHJlcy0+ZW5kKTsKKwkJCXJlbGVhc2VfbWVtb3J5X3Jlc291cmNlKHJlc19ob3N0bWVtKTsK KwkJCXJlc19ob3N0bWVtID0gTlVMTDsKKwkJCXJlcy0+c3RhcnQgPSByZXMtPmVuZCA9IDA7CisJ CX0KKwl9CisKKwlpZiAocmV0KSB7CisJCXJldCA9IGFsbG9jYXRlX3Jlc291cmNlKCZpb21lbV9y ZXNvdXJjZSwgcmVzLAorCQkJCQlzaXplLCAwLCAtMSwKKwkJCQkJUEFHRVNfUEVSX1NFQ1RJT04g KiBQQUdFX1NJWkUsIE5VTEwsIE5VTEwpOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJfZXJyKCJD YW5ub3QgYWxsb2NhdGUgbmV3IFN5c3RlbSBSQU0gcmVzb3VyY2VcbiIpOworCQkJa2ZyZWUocmVz KTsKKwkJCXJldHVybiBOVUxMOworCQl9CiAJfQogCiAjaWZkZWYgQ09ORklHX1NQQVJTRU1FTQpA QCAtMjg3LDYgKzMzMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKmFkZGl0aW9uYWxfbWVt b3J5X3Jlc291cmNlKHBoeXNfYWRkcl90IHNpemUpCiAJCQlwcl9lcnIoIk5ldyBTeXN0ZW0gUkFN IHJlc291cmNlIG91dHNpZGUgYWRkcmVzc2FibGUgUkFNICglbHUgPiAlbHUpXG4iLAogCQkJICAg ICAgIHBmbiwgbGltaXQpOwogCQkJcmVsZWFzZV9tZW1vcnlfcmVzb3VyY2UocmVzKTsKKwkJCXJl bGVhc2VfbWVtb3J5X3Jlc291cmNlKHJlc19ob3N0bWVtKTsKIAkJCXJldHVybiBOVUxMOwogCQl9 CiAJfQpAQCAtNzY1LDYgKzgxMCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGJhbGxvb25faW5pdCh2 b2lkKQogCXNldF9vbmxpbmVfcGFnZV9jYWxsYmFjaygmeGVuX29ubGluZV9wYWdlKTsKIAlyZWdp c3Rlcl9tZW1vcnlfbm90aWZpZXIoJnhlbl9tZW1vcnlfbmIpOwogCXJlZ2lzdGVyX3N5c2N0bF90 YWJsZSh4ZW5fcm9vdCk7CisKKwlhcmNoX3hlbl9iYWxsb29uX2luaXQoJmhvc3RtZW1fcmVzb3Vy Y2UpOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfWEVOX1BWCmRpZmYgLS1naXQgYS9pbmNsdWRl L3hlbi9iYWxsb29uLmggYi9pbmNsdWRlL3hlbi9iYWxsb29uLmgKaW5kZXggNDkxNGI5My4uNjFm NDEwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vYmFsbG9vbi5oCisrKyBiL2luY2x1ZGUveGVu L2JhbGxvb24uaApAQCAtNDQsMyArNDQsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2JhbGxv b25faW5pdCh2b2lkKQogewogfQogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfWEVOX0JBTExPT05f TUVNT1JZX0hPVFBMVUcKK3N0cnVjdCByZXNvdXJjZTsKK3ZvaWQgYXJjaF94ZW5fYmFsbG9vbl9p bml0KHN0cnVjdCByZXNvdXJjZSAqaG9zdG1lbV9yZXNvdXJjZSk7CisjZW5kaWYKLS0gCjIuNy40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==