From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v6 4/8] mm: Scrub memory from idle loop Date: Fri, 4 Aug 2017 13:05:42 -0400 Message-ID: <1501866346-9774-5-git-send-email-boris.ostrovsky@oracle.com> References: <1501866346-9774-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: <1501866346-9774-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 biBhIGZhdWx0IHdoaWxlIHRyeWluZyB0byBkbwpfX21hcF9kb21haW5fcGFnZSgpIGluIHNjcnVi X29uZV9wYWdlKCkuIFRvIGF2b2lkIHRoaXMsIG1ha2UgbWFwY2FjaGUKdmNwdSBvdmVycmlkZSBh IHBlci1jcHUgdmFyaWFibGUuCgpTaWduZWQtb2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlz Lm9zdHJvdnNreUBvcmFjbGUuY29tPgotLS0KQ0M6IERhcmlvIEZhZ2dpb2xpIDxkYXJpby5mYWdn aW9saUBjaXRyaXguY29tPgotLS0KQ2hhbmdlcyBpbiB2NjoKKiBNb3ZlZCBmaW5hbCBzb2Z0aXJx X3BlbmRpbmcoKSB0ZXN0IGZyb20gc2NydWJfZnJlZV9wYWdlcygpIHRvIGlkbGUgbG9vcC4KCgog eGVuL2FyY2gvYXJtL2RvbWFpbi5jICAgICAgfCAgIDggKystCiB4ZW4vYXJjaC94ODYvZG9tYWlu LmMgICAgICB8ICAgOCArKy0KIHhlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jIHwgICA2ICstLQog eGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgICAgfCAxMTkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vbW0uaCAgICAgICB8ICAgMSAr CiA1IGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMK aW5kZXggMmRjOGIwYS4uZDc5NjFiYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbi5j CisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYwpAQCAtNTEsNyArNTEsMTMgQEAgdm9pZCBpZGxl X2xvb3Aodm9pZCkKICAgICAgICAgLyogQXJlIHdlIGhlcmUgZm9yIHJ1bm5pbmcgdmNwdSBjb250 ZXh0IHRhc2tsZXRzLCBvciBmb3IgaWRsaW5nPyAqLwogICAgICAgICBpZiAoIHVubGlrZWx5KHRh c2tsZXRfd29ya190b19kbyhjcHUpKSApCiAgICAgICAgICAgICBkb190YXNrbGV0KCk7Ci0gICAg ICAgIGVsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogVGVzdCBzb2Z0aXJxcyB0d2ljZSAtLS0g Zmlyc3QgdG8gc2VlIGlmIHNob3VsZCBldmVuIHRyeSBzY3J1YmJpbmcKKyAgICAgICAgICogYW5k IHRoZW4sIGFmdGVyIGl0IGlzIGRvbmUsIHdoZXRoZXIgc29mdGlycXMgYmVjYW1lIHBlbmRpbmcK KyAgICAgICAgICogd2hpbGUgd2Ugd2VyZSBzY3J1YmJpbmcuCisgICAgICAgICAqLworICAgICAg ICBlbHNlIGlmICggIXNvZnRpcnFfcGVuZGluZyhjcHUpICYmICFzY3J1Yl9mcmVlX3BhZ2VzKCkg JiYKKyAgICAgICAgICAgICAgICAgICAgIXNvZnRpcnFfcGVuZGluZyhjcHUpICkKICAgICAgICAg ewogICAgICAgICAgICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsKICAgICAgICAgICAgIGlmICggY3B1 X2lzX2hhbHRhYmxlKGNwdSkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIv eGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IGJhYWY4MTUuLjliNGI5NTkgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTEy Miw3ICsxMjIsMTMgQEAgc3RhdGljIHZvaWQgaWRsZV9sb29wKHZvaWQpCiAgICAgICAgIC8qIEFy ZSB3ZSBoZXJlIGZvciBydW5uaW5nIHZjcHUgY29udGV4dCB0YXNrbGV0cywgb3IgZm9yIGlkbGlu Zz8gKi8KICAgICAgICAgaWYgKCB1bmxpa2VseSh0YXNrbGV0X3dvcmtfdG9fZG8oY3B1KSkgKQog ICAgICAgICAgICAgZG9fdGFza2xldCgpOwotICAgICAgICBlbHNlCisgICAgICAgIC8qCisgICAg ICAgICAqIFRlc3Qgc29mdGlycXMgdHdpY2UgLS0tIGZpcnN0IHRvIHNlZSBpZiBzaG91bGQgZXZl biB0cnkgc2NydWJiaW5nCisgICAgICAgICAqIGFuZCB0aGVuLCBhZnRlciBpdCBpcyBkb25lLCB3 aGV0aGVyIHNvZnRpcnFzIGJlY2FtZSBwZW5kaW5nCisgICAgICAgICAqIHdoaWxlIHdlIHdlcmUg c2NydWJiaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgZWxzZSBpZiAoICFzb2Z0aXJxX3BlbmRp bmcoY3B1KSAmJiAhc2NydWJfZnJlZV9wYWdlcygpICAmJgorICAgICAgICAgICAgICAgICAgICAh c29mdGlycV9wZW5kaW5nKGNwdSkgKQogICAgICAgICAgICAgcG1faWRsZSgpOwogICAgICAgICBk b19zb2Z0aXJxKCk7CiAgICAgICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWlu X3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4IDcxYmFlZGUuLjA3ODNj MWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9kb21haW5fcGFnZS5jCkBAIC0xOCwxMiArMTgsMTIgQEAKICNpbmNsdWRlIDxhc20vaGFy ZGlycS5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCi1zdGF0aWMgc3RydWN0IHZjcHUgKl9f cmVhZF9tb3N0bHkgb3ZlcnJpZGU7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHZjcHUg Kiwgb3ZlcnJpZGUpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Y3B1ICptYXBjYWNoZV9jdXJy ZW50X3ZjcHUodm9pZCkKIHsKICAgICAvKiBJbiB0aGUgY29tbW9uIGNhc2Ugd2UgdXNlIHRoZSBt YXBjYWNoZSBvZiB0aGUgcnVubmluZyBWQ1BVLiAqLwotICAgIHN0cnVjdCB2Y3B1ICp2ID0gb3Zl cnJpZGUgPzogY3VycmVudDsKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IHRoaXNfY3B1KG92ZXJyaWRl KSA/OiBjdXJyZW50OwogCiAgICAgLyoKICAgICAgKiBXaGVuIGN1cnJlbnQgaXNuJ3QgcHJvcGVy bHkgc2V0IHVwIHlldCwgdGhpcyBpcyBlcXVpdmFsZW50IHRvCkBAIC01OSw3ICs1OSw3IEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKm1hcGNhY2hlX2N1cnJlbnRfdmNwdSh2b2lkKQogCiB2 b2lkIF9faW5pdCBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KHN0cnVjdCB2Y3B1ICp2KQogewot ICAgIG92ZXJyaWRlID0gdjsKKyAgICB0aGlzX2NwdShvdmVycmlkZSkgPSB2OwogfQogCiAjZGVm aW5lIG1hcGNhY2hlX2wyX2VudHJ5KGUpICgoZSkgPj4gUEFHRVRBQkxFX09SREVSKQpkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpp bmRleCBlZWRmZjJkLi4zZjA0ZjE2IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3BhZ2VfYWxsb2Mu YworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpAQCAtMTAyNCwxNSArMTAyNCw4NiBAQCBz dGF0aWMgaW50IHJlc2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQog ICAgIHJldHVybiBjb3VudDsKIH0KIAotc3RhdGljIHZvaWQgc2NydWJfZnJlZV9wYWdlcyh1bnNp Z25lZCBpbnQgbm9kZSkKK3N0YXRpYyBub2RlbWFza190IG5vZGVfc2NydWJiaW5nOworCisvKgor ICogSWYgZ2V0X25vZGUgaXMgdHJ1ZSB0aGlzIHdpbGwgcmV0dXJuIGNsb3Nlc3Qgbm9kZSB0aGF0 IG5lZWRzIHRvIGJlIHNjcnViYmVkLAorICogd2l0aCBhcHByb3ByaWF0ZSBiaXQgaW4gbm9kZV9z Y3J1YmJpbmcgc2V0LgorICogSWYgZ2V0X25vZGUgaXMgbm90IHNldCwgdGhpcyB3aWxsIHJldHVy biAqYSogbm9kZSB0aGF0IG5lZWRzIHRvIGJlIHNjcnViYmVkLgorICogbm9kZV9zY3J1YmJpbmcg Yml0bWFzayB3aWxsIG5vIGJlIHVwZGF0ZWQuCisgKiBJZiBubyBub2RlIG5lZWRzIHNjcnViYmlu ZyB0aGVuIE5VTUFfTk9fTk9ERSBpcyByZXR1cm5lZC4KKyAqLworc3RhdGljIHVuc2lnbmVkIGlu dCBub2RlX3RvX3NjcnViKGJvb2wgZ2V0X25vZGUpCiB7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAq cGc7Ci0gICAgdW5zaWduZWQgaW50IHpvbmU7CisgICAgbm9kZWlkX3Qgbm9kZSA9IGNwdV90b19u b2RlKHNtcF9wcm9jZXNzb3JfaWQoKSksIGxvY2FsX25vZGU7CisgICAgbm9kZWlkX3QgY2xvc2Vz dCA9IE5VTUFfTk9fTk9ERTsKKyAgICB1OCBkaXN0LCBzaG9ydGVzdCA9IDB4ZmY7CiAKLSAgICBB U1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykpOworICAgIGlmICggbm9kZSA9PSBOVU1B X05PX05PREUgKQorICAgICAgICBub2RlID0gMDsKIAotICAgIGlmICggIW5vZGVfbmVlZF9zY3J1 Yltub2RlXSApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIG5vZGVfbmVlZF9zY3J1Yltub2Rl XSAmJgorICAgICAgICAgKCFnZXRfbm9kZSB8fCAhbm9kZV90ZXN0X2FuZF9zZXQobm9kZSwgbm9k ZV9zY3J1YmJpbmcpKSApCisgICAgICAgIHJldHVybiBub2RlOworCisgICAgLyoKKyAgICAgKiBT ZWUgaWYgdGhlcmUgYXJlIG1lbW9yeS1vbmx5IG5vZGVzIHRoYXQgbmVlZCBzY3J1YmJpbmcgYW5k IGNob29zZQorICAgICAqIHRoZSBjbG9zZXN0IG9uZS4KKyAgICAgKi8KKyAgICBsb2NhbF9ub2Rl ID0gbm9kZTsKKyAgICBmb3IgKCA7IDsgKQorICAgIHsKKyAgICAgICAgZG8geworICAgICAgICAg ICAgbm9kZSA9IGN5Y2xlX25vZGUobm9kZSwgbm9kZV9vbmxpbmVfbWFwKTsKKyAgICAgICAgfSB3 aGlsZSAoICFjcHVtYXNrX2VtcHR5KCZub2RlX3RvX2NwdW1hc2sobm9kZSkpICYmCisgICAgICAg ICAgICAgICAgICAobm9kZSAhPSBsb2NhbF9ub2RlKSApOworCisgICAgICAgIGlmICggbm9kZSA9 PSBsb2NhbF9ub2RlICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmICggbm9kZV9u ZWVkX3NjcnViW25vZGVdICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhZ2V0X25vZGUg KQorICAgICAgICAgICAgICAgIHJldHVybiBub2RlOworCisgICAgICAgICAgICBkaXN0ID0gX19u b2RlX2Rpc3RhbmNlKGxvY2FsX25vZGUsIG5vZGUpOworCisgICAgICAgICAgICAvKgorICAgICAg ICAgICAgICogR3JhYiB0aGUgbm9kZSByaWdodCBhd2F5LiBJZiB3ZSBmaW5kIGEgY2xvc2VyIG5v ZGUgbGF0ZXIgd2Ugd2lsbAorICAgICAgICAgICAgICogcmVsZWFzZSB0aGlzIG9uZS4gV2hpbGUg dGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhbm90aGVyIENQVSB3aWxsCisgICAgICAgICAgICAgKiBu b3QgYmUgYWJsZSB0byBzY3J1YiB0aGF0IG5vZGUgd2hlbiBpdCBpcyBzZWFyY2hpbmcgZm9yIHNj cnViIHdvcmsKKyAgICAgICAgICAgICAqIGF0IHRoZSBzYW1lIHRpbWUgaXQgd2lsbCBiZSBhYmxl IHRvIGRvIHNvIG5leHQgdGltZSBpdCB3YWtlcyB1cC4KKyAgICAgICAgICAgICAqIFRoZSBhbHRl cm5hdGl2ZSB3b3VsZCBiZSB0byBwZXJmb3JtIHRoaXMgc2VhcmNoIHVuZGVyIGEgbG9jayBidXQK KyAgICAgICAgICAgICAqIHRoZW4gd2UnZCBuZWVkIHRvIHRha2UgdGhpcyBsb2NrIGV2ZXJ5IHRp bWUgd2UgY29tZSBpbiBoZXJlLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoIChk aXN0IDwgc2hvcnRlc3QgfHwgY2xvc2VzdCA9PSBOVU1BX05PX05PREUpICYmCisgICAgICAgICAg ICAgICAgICFub2RlX3Rlc3RfYW5kX3NldChub2RlLCBub2RlX3NjcnViYmluZykgKQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgIGlmICggY2xvc2VzdCAhPSBOVU1BX05PX05PREUgKQor ICAgICAgICAgICAgICAgICAgICBub2RlX2NsZWFyKGNsb3Nlc3QsIG5vZGVfc2NydWJiaW5nKTsK KyAgICAgICAgICAgICAgICBzaG9ydGVzdCA9IGRpc3Q7CisgICAgICAgICAgICAgICAgY2xvc2Vz dCA9IG5vZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g Y2xvc2VzdDsKK30KKworYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCit7CisgICAgc3RydWN0 IHBhZ2VfaW5mbyAqcGc7CisgICAgdW5zaWduZWQgaW50IHpvbmU7CisgICAgdW5zaWduZWQgaW50 IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBib29sIHByZWVtcHQgPSBmYWxzZTsKKyAg ICBub2RlaWRfdCBub2RlOworICAgIHVuc2lnbmVkIGludCBjbnQgPSAwOworICAKKyAgICBub2Rl ID0gbm9kZV90b19zY3J1Yih0cnVlKTsKKyAgICBpZiAoIG5vZGUgPT0gTlVNQV9OT19OT0RFICkK KyAgICAgICAgcmV0dXJuIGZhbHNlOworIAorICAgIHNwaW5fbG9jaygmaGVhcF9sb2NrKTsKIAog ICAgIGZvciAoIHpvbmUgPSAwOyB6b25lIDwgTlJfWk9ORVM7IHpvbmUrKyApCiAgICAgewpAQCAt MTA1NSwxNyArMTEyNiw0MiBAQCBzdGF0aWMgdm9pZCBzY3J1Yl9mcmVlX3BhZ2VzKHVuc2lnbmVk IGludCBub2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgc2NydWJfb25lX3BhZ2UoJnBnW2ld KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHBnW2ldLmNvdW50X2luZm8gJj0gflBHQ19uZWVk X3NjcnViOwogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9uZWVkX3NjcnViW25vZGVdLS07 CisgICAgICAgICAgICAgICAgICAgICAgICBjbnQgKz0gMTAwOyAvKiBzY3J1YmJlZCBwYWdlcyBh ZGQgaGVhdmllciB3ZWlnaHQuICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgY250Kys7CisKKyAgICAgICAg ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogU2NydWIgYSBmZXcgKDgpIHBh Z2VzIGJlZm9yZSBiZWNvbWluZyBlbGlnaWJsZSBmb3IKKyAgICAgICAgICAgICAgICAgICAgICog cHJlZW1wdGlvbi4gQnV0IGFsc28gY291bnQgbm9uLXNjcnViYmluZyBsb29wIGl0ZXJhdGlvbnMK KyAgICAgICAgICAgICAgICAgICAgICogc28gdGhhdCB3ZSBkb24ndCBnZXQgc3R1Y2sgaGVyZSB3 aXRoIGFuIGFsbW9zdCBjbGVhbgorICAgICAgICAgICAgICAgICAgICAgKiBoZWFwLgorICAgICAg ICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYgKCBjbnQgPiA4MDAgJiYg c29mdGlycV9wZW5kaW5nKGNwdSkgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICBwcmVlbXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAg ICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKLSAg ICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBub2RlLCB6b25lLCBvcmRlciwg SU5WQUxJRF9ESVJUWV9JRFgpOworICAgICAgICAgICAgICAgIGlmICggaSA+PSAoMVUgPDwgb3Jk ZXIpIC0gMSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBwYWdlX2xp c3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOworICAgICAgICAgICAgICAgICAg ICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBub2RlLCB6b25lLCBvcmRlciwgSU5WQUxJRF9ESVJU WV9JRFgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg ICAgICAgICAgICAgIHBnLT51LmZyZWUuZmlyc3RfZGlydHkgPSBpICsgMTsKIAotICAgICAgICAg ICAgICAgIGlmICggbm9kZV9uZWVkX3NjcnViW25vZGVdID09IDAgKQotICAgICAgICAgICAgICAg ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgaWYgKCBwcmVlbXB0IHx8IChub2RlX25lZWRf c2NydWJbbm9kZV0gPT0gMCkgKQorICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAg ICAgICAgIH0KICAgICAgICAgfSB3aGlsZSAoIG9yZGVyLS0gIT0gMCApOwogICAgIH0KKworIG91 dDoKKyAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKKyAgICBub2RlX2NsZWFyKG5vZGUsIG5v ZGVfc2NydWJiaW5nKTsKKyAgICByZXR1cm4gbm9kZV90b19zY3J1YihmYWxzZSkgIT0gTlVNQV9O T19OT0RFOwogfQogCiAvKiBGcmVlIDJeQG9yZGVyIHNldCBvZiBwYWdlcy4gKi8KQEAgLTExNzYs OSArMTI3Miw2IEBAIHN0YXRpYyB2b2lkIGZyZWVfaGVhcF9wYWdlcygKICAgICBpZiAoIHRhaW50 ZWQgKQogICAgICAgICByZXNlcnZlX29mZmxpbmVkX3BhZ2UocGcpOwogCi0gICAgaWYgKCBuZWVk X3NjcnViICkKLSAgICAgICAgc2NydWJfZnJlZV9wYWdlcyhub2RlKTsKLQogICAgIHNwaW5fdW5s b2NrKCZoZWFwX2xvY2spOwogfQogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbW0uaCBi L3hlbi9pbmNsdWRlL3hlbi9tbS5oCmluZGV4IGUxZjljNDIuLmRkYzNmYjMgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hlbi9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCkBAIC0xNjAs NiArMTYwLDcgQEAgdm9pZCBpbml0X3hlbmhlYXBfcGFnZXMocGFkZHJfdCBwcywgcGFkZHJfdCBw ZSk7CiB2b2lkIHhlbmhlYXBfbWF4X21mbih1bnNpZ25lZCBsb25nIG1mbik7CiB2b2lkICphbGxv Y194ZW5oZWFwX3BhZ2VzKHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdz KTsKIHZvaWQgZnJlZV94ZW5oZWFwX3BhZ2VzKHZvaWQgKnYsIHVuc2lnbmVkIGludCBvcmRlcik7 Citib29sIHNjcnViX2ZyZWVfcGFnZXModm9pZCk7CiAjZGVmaW5lIGFsbG9jX3hlbmhlYXBfcGFn ZSgpIChhbGxvY194ZW5oZWFwX3BhZ2VzKDAsMCkpCiAjZGVmaW5lIGZyZWVfeGVuaGVhcF9wYWdl KHYpIChmcmVlX3hlbmhlYXBfcGFnZXModiwwKSkKIC8qIE1hcCBtYWNoaW5lIHBhZ2UgcmFuZ2Ug aW4gWGVuIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4gKi8KLS0gCjEuOC4zLjEKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK