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=-8.8 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,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 AD687C43613 for ; Mon, 24 Jun 2019 15:10:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 77AF120645 for ; Mon, 24 Jun 2019 15:10:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="M5rHCx7J"; dkim=pass (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="m91mrY0i" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730374AbfFXPK0 (ORCPT ); Mon, 24 Jun 2019 11:10:26 -0400 Received: from mx0b-0016f401.pphosted.com ([67.231.156.173]:21666 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730643AbfFXPJd (ORCPT ); Mon, 24 Jun 2019 11:09:33 -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 x5OF8C7s025877; Mon, 24 Jun 2019 08:09:27 -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=bfflnRYpDvVdGA7neySELZzZvsBkLFBVWu6IDjZu6HQ=; b=M5rHCx7JR5QPTrHc/KvthGz447imA11rIgVvZ3UDz/YuDDmnpIu0h2ZNWeLTRM7qmMvS JvKn7gRNHYq4SqR44NDhbn+Bg1OCQwKTgfPe0hwTbXtptobZSU4np69w1SJxaMJOmGdM rVxU7jxWB38JrN2RMllxdsPkAyoS3JEu8PWz7oprLdCyezzHpcfBxhkzeVZP3Yjv8zQU 1A9yZHD3ZZIkg6uct/jGZPMOzpVCwMe1ncTdf38QJaGWKy6GAYK74xdWsd0q2IqbkGz8 04dZDClUonaZiur5n6uH9UVBtDY+0Ix4MbH2WzLKAVdY7LYRT4/tLMxvEiQakmagNwis vQ== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2t9kujf7tc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 24 Jun 2019 08:09:27 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 24 Jun 2019 08:09:25 -0700 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (104.47.42.57) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Mon, 24 Jun 2019 08:09:25 -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=bfflnRYpDvVdGA7neySELZzZvsBkLFBVWu6IDjZu6HQ=; b=m91mrY0ixUbxvGes4T3rUlpAEQr8fxz8N1Bvp1j+b5619HSlvZkkQ5eTe+53gf3Qz6UuRdOzYqA/pgqQVbDzpVUMgLgAbGi7+DUBFBPFp5N2CdOk6QvcePEJgkQLO/jg0Pw/Q0YiGeiGN3ZHbIDVBMFLpERjjf7cY01LEcar+LE= Received: from MN2PR18MB3408.namprd18.prod.outlook.com (10.255.238.217) by MN2PR18MB3197.namprd18.prod.outlook.com (10.255.236.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.13; Mon, 24 Jun 2019 15:09:24 +0000 Received: from MN2PR18MB3408.namprd18.prod.outlook.com ([fe80::d3:794c:1b94:cf3]) by MN2PR18MB3408.namprd18.prod.outlook.com ([fe80::d3:794c:1b94:cf3%4]) with mapi id 15.20.2008.014; Mon, 24 Jun 2019 15:09:24 +0000 From: Robert Richter To: Borislav Petkov , James Morse , "Mauro Carvalho Chehab" CC: "linux-edac@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Robert Richter Subject: [PATCH v2 14/24] EDAC, ghes: Rework memory hierarchy detection Thread-Topic: [PATCH v2 14/24] EDAC, ghes: Rework memory hierarchy detection Thread-Index: AQHVKp7OqLehG2JpFEKKkNY8azlMkA== Date: Mon, 24 Jun 2019 15:09:24 +0000 Message-ID: <20190624150758.6695-15-rrichter@marvell.com> References: <20190624150758.6695-1-rrichter@marvell.com> In-Reply-To: <20190624150758.6695-1-rrichter@marvell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HE1P190CA0035.EURP190.PROD.OUTLOOK.COM (2603:10a6:7:52::24) 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: [92.254.182.202] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 33b5620a-03bc-4669-fbc2-08d6f8b5f10c x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:MN2PR18MB3197; x-ms-traffictypediagnostic: MN2PR18MB3197: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:595; x-forefront-prvs: 007814487B x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(366004)(136003)(396003)(346002)(376002)(199004)(189003)(36756003)(110136005)(107886003)(54906003)(81156014)(81166006)(68736007)(8676002)(25786009)(5660300002)(8936002)(305945005)(7736002)(4326008)(1076003)(186003)(6116002)(14454004)(476003)(486006)(2616005)(11346002)(256004)(446003)(3846002)(50226002)(26005)(2906002)(52116002)(76176011)(71200400001)(71190400001)(99286004)(386003)(6506007)(102836004)(478600001)(316002)(86362001)(6512007)(66066001)(53936002)(6486002)(73956011)(66946007)(66476007)(66556008)(64756008)(66446008)(6436002);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR18MB3197;H:MN2PR18MB3408.namprd18.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: rzO0p7EwJrw7BOx7OMR/vQsF9Sa9GO43xtMhXl1mTrHnxTaxL9Krh6p/6NCCN4JFcYaXUEEb76rpDyLycNNTtlk19WUY6am/2OPTVm7i2U7SACskU6wHybKluqWRpFaF3HjN9liYdX/JrQhUCQghxj542KE6Zv9yzFFF9OwFd3WjoZ0wFduWM/xI6P637zuUv2GkyrzgX0hOKT5K4+mfNz9vVJLSp+dGzFAuS4O9Q5uizGJL3PZ35yw6vnQ94tVxQLbrBMCtTMCUEvXlb4dwyFVczADVYqqqUr6m9/rWr2ShezprOPkXSj+LoU8nqogOKwPshwMaNKK0JNo70EV2uO1lf+F0G6Nyh+Ah9KPFnvHhJ34RDJT2hOWdi2+9dxhHGLaYaBXLxcnV5uq/1zbHrX5MOR3scY32vix5dUO7jc8= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 33b5620a-03bc-4669-fbc2-08d6f8b5f10c X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2019 15:09:24.0630 (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: MN2PR18MB3197 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-06-24_10:,, signatures=0 Sender: linux-edac-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-edac@vger.kernel.org SW4gYSBsYXRlciBwYXRjaCB3ZSB3YW50IHRvIGFkZCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRo ZSBtZW1vcnkNCmhpZXJhcmNoeSAoTlVNQSB0b3BvbG9neSwgRElNTSBsYWJlbCBpbmZvcm1hdGlv bikuIFJld29yayBtZW1vcnkNCmhpZXJhcmNoeSBkZXRlY3Rpb24gdG8gbWFrZSB0aGUgY29kZSBl eHRlbmRhYmxlIGZvciB0aGlzLg0KDQpUaGUgZ2VuZXJhbCBhcHByb2FjaCBpcyByb3VnaGx5IGxp a2U6DQoNCgltZW1faW5mb19zZXR1cCgpOw0KCWZvcl9lYWNoX25vZGUobmlkKSB7DQoJCW1jaSA9 IGVkYWNfbWNfYWxsb2MobmlkKTsNCgkJbWVtX2luZm9fcHJlcGFyZV9tY2kobWNpKTsNCgkJZWRh Y19tY19hZGRfbWMobWNpKTsNCgl9Ow0KDQpUaGlzIHBhdGNoIGludHJvZHVjZXMgbWVtX2luZm9f c2V0dXAoKSBhbmQgbWVtX2luZm9fcHJlcGFyZV9tY2koKS4NCg0KQWxsIGRhdGEgb2YgdGhlIG1l bW9yeSBoaWVyYXJjaHkgaXMgY29sbGVjdGVkIGluIGEgbG9jYWwgc3RydWN0DQpnaGVzX21lbV9p bmZvLg0KDQpOb3RlOiBQZXIgKE5VTUEpIG5vZGUgcmVnaXN0cmF0aW9uIHdpbGwgYmUgaW1wbGVt ZW50ZWQgaW4gYSBsYXRlcg0KcGF0Y2guDQoNClNpZ25lZC1vZmYtYnk6IFJvYmVydCBSaWNodGVy IDxycmljaHRlckBtYXJ2ZWxsLmNvbT4NCi0tLQ0KIGRyaXZlcnMvZWRhYy9naGVzX2VkYWMuYyB8 IDE2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0NCiAxIGZpbGUgY2hh bmdlZCwgMTI3IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jDQppbmRl eCA4MDYzOTk2YTMxMWQuLjQ0YmZiNDk5YjE0NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZWRhYy9n aGVzX2VkYWMuYw0KKysrIGIvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jDQpAQCAtNjUsMTcgKzY1 LDUzIEBAIHN0cnVjdCBtZW1kZXZfZG1pX2VudHJ5IHsNCiAJdTE2IGNvbmZfbWVtX2Nsa19zcGVl ZDsNCiB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsNCiANCi1zdHJ1Y3QgZ2hlc19lZGFj X2RpbW1fZmlsbCB7DQotCXN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaTsNCi0JdW5zaWduZWQgY291 bnQ7DQorc3RydWN0IGdoZXNfZGltbV9pbmZvIHsNCisJc3RydWN0IGRpbW1faW5mbyBkaW1tX2lu Zm87DQorCWludAkJaWR4Ow0KK307DQorDQorc3RydWN0IGdoZXNfbWVtX2luZm8gew0KKwlpbnQg bnVtX2RpbW07DQorCXN0cnVjdCBnaGVzX2RpbW1faW5mbyAqZGltbXM7DQogfTsNCiANCitzdGF0 aWMgc3RydWN0IGdoZXNfbWVtX2luZm8gbWVtX2luZm87DQorDQorI2RlZmluZSBmb3JfZWFjaF9k aW1tKGRpbW0pCQkJCVwNCisJZm9yIChkaW1tID0gbWVtX2luZm8uZGltbXM7CQkJXA0KKwkgICAg IGRpbW0gPCBtZW1faW5mby5kaW1tcyArIG1lbV9pbmZvLm51bV9kaW1tOwlcDQorCSAgICAgZGlt bSsrKQ0KKw0KIHN0YXRpYyB2b2lkIGdoZXNfZWRhY19jb3VudF9kaW1tcyhjb25zdCBzdHJ1Y3Qg ZG1pX2hlYWRlciAqZGgsIHZvaWQgKmFyZykNCiB7DQotCWludCAqbnVtX2RpbW0gPSBhcmc7DQor CWludCAqbnVtID0gYXJnOw0KIA0KIAlpZiAoZGgtPnR5cGUgPT0gRE1JX0VOVFJZX01FTV9ERVZJ Q0UpDQotCQkoKm51bV9kaW1tKSsrOw0KKwkJKCpudW0pKys7DQorfQ0KKw0KK3N0YXRpYyBpbnQg Z2hlc19kaW1tX2luZm9faW5pdChpbnQgbnVtKQ0KK3sNCisJc3RydWN0IGdoZXNfZGltbV9pbmZv ICpkaW1tOw0KKwlpbnQgaWR4ID0gMDsNCisNCisJbWVtc2V0KCZtZW1faW5mbywgMCwgc2l6ZW9m KG1lbV9pbmZvKSk7DQorDQorCWlmIChudW0gPD0gMCkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0K KwltZW1faW5mby5kaW1tcyA9IGtjYWxsb2MobnVtLCBzaXplb2YoKm1lbV9pbmZvLmRpbW1zKSwg R0ZQX0tFUk5FTCk7DQorCWlmICghbWVtX2luZm8uZGltbXMpDQorCQlyZXR1cm4gLUVOT01FTTsN CisNCisJbWVtX2luZm8ubnVtX2RpbW0gPSBudW07DQorDQorCWZvcl9lYWNoX2RpbW0oZGltbSkg ew0KKwkJZGltbS0+aWR4CT0gaWR4Ow0KKwkJaWR4Kys7DQorCX0NCisNCisJcmV0dXJuIDA7DQog fQ0KIA0KIHN0YXRpYyBpbnQgZ2V0X2RpbW1fc21iaW9zX2luZGV4KHUxNiBoYW5kbGUpDQpAQCAt OTIsMTggKzEyOCwxNSBAQCBzdGF0aWMgaW50IGdldF9kaW1tX3NtYmlvc19pbmRleCh1MTYgaGFu ZGxlKQ0KIA0KIHN0YXRpYyB2b2lkIGdoZXNfZWRhY19kbWlkZWNvZGUoY29uc3Qgc3RydWN0IGRt aV9oZWFkZXIgKmRoLCB2b2lkICphcmcpDQogew0KLQlzdHJ1Y3QgZ2hlc19lZGFjX2RpbW1fZmls bCAqZGltbV9maWxsID0gYXJnOw0KLQlzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kgPSBkaW1tX2Zp bGwtPm1jaTsNCi0NCiAJaWYgKGRoLT50eXBlID09IERNSV9FTlRSWV9NRU1fREVWSUNFKSB7DQor CQlpbnQgKmlkeCA9IGFyZzsNCiAJCXN0cnVjdCBtZW1kZXZfZG1pX2VudHJ5ICplbnRyeSA9IChz dHJ1Y3QgbWVtZGV2X2RtaV9lbnRyeSAqKWRoOw0KLQkJc3RydWN0IGRpbW1faW5mbyAqZGltbSA9 IGVkYWNfZ2V0X2RpbW0obWNpLCBkaW1tX2ZpbGwtPmNvdW50LA0KLQkJCQkJCSAgICAgICAwLCAw KTsNCisJCXN0cnVjdCBnaGVzX2RpbW1faW5mbyAqbWkgPSAmbWVtX2luZm8uZGltbXNbKmlkeF07 DQorCQlzdHJ1Y3QgZGltbV9pbmZvICpkaW1tID0gJm1pLT5kaW1tX2luZm87DQogCQl1MTYgcmRy X21hc2sgPSBCSVQoNykgfCBCSVQoMTMpOw0KIA0KIAkJaWYgKGVudHJ5LT5zaXplID09IDB4ZmZm Zikgew0KLQkJCXByX2luZm8oIkNhbid0IGdldCBESU1NJWkgc2l6ZVxuIiwNCi0JCQkJZGltbV9m aWxsLT5jb3VudCk7DQorCQkJcHJfaW5mbygiQ2FuJ3QgZ2V0IERJTU0laSBzaXplXG4iLCBtaS0+ aWR4KTsNCiAJCQlkaW1tLT5ucl9wYWdlcyA9IE1pQl9UT19QQUdFUygzMik7LyogVW5rbm93biAq Lw0KIAkJfSBlbHNlIGlmIChlbnRyeS0+c2l6ZSA9PSAweDdmZmYpIHsNCiAJCQlkaW1tLT5ucl9w YWdlcyA9IE1pQl9UT19QQUdFUyhlbnRyeS0+ZXh0ZW5kZWRfc2l6ZSk7DQpAQCAtMTc3LDcgKzIx MCw3IEBAIHN0YXRpYyB2b2lkIGdoZXNfZWRhY19kbWlkZWNvZGUoY29uc3Qgc3RydWN0IGRtaV9o ZWFkZXIgKmRoLCB2b2lkICphcmcpDQogDQogCQlpZiAoZGltbS0+bnJfcGFnZXMpIHsNCiAJCQll ZGFjX2RiZygxLCAiRElNTSVpOiAlcyBzaXplID0gJWQgTUIlc1xuIiwNCi0JCQkJZGltbV9maWxs LT5jb3VudCwgZWRhY19tZW1fdHlwZXNbZGltbS0+bXR5cGVdLA0KKwkJCQltaS0+aWR4LCBlZGFj X21lbV90eXBlc1tkaW1tLT5tdHlwZV0sDQogCQkJCVBBR0VTX1RPX01pQihkaW1tLT5ucl9wYWdl cyksDQogCQkJCShkaW1tLT5lZGFjX21vZGUgIT0gRURBQ19OT05FKSA/ICIoRUNDKSIgOiAiIik7 DQogCQkJZWRhY19kYmcoMiwgIlx0dHlwZSAlZCwgZGV0YWlsIDB4JTAyeCwgd2lkdGggJWQodG90 YWwgJWQpXG4iLA0KQEAgLTE4NywxMCArMjIwLDc0IEBAIHN0YXRpYyB2b2lkIGdoZXNfZWRhY19k bWlkZWNvZGUoY29uc3Qgc3RydWN0IGRtaV9oZWFkZXIgKmRoLCB2b2lkICphcmcpDQogDQogCQlk aW1tLT5zbWJpb3NfaGFuZGxlID0gZW50cnktPmhhbmRsZTsNCiANCi0JCWRpbW1fZmlsbC0+Y291 bnQrKzsNCisJCSgqaWR4KSsrOw0KIAl9DQogfQ0KIA0KK3N0YXRpYyBpbnQgbWVtX2luZm9fc2V0 dXAodm9pZCkNCit7DQorCWludCBudW0gPSAwOw0KKwlpbnQgaWR4ID0gMDsNCisJaW50IHJldDsN CisNCisJLyogR2V0IHRoZSBudW1iZXIgb2YgRElNTXMgKi8NCisJZG1pX3dhbGsoZ2hlc19lZGFj X2NvdW50X2RpbW1zLCAmbnVtKTsNCisNCisJcmV0ID0gZ2hlc19kaW1tX2luZm9faW5pdChudW0p Ow0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJZG1pX3dhbGsoZ2hlc19lZGFjX2Rt aWRlY29kZSwgJmlkeCk7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IG1lbV9p bmZvX3NldHVwX2Zha2Uodm9pZCkNCit7DQorCXN0cnVjdCBkaW1tX2luZm8gKmRpbW07DQorCWlu dCByZXQ7DQorDQorCXJldCA9IGdoZXNfZGltbV9pbmZvX2luaXQoMSk7DQorCWlmIChyZXQpDQor CQlyZXR1cm4gcmV0Ow0KKw0KKwlkaW1tID0gJm1lbV9pbmZvLmRpbW1zLT5kaW1tX2luZm87DQor CWRpbW0tPm5yX3BhZ2VzID0gMTsNCisJZGltbS0+Z3JhaW4gPSAxMjg7DQorCWRpbW0tPm10eXBl ID0gTUVNX1VOS05PV047DQorCWRpbW0tPmR0eXBlID0gREVWX1VOS05PV047DQorCWRpbW0tPmVk YWNfbW9kZSA9IEVEQUNfU0VDREVEOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIHZv aWQgbWVtX2luZm9fcHJlcGFyZV9tY2koc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpKQ0KK3sNCisJ c3RydWN0IGRpbW1faW5mbyAqbWNpX2RpbW0sICpkbWlfZGltbTsNCisJc3RydWN0IGdoZXNfZGlt bV9pbmZvICpkaW1tOw0KKwlpbnQgaW5kZXggPSAwOw0KKw0KKwlmb3JfZWFjaF9kaW1tKGRpbW0p IHsNCisJCWRtaV9kaW1tID0gJmRpbW0tPmRpbW1faW5mbzsNCisJCW1jaV9kaW1tID0gZWRhY19n ZXRfZGltbV9ieV9pbmRleChtY2ksIGluZGV4KTsNCisNCisJCWluZGV4Kys7DQorCQlpZiAoaW5k ZXggPiBtY2ktPnRvdF9kaW1tcykNCisJCQlicmVhazsNCisNCisJCW1jaV9kaW1tLT5ucl9wYWdl cwk9IGRtaV9kaW1tLT5ucl9wYWdlczsNCisJCW1jaV9kaW1tLT5tdHlwZQkJPSBkbWlfZGltbS0+ bXR5cGU7DQorCQltY2lfZGltbS0+ZWRhY19tb2RlCT0gZG1pX2RpbW0tPmVkYWNfbW9kZTsNCisJ CW1jaV9kaW1tLT5kdHlwZQkJPSBkbWlfZGltbS0+ZHR5cGU7DQorCQltY2lfZGltbS0+Z3JhaW4J CT0gZG1pX2RpbW0tPmdyYWluOw0KKwkJbWNpX2RpbW0tPnNtYmlvc19oYW5kbGUgPSBkbWlfZGlt bS0+c21iaW9zX2hhbmRsZTsNCisJfQ0KKw0KKwlpZiAoaW5kZXggIT0gbWNpLT50b3RfZGltbXMp DQorCQlwcl93YXJuKCJVbmV4cGVjdGVkIG51bWJlciBvZiBESU1NczogJWQgKGV4cC4gJWQpXG4i LA0KKwkJCWluZGV4LCBtY2ktPnRvdF9kaW1tcyk7DQorfQ0KKw0KIHZvaWQgZ2hlc19lZGFjX3Jl cG9ydF9tZW1fZXJyb3IoaW50IHNldiwgc3RydWN0IGNwZXJfc2VjX21lbV9lcnIgKm1lbV9lcnIp DQogew0KIAlzdHJ1Y3QgZGltbV9pbmZvICpkaW1tX2luZm87DQpAQCAtNDUwLDEwICs1NDcsOSBA QCBzdGF0aWMgc3RydWN0IGFjcGlfcGxhdGZvcm1fbGlzdCBwbGF0X2xpc3RbXSA9IHsNCiBpbnQg Z2hlc19lZGFjX3JlZ2lzdGVyKHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYp DQogew0KIAlib29sIGZha2UgPSBmYWxzZTsNCi0JaW50IHJjLCBudW1fZGltbSA9IDA7DQorCWlu dCByYzsNCiAJc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpOw0KIAlzdHJ1Y3QgZWRhY19tY19sYXll ciBsYXllcnNbMV07DQotCXN0cnVjdCBnaGVzX2VkYWNfZGltbV9maWxsIGRpbW1fZmlsbDsNCiAJ aW50IGlkeCA9IC0xOw0KIA0KIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfWDg2KSkgew0KQEAgLTQ3 MSwyMiArNTY3LDI0IEBAIGludCBnaGVzX2VkYWNfcmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMs IHN0cnVjdCBkZXZpY2UgKmRldikNCiAJaWYgKGF0b21pY19pbmNfcmV0dXJuKCZnaGVzX2luaXQp ID4gMSkNCiAJCXJldHVybiAwOw0KIA0KLQkvKiBHZXQgdGhlIG51bWJlciBvZiBESU1NcyAqLw0K LQlkbWlfd2FsayhnaGVzX2VkYWNfY291bnRfZGltbXMsICZudW1fZGltbSk7DQotDQotCS8qIENo ZWNrIGlmIHdlJ3ZlIGdvdCBhIGJvZ3VzIEJJT1MgKi8NCi0JaWYgKG51bV9kaW1tID09IDApIHsN CisJcmMgPSBtZW1faW5mb19zZXR1cCgpOw0KKwlpZiAocmMgPT0gLUVJTlZBTCkgew0KKwkJLyog d2UndmUgZ290IGEgYm9ndXMgQklPUyAqLw0KIAkJZmFrZSA9IHRydWU7DQotCQludW1fZGltbSA9 IDE7DQorCQlyYyA9IG1lbV9pbmZvX3NldHVwX2Zha2UoKTsNCisJfQ0KKwlpZiAocmMgPCAwKSB7 DQorCQlwcl9lcnIoIkNhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgRElNTSBkYXRhXG4iKTsNCisJ CXJldHVybiByYzsNCiAJfQ0KIA0KIAlsYXllcnNbMF0udHlwZSA9IEVEQUNfTUNfTEFZRVJfQUxM X01FTTsNCi0JbGF5ZXJzWzBdLnNpemUgPSBudW1fZGltbTsNCisJbGF5ZXJzWzBdLnNpemUgPSBt ZW1faW5mby5udW1fZGltbTsNCiAJbGF5ZXJzWzBdLmlzX3ZpcnRfY3Nyb3cgPSB0cnVlOw0KIA0K IAltY2kgPSBlZGFjX21jX2FsbG9jKDAsIEFSUkFZX1NJWkUobGF5ZXJzKSwgbGF5ZXJzLCBzaXpl b2Yoc3RydWN0IGdoZXNfZWRhY19wdnQpKTsNCiAJaWYgKCFtY2kpIHsNCi0JCXByX2luZm8oIkNh bid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgRURBQyBkYXRhXG4iKTsNCisJCXByX2VycigiQ2FuJ3Qg YWxsb2NhdGUgbWVtb3J5IGZvciBFREFDIGRhdGFcbiIpOw0KIAkJcmV0dXJuIC1FTk9NRU07DQog CX0NCiANCkBAIC01MTIsMjYgKzYxMCwxNCBAQCBpbnQgZ2hlc19lZGFjX3JlZ2lzdGVyKHN0cnVj dCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCQlwcl9pbmZvKCJTbywgdGhlIGVu ZCByZXN1bHQgb2YgdXNpbmcgdGhpcyBkcml2ZXIgdmFyaWVzIGZyb20gdmVuZG9yIHRvIHZlbmRv ci5cbiIpOw0KIAkJcHJfaW5mbygiSWYgeW91IGZpbmQgaW5jb3JyZWN0IHJlcG9ydHMsIHBsZWFz ZSBjb250YWN0IHlvdXIgaGFyZHdhcmUgdmVuZG9yXG4iKTsNCiAJCXByX2luZm8oInRvIGNvcnJl Y3QgaXRzIEJJT1MuXG4iKTsNCi0JCXByX2luZm8oIlRoaXMgc3lzdGVtIGhhcyAlZCBESU1NIHNv Y2tldHMuXG4iLCBudW1fZGltbSk7DQorCQlwcl9pbmZvKCJUaGlzIHN5c3RlbSBoYXMgJWQgRElN TSBzb2NrZXRzLlxuIiwgbWVtX2luZm8ubnVtX2RpbW0pOw0KIAl9DQogDQotCWlmICghZmFrZSkg ew0KLQkJZGltbV9maWxsLmNvdW50ID0gMDsNCi0JCWRpbW1fZmlsbC5tY2kgPSBtY2k7DQotCQlk bWlfd2FsayhnaGVzX2VkYWNfZG1pZGVjb2RlLCAmZGltbV9maWxsKTsNCi0JfSBlbHNlIHsNCi0J CXN0cnVjdCBkaW1tX2luZm8gKmRpbW0gPSBlZGFjX2dldF9kaW1tKG1jaSwgMCwgMCwgMCk7DQot DQotCQlkaW1tLT5ucl9wYWdlcyA9IDE7DQotCQlkaW1tLT5ncmFpbiA9IDEyODsNCi0JCWRpbW0t Pm10eXBlID0gTUVNX1VOS05PV047DQotCQlkaW1tLT5kdHlwZSA9IERFVl9VTktOT1dOOw0KLQkJ ZGltbS0+ZWRhY19tb2RlID0gRURBQ19TRUNERUQ7DQotCX0NCisJbWVtX2luZm9fcHJlcGFyZV9t Y2kobWNpKTsNCiANCiAJcmMgPSBlZGFjX21jX2FkZF9tYyhtY2kpOw0KIAlpZiAocmMgPCAwKSB7 DQotCQlwcl9pbmZvKCJDYW4ndCByZWdpc3RlciBhdCBFREFDIGNvcmVcbiIpOw0KKwkJcHJfZXJy KCJDYW4ndCByZWdpc3RlciBhdCBFREFDIGNvcmVcbiIpOw0KIAkJZWRhY19tY19mcmVlKG1jaSk7 DQogCQlyZXR1cm4gLUVOT0RFVjsNCiAJfQ0KQEAgLTU0OCw0ICs2MzQsNiBAQCB2b2lkIGdoZXNf ZWRhY191bnJlZ2lzdGVyKHN0cnVjdCBnaGVzICpnaGVzKQ0KIAltY2kgPSBnaGVzX3B2dC0+bWNp Ow0KIAllZGFjX21jX2RlbF9tYyhtY2ktPnBkZXYpOw0KIAllZGFjX21jX2ZyZWUobWNpKTsNCisN CisJa2ZyZWUobWVtX2luZm8uZGltbXMpOw0KIH0NCi0tIA0KMi4yMC4xDQoNCg==