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_HELO_NONE,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 92A58C468BC for ; Fri, 7 Jun 2019 20:18:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5E52D208C0 for ; Fri, 7 Jun 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="pxN0e2RQ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730540AbfFGUSU (ORCPT ); Fri, 7 Jun 2019 16:18:20 -0400 Received: from mail-eopbgr800079.outbound.protection.outlook.com ([40.107.80.79]:26017 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729153AbfFGUSU (ORCPT ); Fri, 7 Jun 2019 16:18:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mlXZozsns6Ab5CU1eCYf1DdOneKHQ235oVyNbfPdQQA=; b=pxN0e2RQRjeyHVpWwRdPpDQNKAIbSHsxTZiV6WzxEYhOS7IvLhoDJwdjcqoXsdiBcaaHJV8jC2Lx4SYFqwDjJrbwNQFSA4O76HdWQzZ0WnN0idnpClGtFGRyXuCoCi4qKKcU57NmAqtd0RFp6vchWeVLPXlm7GIpDpjTwuExD/Q= Received: from SN6PR12MB2639.namprd12.prod.outlook.com (52.135.103.16) by SN6PR12MB2704.namprd12.prod.outlook.com (52.135.103.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.12; Fri, 7 Jun 2019 20:18:05 +0000 Received: from SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::69b5:19ac:b63d:2b82]) by SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::69b5:19ac:b63d:2b82%3]) with mapi id 15.20.1965.011; Fri, 7 Jun 2019 20:18:05 +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 v4 4/5] x86/MCE: Make the number of MCA banks a per-CPU variable Thread-Topic: [PATCH v4 4/5] x86/MCE: Make the number of MCA banks a per-CPU variable Thread-Index: AQHVHW4d9SmNI7luSUK7yZGwAmT6ug== Date: Fri, 7 Jun 2019 20:18:05 +0000 Message-ID: <20190607201752.221446-5-Yazen.Ghannam@amd.com> References: <20190607201752.221446-1-Yazen.Ghannam@amd.com> In-Reply-To: <20190607201752.221446-1-Yazen.Ghannam@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN4PR0501CA0109.namprd05.prod.outlook.com (2603:10b6:803:42::26) 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: 72f89720-9a30-4d68-a68f-08d6eb853fc5 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:SN6PR12MB2704; x-ms-traffictypediagnostic: SN6PR12MB2704: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:174; x-forefront-prvs: 0061C35778 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(366004)(376002)(346002)(136003)(396003)(189003)(199004)(6486002)(6436002)(72206003)(5640700003)(316002)(966005)(186003)(15650500001)(26005)(478600001)(4326008)(6306002)(68736007)(66946007)(6512007)(446003)(25786009)(73956011)(64756008)(66476007)(66556008)(66446008)(486006)(53936002)(11346002)(2616005)(14454004)(476003)(30864003)(66066001)(5660300002)(52116002)(14444005)(256004)(2501003)(305945005)(2351001)(102836004)(386003)(71190400001)(71200400001)(6506007)(3846002)(6116002)(7736002)(81166006)(36756003)(6916009)(81156014)(8676002)(8936002)(1076003)(50226002)(99286004)(76176011)(54906003)(86362001)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR12MB2704;H:SN6PR12MB2639.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A: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: W40mRppzRYJOC69noEEPspeO7JBWlP/daoIBC7dlpMCSIL/I1wyDZ2491Zo+W9dn1t4tmy2jyqs7zbm690hAXZJCIP7ZFwSXX48iaDB03xSKF+Zc07jxfqgaqFPeyRyBzObqWQ/1PZFYxCN9vAoLGO9U28vDEGIIRaXVvB6Bv5Ga76z/1b4knhCfzut/u2e0AVGpR/ndUHwP04wcJgAYhNJQEO4QJFpNKFga7GnQCxurfkUysPf9GaK83VHI15fGlbBEUovdj3x6Bs/WK/cQaXzmgUeh/wRgCehGj8h8O4bT40e4ldV6qS1DSvmIh1lc0zkMD0vNr4ZtMTOtUBX4dKLUHaOhwGKiP5csWa0Y90monWHhT0QpgPBC4yL0mt/gjuPNwbBzxzcOx8++84vW74FTL5HTE9jVm4yAjy39MSQ= 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: 72f89720-9a30-4d68-a68f-08d6eb853fc5 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2019 20:18:05.5227 (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-CrossTenant-userprincipalname: yghannam@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2704 Sender: linux-edac-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-edac@vger.kernel.org RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpUaGUgbnVtYmVy IG9mIE1DQSBiYW5rcyBpcyBwcm92aWRlZCBwZXIgbG9naWNhbCBDUFUuIEhpc3RvcmljYWxseSwg dGhpcw0KbnVtYmVyIGhhcyBiZWVuIHRoZSBzYW1lIGFjcm9zcyBhbGwgQ1BVcywgYnV0IHRoaXMg aXMgbm90IGFuDQphcmNoaXRlY3R1cmFsIGd1YXJhbnRlZS4gRnV0dXJlIEFNRCBzeXN0ZW1zIG1h eSBoYXZlIE1DQSBiYW5rIGNvdW50cw0KdGhhdCB2YXJ5IGJldHdlZW4gbG9naWNhbCBDUFVzIGlu IGEgc3lzdGVtLg0KDQpUaGlzIGlzc3VlIHdhcyBwYXJ0aWFsbHkgYWRkcmVzc2VkIGluDQoNCiAg MDA2YzA3NzA0MWRjICgieDg2L21jZTogSGFuZGxlIHZhcnlpbmcgTUNBIGJhbmsgY291bnRzIikN Cg0KYnkgYWxsb2NhdGluZyBzdHJ1Y3R1cmVzIHVzaW5nIHRoZSBtYXhpbXVtIG51bWJlciBvZiBN Q0EgYmFua3MgYW5kIGJ5DQpzYXZpbmcgdGhlIG1heGltdW0gTUNBIGJhbmsgY291bnQgaW4gYSBz eXN0ZW0gYXMgdGhlIGdsb2JhbCBjb3VudC4gVGhpcw0KbWVhbnMgdGhhdCBzb21lIGV4dHJhIHN0 cnVjdHVyZXMgYXJlIGFsbG9jYXRlZC4gQWxzbywgdGhpcyBtZWFucyB0aGF0DQpDUFVzIHdpbGwg c3BlbmQgbW9yZSB0aW1lIGluIHRoZSAjTUMgYW5kIG90aGVyIGhhbmRsZXJzIGNoZWNraW5nIGV4 dHJhDQpNQ0EgYmFua3MuDQoNClRodXMsIGRlZmluZSB0aGUgbnVtYmVyIG9mIE1DQSBiYW5rcyBh cyBhIHBlci1DUFUgdmFyaWFibGUuDQoNCiBbIGJwOiBNYWtlIG1jZV9udW1fYmFua3MgYW4gdW5z aWduZWQgaW50LiBdDQoNClNpZ25lZC1vZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlhemVuLmdoYW5u YW1AYW1kLmNvbT4NCi0tLQ0KTGluazoNCmh0dHBzOi8vbGttbC5rZXJuZWwub3JnL3IvMjAxOTA0 MzAyMDMyMDYuMTA0MTYzLTUtWWF6ZW4uR2hhbm5hbUBhbWQuY29tDQoNCnYzLT52NDoNCiogSW5j bHVkZSBCb3JpcycgY2hhbmdlLg0KDQp2Mi0+djM6DQoqIERyb3AgcHJfZGVidWcoKSBtZXNzYWdl Lg0KKiBDaGFuZ2UgY29tbWl0IHJlZmVyZW5jZSBmb3JtYXQuDQoNCnYxLT52MjoNCiogRHJvcCBl eHBvcnQgb2YgbmV3IHZhcmlhYmxlIGFuZCBsZWF2ZSBpbmplY3RvciBjb2RlIGFzLWlzLg0KKiBB ZGQgIm1jZV8iIHByZWZpeCB0byBuZXcgIm51bV9iYW5rcyIgdmFyaWFibGUuDQoNCiBhcmNoL3g4 Ni9rZXJuZWwvY3B1L21jZS9hbWQuYyAgICAgIHwgMTkgKysrKysrKy0tLS0tLQ0KIGFyY2gveDg2 L2tlcm5lbC9jcHUvbWNlL2NvcmUuYyAgICAgfCA0NSArKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0NCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5oIHwgIDIgKy0NCiAzIGZp bGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0t Z2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvYW1kLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1 L21jZS9hbWQuYw0KaW5kZXggZDRkNmU0YjdmOWRjLi5mYjVjOTM1YWYyYzUgMTAwNjQ0DQotLS0g YS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9hbWQuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2Nw dS9tY2UvYW1kLmMNCkBAIC00OTUsNyArNDk1LDcgQEAgc3RhdGljIHUzMiBnZXRfYmxvY2tfYWRk cmVzcyh1MzIgY3VycmVudF9hZGRyLCB1MzIgbG93LCB1MzIgaGlnaCwNCiB7DQogCXUzMiBhZGRy ID0gMCwgb2Zmc2V0ID0gMDsNCiANCi0JaWYgKChiYW5rID49IG1jYV9jZmcuYmFua3MpIHx8IChi bG9jayA+PSBOUl9CTE9DS1MpKQ0KKwlpZiAoKGJhbmsgPj0gcGVyX2NwdShtY2VfbnVtX2Jhbmtz LCBjcHUpKSB8fCAoYmxvY2sgPj0gTlJfQkxPQ0tTKSkNCiAJCXJldHVybiBhZGRyOw0KIA0KIAlp ZiAobWNlX2ZsYWdzLnNtY2EpDQpAQCAtNjI3LDExICs2MjcsMTIgQEAgdm9pZCBkaXNhYmxlX2Vy cl90aHJlc2hvbGRpbmcoc3RydWN0IGNwdWluZm9feDg2ICpjLCB1bnNpZ25lZCBpbnQgYmFuaykN CiAvKiBjcHUgaW5pdCBlbnRyeSBwb2ludCwgY2FsbGVkIGZyb20gbWNlLmMgd2l0aCBwcmVlbXB0 IG9mZiAqLw0KIHZvaWQgbWNlX2FtZF9mZWF0dXJlX2luaXQoc3RydWN0IGNwdWluZm9feDg2ICpj KQ0KIHsNCi0JdTMyIGxvdyA9IDAsIGhpZ2ggPSAwLCBhZGRyZXNzID0gMDsNCiAJdW5zaWduZWQg aW50IGJhbmssIGJsb2NrLCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7DQorCXUzMiBsb3cgPSAw LCBoaWdoID0gMCwgYWRkcmVzcyA9IDA7DQogCWludCBvZmZzZXQgPSAtMTsNCiANCi0JZm9yIChi YW5rID0gMDsgYmFuayA8IG1jYV9jZmcuYmFua3M7ICsrYmFuaykgew0KKw0KKwlmb3IgKGJhbmsg PSAwOyBiYW5rIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgKytiYW5rKSB7DQogCQlp ZiAobWNlX2ZsYWdzLnNtY2EpDQogCQkJc21jYV9jb25maWd1cmUoYmFuaywgY3B1KTsNCiANCkBA IC05NzYsNyArOTc3LDcgQEAgc3RhdGljIHZvaWQgYW1kX2RlZmVycmVkX2Vycm9yX2ludGVycnVw dCh2b2lkKQ0KIHsNCiAJdW5zaWduZWQgaW50IGJhbms7DQogDQotCWZvciAoYmFuayA9IDA7IGJh bmsgPCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspDQorCWZvciAoYmFuayA9IDA7IGJhbmsgPCB0aGlz X2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyArK2JhbmspDQogCQlsb2dfZXJyb3JfZGVmZXJyZWQo YmFuayk7DQogfQ0KIA0KQEAgLTEwMTcsNyArMTAxOCw3IEBAIHN0YXRpYyB2b2lkIGFtZF90aHJl c2hvbGRfaW50ZXJydXB0KHZvaWQpDQogCXN0cnVjdCB0aHJlc2hvbGRfYmxvY2sgKmZpcnN0X2Js b2NrID0gTlVMTCwgKmJsb2NrID0gTlVMTCwgKnRtcCA9IE5VTEw7DQogCXVuc2lnbmVkIGludCBi YW5rLCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsg PCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspIHsNCisJZm9yIChiYW5rID0gMDsgYmFuayA8IHRoaXNf Y3B1X3JlYWQobWNlX251bV9iYW5rcyk7ICsrYmFuaykgew0KIAkJaWYgKCEocGVyX2NwdShiYW5r X21hcCwgY3B1KSAmICgxIDw8IGJhbmspKSkNCiAJCQljb250aW51ZTsNCiANCkBAIC0xMjA0LDcg KzEyMDUsNyBAQCBzdGF0aWMgaW50IGFsbG9jYXRlX3RocmVzaG9sZF9ibG9ja3ModW5zaWduZWQg aW50IGNwdSwgdW5zaWduZWQgaW50IGJhbmssDQogCXUzMiBsb3csIGhpZ2g7DQogCWludCBlcnI7 DQogDQotCWlmICgoYmFuayA+PSBtY2FfY2ZnLmJhbmtzKSB8fCAoYmxvY2sgPj0gTlJfQkxPQ0tT KSkNCisJaWYgKChiYW5rID49IHBlcl9jcHUobWNlX251bV9iYW5rcywgY3B1KSkgfHwgKGJsb2Nr ID49IE5SX0JMT0NLUykpDQogCQlyZXR1cm4gMDsNCiANCiAJaWYgKHJkbXNyX3NhZmVfb25fY3B1 KGNwdSwgYWRkcmVzcywgJmxvdywgJmhpZ2gpKQ0KQEAgLTE0MzgsNyArMTQzOSw3IEBAIGludCBt Y2VfdGhyZXNob2xkX3JlbW92ZV9kZXZpY2UodW5zaWduZWQgaW50IGNwdSkNCiB7DQogCXVuc2ln bmVkIGludCBiYW5rOw0KIA0KLQlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgbWNhX2NmZy5iYW5rczsg KytiYW5rKSB7DQorCWZvciAoYmFuayA9IDA7IGJhbmsgPCBwZXJfY3B1KG1jZV9udW1fYmFua3Ms IGNwdSk7ICsrYmFuaykgew0KIAkJaWYgKCEocGVyX2NwdShiYW5rX21hcCwgY3B1KSAmICgxIDw8 IGJhbmspKSkNCiAJCQljb250aW51ZTsNCiAJCXRocmVzaG9sZF9yZW1vdmVfYmFuayhjcHUsIGJh bmspOw0KQEAgLTE0NTksMTQgKzE0NjAsMTQgQEAgaW50IG1jZV90aHJlc2hvbGRfY3JlYXRlX2Rl dmljZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAlpZiAoYnApDQogCQlyZXR1cm4gMDsNCiANCi0JYnAg PSBrY2FsbG9jKG1jYV9jZmcuYmFua3MsIHNpemVvZihzdHJ1Y3QgdGhyZXNob2xkX2JhbmsgKiks DQorCWJwID0ga2NhbGxvYyhwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSksIHNpemVvZihzdHJ1 Y3QgdGhyZXNob2xkX2JhbmsgKiksDQogCQkgICAgIEdGUF9LRVJORUwpOw0KIAlpZiAoIWJwKQ0K IAkJcmV0dXJuIC1FTk9NRU07DQogDQogCXBlcl9jcHUodGhyZXNob2xkX2JhbmtzLCBjcHUpID0g YnA7DQogDQotCWZvciAoYmFuayA9IDA7IGJhbmsgPCBtY2FfY2ZnLmJhbmtzOyArK2JhbmspIHsN CisJZm9yIChiYW5rID0gMDsgYmFuayA8IHBlcl9jcHUobWNlX251bV9iYW5rcywgY3B1KTsgKyti YW5rKSB7DQogCQlpZiAoIShwZXJfY3B1KGJhbmtfbWFwLCBjcHUpICYgKDEgPDwgYmFuaykpKQ0K IAkJCWNvbnRpbnVlOw0KIAkJZXJyID0gdGhyZXNob2xkX2NyZWF0ZV9iYW5rKGNwdSwgYmFuayk7 DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29yZS5jIGIvYXJjaC94ODYv a2VybmVsL2NwdS9tY2UvY29yZS5jDQppbmRleCBjNTA1YjEwZjkxMmEuLjY4MTM3MTJkODY0OCAx MDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KKysrIGIvYXJjaC94 ODYva2VybmVsL2NwdS9tY2UvY29yZS5jDQpAQCAtNjUsNiArNjUsOCBAQCBzdGF0aWMgREVGSU5F X01VVEVYKG1jZV9zeXNmc19tdXRleCk7DQogDQogREVGSU5FX1BFUl9DUFUodW5zaWduZWQsIG1j ZV9leGNlcHRpb25fY291bnQpOw0KIA0KK0RFRklORV9QRVJfQ1BVX1JFQURfTU9TVExZKHVuc2ln bmVkIGludCwgbWNlX251bV9iYW5rcyk7DQorDQogc3RydWN0IG1jZV9iYW5rIHsNCiAJdTY0CQkJ Y3RsOwkJCS8qIHN1YmV2ZW50cyB0byBlbmFibGUgKi8NCiAJYm9vbAkJCWluaXQ7CQkJLyogaW5p dGlhbGlzZSBiYW5rPyAqLw0KQEAgLTcwMSw3ICs3MDMsNyBAQCBib29sIG1hY2hpbmVfY2hlY2tf cG9sbChlbnVtIG1jcF9mbGFncyBmbGFncywgbWNlX2JhbmtzX3QgKmIpDQogCWlmIChmbGFncyAm IE1DUF9USU1FU1RBTVApDQogCQltLnRzYyA9IHJkdHNjKCk7DQogDQotCWZvciAoaSA9IDA7IGkg PCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IHRoaXNfY3B1X3JlYWQo bWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJaWYgKCFtY2VfYmFua3NbaV0uY3RsIHx8ICF0ZXN0 X2JpdChpLCAqYikpDQogCQkJY29udGludWU7DQogDQpAQCAtODAzLDcgKzgwNSw3IEBAIHN0YXRp YyBpbnQgbWNlX25vX3dheV9vdXQoc3RydWN0IG1jZSAqbSwgY2hhciAqKm1zZywgdW5zaWduZWQg bG9uZyAqdmFsaWRwLA0KIAljaGFyICp0bXA7DQogCWludCBpOw0KIA0KLQlmb3IgKGkgPSAwOyBp IDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFk KG1jZV9udW1fYmFua3MpOyBpKyspIHsNCiAJCW0tPnN0YXR1cyA9IG1jZV9yZG1zcmwobXNyX29w cy5zdGF0dXMoaSkpOw0KIAkJaWYgKCEobS0+c3RhdHVzICYgTUNJX1NUQVRVU19WQUwpKQ0KIAkJ CWNvbnRpbnVlOw0KQEAgLTEwODMsNyArMTA4NSw3IEBAIHN0YXRpYyB2b2lkIG1jZV9jbGVhcl9z dGF0ZSh1bnNpZ25lZCBsb25nICp0b2NsZWFyKQ0KIHsNCiAJaW50IGk7DQogDQotCWZvciAoaSA9 IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IHRoaXNfY3B1 X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJaWYgKHRlc3RfYml0KGksIHRvY2xlYXIp KQ0KIAkJCW1jZV93cm1zcmwobXNyX29wcy5zdGF0dXMoaSksIDApOw0KIAl9DQpAQCAtMTE0MSw3 ICsxMTQzLDcgQEAgc3RhdGljIHZvaWQgX19tY19zY2FuX2JhbmtzKHN0cnVjdCBtY2UgKm0sIHN0 cnVjdCBtY2UgKmZpbmFsLA0KIAlzdHJ1Y3QgbWNhX2NvbmZpZyAqY2ZnID0gJm1jYV9jZmc7DQog CWludCBzZXZlcml0eSwgaTsNCiANCi0JZm9yIChpID0gMDsgaSA8IGNmZy0+YmFua3M7IGkrKykg ew0KKwlmb3IgKGkgPSAwOyBpIDwgdGhpc19jcHVfcmVhZChtY2VfbnVtX2JhbmtzKTsgaSsrKSB7 DQogCQlfX2NsZWFyX2JpdChpLCB0b2NsZWFyKTsNCiAJCWlmICghdGVzdF9iaXQoaSwgdmFsaWRf YmFua3MpKQ0KIAkJCWNvbnRpbnVlOw0KQEAgLTE0ODIsOSArMTQ4NCwxMCBAQCBFWFBPUlRfU1lN Qk9MX0dQTChtY2Vfbm90aWZ5X2lycSk7DQogc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1X21jZV9i YW5rc19pbml0KHZvaWQpDQogew0KIAlzdHJ1Y3QgbWNlX2JhbmsgKm1jZV9iYW5rcyA9IHRoaXNf Y3B1X3B0cihtY2VfYmFua3NfYXJyYXkpOw0KKwl1OCBuX2JhbmtzID0gdGhpc19jcHVfcmVhZCht Y2VfbnVtX2JhbmtzKTsNCiAJaW50IGk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlJfQkFO S1M7IGkrKykgew0KKwlmb3IgKGkgPSAwOyBpIDwgbl9iYW5rczsgaSsrKSB7DQogCQlzdHJ1Y3Qg bWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KIA0KIAkJYi0+Y3RsID0gLTFVTEw7DQpAQCAt MTUwMywxMCArMTUwNiwxNCBAQCBzdGF0aWMgdm9pZCBfX21jaGVja19jcHVfY2FwX2luaXQodm9p ZCkNCiAJcmRtc3JsKE1TUl9JQTMyX01DR19DQVAsIGNhcCk7DQogDQogCWIgPSBjYXAgJiBNQ0df QkFOS0NOVF9NQVNLOw0KLQlpZiAoV0FSTl9PTl9PTkNFKGIgPiBNQVhfTlJfQkFOS1MpKQ0KKw0K KwlpZiAoYiA+IE1BWF9OUl9CQU5LUykgew0KKwkJcHJfd2FybigiQ1BVJWQ6IFVzaW5nIG9ubHkg JXUgbWFjaGluZSBjaGVjayBiYW5rcyBvdXQgb2YgJXVcbiIsDQorCQkJc21wX3Byb2Nlc3Nvcl9p ZCgpLCBNQVhfTlJfQkFOS1MsIGIpOw0KIAkJYiA9IE1BWF9OUl9CQU5LUzsNCisJfQ0KIA0KLQlt Y2FfY2ZnLmJhbmtzID0gbWF4KG1jYV9jZmcuYmFua3MsIGIpOw0KKwl0aGlzX2NwdV93cml0ZSht Y2VfbnVtX2JhbmtzLCBiKTsNCiANCiAJX19tY2hlY2tfY3B1X21jZV9iYW5rc19pbml0KCk7DQog DQpAQCAtMTU0NSw3ICsxNTUyLDcgQEAgc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1X2luaXRfY2xl YXJfYmFua3Modm9pZCkNCiAJc3RydWN0IG1jZV9iYW5rICptY2VfYmFua3MgPSB0aGlzX2NwdV9w dHIobWNlX2JhbmtzX2FycmF5KTsNCiAJaW50IGk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBtY2Ff Y2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IHRoaXNfY3B1X3JlYWQobWNlX251 bV9iYW5rcyk7IGkrKykgew0KIAkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsN CiANCiAJCWlmICghYi0+aW5pdCkNCkBAIC0xNTk2LDcgKzE2MDMsNyBAQCBzdGF0aWMgaW50IF9f bWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0IGNwdWluZm9feDg2ICpjKQ0KIA0KIAkvKiBU aGlzIHNob3VsZCBiZSBkaXNhYmxlZCBieSB0aGUgQklPUywgYnV0IGlzbid0IGFsd2F5cyAqLw0K IAlpZiAoYy0+eDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCkgew0KLQkJaWYgKGMtPng4NiA9 PSAxNSAmJiBjZmctPmJhbmtzID4gNCkgew0KKwkJaWYgKGMtPng4NiA9PSAxNSAmJiB0aGlzX2Nw dV9yZWFkKG1jZV9udW1fYmFua3MpID4gNCkgew0KIAkJCS8qDQogCQkJICogZGlzYWJsZSBHQVJU IFRCTCB3YWxrIGVycm9yIHJlcG9ydGluZywgd2hpY2gNCiAJCQkgKiB0cmlwcyBvZmYgaW5jb3Jy ZWN0bHkgd2l0aCB0aGUgSU9NTVUgJiAzd2FyZQ0KQEAgLTE2MTUsNyArMTYyMiw3IEBAIHN0YXRp YyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpDQog CQkgKiBWYXJpb3VzIEs3cyB3aXRoIGJyb2tlbiBiYW5rIDAgYXJvdW5kLiBBbHdheXMgZGlzYWJs ZQ0KIAkJICogYnkgZGVmYXVsdC4NCiAJCSAqLw0KLQkJaWYgKGMtPng4NiA9PSA2ICYmIGNmZy0+ YmFua3MgPiAwKQ0KKwkJaWYgKGMtPng4NiA9PSA2ICYmIHRoaXNfY3B1X3JlYWQobWNlX251bV9i YW5rcykgPiAwKQ0KIAkJCW1jZV9iYW5rc1swXS5jdGwgPSAwOw0KIA0KIAkJLyoNCkBAIC0xNjM3 LDcgKzE2NDQsNyBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0 IGNwdWluZm9feDg2ICpjKQ0KIAkJICogdmFsaWQgZXZlbnQgbGF0ZXIsIG1lcmVseSBkb24ndCB3 cml0ZSBDVEwwLg0KIAkJICovDQogDQotCQlpZiAoYy0+eDg2ID09IDYgJiYgYy0+eDg2X21vZGVs IDwgMHgxQSAmJiBjZmctPmJhbmtzID4gMCkNCisJCWlmIChjLT54ODYgPT0gNiAmJiBjLT54ODZf bW9kZWwgPCAweDFBICYmIHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykgPiAwKQ0KIAkJCW1j ZV9iYW5rc1swXS5pbml0ID0gMDsNCiANCiAJCS8qDQpAQCAtMTg3Myw3ICsxODgwLDcgQEAgc3Rh dGljIHZvaWQgX19tY2VfZGlzYWJsZV9iYW5rKHZvaWQgKmFyZykNCiANCiB2b2lkIG1jZV9kaXNh YmxlX2JhbmsoaW50IGJhbmspDQogew0KLQlpZiAoYmFuayA+PSBtY2FfY2ZnLmJhbmtzKSB7DQor CWlmIChiYW5rID49IHRoaXNfY3B1X3JlYWQobWNlX251bV9iYW5rcykpIHsNCiAJCXByX3dhcm4o RldfQlVHDQogCQkJIklnbm9yaW5nIHJlcXVlc3QgdG8gZGlzYWJsZSBpbnZhbGlkIE1DQSBiYW5r ICVkLlxuIiwNCiAJCQliYW5rKTsNCkBAIC0xOTYyLDcgKzE5NjksNyBAQCBzdGF0aWMgdm9pZCBt Y2VfZGlzYWJsZV9lcnJvcl9yZXBvcnRpbmcodm9pZCkNCiAJc3RydWN0IG1jZV9iYW5rICptY2Vf YmFua3MgPSB0aGlzX2NwdV9wdHIobWNlX2JhbmtzX2FycmF5KTsNCiAJaW50IGk7DQogDQotCWZv ciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCisJZm9yIChpID0gMDsgaSA8IHRo aXNfY3B1X3JlYWQobWNlX251bV9iYW5rcyk7IGkrKykgew0KIAkJc3RydWN0IG1jZV9iYW5rICpi ID0gJm1jZV9iYW5rc1tpXTsNCiANCiAJCWlmIChiLT5pbml0KQ0KQEAgLTIwNzMsNyArMjA4MCw3 IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfYmFuayhzdHJ1Y3QgZGV2aWNlICpzLCBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJdTggYmFuayA9IGF0dHJfdG9fYmFuayhhdHRyKS0+YmFu azsNCiAJc3RydWN0IG1jZV9iYW5rICpiOw0KIA0KLQlpZiAoYmFuayA+PSBtY2FfY2ZnLmJhbmtz KQ0KKwlpZiAoYmFuayA+PSBwZXJfY3B1KG1jZV9udW1fYmFua3MsIHMtPmlkKSkNCiAJCXJldHVy biAtRUlOVkFMOw0KIA0KIAliID0gJnBlcl9jcHUobWNlX2JhbmtzX2FycmF5LCBzLT5pZClbYmFu a107DQpAQCAtMjA5MSw3ICsyMDk4LDcgQEAgc3RhdGljIHNzaXplX3Qgc2V0X2Jhbmsoc3RydWN0 IGRldmljZSAqcywgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQogCWlmIChrc3RydG91 NjQoYnVmLCAwLCAmbmV3KSA8IDApDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JaWYgKGJhbmsg Pj0gbWNhX2NmZy5iYW5rcykNCisJaWYgKGJhbmsgPj0gcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBz LT5pZCkpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCiAJYiA9ICZwZXJfY3B1KG1jZV9iYW5rc19h cnJheSwgcy0+aWQpW2JhbmtdOw0KQEAgLTIyNDMsNyArMjI1MCw3IEBAIHN0YXRpYyBpbnQgbWNl X2RldmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiAJCWlmIChlcnIpDQogCQkJZ290byBl cnJvcjsNCiAJfQ0KLQlmb3IgKGogPSAwOyBqIDwgbWNhX2NmZy5iYW5rczsgaisrKSB7DQorCWZv ciAoaiA9IDA7IGogPCBwZXJfY3B1KG1jZV9udW1fYmFua3MsIGNwdSk7IGorKykgew0KIAkJZXJy ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNbal0uYXR0cik7DQogCQlp ZiAoZXJyKQ0KIAkJCWdvdG8gZXJyb3IyOw0KQEAgLTIyNzUsNyArMjI4Miw3IEBAIHN0YXRpYyB2 b2lkIG1jZV9kZXZpY2VfcmVtb3ZlKHVuc2lnbmVkIGludCBjcHUpDQogCWZvciAoaSA9IDA7IG1j ZV9kZXZpY2VfYXR0cnNbaV07IGkrKykNCiAJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsIG1jZV9k ZXZpY2VfYXR0cnNbaV0pOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsr KQ0KKwlmb3IgKGkgPSAwOyBpIDwgcGVyX2NwdShtY2VfbnVtX2JhbmtzLCBjcHUpOyBpKyspDQog CQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNlX2JhbmtfZGV2c1tpXS5hdHRyKTsNCiANCiAJ ZGV2aWNlX3VucmVnaXN0ZXIoZGV2KTsNCkBAIC0yMzA1LDcgKzIzMTIsNyBAQCBzdGF0aWMgdm9p ZCBtY2VfcmVlbmFibGVfY3B1KHZvaWQpDQogDQogCWlmICghY3B1aHBfdGFza3NfZnJvemVuKQ0K IAkJY21jaV9yZWVuYWJsZSgpOw0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsr KSB7DQorCWZvciAoaSA9IDA7IGkgPCB0aGlzX2NwdV9yZWFkKG1jZV9udW1fYmFua3MpOyBpKysp IHsNCiAJCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3NbaV07DQogDQogCQlpZiAoYi0+ aW5pdCkNCkBAIC0yNDkzLDggKzI1MDAsNiBAQCBFWFBPUlRfU1lNQk9MX0dQTChtY3NhZmVfa2V5 KTsNCiANCiBzdGF0aWMgaW50IF9faW5pdCBtY2hlY2tfbGF0ZV9pbml0KHZvaWQpDQogew0KLQlw cl9pbmZvKCJVc2luZyAlZCBNQ0UgYmFua3NcbiIsIG1jYV9jZmcuYmFua3MpOw0KLQ0KIAlpZiAo bWNhX2NmZy5yZWNvdmVyeSkNCiAJCXN0YXRpY19icmFuY2hfaW5jKCZtY3NhZmVfa2V5KTsNCiAN CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5oIGIvYXJjaC94 ODYva2VybmVsL2NwdS9tY2UvaW50ZXJuYWwuaA0KaW5kZXggMzViM2U1YzAyYzFjLi40MzAzMWRi NDI5ZDIgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5oDQor KysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9pbnRlcm5hbC5oDQpAQCAtMTE4LDcgKzExOCw2 IEBAIHN0cnVjdCBtY2FfY29uZmlnIHsNCiAJICAgICAgYmlvc19jbWNpX3RocmVzaG9sZAk6IDEs DQogCSAgICAgIF9fcmVzZXJ2ZWQJCTogNTk7DQogDQotCXU4IGJhbmtzOw0KIAlzOCBib290bG9n Ow0KIAlpbnQgdG9sZXJhbnQ7DQogCWludCBtb25hcmNoX3RpbWVvdXQ7DQpAQCAtMTI3LDYgKzEy Niw3IEBAIHN0cnVjdCBtY2FfY29uZmlnIHsNCiB9Ow0KIA0KIGV4dGVybiBzdHJ1Y3QgbWNhX2Nv bmZpZyBtY2FfY2ZnOw0KK0RFQ0xBUkVfUEVSX0NQVV9SRUFEX01PU1RMWSh1bnNpZ25lZCBpbnQs IG1jZV9udW1fYmFua3MpOw0KIA0KIHN0cnVjdCBtY2VfdmVuZG9yX2ZsYWdzIHsNCiAJLyoNCi0t IA0KMi4xNy4xDQoNCg==