From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH v5 3/4] drm/i915/bdw: Pin the context backing objects to GGTT on-demand Date: Tue, 18 Nov 2014 12:10:51 +0530 Message-ID: <546AE9F3.2080107@intel.com> References: <1414576373-25121-3-git-send-email-thomas.daniel@intel.com> <1415874490-386-1-git-send-email-thomas.daniel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id C54926E3AE for ; Sun, 16 Nov 2014 22:44:14 -0800 (PST) In-Reply-To: <1415874490-386-1-git-send-email-thomas.daniel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIFRodXJzZGF5IDEzIE5vdmVtYmVyIDIwMTQgMDM6NTggUE0sIFRob21hcyBEYW5pZWwgd3Jv dGU6Cj4gRnJvbTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KPgo+IFVwIHVu dGlsIG5vdywgd2UgaGF2ZSBwaW5uZWQgZXZlcnkgbG9naWNhbCByaW5nIGNvbnRleHQgYmFja2lu ZyBvYmplY3QKPiBkdXJpbmcgY3JlYXRpb24sIGFuZCBsZWZ0IGl0IHBpbm5lZCB1bnRpbCBkZXN0 cnVjdGlvbi4gVGhpcyBtYWRlIG15IGxpZmUKPiBlYXNpZXIsIGJ1dCBpdCdzIGEgaGFybWZ1bCB0 aGluZyB0byBkbywgYmVjYXVzZSB3ZSBjYXVzZSBmcmFnbWVudGF0aW9uCj4gb2YgdGhlIEdHVFQg KGFuZCwgZXZlbnR1YWxseSwgd2Ugd291bGQgcnVuIG91dCBvZiBzcGFjZSkuCj4KPiBUaGlzIHBh dGNoIG1ha2VzIHRoZSBwaW5uaW5nIG9uLWRlbWFuZDogdGhlIGJhY2tpbmcgb2JqZWN0cyBvZiB0 aGUgdHdvCj4gY29udGV4dHMgdGhhdCBhcmUgd3JpdHRlbiB0byB0aGUgRUxTUCBhcmUgcGlubmVk IHJpZ2h0IGJlZm9yZSBzdWJtaXNzaW9uCj4gYW5kIHVucGlubmVkIG9uY2UgdGhlIGhhcmR3YXJl IGlzIGRvbmUgd2l0aCB0aGVtLiBUaGUgb25seSBjb250ZXh0IHRoYXQKPiBpcyBzdGlsbCBwaW5u ZWQgcmVnYXJkbGVzcyBpcyB0aGUgZ2xvYmFsIGRlZmF1bHQgb25lLCBzbyB0aGF0IHRoZSBIV1Mg Y2FuCj4gc3RpbGwgYmUgYWNjZXNzZWQgaW4gdGhlIHNhbWUgd2F5IChyaW5nLT5zdGF0dXNfcGFn ZSkuCj4KPiB2MjogSW4gdGhlIGVhcmx5IHZlcnNpb24gb2YgdGhpcyBwYXRjaCwgd2Ugd2VyZSBw aW5uaW5nIHRoZSBjb250ZXh0IGFzCj4gd2UgcHV0IGl0IGludG8gdGhlIEVMU1A6IG9uIHRoZSBv bmUgaGFuZCwgdGhpcyBpcyB2ZXJ5IGVmZmljaWVudCBiZWNhdXNlCj4gb25seSBhIG1heGltdW0g dHdvIGNvbnRleHRzIGFyZSBwaW5uZWQgYXQgYW55IGdpdmVuIHRpbWUsIGJ1dCBvbiB0aGUgb3Ro ZXIKPiBoYW5kLCB3ZSBjYW5ub3QgcmVhbGx5IHBpbiBpbiBpbnRlcnJ1cHQgdGltZSA6KAo+Cj4g djM6IFVzZSBhIG11dGV4IHJhdGhlciB0aGFuIGF0b21pY190IHRvIHByb3RlY3QgcGluIGNvdW50 IHRvIGF2b2lkIHJhY2VzLgo+IERvIG5vdCB1bnBpbiBkZWZhdWx0IGNvbnRleHQgaW4gZnJlZV9y ZXF1ZXN0Lgo+Cj4gdjQ6IEJyZWFrIG91dCBwaW4gYW5kIHVucGluIGludG8gZnVuY3Rpb25zLiAg Rml4IHN0eWxlIHByb2JsZW1zIHJlcG9ydGVkCj4gYnkgY2hlY2twYXRjaAo+Cj4gdjU6IFJlbW92 ZSB1bnBpbl9sb2NrIGFzIGFsbCBwaW5uaW5nIGFuZCB1bnBpbm5pbmcgaXMgZG9uZSB3aXRoIHRo ZSBzdHJ1Y3QKPiBtdXRleCBhbHJlYWR5IGxvY2tlZC4gIEFkZCBXQVJOX09OcyB0byBtYWtlIHN1 cmUgdGhpcyBpcyB0aGUgY2FzZSBpbiBmdXR1cmUuCj4KPiBJc3N1ZTogVklaLTQyNzcKPiBTaWdu ZWQtb2ZmLWJ5OiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IFRob21hcyBEYW5pZWwgPHRob21hcy5kYW5pZWxAaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCAgIDEyICsrKysrLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgICAxICsKPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgIHwgICAzOSArKysrKysrKysrKysrLS0tLS0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgfCAgIDY5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aCAgICB8ICAgIDQgKysKPiAgIDUgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgMjcg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IGU2 MGQ1YzIuLjZlYWY4MTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBA IC0xNzk5LDEwICsxNzk5LDE2IEBAIHN0YXRpYyBpbnQgaTkxNV9kdW1wX2xyYyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgIAkJCQljb250aW51ZTsKPiAgIAo+ICAgCQkJaWYg KGN0eF9vYmopIHsKPiAtCQkJCXN0cnVjdCBwYWdlICpwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dl dF9wYWdlKGN0eF9vYmosIDEpOwo+IC0JCQkJdWludDMyX3QgKnJlZ19zdGF0ZSA9IGttYXBfYXRv bWljKHBhZ2UpOwo+ICsJCQkJc3RydWN0IHBhZ2UgKnBhZ2U7Cj4gKwkJCQl1aW50MzJfdCAqcmVn X3N0YXRlOwo+ICAgCQkJCWludCBqOwo+ICAgCj4gKwkJCQlpOTE1X2dlbV9vYmpfZ2d0dF9waW4o Y3R4X29iaiwKPiArCQkJCQkJR0VOOF9MUl9DT05URVhUX0FMSUdOLCAwKTsKPiArCj4gKwkJCQlw YWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGN0eF9vYmosIDEpOwo+ICsJCQkJcmVnX3N0 YXRlID0ga21hcF9hdG9taWMocGFnZSk7Cj4gKwo+ICAgCQkJCXNlcV9wcmludGYobSwgIkNPTlRF WFQ6ICVzICV1XG4iLCByaW5nLT5uYW1lLAo+ICAgCQkJCQkJaW50ZWxfZXhlY2xpc3RzX2N0eF9p ZChjdHhfb2JqKSk7Cj4gICAKPiBAQCAtMTgxNCw2ICsxODIwLDggQEAgc3RhdGljIGludCBpOTE1 X2R1bXBfbHJjKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICAgCQkJCX0KPiAg IAkJCQlrdW5tYXBfYXRvbWljKHJlZ19zdGF0ZSk7Cj4gICAKPiArCQkJCWk5MTVfZ2VtX29iamVj dF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICsKPiAgIAkJCQlzZXFfcHV0YyhtLCAnXG4nKTsKPiAg IAkJCX0KPiAgIAkJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDA1OTMzMGMuLjNj NzI5OWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNjU1LDYgKzY1NSw3IEBA IHN0cnVjdCBpbnRlbF9jb250ZXh0IHsKPiAgIAlzdHJ1Y3Qgewo+ICAgCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqc3RhdGU7Cj4gICAJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n YnVmOwo+ICsJCWludCB1bnBpbl9jb3VudDsKPiAgIAl9IGVuZ2luZVtJOTE1X05VTV9SSU5HU107 Cj4gICAKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j Cj4gaW5kZXggNDA4YWZlNy4uMmVlNjk5NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ IEBAIC0yNDk0LDEyICsyNDk0LDE4IEBAIHN0YXRpYyB2b2lkIGk5MTVfc2V0X3Jlc2V0X3N0YXR1 cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAKPiAgIHN0YXRpYyB2b2lk IGk5MTVfZ2VtX2ZyZWVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxdWVzdC0+Y3R4Owo+ ICsKPiAgIAlsaXN0X2RlbCgmcmVxdWVzdC0+bGlzdCk7Cj4gICAJaTkxNV9nZW1fcmVxdWVzdF9y ZW1vdmVfZnJvbV9jbGllbnQocmVxdWVzdCk7Cj4gICAKPiAtCWlmIChyZXF1ZXN0LT5jdHgpCj4g LQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShyZXF1ZXN0LT5jdHgpOwo+ICsJaWYgKGk5 MTUuZW5hYmxlX2V4ZWNsaXN0cyAmJiBjdHgpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nID0gcmVxdWVzdC0+cmluZzsKPiAgIAo+ICsJCWlmIChjdHggIT0gcmluZy0+ZGVmYXVs dF9jb250ZXh0KQo+ICsJCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJpbmcsIGN0eCk7Cj4gKwkJ aTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShjdHgpOwo+ICsJfQo+ICAgCWtmcmVlKHJlcXVl c3QpOwo+ICAgfQo+ICAgCj4gQEAgLTI1NTQsNiArMjU2MCwyMyBAQCBzdGF0aWMgdm9pZCBpOTE1 X2dlbV9yZXNldF9yaW5nX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAgCX0KPiAgIAo+ICAgCS8qCj4gKwkgKiBDbGVhciB0aGUgZXhlY2xpc3RzIHF1ZXVlIHVw IGJlZm9yZSBmcmVlaW5nIHRoZSByZXF1ZXN0cywgYXMgdGhvc2UKPiArCSAqIGFyZSB0aGUgb25l cyB0aGF0IGtlZXAgdGhlIGNvbnRleHQgYW5kIHJpbmdidWZmZXIgYmFja2luZyBvYmplY3RzCj4g KwkgKiBwaW5uZWQgaW4gcGxhY2UuCj4gKwkgKi8KPiArCXdoaWxlICghbGlzdF9lbXB0eSgmcmlu Zy0+ZXhlY2xpc3RfcXVldWUpKSB7Cj4gKwkJc3RydWN0IGludGVsX2N0eF9zdWJtaXRfcmVxdWVz dCAqc3VibWl0X3JlcTsKPiArCj4gKwkJc3VibWl0X3JlcSA9IGxpc3RfZmlyc3RfZW50cnkoJnJp bmctPmV4ZWNsaXN0X3F1ZXVlLAo+ICsJCQkJc3RydWN0IGludGVsX2N0eF9zdWJtaXRfcmVxdWVz dCwKPiArCQkJCWV4ZWNsaXN0X2xpbmspOwo+ICsJCWxpc3RfZGVsKCZzdWJtaXRfcmVxLT5leGVj bGlzdF9saW5rKTsKPiArCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gKwkJaTkx NV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShzdWJtaXRfcmVxLT5jdHgpOwo+ICsJCWtmcmVlKHN1 Ym1pdF9yZXEpOwo+ICsJfQo+ICsKPiArCS8qCj4gICAJICogV2UgbXVzdCBmcmVlIHRoZSByZXF1 ZXN0cyBhZnRlciBhbGwgdGhlIGNvcnJlc3BvbmRpbmcgb2JqZWN0cyBoYXZlCj4gICAJICogYmVl biBtb3ZlZCBvZmYgYWN0aXZlIGxpc3RzLiBXaGljaCBpcyB0aGUgc2FtZSBvcmRlciBhcyB0aGUg bm9ybWFsCj4gICAJICogcmV0aXJlX3JlcXVlc3RzIGZ1bmN0aW9uIGRvZXMuIFRoaXMgaXMgaW1w b3J0YW50IGlmIG9iamVjdCBob2xkCj4gQEAgLTI1NzAsMTggKzI1OTMsNiBAQCBzdGF0aWMgdm9p ZCBpOTE1X2dlbV9yZXNldF9yaW5nX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAgCQlpOTE1X2dlbV9mcmVlX3JlcXVlc3QocmVxdWVzdCk7Cj4gICAJfQo+ICAg Cj4gLQl3aGlsZSAoIWxpc3RfZW1wdHkoJnJpbmctPmV4ZWNsaXN0X3F1ZXVlKSkgewo+IC0JCXN0 cnVjdCBpbnRlbF9jdHhfc3VibWl0X3JlcXVlc3QgKnN1Ym1pdF9yZXE7Cj4gLQo+IC0JCXN1Ym1p dF9yZXEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZyaW5nLT5leGVjbGlzdF9xdWV1ZSwKPiAtCQkJCXN0 cnVjdCBpbnRlbF9jdHhfc3VibWl0X3JlcXVlc3QsCj4gLQkJCQlleGVjbGlzdF9saW5rKTsKPiAt CQlsaXN0X2RlbCgmc3VibWl0X3JlcS0+ZXhlY2xpc3RfbGluayk7Cj4gLQkJaW50ZWxfcnVudGlt ZV9wbV9wdXQoZGV2X3ByaXYpOwo+IC0JCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2Uoc3Vi bWl0X3JlcS0+Y3R4KTsKPiAtCQlrZnJlZShzdWJtaXRfcmVxKTsKPiAtCX0KPiAtCj4gICAJLyog VGhlc2UgbWF5IG5vdCBoYXZlIGJlZW4gZmx1c2ggYmVmb3JlIHRoZSByZXNldCwgZG8gc28gbm93 ICovCj4gICAJa2ZyZWUocmluZy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVzdCk7Cj4gICAJcmlu Zy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVzdCA9IE5VTEw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiBpbmRleCA5MDZiOTg1Li5mN2ZhMGY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiBAQCAtMTM5LDggKzEzOSw2IEBACj4gICAjZGVmaW5lIEdFTjhfTFJfQ09OVEVYVF9S RU5ERVJfU0laRSAoMjAgKiBQQUdFX1NJWkUpCj4gICAjZGVmaW5lIEdFTjhfTFJfQ09OVEVYVF9P VEhFUl9TSVpFICgyICogUEFHRV9TSVpFKQo+ICAgCj4gLSNkZWZpbmUgR0VOOF9MUl9DT05URVhU X0FMSUdOIDQwOTYKPiAtCj4gICAjZGVmaW5lIFJJTkdfRVhFQ0xJU1RfUUZVTEwJCSgxIDw8IDB4 MikKPiAgICNkZWZpbmUgUklOR19FWEVDTElTVDFfVkFMSUQJCSgxIDw8IDB4MykKPiAgICNkZWZp bmUgUklOR19FWEVDTElTVDBfVkFMSUQJCSgxIDw8IDB4NCkKPiBAQCAtODAxLDkgKzc5OSw0MCBA QCB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYpCj4gICAJZXhlY2xpc3RzX2NvbnRleHRfcXVldWUocmluZywg Y3R4LCByaW5nYnVmLT50YWlsKTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50IGludGVsX2xyX2Nv bnRleHRfcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9v YmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4g KwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7CgpX aXRoIHBpbiBzcGVjaWZpYyBtdXRleCBmcm9tIHByZXZpb3VzIHBhdGNoIHNldCByZW1vdmVkLgpS ZXZpZXdlZC1ieTogRGVlcGFrIFM8ZGVlcGFrLnNAbGludXguaW50ZWwuY29tPgoKPiArCWlmIChj dHgtPmVuZ2luZVtyaW5nLT5pZF0udW5waW5fY291bnQrKyA9PSAwKSB7Cj4gKwkJcmV0ID0gaTkx NV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmosCj4gKwkJCQlHRU44X0xSX0NPTlRFWFRfQUxJR04s IDApOwo+ICsJCWlmIChyZXQpCj4gKwkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS51bnBpbl9jb3Vu dCA9IDA7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArdm9pZCBpbnRlbF9s cl9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg KmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gKwo+ICsJaWYgKGN0eF9v YmopIHsKPiArCQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211 dGV4KSk7Cj4gKwkJaWYgKC0tY3R4LT5lbmdpbmVbcmluZy0+aWRdLnVucGluX2NvdW50ID09IDAp Cj4gKwkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICsJfQo+ICt9Cj4g Kwo+ICAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfYWxsb2Nfc2Vxbm8oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKPiAgIAkJCQkgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiAg IHsKPiArCWludCByZXQ7Cj4gKwo+ICAgCWlmIChyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5v KQo+ICAgCQlyZXR1cm4gMDsKPiAgIAo+IEBAIC04MTQsNiArODQzLDE0IEBAIHN0YXRpYyBpbnQg bG9naWNhbF9yaW5nX2FsbG9jX3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4g ICAJCWlmIChyZXF1ZXN0ID09IE5VTEwpCj4gICAJCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ICsJ CWlmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gKwkJCXJldCA9IGludGVsX2xy X2NvbnRleHRfcGluKHJpbmcsIGN0eCk7Cj4gKwkJCWlmIChyZXQpIHsKPiArCQkJCWtmcmVlKHJl cXVlc3QpOwo+ICsJCQkJcmV0dXJuIHJldDsKPiArCQkJfQo+ICsJCX0KPiArCj4gICAJCS8qIEhv bGQgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQgdGhpcyByZXF1ZXN0IGJlbG9uZ3MgdG8KPiAg IAkJICogKHdlIHdpbGwgbmVlZCBpdCB3aGVuIHRoZSB0aW1lIGNvbWVzIHRvIGVtaXQvcmV0aXJl IHRoZQo+ICAgCQkgKiByZXF1ZXN0KS4KPiBAQCAtMTYyNiwxMiArMTY2MywxNiBAQCB2b2lkIGlu dGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICAgCj4gICAJ Zm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiAgIAkJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtpXS5zdGF0ZTsKPiAtCQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW2ldLnJpbmdidWY7Cj4g ICAKPiAgIAkJaWYgKGN0eF9vYmopIHsKPiArCQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYgPQo+ICsJCQkJCWN0eC0+ZW5naW5lW2ldLnJpbmdidWY7Cj4gKwkJCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOwo+ICsKPiAgIAkJCWludGVsX2Rlc3Ry b3lfcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gICAJCQlrZnJlZShyaW5nYnVmKTsKPiAtCQkJ aTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gKwkJCWlmIChjdHggPT0gcmlu Zy0+ZGVmYXVsdF9jb250ZXh0KQo+ICsJCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4 X29iaik7Cj4gICAJCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7 Cj4gICAJCX0KPiAgIAl9Cj4gQEAgLTE2OTUsNiArMTczNiw3IEBAIHN0YXRpYyBpbnQgbHJjX3Nl dHVwX2hhcmR3YXJlX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4g ICBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCwKPiAgIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICB7 Cj4gKwljb25zdCBib29sIGlzX2dsb2JhbF9kZWZhdWx0X2N0eCA9IChjdHggPT0gcmluZy0+ZGVm YXVsdF9jb250ZXh0KTsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+ ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwo+ICAgCXVpbnQzMl90IGNv bnRleHRfc2l6ZTsKPiBAQCAtMTcxNCwxOCArMTc1NiwyMiBAQCBpbnQgaW50ZWxfbHJfY29udGV4 dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgIAkJcmV0dXJu IHJldDsKPiAgIAl9Cj4gICAKPiAtCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjdHhfb2Jq LCBHRU44X0xSX0NPTlRFWFRfQUxJR04sIDApOwo+IC0JaWYgKHJldCkgewo+IC0JCURSTV9ERUJV R19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBvYmogZmFpbGVkOiAlZFxuIiwgcmV0KTsKPiAtCQlk cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7Cj4gLQkJcmV0dXJuIHJl dDsKPiArCWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHgpIHsKPiArCQlyZXQgPSBpOTE1X2dlbV9v YmpfZ2d0dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLCAwKTsKPiArCQlpZiAo cmV0KSB7Cj4gKwkJCURSTV9ERUJVR19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBvYmogZmFpbGVk OiAlZFxuIiwKPiArCQkJCQlyZXQpOwo+ICsJCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgm Y3R4X29iai0+YmFzZSk7Cj4gKwkJCXJldHVybiByZXQ7Cj4gKwkJfQo+ICAgCX0KPiAgIAo+ICAg CXJpbmdidWYgPSBremFsbG9jKHNpemVvZigqcmluZ2J1ZiksIEdGUF9LRVJORUwpOwo+ICAgCWlm ICghcmluZ2J1Zikgewo+ICAgCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gYWxsb2NhdGUg cmluZ2J1ZmZlciAlc1xuIiwKPiAgIAkJCQlyaW5nLT5uYW1lKTsKPiAtCQlpOTE1X2dlbV9vYmpl Y3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiArCQlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRfY3R4KQo+ ICsJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiAgIAkJZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ICAgCQlyZXQgPSAtRU5PTUVNOwo+ ICAgCQlyZXR1cm4gcmV0Owo+IEBAIC0xNzg3LDcgKzE4MzMsOCBAQCBpbnQgaW50ZWxfbHJfY29u dGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgIAo+ICAg ZXJyb3I6Cj4gICAJa2ZyZWUocmluZ2J1Zik7Cj4gLQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihjdHhfb2JqKTsKPiArCWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHgpCj4gKwkJaTkxNV9nZW1f b2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVu Y2UoJmN0eF9vYmotPmJhc2UpOwo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmgKPiBpbmRleCA4NGJiZjE5Li4xNGIyMTZiIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmgKPiBAQCAtMjQsNiArMjQsOCBAQAo+ICAgI2lmbmRlZiBfSU5URUxfTFJDX0hf Cj4gICAjZGVmaW5lIF9JTlRFTF9MUkNfSF8KPiAgIAo+ICsjZGVmaW5lIEdFTjhfTFJfQ09OVEVY VF9BTElHTiA0MDk2Cj4gKwo+ICAgLyogRXhlY2xpc3RzIHJlZ3MgKi8KPiAgICNkZWZpbmUgUklO R19FTFNQKHJpbmcpCQkJKChyaW5nKS0+bW1pb19iYXNlKzB4MjMwKQo+ICAgI2RlZmluZSBSSU5H X0VYRUNMSVNUX1NUQVRVUyhyaW5nKQkoKHJpbmcpLT5tbWlvX2Jhc2UrMHgyMzQpCj4gQEAgLTY3 LDYgKzY5LDggQEAgaW50IGludGVsX2xyX2NvbnRleHRfcmVuZGVyX3N0YXRlX2luaXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVlKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+ICAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJy ZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gICAJCQkJICAgICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiArdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0 eCk7Cj4gICAKPiAgIC8qIEV4ZWNsaXN0cyAqLwo+ICAgaW50IGludGVsX3Nhbml0aXplX2VuYWJs ZV9leGVjbGlzdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGVuYWJsZV9leGVjbGlzdHMp OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK