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 09722C43219 for ; Tue, 30 Apr 2019 20:32:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B7493217D4 for ; Tue, 30 Apr 2019 20:32:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="GFxdBq0V" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726960AbfD3Ucb (ORCPT ); Tue, 30 Apr 2019 16:32:31 -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 S1726028AbfD3Ucb (ORCPT ); Tue, 30 Apr 2019 16:32:31 -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=RFvg9wrVww6+6jBfeGmgRk6J+vlcaCDpepDYjH/VtxM=; b=GFxdBq0VQxAvnDU21dxjBRU+EOcebyqyDV57T91OEJKblwcmLQuI6kaInYNXI+qmkkmzy51T77WdyarYe0ID+lrjAvyjj7vzl0xNIWPwf1ZBMOPMCjvL0NAQ0oOaNrlbZRP3vS9bYyWSVCbKcFbTOw53V3gTruAY5bDBSd+XCQQ= 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:19 +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:19 +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 2/6] x86/MCE: Handle MCA controls in a per_cpu way Thread-Topic: [PATCH v3 2/6] x86/MCE: Handle MCA controls in a per_cpu way Thread-Index: AQHU/5POXYMEL/gvg0WSirtwpX3xDw== Date: Tue, 30 Apr 2019 20:32:18 +0000 Message-ID: <20190430203206.104163-3-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: 9f9c2b1f-940c-4e3a-1c76-08d6cdaaf085 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:4502; 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)(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)(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: ZTCy0AjU4sHP6YQoOxSKE+YPPN+tmbwRsk8ZHGZsmeEtljQtZjWSse2aef9By9EfgdX2+kPSXLeONtSCyOWryxZEYs4ivt+aZSTWKQVNaRbwygB3MdWbmBGupYSJzE9um0lmUQS4e3x1KgtdFQ6mOjIkX42wJtSWm+i9Iemi9a8itvUMq+ofMu/WICmgd85ErDkqmYjPUQZwaFfvoQdr0gRGhJoHKyeFcnDKRZ+tlEgnBcwWkJLgCsfHi/BHmd7KPCutYOZCwDj1xTxp+iCtqvg+dYb6XdEsZic9BK4B9AbFKGx8S97bmKE+SI6BxKoQ0oaqUPtR0rQFwKFy0KFtY02nPxkA0qiuySXh9wBgYt1NucWaKKP/7It+xvotmE77Wn6QgO092LeSa1mwnDdX8ZIaQKwaN0KieV9No1xfLbo= 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: 9f9c2b1f-940c-4e3a-1c76-08d6cdaaf085 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 20:32:18.6186 (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: <20190430203218.Lbh9dGAKhGmRQN1mJbjf5Kz5LzHWZxFsr0qWUeJldGk@z> 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 LS0tDQpMaW5rOg0KaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8yMDE5MDQxMTIwMTc0My40MzE5 NS0zLVlhemVuLkdoYW5uYW1AYW1kLmNvbQ0KDQp2Mi0+djM6DQoqIEtlZXAgb2xkIG1lbWJlciBh bGlnbm1lbnQgaW4gc3RydWN0IG1jZV9iYW5rLg0KKiBDaGFuZ2UgImNwdSIgdG8gIkNQVSIgaW4g bW9kaWZpZWQgY29tbWVudC4NCiogVXNlIGEgbG9jYWwgYXJyYXkgcG9pbnRlciB3aGVuIGRvaW5n IG11bHRpcGxlIHBlcl9jcHUgYWNjZXNzZXMuDQoNCnYxLT52MjoNCiogQ2hhbmdlICJzdHJ1Y3Qg bWNlX2JhbmsqIiB0byAic3RydWN0IG1jZV9iYW5rICoiIGluIGRlZmluaXRpb24uDQoNCiBhcmNo L3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tDQogMSBmaWxlIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9u cygtKQ0KDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29yZS5jIGIvYXJj aC94ODYva2VybmVsL2NwdS9tY2UvY29yZS5jDQppbmRleCBiYTU3NjdkZDU1MzguLjY2MzQ3YmRj OGIwOCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KKysrIGIv YXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29yZS5jDQpAQCAtNjQsMTYgKzY0LDIxIEBAIHN0YXRp YyBERUZJTkVfTVVURVgobWNlX3N5c2ZzX211dGV4KTsNCiANCiBERUZJTkVfUEVSX0NQVSh1bnNp Z25lZCwgbWNlX2V4Y2VwdGlvbl9jb3VudCk7DQogDQotI2RlZmluZSBBVFRSX0xFTiAgICAgICAg ICAgICAgIDE2DQotLyogT25lIG9iamVjdCBmb3IgZWFjaCBNQ0UgYmFuaywgc2hhcmVkIGJ5IGFs bCBDUFVzICovDQogc3RydWN0IG1jZV9iYW5rIHsNCiAJdTY0CQkJY3RsOwkJCS8qIHN1YmV2ZW50 cyB0byBlbmFibGUgKi8NCiAJYm9vbAkJCWluaXQ7CQkJLyogaW5pdGlhbGlzZSBiYW5rPyAqLw0K K307DQorc3RhdGljIERFRklORV9QRVJfQ1BVX1JFQURfTU9TVExZKHN0cnVjdCBtY2VfYmFuayAq LCBtY2VfYmFua3NfcGVyY3B1KTsNCisNCisjZGVmaW5lIEFUVFJfTEVOICAgICAgICAgICAgICAg MTYNCisvKiBPbmUgb2JqZWN0IGZvciBlYWNoIE1DRSBiYW5rLCBzaGFyZWQgYnkgYWxsIENQVXMg Ki8NCitzdHJ1Y3QgbWNlX2JhbmtfZGV2IHsNCiAJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUJYXR0 cjsJCQkvKiBkZXZpY2UgYXR0cmlidXRlICovDQogCWNoYXIJCQlhdHRybmFtZVtBVFRSX0xFTl07 CS8qIGF0dHJpYnV0ZSBuYW1lICovDQorCXU4CQkJYmFuazsJCQkvKiBiYW5rIG51bWJlciAqLw0K IH07DQorc3RhdGljIHN0cnVjdCBtY2VfYmFua19kZXYgbWNlX2JhbmtfZGV2c1tNQVhfTlJfQkFO S1NdOw0KIA0KLXN0YXRpYyBzdHJ1Y3QgbWNlX2JhbmsgKm1jZV9iYW5rcyBfX3JlYWRfbW9zdGx5 Ow0KIHN0cnVjdCBtY2VfdmVuZG9yX2ZsYWdzIG1jZV9mbGFncyBfX3JlYWRfbW9zdGx5Ow0KIA0K IHN0cnVjdCBtY2FfY29uZmlnIG1jYV9jZmcgX19yZWFkX21vc3RseSA9IHsNCkBAIC02ODMsNiAr Njg4LDcgQEAgREVGSU5FX1BFUl9DUFUodW5zaWduZWQsIG1jZV9wb2xsX2NvdW50KTsNCiAgKi8N CiBib29sIG1hY2hpbmVfY2hlY2tfcG9sbChlbnVtIG1jcF9mbGFncyBmbGFncywgbWNlX2Jhbmtz X3QgKmIpDQogew0KKwlzdHJ1Y3QgbWNlX2JhbmsgKm1jZV9iYW5rcyA9IHRoaXNfY3B1X3JlYWQo bWNlX2JhbmtzX3BlcmNwdSk7DQogCWJvb2wgZXJyb3Jfc2VlbiA9IGZhbHNlOw0KIAlzdHJ1Y3Qg bWNlIG07DQogCWludCBpOw0KQEAgLTExMzAsNiArMTEzNiw3IEBAIHN0YXRpYyB2b2lkIF9fbWNf c2Nhbl9iYW5rcyhzdHJ1Y3QgbWNlICptLCBzdHJ1Y3QgbWNlICpmaW5hbCwNCiAJCQkgICAgdW5z aWduZWQgbG9uZyAqdG9jbGVhciwgdW5zaWduZWQgbG9uZyAqdmFsaWRfYmFua3MsDQogCQkJICAg IGludCBub193YXlfb3V0LCBpbnQgKndvcnN0KQ0KIHsNCisJc3RydWN0IG1jZV9iYW5rICptY2Vf YmFua3MgPSB0aGlzX2NwdV9yZWFkKG1jZV9iYW5rc19wZXJjcHUpOw0KIAlzdHJ1Y3QgbWNhX2Nv bmZpZyAqY2ZnID0gJm1jYV9jZmc7DQogCWludCBzZXZlcml0eSwgaTsNCiANCkBAIC0xNDczLDYg KzE0ODAsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChtY2Vfbm90aWZ5X2lycSk7DQogDQogc3RhdGlj IGludCBfX21jaGVja19jcHVfbWNlX2JhbmtzX2luaXQodm9pZCkNCiB7DQorCXN0cnVjdCBtY2Vf YmFuayAqbWNlX2JhbmtzOw0KIAlpbnQgaTsNCiANCiAJbWNlX2JhbmtzID0ga2NhbGxvYyhNQVhf TlJfQkFOS1MsIHNpemVvZihzdHJ1Y3QgbWNlX2JhbmspLCBHRlBfS0VSTkVMKTsNCkBAIC0xNDg1 LDYgKzE0OTMsOCBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9tY2VfYmFua3NfaW5pdCh2b2lk KQ0KIAkJYi0+Y3RsID0gLTFVTEw7DQogCQliLT5pbml0ID0gMTsNCiAJfQ0KKw0KKwlwZXJfY3B1 KG1jZV9iYW5rc19wZXJjcHUsIHNtcF9wcm9jZXNzb3JfaWQoKSkgPSBtY2VfYmFua3M7DQogCXJl dHVybiAwOw0KIH0NCiANCkBAIC0xNTA0LDcgKzE1MTQsNyBAQCBzdGF0aWMgaW50IF9fbWNoZWNr X2NwdV9jYXBfaW5pdCh2b2lkKQ0KIA0KIAltY2FfY2ZnLmJhbmtzID0gbWF4KG1jYV9jZmcuYmFu a3MsIGIpOw0KIA0KLQlpZiAoIW1jZV9iYW5rcykgew0KKwlpZiAoIXRoaXNfY3B1X3JlYWQobWNl X2JhbmtzX3BlcmNwdSkpIHsNCiAJCWludCBlcnIgPSBfX21jaGVja19jcHVfbWNlX2JhbmtzX2lu aXQoKTsNCiAJCWlmIChlcnIpDQogCQkJcmV0dXJuIGVycjsNCkBAIC0xNTQ0LDYgKzE1NTQsNyBA QCBzdGF0aWMgdm9pZCBfX21jaGVja19jcHVfaW5pdF9nZW5lcmljKHZvaWQpDQogDQogc3RhdGlj IHZvaWQgX19tY2hlY2tfY3B1X2luaXRfY2xlYXJfYmFua3Modm9pZCkNCiB7DQorCXN0cnVjdCBt Y2VfYmFuayAqbWNlX2JhbmtzID0gdGhpc19jcHVfcmVhZChtY2VfYmFua3NfcGVyY3B1KTsNCiAJ aW50IGk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCkBAIC0x NTg3LDYgKzE1OTgsNyBAQCBzdGF0aWMgdm9pZCBxdWlya19zYW5keWJyaWRnZV9pZnUoaW50IGJh bmssIHN0cnVjdCBtY2UgKm0sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KIC8qIEFkZCBwZXIgQ1BV IHNwZWNpZmljIHdvcmthcm91bmRzIGhlcmUgKi8NCiBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9h cHBseV9xdWlya3Moc3RydWN0IGNwdWluZm9feDg2ICpjKQ0KIHsNCisJc3RydWN0IG1jZV9iYW5r ICptY2VfYmFua3MgPSB0aGlzX2NwdV9yZWFkKG1jZV9iYW5rc19wZXJjcHUpOw0KIAlzdHJ1Y3Qg bWNhX2NvbmZpZyAqY2ZnID0gJm1jYV9jZmc7DQogDQogCWlmIChjLT54ODZfdmVuZG9yID09IFg4 Nl9WRU5ET1JfVU5LTk9XTikgew0KQEAgLTE5NTcsNiArMTk2OSw3IEBAIGludCBfX2luaXQgbWNo ZWNrX2luaXQodm9pZCkNCiAgKi8NCiBzdGF0aWMgdm9pZCBtY2VfZGlzYWJsZV9lcnJvcl9yZXBv cnRpbmcodm9pZCkNCiB7DQorCXN0cnVjdCBtY2VfYmFuayAqbWNlX2JhbmtzID0gdGhpc19jcHVf cmVhZChtY2VfYmFua3NfcGVyY3B1KTsNCiAJaW50IGk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBt Y2FfY2ZnLmJhbmtzOyBpKyspIHsNCkBAIC0yMDU5LDI2ICsyMDcyLDQxIEBAIHN0YXRpYyBzdHJ1 Y3QgYnVzX3R5cGUgbWNlX3N1YnN5cyA9IHsNCiANCiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgZGV2 aWNlICosIG1jZV9kZXZpY2UpOw0KIA0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IG1jZV9iYW5rICph dHRyX3RvX2Jhbmsoc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIpDQorc3RhdGljIGlubGlu ZSBzdHJ1Y3QgbWNlX2JhbmtfZGV2ICphdHRyX3RvX2Jhbmsoc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIpDQogew0KLQlyZXR1cm4gY29udGFpbmVyX29mKGF0dHIsIHN0cnVjdCBtY2VfYmFu aywgYXR0cik7DQorCXJldHVybiBjb250YWluZXJfb2YoYXR0ciwgc3RydWN0IG1jZV9iYW5rX2Rl diwgYXR0cik7DQogfQ0KIA0KIHN0YXRpYyBzc2l6ZV90IHNob3dfYmFuayhzdHJ1Y3QgZGV2aWNl ICpzLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJCQkgY2hhciAqYnVmKQ0KIHsN Ci0JcmV0dXJuIHNwcmludGYoYnVmLCAiJWxseFxuIiwgYXR0cl90b19iYW5rKGF0dHIpLT5jdGwp Ow0KKwl1OCBiYW5rID0gYXR0cl90b19iYW5rKGF0dHIpLT5iYW5rOw0KKwlzdHJ1Y3QgbWNlX2Jh bmsgKmI7DQorDQorCWlmIChiYW5rID49IG1jYV9jZmcuYmFua3MpDQorCQlyZXR1cm4gLUVJTlZB TDsNCisNCisJYiA9ICZwZXJfY3B1KG1jZV9iYW5rc19wZXJjcHUsIHMtPmlkKVtiYW5rXTsNCisN CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWxseFxuIiwgYi0+Y3RsKTsNCiB9DQogDQogc3RhdGlj IHNzaXplX3Qgc2V0X2Jhbmsoc3RydWN0IGRldmljZSAqcywgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsDQogCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSkNCiB7DQorCXU4IGJh bmsgPSBhdHRyX3RvX2JhbmsoYXR0ciktPmJhbms7DQorCXN0cnVjdCBtY2VfYmFuayAqYjsNCiAJ dTY0IG5ldzsNCiANCiAJaWYgKGtzdHJ0b3U2NChidWYsIDAsICZuZXcpIDwgMCkNCiAJCXJldHVy biAtRUlOVkFMOw0KIA0KLQlhdHRyX3RvX2JhbmsoYXR0ciktPmN0bCA9IG5ldzsNCisJaWYgKGJh bmsgPj0gbWNhX2NmZy5iYW5rcykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwliID0gJnBlcl9j cHUobWNlX2JhbmtzX3BlcmNwdSwgcy0+aWQpW2JhbmtdOw0KKw0KKwliLT5jdGwgPSBuZXc7DQog CW1jZV9yZXN0YXJ0KCk7DQogDQogCXJldHVybiBzaXplOw0KQEAgLTIxOTMsNyArMjIyMSw3IEBA IHN0YXRpYyB2b2lkIG1jZV9kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCWtm cmVlKGRldik7DQogfQ0KIA0KLS8qIFBlciBjcHUgZGV2aWNlIGluaXQuIEFsbCBvZiB0aGUgY3B1 cyBzdGlsbCBzaGFyZSB0aGUgc2FtZSBjdHJsIGJhbms6ICovDQorLyogUGVyIENQVSBkZXZpY2Ug aW5pdC4gQWxsIG9mIHRoZSBDUFVzIHN0aWxsIHNoYXJlIHRoZSBzYW1lIGJhbmsgZGV2aWNlOiAq Lw0KIHN0YXRpYyBpbnQgbWNlX2RldmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiB7DQog CXN0cnVjdCBkZXZpY2UgKmRldjsNCkBAIC0yMjI2LDcgKzIyNTQsNyBAQCBzdGF0aWMgaW50IG1j ZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGludCBjcHUpDQogCQkJZ290byBlcnJvcjsNCiAJfQ0K IAlmb3IgKGogPSAwOyBqIDwgbWNhX2NmZy5iYW5rczsgaisrKSB7DQotCQllcnIgPSBkZXZpY2Vf Y3JlYXRlX2ZpbGUoZGV2LCAmbWNlX2JhbmtzW2pdLmF0dHIpOw0KKwkJZXJyID0gZGV2aWNlX2Ny ZWF0ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNbal0uYXR0cik7DQogCQlpZiAoZXJyKQ0KIAkJ CWdvdG8gZXJyb3IyOw0KIAl9DQpAQCAtMjIzNiw3ICsyMjY0LDcgQEAgc3RhdGljIGludCBtY2Vf ZGV2aWNlX2NyZWF0ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAlyZXR1cm4gMDsNCiBlcnJvcjI6DQog CXdoaWxlICgtLWogPj0gMCkNCi0JCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZtY2VfYmFua3Nb al0uYXR0cik7DQorCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNlX2JhbmtfZGV2c1tqXS5h dHRyKTsNCiBlcnJvcjoNCiAJd2hpbGUgKC0taSA+PSAwKQ0KIAkJZGV2aWNlX3JlbW92ZV9maWxl KGRldiwgbWNlX2RldmljZV9hdHRyc1tpXSk7DQpAQCAtMjI1OCw3ICsyMjg2LDcgQEAgc3RhdGlj IHZvaWQgbWNlX2RldmljZV9yZW1vdmUodW5zaWduZWQgaW50IGNwdSkNCiAJCWRldmljZV9yZW1v dmVfZmlsZShkZXYsIG1jZV9kZXZpY2VfYXR0cnNbaV0pOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwg bWNhX2NmZy5iYW5rczsgaSsrKQ0KLQkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5r c1tpXS5hdHRyKTsNCisJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZtY2VfYmFua19kZXZzW2ld LmF0dHIpOw0KIA0KIAlkZXZpY2VfdW5yZWdpc3RlcihkZXYpOw0KIAljcHVtYXNrX2NsZWFyX2Nw dShjcHUsIG1jZV9kZXZpY2VfaW5pdGlhbGl6ZWQpOw0KQEAgLTIyNzksNiArMjMwNyw3IEBAIHN0 YXRpYyB2b2lkIG1jZV9kaXNhYmxlX2NwdSh2b2lkKQ0KIA0KIHN0YXRpYyB2b2lkIG1jZV9yZWVu YWJsZV9jcHUodm9pZCkNCiB7DQorCXN0cnVjdCBtY2VfYmFuayAqbWNlX2JhbmtzID0gdGhpc19j cHVfcmVhZChtY2VfYmFua3NfcGVyY3B1KTsNCiAJaW50IGk7DQogDQogCWlmICghbWNlX2F2YWls YWJsZShyYXdfY3B1X3B0cigmY3B1X2luZm8pKSkNCkBAIC0yMzM2LDEwICsyMzY1LDEyIEBAIHN0 YXRpYyBfX2luaXQgdm9pZCBtY2VfaW5pdF9iYW5rcyh2b2lkKQ0KIHsNCiAJaW50IGk7DQogDQot CWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCi0JCXN0cnVjdCBtY2VfYmFu ayAqYiA9ICZtY2VfYmFua3NbaV07DQorCWZvciAoaSA9IDA7IGkgPCBNQVhfTlJfQkFOS1M7IGkr Kykgew0KKwkJc3RydWN0IG1jZV9iYW5rX2RldiAqYiA9ICZtY2VfYmFua19kZXZzW2ldOw0KIAkJ c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmEgPSAmYi0+YXR0cjsNCiANCisJCWItPmJhbmsgPSBp Ow0KKw0KIAkJc3lzZnNfYXR0cl9pbml0KCZhLT5hdHRyKTsNCiAJCWEtPmF0dHIubmFtZQk9IGIt PmF0dHJuYW1lOw0KIAkJc25wcmludGYoYi0+YXR0cm5hbWUsIEFUVFJfTEVOLCAiYmFuayVkIiwg aSk7DQotLSANCjIuMTcuMQ0KDQo=