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=-11.3 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 EE1BAC433DF for ; Wed, 12 Aug 2020 19:32:53 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BCFEF206DA for ; Wed, 12 Aug 2020 19:32:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=shipmail.org header.i=@shipmail.org header.b="hxjn3q9f" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BCFEF206DA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=shipmail.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 565F26E03A; Wed, 12 Aug 2020 19:32:53 +0000 (UTC) Received: from pio-pvt-msa2.bahnhof.se (pio-pvt-msa2.bahnhof.se [79.136.2.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5738F6E03A for ; Wed, 12 Aug 2020 19:32:51 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by pio-pvt-msa2.bahnhof.se (Postfix) with ESMTP id 26B253F4F8; Wed, 12 Aug 2020 21:32:47 +0200 (CEST) Authentication-Results: pio-pvt-msa2.bahnhof.se; dkim=pass (1024-bit key; unprotected) header.d=shipmail.org header.i=@shipmail.org header.b=hxjn3q9f; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at bahnhof.se Received: from pio-pvt-msa2.bahnhof.se ([127.0.0.1]) by localhost (pio-pvt-msa2.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O9Z6yA98zofT; Wed, 12 Aug 2020 21:32:46 +0200 (CEST) Received: from mail1.shipmail.org (h-205-35.A357.priv.bahnhof.se [155.4.205.35]) (Authenticated sender: mb878879) by pio-pvt-msa2.bahnhof.se (Postfix) with ESMTPA id 6A4683F319; Wed, 12 Aug 2020 21:32:44 +0200 (CEST) Received: from localhost.localdomain (jfdmzpr03-ext.jf.intel.com [134.134.139.72]) by mail1.shipmail.org (Postfix) with ESMTPSA id 94C1F360507; Wed, 12 Aug 2020 21:32:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=shipmail.org; s=mail; t=1597260767; bh=hBgixxXguUB6A1yRpo2nDN/FUEMQ/G3qCatWyVrx5f4=; h=Subject:To:References:From:Date:In-Reply-To:From; b=hxjn3q9fdiFkJG39NxMdX7lblkpOIrqy0xJkIJRmB4VVWpYpO6V3UNsY6BreUO527 kp4c7OrN8Mh2fV3jFAAdyUTNRZ8R6EJo0NgajSwozO8BHXdbpnBwg5aR2ETmOYTj18 vKttYiXVIS7Ip2v/pEPTI7ksDv25kMq9ikG9pA00= To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org References: <20200810103103.303818-1-maarten.lankhorst@linux.intel.com> <20200810103103.303818-16-maarten.lankhorst@linux.intel.com> From: =?UTF-8?Q?Thomas_Hellstr=c3=b6m_=28Intel=29?= Message-ID: Date: Wed, 12 Aug 2020 21:32:41 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200810103103.303818-16-maarten.lankhorst@linux.intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 15/24] drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Ck9uIDgvMTAvMjAgMTI6MzAgUE0sIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+IEFzIGEgcHJl cGFyYXRpb24gc3RlcCBmb3IgZnVsbCBvYmplY3QgbG9ja2luZyBhbmQgd2FpdC93b3VuZCBoYW5k bGluZwo+IGR1cmluZyBwaW4gYW5kIG9iamVjdCBtYXBwaW5nLCBlbnN1cmUgdGhhdCB3ZSBhbHdh eXMgcGFzcyB0aGUgd3cgY29udGV4dAo+IGluIGk5MTVfZ2VtX2V4ZWNidWZmZXIuYyB0byBpOTE1 X3ZtYV9waW4sIHVzZSBsb2NrZGVwIHRvIGVuc3VyZSB0aGlzCj4gaGFwcGVucy4KPgo+IFRoaXMg YWxzbyByZXF1aXJlcyBjaGFuZ2luZyB0aGUgb3JkZXIgb2YgZWJfcGFyc2Ugc2xpZ2h0bHksIHRv IGVuc3VyZQo+IHdlIHBhc3Mgd3cgYXQgYSBwb2ludCB3aGVyZSB3ZSBjb3VsZCBzdGlsbCBoYW5k bGUgLUVERUFETEsgc2FmZWx5Lgo+Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KCkknbSBhIGJpdCBjdXJpb3VzIGFz IGhvdyB3ZSBoYW5kbGUgdGhlIGxpZmV0aW1lIG9uIHRoZSBjb250ZW5kaW5nIGxvY2tzIApzaW5j ZSB3ZSBvZnRlbiByZXR1cm4gdGhyb3VnaCB0aGUgY2FsbCB0cmVlIGJlZm9yZSBkb2luZyB0aGUg d3cgCnRyYW5zYWN0aW9uIHJlbGF4YXRpb27CoCAodGhlIHNsb3cgbG9jaykuIEhhcyB0aGF0IGJl ZW4gYSBwcm9ibGVtPwoKCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYyAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9jb250ZXh0LmMgICB8ICAgNCArLQo+ICAgLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fZXhlY2J1ZmZlci5jICAgIHwgMTQwICsrKysrKysrKystLS0tLS0tLQo+ICAgLi4uL2k5MTUv Z2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9leGVjYnVmZmVyLmMgIHwgICA0ICstCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9nZW42X3BwZ3R0LmMgICAgICAgICAgfCAgIDQgKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2dlbjZfcHBndHQuaCAgICAgICAgICB8ICAgNCArLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jICAgICAgIHwgIDY1ICsrKysrLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmggICAgICAgfCAgMTMg KysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHRfdHlwZXMuaCB8ICAg MyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMgICAgIHwg ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jICAgICAgICAgICAg fCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jICAgICAgICAg ICB8ICAgNSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVuZGVyc3RhdGUu YyAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nLmMgICAg ICAgICAgfCAgMTAgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmcuaCAg ICAgICAgICB8ICAgMyArLQo+ICAgLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nX3N1Ym1p c3Npb24uYyAgIHwgIDE1ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1l bGluZS5jICAgICAgfCAgMTIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Rp bWVsaW5lLmggICAgICB8ICAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19l bmdpbmUuYyAgICAgICAgIHwgICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxm dGVzdF9scmMuYyAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Nl bGZ0ZXN0X3RpbWVsaW5lLmMgICB8ICAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvaW50ZWxfZ3VjLmMgICAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgMTMgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICB8ICAxMSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92bWEuYyAgICAgICAgICAgICAgIHwgIDEzICstCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5oICAgICAgICAgICAgICAgfCAgMTMgKy0KPiAgIDI2IGZpbGVzIGNoYW5n ZWQsIDIxNyBpbnNlcnRpb25zKCspLCAxMzcgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDViNDQzNDI4OTExNy4u YWE1YTg4MzQwZDEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMKPiBAQCAtMzQ1MSw3ICszNDUxLDcgQEAgaW5pdGlhbF9wbGFuZV92bWEoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gICAJaWYgKElTX0VSUih2bWEpKQo+ICAgCQln b3RvIGVycl9vYmo7Cj4gICAKPiAtCWlmIChpOTE1X2dndHRfcGluKHZtYSwgMCwgUElOX01BUFBB QkxFIHwgUElOX09GRlNFVF9GSVhFRCB8IGJhc2UpKQo+ICsJaWYgKGk5MTVfZ2d0dF9waW4odm1h LCBOVUxMLCAwLCBQSU5fTUFQUEFCTEUgfCBQSU5fT0ZGU0VUX0ZJWEVEIHwgYmFzZSkpCj4gICAJ CWdvdG8gZXJyX29iajsKPiAgIAo+ICAgCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfdGlsZWQob2Jq KSAmJgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29u dGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwo+IGlu ZGV4IDM0YzhiMGRkODVlMC4uY2Y1ZWNiZGU5ZTA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTExNTQsNyArMTE1NCw3IEBAIHN0YXRp YyBpbnQgY29udGV4dF9iYXJyaWVyX3Rhc2soc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwK PiAgIAo+ICAgCQlpOTE1X2dlbV93d19jdHhfaW5pdCgmd3csIHRydWUpOwo+ICAgcmV0cnk6Cj4g LQkJZXJyID0gaW50ZWxfY29udGV4dF9waW4oY2UpOwo+ICsJCWVyciA9IGludGVsX2NvbnRleHRf cGluX3d3KGNlLCAmd3cpOwo+ICAgCQlpZiAoZXJyKQo+ICAgCQkJZ290byBlcnI7Cj4gICAKPiBA QCAtMTI0Nyw3ICsxMjQ3LDcgQEAgc3RhdGljIGludCBwaW5fcHBndHRfdXBkYXRlKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSwgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cKPiAgIAo+ICAgCWlm ICghSEFTX0xPR0lDQUxfUklOR19DT05URVhUUyh2bS0+aTkxNSkpCj4gICAJCS8qIHBwR1RUIGlz IG5vdCBwYXJ0IG9mIHRoZSBsZWdhY3kgY29udGV4dCBpbWFnZSAqLwo+IC0JCXJldHVybiBnZW42 X3BwZ3R0X3BpbihpOTE1X3ZtX3RvX3BwZ3R0KHZtKSk7Cj4gKwkJcmV0dXJuIGdlbjZfcHBndHRf cGluKGk5MTVfdm1fdG9fcHBndHQodm0pLCB3dyk7Cj4gICAKPiAgIAlyZXR1cm4gMDsKPiAgIH0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBp bmRleCA2MDRlMjZhZGVhMjMuLjk0YmZkYzU0ZjAzNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IEBAIC00MzcsMTYgKzQzNywxNyBA QCBlYl9waW5fdm1hKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAo+ICAgCQlwaW5fZmxhZ3Mg fD0gUElOX0dMT0JBTDsKPiAgIAo+ICAgCS8qIEF0dGVtcHQgdG8gcmV1c2UgdGhlIGN1cnJlbnQg bG9jYXRpb24gaWYgYXZhaWxhYmxlICovCj4gLQlpZiAodW5saWtlbHkoaTkxNV92bWFfcGluKHZt YSwgMCwgMCwgcGluX2ZsYWdzKSkpIHsKPiArCS8qIFRPRE86IEFkZCAtRURFQURMSyBoYW5kbGlu ZyBoZXJlICovCj4gKwlpZiAodW5saWtlbHkoaTkxNV92bWFfcGluX3d3KHZtYSwgJmViLT53dywg MCwgMCwgcGluX2ZsYWdzKSkpIHsKPiAgIAkJaWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNU X1BJTk5FRCkKPiAgIAkJCXJldHVybiBmYWxzZTsKPiAgIAo+ICAgCQkvKiBGYWlsaW5nIHRoYXQg cGljayBhbnkgX2ZyZWVfIHNwYWNlIGlmIHN1aXRhYmxlICovCj4gLQkJaWYgKHVubGlrZWx5KGk5 MTVfdm1hX3Bpbih2bWEsCj4gLQkJCQkJICBlbnRyeS0+cGFkX3RvX3NpemUsCj4gLQkJCQkJICBl bnRyeS0+YWxpZ25tZW50LAo+IC0JCQkJCSAgZWJfcGluX2ZsYWdzKGVudHJ5LCBldi0+ZmxhZ3Mp IHwKPiAtCQkJCQkgIFBJTl9VU0VSIHwgUElOX05PRVZJQ1QpKSkKPiArCQlpZiAodW5saWtlbHko aTkxNV92bWFfcGluX3d3KHZtYSwgJmViLT53dywKPiArCQkJCQkgICAgIGVudHJ5LT5wYWRfdG9f c2l6ZSwKPiArCQkJCQkgICAgIGVudHJ5LT5hbGlnbm1lbnQsCj4gKwkJCQkJICAgICBlYl9waW5f ZmxhZ3MoZW50cnksIGV2LT5mbGFncykgfAo+ICsJCQkJCSAgICAgUElOX1VTRVIgfCBQSU5fTk9F VklDVCkpKQo+ICAgCQkJcmV0dXJuIGZhbHNlOwo+ICAgCX0KPiAgIAo+IEBAIC01ODcsNyArNTg4 LDcgQEAgc3RhdGljIGlubGluZSBpbnQgdXNlX2NwdV9yZWxvYyhjb25zdCBzdHJ1Y3QgcmVsb2Nf Y2FjaGUgKmNhY2hlLAo+ICAgCQlvYmotPmNhY2hlX2xldmVsICE9IEk5MTVfQ0FDSEVfTk9ORSk7 Cj4gICB9Cj4gICAKPiAtc3RhdGljIGludCBlYl9yZXNlcnZlX3ZtYShjb25zdCBzdHJ1Y3QgaTkx NV9leGVjYnVmZmVyICplYiwKPiArc3RhdGljIGludCBlYl9yZXNlcnZlX3ZtYShzdHJ1Y3QgaTkx NV9leGVjYnVmZmVyICplYiwKPiAgIAkJCSAgc3RydWN0IGViX3ZtYSAqZXYsCj4gICAJCQkgIHU2 NCBwaW5fZmxhZ3MpCj4gICB7Cj4gQEAgLTYwMiw3ICs2MDMsNyBAQCBzdGF0aWMgaW50IGViX3Jl c2VydmVfdm1hKGNvbnN0IHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAo+ICAgCQkJcmV0dXJu IGVycjsKPiAgIAl9Cj4gICAKPiAtCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsCj4gKwllcnIgPSBp OTE1X3ZtYV9waW5fd3codm1hLCAmZWItPnd3LAo+ICAgCQkJICAgZW50cnktPnBhZF90b19zaXpl LCBlbnRyeS0+YWxpZ25tZW50LAo+ICAgCQkJICAgZWJfcGluX2ZsYWdzKGVudHJ5LCBldi0+Zmxh Z3MpIHwgcGluX2ZsYWdzKTsKPiAgIAlpZiAoZXJyKQo+IEBAIC0xMTMzLDkgKzExMzQsMTAgQEAg c3RhdGljIHZvaWQgKnJlbG9jX2ttYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK PiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgKnJlbG9jX2lvbWFwKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCj4gLQkJCSBzdHJ1Y3QgcmVsb2NfY2FjaGUgKmNhY2hlLAo+ICsJCQkg c3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCj4gICAJCQkgdW5zaWduZWQgbG9uZyBwYWdlKQo+ ICAgewo+ICsJc3RydWN0IHJlbG9jX2NhY2hlICpjYWNoZSA9ICZlYi0+cmVsb2NfY2FjaGU7Cj4g ICAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGNhY2hlX3RvX2dndHQoY2FjaGUpOwo+ICAgCXVu c2lnbmVkIGxvbmcgb2Zmc2V0Owo+ICAgCXZvaWQgKnZhZGRyOwo+IEBAIC0xMTU3LDEwICsxMTU5 LDEzIEBAIHN0YXRpYyB2b2lkICpyZWxvY19pb21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAo+ICAgCQlpZiAoZXJyKQo+ICAgCQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKPiAgIAo+ IC0JCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIE5VTEwsIDAsIDAsCj4gLQkJ CQkJICAgICAgIFBJTl9NQVBQQUJMRSB8Cj4gLQkJCQkJICAgICAgIFBJTl9OT05CTE9DSyAvKiBO T1dBUk4gKi8gfAo+IC0JCQkJCSAgICAgICBQSU5fTk9FVklDVCk7Cj4gKwkJdm1hID0gaTkxNV9n ZW1fb2JqZWN0X2dndHRfcGluX3d3KG9iaiwgJmViLT53dywgTlVMTCwgMCwgMCwKPiArCQkJCQkJ ICBQSU5fTUFQUEFCTEUgfAo+ICsJCQkJCQkgIFBJTl9OT05CTE9DSyAvKiBOT1dBUk4gKi8gfAo+ ICsJCQkJCQkgIFBJTl9OT0VWSUNUKTsKPiArCQlpZiAodm1hID09IEVSUl9QVFIoLUVERUFETEsp KQo+ICsJCQlyZXR1cm4gdm1hOwo+ICsKPiAgIAkJaWYgKElTX0VSUih2bWEpKSB7Cj4gICAJCQlt ZW1zZXQoJmNhY2hlLT5ub2RlLCAwLCBzaXplb2YoY2FjaGUtPm5vZGUpKTsKPiAgIAkJCW11dGV4 X2xvY2soJmdndHQtPnZtLm11dGV4KTsKPiBAQCAtMTE5Niw5ICsxMjAxLDEwIEBAIHN0YXRpYyB2 b2lkICpyZWxvY19pb21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgfQo+ ICAgCj4gICBzdGF0aWMgdm9pZCAqcmVsb2NfdmFkZHIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiAtCQkJIHN0cnVjdCByZWxvY19jYWNoZSAqY2FjaGUsCj4gKwkJCSBzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyICplYiwKPiAgIAkJCSB1bnNpZ25lZCBsb25nIHBhZ2UpCj4gICB7Cj4g KwlzdHJ1Y3QgcmVsb2NfY2FjaGUgKmNhY2hlID0gJmViLT5yZWxvY19jYWNoZTsKPiAgIAl2b2lk ICp2YWRkcjsKPiAgIAo+ICAgCWlmIChjYWNoZS0+cGFnZSA9PSBwYWdlKSB7Cj4gQEAgLTEyMDYs NyArMTIxMiw3IEBAIHN0YXRpYyB2b2lkICpyZWxvY192YWRkcihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAo+ICAgCX0gZWxzZSB7Cj4gICAJCXZhZGRyID0gTlVMTDsKPiAgIAkJaWYg KChjYWNoZS0+dmFkZHIgJiBLTUFQKSA9PSAwKQo+IC0JCQl2YWRkciA9IHJlbG9jX2lvbWFwKG9i aiwgY2FjaGUsIHBhZ2UpOwo+ICsJCQl2YWRkciA9IHJlbG9jX2lvbWFwKG9iaiwgZWIsIHBhZ2Up Owo+ICAgCQlpZiAoIXZhZGRyKQo+ICAgCQkJdmFkZHIgPSByZWxvY19rbWFwKG9iaiwgY2FjaGUs IHBhZ2UpOwo+ICAgCX0KPiBAQCAtMTI5Myw3ICsxMjk5LDcgQEAgc3RhdGljIGludCBfX3JlbG9j X2dwdV9hbGxvYyhzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwKPiAgIAkJZ290byBlcnJfdW5t YXA7Cj4gICAJfQo+ICAgCj4gLQllcnIgPSBpOTE1X3ZtYV9waW4oYmF0Y2gsIDAsIDAsIFBJTl9V U0VSIHwgUElOX05PTkJMT0NLKTsKPiArCWVyciA9IGk5MTVfdm1hX3Bpbl93dyhiYXRjaCwgJmVi LT53dywgMCwgMCwgUElOX1VTRVIgfCBQSU5fTk9OQkxPQ0spOwo+ICAgCWlmIChlcnIpCj4gICAJ CWdvdG8gZXJyX3VubWFwOwo+ICAgCj4gQEAgLTEzMTQsNyArMTMyMCw3IEBAIHN0YXRpYyBpbnQg X19yZWxvY19ncHVfYWxsb2Moc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCj4gICAJCQllYi0+ cmVsb2NfY29udGV4dCA9IGNlOwo+ICAgCQl9Cj4gICAKPiAtCQllcnIgPSBpbnRlbF9jb250ZXh0 X3BpbihjZSk7Cj4gKwkJZXJyID0gaW50ZWxfY29udGV4dF9waW5fd3coY2UsICZlYi0+d3cpOwo+ ICAgCQlpZiAoZXJyKQo+ICAgCQkJZ290byBlcnJfdW5waW47Cj4gICAKPiBAQCAtMTUzNyw4ICsx NTQzLDcgQEAgcmVsb2NhdGVfZW50cnkoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICAJCXZvaWQg KnZhZGRyOwo+ICAgCj4gICByZXBlYXQ6Cj4gLQkJdmFkZHIgPSByZWxvY192YWRkcih2bWEtPm9i aiwKPiAtCQkJCSAgICAmZWItPnJlbG9jX2NhY2hlLAo+ICsJCXZhZGRyID0gcmVsb2NfdmFkZHIo dm1hLT5vYmosIGViLAo+ICAgCQkJCSAgICBvZmZzZXQgPj4gUEFHRV9TSElGVCk7Cj4gICAJCWlm IChJU19FUlIodmFkZHIpKQo+ICAgCQkJcmV0dXJuIFBUUl9FUlIodmFkZHIpOwo+IEBAIC0xOTU0 LDYgKzE5NTksNyBAQCBzdGF0aWMgbm9pbmxpbmUgaW50IGViX3JlbG9jYXRlX3BhcnNlX3Nsb3co c3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCj4gICAJcnEgPSBlYl9waW5fZW5naW5lKGViLCBm YWxzZSk7Cj4gICAJaWYgKElTX0VSUihycSkpIHsKPiAgIAkJZXJyID0gUFRSX0VSUihycSk7Cj4g KwkJcnEgPSBOVUxMOwo+ICAgCQlnb3RvIGVycjsKPiAgIAl9Cj4gICAKPiBAQCAtMjIzOCw3ICsy MjQ0LDggQEAgc3RhdGljIGludCBpOTE1X3Jlc2V0X2dlbjdfc29sX29mZnNldHMoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgo+ IC1zaGFkb3dfYmF0Y2hfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gK3No YWRvd19iYXRjaF9waW4oc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCj4gKwkJIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCSBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKPiAgIAkJIHVuc2lnbmVkIGludCBmbGFncykKPiAgIHsKPiBAQCAtMjI0OSw3ICsyMjU2 LDcgQEAgc2hhZG93X2JhdGNoX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ ICAgCWlmIChJU19FUlIodm1hKSkKPiAgIAkJcmV0dXJuIHZtYTsKPiAgIAo+IC0JZXJyID0gaTkx NV92bWFfcGluKHZtYSwgMCwgMCwgZmxhZ3MpOwo+ICsJZXJyID0gaTkxNV92bWFfcGluX3d3KHZt YSwgJmViLT53dywgMCwgMCwgZmxhZ3MpOwo+ICAgCWlmIChlcnIpCj4gICAJCXJldHVybiBFUlJf UFRSKGVycik7Cj4gICAKPiBAQCAtMjQwMywxNiArMjQxMCwzMyBAQCBzdGF0aWMgaW50IGViX3Bh cnNlX3BpcGVsaW5lKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAo+ICAgCXJldHVybiBlcnI7 Cj4gICB9Cj4gICAKPiArc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqZWJfZGlzcGF0Y2hfc2VjdXJl KHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiArewo+ ICsJLyoKPiArCSAqIHNuYi9pdmIvdmx2IGNvbmZsYXRlIHRoZSAiYmF0Y2ggaW4gcHBndHQiIGJp dCB3aXRoIHRoZSAibm9uLXNlY3VyZQo+ICsJICogYmF0Y2giIGJpdC4gSGVuY2Ugd2UgbmVlZCB0 byBwaW4gc2VjdXJlIGJhdGNoZXMgaW50byB0aGUgZ2xvYmFsIGd0dC4KPiArCSAqIGhzdyBzaG91 bGQgaGF2ZSB0aGlzIGZpeGVkLCBidXQgYmR3IG11Y2tzIGl0IHVwIGFnYWluLiAqLwo+ICsJaWYg KGViLT5iYXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfU0VDVVJFKQo+ICsJCXJldHVybiBpOTE1 X2dlbV9vYmplY3RfZ2d0dF9waW5fd3codm1hLT5vYmosICZlYi0+d3csIE5VTEwsIDAsIDAsIDAp Owo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGludCBlYl9wYXJzZShz dHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IGViLT5pOTE1Owo+ICAgCXN0cnVjdCBpbnRlbF9ndF9idWZmZXJfcG9vbF9u b2RlICpwb29sID0gZWItPmJhdGNoX3Bvb2w7Cj4gLQlzdHJ1Y3QgaTkxNV92bWEgKnNoYWRvdywg KnRyYW1wb2xpbmU7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnNoYWRvdywgKnRyYW1wb2xpbmUsICpi YXRjaDsKPiAgIAl1bnNpZ25lZCBpbnQgbGVuOwo+ICAgCWludCBlcnI7Cj4gICAKPiAtCWlmICgh ZWJfdXNlX2NtZHBhcnNlcihlYikpCj4gLQkJcmV0dXJuIDA7Cj4gKwlpZiAoIWViX3VzZV9jbWRw YXJzZXIoZWIpKSB7Cj4gKwkJYmF0Y2ggPSBlYl9kaXNwYXRjaF9zZWN1cmUoZWIsIGViLT5iYXRj aC0+dm1hKTsKPiArCQlpZiAoSVNfRVJSKGJhdGNoKSkKPiArCQkJcmV0dXJuIFBUUl9FUlIoYmF0 Y2gpOwo+ICsKPiArCQlnb3RvIHNlY3VyZV9iYXRjaDsKPiArCX0KPiAgIAo+ICAgCWxlbiA9IGVi LT5iYXRjaF9sZW47Cj4gICAJaWYgKCFDTURQQVJTRVJfVVNFU19HR1RUKGViLT5pOTE1KSkgewo+ IEBAIC0yNDQwLDcgKzI0NjQsNyBAQCBzdGF0aWMgaW50IGViX3BhcnNlKHN0cnVjdCBpOTE1X2V4 ZWNidWZmZXIgKmViKQo+ICAgCWlmIChlcnIpCj4gICAJCWdvdG8gZXJyOwo+ICAgCj4gLQlzaGFk b3cgPSBzaGFkb3dfYmF0Y2hfcGluKHBvb2wtPm9iaiwgZWItPmNvbnRleHQtPnZtLCBQSU5fVVNF Uik7Cj4gKwlzaGFkb3cgPSBzaGFkb3dfYmF0Y2hfcGluKGViLCBwb29sLT5vYmosIGViLT5jb250 ZXh0LT52bSwgUElOX1VTRVIpOwo+ICAgCWlmIChJU19FUlIoc2hhZG93KSkgewo+ICAgCQllcnIg PSBQVFJfRVJSKHNoYWRvdyk7Cj4gICAJCWdvdG8gZXJyOwo+IEBAIC0yNDUyLDcgKzI0NzYsNyBA QCBzdGF0aWMgaW50IGViX3BhcnNlKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQo+ICAgCWlm IChDTURQQVJTRVJfVVNFU19HR1RUKGViLT5pOTE1KSkgewo+ICAgCQl0cmFtcG9saW5lID0gc2hh ZG93Owo+ICAgCj4gLQkJc2hhZG93ID0gc2hhZG93X2JhdGNoX3Bpbihwb29sLT5vYmosCj4gKwkJ c2hhZG93ID0gc2hhZG93X2JhdGNoX3BpbihlYiwgcG9vbC0+b2JqLAo+ICAgCQkJCQkgICZlYi0+ ZW5naW5lLT5ndC0+Z2d0dC0+dm0sCj4gICAJCQkJCSAgUElOX0dMT0JBTCk7Cj4gICAJCWlmIChJ U19FUlIoc2hhZG93KSkgewo+IEBAIC0yNDY1LDE5ICsyNDg5LDM0IEBAIHN0YXRpYyBpbnQgZWJf cGFyc2Uoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIpCj4gICAJCWViLT5iYXRjaF9mbGFncyB8 PSBJOTE1X0RJU1BBVENIX1NFQ1VSRTsKPiAgIAl9Cj4gICAKPiArCWJhdGNoID0gZWJfZGlzcGF0 Y2hfc2VjdXJlKGViLCBzaGFkb3cpOwo+ICsJaWYgKElTX0VSUihiYXRjaCkpIHsKPiArCQllcnIg PSBQVFJfRVJSKGJhdGNoKTsKPiArCQlnb3RvIGVycl90cmFtcG9saW5lOwo+ICsJfQo+ICsKPiAg IAllcnIgPSBlYl9wYXJzZV9waXBlbGluZShlYiwgc2hhZG93LCB0cmFtcG9saW5lKTsKPiAgIAlp ZiAoZXJyKQo+IC0JCWdvdG8gZXJyX3RyYW1wb2xpbmU7Cj4gKwkJZ290byBlcnJfdW5waW5fYmF0 Y2g7Cj4gICAKPiAtCWViLT52bWFbZWItPmJ1ZmZlcl9jb3VudF0udm1hID0gaTkxNV92bWFfZ2V0 KHNoYWRvdyk7Cj4gLQllYi0+dm1hW2ViLT5idWZmZXJfY291bnRdLmZsYWdzID0gX19FWEVDX09C SkVDVF9IQVNfUElOOwo+ICAgCWViLT5iYXRjaCA9ICZlYi0+dm1hW2ViLT5idWZmZXJfY291bnQr K107Cj4gKwllYi0+YmF0Y2gtPnZtYSA9IGk5MTVfdm1hX2dldChzaGFkb3cpOwo+ICsJZWItPmJh dGNoLT5mbGFncyA9IF9fRVhFQ19PQkpFQ1RfSEFTX1BJTjsKPiAgIAo+ICAgCWViLT50cmFtcG9s aW5lID0gdHJhbXBvbGluZTsKPiAgIAllYi0+YmF0Y2hfc3RhcnRfb2Zmc2V0ID0gMDsKPiAgIAo+ ICtzZWN1cmVfYmF0Y2g6Cj4gKwlpZiAoYmF0Y2gpIHsKPiArCQllYi0+YmF0Y2ggPSAmZWItPnZt YVtlYi0+YnVmZmVyX2NvdW50KytdOwo+ICsJCWViLT5iYXRjaC0+ZmxhZ3MgPSBfX0VYRUNfT0JK RUNUX0hBU19QSU47Cj4gKwkJZWItPmJhdGNoLT52bWEgPSBpOTE1X3ZtYV9nZXQoYmF0Y2gpOwo+ ICsJfQo+ICAgCXJldHVybiAwOwo+ICAgCj4gK2Vycl91bnBpbl9iYXRjaDoKPiArCWlmIChiYXRj aCkKPiArCQlpOTE1X3ZtYV91bnBpbihiYXRjaCk7Cj4gICBlcnJfdHJhbXBvbGluZToKPiAgIAlp ZiAodHJhbXBvbGluZSkKPiAgIAkJaTkxNV92bWFfdW5waW4odHJhbXBvbGluZSk7Cj4gQEAgLTI2 MTksNyArMjY1OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICplYl9waW5fZW5naW5l KHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLCBib29sIHRocm90Cj4gICAJICogR0dUVCBzcGFj ZSwgc28gZG8gdGhpcyBmaXJzdCBiZWZvcmUgd2UgcmVzZXJ2ZSBhIHNlcW5vIGZvcgo+ICAgCSAq IG91cnNlbHZlcy4KPiAgIAkgKi8KPiAtCWVyciA9IGludGVsX2NvbnRleHRfcGluKGNlKTsKPiAr CWVyciA9IGludGVsX2NvbnRleHRfcGluX3d3KGNlLCAmZWItPnd3KTsKPiAgIAlpZiAoZXJyKQo+ ICAgCQlyZXR1cm4gRVJSX1BUUihlcnIpOwo+ICAgCj4gQEAgLTMyMzcsMzMgKzMyNzYsNyBAQCBp OTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAKPiAgIAl3 d19hY3F1aXJlX2RvbmUoJmViLnd3LmN0eCk7Cj4gICAKPiAtCS8qCj4gLQkgKiBzbmIvaXZiL3Zs diBjb25mbGF0ZSB0aGUgImJhdGNoIGluIHBwZ3R0IiBiaXQgd2l0aCB0aGUgIm5vbi1zZWN1cmUK PiAtCSAqIGJhdGNoIiBiaXQuIEhlbmNlIHdlIG5lZWQgdG8gcGluIHNlY3VyZSBiYXRjaGVzIGlu dG8gdGhlIGdsb2JhbCBndHQuCj4gLQkgKiBoc3cgc2hvdWxkIGhhdmUgdGhpcyBmaXhlZCwgYnV0 IGJkdyBtdWNrcyBpdCB1cCBhZ2Fpbi4gKi8KPiAtCWlmIChlYi5iYXRjaF9mbGFncyAmIEk5MTVf RElTUEFUQ0hfU0VDVVJFKSB7Cj4gLQkJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gLQo+IC0JCS8q Cj4gLQkJICogU28gb24gZmlyc3QgZ2xhbmNlIGl0IGxvb2tzIGZyZWFreSB0aGF0IHdlIHBpbiB0 aGUgYmF0Y2ggaGVyZQo+IC0JCSAqIG91dHNpZGUgb2YgdGhlIHJlc2VydmF0aW9uIGxvb3AuIEJ1 dDoKPiAtCQkgKiAtIFRoZSBiYXRjaCBpcyBhbHJlYWR5IHBpbm5lZCBpbnRvIHRoZSByZWxldmFu dCBwcGd0dCwgc28gd2UKPiAtCQkgKiAgIGFscmVhZHkgaGF2ZSB0aGUgYmFja2luZyBzdG9yYWdl IGZ1bGx5IGFsbG9jYXRlZC4KPiAtCQkgKiAtIE5vIG90aGVyIEJPIHVzZXMgdGhlIGdsb2JhbCBn dHQgKHdlbGwgY29udGV4dHMsIGJ1dCBtZWgpLAo+IC0JCSAqICAgc28gd2UgZG9uJ3QgcmVhbGx5 IGhhdmUgaXNzdWVzIHdpdGggbXVsdGlwbGUgb2JqZWN0cyBub3QKPiAtCQkgKiAgIGZpdHRpbmcg ZHVlIHRvIGZyYWdtZW50YXRpb24uCj4gLQkJICogU28gdGhpcyBpcyBhY3R1YWxseSBzYWZlLgo+ IC0JCSAqLwo+IC0JCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihlYi5iYXRjaC0+dm1h LT5vYmosIE5VTEwsIDAsIDAsIDApOwo+IC0JCWlmIChJU19FUlIodm1hKSkgewo+IC0JCQllcnIg PSBQVFJfRVJSKHZtYSk7Cj4gLQkJCWdvdG8gZXJyX3ZtYTsKPiAtCQl9Cj4gLQo+IC0JCWJhdGNo ID0gdm1hOwo+IC0JfSBlbHNlIHsKPiAtCQliYXRjaCA9IGViLmJhdGNoLT52bWE7Cj4gLQl9Cj4g KwliYXRjaCA9IGViLmJhdGNoLT52bWE7Cj4gICAKPiAgIAkvKiBBbGwgR1BVIHJlbG9jYXRpb24g YmF0Y2hlcyBtdXN0IGJlIHN1Ym1pdHRlZCBwcmlvciB0byB0aGUgdXNlciBycSAqLwo+ICAgCUdF TV9CVUdfT04oZWIucmVsb2NfY2FjaGUucnEpOwo+IEBAIC0zMjcyLDcgKzMyODUsNyBAQCBpOTE1 X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJZWIucmVxdWVz dCA9IGk5MTVfcmVxdWVzdF9jcmVhdGUoZWIuY29udGV4dCk7Cj4gICAJaWYgKElTX0VSUihlYi5y ZXF1ZXN0KSkgewo+ICAgCQllcnIgPSBQVFJfRVJSKGViLnJlcXVlc3QpOwo+IC0JCWdvdG8gZXJy X2JhdGNoX3VucGluOwo+ICsJCWdvdG8gZXJyX3ZtYTsKPiAgIAl9Cj4gICAKPiAgIAlpZiAoaW5f ZmVuY2UpIHsKPiBAQCAtMzMzMyw5ICszMzQ2LDYgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCX0KPiAgIAlpOTE1X3JlcXVlc3RfcHV0KGViLnJl cXVlc3QpOwo+ICAgCj4gLWVycl9iYXRjaF91bnBpbjoKPiAtCWlmIChlYi5iYXRjaF9mbGFncyAm IEk5MTVfRElTUEFUQ0hfU0VDVVJFKQo+IC0JCWk5MTVfdm1hX3VucGluKGJhdGNoKTsKPiAgIGVy cl92bWE6Cj4gICAJZWJfcmVsZWFzZV92bWFzKCZlYiwgdHJ1ZSk7Cj4gICAJaWYgKGViLnRyYW1w b2xpbmUpCj4gQEAgLTM0MjMsNyArMzQzMyw5IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkvKiBDb3B5IGluIHRoZSBl eGVjIGxpc3QgZnJvbSB1c2VybGFuZCAqLwo+ICAgCWV4ZWNfbGlzdCA9IGt2bWFsbG9jX2FycmF5 KGNvdW50LCBzaXplb2YoKmV4ZWNfbGlzdCksCj4gICAJCQkJICAgX19HRlBfTk9XQVJOIHwgR0ZQ X0tFUk5FTCk7Cj4gLQlleGVjMl9saXN0ID0ga3ZtYWxsb2NfYXJyYXkoY291bnQgKyAxLCBlYl9l bGVtZW50X3NpemUoKSwKPiArCj4gKwkvKiBBbGxvY2F0ZSBleHRyYSBzbG90cyBmb3IgdXNlIGJ5 IHRoZSBjb21tYW5kIHBhcnNlciAqLwo+ICsJZXhlYzJfbGlzdCA9IGt2bWFsbG9jX2FycmF5KGNv dW50ICsgMiwgZWJfZWxlbWVudF9zaXplKCksCj4gICAJCQkJICAgIF9fR0ZQX05PV0FSTiB8IEdG UF9LRVJORUwpOwo+ICAgCWlmIChleGVjX2xpc3QgPT0gTlVMTCB8fCBleGVjMl9saXN0ID09IE5V TEwpIHsKPiAgIAkJZHJtX2RiZygmaTkxNS0+ZHJtLAo+IEBAIC0zNTAwLDggKzM1MTIsOCBAQCBp OTE1X2dlbV9leGVjYnVmZmVyMl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+ICAgCWlmIChlcnIpCj4gICAJCXJldHVybiBlcnI7Cj4gICAKPiAtCS8qIEFsbG9jYXRl IGFuIGV4dHJhIHNsb3QgZm9yIHVzZSBieSB0aGUgY29tbWFuZCBwYXJzZXIgKi8KPiAtCWV4ZWMy X2xpc3QgPSBrdm1hbGxvY19hcnJheShjb3VudCArIDEsIGViX2VsZW1lbnRfc2l6ZSgpLAo+ICsJ LyogQWxsb2NhdGUgZXh0cmEgc2xvdHMgZm9yIHVzZSBieSB0aGUgY29tbWFuZCBwYXJzZXIgKi8K PiArCWV4ZWMyX2xpc3QgPSBrdm1hbGxvY19hcnJheShjb3VudCArIDIsIGViX2VsZW1lbnRfc2l6 ZSgpLAo+ICAgCQkJCSAgICBfX0dGUF9OT1dBUk4gfCBHRlBfS0VSTkVMKTsKPiAgIAlpZiAoZXhl YzJfbGlzdCA9PSBOVUxMKSB7Cj4gICAJCWRybV9kYmcoJmk5MTUtPmRybSwgIkZhaWxlZCB0byBh bGxvY2F0ZSBleGVjIGxpc3QgZm9yICV6ZCBidWZmZXJzXG4iLAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4g aW5kZXggNTYzODM5Y2JhZjFjLi5lMWQ1MGE1YTE0NzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ IEBAIC0zNiw3ICszNiw3IEBAIHN0YXRpYyBpbnQgX19pZ3RfZ3B1X3JlbG9jKHN0cnVjdCBpOTE1 X2V4ZWNidWZmZXIgKmViLAo+ICAgCWlmIChlcnIpCj4gICAJCXJldHVybiBlcnI7Cj4gICAKPiAt CWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJTl9VU0VSIHwgUElOX0hJR0gpOwo+ICsJ ZXJyID0gaTkxNV92bWFfcGluX3d3KHZtYSwgJmViLT53dywgMCwgMCwgUElOX1VTRVIgfCBQSU5f SElHSCk7Cj4gICAJaWYgKGVycikKPiAgIAkJcmV0dXJuIGVycjsKPiAgIAo+IEBAIC0xMzksNyAr MTM5LDcgQEAgc3RhdGljIGludCBpZ3RfZ3B1X3JlbG9jKHZvaWQgKmFyZykKPiAgIAo+ICAgCQlp OTE1X2dlbV93d19jdHhfaW5pdCgmZWIud3csIGZhbHNlKTsKPiAgIHJldHJ5Ogo+IC0JCWVyciA9 IGludGVsX2NvbnRleHRfcGluKGViLmNvbnRleHQpOwo+ICsJCWVyciA9IGludGVsX2NvbnRleHRf cGluX3d3KGViLmNvbnRleHQsICZlYi53dyk7Cj4gICAJCWlmICghZXJyKSB7Cj4gICAJCQllcnIg PSBfX2lndF9ncHVfcmVsb2MoJmViLCBzY3JhdGNoKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW42X3BwZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9nZW42X3BwZ3R0LmMKPiBpbmRleCA3ZTVhODZiNzc0YTcuLmZkMGQyNGQyODc2MyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW42X3BwZ3R0LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW42X3BwZ3R0LmMKPiBAQCAtMzY4LDcgKzM2OCw3IEBAIHN0 YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKnBkX3ZtYV9jcmVhdGUoc3RydWN0IGdlbjZfcHBndHQgKnBw Z3R0LCBpbnQgc2l6ZSkKPiAgIAlyZXR1cm4gdm1hOwo+ICAgfQo+ICAgCj4gLWludCBnZW42X3Bw Z3R0X3BpbihzdHJ1Y3QgaTkxNV9wcGd0dCAqYmFzZSkKPiAraW50IGdlbjZfcHBndHRfcGluKHN0 cnVjdCBpOTE1X3BwZ3R0ICpiYXNlLCBzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dykKPiAgIHsK PiAgIAlzdHJ1Y3QgZ2VuNl9wcGd0dCAqcHBndHQgPSB0b19nZW42X3BwZ3R0KGJhc2UpOwo+ICAg CWludCBlcnI7Cj4gQEAgLTM5NCw3ICszOTQsNyBAQCBpbnQgZ2VuNl9wcGd0dF9waW4oc3RydWN0 IGk5MTVfcHBndHQgKmJhc2UpCj4gICAJICovCj4gICAJZXJyID0gMDsKPiAgIAlpZiAoIWF0b21p Y19yZWFkKCZwcGd0dC0+cGluX2NvdW50KSkKPiAtCQllcnIgPSBpOTE1X2dndHRfcGluKHBwZ3R0 LT52bWEsIEdFTjZfUERfQUxJR04sIFBJTl9ISUdIKTsKPiArCQllcnIgPSBpOTE1X2dndHRfcGlu KHBwZ3R0LT52bWEsIHd3LCBHRU42X1BEX0FMSUdOLCBQSU5fSElHSCk7Cj4gICAJaWYgKCFlcnIp Cj4gICAJCWF0b21pY19pbmMoJnBwZ3R0LT5waW5fY291bnQpOwo+ICAgCW11dGV4X3VubG9jaygm cHBndHQtPnBpbl9tdXRleCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2dlbjZfcHBndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjZfcHBndHQuaAo+IGlu ZGV4IDcyNDk2NzJlNTgwMi4uMzM1NzIyOGYzMzA0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2dlbjZfcHBndHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2dlbjZfcHBndHQuaAo+IEBAIC04LDYgKzgsOCBAQAo+ICAgCj4gICAjaW5jbHVkZSAiaW50ZWxf Z3R0LmgiCj4gICAKPiArc3RydWN0IGk5MTVfZ2VtX3d3X2N0eDsKPiArCj4gICBzdHJ1Y3QgZ2Vu Nl9wcGd0dCB7Cj4gICAJc3RydWN0IGk5MTVfcHBndHQgYmFzZTsKPiAgIAo+IEBAIC02Nyw3ICs2 OSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGdlbjZfcHBndHQgKnRvX2dlbjZfcHBndHQoc3Ry dWN0IGk5MTVfcHBndHQgKmJhc2UpCj4gICAJCSAgICAgKHB0ID0gaTkxNV9wdF9lbnRyeShwZCwg aXRlciksIHRydWUpOwkJXAo+ICAgCSAgICAgKytpdGVyKQo+ICAgCj4gLWludCBnZW42X3BwZ3R0 X3BpbihzdHJ1Y3QgaTkxNV9wcGd0dCAqYmFzZSk7Cj4gK2ludCBnZW42X3BwZ3R0X3BpbihzdHJ1 Y3QgaTkxNV9wcGd0dCAqYmFzZSwgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cpOwo+ICAgdm9p ZCBnZW42X3BwZ3R0X3VucGluKHN0cnVjdCBpOTE1X3BwZ3R0ICpiYXNlKTsKPiAgIHZvaWQgZ2Vu Nl9wcGd0dF91bnBpbl9hbGwoc3RydWN0IGk5MTVfcHBndHQgKmJhc2UpOwo+ICAgdm9pZCBnZW42 X3BwZ3R0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfY29udGV4dC5jCj4gaW5kZXggZWZlOWE3YTg5ZWRlLi5jMDVlZjIxM2JkYzIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4gQEAgLTkzLDEyICs5 MywxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb250ZXh0X2FjdGl2ZV9yZWxlYXNlKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSkKPiAgIAlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZjZS0+YWN0aXZlKTsK PiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IF9fY29udGV4dF9waW5fc3RhdGUoc3RydWN0IGk5MTVf dm1hICp2bWEpCj4gK3N0YXRpYyBpbnQgX19jb250ZXh0X3Bpbl9zdGF0ZShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cpCj4gICB7Cj4gICAJdW5zaWduZWQg aW50IGJpYXMgPSBpOTE1X2dndHRfcGluX2JpYXModm1hKSB8IFBJTl9PRkZTRVRfQklBUzsKPiAg IAlpbnQgZXJyOwo+ICAgCj4gLQllcnIgPSBpOTE1X2dndHRfcGluKHZtYSwgMCwgYmlhcyB8IFBJ Tl9ISUdIKTsKPiArCWVyciA9IGk5MTVfZ2d0dF9waW4odm1hLCB3dywgMCwgYmlhcyB8IFBJTl9I SUdIKTsKPiAgIAlpZiAoZXJyKQo+ICAgCQlyZXR1cm4gZXJyOwo+ICAgCj4gQEAgLTEyNywxMSAr MTI3LDEyIEBAIHN0YXRpYyB2b2lkIF9fY29udGV4dF91bnBpbl9zdGF0ZShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSkKPiAgIAlfX2k5MTVfdm1hX3VucGluKHZtYSk7Cj4gICB9Cj4gICAKPiAtc3RhdGlj IGludCBfX3JpbmdfYWN0aXZlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQo+ICtzdGF0aWMgaW50 IF9fcmluZ19hY3RpdmUoc3RydWN0IGludGVsX3JpbmcgKnJpbmcsCj4gKwkJCSBzdHJ1Y3QgaTkx NV9nZW1fd3dfY3R4ICp3dykKPiAgIHsKPiAgIAlpbnQgZXJyOwo+ICAgCj4gLQllcnIgPSBpbnRl bF9yaW5nX3BpbihyaW5nKTsKPiArCWVyciA9IGludGVsX3JpbmdfcGluKHJpbmcsIHd3KTsKPiAg IAlpZiAoZXJyKQo+ICAgCQlyZXR1cm4gZXJyOwo+ICAgCj4gQEAgLTE1MiwyNCArMTUzLDI1IEBA IHN0YXRpYyB2b2lkIF9fcmluZ19yZXRpcmUoc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCj4gICAJ aW50ZWxfcmluZ191bnBpbihyaW5nKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IGludGVsX2Nv bnRleHRfcHJlX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gK3N0YXRpYyBpbnQgaW50 ZWxfY29udGV4dF9wcmVfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKPiArCQkJCSBzdHJ1 Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dykKPiAgIHsKPiAgIAlpbnQgZXJyOwo+ICAgCj4gICAJQ0Vf VFJBQ0UoY2UsICJhY3RpdmVcbiIpOwo+ICAgCj4gLQllcnIgPSBfX3JpbmdfYWN0aXZlKGNlLT5y aW5nKTsKPiArCWVyciA9IF9fcmluZ19hY3RpdmUoY2UtPnJpbmcsIHd3KTsKPiAgIAlpZiAoZXJy KQo+ICAgCQlyZXR1cm4gZXJyOwo+ICAgCj4gLQllcnIgPSBpbnRlbF90aW1lbGluZV9waW4oY2Ut PnRpbWVsaW5lKTsKPiArCWVyciA9IGludGVsX3RpbWVsaW5lX3BpbihjZS0+dGltZWxpbmUsIHd3 KTsKPiAgIAlpZiAoZXJyKQo+ICAgCQlnb3RvIGVycl9yaW5nOwo+ICAgCj4gICAJaWYgKCFjZS0+ c3RhdGUpCj4gICAJCXJldHVybiAwOwo+ICAgCj4gLQllcnIgPSBfX2NvbnRleHRfcGluX3N0YXRl KGNlLT5zdGF0ZSk7Cj4gKwllcnIgPSBfX2NvbnRleHRfcGluX3N0YXRlKGNlLT5zdGF0ZSwgd3cp Owo+ICAgCWlmIChlcnIpCj4gICAJCWdvdG8gZXJyX3RpbWVsaW5lOwo+ICAgCj4gQEAgLTE5Miw3 ICsxOTQsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb250ZXh0X3Bvc3RfdW5waW4oc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlKQo+ICAgCV9fcmluZ19yZXRpcmUoY2UtPnJpbmcpOwo+ICAgfQo+ICAg Cj4gLWludCBfX2ludGVsX2NvbnRleHRfZG9fcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkK PiAraW50IF9faW50ZWxfY29udGV4dF9kb19waW5fd3coc3RydWN0IGludGVsX2NvbnRleHQgKmNl LAo+ICsJCQkgICAgICBzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dykKPiAgIHsKPiAgIAlib29s IGhhbmRvZmYgPSBmYWxzZTsKPiAgIAl2b2lkICp2YWRkcjsKPiBAQCAtMjA5LDcgKzIxMiwxNCBA QCBpbnQgX19pbnRlbF9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4g ICAJICogcmVmY291bnQgZm9yIF9faW50ZWxfY29udGV4dF9hY3RpdmUoKSwgd2hpY2ggcHJldmVu dCBhIGxvY2sKPiAgIAkgKiBpbnZlcnNpb24gb2YgY2UtPnBpbl9tdXRleCB2cyBkbWFfcmVzdl9s b2NrKCkuCj4gICAJICovCj4gLQllcnIgPSBpbnRlbF9jb250ZXh0X3ByZV9waW4oY2UpOwo+ICsK PiArCWVyciA9IGk5MTVfZ2VtX29iamVjdF9sb2NrKGNlLT50aW1lbGluZS0+aHdzcF9nZ3R0LT5v YmosIHd3KTsKClNpbmNlIGh3c3BfZ2d0dC0+b2JqIGlzIGEgc2hhcmVkIGdlbSBvYmplY3QgZHVl IHRvIHN1Yi1hbGxvY2F0aW9uLCAKaG9sZGluZyB0aGlzIGxvY2sgYWNyb3NzIGV4ZWNidWYgdW5u ZWNlc3NhcmlseSBzdGFsbHMgc3VibWlzc2lvbiBvZiAKb3RoZXIgY2xpZW50cyB0aGF0IHNoYXJl IHRoZSBzYW1lIHN1YmFsbG9jYXRpb24gc2xhYi4gU2luY2UgaXQncyBwaW5uZWQgCnVzaW5nIGEg cGluLWNvdW50IHJhdGhlciB0aGFuIHVzaW5nIGEgZG1hLWZlbmNlLCBpdCBzaG91bGQgYmUgY29t cGxldGVseSAKc2FmZSB0byBkcm9wIHRoaXMgbG9jayBiZWZvcmUgcmV0dXJuaW5nIHplcm8gZnJv bSB0aGlzIGZ1bmN0aW9uLiBIb3dldmVyIAppZiB3ZSBpbiB0aGUgZnV0dXJlIG1vdmUgdG8gcHJv dGVjdGluZyB0aGUgcmVzaWRlbmN5IHdpdGggdGhlIHJlcXVlc3QgCmRtYS1mZW5jZSB3ZSBjYW4g bm8gbG9uZ2VyIGRyb3AgaXQgaGVyZSwgc2luY2Ugd2UgZG9uJ3QgaGF2ZSB0aGF0IApkbWEtZmVu Y2UgeWV0LgoKQW4gYWx0ZXJuYXRpdmUgYnJvdWdodCB1cCBieSBEYW5pZWwgd291bGQgYmUgdG8g cmV2ZXJ0IHRoZSBjb21taXQgdGhhdCAKaW50cm9kdWNlcyB0aGUgaHdzcCBjYWNoZWxpbmUgc3Vi YWxsb2NhdGlvbi4KCj4gKwlpZiAoIWVyciAmJiBjZS0+cmluZy0+dm1hLT5vYmopCj4gKwkJZXJy ID0gaTkxNV9nZW1fb2JqZWN0X2xvY2soY2UtPnJpbmctPnZtYS0+b2JqLCB3dyk7Cj4gKwlpZiAo IWVyciAmJiBjZS0+c3RhdGUpCj4gKwkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X2xvY2soY2UtPnN0 YXRlLT5vYmosIHd3KTsKCkNvdWxkIHRoZXNlIHRocmVlIGxvY2tzIGJlIG1hZGUgaW50ZXJydXB0 aWJsZT8KCgo+ICtpbnQgaTkxNV9nZ3R0X3BpbihzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgc3RydWN0 IGk5MTVfZ2VtX3d3X2N0eCAqd3csCj4gKwkJICB1MzIgYWxpZ24sIHVuc2lnbmVkIGludCBmbGFn cyk7Cj4gICAKPiAgIHN0YXRpYyBpbmxpbmUgaW50IGk5MTVfdm1hX3Bpbl9jb3VudChjb25zdCBz dHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIHsKCi9UaG9tYXMKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK