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.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,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 0DDEAC04AB3 for ; Wed, 29 May 2019 08:44:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BD3B621670 for ; Wed, 29 May 2019 08:44:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="OduGwTVW"; dkim=pass (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="THK+d77n" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726879AbfE2Iow (ORCPT ); Wed, 29 May 2019 04:44:52 -0400 Received: from mx0b-0016f401.pphosted.com ([67.231.156.173]:49570 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726786AbfE2Iop (ORCPT ); Wed, 29 May 2019 04:44:45 -0400 Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x4T8do5H017769; Wed, 29 May 2019 01:44:38 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=yHYwU54umMELZAQMIPMJ37PnFVJnG63kxP1wbyaS+CM=; b=OduGwTVWe8/YBsjormnIyGxEOqTjB0bimAy19N+JWUqdXTTw+GGDTZ3yb9lVhrE26slv ZfkGbjmpHBC1dM7MAYZf2uiAuePxqeDzu36+1ffS5UL5OrkyRm+OxH0XD8+iJRIqGMRO SPo4VIbI/0eDC0uhvFSro3dFNr92Oc38O1naE+x7NR5+MrHvHV/bV/YNzaHnU8zqrt+M As1/IuoczDqRjQZtjPfEVz1anCYV129PBh/CNNHx+bsjQci4ZmRDow6MR2WArUHAA5k+ mGdrRYfTKrn38rLvvFLjhtqf8nxaqJRvYoO0GnXe6jYC+TwWJUMWYOBSim2Pr42aPd+J zA== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2sskp88p6g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 29 May 2019 01:44:37 -0700 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 29 May 2019 01:44:36 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.53) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 29 May 2019 01:44:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yHYwU54umMELZAQMIPMJ37PnFVJnG63kxP1wbyaS+CM=; b=THK+d77n6PANHEDEJ7PwclhPhC67li/3eZe3OXn1wr9BMWraMduPdTDrGP1Xk+nDKQMKz7v6V/hsZ+qzGKYiz4sdXSfAFqYJYe0W9wgk3B1KUsP/dXJCN1akKFZC6Vea4QP+yG+IIgk4DNqRqw60duM86BWhWnG3h165QI6qm7E= Received: from MN2PR18MB3408.namprd18.prod.outlook.com (10.255.238.217) by MN2PR18MB3437.namprd18.prod.outlook.com (10.255.239.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1922.20; Wed, 29 May 2019 08:44:33 +0000 Received: from MN2PR18MB3408.namprd18.prod.outlook.com ([fe80::7c9a:f3bf:fe2e:fe4a]) by MN2PR18MB3408.namprd18.prod.outlook.com ([fe80::7c9a:f3bf:fe2e:fe4a%4]) with mapi id 15.20.1922.021; Wed, 29 May 2019 08:44:33 +0000 From: Robert Richter To: Borislav Petkov , Tony Luck , "James Morse" , Mauro Carvalho Chehab CC: "linux-edac@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Robert Richter Subject: [PATCH 13/21] EDAC, ghes: Rework memory hierarchy detection Thread-Topic: [PATCH 13/21] EDAC, ghes: Rework memory hierarchy detection Thread-Index: AQHVFfq8/D/t80TYn0adLRIpgQ6mjA== Date: Wed, 29 May 2019 08:44:32 +0000 Message-ID: <20190529084344.28562-14-rrichter@marvell.com> References: <20190529084344.28562-1-rrichter@marvell.com> In-Reply-To: <20190529084344.28562-1-rrichter@marvell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR01CA0046.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::23) To MN2PR18MB3408.namprd18.prod.outlook.com (2603:10b6:208:16c::25) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [78.54.13.57] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2743c187-3161-48a1-4158-08d6e411def9 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:MN2PR18MB3437; x-ms-traffictypediagnostic: MN2PR18MB3437: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:595; x-forefront-prvs: 0052308DC6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(346002)(396003)(376002)(39860400002)(136003)(189003)(199004)(8936002)(4326008)(53936002)(50226002)(110136005)(107886003)(68736007)(36756003)(5660300002)(54906003)(11346002)(26005)(186003)(52116002)(2906002)(2616005)(476003)(446003)(6506007)(14454004)(66476007)(25786009)(478600001)(386003)(86362001)(486006)(81166006)(81156014)(8676002)(305945005)(316002)(7736002)(256004)(99286004)(76176011)(6512007)(6436002)(73956011)(64756008)(66446008)(66556008)(66066001)(3846002)(66946007)(1076003)(6486002)(102836004)(71190400001)(71200400001)(6116002);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR18MB3437;H:MN2PR18MB3408.namprd18.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: zoK7d2nxjLTHwa7WJq9EFVYv+vHvhWG+DUyvdOlOAzbzFY87MBA2lvguq3crRT44lAiLPHAH9Iv4tyNXaGi1Nd3FP31q/b2x3YwONa/rbbMYPy17DwheGE/u7l8UlGephS/Djkd+AFD5IagKrWsT/3wDPCp5YWms7CaA+uwjwUAIh8jwgM29r6FXe452Ca/thVMDasnmRuUQ8+OYXHl/+L0UuCk+ewy6Nk0AuxIELNgJEuMKpcJqtYcXnrgl1g2InDCQdKHjLow2cakWj2EjW+qY4J2I89KgsAnTSvJivXZg1t50MXxLSDnPX975c1VwHdlcCbKKD5o+9yObecB2SZQGgHBK/o3BaDXE2oWulIdejdHGd4sBuoK8xO9x/kSURV7g800l4ZET1/4UWjW9uJtdMvr7L564Cb9/J1g2KAM= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 2743c187-3161-48a1-4158-08d6e411def9 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2019 08:44:32.9630 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: rrichter@marvell.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3437 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-05-29_05:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SW4gYSBsYXRlciBwYXRjaCB3ZSB3YW50IGFkZCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBt ZW1vcnkNCmhpZXJhcmNoeSAoTlVNQSB0b3BvbG9neSwgRElNTSBsYWJlbCBpbmZvcm1hdGlvbiku IFJld29yayBtZW1vcnkNCmhpZXJhcmNoeSBkZXRlY3Rpb24gdG8gbWFrZSB0aGUgY29kZSBleHRl bmRhYmxlIGZvciB0aGlzLg0KDQpUaGUgZ2VuZXJhbCBhcHByb2FjaCBpcyByb3VnaGx5IGxpa2U6 DQoNCgltZW1faW5mb19zZXR1cCgpOw0KCWZvcl9lYWNoX25vZGUobmlkKSB7DQoJCW1jaSA9IGVk YWNfbWNfYWxsb2MobmlkKTsNCgkJbWNpX2FkZF9kaW1tX2luZm8obWNpKTsNCgkJZWRhY19tY19h ZGRfbWMobWNpKTsNCgl9Ow0KDQpUaGlzIHBhdGNoIGludHJvZHVjZXMgbWVtX2luZm9fc2V0dXAo KSBhbmQgbWNpX2FkZF9kaW1tX2luZm8oKS4NCg0KQWxsIGRhdGEgb2YgdGhlIG1lbW9yeSBoaWVy YXJjaHkgaXMgY29sbGVjdGVkIGluIGEgbG9jYWwgc3RydWN0DQpnaGVzX21lbV9pbmZvLg0KDQpO b3RlOiBQZXIgKE5VTUEpIG5vZGUgcmVnaXN0cmF0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4g YSBsYXRlcg0KcGF0Y2guDQoNClNpZ25lZC1vZmYtYnk6IFJvYmVydCBSaWNodGVyIDxycmljaHRl ckBtYXJ2ZWxsLmNvbT4NCi0tLQ0KIGRyaXZlcnMvZWRhYy9naGVzX2VkYWMuYyB8IDE2NiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwgMTI2 IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9l ZGFjL2doZXNfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jDQppbmRleCBlYTRkNTMw NDMxOTkuLjUwZjRlZTM2Yjc1NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZWRhYy9naGVzX2VkYWMu Yw0KKysrIGIvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jDQpAQCAtNjcsMTcgKzY3LDM4IEBAIHN0 cnVjdCBtZW1kZXZfZG1pX2VudHJ5IHsNCiAJdTE2IGNvbmZfbWVtX2Nsa19zcGVlZDsNCiB9IF9f YXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsNCiANCi1zdHJ1Y3QgZ2hlc19lZGFjX2RpbW1fZmls bCB7DQotCXN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaTsNCi0JdW5zaWduZWQgY291bnQ7DQorc3Ry dWN0IGdoZXNfZGltbV9pbmZvIHsNCisJc3RydWN0IGRpbW1faW5mbyBkaW1tX2luZm87DQorCWlu dAkJaWR4Ow0KK307DQorDQorc3RydWN0IGdoZXNfbWVtX2luZm8gew0KKwlpbnQgbnVtX2RpbW07 DQorCXN0cnVjdCBnaGVzX2RpbW1faW5mbyAqZGltbXM7DQogfTsNCiANCitzdHJ1Y3QgZ2hlc19t ZW1faW5mbyBtZW1faW5mbzsNCisNCisjZGVmaW5lIGZvcl9lYWNoX2RpbW0oZGltbSkJCQkJXA0K Kwlmb3IgKGRpbW0gPSBtZW1faW5mby5kaW1tczsJCQlcDQorCSAgICAgZGltbSA8IG1lbV9pbmZv LmRpbW1zICsgbWVtX2luZm8ubnVtX2RpbW07CVwNCisJICAgICBkaW1tKyspDQorDQogc3RhdGlj IHZvaWQgZ2hlc19lZGFjX2NvdW50X2RpbW1zKGNvbnN0IHN0cnVjdCBkbWlfaGVhZGVyICpkaCwg dm9pZCAqYXJnKQ0KIHsNCi0JaW50ICpudW1fZGltbSA9IGFyZzsNCi0NCiAJaWYgKGRoLT50eXBl ID09IERNSV9FTlRSWV9NRU1fREVWSUNFKQ0KLQkJKCpudW1fZGltbSkrKzsNCisJCW1lbV9pbmZv Lm51bV9kaW1tKys7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIGdoZXNfZGltbV9pbmZvX2luaXQodm9p ZCkNCit7DQorCXN0cnVjdCBnaGVzX2RpbW1faW5mbyAqZGltbTsNCisJaW50IGlkeCA9IDA7DQor DQorCWZvcl9lYWNoX2RpbW0oZGltbSkgew0KKwkJZGltbS0+aWR4CT0gaWR4Ow0KKwkJaWR4Kys7 DQorCX0NCiB9DQogDQogc3RhdGljIGludCBnZXRfZGltbV9zbWJpb3NfaW5kZXgodTE2IGhhbmRs ZSkNCkBAIC05NCwxOCArMTE1LDE3IEBAIHN0YXRpYyBpbnQgZ2V0X2RpbW1fc21iaW9zX2luZGV4 KHUxNiBoYW5kbGUpDQogDQogc3RhdGljIHZvaWQgZ2hlc19lZGFjX2RtaWRlY29kZShjb25zdCBz dHJ1Y3QgZG1pX2hlYWRlciAqZGgsIHZvaWQgKmFyZykNCiB7DQotCXN0cnVjdCBnaGVzX2VkYWNf ZGltbV9maWxsICpkaW1tX2ZpbGwgPSBhcmc7DQotCXN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSA9 IGRpbW1fZmlsbC0+bWNpOw0KLQ0KIAlpZiAoZGgtPnR5cGUgPT0gRE1JX0VOVFJZX01FTV9ERVZJ Q0UpIHsNCisJCWludCAqaWR4ID0gYXJnOw0KIAkJc3RydWN0IG1lbWRldl9kbWlfZW50cnkgKmVu dHJ5ID0gKHN0cnVjdCBtZW1kZXZfZG1pX2VudHJ5ICopZGg7DQotCQlzdHJ1Y3QgZGltbV9pbmZv ICpkaW1tID0gZWRhY19nZXRfZGltbShtY2ksIGRpbW1fZmlsbC0+Y291bnQsDQotCQkJCQkJICAg ICAgIDAsIDApOw0KKwkJc3RydWN0IGdoZXNfZGltbV9pbmZvICptaSA9ICZtZW1faW5mby5kaW1t c1sqaWR4XTsNCisJCXN0cnVjdCBkaW1tX2luZm8gKmRpbW0gPSAmbWktPmRpbW1faW5mbzsNCiAJ CXUxNiByZHJfbWFzayA9IEJJVCg3KSB8IEJJVCgxMyk7DQogDQorCQltaS0+cGh5c19oYW5kbGUg PSBlbnRyeS0+cGh5c19tZW1fYXJyYXlfaGFuZGxlOw0KKw0KIAkJaWYgKGVudHJ5LT5zaXplID09 IDB4ZmZmZikgew0KLQkJCXByX2luZm8oIkNhbid0IGdldCBESU1NJWkgc2l6ZVxuIiwNCi0JCQkJ ZGltbV9maWxsLT5jb3VudCk7DQorCQkJcHJfaW5mbygiQ2FuJ3QgZ2V0IERJTU0laSBzaXplXG4i LCBtaS0+aWR4KTsNCiAJCQlkaW1tLT5ucl9wYWdlcyA9IE1pQl9UT19QQUdFUygzMik7LyogVW5r bm93biAqLw0KIAkJfSBlbHNlIGlmIChlbnRyeS0+c2l6ZSA9PSAweDdmZmYpIHsNCiAJCQlkaW1t LT5ucl9wYWdlcyA9IE1pQl9UT19QQUdFUyhlbnRyeS0+ZXh0ZW5kZWRfc2l6ZSk7DQpAQCAtMTc5 LDcgKzE5OSw3IEBAIHN0YXRpYyB2b2lkIGdoZXNfZWRhY19kbWlkZWNvZGUoY29uc3Qgc3RydWN0 IGRtaV9oZWFkZXIgKmRoLCB2b2lkICphcmcpDQogDQogCQlpZiAoZGltbS0+bnJfcGFnZXMpIHsN CiAJCQllZGFjX2RiZygxLCAiRElNTSVpOiAlcyBzaXplID0gJWQgTUIlc1xuIiwNCi0JCQkJZGlt bV9maWxsLT5jb3VudCwgZWRhY19tZW1fdHlwZXNbZGltbS0+bXR5cGVdLA0KKwkJCQltaS0+aWR4 LCBlZGFjX21lbV90eXBlc1tkaW1tLT5tdHlwZV0sDQogCQkJCVBBR0VTX1RPX01pQihkaW1tLT5u cl9wYWdlcyksDQogCQkJCShkaW1tLT5lZGFjX21vZGUgIT0gRURBQ19OT05FKSA/ICIoRUNDKSIg OiAiIik7DQogCQkJZWRhY19kYmcoMiwgIlx0dHlwZSAlZCwgZGV0YWlsIDB4JTAyeCwgd2lkdGgg JWQodG90YWwgJWQpXG4iLA0KQEAgLTE4OSw4ICsyMDksODMgQEAgc3RhdGljIHZvaWQgZ2hlc19l ZGFjX2RtaWRlY29kZShjb25zdCBzdHJ1Y3QgZG1pX2hlYWRlciAqZGgsIHZvaWQgKmFyZykNCiAN CiAJCWRpbW0tPnNtYmlvc19oYW5kbGUgPSBlbnRyeS0+aGFuZGxlOw0KIA0KLQkJZGltbV9maWxs LT5jb3VudCsrOw0KKwkJKCppZHgpKys7DQorCX0NCit9DQorDQorc3RhdGljIGludCBtZW1faW5m b19zZXR1cCh2b2lkKQ0KK3sNCisJaW50IGlkeCA9IDA7DQorDQorCW1lbXNldCgmbWVtX2luZm8s IDAsIHNpemVvZihtZW1faW5mbykpOw0KKw0KKwkvKiBHZXQgdGhlIG51bWJlciBvZiBESU1NcyAq Lw0KKwlkbWlfd2FsayhnaGVzX2VkYWNfY291bnRfZGltbXMsIE5VTEwpOw0KKwlpZiAoIW1lbV9p bmZvLm51bV9kaW1tKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCW1lbV9pbmZvLmRpbW1zID0g a2NhbGxvYyhtZW1faW5mby5udW1fZGltbSwNCisJCQkJc2l6ZW9mKCptZW1faW5mby5kaW1tcyks IEdGUF9LRVJORUwpOw0KKwlpZiAoIW1lbV9pbmZvLmRpbW1zKQ0KKwkJcmV0dXJuIC1FTk9NRU07 DQorDQorCWdoZXNfZGltbV9pbmZvX2luaXQoKTsNCisJZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRl Y29kZSwgJmlkeCk7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IG1lbV9pbmZv X3NldHVwX2Zha2Uodm9pZCkNCit7DQorCXN0cnVjdCBnaGVzX2RpbW1faW5mbyAqZ2hlc19kaW1t Ow0KKwlzdHJ1Y3QgZGltbV9pbmZvICpkaW1tOw0KKw0KKwltZW1zZXQoJm1lbV9pbmZvLCAwLCBz aXplb2YobWVtX2luZm8pKTsNCisNCisJZ2hlc19kaW1tID0ga3phbGxvYyhzaXplb2YoKm1lbV9p bmZvLmRpbW1zKSwgR0ZQX0tFUk5FTCk7DQorCWlmICghZ2hlc19kaW1tKQ0KKwkJcmV0dXJuIC1F Tk9NRU07DQorDQorCW1lbV9pbmZvLm51bV9kaW1tID0gMTsNCisJbWVtX2luZm8uZGltbXMgPSBn aGVzX2RpbW07DQorDQorCWdoZXNfZGltbV9pbmZvX2luaXQoKTsNCisNCisJZGltbSA9ICZnaGVz X2RpbW0tPmRpbW1faW5mbzsNCisJZGltbS0+bnJfcGFnZXMgPSAxOw0KKwlkaW1tLT5ncmFpbiA9 IDEyODsNCisJZGltbS0+bXR5cGUgPSBNRU1fVU5LTk9XTjsNCisJZGltbS0+ZHR5cGUgPSBERVZf VU5LTk9XTjsNCisJZGltbS0+ZWRhY19tb2RlID0gRURBQ19TRUNERUQ7DQorDQorCXJldHVybiAw Ow0KK30NCisNCitzdGF0aWMgdm9pZCBtY2lfYWRkX2RpbW1faW5mbyhzdHJ1Y3QgbWVtX2N0bF9p bmZvICptY2kpDQorew0KKwlzdHJ1Y3QgZGltbV9pbmZvICptY2lfZGltbSwgKmRtaV9kaW1tOw0K KwlzdHJ1Y3QgZ2hlc19kaW1tX2luZm8gKmRpbW07DQorCWludCBpbmRleCA9IDA7DQorDQorCWZv cl9lYWNoX2RpbW0oZGltbSkgew0KKwkJZG1pX2RpbW0gPSAmZGltbS0+ZGltbV9pbmZvOw0KKwkJ bWNpX2RpbW0gPSBlZGFjX2dldF9kaW1tX2J5X2luZGV4KG1jaSwgaW5kZXgpOw0KKw0KKwkJaW5k ZXgrKzsNCisJCWlmIChpbmRleCA+IG1jaS0+dG90X2RpbW1zKQ0KKwkJCWJyZWFrOw0KKw0KKwkJ bWNpX2RpbW0tPm5yX3BhZ2VzCT0gZG1pX2RpbW0tPm5yX3BhZ2VzOw0KKwkJbWNpX2RpbW0tPm10 eXBlCQk9IGRtaV9kaW1tLT5tdHlwZTsNCisJCW1jaV9kaW1tLT5lZGFjX21vZGUJPSBkbWlfZGlt bS0+ZWRhY19tb2RlOw0KKwkJbWNpX2RpbW0tPmR0eXBlCQk9IGRtaV9kaW1tLT5kdHlwZTsNCisJ CW1jaV9kaW1tLT5ncmFpbgkJPSBkbWlfZGltbS0+Z3JhaW47DQorCQltY2lfZGltbS0+c21iaW9z X2hhbmRsZSA9IGRtaV9kaW1tLT5zbWJpb3NfaGFuZGxlOw0KIAl9DQorDQorCWlmIChpbmRleCAh PSBtY2ktPnRvdF9kaW1tcykNCisJCXByX3dhcm4oIlVuZXhwZWN0ZWQgbnVtYmVyIG9mIERJTU1z OiAlZCAoZXhwLiAlZClcbiIsDQorCQkJaW5kZXgsIG1jaS0+dG90X2RpbW1zKTsNCiB9DQogDQog dm9pZCBnaGVzX2VkYWNfcmVwb3J0X21lbV9lcnJvcihpbnQgc2V2LCBzdHJ1Y3QgY3Blcl9zZWNf bWVtX2VyciAqbWVtX2VycikNCkBAIC00NTEsMTAgKzU0Niw5IEBAIHN0YXRpYyBzdHJ1Y3QgYWNw aV9wbGF0Zm9ybV9saXN0IHBsYXRfbGlzdFtdID0gew0KIGludCBnaGVzX2VkYWNfcmVnaXN0ZXIo c3RydWN0IGdoZXMgKmdoZXMsIHN0cnVjdCBkZXZpY2UgKmRldikNCiB7DQogCWJvb2wgZmFrZSA9 IGZhbHNlOw0KLQlpbnQgcmMsIG51bV9kaW1tID0gMDsNCisJaW50IHJjOw0KIAlzdHJ1Y3QgbWVt X2N0bF9pbmZvICptY2k7DQogCXN0cnVjdCBlZGFjX21jX2xheWVyIGxheWVyc1sxXTsNCi0Jc3Ry dWN0IGdoZXNfZWRhY19kaW1tX2ZpbGwgZGltbV9maWxsOw0KIAlpbnQgaWR4ID0gLTE7DQogDQog CWlmIChJU19FTkFCTEVEKENPTkZJR19YODYpKSB7DQpAQCAtNDcyLDIyICs1NjYsMjQgQEAgaW50 IGdoZXNfZWRhY19yZWdpc3RlcihzdHJ1Y3QgZ2hlcyAqZ2hlcywgc3RydWN0IGRldmljZSAqZGV2 KQ0KIAlpZiAoYXRvbWljX2luY19yZXR1cm4oJmdoZXNfaW5pdCkgPiAxKQ0KIAkJcmV0dXJuIDA7 DQogDQotCS8qIEdldCB0aGUgbnVtYmVyIG9mIERJTU1zICovDQotCWRtaV93YWxrKGdoZXNfZWRh Y19jb3VudF9kaW1tcywgJm51bV9kaW1tKTsNCi0NCi0JLyogQ2hlY2sgaWYgd2UndmUgZ290IGEg Ym9ndXMgQklPUyAqLw0KLQlpZiAobnVtX2RpbW0gPT0gMCkgew0KKwlyYyA9IG1lbV9pbmZvX3Nl dHVwKCk7DQorCWlmIChyYyA9PSAtRUlOVkFMKSB7DQorCQkvKiB3ZSd2ZSBnb3QgYSBib2d1cyBC SU9TICovDQogCQlmYWtlID0gdHJ1ZTsNCi0JCW51bV9kaW1tID0gMTsNCisJCXJjID0gbWVtX2lu Zm9fc2V0dXBfZmFrZSgpOw0KKwl9DQorCWlmIChyYyA8IDApIHsNCisJCXByX2VycigiQ2FuJ3Qg YWxsb2NhdGUgbWVtb3J5IGZvciBESU1NIGRhdGFcbiIpOw0KKwkJcmV0dXJuIHJjOw0KIAl9DQog DQogCWxheWVyc1swXS50eXBlID0gRURBQ19NQ19MQVlFUl9BTExfTUVNOw0KLQlsYXllcnNbMF0u c2l6ZSA9IG51bV9kaW1tOw0KKwlsYXllcnNbMF0uc2l6ZSA9IG1lbV9pbmZvLm51bV9kaW1tOw0K IAlsYXllcnNbMF0uaXNfdmlydF9jc3JvdyA9IHRydWU7DQogDQogCW1jaSA9IGVkYWNfbWNfYWxs b2MoMCwgQVJSQVlfU0laRShsYXllcnMpLCBsYXllcnMsIHNpemVvZihzdHJ1Y3QgZ2hlc19lZGFj X3B2dCkpOw0KIAlpZiAoIW1jaSkgew0KLQkJcHJfaW5mbygiQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5 IGZvciBFREFDIGRhdGFcbiIpOw0KKwkJcHJfZXJyKCJDYW4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9y IEVEQUMgZGF0YVxuIik7DQogCQlyZXR1cm4gLUVOT01FTTsNCiAJfQ0KIA0KQEAgLTUxMywyNiAr NjA5LDE0IEBAIGludCBnaGVzX2VkYWNfcmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0cnVj dCBkZXZpY2UgKmRldikNCiAJCXByX2luZm8oIlNvLCB0aGUgZW5kIHJlc3VsdCBvZiB1c2luZyB0 aGlzIGRyaXZlciB2YXJpZXMgZnJvbSB2ZW5kb3IgdG8gdmVuZG9yLlxuIik7DQogCQlwcl9pbmZv KCJJZiB5b3UgZmluZCBpbmNvcnJlY3QgcmVwb3J0cywgcGxlYXNlIGNvbnRhY3QgeW91ciBoYXJk d2FyZSB2ZW5kb3JcbiIpOw0KIAkJcHJfaW5mbygidG8gY29ycmVjdCBpdHMgQklPUy5cbiIpOw0K LQkJcHJfaW5mbygiVGhpcyBzeXN0ZW0gaGFzICVkIERJTU0gc29ja2V0cy5cbiIsIG51bV9kaW1t KTsNCisJCXByX2luZm8oIlRoaXMgc3lzdGVtIGhhcyAlZCBESU1NIHNvY2tldHMuXG4iLCBtZW1f aW5mby5udW1fZGltbSk7DQogCX0NCiANCi0JaWYgKCFmYWtlKSB7DQotCQlkaW1tX2ZpbGwuY291 bnQgPSAwOw0KLQkJZGltbV9maWxsLm1jaSA9IG1jaTsNCi0JCWRtaV93YWxrKGdoZXNfZWRhY19k bWlkZWNvZGUsICZkaW1tX2ZpbGwpOw0KLQl9IGVsc2Ugew0KLQkJc3RydWN0IGRpbW1faW5mbyAq ZGltbSA9IGVkYWNfZ2V0X2RpbW0obWNpLCAwLCAwLCAwKTsNCi0NCi0JCWRpbW0tPm5yX3BhZ2Vz ID0gMTsNCi0JCWRpbW0tPmdyYWluID0gMTI4Ow0KLQkJZGltbS0+bXR5cGUgPSBNRU1fVU5LTk9X TjsNCi0JCWRpbW0tPmR0eXBlID0gREVWX1VOS05PV047DQotCQlkaW1tLT5lZGFjX21vZGUgPSBF REFDX1NFQ0RFRDsNCi0JfQ0KKwltY2lfYWRkX2RpbW1faW5mbyhtY2kpOw0KIA0KIAlyYyA9IGVk YWNfbWNfYWRkX21jKG1jaSk7DQogCWlmIChyYyA8IDApIHsNCi0JCXByX2luZm8oIkNhbid0IHJl Z2lzdGVyIGF0IEVEQUMgY29yZVxuIik7DQorCQlwcl9lcnIoIkNhbid0IHJlZ2lzdGVyIGF0IEVE QUMgY29yZVxuIik7DQogCQllZGFjX21jX2ZyZWUobWNpKTsNCiAJCXJldHVybiAtRU5PREVWOw0K IAl9DQpAQCAtNTQ5LDQgKzYzMyw2IEBAIHZvaWQgZ2hlc19lZGFjX3VucmVnaXN0ZXIoc3RydWN0 IGdoZXMgKmdoZXMpDQogCW1jaSA9IGdoZXNfcHZ0LT5tY2k7DQogCWVkYWNfbWNfZGVsX21jKG1j aS0+cGRldik7DQogCWVkYWNfbWNfZnJlZShtY2kpOw0KKw0KKwlrZnJlZShtZW1faW5mby5kaW1t cyk7DQogfQ0KLS0gDQoyLjIwLjENCg0K