From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v7 5/9] mm: Scrub memory from idle loop Date: Tue, 8 Aug 2017 17:45:03 -0400 Message-ID: <1502228707-31883-6-git-send-email-boris.ostrovsky@oracle.com> References: <1502228707-31883-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: <1502228707-31883-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, 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+Ci0tLQpDQzogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5j b20+Ci0tLQogeGVuL2FyY2gvYXJtL2RvbWFpbi5jICAgICAgfCAgIDggKystCiB4ZW4vYXJjaC94 ODYvZG9tYWluLmMgICAgICB8ICAgOCArKy0KIHhlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jIHwg ICA2ICstLQogeGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgICAgfCAxMTkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vbW0uaCAgICAg ICB8ICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJjaC9hcm0v ZG9tYWluLmMKaW5kZXggMmRjOGIwYS4uZDc5NjFiYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJt L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYwpAQCAtNTEsNyArNTEsMTMgQEAg dm9pZCBpZGxlX2xvb3Aodm9pZCkKICAgICAgICAgLyogQXJlIHdlIGhlcmUgZm9yIHJ1bm5pbmcg dmNwdSBjb250ZXh0IHRhc2tsZXRzLCBvciBmb3IgaWRsaW5nPyAqLwogICAgICAgICBpZiAoIHVu bGlrZWx5KHRhc2tsZXRfd29ya190b19kbyhjcHUpKSApCiAgICAgICAgICAgICBkb190YXNrbGV0 KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogVGVzdCBzb2Z0aXJxcyB0 d2ljZSAtLS0gZmlyc3QgdG8gc2VlIGlmIHNob3VsZCBldmVuIHRyeSBzY3J1YmJpbmcKKyAgICAg ICAgICogYW5kIHRoZW4sIGFmdGVyIGl0IGlzIGRvbmUsIHdoZXRoZXIgc29mdGlycXMgYmVjYW1l IHBlbmRpbmcKKyAgICAgICAgICogd2hpbGUgd2Ugd2VyZSBzY3J1YmJpbmcuCisgICAgICAgICAq LworICAgICAgICBlbHNlIGlmICggIXNvZnRpcnFfcGVuZGluZyhjcHUpICYmICFzY3J1Yl9mcmVl X3BhZ2VzKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgIXNvZnRpcnFfcGVuZGluZyhjcHUpICkK ICAgICAgICAgewogICAgICAgICAgICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsKICAgICAgICAgICAg IGlmICggY3B1X2lzX2hhbHRhYmxlKGNwdSkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Rv bWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IGJhYWY4MTUuLjliNGI5NTkgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWlu LmMKQEAgLTEyMiw3ICsxMjIsMTMgQEAgc3RhdGljIHZvaWQgaWRsZV9sb29wKHZvaWQpCiAgICAg ICAgIC8qIEFyZSB3ZSBoZXJlIGZvciBydW5uaW5nIHZjcHUgY29udGV4dCB0YXNrbGV0cywgb3Ig Zm9yIGlkbGluZz8gKi8KICAgICAgICAgaWYgKCB1bmxpa2VseSh0YXNrbGV0X3dvcmtfdG9fZG8o Y3B1KSkgKQogICAgICAgICAgICAgZG9fdGFza2xldCgpOwotICAgICAgICBlbHNlCisgICAgICAg IC8qCisgICAgICAgICAqIFRlc3Qgc29mdGlycXMgdHdpY2UgLS0tIGZpcnN0IHRvIHNlZSBpZiBz aG91bGQgZXZlbiB0cnkgc2NydWJiaW5nCisgICAgICAgICAqIGFuZCB0aGVuLCBhZnRlciBpdCBp cyBkb25lLCB3aGV0aGVyIHNvZnRpcnFzIGJlY2FtZSBwZW5kaW5nCisgICAgICAgICAqIHdoaWxl IHdlIHdlcmUgc2NydWJiaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgZWxzZSBpZiAoICFzb2Z0 aXJxX3BlbmRpbmcoY3B1KSAmJiAhc2NydWJfZnJlZV9wYWdlcygpICAmJgorICAgICAgICAgICAg ICAgICAgICAhc29mdGlycV9wZW5kaW5nKGNwdSkgKQogICAgICAgICAgICAgcG1faWRsZSgpOwog ICAgICAgICBkb19zb2Z0aXJxKCk7CiAgICAgICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4IDcxYmFl ZGUuLjA3ODNjMWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCkBAIC0xOCwxMiArMTgsMTIgQEAKICNpbmNsdWRl IDxhc20vaGFyZGlycS5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCi1zdGF0aWMgc3RydWN0 IHZjcHUgKl9fcmVhZF9tb3N0bHkgb3ZlcnJpZGU7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3Ry dWN0IHZjcHUgKiwgb3ZlcnJpZGUpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Y3B1ICptYXBj YWNoZV9jdXJyZW50X3ZjcHUodm9pZCkKIHsKICAgICAvKiBJbiB0aGUgY29tbW9uIGNhc2Ugd2Ug dXNlIHRoZSBtYXBjYWNoZSBvZiB0aGUgcnVubmluZyBWQ1BVLiAqLwotICAgIHN0cnVjdCB2Y3B1 ICp2ID0gb3ZlcnJpZGUgPzogY3VycmVudDsKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IHRoaXNfY3B1 KG92ZXJyaWRlKSA/OiBjdXJyZW50OwogCiAgICAgLyoKICAgICAgKiBXaGVuIGN1cnJlbnQgaXNu J3QgcHJvcGVybHkgc2V0IHVwIHlldCwgdGhpcyBpcyBlcXVpdmFsZW50IHRvCkBAIC01OSw3ICs1 OSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKm1hcGNhY2hlX2N1cnJlbnRfdmNwdSh2 b2lkKQogCiB2b2lkIF9faW5pdCBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KHN0cnVjdCB2Y3B1 ICp2KQogewotICAgIG92ZXJyaWRlID0gdjsKKyAgICB0aGlzX2NwdShvdmVycmlkZSkgPSB2Owog fQogCiAjZGVmaW5lIG1hcGNhY2hlX2wyX2VudHJ5KGUpICgoZSkgPj4gUEFHRVRBQkxFX09SREVS KQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgYi94ZW4vY29tbW9uL3BhZ2Vf YWxsb2MuYwppbmRleCA3ZmE4ODk2Li5iODg2OTgzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3Bh Z2VfYWxsb2MuYworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpAQCAtMTAxMywxNSArMTAx Myw4NiBAQCBzdGF0aWMgaW50IHJlc2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3QgcGFnZV9pbmZv ICpoZWFkKQogICAgIHJldHVybiBjb3VudDsKIH0KIAotc3RhdGljIHZvaWQgc2NydWJfZnJlZV9w YWdlcyh1bnNpZ25lZCBpbnQgbm9kZSkKK3N0YXRpYyBub2RlbWFza190IG5vZGVfc2NydWJiaW5n OworCisvKgorICogSWYgZ2V0X25vZGUgaXMgdHJ1ZSB0aGlzIHdpbGwgcmV0dXJuIGNsb3Nlc3Qg bm9kZSB0aGF0IG5lZWRzIHRvIGJlIHNjcnViYmVkLAorICogd2l0aCBhcHByb3ByaWF0ZSBiaXQg aW4gbm9kZV9zY3J1YmJpbmcgc2V0LgorICogSWYgZ2V0X25vZGUgaXMgbm90IHNldCwgdGhpcyB3 aWxsIHJldHVybiAqYSogbm9kZSB0aGF0IG5lZWRzIHRvIGJlIHNjcnViYmVkLgorICogbm9kZV9z Y3J1YmJpbmcgYml0bWFzayB3aWxsIG5vIGJlIHVwZGF0ZWQuCisgKiBJZiBubyBub2RlIG5lZWRz IHNjcnViYmluZyB0aGVuIE5VTUFfTk9fTk9ERSBpcyByZXR1cm5lZC4KKyAqLworc3RhdGljIHVu c2lnbmVkIGludCBub2RlX3RvX3NjcnViKGJvb2wgZ2V0X25vZGUpCiB7Ci0gICAgc3RydWN0IHBh Z2VfaW5mbyAqcGc7Ci0gICAgdW5zaWduZWQgaW50IHpvbmU7CisgICAgbm9kZWlkX3Qgbm9kZSA9 IGNwdV90b19ub2RlKHNtcF9wcm9jZXNzb3JfaWQoKSksIGxvY2FsX25vZGU7CisgICAgbm9kZWlk X3QgY2xvc2VzdCA9IE5VTUFfTk9fTk9ERTsKKyAgICB1OCBkaXN0LCBzaG9ydGVzdCA9IDB4ZmY7 CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykpOworICAgIGlmICggbm9k ZSA9PSBOVU1BX05PX05PREUgKQorICAgICAgICBub2RlID0gMDsKIAotICAgIGlmICggIW5vZGVf bmVlZF9zY3J1Yltub2RlXSApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIG5vZGVfbmVlZF9z Y3J1Yltub2RlXSAmJgorICAgICAgICAgKCFnZXRfbm9kZSB8fCAhbm9kZV90ZXN0X2FuZF9zZXQo bm9kZSwgbm9kZV9zY3J1YmJpbmcpKSApCisgICAgICAgIHJldHVybiBub2RlOworCisgICAgLyoK KyAgICAgKiBTZWUgaWYgdGhlcmUgYXJlIG1lbW9yeS1vbmx5IG5vZGVzIHRoYXQgbmVlZCBzY3J1 YmJpbmcgYW5kIGNob29zZQorICAgICAqIHRoZSBjbG9zZXN0IG9uZS4KKyAgICAgKi8KKyAgICBs b2NhbF9ub2RlID0gbm9kZTsKKyAgICBmb3IgKCA7IDsgKQorICAgIHsKKyAgICAgICAgZG8gewor ICAgICAgICAgICAgbm9kZSA9IGN5Y2xlX25vZGUobm9kZSwgbm9kZV9vbmxpbmVfbWFwKTsKKyAg ICAgICAgfSB3aGlsZSAoICFjcHVtYXNrX2VtcHR5KCZub2RlX3RvX2NwdW1hc2sobm9kZSkpICYm CisgICAgICAgICAgICAgICAgICAobm9kZSAhPSBsb2NhbF9ub2RlKSApOworCisgICAgICAgIGlm ICggbm9kZSA9PSBsb2NhbF9ub2RlICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlm ICggbm9kZV9uZWVkX3NjcnViW25vZGVdICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAh Z2V0X25vZGUgKQorICAgICAgICAgICAgICAgIHJldHVybiBub2RlOworCisgICAgICAgICAgICBk aXN0ID0gX19ub2RlX2Rpc3RhbmNlKGxvY2FsX25vZGUsIG5vZGUpOworCisgICAgICAgICAgICAv KgorICAgICAgICAgICAgICogR3JhYiB0aGUgbm9kZSByaWdodCBhd2F5LiBJZiB3ZSBmaW5kIGEg Y2xvc2VyIG5vZGUgbGF0ZXIgd2Ugd2lsbAorICAgICAgICAgICAgICogcmVsZWFzZSB0aGlzIG9u ZS4gV2hpbGUgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhbm90aGVyIENQVSB3aWxsCisgICAgICAg ICAgICAgKiBub3QgYmUgYWJsZSB0byBzY3J1YiB0aGF0IG5vZGUgd2hlbiBpdCBpcyBzZWFyY2hp bmcgZm9yIHNjcnViIHdvcmsKKyAgICAgICAgICAgICAqIGF0IHRoZSBzYW1lIHRpbWUgaXQgd2ls bCBiZSBhYmxlIHRvIGRvIHNvIG5leHQgdGltZSBpdCB3YWtlcyB1cC4KKyAgICAgICAgICAgICAq IFRoZSBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBwZXJmb3JtIHRoaXMgc2VhcmNoIHVuZGVyIGEg bG9jayBidXQKKyAgICAgICAgICAgICAqIHRoZW4gd2UnZCBuZWVkIHRvIHRha2UgdGhpcyBsb2Nr IGV2ZXJ5IHRpbWUgd2UgY29tZSBpbiBoZXJlLgorICAgICAgICAgICAgICovCisgICAgICAgICAg ICBpZiAoIChkaXN0IDwgc2hvcnRlc3QgfHwgY2xvc2VzdCA9PSBOVU1BX05PX05PREUpICYmCisg ICAgICAgICAgICAgICAgICFub2RlX3Rlc3RfYW5kX3NldChub2RlLCBub2RlX3NjcnViYmluZykg KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICggY2xvc2VzdCAhPSBOVU1BX05P X05PREUgKQorICAgICAgICAgICAgICAgICAgICBub2RlX2NsZWFyKGNsb3Nlc3QsIG5vZGVfc2Ny dWJiaW5nKTsKKyAgICAgICAgICAgICAgICBzaG9ydGVzdCA9IGRpc3Q7CisgICAgICAgICAgICAg ICAgY2xvc2VzdCA9IG5vZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAg ICByZXR1cm4gY2xvc2VzdDsKK30KKworYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCit7Cisg ICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CisgICAgdW5zaWduZWQgaW50IHpvbmU7CisgICAgdW5z aWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBib29sIHByZWVtcHQgPSBm YWxzZTsKKyAgICBub2RlaWRfdCBub2RlOworICAgIHVuc2lnbmVkIGludCBjbnQgPSAwOworICAK KyAgICBub2RlID0gbm9kZV90b19zY3J1Yih0cnVlKTsKKyAgICBpZiAoIG5vZGUgPT0gTlVNQV9O T19OT0RFICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworIAorICAgIHNwaW5fbG9jaygmaGVhcF9s b2NrKTsKIAogICAgIGZvciAoIHpvbmUgPSAwOyB6b25lIDwgTlJfWk9ORVM7IHpvbmUrKyApCiAg ICAgewpAQCAtMTA0NCwxNyArMTExNSw0MiBAQCBzdGF0aWMgdm9pZCBzY3J1Yl9mcmVlX3BhZ2Vz KHVuc2lnbmVkIGludCBub2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgc2NydWJfb25lX3Bh Z2UoJnBnW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHBnW2ldLmNvdW50X2luZm8gJj0g flBHQ19uZWVkX3NjcnViOwogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9uZWVkX3NjcnVi W25vZGVdLS07CisgICAgICAgICAgICAgICAgICAgICAgICBjbnQgKz0gMTAwOyAvKiBzY3J1YmJl ZCBwYWdlcyBhZGQgaGVhdmllciB3ZWlnaHQuICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgY250Kys7CisK KyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogU2NydWIgYSBm ZXcgKDgpIHBhZ2VzIGJlZm9yZSBiZWNvbWluZyBlbGlnaWJsZSBmb3IKKyAgICAgICAgICAgICAg ICAgICAgICogcHJlZW1wdGlvbi4gQnV0IGFsc28gY291bnQgbm9uLXNjcnViYmluZyBsb29wIGl0 ZXJhdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICogc28gdGhhdCB3ZSBkb24ndCBnZXQgc3R1 Y2sgaGVyZSB3aXRoIGFuIGFsbW9zdCBjbGVhbgorICAgICAgICAgICAgICAgICAgICAgKiBoZWFw LgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYgKCBjbnQg PiA4MDAgJiYgc29mdGlycV9wZW5kaW5nKGNwdSkgKQorICAgICAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgICAgICBwcmVlbXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQog Ci0gICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3Jk ZXIpKTsKLSAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBub2RlLCB6b25l LCBvcmRlciwgSU5WQUxJRF9ESVJUWV9JRFgpOworICAgICAgICAgICAgICAgIGlmICggaSA+PSAo MVUgPDwgb3JkZXIpIC0gMSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICBwYWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOworICAgICAgICAg ICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3NjcnViKHBnLCBub2RlLCB6b25lLCBvcmRlciwgSU5W QUxJRF9ESVJUWV9JRFgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuZmlyc3RfZGlydHkgPSBpICsgMTsKIAot ICAgICAgICAgICAgICAgIGlmICggbm9kZV9uZWVkX3NjcnViW25vZGVdID09IDAgKQotICAgICAg ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgaWYgKCBwcmVlbXB0IHx8IChu b2RlX25lZWRfc2NydWJbbm9kZV0gPT0gMCkgKQorICAgICAgICAgICAgICAgICAgICBnb3RvIG91 dDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSB3aGlsZSAoIG9yZGVyLS0gIT0gMCApOwogICAg IH0KKworIG91dDoKKyAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKKyAgICBub2RlX2NsZWFy KG5vZGUsIG5vZGVfc2NydWJiaW5nKTsKKyAgICByZXR1cm4gbm9kZV90b19zY3J1YihmYWxzZSkg IT0gTlVNQV9OT19OT0RFOwogfQogCiAvKiBGcmVlIDJeQG9yZGVyIHNldCBvZiBwYWdlcy4gKi8K QEAgLTExNjYsOSArMTI2Miw2IEBAIHN0YXRpYyB2b2lkIGZyZWVfaGVhcF9wYWdlcygKICAgICBp ZiAoIHRhaW50ZWQgKQogICAgICAgICByZXNlcnZlX29mZmxpbmVkX3BhZ2UocGcpOwogCi0gICAg aWYgKCBuZWVkX3NjcnViICkKLSAgICAgICAgc2NydWJfZnJlZV9wYWdlcyhub2RlKTsKLQogICAg IHNwaW5fdW5sb2NrKCZoZWFwX2xvY2spOwogfQogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 ZW4vbW0uaCBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCmluZGV4IGUxZjljNDIuLmRkYzNmYjMgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tbS5o CkBAIC0xNjAsNiArMTYwLDcgQEAgdm9pZCBpbml0X3hlbmhlYXBfcGFnZXMocGFkZHJfdCBwcywg cGFkZHJfdCBwZSk7CiB2b2lkIHhlbmhlYXBfbWF4X21mbih1bnNpZ25lZCBsb25nIG1mbik7CiB2 b2lkICphbGxvY194ZW5oZWFwX3BhZ2VzKHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50 IG1lbWZsYWdzKTsKIHZvaWQgZnJlZV94ZW5oZWFwX3BhZ2VzKHZvaWQgKnYsIHVuc2lnbmVkIGlu dCBvcmRlcik7Citib29sIHNjcnViX2ZyZWVfcGFnZXModm9pZCk7CiAjZGVmaW5lIGFsbG9jX3hl bmhlYXBfcGFnZSgpIChhbGxvY194ZW5oZWFwX3BhZ2VzKDAsMCkpCiAjZGVmaW5lIGZyZWVfeGVu aGVhcF9wYWdlKHYpIChmcmVlX3hlbmhlYXBfcGFnZXModiwwKSkKIC8qIE1hcCBtYWNoaW5lIHBh Z2UgcmFuZ2UgaW4gWGVuIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4gKi8KLS0gCjEuOC4zLjEKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK