From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 1/3] drm/i915: Invalidate the guc ggtt TLB upon insertion Date: Wed, 11 Jan 2017 15:51:00 +0000 Message-ID: <13c176a7-ec94-2d3a-a36b-203ab0d204ff@linux.intel.com> References: <20170111131304.21974-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 407526E961 for ; Wed, 11 Jan 2017 15:51:04 +0000 (UTC) In-Reply-To: <20170111131304.21974-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org Ck9uIDExLzAxLzIwMTcgMTM6MTMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBNb3ZlIHRoZSBHdUMg aW52YWxpZGF0aW9uIG9mIGl0cyBnZ3R0IFRMQiB0byB3aGVyZSB3ZSBwZXJmb3JtIHRoZSBnZ3R0 Cj4gbW9kaWZpY2F0aW9uIHJhdGhlciB0aGFuIHByb2xpZmVyYXRlIGl0IGludG8gYWxsIHRoZSBj YWxsZXJzIG9mIHRoZQo+IGluc2VydCAod2hpY2ggbWF5IG9yIG1heSBub3QgaW4gZmFjdCBoYXZl IHRvIGRvIHRoZSBpbnNlcnRpb24pLgo+Cj4gdjI6IEp1c3QgZG8gdGhlIGd1YyBpbnZhbGlkYXRl IHVuY29uZGl0aW9uYWxseSwgKGFmYWljdCkgaXQgaGFzIG5vIGltcGFjdAo+IHdpdGhvdXQgdGhl IGd1YyBsb2FkZWQgb24gZ2VuOCsKPiB2MzogQ29uZGl0aW9uYWxseSBpbnZhbGlkYXRlIHRoZSBn dWMgLSBqdXN0IGluIGNhc2UgdGhhdCByZWdpc3RlciBoYXMKPiBub3QgYmVlbiB2YWxpZGF0ZWQg Zm9yIG90aGVyIG1vZGVzLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBs aW51eC5pbnRlbC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwu Y2g+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8 IDc4ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuaCAgICAgICAgfCAgMyArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAgMyAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfbG9hZGVyLmMgICAgfCAgNyArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgICAgICAgICAgIHwgIDYgLS0tCj4gIDUgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9u cygrKSwgNDAgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ IGluZGV4IDBlZDk5YWRmZDBkYS4uZWQxMjBhMWU3ZjkzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKPiBAQCAtMTEwLDYgKzExMCwzMCBAQCBjb25zdCBzdHJ1Y3QgaTkxNV9n Z3R0X3ZpZXcgaTkxNV9nZ3R0X3ZpZXdfcm90YXRlZCA9IHsKPiAgCS50eXBlID0gSTkxNV9HR1RU X1ZJRVdfUk9UQVRFRCwKPiAgfTsKPgo+ICtzdGF0aWMgdm9pZCBnZW42X2dndHRfaW52YWxpZGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCS8qIE5vdGUgdGhh dCBhcyBhbiB1bmNhY2hlZCBtbWlvIHdyaXRlLCB0aGlzIHNob3VsZCBmbHVzaCB0aGUKPiArCSAq IFdDQiBvZiB0aGUgd3JpdGVzIGludG8gdGhlIEdHVFQgYmVmb3JlIGl0IHRyaWdnZXJzIHRoZSBp bnZhbGlkYXRlLgo+ICsJICovCj4gKwlJOTE1X1dSSVRFKEdGWF9GTFNIX0NOVExfR0VONiwgR0ZY X0ZMU0hfQ05UTF9FTik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGd1Y19nZ3R0X2ludmFsaWRh dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlnZW42X2dndHRf aW52YWxpZGF0ZShkZXZfcHJpdik7Cj4gKwlJOTE1X1dSSVRFKEdFTjhfR1RDUiwgR0VOOF9HVENS X0lOVkFMSURBVEUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBnbWNoX2dndHRfaW52YWxpZGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWludGVsX2d0dF9j aGlwc2V0X2ZsdXNoKCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dndHRf aW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiArewo+ICsJaTkxNS0+ Z2d0dC5pbnZhbGlkYXRlKGk5MTUpOwo+ICt9Cj4gKwo+ICBpbnQgaW50ZWxfc2FuaXRpemVfZW5h YmxlX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAgICAg IAlpbnQgZW5hYmxlX3BwZ3R0KQo+ICB7Cj4gQEAgLTIzMDcsMTYgKzIzMzEsNiBAQCB2b2lkIGk5 MTVfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAkJUE9TVElOR19SRUFEKFJJTkdfRkFVTFRfUkVHKGRldl9wcml2LT5lbmdpbmVbUkNT XSkpOwo+ICB9Cj4KPiAtc3RhdGljIHZvaWQgaTkxNV9nZ3R0X2ZsdXNoKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAtewo+IC0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5n ZW4gPCA2KSB7Cj4gLQkJaW50ZWxfZ3R0X2NoaXBzZXRfZmx1c2goKTsKPiAtCX0gZWxzZSB7Cj4g LQkJSTkxNV9XUklURShHRlhfRkxTSF9DTlRMX0dFTjYsIEdGWF9GTFNIX0NOVExfRU4pOwo+IC0J CVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+IC0JfQo+IC19Cj4gLQo+ICB2b2lk IGk5MTVfZ2VtX3N1c3BlbmRfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgewo+ICAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0 dDsKPiBAQCAtMjMzMSw3ICsyMzQ1LDcgQEAgdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2d0dF9tYXBw aW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4KPiAgCWdndHQtPmJhc2Uu Y2xlYXJfcmFuZ2UoJmdndHQtPmJhc2UsIGdndHQtPmJhc2Uuc3RhcnQsIGdndHQtPmJhc2UudG90 YWwpOwo+Cj4gLQlpOTE1X2dndHRfZmx1c2goZGV2X3ByaXYpOwo+ICsJaTkxNV9nZ3R0X2ludmFs aWRhdGUoZGV2X3ByaXYpOwo+ICB9Cj4KPiAgaW50IGk5MTVfZ2VtX2d0dF9wcmVwYXJlX3BhZ2Vz KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gQEAgLTIzNzAsMTUgKzIzODQsMTMg QEAgc3RhdGljIHZvaWQgZ2VuOF9nZ3R0X2luc2VydF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAo+ICAJCQkJICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsCj4gIAkJCQkg IHUzMiB1bnVzZWQpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHZtLT5pOTE1Owo+ICsJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGk5MTVfdm1fdG9fZ2d0dCh2 bSk7Cj4gIAlnZW44X3B0ZV90IF9faW9tZW0gKnB0ZSA9Cj4gLQkJKGdlbjhfcHRlX3QgX19pb21l bSAqKWRldl9wcml2LT5nZ3R0LmdzbSArCj4gLQkJKG9mZnNldCA+PiBQQUdFX1NISUZUKTsKPiAr CQkoZ2VuOF9wdGVfdCBfX2lvbWVtICopZ2d0dC0+Z3NtICsgKG9mZnNldCA+PiBQQUdFX1NISUZU KTsKPgo+ICAJZ2VuOF9zZXRfcHRlKHB0ZSwgZ2VuOF9wdGVfZW5jb2RlKGFkZHIsIGxldmVsKSk7 Cj4KPiAtCUk5MTVfV1JJVEUoR0ZYX0ZMU0hfQ05UTF9HRU42LCBHRlhfRkxTSF9DTlRMX0VOKTsK PiAtCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+ICsJZ2d0dC0+aW52YWxpZGF0 ZSh2bS0+aTkxNSk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2VudHJp ZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gQEAgLTIzODYsNyArMjM5OCw2IEBA IHN0YXRpYyB2b2lkIGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSwKPiAgCQkJCSAgICAgdWludDY0X3Qgc3RhcnQsCj4gIAkJCQkgICAgIGVudW0g aTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwgdTMyIHVudXNlZCkKPiAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdm0tPmk5MTU7Cj4gIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKPiAgCXN0cnVjdCBzZ3RfaXRlciBzZ3RfaXRlcjsK PiAgCWdlbjhfcHRlX3QgX19pb21lbSAqZ3R0X2VudHJpZXM7Cj4gQEAgLTI0MTUsOCArMjQyNiw3 IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKPiAgCSAqIHdhbnQgdG8gZmx1c2ggdGhlIFRMQnMgb25seSBhZnRlciB3 ZSdyZSBjZXJ0YWluIGFsbCB0aGUgUFRFIHVwZGF0ZXMKPiAgCSAqIGhhdmUgZmluaXNoZWQuCj4g IAkgKi8KPiAtCUk5MTVfV1JJVEUoR0ZYX0ZMU0hfQ05UTF9HRU42LCBHRlhfRkxTSF9DTlRMX0VO KTsKPiAtCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+ICsJZ2d0dC0+aW52YWxp ZGF0ZSh2bS0+aTkxNSk7Cj4gIH0KPgo+ICBzdHJ1Y3QgaW5zZXJ0X2VudHJpZXMgewo+IEBAIC0y NDUxLDE1ICsyNDYxLDEzIEBAIHN0YXRpYyB2b2lkIGdlbjZfZ2d0dF9pbnNlcnRfcGFnZShzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCQkJCSAgZW51bSBpOTE1X2NhY2hlX2xldmVs IGxldmVsLAo+ICAJCQkJICB1MzIgZmxhZ3MpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHZtLT5pOTE1Owo+ICsJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGk5 MTVfdm1fdG9fZ2d0dCh2bSk7Cj4gIAlnZW42X3B0ZV90IF9faW9tZW0gKnB0ZSA9Cj4gLQkJKGdl bjZfcHRlX3QgX19pb21lbSAqKWRldl9wcml2LT5nZ3R0LmdzbSArCj4gLQkJKG9mZnNldCA+PiBQ QUdFX1NISUZUKTsKPiArCQkoZ2VuNl9wdGVfdCBfX2lvbWVtICopZ2d0dC0+Z3NtICsgKG9mZnNl dCA+PiBQQUdFX1NISUZUKTsKPgo+ICAJaW93cml0ZTMyKHZtLT5wdGVfZW5jb2RlKGFkZHIsIGxl dmVsLCBmbGFncyksIHB0ZSk7Cj4KPiAtCUk5MTVfV1JJVEUoR0ZYX0ZMU0hfQ05UTF9HRU42LCBH RlhfRkxTSF9DTlRMX0VOKTsKPiAtCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+ ICsJZ2d0dC0+aW52YWxpZGF0ZSh2bS0+aTkxNSk7Cj4gIH0KPgo+ICAvKgo+IEBAIC0yNDczLDcg KzI0ODEsNiBAQCBzdGF0aWMgdm9pZCBnZW42X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkJCQkgICAgIHVpbnQ2NF90IHN0YXJ0LAo+ICAJCQkJ ICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsIHUzMiBmbGFncykKPiAgewo+IC0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdm0tPmk5MTU7Cj4gIAlzdHJ1Y3QgaTkx NV9nZ3R0ICpnZ3R0ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKPiAgCXN0cnVjdCBzZ3RfaXRlciBz Z3RfaXRlcjsKPiAgCWdlbjZfcHRlX3QgX19pb21lbSAqZ3R0X2VudHJpZXM7Cj4gQEAgLTI1MDEs OCArMjUwOCw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCSAqIHdhbnQgdG8gZmx1c2ggdGhlIFRMQnMgb25s eSBhZnRlciB3ZSdyZSBjZXJ0YWluIGFsbCB0aGUgUFRFIHVwZGF0ZXMKPiAgCSAqIGhhdmUgZmlu aXNoZWQuCj4gIAkgKi8KPiAtCUk5MTVfV1JJVEUoR0ZYX0ZMU0hfQ05UTF9HRU42LCBHRlhfRkxT SF9DTlRMX0VOKTsKPiAtCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+ICsJZ2d0 dC0+aW52YWxpZGF0ZSh2bS0+aTkxNSk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBub3BfY2xlYXJf cmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gQEAgLTMwNjIsNiArMzA2OCw4 IEBAIHN0YXRpYyBpbnQgZ2VuOF9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCj4g IAlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJZ2d0dC0+YmFzZS5pbnNlcnRfZW50 cmllcyA9IGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllc19fQktMOwo+Cj4gKwlnZ3R0LT5pbnZhbGlk YXRlID0gZ2VuNl9nZ3R0X2ludmFsaWRhdGU7Cj4gKwo+ICAJcmV0dXJuIGdndHRfcHJvYmVfY29t bW9uKGdndHQsIHNpemUpOwo+ICB9Cj4KPiBAQCAtMzA5OSw2ICszMTA3LDggQEAgc3RhdGljIGlu dCBnZW42X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKPiAgCWdndHQtPmJhc2Uu dW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKPiAgCWdndHQtPmJhc2UuY2xlYW51cCA9IGdl bjZfZ21jaF9yZW1vdmU7Cj4KPiArCWdndHQtPmludmFsaWRhdGUgPSBnZW42X2dndHRfaW52YWxp ZGF0ZTsKPiArCj4gIAlpZiAoSEFTX0VEUkFNKGRldl9wcml2KSkKPiAgCQlnZ3R0LT5iYXNlLnB0 ZV9lbmNvZGUgPSBpcmlzX3B0ZV9lbmNvZGU7Cj4gIAllbHNlIGlmIChJU19IQVNXRUxMKGRldl9w cml2KSkKPiBAQCAtMzE0Miw2ICszMTUyLDggQEAgc3RhdGljIGludCBpOTE1X2dtY2hfcHJvYmUo c3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKPiAgCWdndHQtPmJhc2UudW5iaW5kX3ZtYSA9IGdndHRf dW5iaW5kX3ZtYTsKPiAgCWdndHQtPmJhc2UuY2xlYW51cCA9IGk5MTVfZ21jaF9yZW1vdmU7Cj4K PiArCWdndHQtPmludmFsaWRhdGUgPSBnbWNoX2dndHRfaW52YWxpZGF0ZTsKPiArCj4gIAlpZiAo dW5saWtlbHkoZ2d0dC0+ZG9faWRsZV9tYXBzKSkKPiAgCQlEUk1fSU5GTygiYXBwbHlpbmcgSXJv bmxha2UgcXVpcmtzIGZvciBpbnRlbF9pb21tdVxuIik7Cj4KPiBAQCAtMzI2MCw2ICszMjcyLDE2 IEBAIGludCBpOTE1X2dndHRfZW5hYmxlX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgCXJldHVybiAwOwo+ICB9Cj4KPiArdm9pZCBpOTE1X2dndHRfZW5hYmxlX2d1Yyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiArewo+ICsJaTkxNS0+Z2d0dC5pbnZhbGlk YXRlID0gZ3VjX2dndHRfaW52YWxpZGF0ZTsKPiArfQo+ICsKPiArdm9pZCBpOTE1X2dndHRfZGlz YWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gK3sKPiArCWk5MTUtPmdn dHQuaW52YWxpZGF0ZSA9IGdlbjZfZ2d0dF9pbnZhbGlkYXRlOwo+ICt9Cj4gKwo+ICB2b2lkIGk5 MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgewo+ICAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsK PiBAQCAtMzMyMyw3ICszMzQ1LDcgQEAgdm9pZCBpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5n cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJfQo+ICAJfQo+Cj4gLQlp OTE1X2dndHRfZmx1c2goZGV2X3ByaXYpOwo+ICsJaTkxNV9nZ3R0X2ludmFsaWRhdGUoZGV2X3By aXYpOwo+ICB9Cj4KPiAgc3RydWN0IGk5MTVfdm1hICoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaAo+IGluZGV4IDNlMDMxYTA1N2Y3OC4uNmM0MDA4OGY4Y2Y0IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtMzM2LDYgKzMzNiw3IEBAIHN0cnVjdCBpOTE1 X2dndHQgewo+Cj4gIAkvKiogIkdyYXBoaWNzIFN0b2xlbiBNZW1vcnkiIGhvbGRzIHRoZSBnbG9i YWwgUFRFcyAqLwo+ICAJdm9pZCBfX2lvbWVtICpnc207Cj4gKwl2b2lkICgqaW52YWxpZGF0ZSko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPgo+ICAJYm9vbCBkb19pZGxlX21h cHM7Cj4KPiBAQCAtNTA0LDYgKzUwNSw4IEBAIGk5MTVfdm1fdG9fZ2d0dChzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSkKPiAgaW50IGk5MTVfZ2d0dF9wcm9iZV9odyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICBpbnQgaTkxNV9nZ3R0X2luaXRfaHcoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgaW50IGk5MTVfZ2d0dF9lbmFibGVfaHcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArdm9pZCBpOTE1X2dndHRfZW5hYmxl X2d1YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK3ZvaWQgaTkxNV9nZ3R0X2Rp c2FibGVfZ3VjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiAgaW50IGk5MTVfZ2Vt X2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGk5 MTVfZ2d0dF9jbGVhbnVwX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXggNzEw ZmJiOWZjNjNmLi45MTNkODczNTg5NzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTU3OSw5ICs1NzksNiBAQCBzdGF0aWMgc3RydWN0IGk5 MTVfdm1hICpndWNfYWxsb2NhdGVfdm1hKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHNpemUp Cj4gIAkJZ290byBlcnI7Cj4gIAl9Cj4KPiAtCS8qIEludmFsaWRhdGUgR3VDIFRMQiB0byBsZXQg R3VDIHRha2UgdGhlIGxhdGVzdCB1cGRhdGVzIHRvIEdUVC4gKi8KPiAtCUk5MTVfV1JJVEUoR0VO OF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7Cj4gLQo+ICAJcmV0dXJuIHZtYTsKPgo+ICBl cnI6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+IGluZGV4IGFhMmI4 NjY0NzRiZS4uNGQyNjk2NWUzZjdmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Y19sb2FkZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19sb2FkZXIuYwo+IEBAIC0zNjYsOSArMzY2LDYgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZl cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJcmV0dXJuIFBUUl9FUlIo dm1hKTsKPiAgCX0KPgo+IC0JLyogSW52YWxpZGF0ZSBHdUMgVExCIHRvIGxldCBHdUMgdGFrZSB0 aGUgbGF0ZXN0IHVwZGF0ZXMgdG8gR1RULiAqLwo+IC0JSTkxNV9XUklURShHRU44X0dUQ1IsIEdF TjhfR1RDUl9JTlZBTElEQVRFKTsKPiAtCj4gIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChk ZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7Cj4KPiAgCS8qIGluaXQgV09QQ00gKi8KPiBAQCAtNDg2 LDYgKzQ4Myw5IEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAJZ3VjX2ludGVycnVwdHNfcmVsZWFzZShkZXZfcHJpdik7Cj4gIAlnZW45 X3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKPgo+ICsJLyogV2UgbmVlZCB0byBub3Rp ZnkgdGhlIGd1YyB3aGVuZXZlciB3ZSBjaGFuZ2UgdGhlIEdHVFQgKi8KPiArCWk5MTVfZ2d0dF9l bmFibGVfZ3VjKGRldl9wcml2KTsKPiArCj4gIAlndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9 IEdVQ19GSVJNV0FSRV9QRU5ESU5HOwo+Cj4gIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3Rh dHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKPiBAQCAtNTQ3LDYgKzU0Nyw3IEBAIGludCBpbnRl bF9ndWNfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJZ3VjX2lu dGVycnVwdHNfcmVsZWFzZShkZXZfcHJpdik7Cj4gIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2Rpc2Fi bGUoZGV2X3ByaXYpOwo+ICAJaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKGRldl9wcml2KTsKPiAr CWk5MTVfZ2d0dF9kaXNhYmxlX2d1YyhkZXZfcHJpdik7Cj4KPiAgCS8qCj4gIAkgKiBXZSd2ZSBm YWlsZWQgdG8gbG9hZCB0aGUgZmlybXdhcmUgOigKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ IGluZGV4IDgxNjY1YTllYjQzZi4uZDlkZTQ1NWRhMTMxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiBAQCAtODExLDEyICs4MTEsNiBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250 ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4KPiAgCWNlLT5zdGF0ZS0+ b2JqLT5tbS5kaXJ0eSA9IHRydWU7Cj4KPiAtCS8qIEludmFsaWRhdGUgR3VDIFRMQi4gKi8KPiAt CWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikgewo+IC0JCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGN0eC0+aTkxNTsKPiAtCQlJOTE1X1dSSVRFKEdFTjhfR1RDUiwg R0VOOF9HVENSX0lOVkFMSURBVEUpOwo+IC0JfQo+IC0KPiAgCWk5MTVfZ2VtX2NvbnRleHRfZ2V0 KGN0eCk7Cj4gIAlyZXR1cm4gMDsKPgo+CgpMb29rcyBnb29kIHRvIG1lLgoKUmV2aWV3ZWQtYnk6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZy dGtvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK