Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp568198yba; Fri, 12 Apr 2019 09:06:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqx+br+tmBxZG6xmJHcYA1VlHcJFIt+qYbFfp1SiFWRUqyJYcGIs1HC0YEctu/KUCA0h0Hrl X-Received: by 2002:a63:6a44:: with SMTP id f65mr21094359pgc.354.1555085189541; Fri, 12 Apr 2019 09:06:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555085189; cv=none; d=google.com; s=arc-20160816; b=wQMyf3335sOQ+6ucqWulermBbiPIuqMd0ylXeCl7cnUiD2ETghhREqWeZaqKFz7Fhw WuHxBTodseAFBrIRFt3E0hAyfMJkf7MnxLz9DkC4gUQ2d4JrOB9/DZuBvPH3w8YS8yPh fmgzKMsfcIGP4N0DRmcxIYTmJpebgp+HreaaBWHz+bsX/wtV7xCGKojpPZ+qjn2MdaNy vp1nghUBQmAUsvGuYlAvU41KuVqora/1/CSV2xTljly+UbEPVUggW4cE+te5qxmCZ/yd jwE+TFlN7/Pk3XlEvZ82u8L1jgAPE83reBUwUD6rgjGmxue77k6mWEgkjXe6kyKv32O/ Z1Rw== 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=FssuhIRVhhpvKAp6WuWOn1y6/nYa36YBkwMcZxTbZEA=; b=RgDcc73hlOsL6UuDsAhJtRYyOi1UI3StSetWM2HqYS2sTdvfBTISQPWL4F62m7Vx58 sJcLI7a86Gv1Fu/HuWH1ldQrHlSuoamlxURKcDr0MxNTgNjRKiuMDdA7Fwt0IXugCfwM eivgT4UTyPfmi1oOp0T2jKQ57UmlgAy/mFtL7NQ6VbyAAjd0vW9vKKet+8zmuNYQ0QKW ow8ST3toh2VruRO4Z/F1VmkVIhPTZFZAki4aXGBy6/LLtwdVxZDzGylEvglEiaw0hMc3 z9qhR4fVkJA6saDJseVWmV/HFZsJbZnYtU74mZyrdrfnuqQddqwtq2EMXY3LBKot8umH Epaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vmware.com header.s=selector1 header.b="HjjdpjB/"; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=vmware.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b10si37246814plr.131.2019.04.12.09.06.13; Fri, 12 Apr 2019 09:06:29 -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=@vmware.com header.s=selector1 header.b="HjjdpjB/"; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727206AbfDLQFO (ORCPT + 99 others); Fri, 12 Apr 2019 12:05:14 -0400 Received: from mail-eopbgr800080.outbound.protection.outlook.com ([40.107.80.80]:63072 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726832AbfDLQFM (ORCPT ); Fri, 12 Apr 2019 12:05:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FssuhIRVhhpvKAp6WuWOn1y6/nYa36YBkwMcZxTbZEA=; b=HjjdpjB/HefcUr44+oM1Znd3VzUM7TxrJWMKch9CW6k+bn65F5Jt6LRVaBxRbyCIopf9e/PNLLz6XYr6av+a85K5pNn6SWZBy0gaoBNBobwzKU/bAP4QwU7J/7IXOGr9aWYTi9/60hoXRWTgHxhHj2dx563OViBgxvCzYpvudog= Received: from MN2PR05MB6141.namprd05.prod.outlook.com (20.178.241.217) by MN2PR05MB6030.namprd05.prod.outlook.com (20.178.241.159) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.9; Fri, 12 Apr 2019 16:04:30 +0000 Received: from MN2PR05MB6141.namprd05.prod.outlook.com ([fe80::91e:292d:e304:78ad]) by MN2PR05MB6141.namprd05.prod.outlook.com ([fe80::91e:292d:e304:78ad%7]) with mapi id 15.20.1792.009; Fri, 12 Apr 2019 16:04:30 +0000 From: Thomas Hellstrom To: "dri-devel@lists.freedesktop.org" , Linux-graphics-maintainer , "linux-kernel@vger.kernel.org" CC: Thomas Hellstrom Subject: [PATCH 8/9] drm/vmwgfx: Implement an infrastructure for read-coherent resources Thread-Topic: [PATCH 8/9] drm/vmwgfx: Implement an infrastructure for read-coherent resources Thread-Index: AQHU8UlpMpAuzkwq50Wm+jUUUgLkeQ== Date: Fri, 12 Apr 2019 16:04:30 +0000 Message-ID: <20190412160338.64994-9-thellstrom@vmware.com> References: <20190412160338.64994-1-thellstrom@vmware.com> In-Reply-To: <20190412160338.64994-1-thellstrom@vmware.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VE1PR03CA0023.eurprd03.prod.outlook.com (2603:10a6:802:a0::35) To MN2PR05MB6141.namprd05.prod.outlook.com (2603:10b6:208:c7::25) authentication-results: spf=none (sender IP is ) smtp.mailfrom=thellstrom@vmware.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [155.4.205.35] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c1ee2b72-2876-48c5-ec60-08d6bf608b85 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(2017052603328)(7193020);SRVR:MN2PR05MB6030; x-ms-traffictypediagnostic: MN2PR05MB6030: x-ld-processed: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0,ExtAddr x-microsoft-antispam-prvs: x-forefront-prvs: 0005B05917 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(366004)(346002)(376002)(39860400002)(396003)(199004)(189003)(110136005)(25786009)(476003)(2616005)(71190400001)(6512007)(2906002)(186003)(486006)(316002)(68736007)(1076003)(6486002)(6436002)(446003)(478600001)(3846002)(71200400001)(6116002)(11346002)(99286004)(256004)(14444005)(5024004)(14454004)(2501003)(8676002)(107886003)(66066001)(7736002)(4326008)(6506007)(81166006)(36756003)(81156014)(386003)(97736004)(102836004)(50226002)(106356001)(30864003)(52116002)(5660300002)(53936002)(8936002)(305945005)(76176011)(26005)(86362001)(105586002);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR05MB6030;H:MN2PR05MB6141.namprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: vmware.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: IKr4Ap/NSZghAC+FPENXvlqsDUwn5ZbJwdMQhbklZJPUALwaaZCHSoej2pJhIQGZ2NGa0z15ROOCMpYQENN64lz4Ppk7AQ8dW1kjYmwThTaz/XloFMTbf951UEyh1V2eLJ2NY10bvajDZoxGwH3I1lubsA7XEpL67rtJ9R/iWrdHfpR1RSIi8DtK2MMso7b8Nmx8iBUXTwdphiSPBrdPTmLTU2LjUie3Xa/MwxPdOtBpurAEU2GXIsg3Udbj7dJ+k3SB94eUeWVEc3Z5iiJKuspr1JJgSZvtiPO+IRQw34bAI+cF/nJ7dRsOkUpA/bOCAETy6tAozrb74ugXzp8ZOKy8EEcrKJ3rr9CCyWtULH7zabLCz9rbItbhffen53wMH8nCZYoZw6O4K2k9QfLjRiy5/935yU9cY9bFG4GxxGg= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1ee2b72-2876-48c5-ec60-08d6bf608b85 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2019 16:04:30.2692 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR05MB6030 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org U2ltaWxhciB0byB3cml0ZS1jb2hlcmVudCByZXNvdXJjZXMsIG1ha2Ugc3VyZSB0aGF0IGZyb20g dGhlIHVzZXItc3BhY2UNCnBvaW50IG9mIHZpZXcsIEdQVSByZW5kZXJlZCBjb250ZW50cyBpcyBh dXRvbWF0aWNhbGx5IGF2YWlsYWJsZSBmb3INCnJlYWRpbmcgYnkgdGhlIENQVS4NCg0KU2lnbmVk LW9mZi1ieTogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPg0KLS0tDQog ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAgICAgICAgICAgIHwgICAxICsNCiBk cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCAgICAgICAgICAgfCAgIDggKy0NCiBk cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMgICAgfCAgNjkgKysrKysr KysrKystDQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyAgICAgIHwg MTAyICsrKysrKysrKysrKysrKysrLQ0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jl c291cmNlX3ByaXYuaCB8ICAgMiArDQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFs aWRhdGlvbi5jICAgIHwgICAzICstDQogNiBmaWxlcyBjaGFuZ2VkLCAxNzYgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jDQppbmRleCAzYmQyOGZi OTcxMjQuLjAwNjViMTM4ZjQ1MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvX3ZtLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMNCkBAIC00Miw2 ICs0Miw3IEBADQogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4NCiAjaW5jbHVkZSA8bGludXgv bWVtX2VuY3J5cHQuaD4NCiANCisNCiBzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHRf aWRsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KIAkJCQlzdHJ1Y3Qgdm1fZmF1bHQg KnZtZikNCiB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaA0KaW5kZXggODFlYmNkNjY4 MDM4Li4wMDc5NDQxNTMzNWUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9kcnYuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgNCkBA IC05Niw2ICs5Niw3IEBAIHN0cnVjdCB2bXdfZnByaXYgew0KICAqIEBtYXA6IEttYXAgb2JqZWN0 IGZvciBzZW1pLXBlcnNpc3RlbnQgbWFwcGluZ3MNCiAgKiBAcmVzX3ByaW9zOiBFdmljdGlvbiBw cmlvcml0eSBjb3VudHMgZm9yIGF0dGFjaGVkIHJlc291cmNlcw0KICAqIEBkaXJ0eTogc3RydWN0 dXJlIGZvciB1c2VyLXNwYWNlIGRpcnR5LXRyYWNraW5nDQorICogQGNsZWFuaW5nOiBDdXJyZW50 IHZhbGlkYXRpb24gc2VxdWVuY2UgaXMgY2xlYW5pbmcuDQogICovDQogc3RydWN0IHZtd19idWZm ZXJfb2JqZWN0IHsNCiAJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IGJhc2U7DQpAQCAtNjkwLDcg KzY5MSw4IEBAIGV4dGVybiB2b2lkIHZtd19yZXNvdXJjZV91bnJlZmVyZW5jZShzdHJ1Y3Qgdm13 X3Jlc291cmNlICoqcF9yZXMpOw0KIGV4dGVybiBzdHJ1Y3Qgdm13X3Jlc291cmNlICp2bXdfcmVz b3VyY2VfcmVmZXJlbmNlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQogZXh0ZXJuIHN0cnVj dCB2bXdfcmVzb3VyY2UgKg0KIHZtd19yZXNvdXJjZV9yZWZlcmVuY2VfdW5sZXNzX2Rvb21lZChz dHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOw0KLWV4dGVybiBpbnQgdm13X3Jlc291cmNlX3ZhbGlk YXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRyKTsNCitleHRlcm4gaW50IHZt d19yZXNvdXJjZV92YWxpZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIGJvb2wgaW50ciwN CisJCQkJIGJvb2wgZGlydHlpbmcpOw0KIGV4dGVybiBpbnQgdm13X3Jlc291cmNlX3Jlc2VydmUo c3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBib29sIGludGVycnVwdGlibGUsDQogCQkJCWJvb2wg bm9fYmFja3VwKTsNCiBleHRlcm4gYm9vbCB2bXdfcmVzb3VyY2VfbmVlZHNfYmFja3VwKGNvbnN0 IHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQpAQCAtNzM0LDYgKzczNiw4IEBAIHZvaWQgdm13 X3Jlc291cmNlX21vYl9hdHRhY2goc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKTsNCiB2b2lkIHZt d19yZXNvdXJjZV9tb2JfZGV0YWNoKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQogdm9pZCB2 bXdfcmVzb3VyY2VfZGlydHlfdXBkYXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgcGdvZmZf dCBzdGFydCwNCiAJCQkgICAgICAgcGdvZmZfdCBlbmQpOw0KK2ludCB2bXdfcmVzb3VyY2VzX2Ns ZWFuKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLCBwZ29mZl90IHN0YXJ0LA0KKwkJCXBn b2ZmX3QgZW5kLCBwZ29mZl90ICpudW1fcHJlZmF1bHQpOw0KIA0KIC8qKg0KICAqIHZtd19yZXNv dXJjZV9tb2JfYXR0YWNoZWQgLSBXaGV0aGVyIGEgcmVzb3VyY2UgY3VycmVudGx5IGhhcyBhIG1v YiBhdHRhY2hlZA0KQEAgLTE0MjgsNiArMTQzMiw4IEBAIGludCB2bXdfYm9fZGlydHlfYWRkKHN0 cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvKTsNCiB2b2lkIHZtd19ib19kaXJ0eV90cmFuc2Zl cl90b19yZXMoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKTsNCiB2b2lkIHZtd19ib19kaXJ0eV9j bGVhcl9yZXMoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKTsNCiB2b2lkIHZtd19ib19kaXJ0eV9y ZWxlYXNlKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvKTsNCit2b2lkIHZtd19ib19kaXJ0 eV91bm1hcChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibywNCisJCQlwZ29mZl90IHN0YXJ0 LCBwZ29mZl90IGVuZCk7DQogdm1fZmF1bHRfdCB2bXdfYm9fdm1fZmF1bHQoc3RydWN0IHZtX2Zh dWx0ICp2bWYpOw0KIHZtX2ZhdWx0X3Qgdm13X2JvX3ZtX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0 ICp2bWYpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Bh Z2VfZGlydHkuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYw0K aW5kZXggODdlNGE3M2IxMTc1Li43NzNmZjMwYTRiNjAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYw0KQEAgLTE1Myw3ICsxNTMsNiBAQCBzdGF0aWMgdm9p ZCB2bXdfYm9fZGlydHlfc2Nhbl9ta3dyaXRlKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJv KQ0KIAl9DQogfQ0KIA0KLQ0KIC8qKg0KICAqIHZtd19ib19kaXJ0eV9zY2FuIC0gU2NhbiBmb3Ig ZGlydHkgcGFnZXMgYW5kIGFkZCB0aGVtIHRvIHRoZSBkaXJ0eQ0KICAqIHRyYWNraW5nIHN0cnVj dHVyZQ0KQEAgLTE3MSw2ICsxNzAsNTEgQEAgdm9pZCB2bXdfYm9fZGlydHlfc2NhbihzdHJ1Y3Qg dm13X2J1ZmZlcl9vYmplY3QgKnZibykNCiAJCXZtd19ib19kaXJ0eV9zY2FuX21rd3JpdGUodmJv KTsNCiB9DQogDQorLyoqDQorICogdm13X2JvX2RpcnR5X3ByZV91bm1hcCAtIHdyaXRlLXByb3Rl Y3QgYW5kIHBpY2sgdXAgZGlydHkgcGFnZXMgYmVmb3JlDQorICogYW4gdW5tYXBfbWFwcGluZ19y YW5nZSBvcGVyYXRpb24uDQorICogQHZibzogVGhlIGJ1ZmZlciBvYmplY3QsDQorICogQHN0YXJ0 OiBGaXJzdCBwYWdlIG9mIHRoZSByYW5nZSB3aXRoaW4gdGhlIGJ1ZmZlciBvYmplY3QuDQorICog QGVuZDogTGFzdCBwYWdlIG9mIHRoZSByYW5nZSB3aXRoaW4gdGhlIGJ1ZmZlciBvYmplY3QgKyAx Lg0KKyAqDQorICogSWYgd2UncmUgdXNpbmcgdGhlIF9QQUdFVEFCTEUgc2NhbiBtZXRob2QsIHdl IG1heSBsZWFrIGRpcnR5IHBhZ2VzDQorICogd2hlbiBjYWxsaW5nIHVubWFwX21hcHBpbmdfcmFu Z2UoKS4gVGhpcyBmdW5jdGlvbiBtYWtlcyBzdXJlIHdlIHBpY2sNCisgKiB1cCBhbGwgZGlydHkg cGFnZXMuDQorICovDQorc3RhdGljIHZvaWQgdm13X2JvX2RpcnR5X3ByZV91bm1hcChzdHJ1Y3Qg dm13X2J1ZmZlcl9vYmplY3QgKnZibywNCisJCQkJICAgcGdvZmZfdCBzdGFydCwgcGdvZmZfdCBl bmQpDQorew0KKwlzdHJ1Y3Qgdm13X2JvX2RpcnR5ICpkaXJ0eSA9IHZiby0+ZGlydHk7DQorCXVu c2lnbmVkIGxvbmcgb2Zmc2V0ID0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZ2Ym8tPmJhc2Uudm1hX25v ZGUpOw0KKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IHZiby0+YmFzZS5iZGV2LT5k ZXZfbWFwcGluZzsNCisNCisJaWYgKGRpcnR5LT5tZXRob2QgIT0gVk1XX0JPX0RJUlRZX1BBR0VU QUJMRSB8fCBzdGFydCA+PSBlbmQpDQorCQlyZXR1cm47DQorDQorCWFwcGx5X2FzX3dycHJvdGVj dChtYXBwaW5nLCBzdGFydCArIG9mZnNldCwgZW5kIC0gc3RhcnQpOw0KKwlhcHBseV9hc19jbGVh bihtYXBwaW5nLCBzdGFydCArIG9mZnNldCwgZW5kIC0gc3RhcnQsIG9mZnNldCwNCisJCSAgICAg ICAmZGlydHktPmJpdG1hcFswXSwgJmRpcnR5LT5zdGFydCwgJmRpcnR5LT5lbmQpOw0KK30NCisN CisvKioNCisgKiB2bXdfYm9fZGlydHlfdW5tYXAgLSBDbGVhciBhbGwgcHRlcyBwb2ludGluZyB0 byBhIHJhbmdlIHdpdGhpbiBhIGJvDQorICogQHZibzogVGhlIGJ1ZmZlciBvYmplY3QsDQorICog QHN0YXJ0OiBGaXJzdCBwYWdlIG9mIHRoZSByYW5nZSB3aXRoaW4gdGhlIGJ1ZmZlciBvYmplY3Qu DQorICogQGVuZDogTGFzdCBwYWdlIG9mIHRoZSByYW5nZSB3aXRoaW4gdGhlIGJ1ZmZlciBvYmpl Y3QgKyAxLg0KKyAqDQorICogVGhpcyBpcyBzaW1pbGFyIHRvIHR0bV9ib191bm1hcF92aXJ0dWFs X2xvY2tlZCgpIGV4Y2VwdCBpdCB0YWtlcyBhIHN1YnJhbmdlLg0KKyAqLw0KK3ZvaWQgdm13X2Jv X2RpcnR5X3VubWFwKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLA0KKwkJCXBnb2ZmX3Qg c3RhcnQsIHBnb2ZmX3QgZW5kKQ0KK3sNCisJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBkcm1fdm1h X25vZGVfc3RhcnQoJnZiby0+YmFzZS52bWFfbm9kZSk7DQorCXN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nID0gdmJvLT5iYXNlLmJkZXYtPmRldl9tYXBwaW5nOw0KKw0KKwl2bXdfYm9fZGly dHlfcHJlX3VubWFwKHZibywgc3RhcnQsIGVuZCk7DQorCXVubWFwX3NoYXJlZF9tYXBwaW5nX3Jh bmdlKG1hcHBpbmcsIChvZmZzZXQgKyBzdGFydCkgPDwgUEFHRV9TSElGVCwNCisJCQkJICAgKGxv ZmZfdCkgKGVuZCAtIHN0YXJ0KSA8PCBQQUdFX1NISUZUKTsNCit9DQorDQogLyoqDQogICogdm13 X2JvX2RpcnR5X2FkZCAtIEFkZCBhIGRpcnR5LXRyYWNraW5nIHVzZXIgdG8gYSBidWZmZXIgb2Jq ZWN0DQogICogQHZibzogVGhlIGJ1ZmZlciBvYmplY3QNCkBAIC0zOTIsNiArNDM2LDI2IEBAIHZt X2ZhdWx0X3Qgdm13X2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KIAlpZiAocmV0 KQ0KIAkJcmV0dXJuIHJldDsNCiANCisJbnVtX3ByZWZhdWx0ID0gKHZtYS0+dm1fZmxhZ3MgJiBW TV9SQU5EX1JFQUQpID8gMSA6DQorCQlUVE1fQk9fVk1fTlVNX1BSRUZBVUxUOw0KKw0KKwlpZiAo dmJvLT5kaXJ0eSkgew0KKwkJcGdvZmZfdCBhbGxvd2VkX3ByZWZhdWx0Ow0KKwkJdW5zaWduZWQg bG9uZyBwYWdlX29mZnNldDsNCisNCisJCXBhZ2Vfb2Zmc2V0ID0gdm1mLT5wZ29mZiAtIGRybV92 bWFfbm9kZV9zdGFydCgmYm8tPnZtYV9ub2RlKTsNCisJCWlmIChwYWdlX29mZnNldCA+PSBiby0+ bnVtX3BhZ2VzIHx8DQorCQkgICAgdm13X3Jlc291cmNlc19jbGVhbih2Ym8sIHBhZ2Vfb2Zmc2V0 LA0KKwkJCQkJcGFnZV9vZmZzZXQgKyBQQUdFX1NJWkUsDQorCQkJCQkmYWxsb3dlZF9wcmVmYXVs dCkpIHsNCisJCQlyZXQgPSBWTV9GQVVMVF9TSUdCVVM7DQorCQkJZ290byBvdXRfdW5sb2NrOw0K KwkJfQ0KKw0KKwkJbnVtX3ByZWZhdWx0ID0gbWluKG51bV9wcmVmYXVsdCwgYWxsb3dlZF9wcmVm YXVsdCk7DQorCX0NCisNCisNCiAJLyoNCiAJICogVGhpcyB3aWxsIGNhdXNlIG1rd3JpdGUoKSB0 byBiZSBjYWxsZWQgZm9yIGVhY2ggcHRlIG9uDQogCSAqIHdyaXRlLWVuYWJsZSB2bWFzLg0KQEAg LTM5OSwxMiArNDYzLDExIEBAIHZtX2ZhdWx0X3Qgdm13X2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9m YXVsdCAqdm1mKQ0KIAlpZiAodmJvLT5kaXJ0eSAmJiB2Ym8tPmRpcnR5LT5tZXRob2QgPT0gVk1X X0JPX0RJUlRZX01LV1JJVEUpDQogCQljdm1hLnZtX2ZsYWdzICY9IH5WTV9XUklURTsNCiANCi0J bnVtX3ByZWZhdWx0ID0gKHZtYS0+dm1fZmxhZ3MgJiBWTV9SQU5EX1JFQUQpID8gMCA6DQotCQlU VE1fQk9fVk1fTlVNX1BSRUZBVUxUOw0KIAlyZXQgPSB0dG1fYm9fdm1fZmF1bHRfcmVzZXJ2ZWQo dm1mLCAmY3ZtYSwgbnVtX3ByZWZhdWx0KTsNCiAJaWYgKHJldCA9PSBWTV9GQVVMVF9SRVRSWSAm JiAhKHZtZi0+ZmxhZ3MgJiBGQVVMVF9GTEFHX1JFVFJZX05PV0FJVCkpDQogCQlyZXR1cm4gcmV0 Ow0KIA0KK291dF91bmxvY2s6DQogCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3Yp Ow0KIAlyZXR1cm4gcmV0Ow0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3Vy Y2UuYw0KaW5kZXggZmY5ZmU1NjUwNDY4Li4zMDM2N2NiMDYxNDMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jDQorKysgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jDQpAQCAtMzk1LDcgKzM5NSw4IEBAIHN0YXRpYyBp bnQgdm13X3Jlc291cmNlX2J1Zl9hbGxvYyhzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsDQogICog c2hvdWxkIGJlIHJldHJpZWQgb25jZSByZXNvdXJjZXMgaGF2ZSBiZWVuIGZyZWVkIHVwLg0KICAq Lw0KIHN0YXRpYyBpbnQgdm13X3Jlc291cmNlX2RvX3ZhbGlkYXRlKHN0cnVjdCB2bXdfcmVzb3Vy Y2UgKnJlcywNCi0JCQkJICAgIHN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyICp2YWxfYnVmKQ0K KwkJCQkgICAgc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgKnZhbF9idWYsDQorCQkJCSAgICBi b29sIGRpcnR5aW5nKQ0KIHsNCiAJaW50IHJldCA9IDA7DQogCWNvbnN0IHN0cnVjdCB2bXdfcmVz X2Z1bmMgKmZ1bmMgPSByZXMtPmZ1bmM7DQpAQCAtNDM3LDYgKzQzOCwxNSBAQCBzdGF0aWMgaW50 IHZtd19yZXNvdXJjZV9kb192YWxpZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsDQogCSAq IHRoZSByZXNvdXJjZS4NCiAJICovDQogCWlmIChyZXMtPmRpcnR5KSB7DQorCQlpZiAoZGlydHlp bmcgJiYgIXJlcy0+cmVzX2RpcnR5KSB7DQorCQkJcGdvZmZfdCBzdGFydCA9IHJlcy0+YmFja3Vw X29mZnNldCA+PiBQQUdFX1NISUZUOw0KKwkJCXBnb2ZmX3QgZW5kID0gX19LRVJORUxfRElWX1JP VU5EX1VQDQorCQkJCShyZXMtPmJhY2t1cF9vZmZzZXQgKyByZXMtPmJhY2t1cF9zaXplLA0KKwkJ CQkgUEFHRV9TSVpFKTsNCisNCisJCQl2bXdfYm9fZGlydHlfdW5tYXAocmVzLT5iYWNrdXAsIHN0 YXJ0LCBlbmQpOw0KKwkJfQ0KKw0KIAkJdm13X2JvX2RpcnR5X3RyYW5zZmVyX3RvX3JlcyhyZXMp Ow0KIAkJcmV0dXJuIGZ1bmMtPmRpcnR5X3N5bmMocmVzKTsNCiAJfQ0KQEAgLTY4MCw2ICs2OTAs NyBAQCBzdGF0aWMgaW50IHZtd19yZXNvdXJjZV9kb19ldmljdChzdHJ1Y3Qgd3dfYWNxdWlyZV9j dHggKnRpY2tldCwNCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgZGV2aWNlLg0K ICAqIEByZXM6IFRoZSByZXNvdXJjZSB0byBtYWtlIHZpc2libGUgdG8gdGhlIGRldmljZS4NCiAg KiBAaW50cjogUGVyZm9ybSB3YWl0cyBpbnRlcnJ1cHRpYmxlIGlmIHBvc3NpYmxlLg0KKyAqIEBk aXJ0eWluZzogUGVuZGluZyBHUFUgb3BlcmF0aW9uIHdpbGwgZGlydHkgdGhlIHJlc291cmNlDQog ICoNCiAgKiBPbiBzdWNjZXNmdWwgcmV0dXJuLCBhbnkgYmFja3VwIERNQSBidWZmZXIgcG9pbnRl ZCB0byBieSBAcmVzLT5iYWNrdXAgd2lsbA0KICAqIGJlIHJlc2VydmVkIGFuZCB2YWxpZGF0ZWQu DQpAQCAtNjg5LDcgKzcwMCw4IEBAIHN0YXRpYyBpbnQgdm13X3Jlc291cmNlX2RvX2V2aWN0KHN0 cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LA0KICAqIFJldHVybjogWmVybyBvbiBzdWNjZXNz LCAtRVJFU1RBUlRTWVMgaWYgaW50ZXJydXB0ZWQsIG5lZ2F0aXZlIGVycm9yIGNvZGUNCiAgKiBv biBmYWlsdXJlLg0KICAqLw0KLWludCB2bXdfcmVzb3VyY2VfdmFsaWRhdGUoc3RydWN0IHZtd19y ZXNvdXJjZSAqcmVzLCBib29sIGludHIpDQoraW50IHZtd19yZXNvdXJjZV92YWxpZGF0ZShzdHJ1 Y3Qgdm13X3Jlc291cmNlICpyZXMsIGJvb2wgaW50ciwNCisJCQkgIGJvb2wgZGlydHlpbmcpDQog ew0KIAlpbnQgcmV0Ow0KIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpldmljdF9yZXM7DQpAQCAtNzA2 LDcgKzcxOCw3IEBAIGludCB2bXdfcmVzb3VyY2VfdmFsaWRhdGUoc3RydWN0IHZtd19yZXNvdXJj ZSAqcmVzLCBib29sIGludHIpDQogCWlmIChyZXMtPmJhY2t1cCkNCiAJCXZhbF9idWYuYm8gPSAm cmVzLT5iYWNrdXAtPmJhc2U7DQogCWRvIHsNCi0JCXJldCA9IHZtd19yZXNvdXJjZV9kb192YWxp ZGF0ZShyZXMsICZ2YWxfYnVmKTsNCisJCXJldCA9IHZtd19yZXNvdXJjZV9kb192YWxpZGF0ZShy ZXMsICZ2YWxfYnVmLCBkaXJ0eWluZyk7DQogCQlpZiAobGlrZWx5KHJldCAhPSAtRUJVU1kpKQ0K IAkJCWJyZWFrOw0KIA0KQEAgLTEwMDYsNyArMTAxOCw3IEBAIGludCB2bXdfcmVzb3VyY2VfcGlu KHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRlcnJ1cHRpYmxlKQ0KIAkJCS8qIERv IHdlIHJlYWxseSBuZWVkIHRvIHBpbiB0aGUgTU9CIGFzIHdlbGw/ICovDQogCQkJdm13X2JvX3Bp bl9yZXNlcnZlZCh2Ym8sIHRydWUpOw0KIAkJfQ0KLQkJcmV0ID0gdm13X3Jlc291cmNlX3ZhbGlk YXRlKHJlcywgaW50ZXJydXB0aWJsZSk7DQorCQlyZXQgPSB2bXdfcmVzb3VyY2VfdmFsaWRhdGUo cmVzLCBpbnRlcnJ1cHRpYmxlLCB0cnVlKTsNCiAJCWlmICh2Ym8pDQogCQkJdHRtX2JvX3VucmVz ZXJ2ZSgmdmJvLT5iYXNlKTsNCiAJCWlmIChyZXQpDQpAQCAtMTA4MSwzICsxMDkzLDg1IEBAIHZv aWQgdm13X3Jlc291cmNlX2RpcnR5X3VwZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIHBn b2ZmX3Qgc3RhcnQsDQogCQlyZXMtPmZ1bmMtPmRpcnR5X3JhbmdlX2FkZChyZXMsIHN0YXJ0IDw8 IFBBR0VfU0hJRlQsDQogCQkJCQkgICBlbmQgPDwgUEFHRV9TSElGVCk7DQogfQ0KKw0KKy8qKg0K KyAqIHZtd19yZXNvdXJjZXNfY2xlYW4gLSBDbGVhbiByZXNvdXJjZXMgaW50ZXJzZWN0aW5nIGEg bW9iIHJhbmdlDQorICogQHJlc190cmVlOiBUcmVlIG9mIHJlc291cmNlcyBhdHRhY2hlZCB0byB0 aGUgbW9iDQorICogQHN0YXJ0OiBUaGUgbW9iIHBhZ2Ugb2Zmc2V0IHN0YXJ0aW5nIHRoZSByYW5n ZQ0KKyAqIEBlbmQ6IFRoZSBtb2IgcGFnZSBvZmZzZXQgZW5kaW5nIHRoZSByYW5nZQ0KKyAqIEBu dW1fcHJlZmF1bHQ6IFJldHVybnMgaG93IG1hbnkgcGFnZXMgaW5jbHVkaW5nIHRoZSBmaXJzdCBo YXZlIGJlZW4NCisgKiBjbGVhbmVkIGFuZCBhcmUgb2sgdG8gcHJlZmF1bHQNCisgKi8NCitpbnQg dm13X3Jlc291cmNlc19jbGVhbihzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibywgcGdvZmZf dCBzdGFydCwNCisJCQlwZ29mZl90IGVuZCwgcGdvZmZfdCAqbnVtX3ByZWZhdWx0KQ0KK3sNCisJ c3RydWN0IHJiX25vZGUgKmN1ciA9IHZiby0+cmVzX3RyZWUucmJfbm9kZTsNCisJc3RydWN0IHZt d19yZXNvdXJjZSAqZm91bmQgPSBOVUxMOw0KKwl1bnNpZ25lZCBsb25nIHJlc19zdGFydCA9IHN0 YXJ0IDw8IFBBR0VfU0hJRlQ7DQorCXVuc2lnbmVkIGxvbmcgcmVzX2VuZCA9IGVuZCA8PCBQQUdF X1NISUZUOw0KKwl1bnNpZ25lZCBsb25nIGxhc3RfY2xlYW5lZCA9IDA7DQorDQorCS8qDQorCSAq IEZpbmQgdGhlIHJlc291cmNlIHdpdGggbG93ZXN0IGJhY2t1cF9vZmZzZXQgdGhhdCBpbnRlcnNl Y3RzIHRoZQ0KKwkgKiByYW5nZS4NCisJICovDQorCXdoaWxlIChjdXIpIHsNCisJCXN0cnVjdCB2 bXdfcmVzb3VyY2UgKmN1cl9yZXMgPQ0KKwkJCWNvbnRhaW5lcl9vZihjdXIsIHN0cnVjdCB2bXdf cmVzb3VyY2UsIG1vYl9ub2RlKTsNCisNCisJCWlmIChjdXJfcmVzLT5iYWNrdXBfb2Zmc2V0ID49 IHJlc19lbmQpIHsNCisJCQljdXIgPSBjdXItPnJiX2xlZnQ7DQorCQl9IGVsc2UgaWYgKGN1cl9y ZXMtPmJhY2t1cF9vZmZzZXQgKyBjdXJfcmVzLT5iYWNrdXBfc2l6ZSA8PQ0KKwkJCSAgIHJlc19z dGFydCkgew0KKwkJCWN1ciA9IGN1ci0+cmJfcmlnaHQ7DQorCQl9IGVsc2Ugew0KKwkJCWZvdW5k ID0gY3VyX3JlczsNCisJCQljdXIgPSBjdXItPnJiX2xlZnQ7DQorCQl9DQorCX0NCisNCisJLyoN CisJICogSW4gb3JkZXIgb2YgaW5jcmVhc2luZyBiYWNrdXBfb2Zmc2V0LCBjbGVhbiBkaXJ0eSBy ZXNvcmNlcw0KKwkgKiBpbnRlcnNlY3RpbmcgdGhlIHJhbmdlLg0KKwkgKi8NCisJd2hpbGUgKGZv dW5kKSB7DQorCQlpZiAoZm91bmQtPnJlc19kaXJ0eSkgew0KKwkJCWludCByZXQ7DQorDQorCQkJ aWYgKCFmb3VuZC0+ZnVuYy0+Y2xlYW4pDQorCQkJCXJldHVybiAtRUlOVkFMOw0KKw0KKwkJCXJl dCA9IGZvdW5kLT5mdW5jLT5jbGVhbihmb3VuZCk7DQorCQkJaWYgKHJldCkNCisJCQkJcmV0dXJu IHJldDsNCisNCisJCQlmb3VuZC0+cmVzX2RpcnR5ID0gZmFsc2U7DQorCQl9DQorCQlsYXN0X2Ns ZWFuZWQgPSBmb3VuZC0+YmFja3VwX29mZnNldCArIGZvdW5kLT5iYWNrdXBfc2l6ZTsNCisJCWN1 ciA9IHJiX25leHQoJmZvdW5kLT5tb2Jfbm9kZSk7DQorCQlpZiAoIWN1cikNCisJCQlicmVhazsN CisNCisJCWZvdW5kID0gY29udGFpbmVyX29mKGN1ciwgc3RydWN0IHZtd19yZXNvdXJjZSwgbW9i X25vZGUpOw0KKwkJaWYgKGZvdW5kLT5iYWNrdXBfb2Zmc2V0ID49IHJlc19lbmQpDQorCQkJYnJl YWs7DQorCX0NCisNCisJLyoNCisJICogU2V0IG51bWJlciBvZiBwYWdlcyBhbGxvd2VkIHByZWZh dWx0aW5nIGFuZCBmZW5jZSB0aGUgYnVmZmVyIG9iamVjdA0KKwkgKi8NCisJKm51bV9wcmVmYXVs dCA9IDE7DQorCWlmIChsYXN0X2NsZWFuZWQgPiByZXNfc3RhcnQpIHsNCisJCXN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8gPSAmdmJvLT5iYXNlOw0KKw0KKwkJKm51bV9wcmVmYXVsdCA9IF9f S0VSTkVMX0RJVl9ST1VORF9VUChsYXN0X2NsZWFuZWQgLSByZXNfc3RhcnQsDQorCQkJCQkJICAg ICAgUEFHRV9TSVpFKTsNCisJCXZtd19ib19mZW5jZV9zaW5nbGUoYm8sIE5VTEwpOw0KKwkJaWYg KGJvLT5tb3ZpbmcpDQorCQkJZG1hX2ZlbmNlX3B1dChiby0+bW92aW5nKTsNCisJCWJvLT5tb3Zp bmcgPSBkbWFfZmVuY2VfZ2V0DQorCQkJKHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChiby0+ cmVzdikpOw0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZV9wcml2LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9yZXNvdXJjZV9wcml2LmgNCmluZGV4IGM4NTE0NDI4NmNmZS4uM2I3NDM4YjJk Mjg5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2Vf cHJpdi5oDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZV9wcml2 LmgNCkBAIC03Nyw2ICs3Nyw3IEBAIHN0cnVjdCB2bXdfdXNlcl9yZXNvdXJjZV9jb252IHsNCiAg KiBAZGlydHlfc3luYzogICAgICAgIFVwbG9hZCB0aGUgZGlydHkgbW9iIGNvbnRlbnRzIHRvIHRo ZSByZXNvdXJjZS4NCiAgKiBAZGlydHlfYWRkX3JhbmdlOiAgIEFkZCBhIHNlcXVlbnRpYWwgZGly dHkgcmFuZ2UgdG8gdGhlIHJlc291cmNlDQogICogICAgICAgICAgICAgICAgICAgICBkaXJ0eSB0 cmFja2VyLg0KKyAqIEBjbGVhbjogICAgICAgICAgICAgQ2xlYW4gdGhlIHJlc291cmNlLg0KICAq Lw0KIHN0cnVjdCB2bXdfcmVzX2Z1bmMgew0KIAllbnVtIHZtd19yZXNfdHlwZSByZXNfdHlwZTsN CkBAIC0xMDEsNiArMTAyLDcgQEAgc3RydWN0IHZtd19yZXNfZnVuYyB7DQogCWludCAoKmRpcnR5 X3N5bmMpKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQogCXZvaWQgKCpkaXJ0eV9yYW5nZV9h ZGQpKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgc2l6ZV90IHN0YXJ0LA0KIAkJCQkgc2l6ZV90 IGVuZCk7DQorCWludCAoKmNsZWFuKShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOw0KIH07DQog DQogLyoqDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRh dGlvbi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5jDQppbmRl eCA1YjBjOTI4YmI1YmEuLjgxZDlkN2FkYzA1NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfdmFsaWRhdGlvbi5jDQpAQCAtNjQ0LDcgKzY0NCw4IEBAIGludCB2bXdfdmFsaWRh dGlvbl9yZXNfdmFsaWRhdGUoc3RydWN0IHZtd192YWxpZGF0aW9uX2NvbnRleHQgKmN0eCwgYm9v bCBpbnRyKQ0KIAkJc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzID0gdmFsLT5yZXM7DQogCQlzdHJ1 Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJhY2t1cCA9IHJlcy0+YmFja3VwOw0KIA0KLQkJcmV0ID0g dm13X3Jlc291cmNlX3ZhbGlkYXRlKHJlcywgaW50cik7DQorCQlyZXQgPSB2bXdfcmVzb3VyY2Vf dmFsaWRhdGUocmVzLCBpbnRyLCB2YWwtPmRpcnR5X3NldCAmJg0KKwkJCQkJICAgIHZhbC0+ZGly dHkpOw0KIAkJaWYgKHJldCkgew0KIAkJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQ0KIAkJCQlE Uk1fRVJST1IoIkZhaWxlZCB0byB2YWxpZGF0ZSByZXNvdXJjZS5cbiIpOw0KLS0gDQoyLjIwLjEN Cg0K