From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/6] drm/i915: Extend magic to_i915() to work with drm_i915_gem_object Date: Mon, 21 Mar 2016 09:55:10 +0000 Message-ID: <56EFC4FE.5090002@linux.intel.com> References: <1458335784-1773-1-git-send-email-chris@chris-wilson.co.uk> <1458335784-1773-3-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 09A2D6E27B for ; Mon, 21 Mar 2016 09:55:12 +0000 (UTC) In-Reply-To: <1458335784-1773-3-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 Ck9uIDE4LzAzLzE2IDIxOjE2LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAgNyArKystLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8IDE1ICsrKysrKysrLS0tLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDM0ICsrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jIHwgMTcgKysrKysrLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9mZW5jZS5jICAgICAgfCAgOCArKystLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgICAgIHwgIDQgKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMgICAgIHwgIDQgKystLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jICAgIHwgIDQgKystLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgIDIgKy0KPiAgIDEwIGZpbGVzIGNoYW5nZWQs IDQ2IGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKPiBpbmRleCBlMGJhM2UzODAwMGYuLjMzZGRjZGY2ZDA0NiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTEyOCw3ICsxMjgsNiBAQCBzdGF0aWMg dTY0IGk5MTVfZ2VtX29ial90b3RhbF9nZ3R0X3NpemUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKPiAgIHN0YXRpYyB2b2lkCj4gICBkZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxl ICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IC0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKPiAgIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gICAJc3RydWN0IGk5MTVfdm1hICp2bWE7 Cj4gICAJaW50IHBpbl9jb3VudCA9IDA7Cj4gQEAgLTE0MywxMyArMTQyLDEzIEBAIGRlc2NyaWJl X29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop Cj4gICAJCSAgIG9iai0+YmFzZS5zaXplIC8gMTAyNCwKPiAgIAkJICAgb2JqLT5iYXNlLnJlYWRf ZG9tYWlucywKPiAgIAkJICAgb2JqLT5iYXNlLndyaXRlX2RvbWFpbik7Cj4gLQlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIG9i aiwgaSkKPiAgIAkJc2VxX3ByaW50ZihtLCAiJXggIiwKPiAgIAkJCQlpOTE1X2dlbV9yZXF1ZXN0 X2dldF9zZXFubyhvYmotPmxhc3RfcmVhZF9yZXFbaV0pKTsKPiAgIAlzZXFfcHJpbnRmKG0sICJd ICV4ICV4JXMlcyVzIiwKPiAgIAkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ob2JqLT5s YXN0X3dyaXRlX3JlcSksCj4gICAJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+ bGFzdF9mZW5jZWRfcmVxKSwKPiAtCQkgICBpOTE1X2NhY2hlX2xldmVsX3N0cih0b19pOTE1KG9i ai0+YmFzZS5kZXYpLCBvYmotPmNhY2hlX2xldmVsKSwKPiArCQkgICBpOTE1X2NhY2hlX2xldmVs X3N0cih0b19pOTE1KG9iaiksIG9iai0+Y2FjaGVfbGV2ZWwpLAo+ICAgCQkgICBvYmotPmRpcnR5 ID8gIiBkaXJ0eSIgOiAiIiwKPiAgIAkJICAgb2JqLT5tYWR2ID09IEk5MTVfTUFEVl9ET05UTkVF RCA/ICIgcHVyZ2VhYmxlIiA6ICIiKTsKPiAgIAlpZiAob2JqLT5iYXNlLm5hbWUpCj4gQEAgLTMz OSw3ICszMzgsNyBAQCBzdGF0aWMgaW50IHBlcl9maWxlX3N0YXRzKGludCBpZCwgdm9pZCAqcHRy LCB2b2lkICpkYXRhKQo+ICAgCWlmIChvYmotPmJhc2UubmFtZSB8fCBvYmotPmJhc2UuZG1hX2J1 ZikKPiAgIAkJc3RhdHMtPnNoYXJlZCArPSBvYmotPmJhc2Uuc2l6ZTsKPgo+IC0JaWYgKFVTRVNf RlVMTF9QUEdUVChvYmotPmJhc2UuZGV2KSkgewo+ICsJaWYgKFVTRVNfRlVMTF9QUEdUVChvYmop KSB7Cj4gICAJCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2JqLT52bWFfbGlzdCwgb2JqX2xp bmspIHsKPiAgIAkJCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dDsKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+IGluZGV4IDBjOWZlMDBkM2U4My4uOTIzNjVmMDQ3ZTUzIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIxODYsNiArMjE4NiwxMiBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCB7Cj4gICB9Owo+ICAgI2RlZmluZSB0b19pbnRlbF9ibyh4KSBjb250YWlu ZXJfb2YoeCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QsIGJhc2UpCj4KPiArc3RhdGljIGlu bGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqCj4gK19fb2JqX3RvX2k5MTUoY29uc3Qgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiArewo+ICsJcmV0dXJuIF9fdG9faTkxNShv YmotPmJhc2UuZGV2KTsKPiArfQo+ICsKPiAgIHZvaWQgaTkxNV9nZW1fdHJhY2tfZmIoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZCwKPiAgIAkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpuZXcsCj4gICAJCSAgICAgICB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsK PiBAQCAtMjQ1NSw2ICsyNDYxLDggQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7Cj4gICAJ CV9fcCA9IChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKXA7IFwKPiAgIAllbHNlIGlmIChfX2J1 aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqcCksIHN0cnVjdCBkcm1fZGV2aWNlKSkg XAo+ICAgCQlfX3AgPSBfX3RvX2k5MTUoKHN0cnVjdCBkcm1fZGV2aWNlICopcCk7IFwKPiArCWVs c2UgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCpwKSwgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QpKSBcCj4gKwkJX19wID0gX19vYmpfdG9faTkxNSgoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKilwKTsgXAo+ICAgCWVsc2UgXAo+ICAgCQlCVUlMRF9CVUcoKTsg XAo+ICAgCV9fcDsgXAo+IEBAIC0zMTMyLDggKzMxNDAsNyBAQCBpOTE1X2dlbV9vYmpfdG9fZ2d0 dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgYm9vbCBpOTE1X2dlbV9vYmpf aXNfcGlubmVkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwo+Cj4gICAvKiBTb21l IEdHVFQgVk0gaGVscGVycyAqLwo+IC0jZGVmaW5lIGk5MTVfb2JqX3RvX2dndHQob2JqKSBcCj4g LQkoJigoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKikob2JqKS0+YmFzZS5kZXYtPmRldl9wcml2 YXRlKS0+Z2d0dC5iYXNlKQo+ICsjZGVmaW5lIGk5MTVfb2JqX3RvX2dndHQob2JqKSAoJnRvX2k5 MTUob2JqKS0+Z2d0dC5iYXNlKQo+Cj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICoKPiAgIGk5MTVfdm1fdG9fcHBndHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0p Cj4gQEAgLTMyODIsOSArMzI4OSw3IEBAIHZvaWQgaTkxNV9nZW1fc2hyaW5rZXJfY2xlYW51cChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgLyogaTkxNV9nZW1fdGlsaW5n LmMgKi8KPiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9vYmplY3RfbmVlZHNfYml0MTdf c3dpenpsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7 Cj4gLQo+IC0JcmV0dXJuIGRldl9wcml2LT5tbS5iaXRfNl9zd2l6emxlX3ggPT0gSTkxNV9CSVRf Nl9TV0laWkxFXzlfMTBfMTcgJiYKPiArCXJldHVybiB0b19pOTE1KG9iaiktPm1tLmJpdF82X3N3 aXp6bGVfeCA9PSBJOTE1X0JJVF82X1NXSVpaTEVfOV8xMF8xNyAmJgo+ICAgCQlvYmotPnRpbGlu Z19tb2RlICE9IEk5MTVfVElMSU5HX05PTkU7Cj4gICB9Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiBpbmRleCA4NTg4YzgzYWJiMzUuLjcxMGE2YmJjOTg1ZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwo+IEBAIC0zNjEsMTQgKzM2MSwxMiBAQCBvdXQ6Cj4KPiAgIHZvaWQgKmk5MTVf Z2VtX29iamVjdF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXJldHVy biBrbWVtX2NhY2hlX3phbGxvYyhkZXZfcHJpdi0+b2JqZWN0cywgR0ZQX0tFUk5FTCk7Cj4gKwly ZXR1cm4ga21lbV9jYWNoZV96YWxsb2ModG9faTkxNShkZXYpLT5vYmplY3RzLCBHRlBfS0VSTkVM KTsKPiAgIH0KPgo+ICAgdm9pZCBpOTE1X2dlbV9vYmplY3RfZnJlZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gb2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlrbWVtX2NhY2hlX2ZyZWUoZGV2 X3ByaXYtPm9iamVjdHMsIG9iaik7Cj4gKwlrbWVtX2NhY2hlX2ZyZWUodG9faTkxNShvYmopLT5v YmplY3RzLCBvYmopOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW50Cj4gQEAgLTIwMjgsNyArMjAyNiw3 IEBAIGk5MTVfZ2VtX2dldF9ndHRfYWxpZ25tZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVp bnQzMl90IHNpemUsCj4KPiAgIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9tbWFw X29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iaik7Cj4g ICAJaW50IHJldDsKPgo+ICAgCWlmIChkcm1fdm1hX25vZGVfaGFzX29mZnNldCgmb2JqLT5iYXNl LnZtYV9ub2RlKSkKPiBAQCAtMjI0MSw3ICsyMjM5LDcgQEAgaTkxNV9nZW1fb2JqZWN0X3B1dF9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgc3RhdGljIGludAo+ICAg aTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG9iai0+ YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShvYmopOwo+ICAgCWludCBwYWdlX2NvdW50LCBpOwo+ICAgCXN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nOwo+ICAgCXN0cnVjdCBzZ190YWJsZSAqc3Q7Cj4gQEAgLTIz NzIsNyArMjM3MCw3IEBAIGVycl9wYWdlczoKPiAgIGludAo+ICAgaTkxNV9nZW1fb2JqZWN0X2dl dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iaik7Cj4g ICAJY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzICpvcHMgPSBvYmotPm9wczsK PiAgIAlpbnQgcmV0Owo+Cj4gQEAgLTI0NDksOCArMjQ0Nyw3IEBAIGk5MTVfZ2VtX29iamVjdF9y ZXRpcmVfX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgaW50IHJpbmcpCj4g ICAJICogc28gdGhhdCB3ZSBkb24ndCBzdGVhbCBmcm9tIHJlY2VudGx5IHVzZWQgYnV0IGluYWN0 aXZlIG9iamVjdHMKPiAgIAkgKiAodW5sZXNzIHdlIGFyZSBmb3JjZWQgdG8gb2ZjISkKPiAgIAkg Ki8KPiAtCWxpc3RfbW92ZV90YWlsKCZvYmotPmdsb2JhbF9saXN0LAo+IC0JCSAgICAgICAmdG9f aTkxNShvYmotPmJhc2UuZGV2KS0+bW0uYm91bmRfbGlzdCk7Cj4gKwlsaXN0X21vdmVfdGFpbCgm b2JqLT5nbG9iYWxfbGlzdCwgJnRvX2k5MTUob2JqKS0+bW0uYm91bmRfbGlzdCk7Cj4KPiAgIAls aXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5rKSB7Cj4gICAJ CWlmICghbGlzdF9lbXB0eSgmdm1hLT52bV9saW5rKSkKPiBAQCAtMzE3Miw3ICszMTY5LDcgQEAg X19pOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ ICAgCQlyZXR1cm4gMDsKPgo+ICAgCWlmICghaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChvYmot PmJhc2UuZGV2KSkgewo+IC0JCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkx NShvYmotPmJhc2UuZGV2KTsKPiArCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRv X2k5MTUob2JqKTsKPiAgIAkJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdChmcm9tX3JlcSwKPiAg IAkJCQkJICBhdG9taWNfcmVhZCgmaTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAo+ICAg CQkJCQkgIGk5MTUtPm1tLmludGVycnVwdGlibGUsCj4gQEAgLTMzMTIsNyArMzMwOSw3IEBAIHN0 YXRpYyB2b2lkIGk5MTVfZ2VtX29iamVjdF9maW5pc2hfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCj4gICBzdGF0aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1 X3ZtYSAqdm1hLCBib29sIHdhaXQpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiA9IHZtYS0+b2JqOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gb2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iaik7Cj4gICAJaW50IHJldDsKPgo+ICAgCWlmIChsaXN0 X2VtcHR5KCZ2bWEtPm9ial9saW5rKSkKPiBAQCAtMzc3Miw3ICszNzY5LDcgQEAgaTkxNV9nZW1f b2JqZWN0X3NldF90b19ndHRfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos IGJvb2wgd3JpdGUpCj4gICAJdm1hID0gaTkxNV9nZW1fb2JqX3RvX2dndHQob2JqKTsKPiAgIAlp ZiAodm1hICYmIGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSAmJiAhb2JqLT5hY3Rp dmUpCj4gICAJCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZtX2xpbmssCj4gLQkJCSAgICAgICAmdG9f aTkxNShvYmotPmJhc2UuZGV2KS0+Z2d0dC5iYXNlLmluYWN0aXZlX2xpc3QpOwo+ICsJCQkgICAg ICAgJnRvX2k5MTUob2JqKS0+Z2d0dC5iYXNlLmluYWN0aXZlX2xpc3QpOwo+Cj4gICAJcmV0dXJu IDA7Cj4gICB9Cj4gQEAgLTQwMTAsNyArNDAwNyw3IEBAIGk5MTVfZ2VtX29iamVjdF9waW5fdG9f ZGlzcGxheV9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCSAqIHdp dGggdGhhdCBiaXQgaW4gdGhlIFBURSB0byBtYWluIG1lbW9yeSB3aXRoIGp1c3Qgb25lIFBJUEVf Q09OVFJPTC4KPiAgIAkgKi8KPiAgIAlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xl dmVsKG9iaiwKPiAtCQkJCQkgICAgICBIQVNfV1Qob2JqLT5iYXNlLmRldikgPyBJOTE1X0NBQ0hF X1dUIDogSTkxNV9DQUNIRV9OT05FKTsKPiArCQkJCQkgICAgICBIQVNfV1Qob2JqKSA/IEk5MTVf Q0FDSEVfV1QgOiBJOTE1X0NBQ0hFX05PTkUpOwo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gZXJy X3VucGluX2Rpc3BsYXk7Cj4KPiBAQCAtNDIwOSw3ICs0MjA2LDcgQEAgdm9pZCBfX2k5MTVfdm1h X3NldF9tYXBfYW5kX2ZlbmNlYWJsZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIAkJICAgICAo dm1hLT5ub2RlLnN0YXJ0ICYgKGZlbmNlX2FsaWdubWVudCAtIDEpKSA9PSAwKTsKPgo+ICAgCW1h cHBhYmxlID0gKHZtYS0+bm9kZS5zdGFydCArIGZlbmNlX3NpemUgPD0KPiAtCQkgICAgdG9faTkx NShvYmotPmJhc2UuZGV2KS0+Z2d0dC5tYXBwYWJsZV9lbmQpOwo+ICsJCSAgICB0b19pOTE1KG9i aiktPmdndHQubWFwcGFibGVfZW5kKTsKPgo+ICAgCW9iai0+bWFwX2FuZF9mZW5jZWFibGUgPSBt YXBwYWJsZSAmJiBmZW5jZWFibGU7Cj4gICB9Cj4gQEAgLTQyMjEsNyArNDIxOCw3IEBAIGk5MTVf Z2VtX29iamVjdF9kb19waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAkJ ICAgICAgIHVpbnQzMl90IGFsaWdubWVudCwKPiAgIAkJICAgICAgIHVpbnQ2NF90IGZsYWdzKQo+ ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRl di0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KG9iaik7Cj4gICAJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gICAJdW5zaWduZWQgYm91 bmQ7Cj4gICAJaW50IHJldDsKPiBAQCAtNDQ1Niw3ICs0NDUzLDcgQEAgdm9pZCBpOTE1X2dlbV9v YmplY3RfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCW9iai0+ZmVu Y2VfcmVnID0gSTkxNV9GRU5DRV9SRUdfTk9ORTsKPiAgIAlvYmotPm1hZHYgPSBJOTE1X01BRFZf V0lMTE5FRUQ7Cj4KPiAtCWk5MTVfZ2VtX2luZm9fYWRkX29iaihvYmotPmJhc2UuZGV2LT5kZXZf cHJpdmF0ZSwgb2JqLT5iYXNlLnNpemUpOwo+ICsJaTkxNV9nZW1faW5mb19hZGRfb2JqKHRvX2k5 MTUob2JqKSwgb2JqLT5iYXNlLnNpemUpOwo+ICAgfQo+Cj4gICBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIGk5MTVfZ2VtX29iamVjdF9vcHMgPSB7Cj4gQEAgLTQ1 NDUsOCArNDU0Miw3IEBAIHN0YXRpYyBib29sIGRpc2NhcmRfYmFja2luZ19zdG9yYWdlKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0 KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfYm8oZ2VtX29iaik7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iaik7Cj4gICAJc3RydWN0IGk5MTVfdm1hICp2bWEsICpu ZXh0Owo+Cj4gICAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwo+IEBAIC00NjQ3LDcg KzQ2NDMsNyBAQCB2b2lkIGk5MTVfZ2VtX3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1h KQo+Cj4gICAJbGlzdF9kZWwoJnZtYS0+b2JqX2xpbmspOwo+Cj4gLQlrbWVtX2NhY2hlX2ZyZWUo dG9faTkxNSh2bWEtPm9iai0+YmFzZS5kZXYpLT52bWFzLCB2bWEpOwo+ICsJa21lbV9jYWNoZV9m cmVlKHRvX2k5MTUodm1hLT5vYmopLT52bWFzLCB2bWEpOwo+ICAgfQo+Cj4gICBzdGF0aWMgdm9p ZAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBpbmRleCAz NzRhMGNiN2EwOTIuLjM5ZWQ0MDNiOWRlMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyB2b2lkIGVi X2Rlc3Ryb3koc3RydWN0IGViX3ZtYXMgKmViKQo+Cj4gICBzdGF0aWMgaW5saW5lIGludCB1c2Vf Y3B1X3JlbG9jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICB7Cj4gLQlyZXR1 cm4gKEhBU19MTEMob2JqLT5iYXNlLmRldikgfHwKPiArCXJldHVybiAoSEFTX0xMQyhvYmopIHx8 Cj4gICAJCW9iai0+YmFzZS53cml0ZV9kb21haW4gPT0gSTkxNV9HRU1fRE9NQUlOX0NQVSB8fAo+ ICAgCQlvYmotPmNhY2hlX2xldmVsICE9IEk5MTVfQ0FDSEVfTk9ORSk7Cj4gICB9Cj4gQEAgLTMx Miw4ICszMTIsNyBAQCByZWxvY2F0ZV9lbnRyeV9ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiAgIAkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5ICpy ZWxvYywKPiAgIAkJICAgdWludDY0X3QgdGFyZ2V0X29mZnNldCkKPiAgIHsKPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUob2JqKTsKPiAgIAl1aW50NjRfdCBkZWx0YSA9IHJlbG9j YXRpb25fdGFyZ2V0KHJlbG9jLCB0YXJnZXRfb2Zmc2V0KTsKPiAgIAl1aW50NjRfdCBvZmZzZXQ7 Cj4gICAJdm9pZCBfX2lvbWVtICpyZWxvY19wYWdlOwo+IEBAIC0zMzQsNyArMzMzLDcgQEAgcmVs b2NhdGVfZW50cnlfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCQkJ CSAgICAgIG9mZnNldCAmIFBBR0VfTUFTSyk7Cj4gICAJaW93cml0ZTMyKGxvd2VyXzMyX2JpdHMo ZGVsdGEpLCByZWxvY19wYWdlICsgb2Zmc2V0X2luX3BhZ2Uob2Zmc2V0KSk7Cj4KPiAtCWlmIChJ TlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7Cj4gKwlpZiAoSU5URUxfSU5GTyhvYmopLT5nZW4g Pj0gOCkgewo+ICAgCQlvZmZzZXQgKz0gc2l6ZW9mKHVpbnQzMl90KTsKPgo+ICAgCQlpZiAob2Zm c2V0X2luX3BhZ2Uob2Zmc2V0KSA9PSAwKSB7Cj4gQEAgLTM2Nyw3ICszNjYsNiBAQCByZWxvY2F0 ZV9lbnRyeV9jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCSAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgKnJlbG9jLAo+ICAgCQkg ICAgICAgdWludDY0X3QgdGFyZ2V0X29mZnNldCkKPiAgIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+ICAgCXVpbnQzMl90IHBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0 X2luX3BhZ2UocmVsb2MtPm9mZnNldCk7Cj4gICAJdWludDY0X3QgZGVsdGEgPSByZWxvY2F0aW9u X3RhcmdldChyZWxvYywgdGFyZ2V0X29mZnNldCk7Cj4gICAJY2hhciAqdmFkZHI7Cj4gQEAgLTM4 MSw3ICszNzksNyBAQCByZWxvY2F0ZV9lbnRyeV9jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCj4gICAJCQkJcmVsb2MtPm9mZnNldCA+PiBQQUdFX1NISUZUKSk7Cj4gICAJ Y2xmbHVzaF93cml0ZTMyKHZhZGRyICsgcGFnZV9vZmZzZXQsIGxvd2VyXzMyX2JpdHMoZGVsdGEp KTsKPgo+IC0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKPiArCWlmIChJTlRFTF9J TkZPKG9iaiktPmdlbiA+PSA4KSB7Cj4gICAJCXBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0X2luX3BhZ2Uo cGFnZV9vZmZzZXQgKyBzaXplb2YodWludDMyX3QpKTsKPgo+ICAgCQlpZiAocGFnZV9vZmZzZXQg PT0gMCkgewo+IEBAIC00MDMsNyArNDAxLDYgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZWxvY2F0 ZV9lbnRyeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCQkJCSAgIHN0cnVj dCBlYl92bWFzICplYiwKPiAgIAkJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25f ZW50cnkgKnJlbG9jKQo+ICAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFz ZS5kZXY7Cj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICp0YXJnZXRfb2JqOwo+ICAgCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICp0YXJnZXRfaTkxNV9vYmo7Cj4gICAJc3RydWN0IGk5MTVf dm1hICp0YXJnZXRfdm1hOwo+IEBAIC00MjIsNyArNDE5LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZl cl9yZWxvY2F0ZV9lbnRyeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCS8q IFNhbmR5YnJpZGdlIFBQR1RUIGVycmF0YTogV2UgbmVlZCBhIGdsb2JhbCBndHQgbWFwcGluZyBm b3IgTUkgYW5kCj4gICAJICogcGlwZV9jb250cm9sIHdyaXRlcyBiZWNhdXNlIHRoZSBncHUgZG9l c24ndCBwcm9wZXJseSByZWRpcmVjdCB0aGVtCj4gICAJICogdGhyb3VnaCB0aGUgcHBndHQgZm9y IG5vbl9zZWN1cmUgYmF0Y2hidWZmZXJzLiAqLwo+IC0JaWYgKHVubGlrZWx5KElTX0dFTjYoZGV2 KSAmJgo+ICsJaWYgKHVubGlrZWx5KElTX0dFTjYob2JqKSAmJgo+ICAgCSAgICByZWxvYy0+d3Jp dGVfZG9tYWluID09IEk5MTVfR0VNX0RPTUFJTl9JTlNUUlVDVElPTikpIHsKPiAgIAkJcmV0ID0g aTkxNV92bWFfYmluZCh0YXJnZXRfdm1hLCB0YXJnZXRfaTkxNV9vYmotPmNhY2hlX2xldmVsLAo+ ICAgCQkJCSAgICBQSU5fR0xPQkFMKTsKPiBAQCAtNDY0LDcgKzQ2MSw3IEBAIGk5MTVfZ2VtX2V4 ZWNidWZmZXJfcmVsb2NhdGVfZW50cnkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK Pgo+ICAgCS8qIENoZWNrIHRoYXQgdGhlIHJlbG9jYXRpb24gYWRkcmVzcyBpcyB2YWxpZC4uLiAq Lwo+ICAgCWlmICh1bmxpa2VseShyZWxvYy0+b2Zmc2V0ID4KPiAtCQlvYmotPmJhc2Uuc2l6ZSAt IChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4ID8gOCA6IDQpKSkgewo+ICsJCW9iai0+YmFzZS5z aXplIC0gKElOVEVMX0lORk8ob2JqKS0+Z2VuID49IDggPyA4IDogNCkpKSB7Cj4gICAJCURSTV9E RUJVRygiUmVsb2NhdGlvbiBiZXlvbmQgb2JqZWN0IGJvdW5kczogIgo+ICAgCQkJICAib2JqICVw IHRhcmdldCAlZCBvZmZzZXQgJWQgc2l6ZSAlZC5cbiIsCj4gICAJCQkgIG9iaiwgcmVsb2MtPnRh cmdldF9oYW5kbGUsCj4gQEAgLTY3Miw3ICs2NjksNyBAQCBuZWVkX3JlbG9jX21hcHBhYmxlKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgCQlyZXR1cm4gZmFsc2U7Cj4KPiAgIAkvKiBTZWUgYWxz byB1c2VfY3B1X3JlbG9jKCkgKi8KPiAtCWlmIChIQVNfTExDKHZtYS0+b2JqLT5iYXNlLmRldikp Cj4gKwlpZiAoSEFTX0xMQyh2bWEtPm9iaikpCgpUaGluZ3MgbGlrZSBIQVNfTExDKG9iaikgYW5k IEhBU19MTEMoZW5naW5lKSBhcmUgSU1ITyBpbGxvZ2ljYWwgYW5kIApub24taW50dWl0aXZlLgoK dG9faTkxNSh2YXJpb3VzKSBtYWtlcyBzZW5zZSwgYmVjYXVzZSBhbnkgaTkxNSBvYmplY3QgaXMg ZXhhY3RseSB0aGF0IC0gCmFuIGk5MTUgb2JqZWN0LiBmb3JfZWFjaF9lbmdpbmUgaXMgYWxzbyBP Sy4gQnV0IGdvaW5nIGZ1cnRoZXIgdGhhbiB0aGF0IAppcyBub3QgZGVzaXJhYmxlLgoKUmVnYXJk cywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK