Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp497232yba; Wed, 24 Apr 2019 05:05:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqz5IcHY2C5ws++b2ozCBaoYPsuQLxS/jUM8ORa5jo85cXjExo2RorK7/OwnE6B0h1US3+jn X-Received: by 2002:a17:902:4501:: with SMTP id m1mr32190988pld.290.1556107505885; Wed, 24 Apr 2019 05:05:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556107505; cv=none; d=google.com; s=arc-20160816; b=aDBzDhXaFBRXSHK5IjTLCFOTEetN/pup4qm9bpKBSrE2Vsv4SHGQtcCBpL/Htt8SAz c41bBxhzbK9Yx6zgR1rENcXAT9xVBnZ+n3NowCUmD4Rj02QNrsup+ULgnGaAp4eRhasD iYx3dC1Zj3nQlE9OS5HQ6oIb+yCb7U9THvgJw2PPnsJL1G3Yxy3e/W+oOd+N/Nval33y 8IEY72yzGV1tiYgcV9ivHutfwqqQRSrT/a3iRDltMKcidaeWebqDz11svrz9eQ6jqCks urf/2C9jUX3JR879NRnPSM98W1srOydkejsVzcosM7evwFb7CkumgiHClPNmKpO8hIA7 PAjA== 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=r3VBlF8BzCBN2ZT3Pbvdk77E8dD9v3uhARIn11TBnHs=; b=FljUhO2s8gaOjAws7yta2PvVOxbUiQL0C3yyZuinJM1ELzPzLttkWDu0kqLP5Xp/OW DUh0H1fp76jEeBa9f2N2L8M8n4qyyj0jV+CrOc+Li5L/6IimqNJtQc5XcY/BBUoVpExx VxdnO5TWvaQONs0WsT5p5+Hh5O5vcwYEnTw2/Z3WifVKjAifno4oeF/ztzZelyg2gLw3 ayXECl1/HyRjhPt1FxQXssFVG1r8LTUxvNwffUl0pCe+SX4VPwdofHOxS9kFv3NukXZX fhsN9phoozwhvUmdQPfrR4b+oMC6rNmGQT7K9GSEAFNCM1xzD6yJevFADhNi1cMoLYkl 2Qew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vmware.com header.s=selector1 header.b=n9cR0jMT; 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=NONE 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 n3si18990306plb.148.2019.04.24.05.04.50; Wed, 24 Apr 2019 05:05:05 -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=n9cR0jMT; 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=NONE dis=NONE) header.from=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729657AbfDXMA4 (ORCPT + 99 others); Wed, 24 Apr 2019 08:00:56 -0400 Received: from mail-eopbgr810081.outbound.protection.outlook.com ([40.107.81.81]:8661 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729456AbfDXMAm (ORCPT ); Wed, 24 Apr 2019 08:00:42 -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=r3VBlF8BzCBN2ZT3Pbvdk77E8dD9v3uhARIn11TBnHs=; b=n9cR0jMTomXD2v30rjHiPFmis4JcczbClYSL1Z8GpyBYCSpg5upSNehRgyDR8QbnczOijMBcO2qxdrZMw/VtA8TAAzk1XKZ++i0kKH5IfoY/LSW9DSNEKKTmt02dN35waX+5RX9vSsidr8+3Ub0sy9hKC80QO6vdmkeeJ3Ypuzg= Received: from MN2PR05MB6141.namprd05.prod.outlook.com (20.178.241.217) by MN2PR05MB6272.namprd05.prod.outlook.com (20.178.240.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.6; Wed, 24 Apr 2019 12:00:33 +0000 Received: from MN2PR05MB6141.namprd05.prod.outlook.com ([fe80::441b:ef64:e316:b294]) by MN2PR05MB6141.namprd05.prod.outlook.com ([fe80::441b:ef64:e316:b294%5]) with mapi id 15.20.1835.010; Wed, 24 Apr 2019 12:00:33 +0000 From: Thomas Hellstrom To: Linux-graphics-maintainer , "dri-devel@lists.freedesktop.org" CC: Pv-drivers , "linux-kernel@vger.kernel.org" , Thomas Hellstrom , Deepak Singh Rawat Subject: [PATCH 8/9] drm/vmwgfx: Implement an infrastructure for read-coherent resources v2 Thread-Topic: [PATCH 8/9] drm/vmwgfx: Implement an infrastructure for read-coherent resources v2 Thread-Index: AQHU+pVRPnuRRSRRvk6oqTnXUDMHUw== Date: Wed, 24 Apr 2019 12:00:33 +0000 Message-ID: <20190424115918.3380-9-thellstrom@vmware.com> References: <20190424115918.3380-1-thellstrom@vmware.com> In-Reply-To: <20190424115918.3380-1-thellstrom@vmware.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR07CA0208.eurprd07.prod.outlook.com (2603:10a6:802:3f::32) 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: d7d10125-e193-4fb8-ea85-08d6c8ac718e x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020);SRVR:MN2PR05MB6272; x-ms-traffictypediagnostic: MN2PR05MB6272: x-ld-processed: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0,ExtAddr x-microsoft-antispam-prvs: x-forefront-prvs: 00179089FD x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(376002)(136003)(396003)(366004)(39860400002)(199004)(189003)(64756008)(66476007)(71200400001)(66446008)(86362001)(66556008)(305945005)(14444005)(50226002)(478600001)(256004)(8936002)(81156014)(5024004)(7736002)(81166006)(2906002)(66066001)(66946007)(71190400001)(8676002)(4326008)(25786009)(107886003)(1076003)(73956011)(186003)(26005)(6116002)(6512007)(486006)(6486002)(53936002)(110136005)(102836004)(6506007)(386003)(316002)(99286004)(54906003)(5660300002)(11346002)(2616005)(68736007)(14454004)(36756003)(30864003)(6436002)(446003)(476003)(76176011)(3846002)(52116002)(97736004)(2501003);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR05MB6272;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: 78sNEZJFpHrB1hs6M+/oM4nWXKUbEuTV1JzSjW7PoMW/srM25rZIziqMWdT6QVUdto99L4PnCR6jMa6RrwYHvEIEpmlwOHOVcLR2yQjQFf9j1Xz+yKhouVpfdiDebVRRCCDd5N9ang4hVsxM/Krd1sJAoTcpETp1qr7MfQHq3mMqI3lh8HrxKXDRpeEigBwHsMnb/XcYdPMLAg6H2Gie/KN4e5jRODehxShhkGg+GnVFyAUqlVliCYusSSiRVyPBOB9VadKQiUGgSCSdALqk6jvh3cD1h6ri5LTEaZDy7GAdgkLd6DuWZV72pbD0RzlEdzgblYPftPr92TjFhtpadWoSl9oV6/fYFo6y5xtZoVlm4GSYVmTWW82kOcQNaW1HDgJIYr80QDddBqs+wtkUfdL8lIW5fFNF4gyTfncD7uI= 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: d7d10125-e193-4fb8-ea85-08d6c8ac718e X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2019 12:00:33.1049 (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: MN2PR05MB6272 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org U2ltaWxhciB0byB3cml0ZS1jb2hlcmVudCByZXNvdXJjZXMsIG1ha2Ugc3VyZSB0aGF0IGZyb20g dGhlIHVzZXItc3BhY2UNCnBvaW50IG9mIHZpZXcsIEdQVSByZW5kZXJlZCBjb250ZW50cyBpcyBh dXRvbWF0aWNhbGx5IGF2YWlsYWJsZSBmb3INCnJlYWRpbmcgYnkgdGhlIENQVS4NCg0KU2lnbmVk LW9mZi1ieTogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPg0KUmV2aWV3 ZWQtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+DQotLS0NCnYyOiBDb21tZW50 LSBhbmQgZm9ybWF0dGluZyBmaXhlcy4NCi0tLQ0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5oICAgICAgICAgICB8ICAgNyArLQ0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3BhZ2VfZGlydHkuYyAgICB8ICA3MyArKysrKysrKysrKystDQogZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyAgICAgIHwgMTAzICsrKysrKysrKysrKysrKysrLQ0K IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlX3ByaXYuaCB8ICAgMiArDQog ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5jICAgIHwgICAzICstDQog NSBmaWxlcyBjaGFuZ2VkLCAxNzcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQoNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oDQppbmRleCA4MWViY2Q2NjgwMzguLmFiMzY3MGEw NjEwOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oDQor KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaA0KQEAgLTY5MCw3ICs2OTAs OCBAQCBleHRlcm4gdm9pZCB2bXdfcmVzb3VyY2VfdW5yZWZlcmVuY2Uoc3RydWN0IHZtd19yZXNv dXJjZSAqKnBfcmVzKTsNCiBleHRlcm4gc3RydWN0IHZtd19yZXNvdXJjZSAqdm13X3Jlc291cmNl X3JlZmVyZW5jZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOw0KIGV4dGVybiBzdHJ1Y3Qgdm13 X3Jlc291cmNlICoNCiB2bXdfcmVzb3VyY2VfcmVmZXJlbmNlX3VubGVzc19kb29tZWQoc3RydWN0 IHZtd19yZXNvdXJjZSAqcmVzKTsNCi1leHRlcm4gaW50IHZtd19yZXNvdXJjZV92YWxpZGF0ZShz dHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIGJvb2wgaW50cik7DQorZXh0ZXJuIGludCB2bXdfcmVz b3VyY2VfdmFsaWRhdGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBib29sIGludHIsDQorCQkJ CSBib29sIGRpcnR5aW5nKTsNCiBleHRlcm4gaW50IHZtd19yZXNvdXJjZV9yZXNlcnZlKHN0cnVj dCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRlcnJ1cHRpYmxlLA0KIAkJCQlib29sIG5vX2Jh Y2t1cCk7DQogZXh0ZXJuIGJvb2wgdm13X3Jlc291cmNlX25lZWRzX2JhY2t1cChjb25zdCBzdHJ1 Y3Qgdm13X3Jlc291cmNlICpyZXMpOw0KQEAgLTczNCw2ICs3MzUsOCBAQCB2b2lkIHZtd19yZXNv dXJjZV9tb2JfYXR0YWNoKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQogdm9pZCB2bXdfcmVz b3VyY2VfbW9iX2RldGFjaChzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOw0KIHZvaWQgdm13X3Jl c291cmNlX2RpcnR5X3VwZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIHBnb2ZmX3Qgc3Rh cnQsDQogCQkJICAgICAgIHBnb2ZmX3QgZW5kKTsNCitpbnQgdm13X3Jlc291cmNlc19jbGVhbihz dHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibywgcGdvZmZfdCBzdGFydCwNCisJCQlwZ29mZl90 IGVuZCwgcGdvZmZfdCAqbnVtX3ByZWZhdWx0KTsNCiANCiAvKioNCiAgKiB2bXdfcmVzb3VyY2Vf bW9iX2F0dGFjaGVkIC0gV2hldGhlciBhIHJlc291cmNlIGN1cnJlbnRseSBoYXMgYSBtb2IgYXR0 YWNoZWQNCkBAIC0xNDI4LDYgKzE0MzEsOCBAQCBpbnQgdm13X2JvX2RpcnR5X2FkZChzdHJ1Y3Qg dm13X2J1ZmZlcl9vYmplY3QgKnZibyk7DQogdm9pZCB2bXdfYm9fZGlydHlfdHJhbnNmZXJfdG9f cmVzKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQogdm9pZCB2bXdfYm9fZGlydHlfY2xlYXJf cmVzKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQogdm9pZCB2bXdfYm9fZGlydHlfcmVsZWFz ZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyk7DQordm9pZCB2bXdfYm9fZGlydHlfdW5t YXAoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8sDQorCQkJcGdvZmZfdCBzdGFydCwgcGdv ZmZfdCBlbmQpOw0KIHZtX2ZhdWx0X3Qgdm13X2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAq dm1mKTsNCiB2bV9mYXVsdF90IHZtd19ib192bV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1m KTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2Rp cnR5LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMNCmluZGV4 IDhkMTU0ZjkwYmRjMC4uNzMwYzUxZTM5N2RkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfcGFnZV9kaXJ0eS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9wYWdlX2RpcnR5LmMNCkBAIC0xNTMsNyArMTUzLDYgQEAgc3RhdGljIHZvaWQgdm13 X2JvX2RpcnR5X3NjYW5fbWt3cml0ZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykNCiAJ fQ0KIH0NCiANCi0NCiAvKioNCiAgKiB2bXdfYm9fZGlydHlfc2NhbiAtIFNjYW4gZm9yIGRpcnR5 IHBhZ2VzIGFuZCBhZGQgdGhlbSB0byB0aGUgZGlydHkNCiAgKiB0cmFja2luZyBzdHJ1Y3R1cmUN CkBAIC0xNzEsNiArMTcwLDUxIEBAIHZvaWQgdm13X2JvX2RpcnR5X3NjYW4oc3RydWN0IHZtd19i dWZmZXJfb2JqZWN0ICp2Ym8pDQogCQl2bXdfYm9fZGlydHlfc2Nhbl9ta3dyaXRlKHZibyk7DQog fQ0KIA0KKy8qKg0KKyAqIHZtd19ib19kaXJ0eV9wcmVfdW5tYXAgLSB3cml0ZS1wcm90ZWN0IGFu ZCBwaWNrIHVwIGRpcnR5IHBhZ2VzIGJlZm9yZQ0KKyAqIGFuIHVubWFwX21hcHBpbmdfcmFuZ2Ug b3BlcmF0aW9uLg0KKyAqIEB2Ym86IFRoZSBidWZmZXIgb2JqZWN0LA0KKyAqIEBzdGFydDogRmly c3QgcGFnZSBvZiB0aGUgcmFuZ2Ugd2l0aGluIHRoZSBidWZmZXIgb2JqZWN0Lg0KKyAqIEBlbmQ6 IExhc3QgcGFnZSBvZiB0aGUgcmFuZ2Ugd2l0aGluIHRoZSBidWZmZXIgb2JqZWN0ICsgMS4NCisg Kg0KKyAqIElmIHdlJ3JlIHVzaW5nIHRoZSBfUEFHRVRBQkxFIHNjYW4gbWV0aG9kLCB3ZSBtYXkg bGVhayBkaXJ0eSBwYWdlcw0KKyAqIHdoZW4gY2FsbGluZyB1bm1hcF9tYXBwaW5nX3JhbmdlKCku IFRoaXMgZnVuY3Rpb24gbWFrZXMgc3VyZSB3ZSBwaWNrDQorICogdXAgYWxsIGRpcnR5IHBhZ2Vz Lg0KKyAqLw0KK3N0YXRpYyB2b2lkIHZtd19ib19kaXJ0eV9wcmVfdW5tYXAoc3RydWN0IHZtd19i dWZmZXJfb2JqZWN0ICp2Ym8sDQorCQkJCSAgIHBnb2ZmX3Qgc3RhcnQsIHBnb2ZmX3QgZW5kKQ0K K3sNCisJc3RydWN0IHZtd19ib19kaXJ0eSAqZGlydHkgPSB2Ym8tPmRpcnR5Ow0KKwl1bnNpZ25l ZCBsb25nIG9mZnNldCA9IGRybV92bWFfbm9kZV9zdGFydCgmdmJvLT5iYXNlLnZtYV9ub2RlKTsN CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSB2Ym8tPmJhc2UuYmRldi0+ZGV2X21h cHBpbmc7DQorDQorCWlmIChkaXJ0eS0+bWV0aG9kICE9IFZNV19CT19ESVJUWV9QQUdFVEFCTEUg fHwgc3RhcnQgPj0gZW5kKQ0KKwkJcmV0dXJuOw0KKw0KKwlhcHBseV9hc193cnByb3RlY3QobWFw cGluZywgc3RhcnQgKyBvZmZzZXQsIGVuZCAtIHN0YXJ0KTsNCisJYXBwbHlfYXNfY2xlYW4obWFw cGluZywgc3RhcnQgKyBvZmZzZXQsIGVuZCAtIHN0YXJ0LCBvZmZzZXQsDQorCQkgICAgICAgJmRp cnR5LT5iaXRtYXBbMF0sICZkaXJ0eS0+c3RhcnQsICZkaXJ0eS0+ZW5kKTsNCit9DQorDQorLyoq DQorICogdm13X2JvX2RpcnR5X3VubWFwIC0gQ2xlYXIgYWxsIHB0ZXMgcG9pbnRpbmcgdG8gYSBy YW5nZSB3aXRoaW4gYSBibw0KKyAqIEB2Ym86IFRoZSBidWZmZXIgb2JqZWN0LA0KKyAqIEBzdGFy dDogRmlyc3QgcGFnZSBvZiB0aGUgcmFuZ2Ugd2l0aGluIHRoZSBidWZmZXIgb2JqZWN0Lg0KKyAq IEBlbmQ6IExhc3QgcGFnZSBvZiB0aGUgcmFuZ2Ugd2l0aGluIHRoZSBidWZmZXIgb2JqZWN0ICsg MS4NCisgKg0KKyAqIFRoaXMgaXMgc2ltaWxhciB0byB0dG1fYm9fdW5tYXBfdmlydHVhbF9sb2Nr ZWQoKSBleGNlcHQgaXQgdGFrZXMgYSBzdWJyYW5nZS4NCisgKi8NCit2b2lkIHZtd19ib19kaXJ0 eV91bm1hcChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibywNCisJCQlwZ29mZl90IHN0YXJ0 LCBwZ29mZl90IGVuZCkNCit7DQorCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gZHJtX3ZtYV9ub2Rl X3N0YXJ0KCZ2Ym8tPmJhc2Uudm1hX25vZGUpOw0KKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZyA9IHZiby0+YmFzZS5iZGV2LT5kZXZfbWFwcGluZzsNCisNCisJdm13X2JvX2RpcnR5X3By ZV91bm1hcCh2Ym8sIHN0YXJ0LCBlbmQpOw0KKwl1bm1hcF9zaGFyZWRfbWFwcGluZ19yYW5nZSht YXBwaW5nLCAob2Zmc2V0ICsgc3RhcnQpIDw8IFBBR0VfU0hJRlQsDQorCQkJCSAgIChsb2ZmX3Qp IChlbmQgLSBzdGFydCkgPDwgUEFHRV9TSElGVCk7DQorfQ0KKw0KIC8qKg0KICAqIHZtd19ib19k aXJ0eV9hZGQgLSBBZGQgYSBkaXJ0eS10cmFja2luZyB1c2VyIHRvIGEgYnVmZmVyIG9iamVjdA0K ICAqIEB2Ym86IFRoZSBidWZmZXIgb2JqZWN0DQpAQCAtMzg5LDIxICs0MzMsNDAgQEAgdm1fZmF1 bHRfdCB2bXdfYm9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpDQogCWlmIChyZXQpDQog CQlyZXR1cm4gcmV0Ow0KIA0KKwludW1fcHJlZmF1bHQgPSAodm1hLT52bV9mbGFncyAmIFZNX1JB TkRfUkVBRCkgPyAxIDoNCisJCVRUTV9CT19WTV9OVU1fUFJFRkFVTFQ7DQorDQorCWlmICh2Ym8t PmRpcnR5KSB7DQorCQlwZ29mZl90IGFsbG93ZWRfcHJlZmF1bHQ7DQorCQl1bnNpZ25lZCBsb25n IHBhZ2Vfb2Zmc2V0Ow0KKw0KKwkJcGFnZV9vZmZzZXQgPSB2bWYtPnBnb2ZmIC0gZHJtX3ZtYV9u b2RlX3N0YXJ0KCZiby0+dm1hX25vZGUpOw0KKwkJaWYgKHBhZ2Vfb2Zmc2V0ID49IGJvLT5udW1f cGFnZXMgfHwNCisJCSAgICB2bXdfcmVzb3VyY2VzX2NsZWFuKHZibywgcGFnZV9vZmZzZXQsDQor CQkJCQlwYWdlX29mZnNldCArIFBBR0VfU0laRSwNCisJCQkJCSZhbGxvd2VkX3ByZWZhdWx0KSkg ew0KKwkJCXJldCA9IFZNX0ZBVUxUX1NJR0JVUzsNCisJCQlnb3RvIG91dF91bmxvY2s7DQorCQl9 DQorDQorCQludW1fcHJlZmF1bHQgPSBtaW4obnVtX3ByZWZhdWx0LCBhbGxvd2VkX3ByZWZhdWx0 KTsNCisJfQ0KKw0KIAkvKg0KLQkgKiBUaGlzIHdpbGwgY2F1c2UgbWt3cml0ZSgpIHRvIGJlIGNh bGxlZCBmb3IgZWFjaCBwdGUgb24NCi0JICogd3JpdGUtZW5hYmxlIHZtYXMuDQorCSAqIElmIHdl IGRvbid0IHRyYWNrIGRpcnR5IHVzaW5nIHRoZSBNS1dSSVRFIG1ldGhvZCwgbWFrZSBzdXJlDQor CSAqIHN1cmUgdGhlIHBhZ2UgcHJvdGVjdGlvbiBpcyB3cml0ZS1lbmFibGVkIHNvIHdlIGRvbid0 IGdldA0KKwkgKiBhIGxvdCBvZiB1bm5lY2Vzc2FyeSB3cml0ZSBmYXVsdHMuDQogCSAqLw0KIAlp ZiAodmJvLT5kaXJ0eSAmJiB2Ym8tPmRpcnR5LT5tZXRob2QgPT0gVk1XX0JPX0RJUlRZX01LV1JJ VEUpDQogCQlwcm90ID0gdm1hLT52bV9wYWdlX3Byb3Q7DQogCWVsc2UNCiAJCXByb3QgPSB2bV9n ZXRfcGFnZV9wcm90KHZtYS0+dm1fZmxhZ3MpOw0KIA0KLQludW1fcHJlZmF1bHQgPSAodm1hLT52 bV9mbGFncyAmIFZNX1JBTkRfUkVBRCkgPyAwIDoNCi0JCVRUTV9CT19WTV9OVU1fUFJFRkFVTFQ7 DQogCXJldCA9IHR0bV9ib192bV9mYXVsdF9yZXNlcnZlZCh2bWYsIHByb3QsIG51bV9wcmVmYXVs dCk7DQogCWlmIChyZXQgPT0gVk1fRkFVTFRfUkVUUlkgJiYgISh2bWYtPmZsYWdzICYgRkFVTFRf RkxBR19SRVRSWV9OT1dBSVQpKQ0KIAkJcmV0dXJuIHJldDsNCiANCitvdXRfdW5sb2NrOg0KIAly ZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsNCiAJcmV0dXJuIHJldDsNCiB9DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMNCmluZGV4IGZmOWZlNTY1MDQ2 OC4uZjA4MDQzODAzZGFlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfcmVzb3VyY2UuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3Vy Y2UuYw0KQEAgLTM5NSw3ICszOTUsOCBAQCBzdGF0aWMgaW50IHZtd19yZXNvdXJjZV9idWZfYWxs b2Moc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLA0KICAqIHNob3VsZCBiZSByZXRyaWVkIG9uY2Ug cmVzb3VyY2VzIGhhdmUgYmVlbiBmcmVlZCB1cC4NCiAgKi8NCiBzdGF0aWMgaW50IHZtd19yZXNv dXJjZV9kb192YWxpZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsDQotCQkJCSAgICBzdHJ1 Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqdmFsX2J1ZikNCisJCQkJICAgIHN0cnVjdCB0dG1fdmFs aWRhdGVfYnVmZmVyICp2YWxfYnVmLA0KKwkJCQkgICAgYm9vbCBkaXJ0eWluZykNCiB7DQogCWlu dCByZXQgPSAwOw0KIAljb25zdCBzdHJ1Y3Qgdm13X3Jlc19mdW5jICpmdW5jID0gcmVzLT5mdW5j Ow0KQEAgLTQzNyw2ICs0MzgsMTUgQEAgc3RhdGljIGludCB2bXdfcmVzb3VyY2VfZG9fdmFsaWRh dGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLA0KIAkgKiB0aGUgcmVzb3VyY2UuDQogCSAqLw0K IAlpZiAocmVzLT5kaXJ0eSkgew0KKwkJaWYgKGRpcnR5aW5nICYmICFyZXMtPnJlc19kaXJ0eSkg ew0KKwkJCXBnb2ZmX3Qgc3RhcnQgPSByZXMtPmJhY2t1cF9vZmZzZXQgPj4gUEFHRV9TSElGVDsN CisJCQlwZ29mZl90IGVuZCA9IF9fS0VSTkVMX0RJVl9ST1VORF9VUA0KKwkJCQkocmVzLT5iYWNr dXBfb2Zmc2V0ICsgcmVzLT5iYWNrdXBfc2l6ZSwNCisJCQkJIFBBR0VfU0laRSk7DQorDQorCQkJ dm13X2JvX2RpcnR5X3VubWFwKHJlcy0+YmFja3VwLCBzdGFydCwgZW5kKTsNCisJCX0NCisNCiAJ CXZtd19ib19kaXJ0eV90cmFuc2Zlcl90b19yZXMocmVzKTsNCiAJCXJldHVybiBmdW5jLT5kaXJ0 eV9zeW5jKHJlcyk7DQogCX0NCkBAIC02ODAsNiArNjkwLDcgQEAgc3RhdGljIGludCB2bXdfcmVz b3VyY2VfZG9fZXZpY3Qoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsDQogICogICAgICAg ICAgICAgICAgICAgICAgICAgdG8gdGhlIGRldmljZS4NCiAgKiBAcmVzOiBUaGUgcmVzb3VyY2Ug dG8gbWFrZSB2aXNpYmxlIHRvIHRoZSBkZXZpY2UuDQogICogQGludHI6IFBlcmZvcm0gd2FpdHMg aW50ZXJydXB0aWJsZSBpZiBwb3NzaWJsZS4NCisgKiBAZGlydHlpbmc6IFBlbmRpbmcgR1BVIG9w ZXJhdGlvbiB3aWxsIGRpcnR5IHRoZSByZXNvdXJjZQ0KICAqDQogICogT24gc3VjY2VzZnVsIHJl dHVybiwgYW55IGJhY2t1cCBETUEgYnVmZmVyIHBvaW50ZWQgdG8gYnkgQHJlcy0+YmFja3VwIHdp bGwNCiAgKiBiZSByZXNlcnZlZCBhbmQgdmFsaWRhdGVkLg0KQEAgLTY4OSw3ICs3MDAsOCBAQCBz dGF0aWMgaW50IHZtd19yZXNvdXJjZV9kb19ldmljdChzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRp Y2tldCwNCiAgKiBSZXR1cm46IFplcm8gb24gc3VjY2VzcywgLUVSRVNUQVJUU1lTIGlmIGludGVy cnVwdGVkLCBuZWdhdGl2ZSBlcnJvciBjb2RlDQogICogb24gZmFpbHVyZS4NCiAgKi8NCi1pbnQg dm13X3Jlc291cmNlX3ZhbGlkYXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRy KQ0KK2ludCB2bXdfcmVzb3VyY2VfdmFsaWRhdGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBi b29sIGludHIsDQorCQkJICBib29sIGRpcnR5aW5nKQ0KIHsNCiAJaW50IHJldDsNCiAJc3RydWN0 IHZtd19yZXNvdXJjZSAqZXZpY3RfcmVzOw0KQEAgLTcwNiw3ICs3MTgsNyBAQCBpbnQgdm13X3Jl c291cmNlX3ZhbGlkYXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRyKQ0KIAlp ZiAocmVzLT5iYWNrdXApDQogCQl2YWxfYnVmLmJvID0gJnJlcy0+YmFja3VwLT5iYXNlOw0KIAlk byB7DQotCQlyZXQgPSB2bXdfcmVzb3VyY2VfZG9fdmFsaWRhdGUocmVzLCAmdmFsX2J1Zik7DQor CQlyZXQgPSB2bXdfcmVzb3VyY2VfZG9fdmFsaWRhdGUocmVzLCAmdmFsX2J1ZiwgZGlydHlpbmcp Ow0KIAkJaWYgKGxpa2VseShyZXQgIT0gLUVCVVNZKSkNCiAJCQlicmVhazsNCiANCkBAIC0xMDA2 LDcgKzEwMTgsNyBAQCBpbnQgdm13X3Jlc291cmNlX3BpbihzdHJ1Y3Qgdm13X3Jlc291cmNlICpy ZXMsIGJvb2wgaW50ZXJydXB0aWJsZSkNCiAJCQkvKiBEbyB3ZSByZWFsbHkgbmVlZCB0byBwaW4g dGhlIE1PQiBhcyB3ZWxsPyAqLw0KIAkJCXZtd19ib19waW5fcmVzZXJ2ZWQodmJvLCB0cnVlKTsN CiAJCX0NCi0JCXJldCA9IHZtd19yZXNvdXJjZV92YWxpZGF0ZShyZXMsIGludGVycnVwdGlibGUp Ow0KKwkJcmV0ID0gdm13X3Jlc291cmNlX3ZhbGlkYXRlKHJlcywgaW50ZXJydXB0aWJsZSwgdHJ1 ZSk7DQogCQlpZiAodmJvKQ0KIAkJCXR0bV9ib191bnJlc2VydmUoJnZiby0+YmFzZSk7DQogCQlp ZiAocmV0KQ0KQEAgLTEwODEsMyArMTA5Myw4NiBAQCB2b2lkIHZtd19yZXNvdXJjZV9kaXJ0eV91 cGRhdGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBwZ29mZl90IHN0YXJ0LA0KIAkJcmVzLT5m dW5jLT5kaXJ0eV9yYW5nZV9hZGQocmVzLCBzdGFydCA8PCBQQUdFX1NISUZULA0KIAkJCQkJICAg ZW5kIDw8IFBBR0VfU0hJRlQpOw0KIH0NCisNCisvKioNCisgKiB2bXdfcmVzb3VyY2VzX2NsZWFu IC0gQ2xlYW4gcmVzb3VyY2VzIGludGVyc2VjdGluZyBhIG1vYiByYW5nZQ0KKyAqIEB2Ym86IFRo ZSBtb2IgYnVmZmVyIG9iamVjdA0KKyAqIEBzdGFydDogVGhlIG1vYiBwYWdlIG9mZnNldCBzdGFy dGluZyB0aGUgcmFuZ2UNCisgKiBAZW5kOiBUaGUgbW9iIHBhZ2Ugb2Zmc2V0IGVuZGluZyB0aGUg cmFuZ2UNCisgKiBAbnVtX3ByZWZhdWx0OiBSZXR1cm5zIGhvdyBtYW55IHBhZ2VzIGluY2x1ZGlu ZyB0aGUgZmlyc3QgaGF2ZSBiZWVuDQorICogY2xlYW5lZCBhbmQgYXJlIG9rIHRvIHByZWZhdWx0 DQorICovDQoraW50IHZtd19yZXNvdXJjZXNfY2xlYW4oc3RydWN0IHZtd19idWZmZXJfb2JqZWN0 ICp2Ym8sIHBnb2ZmX3Qgc3RhcnQsDQorCQkJcGdvZmZfdCBlbmQsIHBnb2ZmX3QgKm51bV9wcmVm YXVsdCkNCit7DQorCXN0cnVjdCByYl9ub2RlICpjdXIgPSB2Ym8tPnJlc190cmVlLnJiX25vZGU7 DQorCXN0cnVjdCB2bXdfcmVzb3VyY2UgKmZvdW5kID0gTlVMTDsNCisJdW5zaWduZWQgbG9uZyBy ZXNfc3RhcnQgPSBzdGFydCA8PCBQQUdFX1NISUZUOw0KKwl1bnNpZ25lZCBsb25nIHJlc19lbmQg PSBlbmQgPDwgUEFHRV9TSElGVDsNCisJdW5zaWduZWQgbG9uZyBsYXN0X2NsZWFuZWQgPSAwOw0K Kw0KKwkvKg0KKwkgKiBGaW5kIHRoZSByZXNvdXJjZSB3aXRoIGxvd2VzdCBiYWNrdXBfb2Zmc2V0 IHRoYXQgaW50ZXJzZWN0cyB0aGUNCisJICogcmFuZ2UuDQorCSAqLw0KKwl3aGlsZSAoY3VyKSB7 DQorCQlzdHJ1Y3Qgdm13X3Jlc291cmNlICpjdXJfcmVzID0NCisJCQljb250YWluZXJfb2YoY3Vy LCBzdHJ1Y3Qgdm13X3Jlc291cmNlLCBtb2Jfbm9kZSk7DQorDQorCQlpZiAoY3VyX3Jlcy0+YmFj a3VwX29mZnNldCA+PSByZXNfZW5kKSB7DQorCQkJY3VyID0gY3VyLT5yYl9sZWZ0Ow0KKwkJfSBl bHNlIGlmIChjdXJfcmVzLT5iYWNrdXBfb2Zmc2V0ICsgY3VyX3Jlcy0+YmFja3VwX3NpemUgPD0N CisJCQkgICByZXNfc3RhcnQpIHsNCisJCQljdXIgPSBjdXItPnJiX3JpZ2h0Ow0KKwkJfSBlbHNl IHsNCisJCQlmb3VuZCA9IGN1cl9yZXM7DQorCQkJY3VyID0gY3VyLT5yYl9sZWZ0Ow0KKwkJCS8q IENvbnRpbnVlIHRvIGxvb2sgZm9yIHJlc291cmNlcyB3aXRoIGxvd2VyIG9mZnNldHMgKi8NCisJ CX0NCisJfQ0KKw0KKwkvKg0KKwkgKiBJbiBvcmRlciBvZiBpbmNyZWFzaW5nIGJhY2t1cF9vZmZz ZXQsIGNsZWFuIGRpcnR5IHJlc29yY2VzDQorCSAqIGludGVyc2VjdGluZyB0aGUgcmFuZ2UuDQor CSAqLw0KKwl3aGlsZSAoZm91bmQpIHsNCisJCWlmIChmb3VuZC0+cmVzX2RpcnR5KSB7DQorCQkJ aW50IHJldDsNCisNCisJCQlpZiAoIWZvdW5kLT5mdW5jLT5jbGVhbikNCisJCQkJcmV0dXJuIC1F SU5WQUw7DQorDQorCQkJcmV0ID0gZm91bmQtPmZ1bmMtPmNsZWFuKGZvdW5kKTsNCisJCQlpZiAo cmV0KQ0KKwkJCQlyZXR1cm4gcmV0Ow0KKw0KKwkJCWZvdW5kLT5yZXNfZGlydHkgPSBmYWxzZTsN CisJCX0NCisJCWxhc3RfY2xlYW5lZCA9IGZvdW5kLT5iYWNrdXBfb2Zmc2V0ICsgZm91bmQtPmJh Y2t1cF9zaXplOw0KKwkJY3VyID0gcmJfbmV4dCgmZm91bmQtPm1vYl9ub2RlKTsNCisJCWlmICgh Y3VyKQ0KKwkJCWJyZWFrOw0KKw0KKwkJZm91bmQgPSBjb250YWluZXJfb2YoY3VyLCBzdHJ1Y3Qg dm13X3Jlc291cmNlLCBtb2Jfbm9kZSk7DQorCQlpZiAoZm91bmQtPmJhY2t1cF9vZmZzZXQgPj0g cmVzX2VuZCkNCisJCQlicmVhazsNCisJfQ0KKw0KKwkvKg0KKwkgKiBTZXQgbnVtYmVyIG9mIHBh Z2VzIGFsbG93ZWQgcHJlZmF1bHRpbmcgYW5kIGZlbmNlIHRoZSBidWZmZXIgb2JqZWN0DQorCSAq Lw0KKwkqbnVtX3ByZWZhdWx0ID0gMTsNCisJaWYgKGxhc3RfY2xlYW5lZCA+IHJlc19zdGFydCkg ew0KKwkJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9ICZ2Ym8tPmJhc2U7DQorDQorCQkq bnVtX3ByZWZhdWx0ID0gX19LRVJORUxfRElWX1JPVU5EX1VQKGxhc3RfY2xlYW5lZCAtIHJlc19z dGFydCwNCisJCQkJCQkgICAgICBQQUdFX1NJWkUpOw0KKwkJdm13X2JvX2ZlbmNlX3NpbmdsZShi bywgTlVMTCk7DQorCQlpZiAoYm8tPm1vdmluZykNCisJCQlkbWFfZmVuY2VfcHV0KGJvLT5tb3Zp bmcpOw0KKwkJYm8tPm1vdmluZyA9IGRtYV9mZW5jZV9nZXQNCisJCQkocmVzZXJ2YXRpb25fb2Jq ZWN0X2dldF9leGNsKGJvLT5yZXN2KSk7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlX3ByaXYuaCBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlX3ByaXYuaA0KaW5kZXggYzg1MTQ0 Mjg2Y2ZlLi4zYjc0MzhiMmQyODkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9yZXNvdXJjZV9wcml2LmgNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3Jlc291cmNlX3ByaXYuaA0KQEAgLTc3LDYgKzc3LDcgQEAgc3RydWN0IHZtd191c2VyX3Jl c291cmNlX2NvbnYgew0KICAqIEBkaXJ0eV9zeW5jOiAgICAgICAgVXBsb2FkIHRoZSBkaXJ0eSBt b2IgY29udGVudHMgdG8gdGhlIHJlc291cmNlLg0KICAqIEBkaXJ0eV9hZGRfcmFuZ2U6ICAgQWRk IGEgc2VxdWVudGlhbCBkaXJ0eSByYW5nZSB0byB0aGUgcmVzb3VyY2UNCiAgKiAgICAgICAgICAg ICAgICAgICAgIGRpcnR5IHRyYWNrZXIuDQorICogQGNsZWFuOiAgICAgICAgICAgICBDbGVhbiB0 aGUgcmVzb3VyY2UuDQogICovDQogc3RydWN0IHZtd19yZXNfZnVuYyB7DQogCWVudW0gdm13X3Jl c190eXBlIHJlc190eXBlOw0KQEAgLTEwMSw2ICsxMDIsNyBAQCBzdHJ1Y3Qgdm13X3Jlc19mdW5j IHsNCiAJaW50ICgqZGlydHlfc3luYykoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKTsNCiAJdm9p ZCAoKmRpcnR5X3JhbmdlX2FkZCkoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBzaXplX3Qgc3Rh cnQsDQogCQkJCSBzaXplX3QgZW5kKTsNCisJaW50ICgqY2xlYW4pKHN0cnVjdCB2bXdfcmVzb3Vy Y2UgKnJlcyk7DQogfTsNCiANCiAvKioNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF92YWxpZGF0aW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92 YWxpZGF0aW9uLmMNCmluZGV4IDcxMzQ5YTdiYWU5MC4uOWFhZjgwN2VkNzNjIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5jDQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92YWxpZGF0aW9uLmMNCkBAIC02NDEsNyArNjQxLDgg QEAgaW50IHZtd192YWxpZGF0aW9uX3Jlc192YWxpZGF0ZShzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25f Y29udGV4dCAqY3R4LCBib29sIGludHIpDQogCQlzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMgPSB2 YWwtPnJlczsNCiAJCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYmFja3VwID0gcmVzLT5iYWNr dXA7DQogDQotCQlyZXQgPSB2bXdfcmVzb3VyY2VfdmFsaWRhdGUocmVzLCBpbnRyKTsNCisJCXJl dCA9IHZtd19yZXNvdXJjZV92YWxpZGF0ZShyZXMsIGludHIsIHZhbC0+ZGlydHlfc2V0ICYmDQor CQkJCQkgICAgdmFsLT5kaXJ0eSk7DQogCQlpZiAocmV0KSB7DQogCQkJaWYgKHJldCAhPSAtRVJF U1RBUlRTWVMpDQogCQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIHZhbGlkYXRlIHJlc291cmNlLlxu Iik7DQotLSANCjIuMjAuMQ0KDQo=