From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCHES v8 4/8] mm: Scrub memory from idle loop Date: Wed, 16 Aug 2017 14:33:10 -0400 Message-ID: <1502908394-9760-5-git-send-email-boris.ostrovsky@oracle.com> References: <1502908394-9760-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: <1502908394-9760-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, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBzY3J1YmJpbmcgcGFnZXMgZHVyaW5nIGd1ZXN0IGRlc3RydWN0aW9uIChmcm9t CmZyZWVfaGVhcF9wYWdlcygpKSBkbyB0aGlzIG9wcG9ydHVuaXN0aWNhbGx5LCBmcm9tIHRoZSBp ZGxlIGxvb3AuCgpXZSBtaWdodCBjb21lIHRvIHNjcnViX2ZyZWVfcGFnZXMoKWZyb20gaWRsZSBs b29wIHdoaWxlIGFub3RoZXIgQ1BVCnVzZXMgbWFwY2FjaGUgb3ZlcnJpZGUsIHJlc3VsdGluZyBp biBhIGZhdWx0IHdoaWxlIHRyeWluZyB0byBkbwpfX21hcF9kb21haW5fcGFnZSgpIGluIHNjcnVi X29uZV9wYWdlKCkuIFRvIGF2b2lkIHRoaXMsIG1ha2UgbWFwY2FjaGUKdmNwdSBvdmVycmlkZSBh IHBlci1jcHUgdmFyaWFibGUuCgpTaWduZWQtb2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlz Lm9zdHJvdnNreUBvcmFjbGUuY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgpSZXZpZXdlZC1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNp dHJpeC5jb20+Ci0tLQogeGVuL2FyY2gvYXJtL2RvbWFpbi5jICAgICAgfCAgIDggKystCiB4ZW4v YXJjaC94ODYvZG9tYWluLmMgICAgICB8ICAgOCArKy0KIHhlbi9hcmNoL3g4Ni9kb21haW5fcGFn ZS5jIHwgICA2ICstLQogeGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgICAgfCAxMTkgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vbW0u aCAgICAgICB8ICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxOCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJj aC9hcm0vZG9tYWluLmMKaW5kZXggZWVlYmJkYi4uNDJmYjhkNiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gvYXJtL2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYwpAQCAtNTEsNyArNTEs MTMgQEAgdm9pZCBpZGxlX2xvb3Aodm9pZCkKICAgICAgICAgLyogQXJlIHdlIGhlcmUgZm9yIHJ1 bm5pbmcgdmNwdSBjb250ZXh0IHRhc2tsZXRzLCBvciBmb3IgaWRsaW5nPyAqLwogICAgICAgICBp ZiAoIHVubGlrZWx5KHRhc2tsZXRfd29ya190b19kbyhjcHUpKSApCiAgICAgICAgICAgICBkb190 YXNrbGV0KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogVGVzdCBzb2Z0 aXJxcyB0d2ljZSAtLS0gZmlyc3QgdG8gc2VlIGlmIHNob3VsZCBldmVuIHRyeSBzY3J1YmJpbmcK KyAgICAgICAgICogYW5kIHRoZW4sIGFmdGVyIGl0IGlzIGRvbmUsIHdoZXRoZXIgc29mdGlycXMg YmVjYW1lIHBlbmRpbmcKKyAgICAgICAgICogd2hpbGUgd2Ugd2VyZSBzY3J1YmJpbmcuCisgICAg ICAgICAqLworICAgICAgICBlbHNlIGlmICggIXNvZnRpcnFfcGVuZGluZyhjcHUpICYmICFzY3J1 Yl9mcmVlX3BhZ2VzKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgIXNvZnRpcnFfcGVuZGluZyhj cHUpICkKICAgICAgICAgewogICAgICAgICAgICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsKICAgICAg ICAgICAgIGlmICggY3B1X2lzX2hhbHRhYmxlKGNwdSkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IGJhYWY4MTUuLjliNGI5 NTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYv ZG9tYWluLmMKQEAgLTEyMiw3ICsxMjIsMTMgQEAgc3RhdGljIHZvaWQgaWRsZV9sb29wKHZvaWQp CiAgICAgICAgIC8qIEFyZSB3ZSBoZXJlIGZvciBydW5uaW5nIHZjcHUgY29udGV4dCB0YXNrbGV0 cywgb3IgZm9yIGlkbGluZz8gKi8KICAgICAgICAgaWYgKCB1bmxpa2VseSh0YXNrbGV0X3dvcmtf dG9fZG8oY3B1KSkgKQogICAgICAgICAgICAgZG9fdGFza2xldCgpOwotICAgICAgICBlbHNlCisg ICAgICAgIC8qCisgICAgICAgICAqIFRlc3Qgc29mdGlycXMgdHdpY2UgLS0tIGZpcnN0IHRvIHNl ZSBpZiBzaG91bGQgZXZlbiB0cnkgc2NydWJiaW5nCisgICAgICAgICAqIGFuZCB0aGVuLCBhZnRl ciBpdCBpcyBkb25lLCB3aGV0aGVyIHNvZnRpcnFzIGJlY2FtZSBwZW5kaW5nCisgICAgICAgICAq IHdoaWxlIHdlIHdlcmUgc2NydWJiaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgZWxzZSBpZiAo ICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSAmJiAhc2NydWJfZnJlZV9wYWdlcygpICAmJgorICAgICAg ICAgICAgICAgICAgICAhc29mdGlycV9wZW5kaW5nKGNwdSkgKQogICAgICAgICAgICAgcG1faWRs ZSgpOwogICAgICAgICBkb19zb2Z0aXJxKCk7CiAgICAgICAgIC8qCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4 IDcxYmFlZGUuLjA3ODNjMWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCkBAIC0xOCwxMiArMTgsMTIgQEAKICNp bmNsdWRlIDxhc20vaGFyZGlycS5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCi1zdGF0aWMg c3RydWN0IHZjcHUgKl9fcmVhZF9tb3N0bHkgb3ZlcnJpZGU7CitzdGF0aWMgREVGSU5FX1BFUl9D UFUoc3RydWN0IHZjcHUgKiwgb3ZlcnJpZGUpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Y3B1 ICptYXBjYWNoZV9jdXJyZW50X3ZjcHUodm9pZCkKIHsKICAgICAvKiBJbiB0aGUgY29tbW9uIGNh c2Ugd2UgdXNlIHRoZSBtYXBjYWNoZSBvZiB0aGUgcnVubmluZyBWQ1BVLiAqLwotICAgIHN0cnVj dCB2Y3B1ICp2ID0gb3ZlcnJpZGUgPzogY3VycmVudDsKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IHRo aXNfY3B1KG92ZXJyaWRlKSA/OiBjdXJyZW50OwogCiAgICAgLyoKICAgICAgKiBXaGVuIGN1cnJl bnQgaXNuJ3QgcHJvcGVybHkgc2V0IHVwIHlldCwgdGhpcyBpcyBlcXVpdmFsZW50IHRvCkBAIC01 OSw3ICs1OSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKm1hcGNhY2hlX2N1cnJlbnRf dmNwdSh2b2lkKQogCiB2b2lkIF9faW5pdCBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KHN0cnVj dCB2Y3B1ICp2KQogewotICAgIG92ZXJyaWRlID0gdjsKKyAgICB0aGlzX2NwdShvdmVycmlkZSkg PSB2OwogfQogCiAjZGVmaW5lIG1hcGNhY2hlX2wyX2VudHJ5KGUpICgoZSkgPj4gUEFHRVRBQkxF X09SREVSKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgYi94ZW4vY29tbW9u L3BhZ2VfYWxsb2MuYwppbmRleCAxMzAzNzM2Li5kMGMyMDIxIDEwMDY0NAotLS0gYS94ZW4vY29t bW9uL3BhZ2VfYWxsb2MuYworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpAQCAtMTAwOSwx NSArMTAwOSw4NiBAQCBzdGF0aWMgaW50IHJlc2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3QgcGFn ZV9pbmZvICpoZWFkKQogICAgIHJldHVybiBjb3VudDsKIH0KIAotc3RhdGljIHZvaWQgc2NydWJf ZnJlZV9wYWdlcyh1bnNpZ25lZCBpbnQgbm9kZSkKK3N0YXRpYyBub2RlbWFza190IG5vZGVfc2Ny dWJiaW5nOworCisvKgorICogSWYgZ2V0X25vZGUgaXMgdHJ1ZSB0aGlzIHdpbGwgcmV0dXJuIGNs b3Nlc3Qgbm9kZSB0aGF0IG5lZWRzIHRvIGJlIHNjcnViYmVkLAorICogd2l0aCBhcHByb3ByaWF0 ZSBiaXQgaW4gbm9kZV9zY3J1YmJpbmcgc2V0LgorICogSWYgZ2V0X25vZGUgaXMgbm90IHNldCwg dGhpcyB3aWxsIHJldHVybiAqYSogbm9kZSB0aGF0IG5lZWRzIHRvIGJlIHNjcnViYmVkLgorICog bm9kZV9zY3J1YmJpbmcgYml0bWFzayB3aWxsIG5vIGJlIHVwZGF0ZWQuCisgKiBJZiBubyBub2Rl IG5lZWRzIHNjcnViYmluZyB0aGVuIE5VTUFfTk9fTk9ERSBpcyByZXR1cm5lZC4KKyAqLworc3Rh dGljIHVuc2lnbmVkIGludCBub2RlX3RvX3NjcnViKGJvb2wgZ2V0X25vZGUpCiB7Ci0gICAgc3Ry dWN0IHBhZ2VfaW5mbyAqcGc7Ci0gICAgdW5zaWduZWQgaW50IHpvbmU7CisgICAgbm9kZWlkX3Qg bm9kZSA9IGNwdV90b19ub2RlKHNtcF9wcm9jZXNzb3JfaWQoKSksIGxvY2FsX25vZGU7CisgICAg bm9kZWlkX3QgY2xvc2VzdCA9IE5VTUFfTk9fTk9ERTsKKyAgICB1OCBkaXN0LCBzaG9ydGVzdCA9 IDB4ZmY7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykpOworICAgIGlm ICggbm9kZSA9PSBOVU1BX05PX05PREUgKQorICAgICAgICBub2RlID0gMDsKIAotICAgIGlmICgg IW5vZGVfbmVlZF9zY3J1Yltub2RlXSApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIG5vZGVf bmVlZF9zY3J1Yltub2RlXSAmJgorICAgICAgICAgKCFnZXRfbm9kZSB8fCAhbm9kZV90ZXN0X2Fu ZF9zZXQobm9kZSwgbm9kZV9zY3J1YmJpbmcpKSApCisgICAgICAgIHJldHVybiBub2RlOworCisg ICAgLyoKKyAgICAgKiBTZWUgaWYgdGhlcmUgYXJlIG1lbW9yeS1vbmx5IG5vZGVzIHRoYXQgbmVl ZCBzY3J1YmJpbmcgYW5kIGNob29zZQorICAgICAqIHRoZSBjbG9zZXN0IG9uZS4KKyAgICAgKi8K KyAgICBsb2NhbF9ub2RlID0gbm9kZTsKKyAgICBmb3IgKCA7IDsgKQorICAgIHsKKyAgICAgICAg ZG8geworICAgICAgICAgICAgbm9kZSA9IGN5Y2xlX25vZGUobm9kZSwgbm9kZV9vbmxpbmVfbWFw KTsKKyAgICAgICAgfSB3aGlsZSAoICFjcHVtYXNrX2VtcHR5KCZub2RlX3RvX2NwdW1hc2sobm9k ZSkpICYmCisgICAgICAgICAgICAgICAgICAobm9kZSAhPSBsb2NhbF9ub2RlKSApOworCisgICAg ICAgIGlmICggbm9kZSA9PSBsb2NhbF9ub2RlICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg ICAgIGlmICggbm9kZV9uZWVkX3NjcnViW25vZGVdICkKKyAgICAgICAgeworICAgICAgICAgICAg aWYgKCAhZ2V0X25vZGUgKQorICAgICAgICAgICAgICAgIHJldHVybiBub2RlOworCisgICAgICAg ICAgICBkaXN0ID0gX19ub2RlX2Rpc3RhbmNlKGxvY2FsX25vZGUsIG5vZGUpOworCisgICAgICAg ICAgICAvKgorICAgICAgICAgICAgICogR3JhYiB0aGUgbm9kZSByaWdodCBhd2F5LiBJZiB3ZSBm aW5kIGEgY2xvc2VyIG5vZGUgbGF0ZXIgd2Ugd2lsbAorICAgICAgICAgICAgICogcmVsZWFzZSB0 aGlzIG9uZS4gV2hpbGUgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhbm90aGVyIENQVSB3aWxsCisg ICAgICAgICAgICAgKiBub3QgYmUgYWJsZSB0byBzY3J1YiB0aGF0IG5vZGUgd2hlbiBpdCBpcyBz ZWFyY2hpbmcgZm9yIHNjcnViIHdvcmsKKyAgICAgICAgICAgICAqIGF0IHRoZSBzYW1lIHRpbWUg aXQgd2lsbCBiZSBhYmxlIHRvIGRvIHNvIG5leHQgdGltZSBpdCB3YWtlcyB1cC4KKyAgICAgICAg ICAgICAqIFRoZSBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBwZXJmb3JtIHRoaXMgc2VhcmNoIHVu ZGVyIGEgbG9jayBidXQKKyAgICAgICAgICAgICAqIHRoZW4gd2UnZCBuZWVkIHRvIHRha2UgdGhp cyBsb2NrIGV2ZXJ5IHRpbWUgd2UgY29tZSBpbiBoZXJlLgorICAgICAgICAgICAgICovCisgICAg ICAgICAgICBpZiAoIChkaXN0IDwgc2hvcnRlc3QgfHwgY2xvc2VzdCA9PSBOVU1BX05PX05PREUp ICYmCisgICAgICAgICAgICAgICAgICFub2RlX3Rlc3RfYW5kX3NldChub2RlLCBub2RlX3NjcnVi YmluZykgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICggY2xvc2VzdCAhPSBO VU1BX05PX05PREUgKQorICAgICAgICAgICAgICAgICAgICBub2RlX2NsZWFyKGNsb3Nlc3QsIG5v ZGVfc2NydWJiaW5nKTsKKyAgICAgICAgICAgICAgICBzaG9ydGVzdCA9IGRpc3Q7CisgICAgICAg ICAgICAgICAgY2xvc2VzdCA9IG5vZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9 CisKKyAgICByZXR1cm4gY2xvc2VzdDsKK30KKworYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQp Cit7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CisgICAgdW5zaWduZWQgaW50IHpvbmU7Cisg ICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBib29sIHByZWVt cHQgPSBmYWxzZTsKKyAgICBub2RlaWRfdCBub2RlOworICAgIHVuc2lnbmVkIGludCBjbnQgPSAw OworICAKKyAgICBub2RlID0gbm9kZV90b19zY3J1Yih0cnVlKTsKKyAgICBpZiAoIG5vZGUgPT0g TlVNQV9OT19OT0RFICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworIAorICAgIHNwaW5fbG9jaygm aGVhcF9sb2NrKTsKIAogICAgIGZvciAoIHpvbmUgPSAwOyB6b25lIDwgTlJfWk9ORVM7IHpvbmUr KyApCiAgICAgewpAQCAtMTA0MCwxNyArMTExMSw0MiBAQCBzdGF0aWMgdm9pZCBzY3J1Yl9mcmVl X3BhZ2VzKHVuc2lnbmVkIGludCBub2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgc2NydWJf b25lX3BhZ2UoJnBnW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHBnW2ldLmNvdW50X2lu Zm8gJj0gflBHQ19uZWVkX3NjcnViOwogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9uZWVk X3NjcnViW25vZGVdLS07CisgICAgICAgICAgICAgICAgICAgICAgICBjbnQgKz0gMTAwOyAvKiBz Y3J1YmJlZCBwYWdlcyBhZGQgaGVhdmllciB3ZWlnaHQuICovCisgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgY250 Kys7CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogU2Ny dWIgYSBmZXcgKDgpIHBhZ2VzIGJlZm9yZSBiZWNvbWluZyBlbGlnaWJsZSBmb3IKKyAgICAgICAg ICAgICAgICAgICAgICogcHJlZW1wdGlvbi4gQnV0IGFsc28gY291bnQgbm9uLXNjcnViYmluZyBs b29wIGl0ZXJhdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICogc28gdGhhdCB3ZSBkb24ndCBn ZXQgc3R1Y2sgaGVyZSB3aXRoIGFuIGFsbW9zdCBjbGVhbgorICAgICAgICAgICAgICAgICAgICAg KiBoZWFwLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYg KCBjbnQgPiA4MDAgJiYgc29mdGlycV9wZW5kaW5nKGNwdSkgKQorICAgICAgICAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmVlbXB0ID0gdHJ1ZTsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgfQogCi0gICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9u ZSwgb3JkZXIpKTsKLSAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBub2Rl LCB6b25lLCBvcmRlciwgSU5WQUxJRF9ESVJUWV9JRFgpOworICAgICAgICAgICAgICAgIGlmICgg aSA+PSAoMVUgPDwgb3JkZXIpIC0gMSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICBwYWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOworICAg ICAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBub2RlLCB6b25lLCBvcmRl ciwgSU5WQUxJRF9ESVJUWV9JRFgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuZmlyc3RfZGlydHkgPSBpICsg MTsKIAotICAgICAgICAgICAgICAgIGlmICggbm9kZV9uZWVkX3NjcnViW25vZGVdID09IDAgKQot ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgaWYgKCBwcmVlbXB0 IHx8IChub2RlX25lZWRfc2NydWJbbm9kZV0gPT0gMCkgKQorICAgICAgICAgICAgICAgICAgICBn b3RvIG91dDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSB3aGlsZSAoIG9yZGVyLS0gIT0gMCAp OwogICAgIH0KKworIG91dDoKKyAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKKyAgICBub2Rl X2NsZWFyKG5vZGUsIG5vZGVfc2NydWJiaW5nKTsKKyAgICByZXR1cm4gbm9kZV90b19zY3J1Yihm YWxzZSkgIT0gTlVNQV9OT19OT0RFOwogfQogCiAvKiBGcmVlIDJeQG9yZGVyIHNldCBvZiBwYWdl cy4gKi8KQEAgLTExNjIsOSArMTI1OCw2IEBAIHN0YXRpYyB2b2lkIGZyZWVfaGVhcF9wYWdlcygK ICAgICBpZiAoIHRhaW50ZWQgKQogICAgICAgICByZXNlcnZlX29mZmxpbmVkX3BhZ2UocGcpOwog Ci0gICAgaWYgKCBuZWVkX3NjcnViICkKLSAgICAgICAgc2NydWJfZnJlZV9wYWdlcyhub2RlKTsK LQogICAgIHNwaW5fdW5sb2NrKCZoZWFwX2xvY2spOwogfQogCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS94ZW4vbW0uaCBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCmluZGV4IGUxZjljNDIuLmRkYzNm YjMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hl bi9tbS5oCkBAIC0xNjAsNiArMTYwLDcgQEAgdm9pZCBpbml0X3hlbmhlYXBfcGFnZXMocGFkZHJf dCBwcywgcGFkZHJfdCBwZSk7CiB2b2lkIHhlbmhlYXBfbWF4X21mbih1bnNpZ25lZCBsb25nIG1m bik7CiB2b2lkICphbGxvY194ZW5oZWFwX3BhZ2VzKHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWdu ZWQgaW50IG1lbWZsYWdzKTsKIHZvaWQgZnJlZV94ZW5oZWFwX3BhZ2VzKHZvaWQgKnYsIHVuc2ln bmVkIGludCBvcmRlcik7Citib29sIHNjcnViX2ZyZWVfcGFnZXModm9pZCk7CiAjZGVmaW5lIGFs bG9jX3hlbmhlYXBfcGFnZSgpIChhbGxvY194ZW5oZWFwX3BhZ2VzKDAsMCkpCiAjZGVmaW5lIGZy ZWVfeGVuaGVhcF9wYWdlKHYpIChmcmVlX3hlbmhlYXBfcGFnZXModiwwKSkKIC8qIE1hcCBtYWNo aW5lIHBhZ2UgcmFuZ2UgaW4gWGVuIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4gKi8KLS0gCjEuOC4z LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK