Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2349077yba; Sun, 7 Apr 2019 16:15:37 -0700 (PDT) X-Google-Smtp-Source: APXvYqySDsQRVZ8sSc6uJmKJuAPuICeE9I9x8wm4ou8zGpTaI4iMtvU82ylbnXLRKZJ4OYw3D+8n X-Received: by 2002:a17:902:7084:: with SMTP id z4mr25989495plk.305.1554678937481; Sun, 07 Apr 2019 16:15:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554678937; cv=none; d=google.com; s=arc-20160816; b=Oh3c/wou9Wkv+mHDfuW0D1c21bR1zZE2amVoBEkhpTJleiA0oqZ5aSL72DSxwbFnlx csFY6ETDrvXFJzM/Rs5Y5kLm4nkurxRacJwMCWhftYJcck34S77lcuMkQMsBzcjBcD7R ITheWGtSCGG02tuMV0ED+Lsy2twOdadGs+UlkMjpiSKyCq9dpSgpTTLjKIqhnkdw4jRd WEYbYis4Im7N06d+unV+AxWqU07vuLeGFBzBegn06Ac6RgqIYUTR0OwVfjmhm/IojaYp fARsuPx2kcBDJJLZzydjnf1AMwa+sMtl8+/kaWvM2ff4t/C6sgS/uHkomiKTo53KfKt3 p85Q== 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=XGTu5YxZM2bGJpExfHIeoDkUiP1ShPQWOdxK1N9BcvY=; b=Bg3KX3NTTHYKpZHftNNfHK+EXyXJVApNH25zUbnD2r1Q7BafbH9cwPSOy13KzXMt4X zG0+FcgffBo9T5YZhbkWezE/IOXokeRtZTyVqQ7pM7iiaQc3Y8nhsDnNmpnn2wXXJpH2 +Cf6icXUOu1xkf82T478C9QlA+s6CL3o8qnkOSWmGq6Ks6A/7X37csOfHNm+W57Q9Y3D 2MrgHWhrfNuFgXHA9rQqDvoCkB7CeLC8ly7MU4gUmsjOfFvg0W7jV5cHcDC1F8OfvWqB jJmaFKfUy8CPbA4S8+ZcPG5Cy07On7aT2mwuFIh08ml7IpwrYQmf7qPnkvAa899fo368 BUFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=SxxmdaCU; 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 u125si22897986pfb.112.2019.04.07.16.15.21; Sun, 07 Apr 2019 16:15:37 -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=SxxmdaCU; 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 S1726512AbfDGXNz (ORCPT + 99 others); Sun, 7 Apr 2019 19:13:55 -0400 Received: from mail-eopbgr720042.outbound.protection.outlook.com ([40.107.72.42]:47936 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726007AbfDGXNy (ORCPT ); Sun, 7 Apr 2019 19:13:54 -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=XGTu5YxZM2bGJpExfHIeoDkUiP1ShPQWOdxK1N9BcvY=; b=SxxmdaCUTSkIvjWqWLHJYKcxPiuqHFZVtvgMhS6X+BKKym6phg90nHJ3GRipGGCplAe26nqADHQwiIfBUU/T+glEupmeVV+LqCqjXZwwEXDWIfNhdbzUzwq9HcyLLgGz62+MxyAK6m8KYmVz6l3DneX/XPYo8egTFYQ232zfaP0= Received: from SN6PR12MB2639.namprd12.prod.outlook.com (52.135.103.16) by SN6PR12MB2768.namprd12.prod.outlook.com (52.135.107.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1771.16; Sun, 7 Apr 2019 23:13:49 +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; Sun, 7 Apr 2019 23:13:49 +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 2/5] x86/MCE: Handle MCA controls in a per_cpu way Thread-Topic: [PATCH 2/5] x86/MCE: Handle MCA controls in a per_cpu way Thread-Index: AQHU7ZeOZUhrNG91sEGxiKNtfCDPhA== Date: Sun, 7 Apr 2019 23:13:48 +0000 Message-ID: <20190407231331.52362-3-Yazen.Ghannam@amd.com> References: <20190407231331.52362-1-Yazen.Ghannam@amd.com> In-Reply-To: <20190407231331.52362-1-Yazen.Ghannam@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN4PR0501CA0039.namprd05.prod.outlook.com (2603:10b6:803:41::16) 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: 44cef780-f80f-4a50-929e-08d6bbaeb0d8 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:SN6PR12MB2768; x-ms-traffictypediagnostic: SN6PR12MB2768: x-microsoft-antispam-prvs: x-forefront-prvs: 00003DBFE7 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(376002)(136003)(39860400002)(346002)(396003)(199004)(189003)(105586002)(99286004)(14454004)(186003)(72206003)(478600001)(106356001)(53936002)(2351001)(3846002)(1076003)(6116002)(54906003)(316002)(102836004)(5660300002)(2906002)(68736007)(6512007)(50226002)(4326008)(36756003)(6506007)(386003)(66066001)(81166006)(97736004)(52116002)(6486002)(7736002)(76176011)(476003)(11346002)(26005)(486006)(2616005)(81156014)(5640700003)(6436002)(8676002)(6916009)(446003)(25786009)(86362001)(14444005)(256004)(71200400001)(2501003)(8936002)(71190400001)(305945005);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR12MB2768;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: NQV1w6k3L8Ova3pjNVPMgHMN/3fAD1OpXjTrvmiXNrBtvb8A+40QOAKksQTb6IlSx6I5FKQ/DYDcQrZ+h9Fiql4xBykVx2cRnCpwXg4nFxgBTGHDT5vvH0V8kOdQJdWyUAN89BaBhbwGF4nSDOcGyKT5mDV1M2ijzroEjJVzhruEzZtjr6AtzmhlPkCwQdlX3KbVS9dsKIZSu5nIO4YCOvZL7nE3cCOuSt+Ozt85I6D7L4NuHY4G/upfBRmY1a7jSfhJIqTBxvGHCDEPN/hCLdYmfHtHE+ahlUt/Ry8xc0/AF5n8aaUcBwnD9KLVPQIxi29yN4IHc5Yd41vls2TnHnaybxns3xr6tIKojrQosqNe0lsk7HLvidELWPMQtoW6513rJkOmMYisr2v5q8nCpCN1BMkg1ghPB/NKYEep3J0= 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: 44cef780-f80f-4a50-929e-08d6bbaeb0d8 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2019 23:13:48.8373 (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: SN6PR12MB2768 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 LS0tDQogYXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29yZS5jIHwgNzcgKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAy NiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2Nv cmUuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KaW5kZXggOGQwZDFlODQyNWRi Li4xNDU4M2M1YzZlMTIgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3Jl LmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KQEAgLTY0LDE2ICs2NCwy MSBAQCBzdGF0aWMgREVGSU5FX01VVEVYKG1jZV9zeXNmc19tdXRleCk7DQogDQogREVGSU5FX1BF Ul9DUFUodW5zaWduZWQsIG1jZV9leGNlcHRpb25fY291bnQpOw0KIA0KK3N0cnVjdCBtY2VfYmFu ayB7DQorCXU2NAljdGw7CS8qIHN1YmV2ZW50cyB0byBlbmFibGUgKi8NCisJYm9vbAlpbml0Owkv KiBpbml0aWFsaXNlIGJhbms/ICovDQorfTsNCitzdGF0aWMgREVGSU5FX1BFUl9DUFVfUkVBRF9N T1NUTFkoc3RydWN0IG1jZV9iYW5rKiwgbWNlX2JhbmtzKTsNCisNCiAjZGVmaW5lIEFUVFJfTEVO ICAgICAgICAgICAgICAgMTYNCiAvKiBPbmUgb2JqZWN0IGZvciBlYWNoIE1DRSBiYW5rLCBzaGFy ZWQgYnkgYWxsIENQVXMgKi8NCi1zdHJ1Y3QgbWNlX2Jhbmsgew0KLQl1NjQJCQljdGw7CQkJLyog c3ViZXZlbnRzIHRvIGVuYWJsZSAqLw0KLQlib29sCQkJaW5pdDsJCQkvKiBpbml0aWFsaXNlIGJh bms/ICovDQorc3RydWN0IG1jZV9iYW5rX2RldiB7DQogCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRl CWF0dHI7CQkJLyogZGV2aWNlIGF0dHJpYnV0ZSAqLw0KIAljaGFyCQkJYXR0cm5hbWVbQVRUUl9M RU5dOwkvKiBhdHRyaWJ1dGUgbmFtZSAqLw0KKwl1OAkJCWJhbms7CQkJLyogYmFuayBudW1iZXIg Ki8NCiB9Ow0KK3N0YXRpYyBzdHJ1Y3QgbWNlX2JhbmtfZGV2IG1jZV9iYW5rX2RldnNbTUFYX05S X0JBTktTXTsNCiANCi1zdGF0aWMgc3RydWN0IG1jZV9iYW5rICptY2VfYmFua3MgX19yZWFkX21v c3RseTsNCiBzdHJ1Y3QgbWNlX3ZlbmRvcl9mbGFncyBtY2VfZmxhZ3MgX19yZWFkX21vc3RseTsN CiANCiBzdHJ1Y3QgbWNhX2NvbmZpZyBtY2FfY2ZnIF9fcmVhZF9tb3N0bHkgPSB7DQpAQCAtNjk1 LDcgKzcwMCw3IEBAIGJvb2wgbWFjaGluZV9jaGVja19wb2xsKGVudW0gbWNwX2ZsYWdzIGZsYWdz LCBtY2VfYmFua3NfdCAqYikNCiAJCW0udHNjID0gcmR0c2MoKTsNCiANCiAJZm9yIChpID0gMDsg aSA8IG1jYV9jZmcuYmFua3M7IGkrKykgew0KLQkJaWYgKCFtY2VfYmFua3NbaV0uY3RsIHx8ICF0 ZXN0X2JpdChpLCAqYikpDQorCQlpZiAoIXRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXS5jdGwg fHwgIXRlc3RfYml0KGksICpiKSkNCiAJCQljb250aW51ZTsNCiANCiAJCW0ubWlzYyA9IDA7DQpA QCAtMTEzOCw3ICsxMTQzLDcgQEAgc3RhdGljIHZvaWQgX19tY19zY2FuX2JhbmtzKHN0cnVjdCBt Y2UgKm0sIHN0cnVjdCBtY2UgKmZpbmFsLA0KIAkJaWYgKCF0ZXN0X2JpdChpLCB2YWxpZF9iYW5r cykpDQogCQkJY29udGludWU7DQogDQotCQlpZiAoIW1jZV9iYW5rc1tpXS5jdGwpDQorCQlpZiAo IXRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXS5jdGwpDQogCQkJY29udGludWU7DQogDQogCQlt LT5taXNjID0gMDsNCkBAIC0xNDc1LDE2ICsxNDgwLDE5IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tf Y3B1X21jZV9iYW5rc19pbml0KHZvaWQpDQogew0KIAlpbnQgaTsNCiANCi0JbWNlX2JhbmtzID0g a2NhbGxvYyhNQVhfTlJfQkFOS1MsIHNpemVvZihzdHJ1Y3QgbWNlX2JhbmspLCBHRlBfS0VSTkVM KTsNCi0JaWYgKCFtY2VfYmFua3MpDQorCXBlcl9jcHUobWNlX2JhbmtzLCBzbXBfcHJvY2Vzc29y X2lkKCkpID0NCisJCWtjYWxsb2MoTUFYX05SX0JBTktTLCBzaXplb2Yoc3RydWN0IG1jZV9iYW5r KSwgR0ZQX0tFUk5FTCk7DQorDQorCWlmICghdGhpc19jcHVfcmVhZChtY2VfYmFua3MpKQ0KIAkJ cmV0dXJuIC1FTk9NRU07DQogDQogCWZvciAoaSA9IDA7IGkgPCBNQVhfTlJfQkFOS1M7IGkrKykg ew0KLQkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCisJCXN0cnVjdCBtY2Vf YmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQogDQogCQliLT5jdGwgPSAt MVVMTDsNCiAJCWItPmluaXQgPSAxOw0KIAl9DQorDQogCXJldHVybiAwOw0KIH0NCiANCkBAIC0x NTA0LDcgKzE1MTIsNyBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9jYXBfaW5pdCh2b2lkKQ0K IA0KIAltY2FfY2ZnLmJhbmtzID0gbWF4KG1jYV9jZmcuYmFua3MsIGIpOw0KIA0KLQlpZiAoIW1j ZV9iYW5rcykgew0KKwlpZiAoIXRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKSkgew0KIAkJaW50IGVy ciA9IF9fbWNoZWNrX2NwdV9tY2VfYmFua3NfaW5pdCgpOw0KIAkJaWYgKGVycikNCiAJCQlyZXR1 cm4gZXJyOw0KQEAgLTE1NDcsNyArMTU1NSw3IEBAIHN0YXRpYyB2b2lkIF9fbWNoZWNrX2NwdV9p bml0X2NsZWFyX2JhbmtzKHZvaWQpDQogCWludCBpOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgbWNh X2NmZy5iYW5rczsgaSsrKSB7DQotCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ld Ow0KKwkJc3RydWN0IG1jZV9iYW5rICpiID0gJnRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXTsN CiANCiAJCWlmICghYi0+aW5pdCkNCiAJCQljb250aW51ZTsNCkBAIC0xNjAyLDcgKzE2MTAsNyBA QCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0IGNwdWluZm9feDg2 ICpjKQ0KIAkJCSAqIHRyaXBzIG9mZiBpbmNvcnJlY3RseSB3aXRoIHRoZSBJT01NVSAmIDN3YXJl DQogCQkJICogJiBDZXJiZXJ1czoNCiAJCQkgKi8NCi0JCQljbGVhcl9iaXQoMTAsICh1bnNpZ25l ZCBsb25nICopJm1jZV9iYW5rc1s0XS5jdGwpOw0KKwkJCWNsZWFyX2JpdCgxMCwgKHVuc2lnbmVk IGxvbmcgKikmdGhpc19jcHVfcmVhZChtY2VfYmFua3MpWzRdLmN0bCk7DQogCQl9DQogCQlpZiAo Yy0+eDg2IDwgMHgxMSAmJiBjZmctPmJvb3Rsb2cgPCAwKSB7DQogCQkJLyoNCkBAIC0xNjE2LDcg KzE2MjQsNyBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0IGNw dWluZm9feDg2ICpjKQ0KIAkJICogYnkgZGVmYXVsdC4NCiAJCSAqLw0KIAkJaWYgKGMtPng4NiA9 PSA2ICYmIGNmZy0+YmFua3MgPiAwKQ0KLQkJCW1jZV9iYW5rc1swXS5jdGwgPSAwOw0KKwkJCXRo aXNfY3B1X3JlYWQobWNlX2JhbmtzKVswXS5jdGwgPSAwOw0KIA0KIAkJLyoNCiAJCSAqIG92ZXJm bG93X3JlY292IGlzIHN1cHBvcnRlZCBmb3IgRjE1aCBNb2RlbHMgMDBoLTBmaA0KQEAgLTE2Mzgs NyArMTY0Niw3IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3Qg Y3B1aW5mb194ODYgKmMpDQogCQkgKi8NCiANCiAJCWlmIChjLT54ODYgPT0gNiAmJiBjLT54ODZf bW9kZWwgPCAweDFBICYmIGNmZy0+YmFua3MgPiAwKQ0KLQkJCW1jZV9iYW5rc1swXS5pbml0ID0g MDsNCisJCQl0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbMF0uaW5pdCA9IDA7DQogDQogCQkvKg0K IAkJICogQWxsIG5ld2VyIEludGVsIHN5c3RlbXMgc3VwcG9ydCBNQ0UgYnJvYWRjYXN0aW5nLiBF bmFibGUNCkBAIC0xOTUyLDcgKzE5NjAsNyBAQCBzdGF0aWMgdm9pZCBtY2VfZGlzYWJsZV9lcnJv cl9yZXBvcnRpbmcodm9pZCkNCiAJaW50IGk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBtY2FfY2Zn LmJhbmtzOyBpKyspIHsNCi0JCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3NbaV07DQor CQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmdGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ldOw0KIA0K IAkJaWYgKGItPmluaXQpDQogCQkJd3Jtc3JsKG1zcl9vcHMuY3RsKGkpLCAwKTsNCkBAIC0yMDUx LDI2ICsyMDU5LDQxIEBAIHN0YXRpYyBzdHJ1Y3QgYnVzX3R5cGUgbWNlX3N1YnN5cyA9IHsNCiAN CiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgZGV2aWNlICosIG1jZV9kZXZpY2UpOw0KIA0KLXN0YXRp YyBpbmxpbmUgc3RydWN0IG1jZV9iYW5rICphdHRyX3RvX2Jhbmsoc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIpDQorc3RhdGljIGlubGluZSBzdHJ1Y3QgbWNlX2JhbmtfZGV2ICphdHRyX3Rv X2Jhbmsoc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIpDQogew0KLQlyZXR1cm4gY29udGFp bmVyX29mKGF0dHIsIHN0cnVjdCBtY2VfYmFuaywgYXR0cik7DQorCXJldHVybiBjb250YWluZXJf b2YoYXR0ciwgc3RydWN0IG1jZV9iYW5rX2RldiwgYXR0cik7DQogfQ0KIA0KIHN0YXRpYyBzc2l6 ZV90IHNob3dfYmFuayhzdHJ1Y3QgZGV2aWNlICpzLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq YXR0ciwNCiAJCQkgY2hhciAqYnVmKQ0KIHsNCi0JcmV0dXJuIHNwcmludGYoYnVmLCAiJWxseFxu IiwgYXR0cl90b19iYW5rKGF0dHIpLT5jdGwpOw0KKwlzdHJ1Y3QgbWNlX2JhbmsgKmI7DQorCXU4 IGJhbmsgPSBhdHRyX3RvX2JhbmsoYXR0ciktPmJhbms7DQorDQorCWlmIChiYW5rID49IG1jYV9j ZmcuYmFua3MpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJYiA9ICZwZXJfY3B1KG1jZV9iYW5r cywgcy0+aWQpW2JhbmtdOw0KKw0KKwlyZXR1cm4gc3ByaW50ZihidWYsICIlbGx4XG4iLCBiLT5j dGwpOw0KIH0NCiANCiBzdGF0aWMgc3NpemVfdCBzZXRfYmFuayhzdHJ1Y3QgZGV2aWNlICpzLCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJCQljb25zdCBjaGFyICpidWYsIHNpemVf dCBzaXplKQ0KIHsNCiAJdTY0IG5ldzsNCisJc3RydWN0IG1jZV9iYW5rICpiOw0KKwl1OCBiYW5r ID0gYXR0cl90b19iYW5rKGF0dHIpLT5iYW5rOw0KIA0KIAlpZiAoa3N0cnRvdTY0KGJ1ZiwgMCwg Jm5ldykgPCAwKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQotCWF0dHJfdG9fYmFuayhhdHRyKS0+ Y3RsID0gbmV3Ow0KKwlpZiAoYmFuayA+PSBtY2FfY2ZnLmJhbmtzKQ0KKwkJcmV0dXJuIC1FSU5W QUw7DQorDQorCWIgPSAmcGVyX2NwdShtY2VfYmFua3MsIHMtPmlkKVtiYW5rXTsNCisNCisJYi0+ Y3RsID0gbmV3Ow0KIAltY2VfcmVzdGFydCgpOw0KIA0KIAlyZXR1cm4gc2l6ZTsNCkBAIC0yMTg1 LDcgKzIyMDgsNyBAQCBzdGF0aWMgdm9pZCBtY2VfZGV2aWNlX3JlbGVhc2Uoc3RydWN0IGRldmlj ZSAqZGV2KQ0KIAlrZnJlZShkZXYpOw0KIH0NCiANCi0vKiBQZXIgY3B1IGRldmljZSBpbml0LiBB bGwgb2YgdGhlIGNwdXMgc3RpbGwgc2hhcmUgdGhlIHNhbWUgY3RybCBiYW5rOiAqLw0KKy8qIFBl ciBjcHUgZGV2aWNlIGluaXQuIEFsbCBvZiB0aGUgY3B1cyBzdGlsbCBzaGFyZSB0aGUgc2FtZSBi YW5rIGRldmljZTogKi8NCiBzdGF0aWMgaW50IG1jZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGlu dCBjcHUpDQogew0KIAlzdHJ1Y3QgZGV2aWNlICpkZXY7DQpAQCAtMjIxOCw3ICsyMjQxLDcgQEAg c3RhdGljIGludCBtY2VfZGV2aWNlX2NyZWF0ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAkJCWdvdG8g ZXJyb3I7DQogCX0NCiAJZm9yIChqID0gMDsgaiA8IG1jYV9jZmcuYmFua3M7IGorKykgew0KLQkJ ZXJyID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJm1jZV9iYW5rc1tqXS5hdHRyKTsNCisJCWVy ciA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZtY2VfYmFua19kZXZzW2pdLmF0dHIpOw0KIAkJ aWYgKGVycikNCiAJCQlnb3RvIGVycm9yMjsNCiAJfQ0KQEAgLTIyMjgsNyArMjI1MSw3IEBAIHN0 YXRpYyBpbnQgbWNlX2RldmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiAJcmV0dXJuIDA7 DQogZXJyb3IyOg0KIAl3aGlsZSAoLS1qID49IDApDQotCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2 LCAmbWNlX2JhbmtzW2pdLmF0dHIpOw0KKwkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9i YW5rX2RldnNbal0uYXR0cik7DQogZXJyb3I6DQogCXdoaWxlICgtLWkgPj0gMCkNCiAJCWRldmlj ZV9yZW1vdmVfZmlsZShkZXYsIG1jZV9kZXZpY2VfYXR0cnNbaV0pOw0KQEAgLTIyNTAsNyArMjI3 Myw3IEBAIHN0YXRpYyB2b2lkIG1jZV9kZXZpY2VfcmVtb3ZlKHVuc2lnbmVkIGludCBjcHUpDQog CQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCBtY2VfZGV2aWNlX2F0dHJzW2ldKTsNCiANCiAJZm9y IChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7IGkrKykNCi0JCWRldmljZV9yZW1vdmVfZmlsZShk ZXYsICZtY2VfYmFua3NbaV0uYXR0cik7DQorCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNl X2JhbmtfZGV2c1tpXS5hdHRyKTsNCiANCiAJZGV2aWNlX3VucmVnaXN0ZXIoZGV2KTsNCiAJY3B1 bWFza19jbGVhcl9jcHUoY3B1LCBtY2VfZGV2aWNlX2luaXRpYWxpemVkKTsNCkBAIC0yMjc5LDcg KzIzMDIsNyBAQCBzdGF0aWMgdm9pZCBtY2VfcmVlbmFibGVfY3B1KHZvaWQpDQogCWlmICghY3B1 aHBfdGFza3NfZnJvemVuKQ0KIAkJY21jaV9yZWVuYWJsZSgpOw0KIAlmb3IgKGkgPSAwOyBpIDwg bWNhX2NmZy5iYW5rczsgaSsrKSB7DQotCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2Jhbmtz W2ldOw0KKwkJc3RydWN0IG1jZV9iYW5rICpiID0gJnRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtp XTsNCiANCiAJCWlmIChiLT5pbml0KQ0KIAkJCXdybXNybChtc3Jfb3BzLmN0bChpKSwgYi0+Y3Rs KTsNCkBAIC0yMzI4LDEwICsyMzUxLDEyIEBAIHN0YXRpYyBfX2luaXQgdm9pZCBtY2VfaW5pdF9i YW5rcyh2b2lkKQ0KIHsNCiAJaW50IGk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBtY2FfY2ZnLmJh bmtzOyBpKyspIHsNCi0JCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3NbaV07DQorCWZv ciAoaSA9IDA7IGkgPCBNQVhfTlJfQkFOS1M7IGkrKykgew0KKwkJc3RydWN0IG1jZV9iYW5rX2Rl diAqYiA9ICZtY2VfYmFua19kZXZzW2ldOw0KIAkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmEg PSAmYi0+YXR0cjsNCiANCisJCWItPmJhbmsgPSBpOw0KKw0KIAkJc3lzZnNfYXR0cl9pbml0KCZh LT5hdHRyKTsNCiAJCWEtPmF0dHIubmFtZQk9IGItPmF0dHJuYW1lOw0KIAkJc25wcmludGYoYi0+ YXR0cm5hbWUsIEFUVFJfTEVOLCAiYmFuayVkIiwgaSk7DQotLSANCjIuMTcuMQ0KDQo=