From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,4/6] x86/MCE: Make number of MCA banks per_cpu From: Yazen Ghannam Message-Id: <20190411201743.43195-5-Yazen.Ghannam@amd.com> Date: Thu, 11 Apr 2019 20:18:03 +0000 To: "linux-edac@vger.kernel.org" Cc: "Ghannam, Yazen" , "linux-kernel@vger.kernel.org" , "bp@suse.de" , "tony.luck@intel.com" , "x86@kernel.org" List-ID: RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpUaGUgbnVtYmVy IG9mIE1DQSBiYW5rcyBpcyBwcm92aWRlZCBwZXIgbG9naWNhbCBDUFUuIEhpc3RvcmljYWxseSwg dGhpcw0KbnVtYmVyIGhhcyBiZWVuIHRoZSBzYW1lIGFjcm9zcyBhbGwgQ1BVcywgYnV0IHRoaXMg aXMgbm90IGFuDQphcmNoaXRlY3R1cmFsIGd1YXJhbnRlZS4gRnV0dXJlIEFNRCBzeXN0ZW1zIG1h eSBoYXZlIE1DQSBiYW5rIGNvdW50cw0KdGhhdCB2YXJ5IGJldHdlZW4gbG9naWNhbCBDUFVzIGlu IGEgc3lzdGVtLg0KDQpUaGlzIGlzc3VlIHdhcyBwYXJ0aWFsbHkgYWRkcmVzc2VkIGluDQoNCmNv bW1pdCAoIjAwNmMwNzcwNDFkYyB4ODYvbWNlOiBIYW5kbGUgdmFyeWluZyBNQ0EgYmFuayBjb3Vu dHMiKQ0KDQpieSBhbGxvY2F0aW5nIHN0cnVjdHVyZXMgdXNpbmcgdGhlIG1heGltdW0gbnVtYmVy IG9mIE1DQSBiYW5rcyBhbmQgYnkNCnNhdmluZyB0aGUgbWF4aW11bSBNQ0EgYmFuayBjb3VudCBp biBhIHN5c3RlbSBhcyB0aGUgZ2xvYmFsIGNvdW50LiBUaGlzDQptZWFucyB0aGF0IHNvbWUgZXh0 cmEgc3RydWN0dXJlcyBhcmUgYWxsb2NhdGVkLiBBbHNvLCB0aGlzIG1lYW5zIHRoYXQNCkNQVXMg d2lsbCBzcGVuZCBtb3JlIHRpbWUgaW4gdGhlICNNQyBhbmQgb3RoZXIgaGFuZGxlcnMgY2hlY2tp bmcgZXh0cmENCk1DQSBiYW5rcy4NCg0KRGVmaW5lIHRoZSBudW1iZXIgb2YgTUNBIGJhbmtzIGFz IGEgcGVyX2NwdSB2YXJpYWJsZS4gUmVwbGFjZSBhbGwgdXNlcw0Kb2YgbWNhX2NmZy5iYW5rcyB3 aXRoIHRoaXMuDQoNCkFsc28sIHVzZSB0aGUgcGVyX2NwdSBiYW5rIGNvdW50IHdoZW4gYWxsb2Nh dGluZyBwZXJfY3B1IHN0cnVjdHVyZXMuDQoNClByaW50IHRoZSBudW1iZXIgb2YgYmFua3MgcGVy IENQVSBhcyBhIGRlYnVnIG1lc3NhZ2UgZm9yIHRob3NlIHdobyBtYXkNCmJlIGludGVyZXN0ZWQu DQoNClNpZ25lZC1vZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlhemVuLmdoYW5uYW1AYW1kLmNvbT4N Ci0tLQ0KTGluazoNCmh0dHBzOi8vbGttbC5rZXJuZWwub3JnL3IvMjAxOTA0MDgxNDEyMDUuMTIz NzYtNS1ZYXplbi5HaGFubmFtQGFtZC5jb20NCg0KdjEtPnYyOg0KKiBEcm9wIGV4cG9ydCBvZiBu ZXcgdmFyaWFibGUgYW5kIGxlYXZlIGluamVjdG9yIGNvZGUgYXMtaXMuDQoqIEFkZCAibWNlXyIg cHJlZml4IHRvIG5ldyAibnVtX2JhbmtzIiB2YXJpYWJsZS4NCg0KIGFyY2gveDg2L2tlcm5lbC9j cHUvbWNlL2FtZC5jICAgICAgfCAxNiArKysrKy0tLS0tDQogYXJjaC94ODYva2VybmVsL2NwdS9t Y2UvY29yZS5jICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KIGFyY2gv eDg2L2tlcm5lbC9jcHUvbWNlL2ludGVybmFsLmggfCAgMiArLQ0KIDMgZmlsZXMgY2hhbmdlZCwg MzYgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pDQoNCi0tIA0KMi4xNy4xCgpkaWZmIC0t Z2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvYW1kLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1 L21jZS9hbWQuYw0KaW5kZXggZjA2NDRiNTk4NDhkLi4yYWVkOTRmM2EyM2UgMTAwNjQ0DQotLS0g YS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9hbWQuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2Nw dS9tY2UvYW1kLmMNCkBAIC00OTMsNyArNDkzLDcgQEAgc3RhdGljIHUzMiBnZXRfYmxvY2tfYWRk cmVzcyh1MzIgY3VycmVudF9hZGRyLCB1MzIgbG93LCB1MzIgaGlnaCwNCiB7DQogCXUzMiBhZGRy ID0gMCwgb2Zmc2V0ID0gMDsNCiANCi0JaWYgKChiYW5rID49IG1jYV9jZmcuYmFua3MpIHx8IChi bG9jayA+PSBOUl9CTE9DS1MpKQ0KKwlpZiAoKGJhbmsgPj0gcGVyX2NwdShtY2VfbnVtX2Jhbmtz LCBjcHUpKSB8fCAoYmxvY2sgPj0gTlJfQkxPQ0tTKSkNCiAJCXJldHVybiBhZGRyOw0KIA0KIAlp ZiAobWNlX2ZsYWdzLnNtY2EpDQpAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgbWNlX2FtZF9mZWF0 dXJlX2luaXQoc3RydWN0IGNwdWluZm9feDg2ICpjKQ0KIA0KIAlkaXNhYmxlX2Vycl90aHJlc2hv bGRpbmcoYyk7DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsgPCBtY2FfY2ZnLmJhbmtzOyArK2Jh bmspIHsNCisJZm9yIChiYW5rID0gMDsgYmFuayA8IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5r cyk7ICsrYmFuaykgew0KIAkJaWYgKG1jZV9mbGFncy5zbWNhKQ0KIAkJCXNtY2FfY29uZmlndXJl KGJhbmssIGNwdSk7DQogDQpAQCAtOTQ4LDcgKzk0OCw3IEBAIHN0YXRpYyB2b2lkIGFtZF9kZWZl cnJlZF9lcnJvcl9pbnRlcnJ1cHQodm9pZCkNCiB7DQogCXVuc2lnbmVkIGludCBiYW5rOw0KIA0K LQlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgbWNhX2NmZy5iYW5rczsgKytiYW5rKQ0KKwlmb3IgKGJh bmsgPSAwOyBiYW5rIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgKytiYW5rKQ0KIAkJ bG9nX2Vycm9yX2RlZmVycmVkKGJhbmspOw0KIH0NCiANCkBAIC05ODksNyArOTg5LDcgQEAgc3Rh dGljIHZvaWQgYW1kX3RocmVzaG9sZF9pbnRlcnJ1cHQodm9pZCkNCiAJc3RydWN0IHRocmVzaG9s ZF9ibG9jayAqZmlyc3RfYmxvY2sgPSBOVUxMLCAqYmxvY2sgPSBOVUxMLCAqdG1wID0gTlVMTDsN CiAJdW5zaWduZWQgaW50IGJhbmssIGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsNCiANCi0JZm9y IChiYW5rID0gMDsgYmFuayA8IG1jYV9jZmcuYmFua3M7ICsrYmFuaykgew0KKwlmb3IgKGJhbmsg PSAwOyBiYW5rIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgKytiYW5rKSB7DQogCQlp ZiAoIShwZXJfY3B1KGJhbmtfbWFwLCBjcHUpICYgKDEgPDwgYmFuaykpKQ0KIAkJCWNvbnRpbnVl Ow0KIA0KQEAgLTExNzYsNyArMTE3Niw3IEBAIHN0YXRpYyBpbnQgYWxsb2NhdGVfdGhyZXNob2xk X2Jsb2Nrcyh1bnNpZ25lZCBpbnQgY3B1LCB1bnNpZ25lZCBpbnQgYmFuaywNCiAJdTMyIGxvdywg aGlnaDsNCiAJaW50IGVycjsNCiANCi0JaWYgKChiYW5rID49IG1jYV9jZmcuYmFua3MpIHx8IChi bG9jayA+PSBOUl9CTE9DS1MpKQ0KKwlpZiAoKGJhbmsgPj0gcGVyX2NwdShtY2VfbnVtX2Jhbmtz LCBjcHUpKSB8fCAoYmxvY2sgPj0gTlJfQkxPQ0tTKSkNCiAJCXJldHVybiAwOw0KIA0KIAlpZiAo cmRtc3Jfc2FmZV9vbl9jcHUoY3B1LCBhZGRyZXNzLCAmbG93LCAmaGlnaCkpDQpAQCAtMTQxMCw3 ICsxNDEwLDcgQEAgaW50IG1jZV90aHJlc2hvbGRfcmVtb3ZlX2RldmljZSh1bnNpZ25lZCBpbnQg Y3B1KQ0KIHsNCiAJdW5zaWduZWQgaW50IGJhbms7DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsg PCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspIHsNCisJZm9yIChiYW5rID0gMDsgYmFuayA8IHBlcl9j cHUobWNlX251bV9iYW5rcywgY3B1KTsgKytiYW5rKSB7DQogCQlpZiAoIShwZXJfY3B1KGJhbmtf bWFwLCBjcHUpICYgKDEgPDwgYmFuaykpKQ0KIAkJCWNvbnRpbnVlOw0KIAkJdGhyZXNob2xkX3Jl bW92ZV9iYW5rKGNwdSwgYmFuayk7DQpAQCAtMTQzMSwxNCArMTQzMSwxNCBAQCBpbnQgbWNlX3Ro cmVzaG9sZF9jcmVhdGVfZGV2aWNlKHVuc2lnbmVkIGludCBjcHUpDQogCWlmIChicCkNCiAJCXJl dHVybiAwOw0KIA0KLQlicCA9IGtjYWxsb2MobWNhX2NmZy5iYW5rcywgc2l6ZW9mKHN0cnVjdCB0 aHJlc2hvbGRfYmFuayAqKSwNCisJYnAgPSBrY2FsbG9jKHBlcl9jcHUobWNlX251bV9iYW5rcywg Y3B1KSwgc2l6ZW9mKHN0cnVjdCB0aHJlc2hvbGRfYmFuayAqKSwNCiAJCSAgICAgR0ZQX0tFUk5F TCk7DQogCWlmICghYnApDQogCQlyZXR1cm4gLUVOT01FTTsNCiANCiAJcGVyX2NwdSh0aHJlc2hv bGRfYmFua3MsIGNwdSkgPSBicDsNCiANCi0JZm9yIChiYW5rID0gMDsgYmFuayA8IG1jYV9jZmcu YmFua3M7ICsrYmFuaykgew0KKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgcGVyX2NwdShtY2VfbnVt X2JhbmtzLCBjcHUpOyArK2JhbmspIHsNCiAJCWlmICghKHBlcl9jcHUoYmFua19tYXAsIGNwdSkg JiAoMSA8PCBiYW5rKSkpDQogCQkJY29udGludWU7DQogCQllcnIgPSB0aHJlc2hvbGRfY3JlYXRl X2JhbmsoY3B1LCBiYW5rKTsNCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9j b3JlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCmluZGV4IGFhNDFmNDFlNTkz MS4uMGZlMjkxNDBlY2FiIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29y ZS5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCkBAIC02NCw2ICs2NCw4 IEBAIHN0YXRpYyBERUZJTkVfTVVURVgobWNlX3N5c2ZzX211dGV4KTsNCiANCiBERUZJTkVfUEVS X0NQVSh1bnNpZ25lZCwgbWNlX2V4Y2VwdGlvbl9jb3VudCk7DQogDQorREVGSU5FX1BFUl9DUFVf UkVBRF9NT1NUTFkodTgsIG1jZV9udW1fYmFua3MpOw0KKw0KIHN0cnVjdCBtY2VfYmFuayB7DQog CXU2NAljdGw7CS8qIHN1YmV2ZW50cyB0byBlbmFibGUgKi8NCiAJYm9vbAlpbml0OwkvKiBpbml0 aWFsaXNlIGJhbms/ICovDQpAQCAtNjk5LDcgKzcwMSw3IEBAIGJvb2wgbWFjaGluZV9jaGVja19w b2xsKGVudW0gbWNwX2ZsYWdzIGZsYWdzLCBtY2VfYmFua3NfdCAqYikNCiAJaWYgKGZsYWdzICYg TUNQX1RJTUVTVEFNUCkNCiAJCW0udHNjID0gcmR0c2MoKTsNCiANCi0JZm9yIChpID0gMDsgaSA8 IG1jYV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19jcHVfcmVhZCht Y2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQlpZiAoIXRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtp XS5jdGwgfHwgIXRlc3RfYml0KGksICpiKSkNCiAJCQljb250aW51ZTsNCiANCkBAIC04MDEsNyAr ODAzLDcgQEAgc3RhdGljIGludCBtY2Vfbm9fd2F5X291dChzdHJ1Y3QgbWNlICptLCBjaGFyICoq bXNnLCB1bnNpZ25lZCBsb25nICp2YWxpZHAsDQogCWNoYXIgKnRtcDsNCiAJaW50IGk7DQogDQot CWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8 IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJbS0+c3RhdHVzID0gbWNl X3JkbXNybChtc3Jfb3BzLnN0YXR1cyhpKSk7DQogCQlpZiAoIShtLT5zdGF0dXMgJiBNQ0lfU1RB VFVTX1ZBTCkpDQogCQkJY29udGludWU7DQpAQCAtMTA4MSw3ICsxMDgzLDcgQEAgc3RhdGljIHZv aWQgbWNlX2NsZWFyX3N0YXRlKHVuc2lnbmVkIGxvbmcgKnRvY2xlYXIpDQogew0KIAlpbnQgaTsN CiANCi0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAw OyBpIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQlpZiAodGVzdF9i aXQoaSwgdG9jbGVhcikpDQogCQkJbWNlX3dybXNybChtc3Jfb3BzLnN0YXR1cyhpKSwgMCk7DQog CX0NCkBAIC0xMTM4LDcgKzExNDAsNyBAQCBzdGF0aWMgdm9pZCBfX21jX3NjYW5fYmFua3Moc3Ry dWN0IG1jZSAqbSwgc3RydWN0IG1jZSAqZmluYWwsDQogCXN0cnVjdCBtY2FfY29uZmlnICpjZmcg PSAmbWNhX2NmZzsNCiAJaW50IHNldmVyaXR5LCBpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgY2Zn LT5iYW5rczsgaSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1f YmFua3MpOyBpKyspIHsNCiAJCV9fY2xlYXJfYml0KGksIHRvY2xlYXIpOw0KIAkJaWYgKCF0ZXN0 X2JpdChpLCB2YWxpZF9iYW5rcykpDQogCQkJY29udGludWU7DQpAQCAtMTQ3OCwxNSArMTQ4MCwx NiBAQCBFWFBPUlRfU1lNQk9MX0dQTChtY2Vfbm90aWZ5X2lycSk7DQogDQogc3RhdGljIGludCBf X21jaGVja19jcHVfbWNlX2JhbmtzX2luaXQodm9pZCkNCiB7DQorCXU4IG5fYmFua3MgPSB0aGlz X2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOw0KIAlpbnQgaTsNCiANCiAJcGVyX2NwdShtY2VfYmFu a3MsIHNtcF9wcm9jZXNzb3JfaWQoKSkgPQ0KLQkJa2NhbGxvYyhNQVhfTlJfQkFOS1MsIHNpemVv ZihzdHJ1Y3QgbWNlX2JhbmspLCBHRlBfS0VSTkVMKTsNCisJCWtjYWxsb2Mobl9iYW5rcywgc2l6 ZW9mKHN0cnVjdCBtY2VfYmFuayksIEdGUF9LRVJORUwpOw0KIA0KIAlpZiAoIXRoaXNfY3B1X3Jl YWQobWNlX2JhbmtzKSkNCiAJCXJldHVybiAtRU5PTUVNOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwg TUFYX05SX0JBTktTOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IG5fYmFua3M7IGkrKykgew0K IAkJc3RydWN0IG1jZV9iYW5rICpiID0gJnRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXTsNCiAN CiAJCWItPmN0bCA9IC0xVUxMOw0KQEAgLTE1MDcsMTAgKzE1MTAsMTUgQEAgc3RhdGljIGludCBf X21jaGVja19jcHVfY2FwX2luaXQodm9pZCkNCiAJcmRtc3JsKE1TUl9JQTMyX01DR19DQVAsIGNh cCk7DQogDQogCWIgPSBjYXAgJiBNQ0dfQkFOS0NOVF9NQVNLOw0KLQlpZiAoV0FSTl9PTl9PTkNF KGIgPiBNQVhfTlJfQkFOS1MpKQ0KKwlwcl9kZWJ1ZygiQ1BVJWQgc3VwcG9ydHMgJWQgTUNFIGJh bmtzXG4iLCBzbXBfcHJvY2Vzc29yX2lkKCksIGIpOw0KKw0KKwlpZiAoYiA+IE1BWF9OUl9CQU5L Uykgew0KKwkJcHJfd2FybigiQ1BVJWQ6IFVzaW5nIG9ubHkgJXUgbWFjaGluZSBjaGVjayBiYW5r cyBvdXQgb2YgJXVcbiIsDQorCQkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBNQVhfTlJfQkFOS1MsIGIp Ow0KIAkJYiA9IE1BWF9OUl9CQU5LUzsNCisJfQ0KIA0KLQltY2FfY2ZnLmJhbmtzID0gbWF4KG1j YV9jZmcuYmFua3MsIGIpOw0KKwl0aGlzX2NwdV93cml0ZShtY2VfbnVtX2JhbmtzLCBiKTsNCiAN CiAJaWYgKCF0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcykpIHsNCiAJCWludCBlcnIgPSBfX21jaGVj a19jcHVfbWNlX2JhbmtzX2luaXQoKTsNCkBAIC0xNTU0LDcgKzE1NjIsNyBAQCBzdGF0aWMgdm9p ZCBfX21jaGVja19jcHVfaW5pdF9jbGVhcl9iYW5rcyh2b2lkKQ0KIHsNCiAJaW50IGk7DQogDQot CWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8 IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJc3RydWN0IG1jZV9iYW5r ICpiID0gJnRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXTsNCiANCiAJCWlmICghYi0+aW5pdCkN CkBAIC0xNjA0LDcgKzE2MTIsNyBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWly a3Moc3RydWN0IGNwdWluZm9feDg2ICpjKQ0KIA0KIAkvKiBUaGlzIHNob3VsZCBiZSBkaXNhYmxl ZCBieSB0aGUgQklPUywgYnV0IGlzbid0IGFsd2F5cyAqLw0KIAlpZiAoYy0+eDg2X3ZlbmRvciA9 PSBYODZfVkVORE9SX0FNRCkgew0KLQkJaWYgKGMtPng4NiA9PSAxNSAmJiBjZmctPmJhbmtzID4g NCkgew0KKwkJaWYgKGMtPng4NiA9PSAxNSAmJiB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3Mp ID4gNCkgew0KIAkJCS8qDQogCQkJICogZGlzYWJsZSBHQVJUIFRCTCB3YWxrIGVycm9yIHJlcG9y dGluZywgd2hpY2gNCiAJCQkgKiB0cmlwcyBvZmYgaW5jb3JyZWN0bHkgd2l0aCB0aGUgSU9NTVUg JiAzd2FyZQ0KQEAgLTE2MjMsNyArMTYzMSw3IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2Fw cGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpDQogCQkgKiBWYXJpb3VzIEs3cyB3aXRo IGJyb2tlbiBiYW5rIDAgYXJvdW5kLiBBbHdheXMgZGlzYWJsZQ0KIAkJICogYnkgZGVmYXVsdC4N CiAJCSAqLw0KLQkJaWYgKGMtPng4NiA9PSA2ICYmIGNmZy0+YmFua3MgPiAwKQ0KKwkJaWYgKGMt Png4NiA9PSA2ICYmIHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykgPiAwKQ0KIAkJCXRoaXNf Y3B1X3JlYWQobWNlX2JhbmtzKVswXS5jdGwgPSAwOw0KIA0KIAkJLyoNCkBAIC0xNjQ1LDcgKzE2 NTMsNyBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0IGNwdWlu Zm9feDg2ICpjKQ0KIAkJICogdmFsaWQgZXZlbnQgbGF0ZXIsIG1lcmVseSBkb24ndCB3cml0ZSBD VEwwLg0KIAkJICovDQogDQotCQlpZiAoYy0+eDg2ID09IDYgJiYgYy0+eDg2X21vZGVsIDwgMHgx QSAmJiBjZmctPmJhbmtzID4gMCkNCisJCWlmIChjLT54ODYgPT0gNiAmJiBjLT54ODZfbW9kZWwg PCAweDFBICYmIHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykgPiAwKQ0KIAkJCXRoaXNfY3B1 X3JlYWQobWNlX2JhbmtzKVswXS5pbml0ID0gMDsNCiANCiAJCS8qDQpAQCAtMTg3MSw3ICsxODc5 LDcgQEAgc3RhdGljIHZvaWQgX19tY2VfZGlzYWJsZV9iYW5rKHZvaWQgKmFyZykNCiANCiB2b2lk IG1jZV9kaXNhYmxlX2JhbmsoaW50IGJhbmspDQogew0KLQlpZiAoYmFuayA+PSBtY2FfY2ZnLmJh bmtzKSB7DQorCWlmIChiYW5rID49IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykpIHsNCiAJ CXByX3dhcm4oRldfQlVHDQogCQkJIklnbm9yaW5nIHJlcXVlc3QgdG8gZGlzYWJsZSBpbnZhbGlk IE1DQSBiYW5rICVkLlxuIiwNCiAJCQliYW5rKTsNCkBAIC0xOTU5LDcgKzE5NjcsNyBAQCBzdGF0 aWMgdm9pZCBtY2VfZGlzYWJsZV9lcnJvcl9yZXBvcnRpbmcodm9pZCkNCiB7DQogCWludCBpOw0K IA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7DQorCWZvciAoaSA9IDA7 IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyBpKyspIHsNCiAJCXN0cnVjdCBtY2Vf YmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQogDQogCQlpZiAoYi0+aW5p dCkNCkBAIC0yMDcwLDcgKzIwNzgsNyBAQCBzdGF0aWMgc3NpemVfdCBzaG93X2Jhbmsoc3RydWN0 IGRldmljZSAqcywgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQogCXN0cnVjdCBtY2Vf YmFuayAqYjsNCiAJdTggYmFuayA9IGF0dHJfdG9fYmFuayhhdHRyKS0+YmFuazsNCiANCi0JaWYg KGJhbmsgPj0gbWNhX2NmZy5iYW5rcykNCisJaWYgKGJhbmsgPj0gcGVyX2NwdShtY2VfbnVtX2Jh bmtzLCBzLT5pZCkpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCiAJYiA9ICZwZXJfY3B1KG1jZV9i YW5rcywgcy0+aWQpW2JhbmtdOw0KQEAgLTIwODgsNyArMjA5Niw3IEBAIHN0YXRpYyBzc2l6ZV90 IHNldF9iYW5rKHN0cnVjdCBkZXZpY2UgKnMsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LA0KIAlpZiAoa3N0cnRvdTY0KGJ1ZiwgMCwgJm5ldykgPCAwKQ0KIAkJcmV0dXJuIC1FSU5WQUw7 DQogDQotCWlmIChiYW5rID49IG1jYV9jZmcuYmFua3MpDQorCWlmIChiYW5rID49IHBlcl9jcHUo bWNlX251bV9iYW5rcywgcy0+aWQpKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQogCWIgPSAmcGVy X2NwdShtY2VfYmFua3MsIHMtPmlkKVtiYW5rXTsNCkBAIC0yMjQwLDcgKzIyNDgsNyBAQCBzdGF0 aWMgaW50IG1jZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGludCBjcHUpDQogCQlpZiAoZXJyKQ0K IAkJCWdvdG8gZXJyb3I7DQogCX0NCi0JZm9yIChqID0gMDsgaiA8IG1jYV9jZmcuYmFua3M7IGor Kykgew0KKwlmb3IgKGogPSAwOyBqIDwgcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUpOyBqKysp IHsNCiAJCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZtY2VfYmFua19kZXZzW2pdLmF0 dHIpOw0KIAkJaWYgKGVycikNCiAJCQlnb3RvIGVycm9yMjsNCkBAIC0yMjcyLDcgKzIyODAsNyBA QCBzdGF0aWMgdm9pZCBtY2VfZGV2aWNlX3JlbW92ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAlmb3Ig KGkgPSAwOyBtY2VfZGV2aWNlX2F0dHJzW2ldOyBpKyspDQogCQlkZXZpY2VfcmVtb3ZlX2ZpbGUo ZGV2LCBtY2VfZGV2aWNlX2F0dHJzW2ldKTsNCiANCi0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcu YmFua3M7IGkrKykNCisJZm9yIChpID0gMDsgaSA8IHBlcl9jcHUobWNlX251bV9iYW5rcywgY3B1 KTsgaSsrKQ0KIAkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNbaV0uYXR0 cik7DQogDQogCWRldmljZV91bnJlZ2lzdGVyKGRldik7DQpAQCAtMjMwMSw3ICsyMzA5LDcgQEAg c3RhdGljIHZvaWQgbWNlX3JlZW5hYmxlX2NwdSh2b2lkKQ0KIA0KIAlpZiAoIWNwdWhwX3Rhc2tz X2Zyb3plbikNCiAJCWNtY2lfcmVlbmFibGUoKTsNCi0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcu YmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2Jh bmtzKTsgaSsrKSB7DQogCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmdGhpc19jcHVfcmVhZChtY2Vf YmFua3MpW2ldOw0KIA0KIAkJaWYgKGItPmluaXQpDQpAQCAtMjQ4OSw4ICsyNDk3LDYgQEAgRVhQ T1JUX1NZTUJPTF9HUEwobWNzYWZlX2tleSk7DQogDQogc3RhdGljIGludCBfX2luaXQgbWNoZWNr X2xhdGVfaW5pdCh2b2lkKQ0KIHsNCi0JcHJfaW5mbygiVXNpbmcgJWQgTUNFIGJhbmtzXG4iLCBt Y2FfY2ZnLmJhbmtzKTsNCi0NCiAJaWYgKG1jYV9jZmcucmVjb3ZlcnkpDQogCQlzdGF0aWNfYnJh bmNoX2luYygmbWNzYWZlX2tleSk7DQogDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2Nw dS9tY2UvaW50ZXJuYWwuaCBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2ludGVybmFsLmgNCmlu ZGV4IDAzMmQ1MmM2NjYxNi4uNjMyZTJlNTdjMWQwIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2Vy bmVsL2NwdS9tY2UvaW50ZXJuYWwuaA0KKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvaW50 ZXJuYWwuaA0KQEAgLTExOCw3ICsxMTgsNiBAQCBzdHJ1Y3QgbWNhX2NvbmZpZyB7DQogCSAgICAg IGJpb3NfY21jaV90aHJlc2hvbGQJOiAxLA0KIAkgICAgICBfX3Jlc2VydmVkCQk6IDU5Ow0KIA0K LQl1OCBiYW5rczsNCiAJczggYm9vdGxvZzsNCiAJaW50IHRvbGVyYW50Ow0KIAlpbnQgbW9uYXJj aF90aW1lb3V0Ow0KQEAgLTEyNyw2ICsxMjYsNyBAQCBzdHJ1Y3QgbWNhX2NvbmZpZyB7DQogfTsN CiANCiBleHRlcm4gc3RydWN0IG1jYV9jb25maWcgbWNhX2NmZzsNCitERUNMQVJFX1BFUl9DUFVf UkVBRF9NT1NUTFkodTgsIG1jZV9udW1fYmFua3MpOw0KIA0KIHN0cnVjdCBtY2VfdmVuZG9yX2Zs YWdzIHsNCiAJLyoNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 01697C10F14 for ; Thu, 11 Apr 2019 20:18:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A96652184E for ; Thu, 11 Apr 2019 20:18:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="slPljpFT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727002AbfDKUSP (ORCPT ); Thu, 11 Apr 2019 16:18:15 -0400 Received: from mail-eopbgr820079.outbound.protection.outlook.com ([40.107.82.79]:50208 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726962AbfDKUSO (ORCPT ); Thu, 11 Apr 2019 16:18:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ztfMr/Ustn+y6qTtD6JKikOQClynSrgxrdB85OIYy9o=; b=slPljpFTia6xqKfu+DZupJevwxKZXcr14Fo40nzGx2KM958xYM5sKtW6Aipe29Ps2ngs5Yys5TK6ljtCLIX6dUZ7qQntIR5/2NbehV7UBDl8xfiFV+OtFMUdvHf5o0YM7uuA5IzAe5+ntrTOIpnuWXPYg36PDYmui1BmJ8THmFE= Received: from SN6PR12MB2639.namprd12.prod.outlook.com (52.135.103.16) by SN6PR12MB2688.namprd12.prod.outlook.com (52.135.103.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1771.16; Thu, 11 Apr 2019 20:18:03 +0000 Received: from SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::9c51:41bf:f88e:f3e8]) by SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::9c51:41bf:f88e:f3e8%2]) with mapi id 15.20.1771.016; Thu, 11 Apr 2019 20:18:03 +0000 From: "Ghannam, Yazen" To: "linux-edac@vger.kernel.org" CC: "Ghannam, Yazen" , "linux-kernel@vger.kernel.org" , "bp@suse.de" , "tony.luck@intel.com" , "x86@kernel.org" Subject: [PATCH v2 4/6] x86/MCE: Make number of MCA banks per_cpu Thread-Topic: [PATCH v2 4/6] x86/MCE: Make number of MCA banks per_cpu Thread-Index: AQHU8KOqEjiqMDEH10OZE8swgSMOag== Date: Thu, 11 Apr 2019 20:18:03 +0000 Message-ID: <20190411201743.43195-5-Yazen.Ghannam@amd.com> References: <20190411201743.43195-1-Yazen.Ghannam@amd.com> In-Reply-To: <20190411201743.43195-1-Yazen.Ghannam@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN6PR02CA0014.namprd02.prod.outlook.com (2603:10b6:805:a2::27) To SN6PR12MB2639.namprd12.prod.outlook.com (2603:10b6:805:6f::16) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yazen.Ghannam@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [165.204.78.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9237912c-af5a-454f-dc71-08d6bebaccc2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:SN6PR12MB2688; x-ms-traffictypediagnostic: SN6PR12MB2688: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-forefront-prvs: 00046D390F x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(366004)(346002)(136003)(376002)(396003)(199004)(189003)(2616005)(966005)(256004)(14444005)(4326008)(478600001)(30864003)(66066001)(76176011)(26005)(5660300002)(53936002)(3846002)(6506007)(72206003)(186003)(6116002)(2906002)(386003)(54906003)(2501003)(102836004)(6916009)(2351001)(97736004)(105586002)(99286004)(6436002)(8936002)(15650500001)(52116002)(50226002)(36756003)(14454004)(106356001)(68736007)(81156014)(81166006)(476003)(6486002)(7736002)(11346002)(71200400001)(446003)(486006)(71190400001)(5640700003)(86362001)(6306002)(316002)(8676002)(1076003)(305945005)(6512007)(25786009);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR12MB2688;H:SN6PR12MB2639.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 6CuJM05znIZFd5egLGM83E7821A7h65c+gtPXLDl7IL+nFvbzH49RuPStIiIcjq16LDVy4oVkRs8jSX1kM+iKVB1C55eDfEPjrhm1qKpyIOKUCJC8joB02Yv3YSbt8oLa7aJI4ZRsce29hHvVQMQwkGxSNZ/c7+EtbAuAYl+4QHNRznKPwUjgekiRZp0hWagnMAGJtZcHuCU7Hq1ibt8CGsQTYBaz8sKx5Uvf6otBPmTdG4lycqd8bG+VEqPaPuxSHJF8e49WFzohGNZR4gCs/mYNb45Q/OIG+JI9gY9cjmrxsMl7D8hOb68oPJVHXwVd9igHx+gPwGtRCS5M+cmhhhFSGnPmLzdptsdaEixkkS1KPK7rqAIuhTWa3lyt+DwHZmGuWu30LOAriBkXIJxcF3rnTf1fEl0mnKrgYY42i8= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9237912c-af5a-454f-dc71-08d6bebaccc2 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2019 20:18:03.2674 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2688 Sender: linux-edac-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-edac@vger.kernel.org Message-ID: <20190411201803.w8s3aFFZyAIVw3_slisdtTbCx-PtbvPqECgOFVxxjeY@z> RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpUaGUgbnVtYmVy IG9mIE1DQSBiYW5rcyBpcyBwcm92aWRlZCBwZXIgbG9naWNhbCBDUFUuIEhpc3RvcmljYWxseSwg dGhpcw0KbnVtYmVyIGhhcyBiZWVuIHRoZSBzYW1lIGFjcm9zcyBhbGwgQ1BVcywgYnV0IHRoaXMg aXMgbm90IGFuDQphcmNoaXRlY3R1cmFsIGd1YXJhbnRlZS4gRnV0dXJlIEFNRCBzeXN0ZW1zIG1h eSBoYXZlIE1DQSBiYW5rIGNvdW50cw0KdGhhdCB2YXJ5IGJldHdlZW4gbG9naWNhbCBDUFVzIGlu IGEgc3lzdGVtLg0KDQpUaGlzIGlzc3VlIHdhcyBwYXJ0aWFsbHkgYWRkcmVzc2VkIGluDQoNCmNv bW1pdCAoIjAwNmMwNzcwNDFkYyB4ODYvbWNlOiBIYW5kbGUgdmFyeWluZyBNQ0EgYmFuayBjb3Vu dHMiKQ0KDQpieSBhbGxvY2F0aW5nIHN0cnVjdHVyZXMgdXNpbmcgdGhlIG1heGltdW0gbnVtYmVy IG9mIE1DQSBiYW5rcyBhbmQgYnkNCnNhdmluZyB0aGUgbWF4aW11bSBNQ0EgYmFuayBjb3VudCBp biBhIHN5c3RlbSBhcyB0aGUgZ2xvYmFsIGNvdW50LiBUaGlzDQptZWFucyB0aGF0IHNvbWUgZXh0 cmEgc3RydWN0dXJlcyBhcmUgYWxsb2NhdGVkLiBBbHNvLCB0aGlzIG1lYW5zIHRoYXQNCkNQVXMg d2lsbCBzcGVuZCBtb3JlIHRpbWUgaW4gdGhlICNNQyBhbmQgb3RoZXIgaGFuZGxlcnMgY2hlY2tp bmcgZXh0cmENCk1DQSBiYW5rcy4NCg0KRGVmaW5lIHRoZSBudW1iZXIgb2YgTUNBIGJhbmtzIGFz IGEgcGVyX2NwdSB2YXJpYWJsZS4gUmVwbGFjZSBhbGwgdXNlcw0Kb2YgbWNhX2NmZy5iYW5rcyB3 aXRoIHRoaXMuDQoNCkFsc28sIHVzZSB0aGUgcGVyX2NwdSBiYW5rIGNvdW50IHdoZW4gYWxsb2Nh dGluZyBwZXJfY3B1IHN0cnVjdHVyZXMuDQoNClByaW50IHRoZSBudW1iZXIgb2YgYmFua3MgcGVy IENQVSBhcyBhIGRlYnVnIG1lc3NhZ2UgZm9yIHRob3NlIHdobyBtYXkNCmJlIGludGVyZXN0ZWQu DQoNClNpZ25lZC1vZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlhemVuLmdoYW5uYW1AYW1kLmNvbT4N Ci0tLQ0KTGluazoNCmh0dHBzOi8vbGttbC5rZXJuZWwub3JnL3IvMjAxOTA0MDgxNDEyMDUuMTIz NzYtNS1ZYXplbi5HaGFubmFtQGFtZC5jb20NCg0KdjEtPnYyOg0KKiBEcm9wIGV4cG9ydCBvZiBu ZXcgdmFyaWFibGUgYW5kIGxlYXZlIGluamVjdG9yIGNvZGUgYXMtaXMuDQoqIEFkZCAibWNlXyIg cHJlZml4IHRvIG5ldyAibnVtX2JhbmtzIiB2YXJpYWJsZS4NCg0KIGFyY2gveDg2L2tlcm5lbC9j cHUvbWNlL2FtZC5jICAgICAgfCAxNiArKysrKy0tLS0tDQogYXJjaC94ODYva2VybmVsL2NwdS9t Y2UvY29yZS5jICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KIGFyY2gv eDg2L2tlcm5lbC9jcHUvbWNlL2ludGVybmFsLmggfCAgMiArLQ0KIDMgZmlsZXMgY2hhbmdlZCwg MzYgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9rZXJuZWwvY3B1L21jZS9hbWQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2FtZC5jDQpp bmRleCBmMDY0NGI1OTg0OGQuLjJhZWQ5NGYzYTIzZSAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tl cm5lbC9jcHUvbWNlL2FtZC5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9hbWQuYw0K QEAgLTQ5Myw3ICs0OTMsNyBAQCBzdGF0aWMgdTMyIGdldF9ibG9ja19hZGRyZXNzKHUzMiBjdXJy ZW50X2FkZHIsIHUzMiBsb3csIHUzMiBoaWdoLA0KIHsNCiAJdTMyIGFkZHIgPSAwLCBvZmZzZXQg PSAwOw0KIA0KLQlpZiAoKGJhbmsgPj0gbWNhX2NmZy5iYW5rcykgfHwgKGJsb2NrID49IE5SX0JM T0NLUykpDQorCWlmICgoYmFuayA+PSBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSkpIHx8IChi bG9jayA+PSBOUl9CTE9DS1MpKQ0KIAkJcmV0dXJuIGFkZHI7DQogDQogCWlmIChtY2VfZmxhZ3Mu c21jYSkNCkBAIC02MDUsNyArNjA1LDcgQEAgdm9pZCBtY2VfYW1kX2ZlYXR1cmVfaW5pdChzdHJ1 Y3QgY3B1aW5mb194ODYgKmMpDQogDQogCWRpc2FibGVfZXJyX3RocmVzaG9sZGluZyhjKTsNCiAN Ci0JZm9yIChiYW5rID0gMDsgYmFuayA8IG1jYV9jZmcuYmFua3M7ICsrYmFuaykgew0KKwlmb3Ig KGJhbmsgPSAwOyBiYW5rIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgKytiYW5rKSB7 DQogCQlpZiAobWNlX2ZsYWdzLnNtY2EpDQogCQkJc21jYV9jb25maWd1cmUoYmFuaywgY3B1KTsN CiANCkBAIC05NDgsNyArOTQ4LDcgQEAgc3RhdGljIHZvaWQgYW1kX2RlZmVycmVkX2Vycm9yX2lu dGVycnVwdCh2b2lkKQ0KIHsNCiAJdW5zaWduZWQgaW50IGJhbms7DQogDQotCWZvciAoYmFuayA9 IDA7IGJhbmsgPCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspDQorCWZvciAoYmFuayA9IDA7IGJhbmsg PCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyArK2JhbmspDQogCQlsb2dfZXJyb3JfZGVm ZXJyZWQoYmFuayk7DQogfQ0KIA0KQEAgLTk4OSw3ICs5ODksNyBAQCBzdGF0aWMgdm9pZCBhbWRf dGhyZXNob2xkX2ludGVycnVwdCh2b2lkKQ0KIAlzdHJ1Y3QgdGhyZXNob2xkX2Jsb2NrICpmaXJz dF9ibG9jayA9IE5VTEwsICpibG9jayA9IE5VTEwsICp0bXAgPSBOVUxMOw0KIAl1bnNpZ25lZCBp bnQgYmFuaywgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOw0KIA0KLQlmb3IgKGJhbmsgPSAwOyBi YW5rIDwgbWNhX2NmZy5iYW5rczsgKytiYW5rKSB7DQorCWZvciAoYmFuayA9IDA7IGJhbmsgPCB0 aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyArK2JhbmspIHsNCiAJCWlmICghKHBlcl9jcHUo YmFua19tYXAsIGNwdSkgJiAoMSA8PCBiYW5rKSkpDQogCQkJY29udGludWU7DQogDQpAQCAtMTE3 Niw3ICsxMTc2LDcgQEAgc3RhdGljIGludCBhbGxvY2F0ZV90aHJlc2hvbGRfYmxvY2tzKHVuc2ln bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBiYW5rLA0KIAl1MzIgbG93LCBoaWdoOw0KIAlpbnQg ZXJyOw0KIA0KLQlpZiAoKGJhbmsgPj0gbWNhX2NmZy5iYW5rcykgfHwgKGJsb2NrID49IE5SX0JM T0NLUykpDQorCWlmICgoYmFuayA+PSBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSkpIHx8IChi bG9jayA+PSBOUl9CTE9DS1MpKQ0KIAkJcmV0dXJuIDA7DQogDQogCWlmIChyZG1zcl9zYWZlX29u X2NwdShjcHUsIGFkZHJlc3MsICZsb3csICZoaWdoKSkNCkBAIC0xNDEwLDcgKzE0MTAsNyBAQCBp bnQgbWNlX3RocmVzaG9sZF9yZW1vdmVfZGV2aWNlKHVuc2lnbmVkIGludCBjcHUpDQogew0KIAl1 bnNpZ25lZCBpbnQgYmFuazsNCiANCi0JZm9yIChiYW5rID0gMDsgYmFuayA8IG1jYV9jZmcuYmFu a3M7ICsrYmFuaykgew0KKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgcGVyX2NwdShtY2VfbnVtX2Jh bmtzLCBjcHUpOyArK2JhbmspIHsNCiAJCWlmICghKHBlcl9jcHUoYmFua19tYXAsIGNwdSkgJiAo MSA8PCBiYW5rKSkpDQogCQkJY29udGludWU7DQogCQl0aHJlc2hvbGRfcmVtb3ZlX2JhbmsoY3B1 LCBiYW5rKTsNCkBAIC0xNDMxLDE0ICsxNDMxLDE0IEBAIGludCBtY2VfdGhyZXNob2xkX2NyZWF0 ZV9kZXZpY2UodW5zaWduZWQgaW50IGNwdSkNCiAJaWYgKGJwKQ0KIAkJcmV0dXJuIDA7DQogDQot CWJwID0ga2NhbGxvYyhtY2FfY2ZnLmJhbmtzLCBzaXplb2Yoc3RydWN0IHRocmVzaG9sZF9iYW5r ICopLA0KKwlicCA9IGtjYWxsb2MocGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUpLCBzaXplb2Yo c3RydWN0IHRocmVzaG9sZF9iYW5rICopLA0KIAkJICAgICBHRlBfS0VSTkVMKTsNCiAJaWYgKCFi cCkNCiAJCXJldHVybiAtRU5PTUVNOw0KIA0KIAlwZXJfY3B1KHRocmVzaG9sZF9iYW5rcywgY3B1 KSA9IGJwOw0KIA0KLQlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgbWNhX2NmZy5iYW5rczsgKytiYW5r KSB7DQorCWZvciAoYmFuayA9IDA7IGJhbmsgPCBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSk7 ICsrYmFuaykgew0KIAkJaWYgKCEocGVyX2NwdShiYW5rX21hcCwgY3B1KSAmICgxIDw8IGJhbmsp KSkNCiAJCQljb250aW51ZTsNCiAJCWVyciA9IHRocmVzaG9sZF9jcmVhdGVfYmFuayhjcHUsIGJh bmspOw0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYyBiL2FyY2gv eDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KaW5kZXggYWE0MWY0MWU1OTMxLi4wZmUyOTE0MGVj YWIgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCisrKyBiL2Fy Y2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KQEAgLTY0LDYgKzY0LDggQEAgc3RhdGljIERF RklORV9NVVRFWChtY2Vfc3lzZnNfbXV0ZXgpOw0KIA0KIERFRklORV9QRVJfQ1BVKHVuc2lnbmVk LCBtY2VfZXhjZXB0aW9uX2NvdW50KTsNCiANCitERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWSh1 OCwgbWNlX251bV9iYW5rcyk7DQorDQogc3RydWN0IG1jZV9iYW5rIHsNCiAJdTY0CWN0bDsJLyog c3ViZXZlbnRzIHRvIGVuYWJsZSAqLw0KIAlib29sCWluaXQ7CS8qIGluaXRpYWxpc2UgYmFuaz8g Ki8NCkBAIC02OTksNyArNzAxLDcgQEAgYm9vbCBtYWNoaW5lX2NoZWNrX3BvbGwoZW51bSBtY3Bf ZmxhZ3MgZmxhZ3MsIG1jZV9iYW5rc190ICpiKQ0KIAlpZiAoZmxhZ3MgJiBNQ1BfVElNRVNUQU1Q KQ0KIAkJbS50c2MgPSByZHRzYygpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5r czsgaSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3Mp OyBpKyspIHsNCiAJCWlmICghdGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ldLmN0bCB8fCAhdGVz dF9iaXQoaSwgKmIpKQ0KIAkJCWNvbnRpbnVlOw0KIA0KQEAgLTgwMSw3ICs4MDMsNyBAQCBzdGF0 aWMgaW50IG1jZV9ub193YXlfb3V0KHN0cnVjdCBtY2UgKm0sIGNoYXIgKiptc2csIHVuc2lnbmVk IGxvbmcgKnZhbGlkcCwNCiAJY2hhciAqdG1wOw0KIAlpbnQgaTsNCiANCi0JZm9yIChpID0gMDsg aSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19jcHVfcmVh ZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQltLT5zdGF0dXMgPSBtY2VfcmRtc3JsKG1zcl9v cHMuc3RhdHVzKGkpKTsNCiAJCWlmICghKG0tPnN0YXR1cyAmIE1DSV9TVEFUVVNfVkFMKSkNCiAJ CQljb250aW51ZTsNCkBAIC0xMDgxLDcgKzEwODMsNyBAQCBzdGF0aWMgdm9pZCBtY2VfY2xlYXJf c3RhdGUodW5zaWduZWQgbG9uZyAqdG9jbGVhcikNCiB7DQogCWludCBpOw0KIA0KLQlmb3IgKGkg PSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2Nw dV9yZWFkKG1jZV9udW1fYmFua3MpOyBpKyspIHsNCiAJCWlmICh0ZXN0X2JpdChpLCB0b2NsZWFy KSkNCiAJCQltY2Vfd3Jtc3JsKG1zcl9vcHMuc3RhdHVzKGkpLCAwKTsNCiAJfQ0KQEAgLTExMzgs NyArMTE0MCw3IEBAIHN0YXRpYyB2b2lkIF9fbWNfc2Nhbl9iYW5rcyhzdHJ1Y3QgbWNlICptLCBz dHJ1Y3QgbWNlICpmaW5hbCwNCiAJc3RydWN0IG1jYV9jb25maWcgKmNmZyA9ICZtY2FfY2ZnOw0K IAlpbnQgc2V2ZXJpdHksIGk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBjZmctPmJhbmtzOyBpKysp IHsNCisJZm9yIChpID0gMDsgaSA8IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykg ew0KIAkJX19jbGVhcl9iaXQoaSwgdG9jbGVhcik7DQogCQlpZiAoIXRlc3RfYml0KGksIHZhbGlk X2JhbmtzKSkNCiAJCQljb250aW51ZTsNCkBAIC0xNDc4LDE1ICsxNDgwLDE2IEBAIEVYUE9SVF9T WU1CT0xfR1BMKG1jZV9ub3RpZnlfaXJxKTsNCiANCiBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9t Y2VfYmFua3NfaW5pdCh2b2lkKQ0KIHsNCisJdTggbl9iYW5rcyA9IHRoaXNfY3B1X3JlYWQobWNl X251bV9iYW5rcyk7DQogCWludCBpOw0KIA0KIAlwZXJfY3B1KG1jZV9iYW5rcywgc21wX3Byb2Nl c3Nvcl9pZCgpKSA9DQotCQlrY2FsbG9jKE1BWF9OUl9CQU5LUywgc2l6ZW9mKHN0cnVjdCBtY2Vf YmFuayksIEdGUF9LRVJORUwpOw0KKwkJa2NhbGxvYyhuX2JhbmtzLCBzaXplb2Yoc3RydWN0IG1j ZV9iYW5rKSwgR0ZQX0tFUk5FTCk7DQogDQogCWlmICghdGhpc19jcHVfcmVhZChtY2VfYmFua3Mp KQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlJfQkFOS1M7 IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgbl9iYW5rczsgaSsrKSB7DQogCQlzdHJ1Y3QgbWNl X2JhbmsgKmIgPSAmdGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ldOw0KIA0KIAkJYi0+Y3RsID0g LTFVTEw7DQpAQCAtMTUwNywxMCArMTUxMCwxNSBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9j YXBfaW5pdCh2b2lkKQ0KIAlyZG1zcmwoTVNSX0lBMzJfTUNHX0NBUCwgY2FwKTsNCiANCiAJYiA9 IGNhcCAmIE1DR19CQU5LQ05UX01BU0s7DQotCWlmIChXQVJOX09OX09OQ0UoYiA+IE1BWF9OUl9C QU5LUykpDQorCXByX2RlYnVnKCJDUFUlZCBzdXBwb3J0cyAlZCBNQ0UgYmFua3NcbiIsIHNtcF9w cm9jZXNzb3JfaWQoKSwgYik7DQorDQorCWlmIChiID4gTUFYX05SX0JBTktTKSB7DQorCQlwcl93 YXJuKCJDUFUlZDogVXNpbmcgb25seSAldSBtYWNoaW5lIGNoZWNrIGJhbmtzIG91dCBvZiAldVxu IiwNCisJCQlzbXBfcHJvY2Vzc29yX2lkKCksIE1BWF9OUl9CQU5LUywgYik7DQogCQliID0gTUFY X05SX0JBTktTOw0KKwl9DQogDQotCW1jYV9jZmcuYmFua3MgPSBtYXgobWNhX2NmZy5iYW5rcywg Yik7DQorCXRoaXNfY3B1X3dyaXRlKG1jZV9udW1fYmFua3MsIGIpOw0KIA0KIAlpZiAoIXRoaXNf Y3B1X3JlYWQobWNlX2JhbmtzKSkgew0KIAkJaW50IGVyciA9IF9fbWNoZWNrX2NwdV9tY2VfYmFu a3NfaW5pdCgpOw0KQEAgLTE1NTQsNyArMTU2Miw3IEBAIHN0YXRpYyB2b2lkIF9fbWNoZWNrX2Nw dV9pbml0X2NsZWFyX2JhbmtzKHZvaWQpDQogew0KIAlpbnQgaTsNCiANCi0JZm9yIChpID0gMDsg aSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19jcHVfcmVh ZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmdGhpc19j cHVfcmVhZChtY2VfYmFua3MpW2ldOw0KIA0KIAkJaWYgKCFiLT5pbml0KQ0KQEAgLTE2MDQsNyAr MTYxMiw3IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3QgY3B1 aW5mb194ODYgKmMpDQogDQogCS8qIFRoaXMgc2hvdWxkIGJlIGRpc2FibGVkIGJ5IHRoZSBCSU9T LCBidXQgaXNuJ3QgYWx3YXlzICovDQogCWlmIChjLT54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1Jf QU1EKSB7DQotCQlpZiAoYy0+eDg2ID09IDE1ICYmIGNmZy0+YmFua3MgPiA0KSB7DQorCQlpZiAo Yy0+eDg2ID09IDE1ICYmIHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykgPiA0KSB7DQogCQkJ LyoNCiAJCQkgKiBkaXNhYmxlIEdBUlQgVEJMIHdhbGsgZXJyb3IgcmVwb3J0aW5nLCB3aGljaA0K IAkJCSAqIHRyaXBzIG9mZiBpbmNvcnJlY3RseSB3aXRoIHRoZSBJT01NVSAmIDN3YXJlDQpAQCAt MTYyMyw3ICsxNjMxLDcgQEAgc3RhdGljIGludCBfX21jaGVja19jcHVfYXBwbHlfcXVpcmtzKHN0 cnVjdCBjcHVpbmZvX3g4NiAqYykNCiAJCSAqIFZhcmlvdXMgSzdzIHdpdGggYnJva2VuIGJhbmsg MCBhcm91bmQuIEFsd2F5cyBkaXNhYmxlDQogCQkgKiBieSBkZWZhdWx0Lg0KIAkJICovDQotCQlp ZiAoYy0+eDg2ID09IDYgJiYgY2ZnLT5iYW5rcyA+IDApDQorCQlpZiAoYy0+eDg2ID09IDYgJiYg dGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKSA+IDApDQogCQkJdGhpc19jcHVfcmVhZChtY2Vf YmFua3MpWzBdLmN0bCA9IDA7DQogDQogCQkvKg0KQEAgLTE2NDUsNyArMTY1Myw3IEBAIHN0YXRp YyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpDQog CQkgKiB2YWxpZCBldmVudCBsYXRlciwgbWVyZWx5IGRvbid0IHdyaXRlIENUTDAuDQogCQkgKi8N CiANCi0JCWlmIChjLT54ODYgPT0gNiAmJiBjLT54ODZfbW9kZWwgPCAweDFBICYmIGNmZy0+YmFu a3MgPiAwKQ0KKwkJaWYgKGMtPng4NiA9PSA2ICYmIGMtPng4Nl9tb2RlbCA8IDB4MUEgJiYgdGhp c19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKSA+IDApDQogCQkJdGhpc19jcHVfcmVhZChtY2VfYmFu a3MpWzBdLmluaXQgPSAwOw0KIA0KIAkJLyoNCkBAIC0xODcxLDcgKzE4NzksNyBAQCBzdGF0aWMg dm9pZCBfX21jZV9kaXNhYmxlX2Jhbmsodm9pZCAqYXJnKQ0KIA0KIHZvaWQgbWNlX2Rpc2FibGVf YmFuayhpbnQgYmFuaykNCiB7DQotCWlmIChiYW5rID49IG1jYV9jZmcuYmFua3MpIHsNCisJaWYg KGJhbmsgPj0gdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKSkgew0KIAkJcHJfd2FybihGV19C VUcNCiAJCQkiSWdub3JpbmcgcmVxdWVzdCB0byBkaXNhYmxlIGludmFsaWQgTUNBIGJhbmsgJWQu XG4iLA0KIAkJCWJhbmspOw0KQEAgLTE5NTksNyArMTk2Nyw3IEBAIHN0YXRpYyB2b2lkIG1jZV9k aXNhYmxlX2Vycm9yX3JlcG9ydGluZyh2b2lkKQ0KIHsNCiAJaW50IGk7DQogDQotCWZvciAoaSA9 IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IHRoaXNfY3B1 X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJc3RydWN0IG1jZV9iYW5rICpiID0gJnRo aXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXTsNCiANCiAJCWlmIChiLT5pbml0KQ0KQEAgLTIwNzAs NyArMjA3OCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfYmFuayhzdHJ1Y3QgZGV2aWNlICpzLCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJc3RydWN0IG1jZV9iYW5rICpiOw0KIAl1 OCBiYW5rID0gYXR0cl90b19iYW5rKGF0dHIpLT5iYW5rOw0KIA0KLQlpZiAoYmFuayA+PSBtY2Ff Y2ZnLmJhbmtzKQ0KKwlpZiAoYmFuayA+PSBwZXJfY3B1KG1jZV9udW1fYmFua3MsIHMtPmlkKSkN CiAJCXJldHVybiAtRUlOVkFMOw0KIA0KIAliID0gJnBlcl9jcHUobWNlX2JhbmtzLCBzLT5pZClb YmFua107DQpAQCAtMjA4OCw3ICsyMDk2LDcgQEAgc3RhdGljIHNzaXplX3Qgc2V0X2Jhbmsoc3Ry dWN0IGRldmljZSAqcywgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQogCWlmIChrc3Ry dG91NjQoYnVmLCAwLCAmbmV3KSA8IDApDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JaWYgKGJh bmsgPj0gbWNhX2NmZy5iYW5rcykNCisJaWYgKGJhbmsgPj0gcGVyX2NwdShtY2VfbnVtX2Jhbmtz LCBzLT5pZCkpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCiAJYiA9ICZwZXJfY3B1KG1jZV9iYW5r cywgcy0+aWQpW2JhbmtdOw0KQEAgLTIyNDAsNyArMjI0OCw3IEBAIHN0YXRpYyBpbnQgbWNlX2Rl dmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiAJCWlmIChlcnIpDQogCQkJZ290byBlcnJv cjsNCiAJfQ0KLQlmb3IgKGogPSAwOyBqIDwgbWNhX2NmZy5iYW5rczsgaisrKSB7DQorCWZvciAo aiA9IDA7IGogPCBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSk7IGorKykgew0KIAkJZXJyID0g ZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNbal0uYXR0cik7DQogCQlpZiAo ZXJyKQ0KIAkJCWdvdG8gZXJyb3IyOw0KQEAgLTIyNzIsNyArMjI4MCw3IEBAIHN0YXRpYyB2b2lk IG1jZV9kZXZpY2VfcmVtb3ZlKHVuc2lnbmVkIGludCBjcHUpDQogCWZvciAoaSA9IDA7IG1jZV9k ZXZpY2VfYXR0cnNbaV07IGkrKykNCiAJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsIG1jZV9kZXZp Y2VfYXR0cnNbaV0pOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKQ0K Kwlmb3IgKGkgPSAwOyBpIDwgcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUpOyBpKyspDQogCQlk ZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNlX2JhbmtfZGV2c1tpXS5hdHRyKTsNCiANCiAJZGV2 aWNlX3VucmVnaXN0ZXIoZGV2KTsNCkBAIC0yMzAxLDcgKzIzMDksNyBAQCBzdGF0aWMgdm9pZCBt Y2VfcmVlbmFibGVfY3B1KHZvaWQpDQogDQogCWlmICghY3B1aHBfdGFza3NfZnJvemVuKQ0KIAkJ Y21jaV9yZWVuYWJsZSgpOw0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7 DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyBpKyspIHsN CiAJCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQog DQogCQlpZiAoYi0+aW5pdCkNCkBAIC0yNDg5LDggKzI0OTcsNiBAQCBFWFBPUlRfU1lNQk9MX0dQ TChtY3NhZmVfa2V5KTsNCiANCiBzdGF0aWMgaW50IF9faW5pdCBtY2hlY2tfbGF0ZV9pbml0KHZv aWQpDQogew0KLQlwcl9pbmZvKCJVc2luZyAlZCBNQ0UgYmFua3NcbiIsIG1jYV9jZmcuYmFua3Mp Ow0KLQ0KIAlpZiAobWNhX2NmZy5yZWNvdmVyeSkNCiAJCXN0YXRpY19icmFuY2hfaW5jKCZtY3Nh ZmVfa2V5KTsNCiANCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5h bC5oIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvaW50ZXJuYWwuaA0KaW5kZXggMDMyZDUyYzY2 NjE2Li42MzJlMmU1N2MxZDAgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9p bnRlcm5hbC5oDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5oDQpAQCAt MTE4LDcgKzExOCw2IEBAIHN0cnVjdCBtY2FfY29uZmlnIHsNCiAJICAgICAgYmlvc19jbWNpX3Ro cmVzaG9sZAk6IDEsDQogCSAgICAgIF9fcmVzZXJ2ZWQJCTogNTk7DQogDQotCXU4IGJhbmtzOw0K IAlzOCBib290bG9nOw0KIAlpbnQgdG9sZXJhbnQ7DQogCWludCBtb25hcmNoX3RpbWVvdXQ7DQpA QCAtMTI3LDYgKzEyNiw3IEBAIHN0cnVjdCBtY2FfY29uZmlnIHsNCiB9Ow0KIA0KIGV4dGVybiBz dHJ1Y3QgbWNhX2NvbmZpZyBtY2FfY2ZnOw0KK0RFQ0xBUkVfUEVSX0NQVV9SRUFEX01PU1RMWSh1 OCwgbWNlX251bV9iYW5rcyk7DQogDQogc3RydWN0IG1jZV92ZW5kb3JfZmxhZ3Mgew0KIAkvKg0K LS0gDQoyLjE3LjENCg0K