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: [v3,4/6] x86/MCE: Make number of MCA banks per_cpu From: Yazen Ghannam Message-Id: <20190430203206.104163-5-Yazen.Ghannam@amd.com> Date: Tue, 30 Apr 2019 20:32:20 +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 IGEgc3lzdGVtLg0KDQpUaGlzIGlzc3VlIHdhcyBwYXJ0aWFsbHkgYWRkcmVzc2VkIGluDQoNCjAw NmMwNzcwNDFkYyAoIng4Ni9tY2U6IEhhbmRsZSB2YXJ5aW5nIE1DQSBiYW5rIGNvdW50cyIpDQoN CmJ5IGFsbG9jYXRpbmcgc3RydWN0dXJlcyB1c2luZyB0aGUgbWF4aW11bSBudW1iZXIgb2YgTUNB IGJhbmtzIGFuZCBieQ0Kc2F2aW5nIHRoZSBtYXhpbXVtIE1DQSBiYW5rIGNvdW50IGluIGEgc3lz dGVtIGFzIHRoZSBnbG9iYWwgY291bnQuIFRoaXMNCm1lYW5zIHRoYXQgc29tZSBleHRyYSBzdHJ1 Y3R1cmVzIGFyZSBhbGxvY2F0ZWQuIEFsc28sIHRoaXMgbWVhbnMgdGhhdA0KQ1BVcyB3aWxsIHNw ZW5kIG1vcmUgdGltZSBpbiB0aGUgI01DIGFuZCBvdGhlciBoYW5kbGVycyBjaGVja2luZyBleHRy YQ0KTUNBIGJhbmtzLg0KDQpEZWZpbmUgdGhlIG51bWJlciBvZiBNQ0EgYmFua3MgYXMgYSBwZXJf Y3B1IHZhcmlhYmxlLiBSZXBsYWNlIGFsbCB1c2VzDQpvZiBtY2FfY2ZnLmJhbmtzIHdpdGggdGhp cy4NCg0KQWxzbywgdXNlIHRoZSBwZXJfY3B1IGJhbmsgY291bnQgd2hlbiBhbGxvY2F0aW5nIHBl cl9jcHUgc3RydWN0dXJlcy4NCg0KU2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4u Z2hhbm5hbUBhbWQuY29tPg0KLS0tDQpMaW5rOg0KaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8y MDE5MDQxMTIwMTc0My40MzE5NS01LVlhemVuLkdoYW5uYW1AYW1kLmNvbQ0KDQp2Mi0+djM6DQoq IERyb3AgcHJfZGVidWcoKSBtZXNzYWdlLg0KKiBDaGFuZ2UgY29tbWl0IHJlZmVyZW5jZSBmb3Jt YXQuDQoNCnYxLT52MjoNCiogRHJvcCBleHBvcnQgb2YgbmV3IHZhcmlhYmxlIGFuZCBsZWF2ZSBp bmplY3RvciBjb2RlIGFzLWlzLg0KKiBBZGQgIm1jZV8iIHByZWZpeCB0byBuZXcgIm51bV9iYW5r cyIgdmFyaWFibGUuDQoNCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9hbWQuYyAgICAgIHwgMTcg KysrKysrLS0tLS0NCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMgICAgIHwgNDcgKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tDQogYXJjaC94ODYva2VybmVsL2NwdS9tY2UvaW50 ZXJuYWwuaCB8ICAyICstDQogMyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAzMCBk ZWxldGlvbnMoLSkNCg0KLS0gDQoyLjE3LjEKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv Y3B1L21jZS9hbWQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2FtZC5jDQppbmRleCBkNGQ2 ZTRiN2Y5ZGMuLjlmNzI5ZDUwNjc2YyAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUv bWNlL2FtZC5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9hbWQuYw0KQEAgLTQ5NSw3 ICs0OTUsNyBAQCBzdGF0aWMgdTMyIGdldF9ibG9ja19hZGRyZXNzKHUzMiBjdXJyZW50X2FkZHIs IHUzMiBsb3csIHUzMiBoaWdoLA0KIHsNCiAJdTMyIGFkZHIgPSAwLCBvZmZzZXQgPSAwOw0KIA0K LQlpZiAoKGJhbmsgPj0gbWNhX2NmZy5iYW5rcykgfHwgKGJsb2NrID49IE5SX0JMT0NLUykpDQor CWlmICgoYmFuayA+PSBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSkpIHx8IChibG9jayA+PSBO Ul9CTE9DS1MpKQ0KIAkJcmV0dXJuIGFkZHI7DQogDQogCWlmIChtY2VfZmxhZ3Muc21jYSkNCkBA IC02MzEsNyArNjMxLDggQEAgdm9pZCBtY2VfYW1kX2ZlYXR1cmVfaW5pdChzdHJ1Y3QgY3B1aW5m b194ODYgKmMpDQogCXVuc2lnbmVkIGludCBiYW5rLCBibG9jaywgY3B1ID0gc21wX3Byb2Nlc3Nv cl9pZCgpOw0KIAlpbnQgb2Zmc2V0ID0gLTE7DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsgPCBt Y2FfY2ZnLmJhbmtzOyArK2JhbmspIHsNCisNCisJZm9yIChiYW5rID0gMDsgYmFuayA8IHRoaXNf Y3B1X3JlYWQobWNlX251bV9iYW5rcyk7ICsrYmFuaykgew0KIAkJaWYgKG1jZV9mbGFncy5zbWNh KQ0KIAkJCXNtY2FfY29uZmlndXJlKGJhbmssIGNwdSk7DQogDQpAQCAtOTc2LDcgKzk3Nyw3IEBA IHN0YXRpYyB2b2lkIGFtZF9kZWZlcnJlZF9lcnJvcl9pbnRlcnJ1cHQodm9pZCkNCiB7DQogCXVu c2lnbmVkIGludCBiYW5rOw0KIA0KLQlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgbWNhX2NmZy5iYW5r czsgKytiYW5rKQ0KKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgdGhpc19jcHVfcmVhZChtY2VfbnVt X2JhbmtzKTsgKytiYW5rKQ0KIAkJbG9nX2Vycm9yX2RlZmVycmVkKGJhbmspOw0KIH0NCiANCkBA IC0xMDE3LDcgKzEwMTgsNyBAQCBzdGF0aWMgdm9pZCBhbWRfdGhyZXNob2xkX2ludGVycnVwdCh2 b2lkKQ0KIAlzdHJ1Y3QgdGhyZXNob2xkX2Jsb2NrICpmaXJzdF9ibG9jayA9IE5VTEwsICpibG9j ayA9IE5VTEwsICp0bXAgPSBOVUxMOw0KIAl1bnNpZ25lZCBpbnQgYmFuaywgY3B1ID0gc21wX3By b2Nlc3Nvcl9pZCgpOw0KIA0KLQlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgbWNhX2NmZy5iYW5rczsg KytiYW5rKSB7DQorCWZvciAoYmFuayA9IDA7IGJhbmsgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1f YmFua3MpOyArK2JhbmspIHsNCiAJCWlmICghKHBlcl9jcHUoYmFua19tYXAsIGNwdSkgJiAoMSA8 PCBiYW5rKSkpDQogCQkJY29udGludWU7DQogDQpAQCAtMTIwNCw3ICsxMjA1LDcgQEAgc3RhdGlj IGludCBhbGxvY2F0ZV90aHJlc2hvbGRfYmxvY2tzKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVk IGludCBiYW5rLA0KIAl1MzIgbG93LCBoaWdoOw0KIAlpbnQgZXJyOw0KIA0KLQlpZiAoKGJhbmsg Pj0gbWNhX2NmZy5iYW5rcykgfHwgKGJsb2NrID49IE5SX0JMT0NLUykpDQorCWlmICgoYmFuayA+ PSBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSkpIHx8IChibG9jayA+PSBOUl9CTE9DS1MpKQ0K IAkJcmV0dXJuIDA7DQogDQogCWlmIChyZG1zcl9zYWZlX29uX2NwdShjcHUsIGFkZHJlc3MsICZs b3csICZoaWdoKSkNCkBAIC0xNDM4LDcgKzE0MzksNyBAQCBpbnQgbWNlX3RocmVzaG9sZF9yZW1v dmVfZGV2aWNlKHVuc2lnbmVkIGludCBjcHUpDQogew0KIAl1bnNpZ25lZCBpbnQgYmFuazsNCiAN Ci0JZm9yIChiYW5rID0gMDsgYmFuayA8IG1jYV9jZmcuYmFua3M7ICsrYmFuaykgew0KKwlmb3Ig KGJhbmsgPSAwOyBiYW5rIDwgcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUpOyArK2JhbmspIHsN CiAJCWlmICghKHBlcl9jcHUoYmFua19tYXAsIGNwdSkgJiAoMSA8PCBiYW5rKSkpDQogCQkJY29u dGludWU7DQogCQl0aHJlc2hvbGRfcmVtb3ZlX2JhbmsoY3B1LCBiYW5rKTsNCkBAIC0xNDU5LDE0 ICsxNDYwLDE0IEBAIGludCBtY2VfdGhyZXNob2xkX2NyZWF0ZV9kZXZpY2UodW5zaWduZWQgaW50 IGNwdSkNCiAJaWYgKGJwKQ0KIAkJcmV0dXJuIDA7DQogDQotCWJwID0ga2NhbGxvYyhtY2FfY2Zn LmJhbmtzLCBzaXplb2Yoc3RydWN0IHRocmVzaG9sZF9iYW5rICopLA0KKwlicCA9IGtjYWxsb2Mo cGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUpLCBzaXplb2Yoc3RydWN0IHRocmVzaG9sZF9iYW5r ICopLA0KIAkJICAgICBHRlBfS0VSTkVMKTsNCiAJaWYgKCFicCkNCiAJCXJldHVybiAtRU5PTUVN Ow0KIA0KIAlwZXJfY3B1KHRocmVzaG9sZF9iYW5rcywgY3B1KSA9IGJwOw0KIA0KLQlmb3IgKGJh bmsgPSAwOyBiYW5rIDwgbWNhX2NmZy5iYW5rczsgKytiYW5rKSB7DQorCWZvciAoYmFuayA9IDA7 IGJhbmsgPCBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSk7ICsrYmFuaykgew0KIAkJaWYgKCEo cGVyX2NwdShiYW5rX21hcCwgY3B1KSAmICgxIDw8IGJhbmspKSkNCiAJCQljb250aW51ZTsNCiAJ CWVyciA9IHRocmVzaG9sZF9jcmVhdGVfYmFuayhjcHUsIGJhbmspOw0KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2Nv cmUuYw0KaW5kZXggNjYzNDdiZGM4YjA4Li45ODZkZTgzMGYyNmUgMTAwNjQ0DQotLS0gYS9hcmNo L3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNl L2NvcmUuYw0KQEAgLTY0LDYgKzY0LDggQEAgc3RhdGljIERFRklORV9NVVRFWChtY2Vfc3lzZnNf bXV0ZXgpOw0KIA0KIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkLCBtY2VfZXhjZXB0aW9uX2NvdW50 KTsNCiANCitERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWSh1OCwgbWNlX251bV9iYW5rcyk7DQor DQogc3RydWN0IG1jZV9iYW5rIHsNCiAJdTY0CQkJY3RsOwkJCS8qIHN1YmV2ZW50cyB0byBlbmFi bGUgKi8NCiAJYm9vbAkJCWluaXQ7CQkJLyogaW5pdGlhbGlzZSBiYW5rPyAqLw0KQEAgLTcwMCw3 ICs3MDIsNyBAQCBib29sIG1hY2hpbmVfY2hlY2tfcG9sbChlbnVtIG1jcF9mbGFncyBmbGFncywg bWNlX2JhbmtzX3QgKmIpDQogCWlmIChmbGFncyAmIE1DUF9USU1FU1RBTVApDQogCQltLnRzYyA9 IHJkdHNjKCk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJ Zm9yIChpID0gMDsgaSA8IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJ aWYgKCFtY2VfYmFua3NbaV0uY3RsIHx8ICF0ZXN0X2JpdChpLCAqYikpDQogCQkJY29udGludWU7 DQogDQpAQCAtODAyLDcgKzgwNCw3IEBAIHN0YXRpYyBpbnQgbWNlX25vX3dheV9vdXQoc3RydWN0 IG1jZSAqbSwgY2hhciAqKm1zZywgdW5zaWduZWQgbG9uZyAqdmFsaWRwLA0KIAljaGFyICp0bXA7 DQogCWludCBpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7DQor CWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyBpKyspIHsNCiAJ CW0tPnN0YXR1cyA9IG1jZV9yZG1zcmwobXNyX29wcy5zdGF0dXMoaSkpOw0KIAkJaWYgKCEobS0+ c3RhdHVzICYgTUNJX1NUQVRVU19WQUwpKQ0KIAkJCWNvbnRpbnVlOw0KQEAgLTEwODIsNyArMTA4 NCw3IEBAIHN0YXRpYyB2b2lkIG1jZV9jbGVhcl9zdGF0ZSh1bnNpZ25lZCBsb25nICp0b2NsZWFy KQ0KIHsNCiAJaW50IGk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKysp IHsNCisJZm9yIChpID0gMDsgaSA8IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykg ew0KIAkJaWYgKHRlc3RfYml0KGksIHRvY2xlYXIpKQ0KIAkJCW1jZV93cm1zcmwobXNyX29wcy5z dGF0dXMoaSksIDApOw0KIAl9DQpAQCAtMTE0MCw3ICsxMTQyLDcgQEAgc3RhdGljIHZvaWQgX19t Y19zY2FuX2JhbmtzKHN0cnVjdCBtY2UgKm0sIHN0cnVjdCBtY2UgKmZpbmFsLA0KIAlzdHJ1Y3Qg bWNhX2NvbmZpZyAqY2ZnID0gJm1jYV9jZmc7DQogCWludCBzZXZlcml0eSwgaTsNCiANCi0JZm9y IChpID0gMDsgaSA8IGNmZy0+YmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19j cHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQlfX2NsZWFyX2JpdChpLCB0b2NsZWFy KTsNCiAJCWlmICghdGVzdF9iaXQoaSwgdmFsaWRfYmFua3MpKQ0KIAkJCWNvbnRpbnVlOw0KQEAg LTE0ODAsMTQgKzE0ODIsMTUgQEAgRVhQT1JUX1NZTUJPTF9HUEwobWNlX25vdGlmeV9pcnEpOw0K IA0KIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X21jZV9iYW5rc19pbml0KHZvaWQpDQogew0KKwl1 OCBuX2JhbmtzID0gdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsNCiAJc3RydWN0IG1jZV9i YW5rICptY2VfYmFua3M7DQogCWludCBpOw0KIA0KLQltY2VfYmFua3MgPSBrY2FsbG9jKE1BWF9O Ul9CQU5LUywgc2l6ZW9mKHN0cnVjdCBtY2VfYmFuayksIEdGUF9LRVJORUwpOw0KKwltY2VfYmFu a3MgPSBrY2FsbG9jKG5fYmFua3MsIHNpemVvZihzdHJ1Y3QgbWNlX2JhbmspLCBHRlBfS0VSTkVM KTsNCiAJaWYgKCFtY2VfYmFua3MpDQogCQlyZXR1cm4gLUVOT01FTTsNCiANCi0JZm9yIChpID0g MDsgaSA8IE1BWF9OUl9CQU5LUzsgaSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCBuX2JhbmtzOyBp KyspIHsNCiAJCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3NbaV07DQogDQogCQliLT5j dGwgPSAtMVVMTDsNCkBAIC0xNTA5LDEwICsxNTEyLDE0IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tf Y3B1X2NhcF9pbml0KHZvaWQpDQogCXJkbXNybChNU1JfSUEzMl9NQ0dfQ0FQLCBjYXApOw0KIA0K IAliID0gY2FwICYgTUNHX0JBTktDTlRfTUFTSzsNCi0JaWYgKFdBUk5fT05fT05DRShiID4gTUFY X05SX0JBTktTKSkNCisNCisJaWYgKGIgPiBNQVhfTlJfQkFOS1MpIHsNCisJCXByX3dhcm4oIkNQ VSVkOiBVc2luZyBvbmx5ICV1IG1hY2hpbmUgY2hlY2sgYmFua3Mgb3V0IG9mICV1XG4iLA0KKwkJ CXNtcF9wcm9jZXNzb3JfaWQoKSwgTUFYX05SX0JBTktTLCBiKTsNCiAJCWIgPSBNQVhfTlJfQkFO S1M7DQorCX0NCiANCi0JbWNhX2NmZy5iYW5rcyA9IG1heChtY2FfY2ZnLmJhbmtzLCBiKTsNCisJ dGhpc19jcHVfd3JpdGUobWNlX251bV9iYW5rcywgYik7DQogDQogCWlmICghdGhpc19jcHVfcmVh ZChtY2VfYmFua3NfcGVyY3B1KSkgew0KIAkJaW50IGVyciA9IF9fbWNoZWNrX2NwdV9tY2VfYmFu a3NfaW5pdCgpOw0KQEAgLTE1NTcsNyArMTU2NCw3IEBAIHN0YXRpYyB2b2lkIF9fbWNoZWNrX2Nw dV9pbml0X2NsZWFyX2JhbmtzKHZvaWQpDQogCXN0cnVjdCBtY2VfYmFuayAqbWNlX2JhbmtzID0g dGhpc19jcHVfcmVhZChtY2VfYmFua3NfcGVyY3B1KTsNCiAJaW50IGk7DQogDQotCWZvciAoaSA9 IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IHRoaXNfY3B1 X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1j ZV9iYW5rc1tpXTsNCiANCiAJCWlmICghYi0+aW5pdCkNCkBAIC0xNjA4LDcgKzE2MTUsNyBAQCBz dGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0IGNwdWluZm9feDg2ICpj KQ0KIA0KIAkvKiBUaGlzIHNob3VsZCBiZSBkaXNhYmxlZCBieSB0aGUgQklPUywgYnV0IGlzbid0 IGFsd2F5cyAqLw0KIAlpZiAoYy0+eDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCkgew0KLQkJ aWYgKGMtPng4NiA9PSAxNSAmJiBjZmctPmJhbmtzID4gNCkgew0KKwkJaWYgKGMtPng4NiA9PSAx NSAmJiB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpID4gNCkgew0KIAkJCS8qDQogCQkJICog ZGlzYWJsZSBHQVJUIFRCTCB3YWxrIGVycm9yIHJlcG9ydGluZywgd2hpY2gNCiAJCQkgKiB0cmlw cyBvZmYgaW5jb3JyZWN0bHkgd2l0aCB0aGUgSU9NTVUgJiAzd2FyZQ0KQEAgLTE2MjcsNyArMTYz NCw3IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5m b194ODYgKmMpDQogCQkgKiBWYXJpb3VzIEs3cyB3aXRoIGJyb2tlbiBiYW5rIDAgYXJvdW5kLiBB bHdheXMgZGlzYWJsZQ0KIAkJICogYnkgZGVmYXVsdC4NCiAJCSAqLw0KLQkJaWYgKGMtPng4NiA9 PSA2ICYmIGNmZy0+YmFua3MgPiAwKQ0KKwkJaWYgKGMtPng4NiA9PSA2ICYmIHRoaXNfY3B1X3Jl YWQobWNlX251bV9iYW5rcykgPiAwKQ0KIAkJCW1jZV9iYW5rc1swXS5jdGwgPSAwOw0KIA0KIAkJ LyoNCkBAIC0xNjQ5LDcgKzE2NTYsNyBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9x dWlya3Moc3RydWN0IGNwdWluZm9feDg2ICpjKQ0KIAkJICogdmFsaWQgZXZlbnQgbGF0ZXIsIG1l cmVseSBkb24ndCB3cml0ZSBDVEwwLg0KIAkJICovDQogDQotCQlpZiAoYy0+eDg2ID09IDYgJiYg Yy0+eDg2X21vZGVsIDwgMHgxQSAmJiBjZmctPmJhbmtzID4gMCkNCisJCWlmIChjLT54ODYgPT0g NiAmJiBjLT54ODZfbW9kZWwgPCAweDFBICYmIHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykg PiAwKQ0KIAkJCW1jZV9iYW5rc1swXS5pbml0ID0gMDsNCiANCiAJCS8qDQpAQCAtMTg4Myw3ICsx ODkwLDcgQEAgc3RhdGljIHZvaWQgX19tY2VfZGlzYWJsZV9iYW5rKHZvaWQgKmFyZykNCiANCiB2 b2lkIG1jZV9kaXNhYmxlX2JhbmsoaW50IGJhbmspDQogew0KLQlpZiAoYmFuayA+PSBtY2FfY2Zn LmJhbmtzKSB7DQorCWlmIChiYW5rID49IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykpIHsN CiAJCXByX3dhcm4oRldfQlVHDQogCQkJIklnbm9yaW5nIHJlcXVlc3QgdG8gZGlzYWJsZSBpbnZh bGlkIE1DQSBiYW5rICVkLlxuIiwNCiAJCQliYW5rKTsNCkBAIC0xOTcyLDcgKzE5NzksNyBAQCBz dGF0aWMgdm9pZCBtY2VfZGlzYWJsZV9lcnJvcl9yZXBvcnRpbmcodm9pZCkNCiAJc3RydWN0IG1j ZV9iYW5rICptY2VfYmFua3MgPSB0aGlzX2NwdV9yZWFkKG1jZV9iYW5rc19wZXJjcHUpOw0KIAlp bnQgaTsNCiANCi0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3Ig KGkgPSAwOyBpIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQlzdHJ1 Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KIA0KIAkJaWYgKGItPmluaXQpDQpAQCAt MjA4Myw3ICsyMDkwLDcgQEAgc3RhdGljIHNzaXplX3Qgc2hvd19iYW5rKHN0cnVjdCBkZXZpY2Ug KnMsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KIAl1OCBiYW5rID0gYXR0cl90b19i YW5rKGF0dHIpLT5iYW5rOw0KIAlzdHJ1Y3QgbWNlX2JhbmsgKmI7DQogDQotCWlmIChiYW5rID49 IG1jYV9jZmcuYmFua3MpDQorCWlmIChiYW5rID49IHBlcl9jcHUobWNlX251bV9iYW5rcywgcy0+ aWQpKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQogCWIgPSAmcGVyX2NwdShtY2VfYmFua3NfcGVy Y3B1LCBzLT5pZClbYmFua107DQpAQCAtMjEwMSw3ICsyMTA4LDcgQEAgc3RhdGljIHNzaXplX3Qg c2V0X2Jhbmsoc3RydWN0IGRldmljZSAqcywgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs DQogCWlmIChrc3RydG91NjQoYnVmLCAwLCAmbmV3KSA8IDApDQogCQlyZXR1cm4gLUVJTlZBTDsN CiANCi0JaWYgKGJhbmsgPj0gbWNhX2NmZy5iYW5rcykNCisJaWYgKGJhbmsgPj0gcGVyX2NwdSht Y2VfbnVtX2JhbmtzLCBzLT5pZCkpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCiAJYiA9ICZwZXJf Y3B1KG1jZV9iYW5rc19wZXJjcHUsIHMtPmlkKVtiYW5rXTsNCkBAIC0yMjUzLDcgKzIyNjAsNyBA QCBzdGF0aWMgaW50IG1jZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGludCBjcHUpDQogCQlpZiAo ZXJyKQ0KIAkJCWdvdG8gZXJyb3I7DQogCX0NCi0JZm9yIChqID0gMDsgaiA8IG1jYV9jZmcuYmFu a3M7IGorKykgew0KKwlmb3IgKGogPSAwOyBqIDwgcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUp OyBqKyspIHsNCiAJCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZtY2VfYmFua19kZXZz W2pdLmF0dHIpOw0KIAkJaWYgKGVycikNCiAJCQlnb3RvIGVycm9yMjsNCkBAIC0yMjg1LDcgKzIy OTIsNyBAQCBzdGF0aWMgdm9pZCBtY2VfZGV2aWNlX3JlbW92ZSh1bnNpZ25lZCBpbnQgY3B1KQ0K IAlmb3IgKGkgPSAwOyBtY2VfZGV2aWNlX2F0dHJzW2ldOyBpKyspDQogCQlkZXZpY2VfcmVtb3Zl X2ZpbGUoZGV2LCBtY2VfZGV2aWNlX2F0dHJzW2ldKTsNCiANCi0JZm9yIChpID0gMDsgaSA8IG1j YV9jZmcuYmFua3M7IGkrKykNCisJZm9yIChpID0gMDsgaSA8IHBlcl9jcHUobWNlX251bV9iYW5r cywgY3B1KTsgaSsrKQ0KIAkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNb aV0uYXR0cik7DQogDQogCWRldmljZV91bnJlZ2lzdGVyKGRldik7DQpAQCAtMjMxNSw3ICsyMzIy LDcgQEAgc3RhdGljIHZvaWQgbWNlX3JlZW5hYmxlX2NwdSh2b2lkKQ0KIA0KIAlpZiAoIWNwdWhw X3Rhc2tzX2Zyb3plbikNCiAJCWNtY2lfcmVlbmFibGUoKTsNCi0JZm9yIChpID0gMDsgaSA8IG1j YV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19jcHVfcmVhZChtY2Vf bnVtX2JhbmtzKTsgaSsrKSB7DQogCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ld Ow0KIA0KIAkJaWYgKGItPmluaXQpDQpAQCAtMjUwMyw4ICsyNTEwLDYgQEAgRVhQT1JUX1NZTUJP TF9HUEwobWNzYWZlX2tleSk7DQogDQogc3RhdGljIGludCBfX2luaXQgbWNoZWNrX2xhdGVfaW5p dCh2b2lkKQ0KIHsNCi0JcHJfaW5mbygiVXNpbmcgJWQgTUNFIGJhbmtzXG4iLCBtY2FfY2ZnLmJh bmtzKTsNCi0NCiAJaWYgKG1jYV9jZmcucmVjb3ZlcnkpDQogCQlzdGF0aWNfYnJhbmNoX2luYygm bWNzYWZlX2tleSk7DQogDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvaW50 ZXJuYWwuaCBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2ludGVybmFsLmgNCmluZGV4IDM1YjNl NWMwMmMxYy4uNTIxNWRjZDAxNjE0IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9t Y2UvaW50ZXJuYWwuaA0KKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvaW50ZXJuYWwuaA0K QEAgLTExOCw3ICsxMTgsNiBAQCBzdHJ1Y3QgbWNhX2NvbmZpZyB7DQogCSAgICAgIGJpb3NfY21j aV90aHJlc2hvbGQJOiAxLA0KIAkgICAgICBfX3Jlc2VydmVkCQk6IDU5Ow0KIA0KLQl1OCBiYW5r czsNCiAJczggYm9vdGxvZzsNCiAJaW50IHRvbGVyYW50Ow0KIAlpbnQgbW9uYXJjaF90aW1lb3V0 Ow0KQEAgLTEyNyw2ICsxMjYsNyBAQCBzdHJ1Y3QgbWNhX2NvbmZpZyB7DQogfTsNCiANCiBleHRl cm4gc3RydWN0IG1jYV9jb25maWcgbWNhX2NmZzsNCitERUNMQVJFX1BFUl9DUFVfUkVBRF9NT1NU TFkodTgsIG1jZV9udW1fYmFua3MpOw0KIA0KIHN0cnVjdCBtY2VfdmVuZG9yX2ZsYWdzIHsNCiAJ LyoNCg== 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 B9DE0C43219 for ; Tue, 30 Apr 2019 20:32:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 721EF2087B for ; Tue, 30 Apr 2019 20:32:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="qyDjxuJu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726006AbfD3Uch (ORCPT ); Tue, 30 Apr 2019 16:32:37 -0400 Received: from mail-eopbgr710040.outbound.protection.outlook.com ([40.107.71.40]:6224 "EHLO NAM05-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727125AbfD3Ucg (ORCPT ); Tue, 30 Apr 2019 16:32:36 -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=W/monNWLEXYDAT6oM0LuJn22S0eOEOHn/IW3PTxZKvc=; b=qyDjxuJuOtv3T6X5iaUNDV9bVVBjA9qZMA5pGLvvqutu1M4JVgLqSctxPysC7NO2dYF0ho+P8PGfbl0iC/I5JQ1eDS3sw2zk4ZVnJBCTqLcnbZIT/F1Jse4F8xhkikqAwoK71YrsUFzZ2sFqUCaW+El1sQLflk6MFhZZEkd6NCY= Received: from SN6PR12MB2639.namprd12.prod.outlook.com (52.135.103.16) by SN6PR12MB2640.namprd12.prod.outlook.com (52.135.103.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Tue, 30 Apr 2019 20:32:20 +0000 Received: from SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::d8ec:7415:96b0:afe0]) by SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::d8ec:7415:96b0:afe0%2]) with mapi id 15.20.1835.018; Tue, 30 Apr 2019 20:32:20 +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 v3 4/6] x86/MCE: Make number of MCA banks per_cpu Thread-Topic: [PATCH v3 4/6] x86/MCE: Make number of MCA banks per_cpu Thread-Index: AQHU/5PPM7ZBD2KPAEGkkqngr+ktbQ== Date: Tue, 30 Apr 2019 20:32:20 +0000 Message-ID: <20190430203206.104163-5-Yazen.Ghannam@amd.com> References: <20190430203206.104163-1-Yazen.Ghannam@amd.com> In-Reply-To: <20190430203206.104163-1-Yazen.Ghannam@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN6PR02CA0019.namprd02.prod.outlook.com (2603:10b6:805:a2::32) 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: ee811037-0f39-4999-986b-08d6cdaaf177 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:SN6PR12MB2640; x-ms-traffictypediagnostic: SN6PR12MB2640: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:184; x-forefront-prvs: 00235A1EEF x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(366004)(39860400002)(346002)(396003)(136003)(199004)(189003)(14454004)(53936002)(4326008)(50226002)(1076003)(30864003)(478600001)(6116002)(3846002)(97736004)(5640700003)(26005)(8676002)(66946007)(66476007)(6512007)(73956011)(2501003)(8936002)(316002)(6436002)(6306002)(66446008)(71200400001)(86362001)(81156014)(36756003)(71190400001)(81166006)(66556008)(64756008)(66066001)(6916009)(54906003)(486006)(15650500001)(68736007)(5660300002)(6506007)(76176011)(305945005)(25786009)(256004)(14444005)(52116002)(7736002)(966005)(476003)(2906002)(446003)(72206003)(11346002)(2616005)(2351001)(386003)(102836004)(186003)(99286004)(6486002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR12MB2640;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: DYqjaGyyzWVhraZ5+kzQEPfZCI+FB0a8x1LIjiDf6Dd3ZQQpvKL7vpDyUliV0ycaCL8+A43gpdATIOMMwQECNFNkCM19TH/BkTYXp7hmIxkWnR1JM0tOkvreF5zthK6+8r06xyfH6JjlvcB0UV77ceUiEa+63+0AHjE3icb870hsiP9aG0pZcZTZxErK9FxKiniL76zD+W6paZ2PajPmjtrt3ug0P/6wbERPQVQKuDd2h3w/wT33ihlKypabnRRvAxtmXtXeeQHd186lyTe9Japm6GTbvkPilZkgdhF8UUj1wcFO51ZhZlT/c1fAusK6Px1YLu+SthmVMUZNSM9MeMjMifRUcltPzZfT+z1uJwl30kRZycWaqh73W3xKEZFdTA5EFcN0uWYlRZwJW8n11auci9Zolo/Awvk+obWijSY= 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: ee811037-0f39-4999-986b-08d6cdaaf177 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 20:32:20.2928 (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: SN6PR12MB2640 Sender: linux-edac-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-edac@vger.kernel.org Message-ID: <20190430203220.pyyiVS7mS94mWh5e7nz7kCnrJ0VDPHBbEFir9zgUqZM@z> RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpUaGUgbnVtYmVy IG9mIE1DQSBiYW5rcyBpcyBwcm92aWRlZCBwZXIgbG9naWNhbCBDUFUuIEhpc3RvcmljYWxseSwg dGhpcw0KbnVtYmVyIGhhcyBiZWVuIHRoZSBzYW1lIGFjcm9zcyBhbGwgQ1BVcywgYnV0IHRoaXMg aXMgbm90IGFuDQphcmNoaXRlY3R1cmFsIGd1YXJhbnRlZS4gRnV0dXJlIEFNRCBzeXN0ZW1zIG1h eSBoYXZlIE1DQSBiYW5rIGNvdW50cw0KdGhhdCB2YXJ5IGJldHdlZW4gbG9naWNhbCBDUFVzIGlu IGEgc3lzdGVtLg0KDQpUaGlzIGlzc3VlIHdhcyBwYXJ0aWFsbHkgYWRkcmVzc2VkIGluDQoNCjAw NmMwNzcwNDFkYyAoIng4Ni9tY2U6IEhhbmRsZSB2YXJ5aW5nIE1DQSBiYW5rIGNvdW50cyIpDQoN CmJ5IGFsbG9jYXRpbmcgc3RydWN0dXJlcyB1c2luZyB0aGUgbWF4aW11bSBudW1iZXIgb2YgTUNB IGJhbmtzIGFuZCBieQ0Kc2F2aW5nIHRoZSBtYXhpbXVtIE1DQSBiYW5rIGNvdW50IGluIGEgc3lz dGVtIGFzIHRoZSBnbG9iYWwgY291bnQuIFRoaXMNCm1lYW5zIHRoYXQgc29tZSBleHRyYSBzdHJ1 Y3R1cmVzIGFyZSBhbGxvY2F0ZWQuIEFsc28sIHRoaXMgbWVhbnMgdGhhdA0KQ1BVcyB3aWxsIHNw ZW5kIG1vcmUgdGltZSBpbiB0aGUgI01DIGFuZCBvdGhlciBoYW5kbGVycyBjaGVja2luZyBleHRy YQ0KTUNBIGJhbmtzLg0KDQpEZWZpbmUgdGhlIG51bWJlciBvZiBNQ0EgYmFua3MgYXMgYSBwZXJf Y3B1IHZhcmlhYmxlLiBSZXBsYWNlIGFsbCB1c2VzDQpvZiBtY2FfY2ZnLmJhbmtzIHdpdGggdGhp cy4NCg0KQWxzbywgdXNlIHRoZSBwZXJfY3B1IGJhbmsgY291bnQgd2hlbiBhbGxvY2F0aW5nIHBl cl9jcHUgc3RydWN0dXJlcy4NCg0KU2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4u Z2hhbm5hbUBhbWQuY29tPg0KLS0tDQpMaW5rOg0KaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8y MDE5MDQxMTIwMTc0My40MzE5NS01LVlhemVuLkdoYW5uYW1AYW1kLmNvbQ0KDQp2Mi0+djM6DQoq IERyb3AgcHJfZGVidWcoKSBtZXNzYWdlLg0KKiBDaGFuZ2UgY29tbWl0IHJlZmVyZW5jZSBmb3Jt YXQuDQoNCnYxLT52MjoNCiogRHJvcCBleHBvcnQgb2YgbmV3IHZhcmlhYmxlIGFuZCBsZWF2ZSBp bmplY3RvciBjb2RlIGFzLWlzLg0KKiBBZGQgIm1jZV8iIHByZWZpeCB0byBuZXcgIm51bV9iYW5r cyIgdmFyaWFibGUuDQoNCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9hbWQuYyAgICAgIHwgMTcg KysrKysrLS0tLS0NCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMgICAgIHwgNDcgKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tDQogYXJjaC94ODYva2VybmVsL2NwdS9tY2UvaW50 ZXJuYWwuaCB8ICAyICstDQogMyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAzMCBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2FtZC5j IGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvYW1kLmMNCmluZGV4IGQ0ZDZlNGI3ZjlkYy4uOWY3 MjlkNTA2NzZjIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvYW1kLmMNCisr KyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2FtZC5jDQpAQCAtNDk1LDcgKzQ5NSw3IEBAIHN0 YXRpYyB1MzIgZ2V0X2Jsb2NrX2FkZHJlc3ModTMyIGN1cnJlbnRfYWRkciwgdTMyIGxvdywgdTMy IGhpZ2gsDQogew0KIAl1MzIgYWRkciA9IDAsIG9mZnNldCA9IDA7DQogDQotCWlmICgoYmFuayA+ PSBtY2FfY2ZnLmJhbmtzKSB8fCAoYmxvY2sgPj0gTlJfQkxPQ0tTKSkNCisJaWYgKChiYW5rID49 IHBlcl9jcHUobWNlX251bV9iYW5rcywgY3B1KSkgfHwgKGJsb2NrID49IE5SX0JMT0NLUykpDQog CQlyZXR1cm4gYWRkcjsNCiANCiAJaWYgKG1jZV9mbGFncy5zbWNhKQ0KQEAgLTYzMSw3ICs2MzEs OCBAQCB2b2lkIG1jZV9hbWRfZmVhdHVyZV9pbml0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykNCiAJ dW5zaWduZWQgaW50IGJhbmssIGJsb2NrLCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7DQogCWlu dCBvZmZzZXQgPSAtMTsNCiANCi0JZm9yIChiYW5rID0gMDsgYmFuayA8IG1jYV9jZmcuYmFua3M7 ICsrYmFuaykgew0KKw0KKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgdGhpc19jcHVfcmVhZChtY2Vf bnVtX2JhbmtzKTsgKytiYW5rKSB7DQogCQlpZiAobWNlX2ZsYWdzLnNtY2EpDQogCQkJc21jYV9j b25maWd1cmUoYmFuaywgY3B1KTsNCiANCkBAIC05NzYsNyArOTc3LDcgQEAgc3RhdGljIHZvaWQg YW1kX2RlZmVycmVkX2Vycm9yX2ludGVycnVwdCh2b2lkKQ0KIHsNCiAJdW5zaWduZWQgaW50IGJh bms7DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsgPCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspDQor CWZvciAoYmFuayA9IDA7IGJhbmsgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyArK2Jh bmspDQogCQlsb2dfZXJyb3JfZGVmZXJyZWQoYmFuayk7DQogfQ0KIA0KQEAgLTEwMTcsNyArMTAx OCw3IEBAIHN0YXRpYyB2b2lkIGFtZF90aHJlc2hvbGRfaW50ZXJydXB0KHZvaWQpDQogCXN0cnVj dCB0aHJlc2hvbGRfYmxvY2sgKmZpcnN0X2Jsb2NrID0gTlVMTCwgKmJsb2NrID0gTlVMTCwgKnRt cCA9IE5VTEw7DQogCXVuc2lnbmVkIGludCBiYW5rLCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7 DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsgPCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspIHsNCisJ Zm9yIChiYW5rID0gMDsgYmFuayA8IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7ICsrYmFu aykgew0KIAkJaWYgKCEocGVyX2NwdShiYW5rX21hcCwgY3B1KSAmICgxIDw8IGJhbmspKSkNCiAJ CQljb250aW51ZTsNCiANCkBAIC0xMjA0LDcgKzEyMDUsNyBAQCBzdGF0aWMgaW50IGFsbG9jYXRl X3RocmVzaG9sZF9ibG9ja3ModW5zaWduZWQgaW50IGNwdSwgdW5zaWduZWQgaW50IGJhbmssDQog CXUzMiBsb3csIGhpZ2g7DQogCWludCBlcnI7DQogDQotCWlmICgoYmFuayA+PSBtY2FfY2ZnLmJh bmtzKSB8fCAoYmxvY2sgPj0gTlJfQkxPQ0tTKSkNCisJaWYgKChiYW5rID49IHBlcl9jcHUobWNl X251bV9iYW5rcywgY3B1KSkgfHwgKGJsb2NrID49IE5SX0JMT0NLUykpDQogCQlyZXR1cm4gMDsN CiANCiAJaWYgKHJkbXNyX3NhZmVfb25fY3B1KGNwdSwgYWRkcmVzcywgJmxvdywgJmhpZ2gpKQ0K QEAgLTE0MzgsNyArMTQzOSw3IEBAIGludCBtY2VfdGhyZXNob2xkX3JlbW92ZV9kZXZpY2UodW5z aWduZWQgaW50IGNwdSkNCiB7DQogCXVuc2lnbmVkIGludCBiYW5rOw0KIA0KLQlmb3IgKGJhbmsg PSAwOyBiYW5rIDwgbWNhX2NmZy5iYW5rczsgKytiYW5rKSB7DQorCWZvciAoYmFuayA9IDA7IGJh bmsgPCBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSk7ICsrYmFuaykgew0KIAkJaWYgKCEocGVy X2NwdShiYW5rX21hcCwgY3B1KSAmICgxIDw8IGJhbmspKSkNCiAJCQljb250aW51ZTsNCiAJCXRo cmVzaG9sZF9yZW1vdmVfYmFuayhjcHUsIGJhbmspOw0KQEAgLTE0NTksMTQgKzE0NjAsMTQgQEAg aW50IG1jZV90aHJlc2hvbGRfY3JlYXRlX2RldmljZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAlpZiAo YnApDQogCQlyZXR1cm4gMDsNCiANCi0JYnAgPSBrY2FsbG9jKG1jYV9jZmcuYmFua3MsIHNpemVv ZihzdHJ1Y3QgdGhyZXNob2xkX2JhbmsgKiksDQorCWJwID0ga2NhbGxvYyhwZXJfY3B1KG1jZV9u dW1fYmFua3MsIGNwdSksIHNpemVvZihzdHJ1Y3QgdGhyZXNob2xkX2JhbmsgKiksDQogCQkgICAg IEdGUF9LRVJORUwpOw0KIAlpZiAoIWJwKQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQogCXBlcl9j cHUodGhyZXNob2xkX2JhbmtzLCBjcHUpID0gYnA7DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsg PCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspIHsNCisJZm9yIChiYW5rID0gMDsgYmFuayA8IHBlcl9j cHUobWNlX251bV9iYW5rcywgY3B1KTsgKytiYW5rKSB7DQogCQlpZiAoIShwZXJfY3B1KGJhbmtf bWFwLCBjcHUpICYgKDEgPDwgYmFuaykpKQ0KIAkJCWNvbnRpbnVlOw0KIAkJZXJyID0gdGhyZXNo b2xkX2NyZWF0ZV9iYW5rKGNwdSwgYmFuayk7DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVs L2NwdS9tY2UvY29yZS5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29yZS5jDQppbmRleCA2 NjM0N2JkYzhiMDguLjk4NmRlODMwZjI2ZSAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9j cHUvbWNlL2NvcmUuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29yZS5jDQpAQCAt NjQsNiArNjQsOCBAQCBzdGF0aWMgREVGSU5FX01VVEVYKG1jZV9zeXNmc19tdXRleCk7DQogDQog REVGSU5FX1BFUl9DUFUodW5zaWduZWQsIG1jZV9leGNlcHRpb25fY291bnQpOw0KIA0KK0RFRklO RV9QRVJfQ1BVX1JFQURfTU9TVExZKHU4LCBtY2VfbnVtX2JhbmtzKTsNCisNCiBzdHJ1Y3QgbWNl X2Jhbmsgew0KIAl1NjQJCQljdGw7CQkJLyogc3ViZXZlbnRzIHRvIGVuYWJsZSAqLw0KIAlib29s CQkJaW5pdDsJCQkvKiBpbml0aWFsaXNlIGJhbms/ICovDQpAQCAtNzAwLDcgKzcwMiw3IEBAIGJv b2wgbWFjaGluZV9jaGVja19wb2xsKGVudW0gbWNwX2ZsYWdzIGZsYWdzLCBtY2VfYmFua3NfdCAq YikNCiAJaWYgKGZsYWdzICYgTUNQX1RJTUVTVEFNUCkNCiAJCW0udHNjID0gcmR0c2MoKTsNCiAN Ci0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBp IDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQlpZiAoIW1jZV9iYW5r c1tpXS5jdGwgfHwgIXRlc3RfYml0KGksICpiKSkNCiAJCQljb250aW51ZTsNCiANCkBAIC04MDIs NyArODA0LDcgQEAgc3RhdGljIGludCBtY2Vfbm9fd2F5X291dChzdHJ1Y3QgbWNlICptLCBjaGFy ICoqbXNnLCB1bnNpZ25lZCBsb25nICp2YWxpZHAsDQogCWNoYXIgKnRtcDsNCiAJaW50IGk7DQog DQotCWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsg aSA8IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJbS0+c3RhdHVzID0g bWNlX3JkbXNybChtc3Jfb3BzLnN0YXR1cyhpKSk7DQogCQlpZiAoIShtLT5zdGF0dXMgJiBNQ0lf U1RBVFVTX1ZBTCkpDQogCQkJY29udGludWU7DQpAQCAtMTA4Miw3ICsxMDg0LDcgQEAgc3RhdGlj IHZvaWQgbWNlX2NsZWFyX3N0YXRlKHVuc2lnbmVkIGxvbmcgKnRvY2xlYXIpDQogew0KIAlpbnQg aTsNCiANCi0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkg PSAwOyBpIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7DQogCQlpZiAodGVz dF9iaXQoaSwgdG9jbGVhcikpDQogCQkJbWNlX3dybXNybChtc3Jfb3BzLnN0YXR1cyhpKSwgMCk7 DQogCX0NCkBAIC0xMTQwLDcgKzExNDIsNyBAQCBzdGF0aWMgdm9pZCBfX21jX3NjYW5fYmFua3Mo c3RydWN0IG1jZSAqbSwgc3RydWN0IG1jZSAqZmluYWwsDQogCXN0cnVjdCBtY2FfY29uZmlnICpj ZmcgPSAmbWNhX2NmZzsNCiAJaW50IHNldmVyaXR5LCBpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwg Y2ZnLT5iYW5rczsgaSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9u dW1fYmFua3MpOyBpKyspIHsNCiAJCV9fY2xlYXJfYml0KGksIHRvY2xlYXIpOw0KIAkJaWYgKCF0 ZXN0X2JpdChpLCB2YWxpZF9iYW5rcykpDQogCQkJY29udGludWU7DQpAQCAtMTQ4MCwxNCArMTQ4 MiwxNSBAQCBFWFBPUlRfU1lNQk9MX0dQTChtY2Vfbm90aWZ5X2lycSk7DQogDQogc3RhdGljIGlu dCBfX21jaGVja19jcHVfbWNlX2JhbmtzX2luaXQodm9pZCkNCiB7DQorCXU4IG5fYmFua3MgPSB0 aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOw0KIAlzdHJ1Y3QgbWNlX2JhbmsgKm1jZV9iYW5r czsNCiAJaW50IGk7DQogDQotCW1jZV9iYW5rcyA9IGtjYWxsb2MoTUFYX05SX0JBTktTLCBzaXpl b2Yoc3RydWN0IG1jZV9iYW5rKSwgR0ZQX0tFUk5FTCk7DQorCW1jZV9iYW5rcyA9IGtjYWxsb2Mo bl9iYW5rcywgc2l6ZW9mKHN0cnVjdCBtY2VfYmFuayksIEdGUF9LRVJORUwpOw0KIAlpZiAoIW1j ZV9iYW5rcykNCiAJCXJldHVybiAtRU5PTUVNOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgTUFYX05S X0JBTktTOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IG5fYmFua3M7IGkrKykgew0KIAkJc3Ry dWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCiANCiAJCWItPmN0bCA9IC0xVUxMOw0K QEAgLTE1MDksMTAgKzE1MTIsMTQgQEAgc3RhdGljIGludCBfX21jaGVja19jcHVfY2FwX2luaXQo dm9pZCkNCiAJcmRtc3JsKE1TUl9JQTMyX01DR19DQVAsIGNhcCk7DQogDQogCWIgPSBjYXAgJiBN Q0dfQkFOS0NOVF9NQVNLOw0KLQlpZiAoV0FSTl9PTl9PTkNFKGIgPiBNQVhfTlJfQkFOS1MpKQ0K Kw0KKwlpZiAoYiA+IE1BWF9OUl9CQU5LUykgew0KKwkJcHJfd2FybigiQ1BVJWQ6IFVzaW5nIG9u bHkgJXUgbWFjaGluZSBjaGVjayBiYW5rcyBvdXQgb2YgJXVcbiIsDQorCQkJc21wX3Byb2Nlc3Nv cl9pZCgpLCBNQVhfTlJfQkFOS1MsIGIpOw0KIAkJYiA9IE1BWF9OUl9CQU5LUzsNCisJfQ0KIA0K LQltY2FfY2ZnLmJhbmtzID0gbWF4KG1jYV9jZmcuYmFua3MsIGIpOw0KKwl0aGlzX2NwdV93cml0 ZShtY2VfbnVtX2JhbmtzLCBiKTsNCiANCiAJaWYgKCF0aGlzX2NwdV9yZWFkKG1jZV9iYW5rc19w ZXJjcHUpKSB7DQogCQlpbnQgZXJyID0gX19tY2hlY2tfY3B1X21jZV9iYW5rc19pbml0KCk7DQpA QCAtMTU1Nyw3ICsxNTY0LDcgQEAgc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1X2luaXRfY2xlYXJf YmFua3Modm9pZCkNCiAJc3RydWN0IG1jZV9iYW5rICptY2VfYmFua3MgPSB0aGlzX2NwdV9yZWFk KG1jZV9iYW5rc19wZXJjcHUpOw0KIAlpbnQgaTsNCiANCi0JZm9yIChpID0gMDsgaSA8IG1jYV9j ZmcuYmFua3M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19jcHVfcmVhZChtY2VfbnVt X2JhbmtzKTsgaSsrKSB7DQogCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0K IA0KIAkJaWYgKCFiLT5pbml0KQ0KQEAgLTE2MDgsNyArMTYxNSw3IEBAIHN0YXRpYyBpbnQgX19t Y2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpDQogDQogCS8qIFRo aXMgc2hvdWxkIGJlIGRpc2FibGVkIGJ5IHRoZSBCSU9TLCBidXQgaXNuJ3QgYWx3YXlzICovDQog CWlmIChjLT54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSB7DQotCQlpZiAoYy0+eDg2ID09 IDE1ICYmIGNmZy0+YmFua3MgPiA0KSB7DQorCQlpZiAoYy0+eDg2ID09IDE1ICYmIHRoaXNfY3B1 X3JlYWQobWNlX251bV9iYW5rcykgPiA0KSB7DQogCQkJLyoNCiAJCQkgKiBkaXNhYmxlIEdBUlQg VEJMIHdhbGsgZXJyb3IgcmVwb3J0aW5nLCB3aGljaA0KIAkJCSAqIHRyaXBzIG9mZiBpbmNvcnJl Y3RseSB3aXRoIHRoZSBJT01NVSAmIDN3YXJlDQpAQCAtMTYyNyw3ICsxNjM0LDcgQEAgc3RhdGlj IGludCBfX21jaGVja19jcHVfYXBwbHlfcXVpcmtzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykNCiAJ CSAqIFZhcmlvdXMgSzdzIHdpdGggYnJva2VuIGJhbmsgMCBhcm91bmQuIEFsd2F5cyBkaXNhYmxl DQogCQkgKiBieSBkZWZhdWx0Lg0KIAkJICovDQotCQlpZiAoYy0+eDg2ID09IDYgJiYgY2ZnLT5i YW5rcyA+IDApDQorCQlpZiAoYy0+eDg2ID09IDYgJiYgdGhpc19jcHVfcmVhZChtY2VfbnVtX2Jh bmtzKSA+IDApDQogCQkJbWNlX2JhbmtzWzBdLmN0bCA9IDA7DQogDQogCQkvKg0KQEAgLTE2NDks NyArMTY1Niw3IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3Qg Y3B1aW5mb194ODYgKmMpDQogCQkgKiB2YWxpZCBldmVudCBsYXRlciwgbWVyZWx5IGRvbid0IHdy aXRlIENUTDAuDQogCQkgKi8NCiANCi0JCWlmIChjLT54ODYgPT0gNiAmJiBjLT54ODZfbW9kZWwg PCAweDFBICYmIGNmZy0+YmFua3MgPiAwKQ0KKwkJaWYgKGMtPng4NiA9PSA2ICYmIGMtPng4Nl9t b2RlbCA8IDB4MUEgJiYgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKSA+IDApDQogCQkJbWNl X2JhbmtzWzBdLmluaXQgPSAwOw0KIA0KIAkJLyoNCkBAIC0xODgzLDcgKzE4OTAsNyBAQCBzdGF0 aWMgdm9pZCBfX21jZV9kaXNhYmxlX2Jhbmsodm9pZCAqYXJnKQ0KIA0KIHZvaWQgbWNlX2Rpc2Fi bGVfYmFuayhpbnQgYmFuaykNCiB7DQotCWlmIChiYW5rID49IG1jYV9jZmcuYmFua3MpIHsNCisJ aWYgKGJhbmsgPj0gdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKSkgew0KIAkJcHJfd2FybihG V19CVUcNCiAJCQkiSWdub3JpbmcgcmVxdWVzdCB0byBkaXNhYmxlIGludmFsaWQgTUNBIGJhbmsg JWQuXG4iLA0KIAkJCWJhbmspOw0KQEAgLTE5NzIsNyArMTk3OSw3IEBAIHN0YXRpYyB2b2lkIG1j ZV9kaXNhYmxlX2Vycm9yX3JlcG9ydGluZyh2b2lkKQ0KIAlzdHJ1Y3QgbWNlX2JhbmsgKm1jZV9i YW5rcyA9IHRoaXNfY3B1X3JlYWQobWNlX2JhbmtzX3BlcmNwdSk7DQogCWludCBpOw0KIA0KLQlm b3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCB0 aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyBpKyspIHsNCiAJCXN0cnVjdCBtY2VfYmFuayAq YiA9ICZtY2VfYmFua3NbaV07DQogDQogCQlpZiAoYi0+aW5pdCkNCkBAIC0yMDgzLDcgKzIwOTAs NyBAQCBzdGF0aWMgc3NpemVfdCBzaG93X2Jhbmsoc3RydWN0IGRldmljZSAqcywgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsDQogCXU4IGJhbmsgPSBhdHRyX3RvX2JhbmsoYXR0ciktPmJh bms7DQogCXN0cnVjdCBtY2VfYmFuayAqYjsNCiANCi0JaWYgKGJhbmsgPj0gbWNhX2NmZy5iYW5r cykNCisJaWYgKGJhbmsgPj0gcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBzLT5pZCkpDQogCQlyZXR1 cm4gLUVJTlZBTDsNCiANCiAJYiA9ICZwZXJfY3B1KG1jZV9iYW5rc19wZXJjcHUsIHMtPmlkKVti YW5rXTsNCkBAIC0yMTAxLDcgKzIxMDgsNyBAQCBzdGF0aWMgc3NpemVfdCBzZXRfYmFuayhzdHJ1 Y3QgZGV2aWNlICpzLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJaWYgKGtzdHJ0 b3U2NChidWYsIDAsICZuZXcpIDwgMCkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KLQlpZiAoYmFu ayA+PSBtY2FfY2ZnLmJhbmtzKQ0KKwlpZiAoYmFuayA+PSBwZXJfY3B1KG1jZV9udW1fYmFua3Ms IHMtPmlkKSkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KIAliID0gJnBlcl9jcHUobWNlX2Jhbmtz X3BlcmNwdSwgcy0+aWQpW2JhbmtdOw0KQEAgLTIyNTMsNyArMjI2MCw3IEBAIHN0YXRpYyBpbnQg bWNlX2RldmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiAJCWlmIChlcnIpDQogCQkJZ290 byBlcnJvcjsNCiAJfQ0KLQlmb3IgKGogPSAwOyBqIDwgbWNhX2NmZy5iYW5rczsgaisrKSB7DQor CWZvciAoaiA9IDA7IGogPCBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSk7IGorKykgew0KIAkJ ZXJyID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNbal0uYXR0cik7DQog CQlpZiAoZXJyKQ0KIAkJCWdvdG8gZXJyb3IyOw0KQEAgLTIyODUsNyArMjI5Miw3IEBAIHN0YXRp YyB2b2lkIG1jZV9kZXZpY2VfcmVtb3ZlKHVuc2lnbmVkIGludCBjcHUpDQogCWZvciAoaSA9IDA7 IG1jZV9kZXZpY2VfYXR0cnNbaV07IGkrKykNCiAJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsIG1j ZV9kZXZpY2VfYXR0cnNbaV0pOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsg aSsrKQ0KKwlmb3IgKGkgPSAwOyBpIDwgcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUpOyBpKysp DQogCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNlX2JhbmtfZGV2c1tpXS5hdHRyKTsNCiAN CiAJZGV2aWNlX3VucmVnaXN0ZXIoZGV2KTsNCkBAIC0yMzE1LDcgKzIzMjIsNyBAQCBzdGF0aWMg dm9pZCBtY2VfcmVlbmFibGVfY3B1KHZvaWQpDQogDQogCWlmICghY3B1aHBfdGFza3NfZnJvemVu KQ0KIAkJY21jaV9yZWVuYWJsZSgpOw0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsg aSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyBp KyspIHsNCiAJCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3NbaV07DQogDQogCQlpZiAo Yi0+aW5pdCkNCkBAIC0yNTAzLDggKzI1MTAsNiBAQCBFWFBPUlRfU1lNQk9MX0dQTChtY3NhZmVf a2V5KTsNCiANCiBzdGF0aWMgaW50IF9faW5pdCBtY2hlY2tfbGF0ZV9pbml0KHZvaWQpDQogew0K LQlwcl9pbmZvKCJVc2luZyAlZCBNQ0UgYmFua3NcbiIsIG1jYV9jZmcuYmFua3MpOw0KLQ0KIAlp ZiAobWNhX2NmZy5yZWNvdmVyeSkNCiAJCXN0YXRpY19icmFuY2hfaW5jKCZtY3NhZmVfa2V5KTsN CiANCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5oIGIvYXJj aC94ODYva2VybmVsL2NwdS9tY2UvaW50ZXJuYWwuaA0KaW5kZXggMzViM2U1YzAyYzFjLi41MjE1 ZGNkMDE2MTQgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5o DQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5oDQpAQCAtMTE4LDcgKzEx OCw2IEBAIHN0cnVjdCBtY2FfY29uZmlnIHsNCiAJICAgICAgYmlvc19jbWNpX3RocmVzaG9sZAk6 IDEsDQogCSAgICAgIF9fcmVzZXJ2ZWQJCTogNTk7DQogDQotCXU4IGJhbmtzOw0KIAlzOCBib290 bG9nOw0KIAlpbnQgdG9sZXJhbnQ7DQogCWludCBtb25hcmNoX3RpbWVvdXQ7DQpAQCAtMTI3LDYg KzEyNiw3IEBAIHN0cnVjdCBtY2FfY29uZmlnIHsNCiB9Ow0KIA0KIGV4dGVybiBzdHJ1Y3QgbWNh X2NvbmZpZyBtY2FfY2ZnOw0KK0RFQ0xBUkVfUEVSX0NQVV9SRUFEX01PU1RMWSh1OCwgbWNlX251 bV9iYW5rcyk7DQogDQogc3RydWN0IG1jZV92ZW5kb3JfZmxhZ3Mgew0KIAkvKg0KLS0gDQoyLjE3 LjENCg0K