From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v5 4/8] mm: Scrub memory from idle loop Date: Thu, 22 Jun 2017 14:57:06 -0400 Message-ID: <1498157830-21845-5-git-send-email-boris.ostrovsky@oracle.com> References: <1498157830-21845-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1498157830-21845-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, Dario Faggioli , ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBzY3J1YmJpbmcgcGFnZXMgZHVyaW5nIGd1ZXN0IGRlc3RydWN0aW9uIChmcm9t CmZyZWVfaGVhcF9wYWdlcygpKSBkbyB0aGlzIG9wcG9ydHVuaXN0aWNhbGx5LCBmcm9tIHRoZSBp ZGxlIGxvb3AuCgpXZSBtaWdodCBjb21lIHRvIHNjcnViX2ZyZWVfcGFnZXMoKWZyb20gaWRsZSBs b29wIHdoaWxlIGFub3RoZXIgQ1BVCnVzZXMgbWFwY2FjaGUgb3ZlcnJpZGUsIHJlc3VsdGluZyBp biBhIGZhdWx0IHdoaWxlIHRyeWluZyB0byBkbyAKX19tYXBfZG9tYWluX3BhZ2UoKSBpbiBzY3J1 Yl9vbmVfcGFnZSgpLiBUbyBhdm9pZCB0aGlzLCBtYWtlIG1hcGNhY2hlCnZjcHUgb3ZlcnJpZGUg YSBwZXItY3B1IHZhcmlhYmxlLgoKU2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jp cy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCkNDOiBEYXJpbyBGYWdnaW9saSA8ZGFyaW8uZmFn Z2lvbGlAY2l0cml4LmNvbT4KLS0tCkNoYW5nZXMgaW4gdjU6CiogQWRkZWQgZXhwbGFuYXRpb24g aW4gY29tbWl0IG1lc3NhZ2UgZm9yIG1ha2luZyBtYXBjYWNoZSBvdmVycmlkZSBWQ1BVCiAgYSBw ZXItY3B1IHZhcmlhYmxlCiogRml4ZWQgbG9vcCBjb3VudGluZyBpbiBzY3J1Yl9mcmVlX3BhZ2Vz KCkKKiBGaXhlZCB0aGUgb2ZmLWJ5LW9uZSBlcnJvciBpbiBzZXR0aW5nIGZpcnN0X2RpcnR5IGlu IHNjcnViX2ZyZWVfcGFnZXMoKS4KKiBWYXJpb3VzIHN0eWxlIGZpeGVzCiogQWRkZWQgYSBjb21t ZW50IGluIG5vZGVfdG9fc2NydWIoKSBleHBsYWluaW5nIHdoeSBpdCBzaG91bGQgYmUgT0sgdG8K ICBwcmV2ZW50IGFub3RoZXIgQ1BVIGZyb20gc2NydWJiaW5nIGEgbm9kZSB0aGF0IHRocyBjdXJy ZW50IENQVSB0ZW1wb3JhcmlseQogIGNsYWltZWQuIChJIGRlY2lkZWQgYWdhaW5zdCB1c2luZyBs b2NrcyB0aGVyZSkKCgogeGVuL2FyY2gvYXJtL2RvbWFpbi5jICAgICAgfCAgIDIgKy0KIHhlbi9h cmNoL3g4Ni9kb21haW4uYyAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2Uu YyB8ICAgNiArLS0KIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jICAgIHwgMTE4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogeGVuL2luY2x1ZGUveGVuL21tLmgg ICAgICAgfCAgIDEgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gv YXJtL2RvbWFpbi5jCmluZGV4IDJkYzhiMGEuLmQyODJjZDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS9kb21haW4uYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKQEAgLTUxLDcgKzUxLDcg QEAgdm9pZCBpZGxlX2xvb3Aodm9pZCkKICAgICAgICAgLyogQXJlIHdlIGhlcmUgZm9yIHJ1bm5p bmcgdmNwdSBjb250ZXh0IHRhc2tsZXRzLCBvciBmb3IgaWRsaW5nPyAqLwogICAgICAgICBpZiAo IHVubGlrZWx5KHRhc2tsZXRfd29ya190b19kbyhjcHUpKSApCiAgICAgICAgICAgICBkb190YXNr bGV0KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgZWxzZSBpZiAoICFzb2Z0aXJxX3BlbmRpbmco Y3B1KSAmJiAhc2NydWJfZnJlZV9wYWdlcygpICkKICAgICAgICAgewogICAgICAgICAgICAgbG9j YWxfaXJxX2Rpc2FibGUoKTsKICAgICAgICAgICAgIGlmICggY3B1X2lzX2hhbHRhYmxlKGNwdSkg KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFp bi5jCmluZGV4IGY3ODczZGEuLjcxZjFlZjQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21h aW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0 aWMgdm9pZCBpZGxlX2xvb3Aodm9pZCkKICAgICAgICAgLyogQXJlIHdlIGhlcmUgZm9yIHJ1bm5p bmcgdmNwdSBjb250ZXh0IHRhc2tsZXRzLCBvciBmb3IgaWRsaW5nPyAqLwogICAgICAgICBpZiAo IHVubGlrZWx5KHRhc2tsZXRfd29ya190b19kbyhjcHUpKSApCiAgICAgICAgICAgICBkb190YXNr bGV0KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgZWxzZSBpZiAoICFzb2Z0aXJxX3BlbmRpbmco Y3B1KSAmJiAhc2NydWJfZnJlZV9wYWdlcygpICkKICAgICAgICAgICAgIHBtX2lkbGUoKTsKICAg ICAgICAgZG9fc29mdGlycSgpOwogICAgICAgICAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2RvbWFpbl9wYWdlLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYwppbmRleCA3MWJhZWRl Li4wNzgzYzFlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYworKysgYi94 ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYwpAQCAtMTgsMTIgKzE4LDEyIEBACiAjaW5jbHVkZSA8 YXNtL2hhcmRpcnEuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAotc3RhdGljIHN0cnVjdCB2 Y3B1ICpfX3JlYWRfbW9zdGx5IG92ZXJyaWRlOworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVj dCB2Y3B1ICosIG92ZXJyaWRlKTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdmNwdSAqbWFwY2Fj aGVfY3VycmVudF92Y3B1KHZvaWQpCiB7CiAgICAgLyogSW4gdGhlIGNvbW1vbiBjYXNlIHdlIHVz ZSB0aGUgbWFwY2FjaGUgb2YgdGhlIHJ1bm5pbmcgVkNQVS4gKi8KLSAgICBzdHJ1Y3QgdmNwdSAq diA9IG92ZXJyaWRlID86IGN1cnJlbnQ7CisgICAgc3RydWN0IHZjcHUgKnYgPSB0aGlzX2NwdShv dmVycmlkZSkgPzogY3VycmVudDsKIAogICAgIC8qCiAgICAgICogV2hlbiBjdXJyZW50IGlzbid0 IHByb3Blcmx5IHNldCB1cCB5ZXQsIHRoaXMgaXMgZXF1aXZhbGVudCB0bwpAQCAtNTksNyArNTks NyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Y3B1ICptYXBjYWNoZV9jdXJyZW50X3ZjcHUodm9p ZCkKIAogdm9pZCBfX2luaXQgbWFwY2FjaGVfb3ZlcnJpZGVfY3VycmVudChzdHJ1Y3QgdmNwdSAq dikKIHsKLSAgICBvdmVycmlkZSA9IHY7CisgICAgdGhpc19jcHUob3ZlcnJpZGUpID0gdjsKIH0K IAogI2RlZmluZSBtYXBjYWNoZV9sMl9lbnRyeShlKSAoKGUpID4+IFBBR0VUQUJMRV9PUkRFUikK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jIGIveGVuL2NvbW1vbi9wYWdlX2Fs bG9jLmMKaW5kZXggOWFhYzE5Ni4uNGUyNzc1ZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9wYWdl X2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKQEAgLTEwMTksMTUgKzEwMTks ODUgQEAgc3RhdGljIGludCByZXNlcnZlX29mZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAq aGVhZCkKICAgICByZXR1cm4gY291bnQ7CiB9CiAKLXN0YXRpYyB2b2lkIHNjcnViX2ZyZWVfcGFn ZXModW5zaWduZWQgaW50IG5vZGUpCitzdGF0aWMgbm9kZW1hc2tfdCBub2RlX3NjcnViYmluZzsK KworLyoKKyAqIElmIGdldF9ub2RlIGlzIHRydWUgdGhpcyB3aWxsIHJldHVybiBjbG9zZXN0IG5v ZGUgdGhhdCBuZWVkcyB0byBiZSBzY3J1YmJlZCwKKyAqIHdpdGggYXBwcm9wcmlhdGUgYml0IGlu IG5vZGVfc2NydWJiaW5nIHNldC4KKyAqIElmIGdldF9ub2RlIGlzIG5vdCBzZXQsIHRoaXMgd2ls bCByZXR1cm4gKmEqIG5vZGUgdGhhdCBuZWVkcyB0byBiZSBzY3J1YmJlZC4KKyAqIG5vZGVfc2Ny dWJiaW5nIGJpdG1hc2sgd2lsbCBubyBiZSB1cGRhdGVkLgorICogSWYgbm8gbm9kZSBuZWVkcyBz Y3J1YmJpbmcgdGhlbiBOVU1BX05PX05PREUgaXMgcmV0dXJuZWQuCisgKi8KK3N0YXRpYyB1bnNp Z25lZCBpbnQgbm9kZV90b19zY3J1Yihib29sIGdldF9ub2RlKQogewotICAgIHN0cnVjdCBwYWdl X2luZm8gKnBnOwotICAgIHVuc2lnbmVkIGludCB6b25lOworICAgIG5vZGVpZF90IG5vZGUgPSBj cHVfdG9fbm9kZShzbXBfcHJvY2Vzc29yX2lkKCkpLCBsb2NhbF9ub2RlOworICAgIG5vZGVpZF90 IGNsb3Nlc3QgPSBOVU1BX05PX05PREU7CisgICAgdTggZGlzdCwgc2hvcnRlc3QgPSAweGZmOwog Ci0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZoZWFwX2xvY2spKTsKKyAgICBpZiAoIG5vZGUg PT0gTlVNQV9OT19OT0RFICkKKyAgICAgICAgbm9kZSA9IDA7CiAKLSAgICBpZiAoICFub2RlX25l ZWRfc2NydWJbbm9kZV0gKQotICAgICAgICByZXR1cm47CisgICAgaWYgKCBub2RlX25lZWRfc2Ny dWJbbm9kZV0gJiYKKyAgICAgICAgICghZ2V0X25vZGUgfHwgIW5vZGVfdGVzdF9hbmRfc2V0KG5v ZGUsIG5vZGVfc2NydWJiaW5nKSkgKQorICAgICAgICByZXR1cm4gbm9kZTsKKworICAgIC8qCisg ICAgICogU2VlIGlmIHRoZXJlIGFyZSBtZW1vcnktb25seSBub2RlcyB0aGF0IG5lZWQgc2NydWJi aW5nIGFuZCBjaG9vc2UKKyAgICAgKiB0aGUgY2xvc2VzdCBvbmUuCisgICAgICovCisgICAgbG9j YWxfbm9kZSA9IG5vZGU7CisgICAgZm9yICggOyA7ICkKKyAgICB7CisgICAgICAgIGRvIHsKKyAg ICAgICAgICAgIG5vZGUgPSBjeWNsZV9ub2RlKG5vZGUsIG5vZGVfb25saW5lX21hcCk7CisgICAg ICAgIH0gd2hpbGUgKCAhY3B1bWFza19lbXB0eSgmbm9kZV90b19jcHVtYXNrKG5vZGUpKSAmJgor ICAgICAgICAgICAgICAgICAgKG5vZGUgIT0gbG9jYWxfbm9kZSkgKTsKKworICAgICAgICBpZiAo IG5vZGUgPT0gbG9jYWxfbm9kZSApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvKgor ICAgICAgICAgKiBHcmFiIHRoZSBub2RlIHJpZ2h0IGF3YXkuIElmIHdlIGZpbmQgYSBjbG9zZXIg bm9kZSBsYXRlciB3ZSB3aWxsCisgICAgICAgICAqIHJlbGVhc2UgdGhpcyBvbmUuIFdoaWxlIHRo ZXJlIGlzIGEgY2hhbmNlIHRoYXQgYW5vdGhlciBDUFUgd2lsbAorICAgICAgICAgKiBub3QgYmUg YWJsZSB0byBzY3J1YiB0aGF0IG5vZGUgd2hlbiBpdCBpcyBzZWFyY2hpbmcgZm9yIHNjcnViIHdv cmsKKyAgICAgICAgICogYXQgdGhlIHNhbWUgdGltZSBpdCB3aWxsIGJlIGFibGUgdG8gZG8gc28g bmV4dCB0aW1lIGl0IHdha2VzIHVwLgorICAgICAgICAgKiBUaGUgYWx0ZXJuYXRpdmUgd291bGQg YmUgdG8gcGVyZm9ybSB0aGlzIHNlYXJjaCB1bmRlciBhIGxvY2sgYnV0CisgICAgICAgICAqIHRo ZW4gd2UnZCBuZWVkIHRvIHRha2UgdGhpcyBsb2NrIGV2ZXJ5IHRpbWUgd2UgY29tZSBpbiBoZXJl LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBub2RlX25lZWRfc2NydWJbbm9kZV0gKQorICAg ICAgICB7CisgICAgICAgICAgICBpZiAoICFnZXRfbm9kZSApCisgICAgICAgICAgICAgICAgcmV0 dXJuIG5vZGU7CisKKyAgICAgICAgICAgIGRpc3QgPSBfX25vZGVfZGlzdGFuY2UobG9jYWxfbm9k ZSwgbm9kZSk7CisgICAgICAgICAgICBpZiAoIChkaXN0IDwgc2hvcnRlc3QgfHwgY2xvc2VzdCA9 PSBOVU1BX05PX05PREUpICYmCisgICAgICAgICAgICAgICAgICFub2RlX3Rlc3RfYW5kX3NldChu b2RlLCBub2RlX3NjcnViYmluZykgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlm ICggY2xvc2VzdCAhPSBOVU1BX05PX05PREUgKQorICAgICAgICAgICAgICAgICAgICBub2RlX2Ns ZWFyKGNsb3Nlc3QsIG5vZGVfc2NydWJiaW5nKTsKKyAgICAgICAgICAgICAgICBzaG9ydGVzdCA9 IGRpc3Q7CisgICAgICAgICAgICAgICAgY2xvc2VzdCA9IG5vZGU7CisgICAgICAgICAgICB9Cisg ICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gY2xvc2VzdDsKK30KKworYm9vbCBzY3J1Yl9m cmVlX3BhZ2VzKHZvaWQpCit7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CisgICAgdW5zaWdu ZWQgaW50IHpvbmU7CisgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsK KyAgICBib29sIHByZWVtcHQgPSBmYWxzZTsKKyAgICBub2RlaWRfdCBub2RlOworICAgIHVuc2ln bmVkIGludCBjbnQgPSAwOworICAKKyAgICBub2RlID0gbm9kZV90b19zY3J1Yih0cnVlKTsKKyAg ICBpZiAoIG5vZGUgPT0gTlVNQV9OT19OT0RFICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworIAor ICAgIHNwaW5fbG9jaygmaGVhcF9sb2NrKTsKIAogICAgIGZvciAoIHpvbmUgPSAwOyB6b25lIDwg TlJfWk9ORVM7IHpvbmUrKyApCiAgICAgewpAQCAtMTA1MCwxNyArMTEyMCw0MiBAQCBzdGF0aWMg dm9pZCBzY3J1Yl9mcmVlX3BhZ2VzKHVuc2lnbmVkIGludCBub2RlKQogICAgICAgICAgICAgICAg ICAgICAgICAgc2NydWJfb25lX3BhZ2UoJnBnW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAg IHBnW2ldLmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnViOwogICAgICAgICAgICAgICAgICAg ICAgICAgbm9kZV9uZWVkX3NjcnViW25vZGVdLS07CisgICAgICAgICAgICAgICAgICAgICAgICBj bnQgKz0gMTAwOyAvKiBzY3J1YmJlZCBwYWdlcyBhZGQgaGVhdmllciB3ZWlnaHQuICovCisgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgICAgICAgICAgY250Kys7CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAg ICAgICAgICAgICogU2NydWIgYSBmZXcgKDgpIHBhZ2VzIGJlZm9yZSBiZWNvbWluZyBlbGlnaWJs ZSBmb3IKKyAgICAgICAgICAgICAgICAgICAgICogcHJlZW1wdGlvbi4gQnV0IGFsc28gY291bnQg bm9uLXNjcnViYmluZyBsb29wIGl0ZXJhdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICogc28g dGhhdCB3ZSBkb24ndCBnZXQgc3R1Y2sgaGVyZSB3aXRoIGFuIGFsbW9zdCBjbGVhbgorICAgICAg ICAgICAgICAgICAgICAgKiBoZWFwLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAg ICAgICAgICAgICAgaWYgKCBjbnQgPiA4MDAgJiYgc29mdGlycV9wZW5kaW5nKGNwdSkgKQorICAg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmVlbXB0ID0gdHJ1 ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywg JmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKLSAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRk X3NjcnViKHBnLCBub2RlLCB6b25lLCBvcmRlciwgSU5WQUxJRF9ESVJUWV9JRFgpOworICAgICAg ICAgICAgICAgIGlmICggaSA+PSAoMVUgPDwgb3JkZXIpIC0gMSApCisgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgICBwYWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25l LCBvcmRlcikpOworICAgICAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBu b2RlLCB6b25lLCBvcmRlciwgSU5WQUxJRF9ESVJUWV9JRFgpOworICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuZmly c3RfZGlydHkgPSBpICsgMTsKIAotICAgICAgICAgICAgICAgIGlmICggbm9kZV9uZWVkX3NjcnVi W25vZGVdID09IDAgKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg ICAgaWYgKCBwcmVlbXB0IHx8IChub2RlX25lZWRfc2NydWJbbm9kZV0gPT0gMCkgKQorICAgICAg ICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSB3aGlsZSAo IG9yZGVyLS0gIT0gMCApOwogICAgIH0KKworIG91dDoKKyAgICBzcGluX3VubG9jaygmaGVhcF9s b2NrKTsKKyAgICBub2RlX2NsZWFyKG5vZGUsIG5vZGVfc2NydWJiaW5nKTsKKyAgICByZXR1cm4g c29mdGlycV9wZW5kaW5nKGNwdSkgfHwgKG5vZGVfdG9fc2NydWIoZmFsc2UpICE9IE5VTUFfTk9f Tk9ERSk7CiB9CiAKIC8qIEZyZWUgMl5Ab3JkZXIgc2V0IG9mIHBhZ2VzLiAqLwpAQCAtMTE3NSw5 ICsxMjcwLDYgQEAgc3RhdGljIHZvaWQgZnJlZV9oZWFwX3BhZ2VzKAogICAgIGlmICggdGFpbnRl ZCApCiAgICAgICAgIHJlc2VydmVfb2ZmbGluZWRfcGFnZShwZyk7CiAKLSAgICBpZiAoIG5lZWRf c2NydWIgKQotICAgICAgICBzY3J1Yl9mcmVlX3BhZ2VzKG5vZGUpOwotCiAgICAgc3Bpbl91bmxv Y2soJmhlYXBfbG9jayk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oIGIv eGVuL2luY2x1ZGUveGVuL21tLmgKaW5kZXggNWYzZDg0YS4uYTk4MjljMiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUveGVuL21tLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL21tLmgKQEAgLTE1MCw2 ICsxNTAsNyBAQCB2b2lkIGluaXRfeGVuaGVhcF9wYWdlcyhwYWRkcl90IHBzLCBwYWRkcl90IHBl KTsKIHZvaWQgeGVuaGVhcF9tYXhfbWZuKHVuc2lnbmVkIGxvbmcgbWZuKTsKIHZvaWQgKmFsbG9j X3hlbmhlYXBfcGFnZXModW5zaWduZWQgaW50IG9yZGVyLCB1bnNpZ25lZCBpbnQgbWVtZmxhZ3Mp Owogdm9pZCBmcmVlX3hlbmhlYXBfcGFnZXModm9pZCAqdiwgdW5zaWduZWQgaW50IG9yZGVyKTsK K2Jvb2wgc2NydWJfZnJlZV9wYWdlcyh2b2lkKTsKICNkZWZpbmUgYWxsb2NfeGVuaGVhcF9wYWdl KCkgKGFsbG9jX3hlbmhlYXBfcGFnZXMoMCwwKSkKICNkZWZpbmUgZnJlZV94ZW5oZWFwX3BhZ2Uo dikgKGZyZWVfeGVuaGVhcF9wYWdlcyh2LDApKQogLyogTWFwIG1hY2hpbmUgcGFnZSByYW5nZSBp biBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLiAqLwotLSAKMS44LjMuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=