Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp6157848yba; Thu, 11 Apr 2019 13:19:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqyWTcOr4o95JUiaAvOQRBRFZAg2LBPZaoRlzOh3yyO4qRIt6vcB1MckVe5/EnSjp1/gtqAu X-Received: by 2002:a17:902:1007:: with SMTP id b7mr28904932pla.48.1555013974654; Thu, 11 Apr 2019 13:19:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555013974; cv=none; d=google.com; s=arc-20160816; b=PwtLYunIjHRnj88pvE1y4HJujVddegw2W+kcd7lq9GaqLy6Gv+v2aGZf+Nba6eG4n9 fQP1g/lIdvYxB9O3T1tnBy4ZaTfAjfbYaNyNpPscw3TFLBxZh0tae7nrp1KUow63NwaB SOMWRzDTWvHYJDgf9nxJJy1WEf2o19AJ9ICsuj4uSd9YoTGa8R7TRczpoHqQuCugGMvg xsbzwOtgta5RyK18Tk9YRrwv68pNtciWjCnOSQZkDDC5sdfoPHqly21YqoejsykPFNu3 1uMdU+HMlHro6ymcgltgdoeoyFWhOI5Qj4CLViYKAFQgIVNwkEk09nt8CziB7GayyJDK dCxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=ztfMr/Ustn+y6qTtD6JKikOQClynSrgxrdB85OIYy9o=; b=m6MOPlCHuqUdD9QUZWukwxKl5ssHzI0Ql63HOK4I2drKLLbeBdh0/Qm/sPiX0kZ5Nx z7ZtrB7dDoSksIdUYDBJoWS66YH2oRlTLWnGwTJ3kF4CMjeHMDG/O4ixuM1TLy+5jlZi oVLxm8VO33I+Uihs/4ZpA6FCbASoDidwe/xc8MDFrBu3XIW/07LNQF4KJAVxbBwdA44r EZkYJZDKO1a49V2jbUvjc0f8g6zD41JopJ/bF8wWkGtMPluKYzrPr4PmbNrLZlaIYmPp KI6urzCH9lGxmtWQ5OKNg+6KE90IvZcpfzX/hCLV8/eSuuEOFYi0IPUnT8ErOyVkCzxy X5Sg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=slPljpFT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3si35103057pfh.36.2019.04.11.13.19.18; Thu, 11 Apr 2019 13:19:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=slPljpFT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727025AbfDKUSP (ORCPT + 99 others); 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-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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