From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: introduce & use i915_gem_object_{set, clear, is}_dirty() Date: Mon, 12 Sep 2016 16:48:51 +0100 Message-ID: <57D6CE63.2090706@linux.intel.com> References: <1473450533-20869-1-git-send-email-david.s.gordon@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 ESMTPS id EE0206E51C for ; Mon, 12 Sep 2016 15:48:53 +0000 (UTC) In-Reply-To: <1473450533-20869-1-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMDkvMDkvMTYgMjA6NDgsIERhdmUgR29yZG9uIHdyb3RlOgo+IFRoaXMganVzdCBo aWRlcyB0aGUgZXhpc3Rpbmcgb2JqLT5kaXJ0eSBmbGFnIGluc2lkZSBhIHRyaXZpYWwgaW5saW5l Cj4gc2V0dGVyLCB0byBkaXNjb3VyYWdlIG5vbi1HRU0gY29kZSBmcm9tIGxvb2tpbmcgdG9vIGNs b3NlbHkuIFRoZQo+IGZsYWcgaXMgcmVuYW1lZCB0byBlbXBoYXNpc2UgdGhhdCBpdCBpcyBwcml2 YXRlIHRvIHRoZSBHRU0gbWVtb3J5LQo+IG1hbmFnZW1lbnQgY29kZSBhbmQgZW5zdXJlIHRoYXQg bm8gbGVnYWN5IGNvZGUgY29udGludWVzIHRvIHVzZSBpdAo+IGRpcmVjdGx5Lgo+Cj4gdjI6Cj4g ICAgVXNlIENocmlzIFdpbHNvbidzIHByZWZlcnJlZCBuYW1lcyBmb3IgZmxhZy1yZWxhdGVkIGZ1 bmN0aW9ucwo+Cj4gSW5zcGlyZWQtYnk6IGh0dHA6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvaW50 ZWwtZ2Z4L21zZzkyMzkwLmh0bWwKPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Cj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGlu dGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAg ICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAg ICAgfCAyMiArKysrKysrKysrKysrKysrKysrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jICAgICAgICAgICAgfCAyNSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgNyArKysrKy0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAgMiArLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jICAgIHwgMTIgKysrKysrKy0t LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgMiAr LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgMjkgKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgIDggZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0 aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+IGluZGV4IDAyYjYyN2UuLmI3N2ZjMjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+IEBAIC0xNjAsNyArMTYwLDcgQEAgc3RhdGljIHU2NCBpOTE1X2dlbV9vYmpfdG90 YWxfZ2d0dF9zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICAJCSAgIGk5 MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8oJm9iai0+bGFzdF93cml0ZSwKPiAgIAkJCQkJICAgICAm b2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KSwKPiAgIAkJICAgaTkxNV9jYWNoZV9sZXZlbF9z dHIoZGV2X3ByaXYsIG9iai0+Y2FjaGVfbGV2ZWwpLAo+IC0JCSAgIG9iai0+ZGlydHkgPyAiIGRp cnR5IiA6ICIiLAo+ICsJCSAgIGk5MTVfZ2VtX29iamVjdF9pc19kaXJ0eShvYmopID8gIiBkaXJ0 eSIgOiAiIiwKPiAgIAkJICAgb2JqLT5tYWR2ID09IEk5MTVfTUFEVl9ET05UTkVFRCA/ICIgcHVy Z2VhYmxlIiA6ICIiKTsKPiAgIAlpZiAob2JqLT5iYXNlLm5hbWUpCj4gICAJCXNlcV9wcmludGYo bSwgIiAobmFtZTogJWQpIiwgb2JqLT5iYXNlLm5hbWUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IGluZGV4IGYzOWJlZGUuLjMzM2UyMWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiBAQCAtMjIwOSw3ICsyMjA5LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+ICAg CSAqIFRoaXMgaXMgc2V0IGlmIHRoZSBvYmplY3QgaGFzIGJlZW4gd3JpdHRlbiB0byBzaW5jZSBs YXN0IGJvdW5kCj4gICAJICogdG8gdGhlIEdUVAo+ICAgCSAqLwo+IC0JdW5zaWduZWQgaW50IGRp cnR5OjE7Cj4gKwl1bnNpZ25lZCBpbnQgX19kaXJ0eToxOwo+Cj4gICAJLyoqCj4gICAJICogQWR2 aWNlOiBhcmUgdGhlIGJhY2tpbmcgcGFnZXMgcHVyZ2VhYmxlPwo+IEBAIC0zMTU2LDYgKzMxNTYs MjYgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgIAlvYmotPnBhZ2VzX3Bpbl9jb3VudCsrOwo+ ICAgfQo+Cj4gKy8qCj4gKyAqIEZsYWcgdGhlIG9iamVjdCBjb250ZW50IGFzIGhhdmluZyBjaGFu Z2VkIHNpbmNlIHRoZSBsYXN0IGNhbGwgdG8KPiArICogaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdl cygpIGFib3ZlLCBzbyB0aGF0IHRoZSBuZXcgY29udGVudCBpcyBub3QKPiArICogbG9zdCBhZnRl ciB0aGUgbmV4dCBjYWxsIHRvIGk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcygpIGJlbG93Cj4g KyAqLwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3NldF9kaXJ0eShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICt7Cj4gKwlvYmotPl9fZGlydHkgPSB0cnVl Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2NsZWFyX2Rp cnR5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gK3sKPiArCW9iai0+X19kaXJ0 eSA9IGZhbHNlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fb2JqZWN0 X2lzX2RpcnR5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gK3sKPiArCXJldHVy biBvYmotPl9fZGlydHk7Cj4gK30KPiArCj4gICBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1f b2JqZWN0X3VucGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICB7 Cj4gICAJQlVHX09OKG9iai0+cGFnZXNfcGluX2NvdW50ID09IDApOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+IGluZGV4IDI0MDE4MTguLmY1NzFhMDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKPiBAQCAtMjM0LDkgKzIzNCw4IEBAIGludCBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0 aWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCX0KPgo+ICAgCWlmIChvYmotPm1hZHYg PT0gSTkxNV9NQURWX0RPTlRORUVEKQo+IC0JCW9iai0+ZGlydHkgPSAwOwo+IC0KPiAtCWlmIChv YmotPmRpcnR5KSB7Cj4gKwkJaTkxNV9nZW1fb2JqZWN0X2NsZWFyX2RpcnR5KG9iaik7Cj4gKwll bHNlIGlmIChpOTE1X2dlbV9vYmplY3RfaXNfZGlydHkob2JqKSkgewo+ICAgCQlzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqbWFwcGluZyA9IG9iai0+YmFzZS5maWxwLT5mX21hcHBpbmc7Cj4gICAJCWNo YXIgKnZhZGRyID0gb2JqLT5waHlzX2hhbmRsZS0+dmFkZHI7Cj4gICAJCWludCBpOwo+IEBAIC0y NjAsNyArMjU5LDcgQEAgaW50IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gICAJCQlwdXRfcGFnZShwYWdlKTsKPiAgIAkJCXZhZGRyICs9IFBB R0VfU0laRTsKPiAgIAkJfQo+IC0JCW9iai0+ZGlydHkgPSAwOwo+ICsJCWk5MTVfZ2VtX29iamVj dF9jbGVhcl9kaXJ0eShvYmopOwo+ICAgCX0KPgo+ICAgCXNnX2ZyZWVfdGFibGUob2JqLT5wYWdl cyk7Cj4gQEAgLTcwMyw3ICs3MDIsNyBAQCBpbnQgaTkxNV9nZW1fb2JqX3ByZXBhcmVfc2htZW1f d3JpdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAkJb2JqLT5jYWNoZV9k aXJ0eSA9IHRydWU7Cj4KPiAgIAlpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIE9SSUdJTl9D UFUpOwo+IC0Jb2JqLT5kaXJ0eSA9IDE7Cj4gKwlpOTE1X2dlbV9vYmplY3Rfc2V0X2RpcnR5KG9i aik7Cj4gICAJLyogcmV0dXJuIHdpdGggdGhlIHBhZ2VzIHBpbm5lZCAqLwo+ICAgCXJldHVybiAw Owo+Cj4gQEAgLTExNTYsNyArMTE1NSw3IEBAIGludCBpOTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1l bV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCQlnb3RvIG91dF91 bnBpbjsKCkkgd29uZGVyIHdoeSBkaWZmIGdvdCBzbyBjb25mdXNlZCB3aXRoIHRoaXMgb25lLCBi ZWNhdXNlIHRoaXMgaXNuJ3QgCmk5MTVfZ2VtX29ial9wcmVwYXJlX3NobWVtX3dyaXRlIGFueSBs b25nZXIuCgo+Cj4gICAJaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUob2JqLCBPUklHSU5fQ1BVKTsK PiAtCW9iai0+ZGlydHkgPSB0cnVlOwo+ICsJaTkxNV9nZW1fb2JqZWN0X3NldF9kaXJ0eShvYmop Owo+Cj4gICAJdXNlcl9kYXRhID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmRhdGFfcHRyKTsKPiAg IAlvZmZzZXQgPSBhcmdzLT5vZmZzZXQ7Cj4gQEAgLTEzMjcsNiArMTMyNiw4IEBAIGludCBpOTE1 X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAo+ICAgCW9mZnNldCA9IGFyZ3MtPm9mZnNldDsKPiAgIAlyZW1haW4gPSBhcmdzLT5zaXpl Owo+Cj4gKwlpOTE1X2dlbV9vYmplY3Rfc2V0X2RpcnR5KG9iaik7Cj4gKwoKVGhpcyBpcyBpbiBp OTE1X2dlbV9zaG1lbV9wd3JpdGUgYnkgdGhlIGxvb2sgb2YgaXQuIEl0IHdpbGwgaGF2ZSBkaXJ0 aWVkIAp0aGUgb2JqZWN0IGFscmVhZHkgdmlhIGk5MTVfZ2VtX29ial9wcmVwYXJlX3NobWVtX3dy aXRlLiBZb3UgYWRkZWQgaXQgCmhlcmUgZm9yIHNvbWUgc3BlY2lmaWMgcmVhc29uPwoKPiAgIAlm b3JfZWFjaF9zZ19wYWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMtPm5l bnRzLAo+ICAgCQkJIG9mZnNldCA+PiBQQUdFX1NISUZUKSB7Cj4gICAJCXN0cnVjdCBwYWdlICpw YWdlID0gc2dfcGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwo+IEBAIC0yMTMzLDYgKzIxMzQsNyBA QCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9vYmplY3RfZnJlZV9tbWFwX29mZnNldChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+ICAgCXN0cnVjdCBzZ3RfaXRlciBzZ3RfaXRl cjsKPiAgIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKPiArCWJvb2wgZGlydHk7Cj4gICAJaW50IHJldDsK Pgo+ICAgCUJVR19PTihvYmotPm1hZHYgPT0gX19JOTE1X01BRFZfUFVSR0VEKTsKPiBAQCAtMjE1 MiwxMCArMjE1NCwxMSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9vYmplY3RfZnJlZV9tbWFwX29m ZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgCQlpOTE1X2dlbV9vYmpl Y3Rfc2F2ZV9iaXRfMTdfc3dpenpsZShvYmopOwo+Cj4gICAJaWYgKG9iai0+bWFkdiA9PSBJOTE1 X01BRFZfRE9OVE5FRUQpCj4gLQkJb2JqLT5kaXJ0eSA9IDA7Cj4gKwkJaTkxNV9nZW1fb2JqZWN0 X2NsZWFyX2RpcnR5KG9iaik7Cj4KPiArCWRpcnR5ID0gaTkxNV9nZW1fb2JqZWN0X2lzX2RpcnR5 KG9iaik7Cj4gICAJZm9yX2VhY2hfc2d0X3BhZ2UocGFnZSwgc2d0X2l0ZXIsIG9iai0+cGFnZXMp IHsKPiAtCQlpZiAob2JqLT5kaXJ0eSkKPiArCQlpZiAoZGlydHkpCj4gICAJCQlzZXRfcGFnZV9k aXJ0eShwYWdlKTsKPgo+ICAgCQlpZiAob2JqLT5tYWR2ID09IEk5MTVfTUFEVl9XSUxMTkVFRCkK PiBAQCAtMjE2Myw3ICsyMTY2LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZyZWVf bW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPgo+ICAgCQlwdXRf cGFnZShwYWdlKTsKPiAgIAl9Cj4gLQlvYmotPmRpcnR5ID0gMDsKPiArCWk5MTVfZ2VtX29iamVj dF9jbGVhcl9kaXJ0eShvYmopOwo+Cj4gICAJc2dfZnJlZV90YWJsZShvYmotPnBhZ2VzKTsKPiAg IAlrZnJlZShvYmotPnBhZ2VzKTsKPiBAQCAtMzMyMSw3ICszMzI0LDcgQEAgc3RhdGljIHZvaWQg aTkxNV9nZW1fb2JqZWN0X2J1bXBfaW5hY3RpdmVfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQo+ICAgCWlmICh3cml0ZSkgewo+ICAgCQlvYmotPmJhc2UucmVhZF9kb21haW5z ID0gSTkxNV9HRU1fRE9NQUlOX0dUVDsKPiAgIAkJb2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9IEk5 MTVfR0VNX0RPTUFJTl9HVFQ7Cj4gLQkJb2JqLT5kaXJ0eSA9IDE7Cj4gKwkJaTkxNV9nZW1fb2Jq ZWN0X3NldF9kaXJ0eShvYmopOwo+ICAgCX0KPgo+ICAgCXRyYWNlX2k5MTVfZ2VtX29iamVjdF9j aGFuZ2VfZG9tYWluKG9iaiwKPiBAQCAtNDc4OSw3ICs0NzkyLDcgQEAgc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKgo+ICAgCWk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKPiAgIAlz ZyA9IG9iai0+cGFnZXM7Cj4gICAJYnl0ZXMgPSBzZ19jb3B5X2Zyb21fYnVmZmVyKHNnLT5zZ2ws IHNnLT5uZW50cywgKHZvaWQgKilkYXRhLCBzaXplKTsKPiAtCW9iai0+ZGlydHkgPSAxOwkJLyog QmFja2luZyBzdG9yZSBpcyBub3cgb3V0IG9mIGRhdGUgKi8KPiArCWk5MTVfZ2VtX29iamVjdF9z ZXRfZGlydHkob2JqKTsgLyogQmFja2luZyBzdG9yZSBpcyBub3cgb3V0IG9mIGRhdGUgKi8KPiAg IAlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKPgo+ICAgCWlmIChXQVJOX09OKGJ5 dGVzICE9IHNpemUpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ IGluZGV4IDM1OTUwZWUuLmFhOTliYzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jCj4gQEAgLTgzNCw2ICs4MzQsOCBAQCBzdGF0aWMgaW50IGRvX3Jjc19zd2l0 Y2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJICogTUlfU0VUX0NPTlRF WFQgaW5zdGVhZCBvZiB3aGVuIHRoZSBuZXh0IHNlcW5vIGhhcyBjb21wbGV0ZWQuCj4gICAJICov Cj4gICAJaWYgKGZyb20gIT0gTlVMTCkgewo+ICsJCXN0cnVjdCBpOTE1X3ZtYSAqZnJvbV92bWEg PSBmcm9tLT5lbmdpbmVbUkNTXS5zdGF0ZTsKPiArCj4gICAJCS8qIEFzIGxvbmcgYXMgTUlfU0VU X0NPTlRFWFQgaXMgc2VyaWFsaXppbmcsIGllLiBpdCBmbHVzaGVzIHRoZQo+ICAgCQkgKiB3aG9s ZSBkYW1uIHBpcGVsaW5lLCB3ZSBkb24ndCBuZWVkIHRvIGV4cGxpY2l0bHkgbWFyayB0aGUKPiAg IAkJICogb2JqZWN0IGRpcnR5LiBUaGUgb25seSBleGNlcHRpb24gaXMgdGhhdCB0aGUgY29udGV4 dCBtdXN0IGJlCj4gQEAgLTg0MSw5ICs4NDMsMTAgQEAgc3RhdGljIGludCBkb19yY3Nfc3dpdGNo KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCQkgKiBhYmxlIHRvIGRlZmVy IGRvaW5nIHRoaXMgdW50aWwgd2Uga25vdyB0aGUgb2JqZWN0IHdvdWxkIGJlCj4gICAJCSAqIHN3 YXBwZWQsIGJ1dCB0aGVyZSBpcyBubyB3YXkgdG8gZG8gdGhhdCB5ZXQuCj4gICAJCSAqLwo+IC0J CWk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKGZyb20tPmVuZ2luZVtSQ1NdLnN0YXRlLCByZXEsIDAp Owo+ICsJCWk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKGZyb21fdm1hLCByZXEsIDApOwo+ICsJCWk5 MTVfZ2VtX29iamVjdF9zZXRfZGlydHkoZnJvbV92bWEtPm9iaik7CgpDb21taXQgbWVzc2FnZSBz aG91bGQgbWVudGlvbiB0aGlzLgoKPiAgIAkJLyogc3RhdGUgaXMga2VwdCBhbGl2ZSB1bnRpbCB0 aGUgbmV4dCByZXF1ZXN0ICovCj4gLQkJaTkxNV92bWFfdW5waW4oZnJvbS0+ZW5naW5lW1JDU10u c3RhdGUpOwo+ICsJCWk5MTVfdm1hX3VucGluKGZyb21fdm1hKTsKPiAgIAkJaTkxNV9nZW1fY29u dGV4dF9wdXQoZnJvbSk7Cj4gICAJfQo+ICAgCWVuZ2luZS0+bGFzdF9jb250ZXh0ID0gaTkxNV9n ZW1fY29udGV4dF9nZXQodG8pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVj YnVmZmVyLmMKPiBpbmRleCA5NDMyZDRjLi41Y2E3YmEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IEBAIC0xMjc4LDcgKzEyNzgsNyBAQCB2b2lk IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+Cj4gICAJR0VN X0JVR19PTighZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKTsKPgo+IC0Jb2JqLT5k aXJ0eSA9IDE7IC8qIGJlIHBhcmFub2lkICAqLwo+ICsJaTkxNV9nZW1fb2JqZWN0X3NldF9kaXJ0 eShvYmopOyAvKiBiZSBwYXJhbm9pZCAgKi8KPgo+ICAgCS8qIEFkZCBhIHJlZmVyZW5jZSBpZiB3 ZSdyZSBuZXdseSBlbnRlcmluZyB0aGUgYWN0aXZlIGxpc3QuCj4gICAJICogVGhlIG9yZGVyIGlu IHdoaWNoIHdlIGFkZCBvcGVyYXRpb25zIHRvIHRoZSByZXRpcmVtZW50IHF1ZXVlIGlzCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYwo+IGluZGV4IGJlNTQ4MjUuLmE3OGFi ZTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCj4gQEAgLTY3 NCwyMyArNjc0LDI1IEBAIHN0cnVjdCBnZXRfcGFnZXNfd29yayB7Cj4gICB7Cj4gICAJc3RydWN0 IHNndF9pdGVyIHNndF9pdGVyOwo+ICAgCXN0cnVjdCBwYWdlICpwYWdlOwo+ICsJYm9vbCBkaXJ0 eTsKPgo+ICAgCUJVR19PTihvYmotPnVzZXJwdHIud29yayAhPSBOVUxMKTsKPiAgIAlfX2k5MTVf Z2VtX3VzZXJwdHJfc2V0X2FjdGl2ZShvYmosIGZhbHNlKTsKPgo+IC0JaWYgKG9iai0+bWFkdiAh PSBJOTE1X01BRFZfV0lMTE5FRUQpCj4gLQkJb2JqLT5kaXJ0eSA9IDA7Cj4gLQo+ICAgCWk5MTVf Z2VtX2d0dF9maW5pc2hfb2JqZWN0KG9iaik7Cj4KPiArCWlmIChvYmotPm1hZHYgIT0gSTkxNV9N QURWX1dJTExORUVEKQo+ICsJCWk5MTVfZ2VtX29iamVjdF9jbGVhcl9kaXJ0eShvYmopOwo+ICsK Ckxvb2tzIGxpa2UgaGFybWxlc3MgcmVvcmRlcmluZy4KCj4gKwlkaXJ0eSA9IGk5MTVfZ2VtX29i amVjdF9pc19kaXJ0eShvYmopOwo+ICAgCWZvcl9lYWNoX3NndF9wYWdlKHBhZ2UsIHNndF9pdGVy LCBvYmotPnBhZ2VzKSB7Cj4gLQkJaWYgKG9iai0+ZGlydHkpCj4gKwkJaWYgKGRpcnR5KQo+ICAg CQkJc2V0X3BhZ2VfZGlydHkocGFnZSk7Cj4KPiAgIAkJbWFya19wYWdlX2FjY2Vzc2VkKHBhZ2Up Owo+ICAgCQlwdXRfcGFnZShwYWdlKTsKPiAgIAl9Cj4gLQlvYmotPmRpcnR5ID0gMDsKPiArCWk5 MTVfZ2VtX29iamVjdF9jbGVhcl9kaXJ0eShvYmopOwo+Cj4gICAJc2dfZnJlZV90YWJsZShvYmot PnBhZ2VzKTsKPiAgIAlrZnJlZShvYmotPnBhZ2VzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3B1X2Vycm9yLmMKPiBpbmRleCAzMzRmMTVkLi4yNTdkZGUxIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gQEAgLTgwNCw3ICs4MDQsNyBAQCBzdGF0aWMgdm9pZCBj YXB0dXJlX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmVyciwKPiAgIAllcnItPndy aXRlX2RvbWFpbiA9IG9iai0+YmFzZS53cml0ZV9kb21haW47Cj4gICAJZXJyLT5mZW5jZV9yZWcg PSB2bWEtPmZlbmNlID8gdm1hLT5mZW5jZS0+aWQgOiAtMTsKPiAgIAllcnItPnRpbGluZyA9IGk5 MTVfZ2VtX29iamVjdF9nZXRfdGlsaW5nKG9iaik7Cj4gLQllcnItPmRpcnR5ID0gb2JqLT5kaXJ0 eTsKPiArCWVyci0+ZGlydHkgPSBpOTE1X2dlbV9vYmplY3RfaXNfZGlydHkob2JqKTsKPiAgIAll cnItPnB1cmdlYWJsZSA9IG9iai0+bWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQ7Cj4gICAJZXJy LT51c2VycHRyID0gb2JqLT51c2VycHRyLm1tICE9IE5VTEw7Cj4gICAJZXJyLT5jYWNoZV9sZXZl bCA9IG9iai0+Y2FjaGVfbGV2ZWw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCA5 MmJmZTQ3Li4xZjQ4MjkxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtNzY0 LDYgKzc2NCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPiAgIAkJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gICB7Cj4gICAJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ZW5naW5lW2VuZ2lu ZS0+aWRdOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBjZS0+cmluZzsKPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwo+ICAgCXZvaWQgKnZhZGRyOwo+ICAgCXUz MiAqbHJjX3JlZ19zdGF0ZTsKPiAgIAlpbnQgcmV0Owo+IEBAIC03NzgsMjQgKzc4MCwyNCBAQCBz dGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpj dHgsCj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBlcnI7Cj4KPiAtCXZhZGRyID0gaTkxNV9nZW1f b2JqZWN0X3Bpbl9tYXAoY2UtPnN0YXRlLT5vYmosIEk5MTVfTUFQX1dCKTsKPiArCWN0eF9vYmog PSBjZS0+c3RhdGUtPm9iajsKPiArCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoY3R4 X29iaiwgSTkxNV9NQVBfV0IpOwo+ICAgCWlmIChJU19FUlIodmFkZHIpKSB7Cj4gICAJCXJldCA9 IFBUUl9FUlIodmFkZHIpOwo+ICAgCQlnb3RvIHVucGluX3ZtYTsKPiAgIAl9Cj4KPiAtCWxyY19y ZWdfc3RhdGUgPSB2YWRkciArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPiAtCj4gLQlyZXQg PSBpbnRlbF9yaW5nX3BpbihjZS0+cmluZyk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX3BpbihyaW5n KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3RvIHVucGluX21hcDsKPgo+IC0JaW50ZWxfbHJfY29u dGV4dF9kZXNjcmlwdG9yX3VwZGF0ZShjdHgsIGVuZ2luZSk7Cj4gKwlpOTE1X2dlbV9vYmplY3Rf c2V0X2RpcnR5KGN0eF9vYmopOwo+Cj4gLQlscmNfcmVnX3N0YXRlW0NUWF9SSU5HX0JVRkZFUl9T VEFSVCsxXSA9Cj4gLQkJaTkxNV9nZ3R0X29mZnNldChjZS0+cmluZy0+dm1hKTsKPiArCWxyY19y ZWdfc3RhdGUgPSB2YWRkciArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPiArCWxyY19yZWdf c3RhdGVbQ1RYX1JJTkdfQlVGRkVSX1NUQVJUKzFdID0gaTkxNV9nZ3R0X29mZnNldChyaW5nLT52 bWEpOwo+ICAgCWNlLT5scmNfcmVnX3N0YXRlID0gbHJjX3JlZ19zdGF0ZTsKPiAtCWNlLT5zdGF0 ZS0+b2JqLT5kaXJ0eSA9IHRydWU7Cj4gKwo+ICsJaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9y X3VwZGF0ZShjdHgsIGVuZ2luZSk7Cj4KPiAgIAkvKiBJbnZhbGlkYXRlIEd1QyBUTEIuICovCj4g ICAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKSB7Cj4gQEAgLTE5NjksNyArMTk3MSw3 IEBAIHN0YXRpYyB1MzIgaW50ZWxfbHJfaW5kaXJlY3RfY3R4X29mZnNldChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4gICAJCURSTV9ERUJVR19EUklWRVIoIkNvdWxkIG5vdCBtYXAg b2JqZWN0IHBhZ2VzISAoJWQpXG4iLCByZXQpOwo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCX0KPiAt CWN0eF9vYmotPmRpcnR5ID0gdHJ1ZTsKPiArCWk5MTVfZ2VtX29iamVjdF9zZXRfZGlydHkoY3R4 X29iaik7Cj4KPiAgIAkvKiBUaGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGNvbnRleHQgb2JqZWN0IGNv bnRhaW5zIHNvbWUgZmllbGRzIHdoaWNoIG11c3QKPiAgIAkgKiBiZSBzZXQgdXAgcHJpb3IgdG8g dGhlIGZpcnN0IGV4ZWN1dGlvbi4gKi8KPiBAQCAtMjE4MiwyMyArMjE4NCwyNCBAQCB2b2lkIGlu dGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ Cj4gICAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKPiAgIAkJc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdOwo+ICsJCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwo+ICAgCQl2b2lkICp2YWRkcjsKPiAgIAkJdWlu dDMyX3QgKnJlZ19zdGF0ZTsKPgo+ICAgCQlpZiAoIWNlLT5zdGF0ZSkKPiAgIAkJCWNvbnRpbnVl Owo+Cj4gLQkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjZS0+c3RhdGUtPm9iaiwg STkxNV9NQVBfV0IpOwo+ICsJCWN0eF9vYmogPSBjZS0+c3RhdGUtPm9iajsKPiArCQl2YWRkciA9 IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGN0eF9vYmosIEk5MTVfTUFQX1dCKTsKPiAgIAkJaWYg KFdBUk5fT04oSVNfRVJSKHZhZGRyKSkpCj4gICAJCQljb250aW51ZTsKPgo+ICAgCQlyZWdfc3Rh dGUgPSB2YWRkciArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPiAtCj4gICAJCXJlZ19zdGF0 ZVtDVFhfUklOR19IRUFEKzFdID0gMDsKPiAgIAkJcmVnX3N0YXRlW0NUWF9SSU5HX1RBSUwrMV0g PSAwOwo+Cj4gLQkJY2UtPnN0YXRlLT5vYmotPmRpcnR5ID0gdHJ1ZTsKPiAtCQlpOTE1X2dlbV9v YmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsKPiArCQlpOTE1X2dlbV9vYmplY3Rfc2V0 X2RpcnR5KGN0eF9vYmopOwo+ICsJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY3R4X29iaik7 Cj4KPiAgIAkJY2UtPnJpbmctPmhlYWQgPSAwOwo+ICAgCQljZS0+cmluZy0+dGFpbCA9IDA7Cj4K Ckxvb2tzIGdvb2QgdG8gbWUuIEp1c3QgYSBzbWFsbCBjb21taXQgbWVzc2FnZSBleHRlbnNpb24g cmVxdWlyZWQgYW5kIApjbGFyaWZpY2F0aW9uIG9uIGFkZGVkIGV4dHJhIGRpcnR5aW5nLgoKUmVn YXJkcywKClR2cnRrbwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==