From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Move ioremap_wc tracking onto VMA Date: Mon, 18 Apr 2016 16:08:55 +0100 Message-ID: <5714F887.9030207@linux.intel.com> References: <5714CE4D.7020101@linux.intel.com> <1460991291-24983-1-git-send-email-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 832DF6E5EA for ; Mon, 18 Apr 2016 15:10:36 +0000 (UTC) In-Reply-To: <1460991291-24983-1-git-send-email-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 List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxOC8wNC8xNiAxNTo1NCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IEJ5IHRyYWNraW5nIHRo ZSBpb21hcHBpbmcgb24gdGhlIFZNQSBpdHNlbGYsIHdlIGNhbiBzaGFyZSB0aGF0IGFyZWEKPiBi ZXR3ZWVuIG11bHRpcGxlIHVzZXJzLiBBbHNvIGJ5IG9ubHkgcmV2b2tpbmcgdGhlIGlvbWFwcGlu ZyB1cG9uCj4gdW5iaW5kaW5nIGZyb20gdGhlIG1hcHBhYmxlIHBvcnRpb24gb2YgdGhlIEdHVFQs IHdlIGNhbiBrZWVwIHRoYXQgaW9tYXAKPiBhY3Jvc3MgbXVsdGlwbGUgaW52b2NhdGlvbnMgKGUu Zy4gZXhlY2xpc3RzIGNvbnRleHQgcGlubmluZykuCj4KPiBOb3RlIHRoYXQgYnkgbW92aW5nIHRo ZSBpb3Vubm1hcCB0cmFja2luZyB0byB0aGUgVk1BLCB3ZSBhY3R1YWxseSBlbmQgdXAKPiBmaXhp bmcgYSBsZWFrIG9mIHRoZSBpb21hcHBpbmcgaW4gaW50ZWxfZmJkZXYuCj4KPiB2MS41OiBSZWJh c2UgcHJvbXB0ZWQgYnkgVHZydGtvCj4gdjI6IERyb3AgZGV2X3ByaXYgcGFyYW1ldGVyLCB3ZSBj YW4gcmVjb3ZlciB0aGUgaTkxNV9nZ3R0IGZyb20gdGhlIHZtYS4KPiB2MzogTW92ZSBoYW5kbGlu ZyBvZiBpb3JlbWFwIHNwYWNlIGV4aGF1c3Rpb24gdG8gdm1hcF9wdXJnZSBhbmQgYWxzbwo+IGFs bG93IHZtYWxsb2NzIHRvIHJlY292ZXIgb2xkIGlvbWFwcy4gQWRkIFR2cnRrbydzIGtlcm5lbGRv Yy4KPiB2NDogRml4IGEgdXNlLWFmdGVyLWZyZWUgaW4gc2hyaW5rZXIgYW5kIHJlYXJyYW5nZSBp OTE1X3ZtYV9pb21hcAo+IHY1OiBCYWNrIHRvIGk5MTVfdm1fdG9fZ2d0dAo+IHY2OiBVc2UgaTkx NV92bWFfcGluX2lvbWFwIGFuZCBpOTE1X3ZtYV91bnBpbl9pb21hcCB0byBtYXJrIGNyaXRpY2Fs Cj4gc2VjdGlvbnMgYW5kIGVuc3VyZSB0aGUgVk1BIGNhbm5vdCBiZSByZWFwZWQgd2hpbHN0IG1h cHBlZC4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+ IFJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPiAj djQKPiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29t Pgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICB8ICAy ICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgIHwgMjYgKysr KysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAgICAg fCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYyB8IDI4ICsrKysrKysrKysrLS0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAgICB8IDIyICsrKysrKy0tLS0tLQo+ICAg NSBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCj4KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA2Y2UyYzMxYjlhODEuLjgyZDBhZjNmMTY5MiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0zMzc4LDYgKzMzNzgsOCBAQCBzdGF0 aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBib29sIHdhaXQp Cj4gICAJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9wdXRfZmVuY2Uob2JqKTsKPiAgIAkJaWYgKHJl dCkKPiAgIAkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCWk5MTVfdm1hX2lvdW5tYXAodm1hKTsKPiAg IAl9Cj4KPiAgIAl0cmFjZV9pOTE1X3ZtYV91bmJpbmQodm1hKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+IGluZGV4IGIzYWYyZTgwOGI0OS4uZTE4NWRmZjM1OGUxIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtMzYzNCwzICszNjM0LDI5IEBAIGk5 MTVfZ2d0dF92aWV3X3NpemUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAkJ cmV0dXJuIG9iai0+YmFzZS5zaXplOwo+ICAgCX0KPiAgIH0KPiArCj4gK3ZvaWQgKmk5MTVfdm1h X3Bpbl9pb21hcChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiArewo+ICsJdm9pZCAqcHRyOwoKSnVz dCByZWFsaXplZCB3ZSBzaG91bGQgbWFyayB0aGUgcG9pbnRlcnMgd2l0aCBfX2lvbWVtIGhlcmUu Cgo+ICsKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+dm0tPmRldi0+c3RydWN0X211dGV4 KTsKPiArCWlmIChXQVJOX09OKCF2bWEtPm9iai0+bWFwX2FuZF9mZW5jZWFibGUpKQo+ICsJCXJl dHVybiBFUlJfUFRSKC1FTk9ERVYpOwo+ICsKPiArCUdFTV9CVUdfT04oIXZtYS0+aXNfZ2d0dCk7 Cj4gKwlHRU1fQlVHX09OKCh2bWEtPmJvdW5kICYgR0xPQkFMX0JJTkQpID09IDApOwo+ICsKPiAr CXB0ciA9IHZtYS0+aW9tYXA7Cj4gKwlpZiAocHRyID09IE5VTEwpIHsKPiArCQlwdHIgPSBpb19t YXBwaW5nX21hcF93YyhpOTE1X3ZtX3RvX2dndHQodm1hLT52bSktPm1hcHBhYmxlLAo+ICsJCQkJ CXZtYS0+bm9kZS5zdGFydCwKPiArCQkJCQl2bWEtPm5vZGUuc2l6ZSk7Cj4gKwkJaWYgKHB0ciA9 PSBOVUxMKQo+ICsJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiArCj4gKwkJdm1hLT5pb21h cCA9IHB0cjsKPiArCX0KPiArCj4gKwl2bWEtPnBpbl9jb3VudCsrOwo+ICsJcmV0dXJuIHB0cjsK PiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gaW5kZXggZDdkZDNkOGE4NzU4 Li5hMDFkNzhiYzlmMjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+IEBA IC0zNCw2ICszNCw4IEBACj4gICAjaWZuZGVmIF9fSTkxNV9HRU1fR1RUX0hfXwo+ICAgI2RlZmlu ZSBfX0k5MTVfR0VNX0dUVF9IX18KPgo+ICsjaW5jbHVkZSA8bGludXgvaW8tbWFwcGluZy5oPgo+ ICsKPiAgIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGU7Cj4KPiAgIHR5cGVkZWYgdWludDMy X3QgZ2VuNl9wdGVfdDsKPiBAQCAtMTc1LDYgKzE3Nyw3IEBAIHN0cnVjdCBpOTE1X3ZtYSB7Cj4g ICAJc3RydWN0IGRybV9tbV9ub2RlIG5vZGU7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iajsKPiAgIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKPiArCXZvaWQgKmlv bWFwOwo+Cj4gICAJLyoqIEZsYWdzIGFuZCBhZGRyZXNzIHNwYWNlIHRoaXMgVk1BIGlzIGJvdW5k IHRvICovCj4gICAjZGVmaW5lIEdMT0JBTF9CSU5ECSgxPDwwKQo+IEBAIC01NTksNCArNTYyLDU5 IEBAIHNpemVfdAo+ICAgaTkxNV9nZ3R0X3ZpZXdfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAo+ICAgCQkgICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3KTsK Pgo+ICsvKioKPiArICogaTkxNV92bWFfcGluX2lvbWFwIC0gY2FsbHMgaW9yZW1hcF93YyB0byBt YXAgdGhlIEdHVFQgVk1BIHZpYSB0aGUgYXBlcnR1cmUKPiArICogQHZtYTogVk1BIHRvIGlvbWFw Cj4gKyAqCj4gKyAqIFRoZSBwYXNzZWQgaW4gVk1BIGhhcyB0byBiZSBwaW5uZWQgaW4gdGhlIGds b2JhbCBHVFQgbWFwcGFibGUgcmVnaW9uLgo+ICsgKiBBbiBleHRyYSBwaW5uaW5nIG9mIHRoZSBW TUEgaXMgYWNxdWlyZWQgZm9yIHRoZSByZXR1cm4gaW9tYXBwaW5nLAo+ICsgKiB0aGUgY2FsbGVy IG11c3QgY2FsbCBpOTE1X3ZtYV91bnBpbl9pb21hcCB0byByZWxpbnF1aXNoIHRoZSBwaW5uaW5n Cj4gKyAqIGFmdGVyIHRoZSBpb21hcHBpbmcgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLgo+ICsgKgo+ ICsgKiBDYWxsZXJzIG11c3QgaG9sZCB0aGUgc3RydWN0X211dGV4Lgo+ICsgKgo+ICsgKiBSZXR1 cm5zIGEgdmFsaWQgaW9tYXBwZWQgcG9pbnRlciBvciBFUlJfUFRSLgo+ICsgKi8KPiArdm9pZCAq aTkxNV92bWFfcGluX2lvbWFwKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKPiArCj4gKy8qKgo+ICsg KiBpOTE1X3ZtYV9pb3VubWFwIC0gdW5tYXBzIHRoZSBWTUEKPiArICogQHZtYTogVk1BIHRvIHVu bWFwCj4gKyAqCj4gKyAqIFVubWFwcyB0aGUgcHJldmlvdXNseSBpb21hcHBlZCBWTUEgdXNpbmcg aW91bm1hcC4KPiArICoKPiArICogVXNlcnMgb2YgaTkxNV92bWFfcGluX2lvbWFwKCkgc2hvdWxk IG5vdCBtYW51YWxseSB1bm1hcCBieSBjYWxsaW5nIHRoaXMKPiArICogZnVuY3Rpb24gYnV0IHNo b3VsZCBjYWxsIGk5MTVfdm1hX3VucGluX2lvbWFwKCkgaW5zdGVhZC4KPiArICoKPiArICogQ2Fs bGVycyBtdXN0IGhvbGQgdGhlIHN0cnVjdF9tdXRleC4KPiArICovCj4gK3N0YXRpYyBpbmxpbmUg dm9pZCBpOTE1X3ZtYV9pb3VubWFwKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICt7Cj4gKwlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlHRU1fQlVH X09OKHZtYS0+cGluX2NvdW50KTsKPiArCj4gKwlpZiAodm1hLT5pb21hcCA9PSBOVUxMKQo+ICsJ CXJldHVybjsKPiArCj4gKwlpb19tYXBwaW5nX3VubWFwKHZtYS0+aW9tYXApOwo+ICsJdm1hLT5p b21hcCA9IE5VTEw7Cj4gK30KCkl0IHdvdWxkIGJlIGJlc3QgdG8gaGlkZSB0aGlzIG5lYXIgdGhl IHVuYmluZCBjb2RlLiBBbHRlcm5hdGl2ZWx5IG1heWJlIApwdXQgYSBsb3VkZXIgd2FybmluZyBp biB0aGUga2VybmVsZG9jPyBKdXN0IHNvIGl0IGlzIGEgYml0IG1vcmUgCmRpc3Rpbmd1aXNoYWJs ZSBmcm9tIHRoZSBHRU0gZXhwb3J0ZWQgQVBJIGZvciB0aGlzIGZlYXR1cmUuCgo+ICsKPiArLyoq Cj4gKyAqIGk5MTVfdm1hX3VucGluX2lvbWFwIC0gdW5waW5zIHRoZSBtYXBwaW5nIHJldHVybmVk IGZyb20gaTkxNV92bWFfaW9tYXAKPiArICogQHZtYTogVk1BIHRvIHVucGluCj4gKyAqCj4gKyAq IFVucGlucyB0aGUgcHJldmlvdXNseSBpb21hcHBlZCBWTUEgZnJvbSBpOTE1X3ZtYV9waW5faW9t YXAoKS4KPiArICoKPiArICogQ2FsbGVycyBtdXN0IGhvbGQgdGhlIHN0cnVjdF9tdXRleC4gVGhp cyBmdW5jdGlvbiBpcyBvbmx5IHZhbGlkIHRvIGJlCj4gKyAqIGNhbGxlZCBvbiBhIFZNQSBwcmV2 aW91c2x5IGlvbWFwcGVkIGJ5IHRoZSBjYWxsZXIgd2l0aCBpOTE1X3ZtYV9waW5faW9tYXAoKS4K PiArICovCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3ZtYV91bnBpbl9pb21hcChzdHJ1Y3Qg aTkxNV92bWEgKnZtYSkKPiArewo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmdm1hLT52bS0+ZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJR0VNX0JVR19PTih2bWEtPnBpbl9jb3VudCA9PSAwKTsKPiAr CUdFTV9CVUdfT04odm1hLT5pb21hcCA9PSBOVUxMKTsKPiArCXZtYS0+cGluX2NvdW50LS07Cj4g K30KPiArCj4gICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fc2hyaW5rZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2Vy LmMKPiBpbmRleCBkNDYzODhmMjVlMDQuLjYxNTZlZTk2ZjQyOSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwo+IEBAIC0zODcsMTcgKzM4NywzMyBAQCBpOTE1 X2dlbV9zaHJpbmtlcl92bWFwKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxv bmcgZXZlbnQsIHZvaWQgKnB0cgo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9Cj4gICAJCWNvbnRhaW5lcl9vZihuYiwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIG1tLnZt YXBfbm90aWZpZXIpOwo+ICAgCXN0cnVjdCBzaHJpbmtlcl9sb2NrX3VuaW50ZXJydXB0aWJsZSBz bHU7Cj4gLQl1bnNpZ25lZCBsb25nIGZyZWVkX3BhZ2VzOwo+ICsJc3RydWN0IGk5MTVfdm1hICp2 bWEsICpuZXh0Owo+ICsJdW5zaWduZWQgbG9uZyBmcmVlZF9wYWdlcyA9IDA7Cj4gKwlpbnQgcmV0 Owo+Cj4gICAJaWYgKCFpOTE1X2dlbV9zaHJpbmtlcl9sb2NrX3VuaW50ZXJydXB0aWJsZShkZXZf cHJpdiwgJnNsdSwgNTAwMCkpCj4gICAJCXJldHVybiBOT1RJRllfRE9ORTsKPgo+IC0JZnJlZWRf cGFnZXMgPSBpOTE1X2dlbV9zaHJpbmsoZGV2X3ByaXYsIC0xVUwsCj4gLQkJCQkgICAgICBJOTE1 X1NIUklOS19CT1VORCB8Cj4gLQkJCQkgICAgICBJOTE1X1NIUklOS19VTkJPVU5EIHwKPiAtCQkJ CSAgICAgIEk5MTVfU0hSSU5LX0FDVElWRSB8Cj4gLQkJCQkgICAgICBJOTE1X1NIUklOS19WTUFQ Uyk7Cj4gKwkvKiBGb3JjZSBldmVyeXRoaW5nIG9udG8gdGhlIGluYWN0aXZlIGxpc3RzICovCj4g KwlyZXQgPSBpOTE1X2dwdV9pZGxlKGRldl9wcml2LT5kZXYpOwo+ICsJaWYgKHJldCkKPiArCQln b3RvIG91dDsKPiArCj4gKwlmcmVlZF9wYWdlcyArPSBpOTE1X2dlbV9zaHJpbmsoZGV2X3ByaXYs IC0xVUwsCj4gKwkJCQkgICAgICAgSTkxNV9TSFJJTktfQk9VTkQgfAo+ICsJCQkJICAgICAgIEk5 MTVfU0hSSU5LX1VOQk9VTkQgfAo+ICsJCQkJICAgICAgIEk5MTVfU0hSSU5LX0FDVElWRSB8Cj4g KwkJCQkgICAgICAgSTkxNV9TSFJJTktfVk1BUFMpOwo+ICsKPiArCS8qIFdlIGFsc28gd2FudCB0 byBjbGVhciBhbnkgY2FjaGVkIGlvbWFwcyBhcyB0aGV5IHdyYXAgdm1hcCAqLwo+ICsJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgbmV4dCwKPiArCQkJCSAmZGV2X3ByaXYtPmdndHQuYmFz ZS5pbmFjdGl2ZV9saXN0LCB2bV9saW5rKSB7Cj4gKwkJdW5zaWduZWQgbG9uZyBjb3VudCA9IHZt YS0+bm9kZS5zaXplID4+IFBBR0VfU0hJRlQ7Cj4gKwkJaWYgKHZtYS0+aW9tYXAgJiYgaTkxNV92 bWFfdW5iaW5kKHZtYSkgPT0gMCkKPiArCQkJZnJlZWRfcGFnZXMgKz0gY291bnQ7Cj4gKwl9Cj4K PiArb3V0Ogo+ICAgCWk5MTVfZ2VtX3Nocmlua2VyX3VubG9ja191bmludGVycnVwdGlibGUoZGV2 X3ByaXYsICZzbHUpOwo+Cj4gICAJKih1bnNpZ25lZCBsb25nICopcHRyICs9IGZyZWVkX3BhZ2Vz Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+IGluZGV4IDc5YWMyMDJmMzg3MC4uOTNm NTRhMTAwNDJmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCj4gQEAgLTE4Niw5 ICsxODYsMTEgQEAgc3RhdGljIGludCBpbnRlbGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqaGVscGVyLAo+ICAgCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7 Cj4gICAJc3RydWN0IGZiX2luZm8gKmluZm87Cj4gICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmI7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqOwo+IC0JaW50IHNpemUsIHJldDsKPiAgIAlib29sIHByZWFsbG9jID0gZmFsc2U7 Cj4gKwl2b2lkICp2YWRkcjsKPiArCWludCByZXQ7Cj4KPiAgIAlpZiAoaW50ZWxfZmIgJiYKPiAg IAkgICAgKHNpemVzLT5mYl93aWR0aCA+IGludGVsX2ZiLT5iYXNlLndpZHRoIHx8Cj4gQEAgLTIx NCw3ICsyMTYsNiBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpoZWxwZXIsCj4gICAJfQo+Cj4gICAJb2JqID0gaW50ZWxfZmItPm9iajsKPiAtCXNpemUg PSBvYmotPmJhc2Uuc2l6ZTsKPgo+ICAgCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsK Pgo+IEBAIC0yNDQsMjIgKzI0NSwyMyBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gICAJaW5mby0+ZmxhZ3MgPSBGQklORk9fREVGQVVM VCB8IEZCSU5GT19DQU5fRk9SQ0VfT1VUUFVUOwo+ICAgCWluZm8tPmZib3BzID0gJmludGVsZmJf b3BzOwo+Cj4gKwl2bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChvYmopOwo+ICsKPiAgIAkvKiBz ZXR1cCBhcGVydHVyZSBiYXNlL3NpemUgZm9yIHZlc2FmYiB0YWtlb3ZlciAqLwo+ICAgCWluZm8t PmFwZXJ0dXJlcy0+cmFuZ2VzWzBdLmJhc2UgPSBkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2U7Cj4g ICAJaW5mby0+YXBlcnR1cmVzLT5yYW5nZXNbMF0uc2l6ZSA9IGdndHQtPm1hcHBhYmxlX2VuZDsK Pgo+IC0JaW5mby0+Zml4LnNtZW1fc3RhcnQgPSBkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2UgKyBp OTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKTsKPiAtCWluZm8tPmZpeC5zbWVtX2xlbiA9IHNp emU7Cj4gKwlpbmZvLT5maXguc21lbV9zdGFydCA9IGRldi0+bW9kZV9jb25maWcuZmJfYmFzZSAr IHZtYS0+bm9kZS5zdGFydDsKPiArCWluZm8tPmZpeC5zbWVtX2xlbiA9IHZtYS0+bm9kZS5zaXpl Owo+Cj4gLQlpbmZvLT5zY3JlZW5fYmFzZSA9Cj4gLQkJaW9yZW1hcF93YyhnZ3R0LT5tYXBwYWJs ZV9iYXNlICsgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaiksCj4gLQkJCSAgIHNpemUpOwo+ IC0JaWYgKCFpbmZvLT5zY3JlZW5fYmFzZSkgewo+ICsJdmFkZHIgPSBpOTE1X3ZtYV9waW5faW9t YXAodm1hKTsKPiArCWlmIChJU19FUlIodmFkZHIpKSB7Cj4gICAJCURSTV9FUlJPUigiRmFpbGVk IHRvIHJlbWFwIGZyYW1lYnVmZmVyIGludG8gdmlydHVhbCBtZW1vcnlcbiIpOwo+IC0JCXJldCA9 IC1FTk9TUEM7Cj4gKwkJcmV0ID0gUFRSX0VSUih2YWRkcik7Cj4gICAJCWdvdG8gb3V0X2Rlc3Ry b3lfZmJpOwo+ICAgCX0KPiAtCWluZm8tPnNjcmVlbl9zaXplID0gc2l6ZTsKPiArCWluZm8tPnNj cmVlbl9iYXNlID0gdmFkZHI7Cj4gKwlpbmZvLT5zY3JlZW5fc2l6ZSA9IHZtYS0+bm9kZS5zaXpl Owo+Cj4gICAJLyogVGhpcyBkcml2ZXIgZG9lc24ndCBuZWVkIGEgVlQgc3dpdGNoIHRvIHJlc3Rv cmUgdGhlIG1vZGUgb24gcmVzdW1lICovCj4gICAJaW5mby0+c2tpcF92dF9zd2l0Y2ggPSB0cnVl Owo+CgpSZWdhcmRzLAoKVHZydGtvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK