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 85974C43613 for ; Mon, 24 Jun 2019 15:10:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 451DB20645 for ; Mon, 24 Jun 2019 15:10:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="R8z01dTc"; dkim=pass (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="LilxW4Gy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731072AbfFXPKT (ORCPT ); Mon, 24 Jun 2019 11:10:19 -0400 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:58448 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730576AbfFXPJh (ORCPT ); Mon, 24 Jun 2019 11:09:37 -0400 Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5OF053h018453; Mon, 24 Jun 2019 08:09:09 -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=rgaYqMyrRi1Gs2+/9pUhhW8xLgkCeLohE8qn0jQ15v8=; b=R8z01dTcw8vpu21q41TNgY9WrgFOyaH1W8vwPMXbEzXRDYH+SjsN/HzgJTToxTYJXnDl IjGBRemOdYK1E246bvElZFaYfqrLcBpTSWPMr2YchqF32PaF2IJ5tU3d+nX8iPzeR+Oh rptkfVJb12Mo0uo+ZvKBkgHoHNDzZULTSkW5AnF2t0tcISI8iIWhzQL/r0h1fBDp0tkb GcffWh4r0O9TkdNH0RBXFTyGH6TLFvcZxjw5ptDXtlD7Wz8RD1vsFCzHaUeWCdx5WVXR r/B0CiEfEfz6PZqtbOHXWRi0Zq/JlEkTq4e9bv8PsD3p6Rn3O6nXSJFE45f0cRds9mM6 GQ== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 2tarxr9t9n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 24 Jun 2019 08:09:08 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 24 Jun 2019 08:09:07 -0700 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (104.47.42.54) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Mon, 24 Jun 2019 08:09:07 -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=rgaYqMyrRi1Gs2+/9pUhhW8xLgkCeLohE8qn0jQ15v8=; b=LilxW4Gy0L5SYbIY15dWgdL0G20e9w4JU6hX3vPpXZAqaSjx7sDlMUzXAcIORjvhEQYDSJtlSwgIkwjJ6gCbmq3GAo9pXVA5GfswxhPD963svBmMGm8OxCJXprBZZcISRLlmskmas6oUCXsvU31B5txEWoLYRPAsh4gnZpz12OA= 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:06 +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:06 +0000 From: Robert Richter To: Borislav Petkov , James Morse , "Mauro Carvalho Chehab" , Tony Luck , "Jason Baron" , Qiuxu Zhuo , Tero Kristo CC: "linux-edac@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Robert Richter Subject: [PATCH v2 06/24] EDAC: Kill EDAC_DIMM_PTR() macro Thread-Topic: [PATCH v2 06/24] EDAC: Kill EDAC_DIMM_PTR() macro Thread-Index: AQHVKp7EGlrwSsGG3ESvgRc+nDnUTA== Date: Mon, 24 Jun 2019 15:09:06 +0000 Message-ID: <20190624150758.6695-7-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: a5fa948e-6fa7-47ef-4a56-08d6f8b5e6ba 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:142; 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)(30864003)(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: TCXlNzxRDtYxEw85nWiqYXr86f9qHLoRmfrsHtnoO512ZxX97n4ttwBbwGttyshm60ed90LTpcX53EFJZ6hfrDzg30gG8xAmuTmeRAeQeXz0yAQdibMMgwXya+v1U6Mmjjj4tcxBSR7HudJNYgoGLpYVVjTG1XDBD2z+uueHMQBcbMBRuESHgw3RejTFFOuROBXaRGl3P+YsfqBT4vnavyWk1aSB1zGmS0ZAsWHmmsNnHitjyP6tT04Gt4EUUMKisJWpzAPq1O2YR6wP9A7Qg+5qjDiOTzFmQ4yvIrfcLP/5/XQCUPZVFkg6b4oQt1dLZAqhsCNNv4LdqvL05Sf8rQvLQSPF7+1TX+A0iEhjWW9ptr7EYiiISUoMPaKbVw7T9WCzQT8B5xAneIYZ+qFV3kc+NyZIuaKPWXPj7VKnrQU= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: a5fa948e-6fa7-47ef-4a56-08d6f8b5e6ba X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2019 15:09:06.6129 (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-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org R2V0IHJpZCBvZiB0aGlzIG1hY3JvIGFuZCBpbnN0ZWFkIHVzZSB0aGUgbmV3IGZ1bmN0aW9uDQpl ZGFjX2dldF9kaW1tKCkuIEFsc28gaW50cm9kdWNlIHRoZSBlZGFjX2dldF9kaW1tX2J5X2luZGV4 KCkgZnVuY3Rpb24NCmZvciBsYXRlciB1c2UuDQoNClNlbWFudGljIHBhdGNoIHVzZWQ6DQoNCkBA IGV4cHJlc3Npb24gbWNpLCBhLCBiLGM7IEBADQoNCi1FREFDX0RJTU1fUFRSKG1jaS0+bGF5ZXJz LCBtY2ktPmRpbW1zLCBtY2ktPm5fbGF5ZXJzLCBhLCBiLCBjKQ0KK2VkYWNfZ2V0X2RpbW0obWNp LCBhLCBiLCBjKQ0KDQpTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgUmljaHRlciA8cnJpY2h0ZXJAbWFy dmVsbC5jb20+DQotLS0NCiBkcml2ZXJzL2VkYWMvZWRhY19tYy5jICAgICAgfCAgMSArDQogZHJp dmVycy9lZGFjL2doZXNfZWRhYy5jICAgIHwgIDggKystLQ0KIGRyaXZlcnMvZWRhYy9pMTBubV9i YXNlLmMgICB8ICAzICstDQogZHJpdmVycy9lZGFjL2kzMjAwX2VkYWMuYyAgIHwgIDMgKy0NCiBk cml2ZXJzL2VkYWMvaTUwMDBfZWRhYy5jICAgfCAgNSArLS0NCiBkcml2ZXJzL2VkYWMvaTUxMDBf ZWRhYy5jICAgfCAgMyArLQ0KIGRyaXZlcnMvZWRhYy9pNTQwMF9lZGFjLmMgICB8ICA0ICstDQog ZHJpdmVycy9lZGFjL2k3MzAwX2VkYWMuYyAgIHwgIDMgKy0NCiBkcml2ZXJzL2VkYWMvaTdjb3Jl X2VkYWMuYyAgfCAgMyArLQ0KIGRyaXZlcnMvZWRhYy9pZTMxMjAwX2VkYWMuYyB8ICA3ICstLS0N CiBkcml2ZXJzL2VkYWMvcG5kMl9lZGFjLmMgICAgfCAgNCArLQ0KIGRyaXZlcnMvZWRhYy9zYl9l ZGFjLmMgICAgICB8ICAyICstDQogZHJpdmVycy9lZGFjL3NreF9iYXNlLmMgICAgIHwgIDMgKy0N CiBkcml2ZXJzL2VkYWMvdGlfZWRhYy5jICAgICAgfCAgMiArLQ0KIGluY2x1ZGUvbGludXgvZWRh Yy5oICAgICAgICB8IDg0ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCiAx NSBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkNCg0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9lZGFjX21jLmMgYi9kcml2ZXJzL2VkYWMvZWRhY19tYy5j DQppbmRleCA0YmJjOGFlZGRmMzAuLmM5NTllOGIxNjQzYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv ZWRhYy9lZGFjX21jLmMNCisrKyBiL2RyaXZlcnMvZWRhYy9lZGFjX21jLmMNCkBAIC00MzksNiAr NDM5LDcgQEAgc3RydWN0IG1lbV9jdGxfaW5mbyAqZWRhY19tY19hbGxvYyh1bnNpZ25lZCBtY19u dW0sDQogCQkJZ290byBlcnJvcjsNCiAJCW1jaS0+ZGltbXNbb2ZmXSA9IGRpbW07DQogCQlkaW1t LT5tY2kgPSBtY2k7DQorCQlkaW1tLT5pZHggPSBvZmY7DQogDQogCQkvKg0KIAkJICogQ29weSBE SU1NIGxvY2F0aW9uIGFuZCBpbml0aWFsaXplIGl0Lg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRh Yy9naGVzX2VkYWMuYyBiL2RyaXZlcnMvZWRhYy9naGVzX2VkYWMuYw0KaW5kZXggYmQzYmUyNWQw ZDNmLi44MDUwZjk1NzdmZTYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2VkYWMvZ2hlc19lZGFjLmMN CisrKyBiL2RyaXZlcnMvZWRhYy9naGVzX2VkYWMuYw0KQEAgLTk3LDkgKzk3LDggQEAgc3RhdGlj IHZvaWQgZ2hlc19lZGFjX2RtaWRlY29kZShjb25zdCBzdHJ1Y3QgZG1pX2hlYWRlciAqZGgsIHZv aWQgKmFyZykNCiANCiAJaWYgKGRoLT50eXBlID09IERNSV9FTlRSWV9NRU1fREVWSUNFKSB7DQog CQlzdHJ1Y3QgbWVtZGV2X2RtaV9lbnRyeSAqZW50cnkgPSAoc3RydWN0IG1lbWRldl9kbWlfZW50 cnkgKilkaDsNCi0JCXN0cnVjdCBkaW1tX2luZm8gKmRpbW0gPSBFREFDX0RJTU1fUFRSKG1jaS0+ bGF5ZXJzLCBtY2ktPmRpbW1zLA0KLQkJCQkJCSAgICAgICBtY2ktPm5fbGF5ZXJzLA0KLQkJCQkJ CSAgICAgICBkaW1tX2ZpbGwtPmNvdW50LCAwLCAwKTsNCisJCXN0cnVjdCBkaW1tX2luZm8gKmRp bW0gPSBlZGFjX2dldF9kaW1tKG1jaSwgZGltbV9maWxsLT5jb3VudCwNCisJCQkJCQkgICAgICAg MCwgMCk7DQogCQl1MTYgcmRyX21hc2sgPSBCSVQoNykgfCBCSVQoMTMpOw0KIA0KIAkJaWYgKGVu dHJ5LT5zaXplID09IDB4ZmZmZikgew0KQEAgLTUyMSw4ICs1MjAsNyBAQCBpbnQgZ2hlc19lZGFj X3JlZ2lzdGVyKHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCQlkaW1t X2ZpbGwubWNpID0gbWNpOw0KIAkJZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRlY29kZSwgJmRpbW1f ZmlsbCk7DQogCX0gZWxzZSB7DQotCQlzdHJ1Y3QgZGltbV9pbmZvICpkaW1tID0gRURBQ19ESU1N X1BUUihtY2ktPmxheWVycywgbWNpLT5kaW1tcywNCi0JCQkJCQkgICAgICAgbWNpLT5uX2xheWVy cywgMCwgMCwgMCk7DQorCQlzdHJ1Y3QgZGltbV9pbmZvICpkaW1tID0gZWRhY19nZXRfZGltbSht Y2ksIDAsIDAsIDApOw0KIA0KIAkJZGltbS0+bnJfcGFnZXMgPSAxOw0KIAkJZGltbS0+Z3JhaW4g PSAxMjg7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL2kxMG5tX2Jhc2UuYyBiL2RyaXZlcnMv ZWRhYy9pMTBubV9iYXNlLmMNCmluZGV4IDZmMDZhZWM0ODc3Yy4uMWZjOWVhODQ5YWRhIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9lZGFjL2kxMG5tX2Jhc2UuYw0KKysrIGIvZHJpdmVycy9lZGFjL2kx MG5tX2Jhc2UuYw0KQEAgLTE1Miw4ICsxNTIsNyBAQCBzdGF0aWMgaW50IGkxMG5tX2dldF9kaW1t X2NvbmZpZyhzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kpDQogDQogCQluZGltbXMgPSAwOw0KIAkJ Zm9yIChqID0gMDsgaiA8IEkxME5NX05VTV9ESU1NUzsgaisrKSB7DQotCQkJZGltbSA9IEVEQUNf RElNTV9QVFIobWNpLT5sYXllcnMsIG1jaS0+ZGltbXMsDQotCQkJCQkgICAgIG1jaS0+bl9sYXll cnMsIGksIGosIDApOw0KKwkJCWRpbW0gPSBlZGFjX2dldF9kaW1tKG1jaSwgaSwgaiwgMCk7DQog CQkJbXRyID0gSTEwTk1fR0VUX0RJTU1NVFIoaW1jLCBpLCBqKTsNCiAJCQltY2RkcnRjZmcgPSBJ MTBOTV9HRVRfTUNERFJUQ0ZHKGltYywgaSwgaik7DQogCQkJZWRhY19kYmcoMSwgImRpbW1tdHIg MHgleCBtY2RkcnRjZmcgMHgleCAobWMlZCBjaCVkIGRpbW0lZClcbiIsDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9lZGFjL2kzMjAwX2VkYWMuYyBiL2RyaXZlcnMvZWRhYy9pMzIwMF9lZGFjLmMNCmlu ZGV4IDI5OWI0NDE2NDdjZC4uNDMyYjM3NWE0MDc1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9lZGFj L2kzMjAwX2VkYWMuYw0KKysrIGIvZHJpdmVycy9lZGFjL2kzMjAwX2VkYWMuYw0KQEAgLTM5Miw4 ICszOTIsNyBAQCBzdGF0aWMgaW50IGkzMjAwX3Byb2JlMShzdHJ1Y3QgcGNpX2RldiAqcGRldiwg aW50IGRldl9pZHgpDQogCQl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzOw0KIA0KIAkJZm9yIChqID0g MDsgaiA8IG5yX2NoYW5uZWxzOyBqKyspIHsNCi0JCQlzdHJ1Y3QgZGltbV9pbmZvICpkaW1tID0g RURBQ19ESU1NX1BUUihtY2ktPmxheWVycywgbWNpLT5kaW1tcywNCi0JCQkJCQkJICAgICAgIG1j aS0+bl9sYXllcnMsIGksIGosIDApOw0KKwkJCXN0cnVjdCBkaW1tX2luZm8gKmRpbW0gPSBlZGFj X2dldF9kaW1tKG1jaSwgaSwgaiwgMCk7DQogDQogCQkJbnJfcGFnZXMgPSBkcmJfdG9fbnJfcGFn ZXMoZHJicywgc3RhY2tlZCwgaiwgaSk7DQogCQkJaWYgKG5yX3BhZ2VzID09IDApDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9lZGFjL2k1MDAwX2VkYWMuYyBiL2RyaXZlcnMvZWRhYy9pNTAwMF9lZGFj LmMNCmluZGV4IDA3OGE3MzUxYmYwNS4uMWE2ZjY5Yzg1OWFiIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9lZGFjL2k1MDAwX2VkYWMuYw0KKysrIGIvZHJpdmVycy9lZGFjL2k1MDAwX2VkYWMuYw0KQEAg LTEyNzUsOSArMTI3NSw4IEBAIHN0YXRpYyBpbnQgaTUwMDBfaW5pdF9jc3Jvd3Moc3RydWN0IG1l bV9jdGxfaW5mbyAqbWNpKQ0KIAkJCWlmICghTVRSX0RJTU1TX1BSRVNFTlQobXRyKSkNCiAJCQkJ Y29udGludWU7DQogDQotCQkJZGltbSA9IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1jaS0+ ZGltbXMsIG1jaS0+bl9sYXllcnMsDQotCQkJCSAgICAgICBjaGFubmVsIC8gTUFYX0JSQU5DSEVT LA0KLQkJCQkgICAgICAgY2hhbm5lbCAlIE1BWF9CUkFOQ0hFUywgc2xvdCk7DQorCQkJZGltbSA9 IGVkYWNfZ2V0X2RpbW0obWNpLCBjaGFubmVsIC8gTUFYX0JSQU5DSEVTLA0KKwkJCQkJICAgICBj aGFubmVsICUgTUFYX0JSQU5DSEVTLCBzbG90KTsNCiANCiAJCQljc3Jvd19tZWdzID0gcHZ0LT5k aW1tX2luZm9bc2xvdF1bY2hhbm5lbF0ubWVnYWJ5dGVzOw0KIAkJCWRpbW0tPmdyYWluID0gODsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvaTUxMDBfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2k1 MTAwX2VkYWMuYw0KaW5kZXggYjUwNmVlZjZiMTQ2Li4zOWJhN2YyNDE0YWUgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2VkYWMvaTUxMDBfZWRhYy5jDQorKysgYi9kcml2ZXJzL2VkYWMvaTUxMDBfZWRh Yy5jDQpAQCAtODU4LDggKzg1OCw3IEBAIHN0YXRpYyB2b2lkIGk1MTAwX2luaXRfY3Nyb3dzKHN0 cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkNCiAJCWlmICghbnBhZ2VzKQ0KIAkJCWNvbnRpbnVlOw0K IA0KLQkJZGltbSA9IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1jaS0+ZGltbXMsIG1jaS0+ bl9sYXllcnMsDQotCQkJICAgICAgIGNoYW4sIHJhbmssIDApOw0KKwkJZGltbSA9IGVkYWNfZ2V0 X2RpbW0obWNpLCBjaGFuLCByYW5rLCAwKTsNCiANCiAJCWRpbW0tPm5yX3BhZ2VzID0gbnBhZ2Vz Ow0KIAkJZGltbS0+Z3JhaW4gPSAzMjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvaTU0MDBf ZWRhYy5jIGIvZHJpdmVycy9lZGFjL2k1NDAwX2VkYWMuYw0KaW5kZXggNmY4YmNkYjkyNTZhLi5h NTBhODcwNzMzN2IgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2VkYWMvaTU0MDBfZWRhYy5jDQorKysg Yi9kcml2ZXJzL2VkYWMvaTU0MDBfZWRhYy5jDQpAQCAtMTE5Niw4ICsxMTk2LDggQEAgc3RhdGlj IGludCBpNTQwMF9pbml0X2RpbW1zKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkNCiAJCQlpZiAo IU1UUl9ESU1NU19QUkVTRU5UKG10cikpDQogCQkJCWNvbnRpbnVlOw0KIA0KLQkJCWRpbW0gPSBF REFDX0RJTU1fUFRSKG1jaS0+bGF5ZXJzLCBtY2ktPmRpbW1zLCBtY2ktPm5fbGF5ZXJzLA0KLQkJ CQkgICAgICAgY2hhbm5lbCAvIDIsIGNoYW5uZWwgJSAyLCBzbG90KTsNCisJCQlkaW1tID0gZWRh Y19nZXRfZGltbShtY2ksIGNoYW5uZWwgLyAyLCBjaGFubmVsICUgMiwNCisJCQkJCSAgICAgc2xv dCk7DQogDQogCQkJc2l6ZV9tYiA9ICBwdnQtPmRpbW1faW5mb1tzbG90XVtjaGFubmVsXS5tZWdh Ynl0ZXM7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL2k3MzAwX2VkYWMuYyBiL2RyaXZl cnMvZWRhYy9pNzMwMF9lZGFjLmMNCmluZGV4IDdiZjkxMGQ1NGQxMS4uNzQ3ZWUzNmE4MDhjIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9lZGFjL2k3MzAwX2VkYWMuYw0KKysrIGIvZHJpdmVycy9lZGFj L2k3MzAwX2VkYWMuYw0KQEAgLTc5NCw4ICs3OTQsNyBAQCBzdGF0aWMgaW50IGk3MzAwX2luaXRf Y3Nyb3dzKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkNCiAJCQlmb3IgKGNoID0gMDsgY2ggPCBt YXhfY2hhbm5lbDsgY2grKykgew0KIAkJCQlpbnQgY2hhbm5lbCA9IHRvX2NoYW5uZWwoY2gsIGJy YW5jaCk7DQogDQotCQkJCWRpbW0gPSBFREFDX0RJTU1fUFRSKG1jaS0+bGF5ZXJzLCBtY2ktPmRp bW1zLA0KLQkJCQkJICAgICAgIG1jaS0+bl9sYXllcnMsIGJyYW5jaCwgY2gsIHNsb3QpOw0KKwkJ CQlkaW1tID0gZWRhY19nZXRfZGltbShtY2ksIGJyYW5jaCwgY2gsIHNsb3QpOw0KIA0KIAkJCQlk aW5mbyA9ICZwdnQtPmRpbW1faW5mb1tzbG90XVtjaGFubmVsXTsNCiANCmRpZmYgLS1naXQgYS9k cml2ZXJzL2VkYWMvaTdjb3JlX2VkYWMuYyBiL2RyaXZlcnMvZWRhYy9pN2NvcmVfZWRhYy5jDQpp bmRleCBhNzFjY2E2ZWViMzMuLmIzMTM1YjIwOGY5YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZWRh Yy9pN2NvcmVfZWRhYy5jDQorKysgYi9kcml2ZXJzL2VkYWMvaTdjb3JlX2VkYWMuYw0KQEAgLTU4 NSw4ICs1ODUsNyBAQCBzdGF0aWMgaW50IGdldF9kaW1tX2NvbmZpZyhzdHJ1Y3QgbWVtX2N0bF9p bmZvICptY2kpDQogCQkJaWYgKCFESU1NX1BSRVNFTlQoZGltbV9kb2Rbal0pKQ0KIAkJCQljb250 aW51ZTsNCiANCi0JCQlkaW1tID0gRURBQ19ESU1NX1BUUihtY2ktPmxheWVycywgbWNpLT5kaW1t cywgbWNpLT5uX2xheWVycywNCi0JCQkJICAgICAgIGksIGosIDApOw0KKwkJCWRpbW0gPSBlZGFj X2dldF9kaW1tKG1jaSwgaSwgaiwgMCk7DQogCQkJYmFua3MgPSBudW1iYW5rKE1DX0RPRF9OVU1C QU5LKGRpbW1fZG9kW2pdKSk7DQogCQkJcmFua3MgPSBudW1yYW5rKE1DX0RPRF9OVU1SQU5LKGRp bW1fZG9kW2pdKSk7DQogCQkJcm93cyA9IG51bXJvdyhNQ19ET0RfTlVNUk9XKGRpbW1fZG9kW2pd KSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL2llMzEyMDBfZWRhYy5jIGIvZHJpdmVycy9l ZGFjL2llMzEyMDBfZWRhYy5jDQppbmRleCBkMjYzMDBmOWNiMDcuLjRmNjUwNzNmMjMwYiAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvZWRhYy9pZTMxMjAwX2VkYWMuYw0KKysrIGIvZHJpdmVycy9lZGFj L2llMzEyMDBfZWRhYy5jDQpAQCAtNDkwLDkgKzQ5MCw3IEBAIHN0YXRpYyBpbnQgaWUzMTIwMF9w cm9iZTEoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBkZXZfaWR4KQ0KIA0KIAkJCWlmIChkaW1t X2luZm9bal1baV0uZHVhbF9yYW5rKSB7DQogCQkJCW5yX3BhZ2VzID0gbnJfcGFnZXMgLyAyOw0K LQkJCQlkaW1tID0gRURBQ19ESU1NX1BUUihtY2ktPmxheWVycywgbWNpLT5kaW1tcywNCi0JCQkJ CQkgICAgIG1jaS0+bl9sYXllcnMsIChpICogMikgKyAxLA0KLQkJCQkJCSAgICAgaiwgMCk7DQor CQkJCWRpbW0gPSBlZGFjX2dldF9kaW1tKG1jaSwgKGkgKiAyKSArIDEsIGosIDApOw0KIAkJCQlk aW1tLT5ucl9wYWdlcyA9IG5yX3BhZ2VzOw0KIAkJCQllZGFjX2RiZygwLCAic2V0IG5yIHBhZ2Vz OiAweCVseFxuIiwgbnJfcGFnZXMpOw0KIAkJCQlkaW1tLT5ncmFpbiA9IDg7IC8qIGp1c3QgYSBn dWVzcyAqLw0KQEAgLTUwMyw4ICs1MDEsNyBAQCBzdGF0aWMgaW50IGllMzEyMDBfcHJvYmUxKHN0 cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgZGV2X2lkeCkNCiAJCQkJZGltbS0+ZHR5cGUgPSBERVZf VU5LTk9XTjsNCiAJCQkJZGltbS0+ZWRhY19tb2RlID0gRURBQ19VTktOT1dOOw0KIAkJCX0NCi0J CQlkaW1tID0gRURBQ19ESU1NX1BUUihtY2ktPmxheWVycywgbWNpLT5kaW1tcywNCi0JCQkJCSAg ICAgbWNpLT5uX2xheWVycywgaSAqIDIsIGosIDApOw0KKwkJCWRpbW0gPSBlZGFjX2dldF9kaW1t KG1jaSwgaSAqIDIsIGosIDApOw0KIAkJCWRpbW0tPm5yX3BhZ2VzID0gbnJfcGFnZXM7DQogCQkJ ZWRhY19kYmcoMCwgInNldCBuciBwYWdlczogMHglbHhcbiIsIG5yX3BhZ2VzKTsNCiAJCQlkaW1t LT5ncmFpbiA9IDg7IC8qIHNhbWUgZ3Vlc3MgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMv cG5kMl9lZGFjLmMgYi9kcml2ZXJzL2VkYWMvcG5kMl9lZGFjLmMNCmluZGV4IDkwM2E0ZjFmYWRj Yy4uMmY3ZGNhZmQ4NGIxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9lZGFjL3BuZDJfZWRhYy5jDQor KysgYi9kcml2ZXJzL2VkYWMvcG5kMl9lZGFjLmMNCkBAIC0xMjM0LDcgKzEyMzQsNyBAQCBzdGF0 aWMgdm9pZCBhcGxfZ2V0X2RpbW1fY29uZmlnKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkNCiAJ CWlmICghKGNoYW5fbWFzayAmIEJJVChpKSkpDQogCQkJY29udGludWU7DQogDQotCQlkaW1tID0g RURBQ19ESU1NX1BUUihtY2ktPmxheWVycywgbWNpLT5kaW1tcywgbWNpLT5uX2xheWVycywgaSwg MCwgMCk7DQorCQlkaW1tID0gZWRhY19nZXRfZGltbShtY2ksIGksIDAsIDApOw0KIAkJaWYgKCFk aW1tKSB7DQogCQkJZWRhY19kYmcoMCwgIk5vIGFsbG9jYXRlZCBESU1NIGZvciBjaGFubmVsICVk XG4iLCBpKTsNCiAJCQljb250aW51ZTsNCkBAIC0xMzE0LDcgKzEzMTQsNyBAQCBzdGF0aWMgdm9p ZCBkbnZfZ2V0X2RpbW1fY29uZmlnKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkNCiAJCQlpZiAo IXJhbmtzX29mX2RpbW1bal0pDQogCQkJCWNvbnRpbnVlOw0KIA0KLQkJCWRpbW0gPSBFREFDX0RJ TU1fUFRSKG1jaS0+bGF5ZXJzLCBtY2ktPmRpbW1zLCBtY2ktPm5fbGF5ZXJzLCBpLCBqLCAwKTsN CisJCQlkaW1tID0gZWRhY19nZXRfZGltbShtY2ksIGksIGosIDApOw0KIAkJCWlmICghZGltbSkg ew0KIAkJCQllZGFjX2RiZygwLCAiTm8gYWxsb2NhdGVkIERJTU0gZm9yIGNoYW5uZWwgJWQgRElN TSAlZFxuIiwgaSwgaik7DQogCQkJCWNvbnRpbnVlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRh Yy9zYl9lZGFjLmMgYi9kcml2ZXJzL2VkYWMvc2JfZWRhYy5jDQppbmRleCAzNzc0NmIwNDVlMTgu LjNlNTYzMTU2MjI2NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZWRhYy9zYl9lZGFjLmMNCisrKyBi L2RyaXZlcnMvZWRhYy9zYl9lZGFjLmMNCkBAIC0xNjIwLDcgKzE2MjAsNyBAQCBzdGF0aWMgaW50 IF9fcG9wdWxhdGVfZGltbXMoc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpLA0KIAkJfQ0KIA0KIAkJ Zm9yIChqID0gMDsgaiA8IG1heF9kaW1tc19wZXJfY2hhbm5lbDsgaisrKSB7DQotCQkJZGltbSA9 IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1jaS0+ZGltbXMsIG1jaS0+bl9sYXllcnMsIGks IGosIDApOw0KKwkJCWRpbW0gPSBlZGFjX2dldF9kaW1tKG1jaSwgaSwgaiwgMCk7DQogCQkJaWYg KHB2dC0+aW5mby50eXBlID09IEtOSUdIVFNfTEFORElORykgew0KIAkJCQlwY2lfcmVhZF9jb25m aWdfZHdvcmQocHZ0LT5rbmwucGNpX2NoYW5uZWxbaV0sDQogCQkJCQlrbmxfbXRyX3JlZywgJm10 cik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL3NreF9iYXNlLmMgYi9kcml2ZXJzL2VkYWMv c2t4X2Jhc2UuYw0KaW5kZXggYTVjOGZhM2EyNDlhLi41YWYxOGY2MjA2ZTkgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2VkYWMvc2t4X2Jhc2UuYw0KKysrIGIvZHJpdmVycy9lZGFjL3NreF9iYXNlLmMN CkBAIC0xNzcsOCArMTc3LDcgQEAgc3RhdGljIGludCBza3hfZ2V0X2RpbW1fY29uZmlnKHN0cnVj dCBtZW1fY3RsX2luZm8gKm1jaSkNCiAJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChpbWMtPmNoYW5b aV0uY2RldiwgMHg4QywgJmFtYXApOw0KIAkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGltYy0+Y2hh bltpXS5jZGV2LCAweDQwMCwgJm1jZGRydGNmZyk7DQogCQlmb3IgKGogPSAwOyBqIDwgU0tYX05V TV9ESU1NUzsgaisrKSB7DQotCQkJZGltbSA9IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1j aS0+ZGltbXMsDQotCQkJCQkgICAgIG1jaS0+bl9sYXllcnMsIGksIGosIDApOw0KKwkJCWRpbW0g PSBlZGFjX2dldF9kaW1tKG1jaSwgaSwgaiwgMCk7DQogCQkJcGNpX3JlYWRfY29uZmlnX2R3b3Jk KGltYy0+Y2hhbltpXS5jZGV2LA0KIAkJCQkJICAgICAgMHg4MCArIDQgKiBqLCAmbXRyKTsNCiAJ CQlpZiAoSVNfRElNTV9QUkVTRU5UKG10cikpIHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMv dGlfZWRhYy5jIGIvZHJpdmVycy9lZGFjL3RpX2VkYWMuYw0KaW5kZXggNmFjMjZkMWI5MjlmLi44 YmUzZTg5YTUxMGUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2VkYWMvdGlfZWRhYy5jDQorKysgYi9k cml2ZXJzL2VkYWMvdGlfZWRhYy5jDQpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyB2b2lkIHRp X2VkYWNfc2V0dXBfZGltbShzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2ksIHUzMiB0eXBlKQ0KIAl1 MzIgdmFsOw0KIAl1MzIgbWVtc2l6ZTsNCiANCi0JZGltbSA9IEVEQUNfRElNTV9QVFIobWNpLT5s YXllcnMsIG1jaS0+ZGltbXMsIG1jaS0+bl9sYXllcnMsIDAsIDAsIDApOw0KKwlkaW1tID0gZWRh Y19nZXRfZGltbShtY2ksIDAsIDAsIDApOw0KIA0KIAl2YWwgPSB0aV9lZGFjX3JlYWRsKGVkYWMs IEVNSUZfU0RSQU1fQ09ORklHKTsNCiANCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2VkYWMu aCBiL2luY2x1ZGUvbGludXgvZWRhYy5oDQppbmRleCAzNDJkYWJkYTljN2UuLjEzNjdhM2ZjNTQ0 ZiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvZWRhYy5oDQorKysgYi9pbmNsdWRlL2xpbnV4 L2VkYWMuaA0KQEAgLTQwMywzNyArNDAzLDYgQEAgc3RydWN0IGVkYWNfbWNfbGF5ZXIgew0KIAlf X2k7CQkJCQkJCQlcDQogfSkNCiANCi0vKioNCi0gKiBFREFDX0RJTU1fUFRSIC0gTWFjcm8gcmVz cG9uc2libGUgdG8gZ2V0IGEgcG9pbnRlciBpbnNpZGUgYSBwb2ludGVyIGFycmF5DQotICoJCSAg IGZvciB0aGUgZWxlbWVudCBnaXZlbiBieSBbbGF5ZXIwLGxheWVyMSxsYXllcjJdIHBvc2l0aW9u DQotICoNCi0gKiBAbGF5ZXJzOglhIHN0cnVjdCBlZGFjX21jX2xheWVyIGFycmF5LCBkZXNjcmli aW5nIGhvdyBtYW55IGVsZW1lbnRzDQotICoJCXdlcmUgYWxsb2NhdGVkIGZvciBlYWNoIGxheWVy DQotICogQHZhcjoJbmFtZSBvZiB0aGUgdmFyIHdoZXJlIHdlIHdhbnQgdG8gZ2V0IHRoZSBwb2lu dGVyDQotICoJCShsaWtlIG1jaS0+ZGltbXMpDQotICogQG5sYXllcnM6CU51bWJlciBvZiBsYXll cnMgYXQgdGhlIEBsYXllcnMgYXJyYXkNCi0gKiBAbGF5ZXIwOglsYXllcjAgcG9zaXRpb24NCi0g KiBAbGF5ZXIxOglsYXllcjEgcG9zaXRpb24uIFVudXNlZCBpZiBuX2xheWVycyA8IDINCi0gKiBA bGF5ZXIyOglsYXllcjIgcG9zaXRpb24uIFVudXNlZCBpZiBuX2xheWVycyA8IDMNCi0gKg0KLSAq IEZvciAxIGxheWVyLCB0aGlzIG1hY3JvIHJldHVybnMgInZhcltsYXllcjBdIjsNCi0gKg0KLSAq IEZvciAyIGxheWVycywgdGhpcyBtYWNybyBpcyBzaW1pbGFyIHRvIGFsbG9jYXRlIGEgYmktZGlt ZW5zaW9uYWwgYXJyYXkNCi0gKiBhbmQgdG8gcmV0dXJuICJ2YXJbbGF5ZXIwXVtsYXllcjFdIjsN Ci0gKg0KLSAqIEZvciAzIGxheWVycywgdGhpcyBtYWNybyBpcyBzaW1pbGFyIHRvIGFsbG9jYXRl IGEgdHJpLWRpbWVuc2lvbmFsIGFycmF5DQotICogYW5kIHRvIHJldHVybiAidmFyW2xheWVyMF1b bGF5ZXIxXVtsYXllcjJdIjsNCi0gKi8NCi0jZGVmaW5lIEVEQUNfRElNTV9QVFIobGF5ZXJzLCB2 YXIsIG5sYXllcnMsIGxheWVyMCwgbGF5ZXIxLCBsYXllcjIpICh7CVwNCi0JdHlwZW9mKCp2YXIp IF9fcDsJCQkJCQlcDQotCWludCBfX19pID0gRURBQ19ESU1NX09GRihsYXllcnMsIG5sYXllcnMs IGxheWVyMCwgbGF5ZXIxLCBsYXllcjIpOwlcDQotCWlmIChfX19pIDwgMCkJCQkJCQkJXA0KLQkJ X19wID0gTlVMTDsJCQkJCQlcDQotCWVsc2UJCQkJCQkJCVwNCi0JCV9fcCA9ICh2YXIpW19fX2ld OwkJCQkJXA0KLQlfX3A7CQkJCQkJCQlcDQotfSkNCi0NCiBzdHJ1Y3QgZGltbV9pbmZvIHsNCiAJ c3RydWN0IGRldmljZSBkZXY7DQogDQpAQCAtNDQzLDYgKzQxMiw3IEBAIHN0cnVjdCBkaW1tX2lu Zm8gew0KIAl1bnNpZ25lZCBsb2NhdGlvbltFREFDX01BWF9MQVlFUlNdOw0KIA0KIAlzdHJ1Y3Qg bWVtX2N0bF9pbmZvICptY2k7CS8qIHRoZSBwYXJlbnQgKi8NCisJaW50IGlkeDsJCQkvKiBpbmRl eCB3aXRoaW4gdGhlIHBhcmVudCBkaW1tIGFycmF5ICovDQogDQogCXUzMiBncmFpbjsJCS8qIGdy YW51bGFyaXR5IG9mIHJlcG9ydGVkIGVycm9yIGluIGJ5dGVzICovDQogCWVudW0gZGV2X3R5cGUg ZHR5cGU7CS8qIG1lbW9yeSBkZXZpY2UgdHlwZSAqLw0KQEAgLTY2OSw0ICs2MzksNTYgQEAgc3Ry dWN0IG1lbV9jdGxfaW5mbyB7DQogCWJvb2wgZmFrZV9pbmplY3RfdWU7DQogCXUxNiBmYWtlX2lu amVjdF9jb3VudDsNCiB9Ow0KKw0KKy8qKg0KKyAqIGVkYWNfZ2V0X2RpbW1fYnlfaW5kZXggLSBH ZXQgRElNTSBpbmZvIGZyb20gYSBtZW1vcnkgY29udHJvbGxlcg0KKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICBnaXZlbiBieSBhbiBpbmRleA0KKyAqDQorICogQG1jaToJYSBzdHJ1Y3QgbWVt X2N0bF9pbmZvDQorICogQGluZGV4OglpbmRleCBpbiB0aGUgbWVtb3J5IGNvbnRyb2xsZXIncyBE SU1NIGFycmF5DQorICoNCisgKiBSZXR1cm5zIGEgc3RydWN0IGRpbW1faW5mbyouDQorICovDQor c3RhdGljIGlubGluZSBzdHJ1Y3QgZGltbV9pbmZvICoNCitlZGFjX2dldF9kaW1tX2J5X2luZGV4 KHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSwgaW50IGluZGV4KQ0KK3sNCisJaWYgKGluZGV4IDwg MCB8fCBpbmRleCA+PSBtY2ktPnRvdF9kaW1tcykNCisJCXJldHVybiBOVUxMOw0KKw0KKwlpZiAo V0FSTl9PTl9PTkNFKG1jaS0+ZGltbXNbaW5kZXhdLT5pZHggIT0gaW5kZXgpKQ0KKwkJcmV0dXJu IE5VTEw7DQorDQorCXJldHVybiBtY2ktPmRpbW1zW2luZGV4XTsNCit9DQorDQorLyoqDQorICog ZWRhY19nZXRfZGltbSAtIEdldCBESU1NIGluZm8gZnJvbSBhIG1lbW9yeSBjb250cm9sbGVyIGdp dmVuIGJ5DQorICogICAgICAgICAgICAgICAgIFtsYXllcjAsbGF5ZXIxLGxheWVyMl0gcG9zaXRp b24NCisgKg0KKyAqIEBtY2k6CWEgc3RydWN0IG1lbV9jdGxfaW5mbw0KKyAqIEBsYXllcjA6CWxh eWVyMCBwb3NpdGlvbg0KKyAqIEBsYXllcjE6CWxheWVyMSBwb3NpdGlvbi4gVW51c2VkIGlmIG5f bGF5ZXJzIDwgMg0KKyAqIEBsYXllcjI6CWxheWVyMiBwb3NpdGlvbi4gVW51c2VkIGlmIG5fbGF5 ZXJzIDwgMw0KKyAqDQorICogRm9yIDEgbGF5ZXIsIHRoaXMgbWFjcm8gcmV0dXJucyAiZGltbXNb bGF5ZXIwXSI7DQorICoNCisgKiBGb3IgMiBsYXllcnMsIHRoaXMgbWFjcm8gaXMgc2ltaWxhciB0 byBhbGxvY2F0ZSBhIGJpLWRpbWVuc2lvbmFsIGFycmF5DQorICogYW5kIHRvIHJldHVybiAiZGlt bXNbbGF5ZXIwXVtsYXllcjFdIjsNCisgKg0KKyAqIEZvciAzIGxheWVycywgdGhpcyBtYWNybyBp cyBzaW1pbGFyIHRvIGFsbG9jYXRlIGEgdHJpLWRpbWVuc2lvbmFsIGFycmF5DQorICogYW5kIHRv IHJldHVybiAiZGltbXNbbGF5ZXIwXVtsYXllcjFdW2xheWVyMl0iOw0KKyAqLw0KK3N0YXRpYyBp bmxpbmUgc3RydWN0IGRpbW1faW5mbyAqDQorZWRhY19nZXRfZGltbShzdHJ1Y3QgbWVtX2N0bF9p bmZvICptY2ksIGludCBsYXllcjAsIGludCBsYXllcjEsIGludCBsYXllcjIpDQorew0KKwlpbnQg aW5kZXggPSBsYXllcjA7DQorDQorCWlmIChpbmRleCA+PSAwICYmIG1jaS0+bl9sYXllcnMgPiAx KQ0KKwkJaW5kZXggPSBpbmRleCAqIG1jaS0+bGF5ZXJzWzFdLnNpemUgKyBsYXllcjE7DQorCWlm IChpbmRleCA+PSAwICYmIG1jaS0+bl9sYXllcnMgPiAyKQ0KKwkJaW5kZXggPSBpbmRleCAqIG1j aS0+bGF5ZXJzWzJdLnNpemUgKyBsYXllcjI7DQorDQorCXJldHVybiBlZGFjX2dldF9kaW1tX2J5 X2luZGV4KG1jaSwgaW5kZXgpOw0KK30NCisNCiAjZW5kaWYNCi0tIA0KMi4yMC4xDQoNCg==