Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp6157539yba; Thu, 11 Apr 2019 13:19:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqxUzEGhuV5FxRp830g1epLRgvfC5MX+DFGd0mz5fHq3x1RZ6UjnDWynAlu1VuUjzhbu1th0 X-Received: by 2002:a17:902:ba8b:: with SMTP id k11mr53552170pls.40.1555013949195; Thu, 11 Apr 2019 13:19:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555013949; cv=none; d=google.com; s=arc-20160816; b=QYXHIBWNfeF34avSB6GwMNRmFxGpdj2EF0eX9OjU91wAqE8dcFcaLsvlbBYyV/Rxsh wd8HkByevfRvqKZvE/hPl+UkHwJMLDLrnuwDbzQntj+vsg43PJB2vLzJJu6TgFjCIt58 MMfsJKfTaIO/pHrqhhvXTfOqKk3QTuFRZEl9h5OOqQPAC3SyxREs7/8N22b+wLrfSJ4z +ASKB+YcibONNLAb4Nq9+0CZMMkleMukiqgXumcowD+ayw34QGQWLJDi/tdFgPGxYDGq Esb5osSAA7q2Lw4IgE/2hoJRFIYDhP+WQ/vpy8H7pHxL3Z+Z/vOsLVNpz2BOQ2KiX+V+ 943Q== 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=sZFubW59aSz1GkTGyFC+8fUW4a2Sz/2Ld1arcSQIHdQ=; b=kShDsAvLlOiNQR8HziRC657r9iadFZ5RO2TmL5ZTwggUfrxl0iujASpYUCuVLkR1yf xM65NccFwUAX9HsoojDiRDR+XQsPB3QhYSzv5qI/6bg3bWs8oIO4/LSK6eqYIcVKcRnM kZCXsXqE+Zypp52WEKioBLFZ/5NyCImF8U23CiFOUkS/DEppYGo1uD2kCPOcSss3cweS CgyjoUCXyiUHHSd6v2zsltzZz6Jaijxuft/Do0VUf0LB7Zr8ri01oL+heczUGXNtlWgH CoqAnWE32GQajMEUJUyjuxmOVDYxLhv4zbc7YbvB9BM/zP+eHdvhBFSr0r7QV7dPUAbH plLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=aEN7h8m7; 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 x13si22181520pga.2.2019.04.11.13.18.53; Thu, 11 Apr 2019 13:19:09 -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=aEN7h8m7; 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 S1726963AbfDKUSI (ORCPT + 99 others); Thu, 11 Apr 2019 16:18:08 -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 S1726538AbfDKUSG (ORCPT ); Thu, 11 Apr 2019 16:18:06 -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=sZFubW59aSz1GkTGyFC+8fUW4a2Sz/2Ld1arcSQIHdQ=; b=aEN7h8m7lcNFxgBGBPWAxTqulzHMmv8OPnH7wwbV8zPtt91wHSeSXlwkp2BCUn8b8ewOoy5LTbT0RrsvE0P+Kc1wmz34QGj261vjbF1xI1Lr7OeJQZKJ8LQGJLe+UnPEYVP64FRo8EVB2FBjSG8GMu8dFupagrfXaOezfbOHD3U= 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:01 +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:01 +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 2/6] x86/MCE: Handle MCA controls in a per_cpu way Thread-Topic: [PATCH v2 2/6] x86/MCE: Handle MCA controls in a per_cpu way Thread-Index: AQHU8KOpreLY72L5zUCCNBPmUcKxmA== Date: Thu, 11 Apr 2019 20:18:01 +0000 Message-ID: <20190411201743.43195-3-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: eb3f382b-7554-43f2-6b89-08d6bebacbe9 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)(979002)(39860400002)(366004)(346002)(136003)(376002)(396003)(199004)(189003)(2616005)(966005)(256004)(14444005)(4326008)(478600001)(66066001)(76176011)(26005)(5660300002)(53936002)(3846002)(6506007)(72206003)(186003)(6116002)(2906002)(386003)(54906003)(2501003)(102836004)(6916009)(2351001)(97736004)(105586002)(99286004)(6436002)(8936002)(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)(969003)(989001)(999001)(1009001)(1019001);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: aPJu4iy0jNfBUKlyD8v/o4YiuaRltfRiDP5FxwjYUK8HD/emWzMRADGhwKgFbhNpOFO1vsJKswnvJ1aBtXRVbRZ7JrBEq1APPVjbBRdBCWZ5RkTt0RLYyEShCuSxkiBNVU9naDdrNRT5yoxTPk08ifoJ4FevuUxJ1KZWW5BReTmHoCFGjz1CYx4MhnUDQhYOK53JBzrvLe0jCunMIOIoJtUHnEuGELPX6gOvfpDjKB0Vl/vgRUQfOOHQcMeJds83y468kEbtNF7aX8TFvUWgBNJzAEEnZ4i06st/Wy9nL/W6Sl3yt5UKCU8LyJTHDhDHcHXpQ9iFUVV5vn3fCMyVEP9PBgkvweNyfzPKwpUSoTBqrhvh/CjYd7x3raOGnO6bZMt5BGq/o/wq/aCN4CSDSfnI82opM7N9gnAHQdIOsgk= 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: eb3f382b-7554-43f2-6b89-08d6bebacbe9 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2019 20:18:01.7483 (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 RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpDdXJyZW50IEFN RCBzeXN0ZW1zIGhhdmUgdW5pcXVlIE1DQSBiYW5rcyBwZXIgbG9naWNhbCBDUFUgZXZlbiB0aG91 Z2gNCnRoZSB0eXBlIG9mIHRoZSBiYW5rcyBtYXkgYWxsIGFsaWduIHRvIHRoZSBzYW1lIGJhbmsg bnVtYmVyLiBFYWNoIENQVQ0Kd2lsbCBoYXZlIGNvbnRyb2wgb2YgYSBzZXQgb2YgTUNBIGJhbmtz IGluIHRoZSBoYXJkd2FyZSBhbmQgdGhlc2UgYXJlDQpub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BV cy4NCg0KRm9yIGV4YW1wbGUsIGJhbmsgMCBtYXkgYmUgdGhlIExvYWQtU3RvcmUgVW5pdCBvbiBl dmVyeSBsb2dpY2FsIENQVSwgYnV0DQplYWNoIGJhbmsgMCBpcyBhIHVuaXF1ZSBzdHJ1Y3R1cmUg aW4gdGhlIGhhcmR3YXJlLiBJbiBvdGhlciB3b3JkcywgdGhlcmUNCmlzbid0IGEgKnNpbmdsZSog TG9hZC1TdG9yZSBVbml0IGF0IE1DQSBiYW5rIDAgdGhhdCBhbGwgbG9naWNhbCBDUFVzDQpzaGFy ZS4NCg0KVGhpcyBpZGVhIGV4dGVuZHMgZXZlbiB0byBub24tY29yZSBNQ0EgYmFua3MuIEZvciBl eGFtcGxlLCBDUFUwIGFuZCBDUFU0DQptYXkgc2VlIGEgVW5pZmllZCBNZW1vcnkgQ29udHJvbGxl ciBhdCBiYW5rIDE1LCBidXQgZWFjaCBDUFUgaXMgYWN0dWFsbHkNCnNlZWluZyBhIHVuaXF1ZSBo YXJkd2FyZSBzdHJ1Y3R1cmUgdGhhdCBpcyBub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BVcy4NCg0K QmVjYXVzZSB0aGUgTUNBIGJhbmtzIGFyZSBhbGwgdW5pcXVlIGhhcmR3YXJlIHN0cnVjdHVyZXMs IGl0IHdvdWxkIGJlDQpnb29kIHRvIGNvbnRyb2wgdGhlbSBpbiBhIG1vcmUgZ3JhbnVsYXIgd2F5 LiBGb3IgZXhhbXBsZSwgaWYgdGhlcmUgaXMgYQ0Ka25vd24gaXNzdWUgd2l0aCB0aGUgRmxvYXRp bmcgUG9pbnQgVW5pdCBvbiBDUFU1IGFuZCBhIHVzZXIgd2lzaGVzIHRvDQpkaXNhYmxlIGFuIGVy cm9yIHR5cGUgb24gdGhlIEZsb2F0aW5nIFBvaW50IFVuaXQsIHRoZW4gaXQgd291bGQgYmUgZ29v ZA0KdG8gZG8gdGhpcyBvbmx5IGZvciBDUFU1IHJhdGhlciB0aGFuIGFsbCBDUFVzLg0KDQpBbHNv LCBmdXR1cmUgQU1EIHN5c3RlbXMgbWF5IGhhdmUgaGV0ZXJvZ2VuZW91cyBNQ0EgYmFua3MuIE1l YW5pbmcgdGhlDQpiYW5rIG51bWJlcnMgbWF5IG5vdCBuZWNlc3NhcmlseSByZXByZXNlbnQgdGhl IHNhbWUgdHlwZXMgYmV0d2VlbiBDUFVzLg0KRm9yIGV4YW1wbGUsIGJhbmsgMjAgdmlzaWJsZSB0 byBDUFUwIG1heSBiZSBhIFVuaWZpZWQgTWVtb3J5IENvbnRyb2xsZXINCmFuZCBiYW5rIDIwIHZp c2libGUgdG8gQ1BVNCBtYXkgYmUgYSBDb2hlcmVudCBTbGF2ZS4gU28gZ3JhbnVsYXIgY29udHJv bA0Kd2lsbCBiZSBldmVuIG1vcmUgbmVjZXNzYXJ5IHNob3VsZCB0aGUgdXNlciB3aXNoIHRvIGNv bnRyb2wgc3BlY2lmaWMgTUNBDQpiYW5rcy4NCg0KU3BsaXQgdGhlIGRldmljZSBhdHRyaWJ1dGVz IGZyb20gc3RydWN0IG1jZV9iYW5rIGxlYXZpbmcgb25seSB0aGUgTUNBDQpiYW5rIGNvbnRyb2wg ZmllbGRzLg0KDQpNYWtlIHN0cnVjdCBtY2VfYmFua3NbXSBwZXJfY3B1IGluIG9yZGVyIHRvIGhh dmUgbW9yZSBncmFudWxhciBjb250cm9sDQpvdmVyIGluZGl2aWR1YWwgTUNBIGJhbmtzIGluIHRo ZSBoYXJkd2FyZS4NCg0KQWxsb2NhdGUgdGhlIGRldmljZSBhdHRyaWJ1dGVzIHN0YXRpY2FsbHkg YmFzZWQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mDQpNQ0EgYmFua3Mgc3VwcG9ydGVkLiBUaGUg c3lzZnMgaW50ZXJmYWNlIHdpbGwgdXNlIGFzIG1hbnkgYXMgbmVlZGVkIHBlcg0KQ1BVLiBDdXJy ZW50bHksIHRoaXMgaXMgc2V0IHRvIG1jYV9jZmcuYmFua3MsIGJ1dCB3aWxsIGJlIGNoYW5nZWQg dG8gYQ0KcGVyX2NwdSBiYW5rIGNvdW50IGluIGEgZnV0dXJlIHBhdGNoLg0KDQpBbGxvY2F0ZSB0 aGUgTUNBIGNvbnRyb2wgYml0cyBkeW5hbWljYWxseS4gVXNlIHRoZSBtYXhpbXVtIG51bWJlciBv ZiBNQ0ENCmJhbmtzIHN1cHBvcnRlZCBmb3Igbm93LiBUaGlzIHdpbGwgYmUgY2hhbmdlZCB0byBh IHBlcl9jcHUgYmFuayBjb3VudCBpbg0KYSBmdXR1cmUgcGF0Y2guDQoNClJlZG8gdGhlIHN5c2Zz IHN0b3JlL3Nob3cgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgcGVyX2NwdSBtY2VfYmFua3NbXS4N Cg0KU2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0K LS0tDQpMaW5rOg0KaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8yMDE5MDQwODE0MTIwNS4xMjM3 Ni0zLVlhemVuLkdoYW5uYW1AYW1kLmNvbQ0KDQp2MS0+djI6DQoqIENoYW5nZSAic3RydWN0IG1j ZV9iYW5rKiIgdG8gInN0cnVjdCBtY2VfYmFuayAqIiBpbiBkZWZpbml0aW9uLg0KDQogYXJjaC94 ODYva2VybmVsL2NwdS9tY2UvY29yZS5jIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMo LSkNCg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYyBiL2FyY2gv eDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KaW5kZXggOGQwZDFlODQyNWRiLi5hYTQxZjQxZTU5 MzEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCisrKyBiL2Fy Y2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KQEAgLTY0LDE2ICs2NCwyMSBAQCBzdGF0aWMg REVGSU5FX01VVEVYKG1jZV9zeXNmc19tdXRleCk7DQogDQogREVGSU5FX1BFUl9DUFUodW5zaWdu ZWQsIG1jZV9leGNlcHRpb25fY291bnQpOw0KIA0KK3N0cnVjdCBtY2VfYmFuayB7DQorCXU2NAlj dGw7CS8qIHN1YmV2ZW50cyB0byBlbmFibGUgKi8NCisJYm9vbAlpbml0OwkvKiBpbml0aWFsaXNl IGJhbms/ICovDQorfTsNCitzdGF0aWMgREVGSU5FX1BFUl9DUFVfUkVBRF9NT1NUTFkoc3RydWN0 IG1jZV9iYW5rICosIG1jZV9iYW5rcyk7DQorDQogI2RlZmluZSBBVFRSX0xFTiAgICAgICAgICAg ICAgIDE2DQogLyogT25lIG9iamVjdCBmb3IgZWFjaCBNQ0UgYmFuaywgc2hhcmVkIGJ5IGFsbCBD UFVzICovDQotc3RydWN0IG1jZV9iYW5rIHsNCi0JdTY0CQkJY3RsOwkJCS8qIHN1YmV2ZW50cyB0 byBlbmFibGUgKi8NCi0JYm9vbAkJCWluaXQ7CQkJLyogaW5pdGlhbGlzZSBiYW5rPyAqLw0KK3N0 cnVjdCBtY2VfYmFua19kZXYgew0KIAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZQlhdHRyOwkJCS8q IGRldmljZSBhdHRyaWJ1dGUgKi8NCiAJY2hhcgkJCWF0dHJuYW1lW0FUVFJfTEVOXTsJLyogYXR0 cmlidXRlIG5hbWUgKi8NCisJdTgJCQliYW5rOwkJCS8qIGJhbmsgbnVtYmVyICovDQogfTsNCitz dGF0aWMgc3RydWN0IG1jZV9iYW5rX2RldiBtY2VfYmFua19kZXZzW01BWF9OUl9CQU5LU107DQog DQotc3RhdGljIHN0cnVjdCBtY2VfYmFuayAqbWNlX2JhbmtzIF9fcmVhZF9tb3N0bHk7DQogc3Ry dWN0IG1jZV92ZW5kb3JfZmxhZ3MgbWNlX2ZsYWdzIF9fcmVhZF9tb3N0bHk7DQogDQogc3RydWN0 IG1jYV9jb25maWcgbWNhX2NmZyBfX3JlYWRfbW9zdGx5ID0gew0KQEAgLTY5NSw3ICs3MDAsNyBA QCBib29sIG1hY2hpbmVfY2hlY2tfcG9sbChlbnVtIG1jcF9mbGFncyBmbGFncywgbWNlX2Jhbmtz X3QgKmIpDQogCQltLnRzYyA9IHJkdHNjKCk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBtY2FfY2Zn LmJhbmtzOyBpKyspIHsNCi0JCWlmICghbWNlX2JhbmtzW2ldLmN0bCB8fCAhdGVzdF9iaXQoaSwg KmIpKQ0KKwkJaWYgKCF0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV0uY3RsIHx8ICF0ZXN0X2Jp dChpLCAqYikpDQogCQkJY29udGludWU7DQogDQogCQltLm1pc2MgPSAwOw0KQEAgLTExMzgsNyAr MTE0Myw3IEBAIHN0YXRpYyB2b2lkIF9fbWNfc2Nhbl9iYW5rcyhzdHJ1Y3QgbWNlICptLCBzdHJ1 Y3QgbWNlICpmaW5hbCwNCiAJCWlmICghdGVzdF9iaXQoaSwgdmFsaWRfYmFua3MpKQ0KIAkJCWNv bnRpbnVlOw0KIA0KLQkJaWYgKCFtY2VfYmFua3NbaV0uY3RsKQ0KKwkJaWYgKCF0aGlzX2NwdV9y ZWFkKG1jZV9iYW5rcylbaV0uY3RsKQ0KIAkJCWNvbnRpbnVlOw0KIA0KIAkJbS0+bWlzYyA9IDA7 DQpAQCAtMTQ3NSwxNiArMTQ4MCwxOSBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9tY2VfYmFu a3NfaW5pdCh2b2lkKQ0KIHsNCiAJaW50IGk7DQogDQotCW1jZV9iYW5rcyA9IGtjYWxsb2MoTUFY X05SX0JBTktTLCBzaXplb2Yoc3RydWN0IG1jZV9iYW5rKSwgR0ZQX0tFUk5FTCk7DQotCWlmICgh bWNlX2JhbmtzKQ0KKwlwZXJfY3B1KG1jZV9iYW5rcywgc21wX3Byb2Nlc3Nvcl9pZCgpKSA9DQor CQlrY2FsbG9jKE1BWF9OUl9CQU5LUywgc2l6ZW9mKHN0cnVjdCBtY2VfYmFuayksIEdGUF9LRVJO RUwpOw0KKw0KKwlpZiAoIXRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKSkNCiAJCXJldHVybiAtRU5P TUVNOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgTUFYX05SX0JBTktTOyBpKyspIHsNCi0JCXN0cnVj dCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3NbaV07DQorCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAm dGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ldOw0KIA0KIAkJYi0+Y3RsID0gLTFVTEw7DQogCQli LT5pbml0ID0gMTsNCiAJfQ0KKw0KIAlyZXR1cm4gMDsNCiB9DQogDQpAQCAtMTUwNCw3ICsxNTEy LDcgQEAgc3RhdGljIGludCBfX21jaGVja19jcHVfY2FwX2luaXQodm9pZCkNCiANCiAJbWNhX2Nm Zy5iYW5rcyA9IG1heChtY2FfY2ZnLmJhbmtzLCBiKTsNCiANCi0JaWYgKCFtY2VfYmFua3MpIHsN CisJaWYgKCF0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcykpIHsNCiAJCWludCBlcnIgPSBfX21jaGVj a19jcHVfbWNlX2JhbmtzX2luaXQoKTsNCiAJCWlmIChlcnIpDQogCQkJcmV0dXJuIGVycjsNCkBA IC0xNTQ3LDcgKzE1NTUsNyBAQCBzdGF0aWMgdm9pZCBfX21jaGVja19jcHVfaW5pdF9jbGVhcl9i YW5rcyh2b2lkKQ0KIAlpbnQgaTsNCiANCiAJZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7 IGkrKykgew0KLQkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCisJCXN0cnVj dCBtY2VfYmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQogDQogCQlpZiAo IWItPmluaXQpDQogCQkJY29udGludWU7DQpAQCAtMTYwMiw3ICsxNjEwLDcgQEAgc3RhdGljIGlu dCBfX21jaGVja19jcHVfYXBwbHlfcXVpcmtzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykNCiAJCQkg KiB0cmlwcyBvZmYgaW5jb3JyZWN0bHkgd2l0aCB0aGUgSU9NTVUgJiAzd2FyZQ0KIAkJCSAqICYg Q2VyYmVydXM6DQogCQkJICovDQotCQkJY2xlYXJfYml0KDEwLCAodW5zaWduZWQgbG9uZyAqKSZt Y2VfYmFua3NbNF0uY3RsKTsNCisJCQljbGVhcl9iaXQoMTAsICh1bnNpZ25lZCBsb25nICopJnRo aXNfY3B1X3JlYWQobWNlX2JhbmtzKVs0XS5jdGwpOw0KIAkJfQ0KIAkJaWYgKGMtPng4NiA8IDB4 MTEgJiYgY2ZnLT5ib290bG9nIDwgMCkgew0KIAkJCS8qDQpAQCAtMTYxNiw3ICsxNjI0LDcgQEAg c3RhdGljIGludCBfX21jaGVja19jcHVfYXBwbHlfcXVpcmtzKHN0cnVjdCBjcHVpbmZvX3g4NiAq YykNCiAJCSAqIGJ5IGRlZmF1bHQuDQogCQkgKi8NCiAJCWlmIChjLT54ODYgPT0gNiAmJiBjZmct PmJhbmtzID4gMCkNCi0JCQltY2VfYmFua3NbMF0uY3RsID0gMDsNCisJCQl0aGlzX2NwdV9yZWFk KG1jZV9iYW5rcylbMF0uY3RsID0gMDsNCiANCiAJCS8qDQogCQkgKiBvdmVyZmxvd19yZWNvdiBp cyBzdXBwb3J0ZWQgZm9yIEYxNWggTW9kZWxzIDAwaC0wZmgNCkBAIC0xNjM4LDcgKzE2NDYsNyBA QCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0IGNwdWluZm9feDg2 ICpjKQ0KIAkJICovDQogDQogCQlpZiAoYy0+eDg2ID09IDYgJiYgYy0+eDg2X21vZGVsIDwgMHgx QSAmJiBjZmctPmJhbmtzID4gMCkNCi0JCQltY2VfYmFua3NbMF0uaW5pdCA9IDA7DQorCQkJdGhp c19jcHVfcmVhZChtY2VfYmFua3MpWzBdLmluaXQgPSAwOw0KIA0KIAkJLyoNCiAJCSAqIEFsbCBu ZXdlciBJbnRlbCBzeXN0ZW1zIHN1cHBvcnQgTUNFIGJyb2FkY2FzdGluZy4gRW5hYmxlDQpAQCAt MTk1Miw3ICsxOTYwLDcgQEAgc3RhdGljIHZvaWQgbWNlX2Rpc2FibGVfZXJyb3JfcmVwb3J0aW5n KHZvaWQpDQogCWludCBpOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsr KSB7DQotCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KKwkJc3RydWN0IG1j ZV9iYW5rICpiID0gJnRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXTsNCiANCiAJCWlmIChiLT5p bml0KQ0KIAkJCXdybXNybChtc3Jfb3BzLmN0bChpKSwgMCk7DQpAQCAtMjA1MSwyNiArMjA1OSw0 MSBAQCBzdGF0aWMgc3RydWN0IGJ1c190eXBlIG1jZV9zdWJzeXMgPSB7DQogDQogREVGSU5FX1BF Ul9DUFUoc3RydWN0IGRldmljZSAqLCBtY2VfZGV2aWNlKTsNCiANCi1zdGF0aWMgaW5saW5lIHN0 cnVjdCBtY2VfYmFuayAqYXR0cl90b19iYW5rKHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy KQ0KK3N0YXRpYyBpbmxpbmUgc3RydWN0IG1jZV9iYW5rX2RldiAqYXR0cl90b19iYW5rKHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICphdHRyKQ0KIHsNCi0JcmV0dXJuIGNvbnRhaW5lcl9vZihhdHRy LCBzdHJ1Y3QgbWNlX2JhbmssIGF0dHIpOw0KKwlyZXR1cm4gY29udGFpbmVyX29mKGF0dHIsIHN0 cnVjdCBtY2VfYmFua19kZXYsIGF0dHIpOw0KIH0NCiANCiBzdGF0aWMgc3NpemVfdCBzaG93X2Jh bmsoc3RydWN0IGRldmljZSAqcywgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQogCQkJ IGNoYXIgKmJ1ZikNCiB7DQotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVsbHhcbiIsIGF0dHJfdG9f YmFuayhhdHRyKS0+Y3RsKTsNCisJc3RydWN0IG1jZV9iYW5rICpiOw0KKwl1OCBiYW5rID0gYXR0 cl90b19iYW5rKGF0dHIpLT5iYW5rOw0KKw0KKwlpZiAoYmFuayA+PSBtY2FfY2ZnLmJhbmtzKQ0K KwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWIgPSAmcGVyX2NwdShtY2VfYmFua3MsIHMtPmlkKVti YW5rXTsNCisNCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWxseFxuIiwgYi0+Y3RsKTsNCiB9DQog DQogc3RhdGljIHNzaXplX3Qgc2V0X2Jhbmsoc3RydWN0IGRldmljZSAqcywgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsDQogCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSkNCiB7 DQogCXU2NCBuZXc7DQorCXN0cnVjdCBtY2VfYmFuayAqYjsNCisJdTggYmFuayA9IGF0dHJfdG9f YmFuayhhdHRyKS0+YmFuazsNCiANCiAJaWYgKGtzdHJ0b3U2NChidWYsIDAsICZuZXcpIDwgMCkN CiAJCXJldHVybiAtRUlOVkFMOw0KIA0KLQlhdHRyX3RvX2JhbmsoYXR0ciktPmN0bCA9IG5ldzsN CisJaWYgKGJhbmsgPj0gbWNhX2NmZy5iYW5rcykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwli ID0gJnBlcl9jcHUobWNlX2JhbmtzLCBzLT5pZClbYmFua107DQorDQorCWItPmN0bCA9IG5ldzsN CiAJbWNlX3Jlc3RhcnQoKTsNCiANCiAJcmV0dXJuIHNpemU7DQpAQCAtMjE4NSw3ICsyMjA4LDcg QEAgc3RhdGljIHZvaWQgbWNlX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikNCiAJ a2ZyZWUoZGV2KTsNCiB9DQogDQotLyogUGVyIGNwdSBkZXZpY2UgaW5pdC4gQWxsIG9mIHRoZSBj cHVzIHN0aWxsIHNoYXJlIHRoZSBzYW1lIGN0cmwgYmFuazogKi8NCisvKiBQZXIgY3B1IGRldmlj ZSBpbml0LiBBbGwgb2YgdGhlIGNwdXMgc3RpbGwgc2hhcmUgdGhlIHNhbWUgYmFuayBkZXZpY2U6 ICovDQogc3RhdGljIGludCBtY2VfZGV2aWNlX2NyZWF0ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIHsN CiAJc3RydWN0IGRldmljZSAqZGV2Ow0KQEAgLTIyMTgsNyArMjI0MSw3IEBAIHN0YXRpYyBpbnQg bWNlX2RldmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiAJCQlnb3RvIGVycm9yOw0KIAl9 DQogCWZvciAoaiA9IDA7IGogPCBtY2FfY2ZnLmJhbmtzOyBqKyspIHsNCi0JCWVyciA9IGRldmlj ZV9jcmVhdGVfZmlsZShkZXYsICZtY2VfYmFua3Nbal0uYXR0cik7DQorCQllcnIgPSBkZXZpY2Vf Y3JlYXRlX2ZpbGUoZGV2LCAmbWNlX2JhbmtfZGV2c1tqXS5hdHRyKTsNCiAJCWlmIChlcnIpDQog CQkJZ290byBlcnJvcjI7DQogCX0NCkBAIC0yMjI4LDcgKzIyNTEsNyBAQCBzdGF0aWMgaW50IG1j ZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGludCBjcHUpDQogCXJldHVybiAwOw0KIGVycm9yMjoN CiAJd2hpbGUgKC0taiA+PSAwKQ0KLQkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5r c1tqXS5hdHRyKTsNCisJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZtY2VfYmFua19kZXZzW2pd LmF0dHIpOw0KIGVycm9yOg0KIAl3aGlsZSAoLS1pID49IDApDQogCQlkZXZpY2VfcmVtb3ZlX2Zp bGUoZGV2LCBtY2VfZGV2aWNlX2F0dHJzW2ldKTsNCkBAIC0yMjUwLDcgKzIyNzMsNyBAQCBzdGF0 aWMgdm9pZCBtY2VfZGV2aWNlX3JlbW92ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAkJZGV2aWNlX3Jl bW92ZV9maWxlKGRldiwgbWNlX2RldmljZV9hdHRyc1tpXSk7DQogDQogCWZvciAoaSA9IDA7IGkg PCBtY2FfY2ZnLmJhbmtzOyBpKyspDQotCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNlX2Jh bmtzW2ldLmF0dHIpOw0KKwkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNb aV0uYXR0cik7DQogDQogCWRldmljZV91bnJlZ2lzdGVyKGRldik7DQogCWNwdW1hc2tfY2xlYXJf Y3B1KGNwdSwgbWNlX2RldmljZV9pbml0aWFsaXplZCk7DQpAQCAtMjI3OSw3ICsyMzAyLDcgQEAg c3RhdGljIHZvaWQgbWNlX3JlZW5hYmxlX2NwdSh2b2lkKQ0KIAlpZiAoIWNwdWhwX3Rhc2tzX2Zy b3plbikNCiAJCWNtY2lfcmVlbmFibGUoKTsNCiAJZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFu a3M7IGkrKykgew0KLQkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCisJCXN0 cnVjdCBtY2VfYmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQogDQogCQlp ZiAoYi0+aW5pdCkNCiAJCQl3cm1zcmwobXNyX29wcy5jdGwoaSksIGItPmN0bCk7DQpAQCAtMjMy OCwxMCArMjM1MSwxMiBAQCBzdGF0aWMgX19pbml0IHZvaWQgbWNlX2luaXRfYmFua3Modm9pZCkN CiB7DQogCWludCBpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7 DQotCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KKwlmb3IgKGkgPSAwOyBp IDwgTUFYX05SX0JBTktTOyBpKyspIHsNCisJCXN0cnVjdCBtY2VfYmFua19kZXYgKmIgPSAmbWNl X2JhbmtfZGV2c1tpXTsNCiAJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphID0gJmItPmF0dHI7 DQogDQorCQliLT5iYW5rID0gaTsNCisNCiAJCXN5c2ZzX2F0dHJfaW5pdCgmYS0+YXR0cik7DQog CQlhLT5hdHRyLm5hbWUJPSBiLT5hdHRybmFtZTsNCiAJCXNucHJpbnRmKGItPmF0dHJuYW1lLCBB VFRSX0xFTiwgImJhbmslZCIsIGkpOw0KLS0gDQoyLjE3LjENCg0K