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,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 8ECDCC468BC for ; Fri, 7 Jun 2019 20:18:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 42BEC208E3 for ; Fri, 7 Jun 2019 20:18:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="Jcm9cYSg" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730594AbfFGUSN (ORCPT ); Fri, 7 Jun 2019 16:18:13 -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 S1729153AbfFGUSN (ORCPT ); Fri, 7 Jun 2019 16:18:13 -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=I+kyUpy4oC1BwUKlOIkYn+B7Ic3LamaWFDeMXJsHIzg=; b=Jcm9cYSgeRisWeDyShvUnpGYwtG/fbHJCF1PTpM4oU8JibWSstt7Rk67KAjHYs8oSdOGP17mEOPYYpwehDsjJYO2qVQeL9t4fKTSxI9t3jqca/e6Y17mVmhJq7kCYuLZMp6lyJ8crggUpfnb2ab9Pk/rE4mRQe25fPHuifcsbC0= 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:04 +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:04 +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 2/5] x86/MCE: Make mce_banks a per-CPU array Thread-Topic: [PATCH v4 2/5] x86/MCE: Make mce_banks a per-CPU array Thread-Index: AQHVHW4c5PaSbhsURkS/CcpvWl+NKQ== Date: Fri, 7 Jun 2019 20:18:04 +0000 Message-ID: <20190607201752.221446-3-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: b3837f40-2a97-4fd6-7066-08d6eb853f1d 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:4502; 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)(26005)(478600001)(4326008)(6306002)(68736007)(66946007)(6512007)(446003)(25786009)(73956011)(64756008)(66476007)(66556008)(66446008)(486006)(53936002)(11346002)(2616005)(14454004)(476003)(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: LfInMHQzebZIBRl1I/uFgEf8gY0C3uPpyTcHYewDJm5NIwO9qwiuky+twN/BGVQHPuL9JIjv76GEijEJRbjU67aEqpzHOIaUzKBOlVC35sDhMZ5GxecpOxJGHNVP5A18KuMBABXUUkMTfyrFg/hBmVsG+dWcPTD1Ixdu94fUts/VkS7NEpX+LK8vh7g0gsH9B3H3H6J3HGkdqPtgxf/ldybfmP5J09Zp41wvgrSEhPibiNojSQdDCMedugFhHcDNYj1UwqgPZQ9YRe5+9v7uCCM2gHc7r4qYbYDP0UoZmftTE1sng3GTZq4yHNMWoI0gfezR1btR9gaZE9oL9Xzs2olS+vJcwqD8y+4AoL/GATWR1i/bylt2FPjx9qUcKhBqr+ElrMx0SxxSz78fElbanWDnQWzkaWREMoKjVwaPaLQ= 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: b3837f40-2a97-4fd6-7066-08d6eb853f1d X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2019 20:18:04.4593 (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 RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpDdXJyZW50IEFN RCBzeXN0ZW1zIGhhdmUgdW5pcXVlIE1DQSBiYW5rcyBwZXIgbG9naWNhbCBDUFUgZXZlbiB0aG91 Z2gNCnRoZSB0eXBlIG9mIHRoZSBiYW5rcyBtYXkgYWxsIGFsaWduIHRvIHRoZSBzYW1lIGJhbmsg bnVtYmVyLiBFYWNoIENQVQ0Kd2lsbCBoYXZlIGNvbnRyb2wgb2YgYSBzZXQgb2YgTUNBIGJhbmtz IGluIHRoZSBoYXJkd2FyZSBhbmQgdGhlc2UgYXJlDQpub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BV cy4NCg0KRm9yIGV4YW1wbGUsIGJhbmsgMCBtYXkgYmUgdGhlIExvYWQtU3RvcmUgVW5pdCBvbiBl dmVyeSBsb2dpY2FsIENQVSwgYnV0DQplYWNoIGJhbmsgMCBpcyBhIHVuaXF1ZSBzdHJ1Y3R1cmUg aW4gdGhlIGhhcmR3YXJlLiBJbiBvdGhlciB3b3JkcywgdGhlcmUNCmlzbid0IGEgKnNpbmdsZSog TG9hZC1TdG9yZSBVbml0IGF0IE1DQSBiYW5rIDAgdGhhdCBhbGwgbG9naWNhbCBDUFVzDQpzaGFy ZS4NCg0KVGhpcyBpZGVhIGV4dGVuZHMgZXZlbiB0byBub24tY29yZSBNQ0EgYmFua3MuIEZvciBl eGFtcGxlLCBDUFUwIGFuZCBDUFU0DQptYXkgc2VlIGEgVW5pZmllZCBNZW1vcnkgQ29udHJvbGxl ciBhdCBiYW5rIDE1LCBidXQgZWFjaCBDUFUgaXMgYWN0dWFsbHkNCnNlZWluZyBhIHVuaXF1ZSBo YXJkd2FyZSBzdHJ1Y3R1cmUgdGhhdCBpcyBub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BVcy4NCg0K QmVjYXVzZSB0aGUgTUNBIGJhbmtzIGFyZSBhbGwgdW5pcXVlIGhhcmR3YXJlIHN0cnVjdHVyZXMs IGl0IHdvdWxkIGJlDQpnb29kIHRvIGNvbnRyb2wgdGhlbSBpbiBhIG1vcmUgZ3JhbnVsYXIgd2F5 LiBGb3IgZXhhbXBsZSwgaWYgdGhlcmUgaXMgYQ0Ka25vd24gaXNzdWUgd2l0aCB0aGUgRmxvYXRp bmcgUG9pbnQgVW5pdCBvbiBDUFU1IGFuZCBhIHVzZXIgd2lzaGVzIHRvDQpkaXNhYmxlIGFuIGVy cm9yIHR5cGUgb24gdGhlIEZsb2F0aW5nIFBvaW50IFVuaXQsIHRoZW4gaXQgd291bGQgYmUgZ29v ZA0KdG8gZG8gdGhpcyBvbmx5IGZvciBDUFU1IHJhdGhlciB0aGFuIGFsbCBDUFVzLg0KDQpBbHNv LCBmdXR1cmUgQU1EIHN5c3RlbXMgbWF5IGhhdmUgaGV0ZXJvZ2VuZW91cyBNQ0EgYmFua3MuIE1l YW5pbmcNCnRoZSBiYW5rIG51bWJlcnMgbWF5IG5vdCBuZWNlc3NhcmlseSByZXByZXNlbnQgdGhl IHNhbWUgdHlwZXMgYmV0d2Vlbg0KQ1BVcy4gRm9yIGV4YW1wbGUsIGJhbmsgMjAgdmlzaWJsZSB0 byBDUFUwIG1heSBiZSBhIFVuaWZpZWQgTWVtb3J5DQpDb250cm9sbGVyIGFuZCBiYW5rIDIwIHZp c2libGUgdG8gQ1BVNCBtYXkgYmUgYSBDb2hlcmVudCBTbGF2ZS4gU28NCmdyYW51bGFyIGNvbnRy b2wgd2lsbCBiZSBldmVuIG1vcmUgbmVjZXNzYXJ5IHNob3VsZCB0aGUgdXNlciB3aXNoIHRvDQpj b250cm9sIHNwZWNpZmljIE1DQSBiYW5rcy4NCg0KU3BsaXQgdGhlIGRldmljZSBhdHRyaWJ1dGVz IGZyb20gc3RydWN0IG1jZV9iYW5rIGxlYXZpbmcgb25seSB0aGUgTUNBDQpiYW5rIGNvbnRyb2wg ZmllbGRzLg0KDQpNYWtlIHN0cnVjdCBtY2VfYmFua3NbXSBwZXJfY3B1IGluIG9yZGVyIHRvIGhh dmUgbW9yZSBncmFudWxhciBjb250cm9sDQpvdmVyIGluZGl2aWR1YWwgTUNBIGJhbmtzIGluIHRo ZSBoYXJkd2FyZS4NCg0KQWxsb2NhdGUgdGhlIGRldmljZSBhdHRyaWJ1dGVzIHN0YXRpY2FsbHkg YmFzZWQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mDQpNQ0EgYmFua3Mgc3VwcG9ydGVkLiBUaGUg c3lzZnMgaW50ZXJmYWNlIHdpbGwgdXNlIGFzIG1hbnkgYXMgbmVlZGVkIHBlcg0KQ1BVLiBDdXJy ZW50bHksIHRoaXMgaXMgc2V0IHRvIG1jYV9jZmcuYmFua3MsIGJ1dCB3aWxsIGJlIGNoYW5nZWQg dG8gYQ0KcGVyX2NwdSBiYW5rIGNvdW50IGluIGEgZnV0dXJlIHBhdGNoLg0KDQpBbGxvY2F0ZSB0 aGUgTUNBIGNvbnRyb2wgYml0cyBzdGF0aWNhbGx5LiBUaGlzIGlzIGluIG9yZGVyIHRvIGF2b2lk DQpsb2NraW5nIHdhcm5pbmdzIHdoZW4gbWVtb3J5IGlzIGFsbG9jYXRlZCBkdXJpbmcgc2Vjb25k YXJ5IENQVXMnIGluaXQNCnNlcXVlbmNlcy4NCg0KQWxzbywgcmVtb3ZlIHRoZSBub3cgdW5uZWNl c3NhcnkgcmV0dXJuIHZhbHVlcyBmcm9tDQpfX21jaGVja19jcHVfbWNlX2JhbmtzX2luaXQoKSBh bmQgX19tY2hlY2tfY3B1X2NhcF9pbml0KCkuDQoNClJlZG8gdGhlIHN5c2ZzIHN0b3JlL3Nob3cg ZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgcGVyX2NwdSBtY2VfYmFua3NbXS4NCg0KIFsgYnA6IHMv bWNlX2JhbmtzX3BlcmNwdS9tY2VfYmFua3NfYXJyYXkvZyBdDQoNClsgTG9ja2luZyBpc3N1ZSBy ZXBvcnRlZCBieSBdDQpSZXBvcnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3QgPHJvbmcuYS5jaGVu QGludGVsLmNvbT4NClsgTG9ja2luZyBpc3N1ZSBmaXggc3VnZ2VzdGVkIGJ5IF0NClN1Z2dlc3Rl ZC1ieTogQm9yaXNsYXYgUGV0a292IDxicEBzdXNlLmRlPg0KU2lnbmVkLW9mZi1ieTogWWF6ZW4g R2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KLS0tDQpMaW5rOg0KaHR0cHM6Ly9sa21s Lmtlcm5lbC5vcmcvci8yMDE5MDQzMDIwMzIwNi4xMDQxNjMtMy1ZYXplbi5HaGFubmFtQGFtZC5j b20NCg0KdjMtPnY0Og0KKiBTdGF0aWNhbGx5IGFsbG9jYXRlIGFsbCBzdHJ1Y3R1cmVzIHRvIGF2 b2lkIGxvY2tpbmcgaXNzdWVzIHdpdGgNCiAgc2Vjb25kYXJ5IENQVXMuDQoNCnYyLT52MzoNCiog S2VlcCBvbGQgbWVtYmVyIGFsaWdubWVudCBpbiBzdHJ1Y3QgbWNlX2JhbmsuDQoqIENoYW5nZSAi Y3B1IiB0byAiQ1BVIiBpbiBtb2RpZmllZCBjb21tZW50Lg0KKiBVc2UgYSBsb2NhbCBhcnJheSBw b2ludGVyIHdoZW4gZG9pbmcgbXVsdGlwbGUgcGVyX2NwdSBhY2Nlc3Nlcy4NCg0KdjEtPnYyOg0K KiBDaGFuZ2UgInN0cnVjdCBtY2VfYmFuayoiIHRvICJzdHJ1Y3QgbWNlX2JhbmsgKiIgaW4gZGVm aW5pdGlvbi4NCg0KIGFyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYyB8IDc2ICsrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwgNDggaW5zZXJ0aW9u cygrKSwgMjggZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1 L21jZS9jb3JlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCmluZGV4IDU1YmRi ZWRkZTBiOC4uYzUwNWIxMGY5MTJhIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9t Y2UvY29yZS5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCkBAIC02NSwx NiArNjUsMjEgQEAgc3RhdGljIERFRklORV9NVVRFWChtY2Vfc3lzZnNfbXV0ZXgpOw0KIA0KIERF RklORV9QRVJfQ1BVKHVuc2lnbmVkLCBtY2VfZXhjZXB0aW9uX2NvdW50KTsNCiANCi0jZGVmaW5l IEFUVFJfTEVOICAgICAgICAgICAgICAgMTYNCi0vKiBPbmUgb2JqZWN0IGZvciBlYWNoIE1DRSBi YW5rLCBzaGFyZWQgYnkgYWxsIENQVXMgKi8NCiBzdHJ1Y3QgbWNlX2Jhbmsgew0KIAl1NjQJCQlj dGw7CQkJLyogc3ViZXZlbnRzIHRvIGVuYWJsZSAqLw0KIAlib29sCQkJaW5pdDsJCQkvKiBpbml0 aWFsaXNlIGJhbms/ICovDQorfTsNCitzdGF0aWMgREVGSU5FX1BFUl9DUFVfUkVBRF9NT1NUTFko c3RydWN0IG1jZV9iYW5rIFtNQVhfTlJfQkFOS1NdLCBtY2VfYmFua3NfYXJyYXkpOw0KKw0KKyNk ZWZpbmUgQVRUUl9MRU4gICAgICAgICAgICAgICAxNg0KKy8qIE9uZSBvYmplY3QgZm9yIGVhY2gg TUNFIGJhbmssIHNoYXJlZCBieSBhbGwgQ1BVcyAqLw0KK3N0cnVjdCBtY2VfYmFua19kZXYgew0K IAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZQlhdHRyOwkJCS8qIGRldmljZSBhdHRyaWJ1dGUgKi8N CiAJY2hhcgkJCWF0dHJuYW1lW0FUVFJfTEVOXTsJLyogYXR0cmlidXRlIG5hbWUgKi8NCisJdTgJ CQliYW5rOwkJCS8qIGJhbmsgbnVtYmVyICovDQogfTsNCitzdGF0aWMgc3RydWN0IG1jZV9iYW5r X2RldiBtY2VfYmFua19kZXZzW01BWF9OUl9CQU5LU107DQogDQotc3RhdGljIHN0cnVjdCBtY2Vf YmFuayAqbWNlX2JhbmtzIF9fcmVhZF9tb3N0bHk7DQogc3RydWN0IG1jZV92ZW5kb3JfZmxhZ3Mg bWNlX2ZsYWdzIF9fcmVhZF9tb3N0bHk7DQogDQogc3RydWN0IG1jYV9jb25maWcgbWNhX2NmZyBf X3JlYWRfbW9zdGx5ID0gew0KQEAgLTY4NCw2ICs2ODksNyBAQCBERUZJTkVfUEVSX0NQVSh1bnNp Z25lZCwgbWNlX3BvbGxfY291bnQpOw0KICAqLw0KIGJvb2wgbWFjaGluZV9jaGVja19wb2xsKGVu dW0gbWNwX2ZsYWdzIGZsYWdzLCBtY2VfYmFua3NfdCAqYikNCiB7DQorCXN0cnVjdCBtY2VfYmFu ayAqbWNlX2JhbmtzID0gdGhpc19jcHVfcHRyKG1jZV9iYW5rc19hcnJheSk7DQogCWJvb2wgZXJy b3Jfc2VlbiA9IGZhbHNlOw0KIAlzdHJ1Y3QgbWNlIG07DQogCWludCBpOw0KQEAgLTExMzEsNiAr MTEzNyw3IEBAIHN0YXRpYyB2b2lkIF9fbWNfc2Nhbl9iYW5rcyhzdHJ1Y3QgbWNlICptLCBzdHJ1 Y3QgbWNlICpmaW5hbCwNCiAJCQkgICAgdW5zaWduZWQgbG9uZyAqdG9jbGVhciwgdW5zaWduZWQg bG9uZyAqdmFsaWRfYmFua3MsDQogCQkJICAgIGludCBub193YXlfb3V0LCBpbnQgKndvcnN0KQ0K IHsNCisJc3RydWN0IG1jZV9iYW5rICptY2VfYmFua3MgPSB0aGlzX2NwdV9wdHIobWNlX2Jhbmtz X2FycmF5KTsNCiAJc3RydWN0IG1jYV9jb25maWcgKmNmZyA9ICZtY2FfY2ZnOw0KIAlpbnQgc2V2 ZXJpdHksIGk7DQogDQpAQCAtMTQ3MiwyNyArMTQ3OSwyMyBAQCBpbnQgbWNlX25vdGlmeV9pcnEo dm9pZCkNCiB9DQogRVhQT1JUX1NZTUJPTF9HUEwobWNlX25vdGlmeV9pcnEpOw0KIA0KLXN0YXRp YyBpbnQgX19tY2hlY2tfY3B1X21jZV9iYW5rc19pbml0KHZvaWQpDQorc3RhdGljIHZvaWQgX19t Y2hlY2tfY3B1X21jZV9iYW5rc19pbml0KHZvaWQpDQogew0KKwlzdHJ1Y3QgbWNlX2JhbmsgKm1j ZV9iYW5rcyA9IHRoaXNfY3B1X3B0cihtY2VfYmFua3NfYXJyYXkpOw0KIAlpbnQgaTsNCiANCi0J bWNlX2JhbmtzID0ga2NhbGxvYyhNQVhfTlJfQkFOS1MsIHNpemVvZihzdHJ1Y3QgbWNlX2Jhbmsp LCBHRlBfS0VSTkVMKTsNCi0JaWYgKCFtY2VfYmFua3MpDQotCQlyZXR1cm4gLUVOT01FTTsNCi0N CiAJZm9yIChpID0gMDsgaSA8IE1BWF9OUl9CQU5LUzsgaSsrKSB7DQogCQlzdHJ1Y3QgbWNlX2Jh bmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KIA0KIAkJYi0+Y3RsID0gLTFVTEw7DQogCQliLT5pbml0 ID0gMTsNCiAJfQ0KLQlyZXR1cm4gMDsNCiB9DQogDQogLyoNCiAgKiBJbml0aWFsaXplIE1hY2hp bmUgQ2hlY2tzIGZvciBhIENQVS4NCiAgKi8NCi1zdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9jYXBf aW5pdCh2b2lkKQ0KK3N0YXRpYyB2b2lkIF9fbWNoZWNrX2NwdV9jYXBfaW5pdCh2b2lkKQ0KIHsN CiAJdTY0IGNhcDsNCiAJdTggYjsNCkBAIC0xNTA1LDExICsxNTA4LDcgQEAgc3RhdGljIGludCBf X21jaGVja19jcHVfY2FwX2luaXQodm9pZCkNCiANCiAJbWNhX2NmZy5iYW5rcyA9IG1heChtY2Ff Y2ZnLmJhbmtzLCBiKTsNCiANCi0JaWYgKCFtY2VfYmFua3MpIHsNCi0JCWludCBlcnIgPSBfX21j aGVja19jcHVfbWNlX2JhbmtzX2luaXQoKTsNCi0JCWlmIChlcnIpDQotCQkJcmV0dXJuIGVycjsN Ci0JfQ0KKwlfX21jaGVja19jcHVfbWNlX2JhbmtzX2luaXQoKTsNCiANCiAJLyogVXNlIGFjY3Vy YXRlIFJJUCByZXBvcnRpbmcgaWYgYXZhaWxhYmxlLiAqLw0KIAlpZiAoKGNhcCAmIE1DR19FWFRf UCkgJiYgTUNHX0VYVF9DTlQoY2FwKSA+PSA5KQ0KQEAgLTE1MTcsOCArMTUxNiw2IEBAIHN0YXRp YyBpbnQgX19tY2hlY2tfY3B1X2NhcF9pbml0KHZvaWQpDQogDQogCWlmIChjYXAgJiBNQ0dfU0VS X1ApDQogCQltY2FfY2ZnLnNlciA9IDE7DQotDQotCXJldHVybiAwOw0KIH0NCiANCiBzdGF0aWMg dm9pZCBfX21jaGVja19jcHVfaW5pdF9nZW5lcmljKHZvaWQpDQpAQCAtMTU0NSw2ICsxNTQyLDcg QEAgc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1X2luaXRfZ2VuZXJpYyh2b2lkKQ0KIA0KIHN0YXRp YyB2b2lkIF9fbWNoZWNrX2NwdV9pbml0X2NsZWFyX2JhbmtzKHZvaWQpDQogew0KKwlzdHJ1Y3Qg bWNlX2JhbmsgKm1jZV9iYW5rcyA9IHRoaXNfY3B1X3B0cihtY2VfYmFua3NfYXJyYXkpOw0KIAlp bnQgaTsNCiANCiAJZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KQEAgLTE1 ODgsNiArMTU4Niw3IEBAIHN0YXRpYyB2b2lkIHF1aXJrX3NhbmR5YnJpZGdlX2lmdShpbnQgYmFu aywgc3RydWN0IG1jZSAqbSwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpDQogLyogQWRkIHBlciBDUFUg c3BlY2lmaWMgd29ya2Fyb3VuZHMgaGVyZSAqLw0KIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2Fw cGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpDQogew0KKwlzdHJ1Y3QgbWNlX2Jhbmsg Km1jZV9iYW5rcyA9IHRoaXNfY3B1X3B0cihtY2VfYmFua3NfYXJyYXkpOw0KIAlzdHJ1Y3QgbWNh X2NvbmZpZyAqY2ZnID0gJm1jYV9jZmc7DQogDQogCWlmIChjLT54ODZfdmVuZG9yID09IFg4Nl9W RU5ET1JfVU5LTk9XTikgew0KQEAgLTE4MjQsNyArMTgyMyw5IEBAIHZvaWQgbWNoZWNrX2NwdV9p bml0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykNCiAJaWYgKCFtY2VfYXZhaWxhYmxlKGMpKQ0KIAkJ cmV0dXJuOw0KIA0KLQlpZiAoX19tY2hlY2tfY3B1X2NhcF9pbml0KCkgPCAwIHx8IF9fbWNoZWNr X2NwdV9hcHBseV9xdWlya3MoYykgPCAwKSB7DQorCV9fbWNoZWNrX2NwdV9jYXBfaW5pdCgpOw0K Kw0KKwlpZiAoX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhjKSA8IDApIHsNCiAJCW1jYV9jZmcu ZGlzYWJsZWQgPSAxOw0KIAkJcmV0dXJuOw0KIAl9DQpAQCAtMTk1OCw2ICsxOTU5LDcgQEAgaW50 IF9faW5pdCBtY2hlY2tfaW5pdCh2b2lkKQ0KICAqLw0KIHN0YXRpYyB2b2lkIG1jZV9kaXNhYmxl X2Vycm9yX3JlcG9ydGluZyh2b2lkKQ0KIHsNCisJc3RydWN0IG1jZV9iYW5rICptY2VfYmFua3Mg PSB0aGlzX2NwdV9wdHIobWNlX2JhbmtzX2FycmF5KTsNCiAJaW50IGk7DQogDQogCWZvciAoaSA9 IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCkBAIC0yMDYwLDI2ICsyMDYyLDQxIEBAIHN0 YXRpYyBzdHJ1Y3QgYnVzX3R5cGUgbWNlX3N1YnN5cyA9IHsNCiANCiBERUZJTkVfUEVSX0NQVShz dHJ1Y3QgZGV2aWNlICosIG1jZV9kZXZpY2UpOw0KIA0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IG1j ZV9iYW5rICphdHRyX3RvX2Jhbmsoc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIpDQorc3Rh dGljIGlubGluZSBzdHJ1Y3QgbWNlX2JhbmtfZGV2ICphdHRyX3RvX2Jhbmsoc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIpDQogew0KLQlyZXR1cm4gY29udGFpbmVyX29mKGF0dHIsIHN0cnVj dCBtY2VfYmFuaywgYXR0cik7DQorCXJldHVybiBjb250YWluZXJfb2YoYXR0ciwgc3RydWN0IG1j ZV9iYW5rX2RldiwgYXR0cik7DQogfQ0KIA0KIHN0YXRpYyBzc2l6ZV90IHNob3dfYmFuayhzdHJ1 Y3QgZGV2aWNlICpzLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJCQkgY2hhciAq YnVmKQ0KIHsNCi0JcmV0dXJuIHNwcmludGYoYnVmLCAiJWxseFxuIiwgYXR0cl90b19iYW5rKGF0 dHIpLT5jdGwpOw0KKwl1OCBiYW5rID0gYXR0cl90b19iYW5rKGF0dHIpLT5iYW5rOw0KKwlzdHJ1 Y3QgbWNlX2JhbmsgKmI7DQorDQorCWlmIChiYW5rID49IG1jYV9jZmcuYmFua3MpDQorCQlyZXR1 cm4gLUVJTlZBTDsNCisNCisJYiA9ICZwZXJfY3B1KG1jZV9iYW5rc19hcnJheSwgcy0+aWQpW2Jh bmtdOw0KKw0KKwlyZXR1cm4gc3ByaW50ZihidWYsICIlbGx4XG4iLCBiLT5jdGwpOw0KIH0NCiAN CiBzdGF0aWMgc3NpemVfdCBzZXRfYmFuayhzdHJ1Y3QgZGV2aWNlICpzLCBzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSAqYXR0ciwNCiAJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBzaXplKQ0KIHsN CisJdTggYmFuayA9IGF0dHJfdG9fYmFuayhhdHRyKS0+YmFuazsNCisJc3RydWN0IG1jZV9iYW5r ICpiOw0KIAl1NjQgbmV3Ow0KIA0KIAlpZiAoa3N0cnRvdTY0KGJ1ZiwgMCwgJm5ldykgPCAwKQ0K IAkJcmV0dXJuIC1FSU5WQUw7DQogDQotCWF0dHJfdG9fYmFuayhhdHRyKS0+Y3RsID0gbmV3Ow0K KwlpZiAoYmFuayA+PSBtY2FfY2ZnLmJhbmtzKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWIg PSAmcGVyX2NwdShtY2VfYmFua3NfYXJyYXksIHMtPmlkKVtiYW5rXTsNCisNCisJYi0+Y3RsID0g bmV3Ow0KIAltY2VfcmVzdGFydCgpOw0KIA0KIAlyZXR1cm4gc2l6ZTsNCkBAIC0yMTk0LDcgKzIy MTEsNyBAQCBzdGF0aWMgdm9pZCBtY2VfZGV2aWNlX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2 KQ0KIAlrZnJlZShkZXYpOw0KIH0NCiANCi0vKiBQZXIgY3B1IGRldmljZSBpbml0LiBBbGwgb2Yg dGhlIGNwdXMgc3RpbGwgc2hhcmUgdGhlIHNhbWUgY3RybCBiYW5rOiAqLw0KKy8qIFBlciBDUFUg ZGV2aWNlIGluaXQuIEFsbCBvZiB0aGUgQ1BVcyBzdGlsbCBzaGFyZSB0aGUgc2FtZSBiYW5rIGRl dmljZTogKi8NCiBzdGF0aWMgaW50IG1jZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGludCBjcHUp DQogew0KIAlzdHJ1Y3QgZGV2aWNlICpkZXY7DQpAQCAtMjIyNyw3ICsyMjQ0LDcgQEAgc3RhdGlj IGludCBtY2VfZGV2aWNlX2NyZWF0ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAkJCWdvdG8gZXJyb3I7 DQogCX0NCiAJZm9yIChqID0gMDsgaiA8IG1jYV9jZmcuYmFua3M7IGorKykgew0KLQkJZXJyID0g ZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJm1jZV9iYW5rc1tqXS5hdHRyKTsNCisJCWVyciA9IGRl dmljZV9jcmVhdGVfZmlsZShkZXYsICZtY2VfYmFua19kZXZzW2pdLmF0dHIpOw0KIAkJaWYgKGVy cikNCiAJCQlnb3RvIGVycm9yMjsNCiAJfQ0KQEAgLTIyMzcsNyArMjI1NCw3IEBAIHN0YXRpYyBp bnQgbWNlX2RldmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiAJcmV0dXJuIDA7DQogZXJy b3IyOg0KIAl3aGlsZSAoLS1qID49IDApDQotCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNl X2JhbmtzW2pdLmF0dHIpOw0KKwkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5rX2Rl dnNbal0uYXR0cik7DQogZXJyb3I6DQogCXdoaWxlICgtLWkgPj0gMCkNCiAJCWRldmljZV9yZW1v dmVfZmlsZShkZXYsIG1jZV9kZXZpY2VfYXR0cnNbaV0pOw0KQEAgLTIyNTksNyArMjI3Niw3IEBA IHN0YXRpYyB2b2lkIG1jZV9kZXZpY2VfcmVtb3ZlKHVuc2lnbmVkIGludCBjcHUpDQogCQlkZXZp Y2VfcmVtb3ZlX2ZpbGUoZGV2LCBtY2VfZGV2aWNlX2F0dHJzW2ldKTsNCiANCiAJZm9yIChpID0g MDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykNCi0JCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZt Y2VfYmFua3NbaV0uYXR0cik7DQorCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNlX2Jhbmtf ZGV2c1tpXS5hdHRyKTsNCiANCiAJZGV2aWNlX3VucmVnaXN0ZXIoZGV2KTsNCiAJY3B1bWFza19j bGVhcl9jcHUoY3B1LCBtY2VfZGV2aWNlX2luaXRpYWxpemVkKTsNCkBAIC0yMjgwLDYgKzIyOTcs NyBAQCBzdGF0aWMgdm9pZCBtY2VfZGlzYWJsZV9jcHUodm9pZCkNCiANCiBzdGF0aWMgdm9pZCBt Y2VfcmVlbmFibGVfY3B1KHZvaWQpDQogew0KKwlzdHJ1Y3QgbWNlX2JhbmsgKm1jZV9iYW5rcyA9 IHRoaXNfY3B1X3B0cihtY2VfYmFua3NfYXJyYXkpOw0KIAlpbnQgaTsNCiANCiAJaWYgKCFtY2Vf YXZhaWxhYmxlKHJhd19jcHVfcHRyKCZjcHVfaW5mbykpKQ0KQEAgLTIzMzcsMTAgKzIzNTUsMTIg QEAgc3RhdGljIF9faW5pdCB2b2lkIG1jZV9pbml0X2JhbmtzKHZvaWQpDQogew0KIAlpbnQgaTsN CiANCi0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KLQkJc3RydWN0IG1j ZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCisJZm9yIChpID0gMDsgaSA8IE1BWF9OUl9CQU5L UzsgaSsrKSB7DQorCQlzdHJ1Y3QgbWNlX2JhbmtfZGV2ICpiID0gJm1jZV9iYW5rX2RldnNbaV07 DQogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYSA9ICZiLT5hdHRyOw0KIA0KKwkJYi0+YmFu ayA9IGk7DQorDQogCQlzeXNmc19hdHRyX2luaXQoJmEtPmF0dHIpOw0KIAkJYS0+YXR0ci5uYW1l CT0gYi0+YXR0cm5hbWU7DQogCQlzbnByaW50ZihiLT5hdHRybmFtZSwgQVRUUl9MRU4sICJiYW5r JWQiLCBpKTsNCi0tIA0KMi4xNy4xDQoNCg==