From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 112/190] drm/i915: Move obj->active:5 to obj->flags Date: Thu, 24 Mar 2016 14:00:08 +0200 Message-ID: <20160324120008.GE23422@boom> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452509174-16671-1-git-send-email-chris@chris-wilson.co.uk> <1452509174-16671-26-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id B35FB6E5F7 for ; Thu, 24 Mar 2016 12:00:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1452509174-16671-26-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMTEsIDIwMTYgYXQgMTA6NDQ6NTZBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFdlIGFyZSBtb3RpdmF0ZWQgdG8gYXZvaWQgdXNpbmcgYSBiaXRmaWVsZCBmb3Igb2Jq LT5hY3RpdmUgZm9yIGEgY291cGxlCj4gb2YgcmVhc29ucy4gRmlyc3RseSwgd2Ugd2lzaCB0byBk b2N1bWVudCBvdXIgbG9ja2xlc3MgcmVhZCBvZiBvYmotPmFjdGl2ZQo+IHVzaW5nIFJFQURfT05D RSBpbnNpZGUgaTkxNV9nZW1fYnVzeV9pb2N0bCgpIGFuZCB0aGF0IHJlcXVpcmVzIGFuCj4gaW50 ZWdyYWwgdHlwZSAoaS5lLiBub3QgYSBiaXRmaWVsZCkuIFNlY29uZGx5LCBnY2MgcHJvZHVjZXMg YWJ5c21hbCBjb2RlCj4gd2hlbiBwcmVzZW50ZWQgd2l0aCBhIGJpdGZpZWxkIGFuZCB0aGF0IHNo b3dzIHVwIGhpZ2ggb24gdGhlIHByb2ZpbGVzIG9mCj4gcmVxdWVzdCB0cmFja2luZyAobWFpbmx5 IGR1ZSB0byBleGNlc3MgbWVtb3J5IHRyYWZmaWMgYXMgaXQgY29udmVydHMKPiB0aGUgYml0Zmll bGQgdG8gYSByZWdpc3RlciBhbmQgYmFjayBhbmQgZ2VuZXJhdGVzIGZyZXF1ZW50IEFHSSBpbiB0 aGUKPiBwcm9jZXNzKS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KClRoaXMgcGF0Y2gsIHRvZ2V0aGVyIHdpdGggaXQncyBkaXJ0eSBj b3VudGVycGFydCwgc2VlbXMgdG8gbWFrZSBhIGxvdCBvZiBzZW5zZSwKYnV0IGl0IHNlZW1zIHRo ZSBwcmUtcmVxdWlzaXRlcyB0byBtYWtlIGl0IGFwcGx5IGFyZSByYXRoZXIgZXh0ZW5zaXZlOwpJ IHRyaWVkIHRvIHR3ZWFrIGl0IHRvIGFwcGx5IHRvIGEgbmlnaHRseSwgYnV0IHRoYXQncyBub3Qg dHJpdmlhbC4KClN0aWxsLCB0aGUgY29uY2VwdCBzZWVtcyBzb3VuZHMuICBJIGR1bm5vIGlmIHRo ZXJlJ3MgbXVjaCBwb2ludCBvZiB0aGlzCnJpZ2h0IG5vdywgc2luY2UgaXQgY2Fubm90IGJlIG1l cmdlZCB3aXRob3V0IHRoZSBwcmUtcmVxdWlzaXRlcywgYnV0OgoKUmV2aWV3ZWQtYnk6IERhdmlk IFdlaW5laGFsbCA8ZGF2aWQud2VpbmVoYWxsQGludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAg fCAyMCArKysrKysrKystLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2JhdGNoX3Bvb2wuYyB8ICA0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhl Y2J1ZmZlci5jIHwgMTAgKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9z aHJpbmtlci5jICAgfCAgNSArKystLQo+ICA4IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMo KyksIDIzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4g aW5kZXggZGVlNjY4MDdjNmJkLi42YjE0YzU5ODI4ZTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+IEBAIC0xMzYsNyArMTM2LDcgQEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBz ZXFfZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgCj4gIAlzZXFf cHJpbnRmKG0sICIlcEs6ICVzJXMlcyVzICU4emRLaUIgJTAyeCAlMDJ4IFsgIiwKPiAgCQkgICAm b2JqLT5iYXNlLAo+IC0JCSAgIG9iai0+YWN0aXZlID8gIioiIDogIiAiLAo+ICsJCSAgIGk5MTVf Z2VtX29iamVjdF9pc19hY3RpdmUob2JqKSA/ICIqIiA6ICIgIiwKPiAgCQkgICBnZXRfcGluX2Zs YWcob2JqKSwKPiAgCQkgICBnZXRfdGlsaW5nX2ZsYWcob2JqKSwKPiAgCQkgICBnZXRfZ2xvYmFs X2ZsYWcob2JqKSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBlZmE0MzQxMWYwZWIu LjFlY2ZmNTM1OTczZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yMDMxLDEy ICsyMDMxLDE2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKPiAgCj4gIAlzdHJ1Y3Qg bGlzdF9oZWFkIGJhdGNoX3Bvb2xfbGluazsKPiAgCj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ ICAJLyoqCj4gIAkgKiBUaGlzIGlzIHNldCBpZiB0aGUgb2JqZWN0IGlzIG9uIHRoZSBhY3RpdmUg bGlzdHMgKGhhcyBwZW5kaW5nCj4gIAkgKiByZW5kZXJpbmcgYW5kIHNvIGEgbm9uLXplcm8gc2Vx bm8pLCBhbmQgaXMgbm90IHNldCBpZiBpdCBpIHMgb24KPiAgCSAqIGluYWN0aXZlIChyZWFkeSB0 byBiZSB1bmJvdW5kKSBsaXN0Lgo+ICAJICovCj4gLQl1bnNpZ25lZCBpbnQgYWN0aXZlOkk5MTVf TlVNX1JJTkdTOwo+ICsjZGVmaW5lIEk5MTVfQk9fQUNUSVZFX1NISUZUIDAKPiArI2RlZmluZSBJ OTE1X0JPX0FDVElWRV9NQVNLICgoMSA8PCBJOTE1X05VTV9SSU5HUykgLSAxKQo+ICsjZGVmaW5l IEk5MTVfQk9fQUNUSVZFKGJvKSAoKGJvKS0+ZmxhZ3MgJiAoSTkxNV9CT19BQ1RJVkVfTUFTSyA8 PCBJOTE1X0JPX0FDVElWRV9TSElGVCkpCj4gKyNkZWZpbmUgX19JOTE1X0JPX0FDVElWRShibykg KFJFQURfT05DRSgoYm8pLT5mbGFncykgJiAoSTkxNV9CT19BQ1RJVkVfTUFTSyA8PCBJOTE1X0JP X0FDVElWRV9TSElGVCkpCj4gIAo+ICAJLyoqCj4gIAkgKiBUaGlzIGlzIHNldCBpZiB0aGUgb2Jq ZWN0IGhhcyBiZWVuIHdyaXR0ZW4gdG8gc2luY2UgbGFzdCBib3VuZAo+IEBAIC0yMTUxLDYgKzIx NTUsMzEgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+ICAjZGVmaW5lIEdFTV9CVUdf T04oZXhwcikKPiAgI2VuZGlmCj4gIAo+ICtzdGF0aWMgaW5saW5lIGJvb2wKPiAraTkxNV9nZW1f b2JqZWN0X2lzX2FjdGl2ZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ ICt7Cj4gKwlyZXR1cm4gb2JqLT5mbGFncyAmIChJOTE1X0JPX0FDVElWRV9NQVNLIDw8IEk5MTVf Qk9fQUNUSVZFX1NISUZUKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkCj4gK2k5MTVf Z2VtX29iamVjdF9zZXRfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGlu dCBlbmdpbmUpCj4gK3sKPiArCW9iai0+ZmxhZ3MgfD0gMSA8PCAoZW5naW5lICsgSTkxNV9CT19B Q1RJVkVfU0hJRlQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQKPiAraTkxNV9nZW1f b2JqZWN0X3Vuc2V0X2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBpbnQg ZW5naW5lKQo+ICt7Cj4gKwlvYmotPmZsYWdzICY9IH4oMSA8PCAoZW5naW5lICsgSTkxNV9CT19B Q1RJVkVfU0hJRlQpKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBib29sCj4gK2k5MTVfZ2Vt X29iamVjdF9oYXNfYWN0aXZlX2VuZ2luZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAo+ICsJCQkJICBpbnQgZW5naW5lKQo+ICt7Cj4gKwlyZXR1cm4gb2JqLT5mbGFncyAm ICgxIDw8IChlbmdpbmUgKyBJOTE1X0JPX0FDVElWRV9TSElGVCkpOwo+ICt9Cj4gKwo+ICB2b2lk IGk5MTVfZ2VtX3RyYWNrX2ZiKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4gIAkJ ICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpuZXcsCj4gIAkJICAgICAgIHVuc2ln bmVkIGZyb250YnVmZmVyX2JpdHMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDc0 YzU2NzE2YTMwNC4uNjcxMmVjZjEyMzliIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4g QEAgLTExMzAsNyArMTEzMCw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICB7Cj4gIAlpbnQgcmV0LCBpOwo+ICAKPiAt CWlmICghb2JqLT5hY3RpdmUpCj4gKwlpZiAoIWk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2Jq KSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlpZiAocmVhZG9ubHkpIHsKPiBAQCAtMTE0Myw3ICsx MTQzLDcgQEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCj4gIAkJCWlmIChyZXQpCj4gIAkJCQlyZXR1cm4gcmV0Owo+ICAJCX0K PiAtCQlHRU1fQlVHX09OKG9iai0+YWN0aXZlKTsKPiArCQlHRU1fQlVHX09OKGk5MTVfZ2VtX29i amVjdF9pc19hY3RpdmUob2JqKSk7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gQEAgLTExNjUs NyArMTE2NSw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tpbmco c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCUJVR19PTighbXV0ZXhfaXNfbG9j a2VkKCZkZXYtPnN0cnVjdF9tdXRleCkpOwo+ICAJQlVHX09OKCFkZXZfcHJpdi0+bW0uaW50ZXJy dXB0aWJsZSk7Cj4gIAo+IC0JaWYgKCFvYmotPmFjdGl2ZSkKPiArCWlmICghaTkxNV9nZW1fb2Jq ZWN0X2lzX2FjdGl2ZShvYmopKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWlmIChyZWFkb25seSkg ewo+IEBAIC0yMDgwLDEwICsyMDgwLDEwIEBAIGk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQo c3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlLAo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiA9Cj4gIAkJY29udGFpbmVyX29mKGFjdGl2ZSwgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QsIGxhc3RfcmVhZFtyaW5nXSk7Cj4gIAo+IC0JR0VNX0JVR19PTigob2JqLT5hY3Rp dmUgJiAoMSA8PCByaW5nKSkgPT0gMCk7Cj4gKwlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3Rf aGFzX2FjdGl2ZV9lbmdpbmUob2JqLCByaW5nKSk7Cj4gIAo+IC0Jb2JqLT5hY3RpdmUgJj0gfigx IDw8IHJpbmcpOwo+IC0JaWYgKG9iai0+YWN0aXZlKQo+ICsJaTkxNV9nZW1fb2JqZWN0X3Vuc2V0 X2FjdGl2ZShvYmosIHJpbmcpOwo+ICsJaWYgKGk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2Jq KSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJLyogQnVtcCBvdXIgcGxhY2Ugb24gdGhlIGJvdW5kIGxp c3QgdG8ga2VlcCBpdCByb3VnaGx5IGluIExSVSBvcmRlcgo+IEBAIC0yMzczLDcgKzIzNzMsNyBA QCBpOTE1X2dlbV9vYmplY3RfZmx1c2hfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCj4gIHsKPiAgCWludCBpOwo+ICAKPiAtCWlmICghb2JqLT5hY3RpdmUpCj4gKwlpZiAo IWk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJZm9y IChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiBAQCAtMjQ1OSw3ICsyNDU5LDcg QEAgaTkxNV9nZW1fd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gIAo+ICAJLyogTmVlZCB0byBtYWtlIHN1cmUgdGhl IG9iamVjdCBnZXRzIGluYWN0aXZlIGV2ZW50dWFsbHkuICovCj4gIAlpOTE1X2dlbV9vYmplY3Rf Zmx1c2hfYWN0aXZlKG9iaik7Cj4gLQlpZiAoIW9iai0+YWN0aXZlKQo+ICsJaWYgKCFpOTE1X2dl bV9vYmplY3RfaXNfYWN0aXZlKG9iaikpCj4gIAkJZ290byBvdXQ7Cj4gIAo+ICAJLyogRG8gdGhp cyBhZnRlciBPTFIgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIG1ha2UgZm9yd2FyZCBwcm9ncmVzcyBw b2xsaW5nCj4gQEAgLTI1NTcsNyArMjU1Nyw3IEBAIGk5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcVtJOTE1X05VTV9SSU5HU107Cj4gIAlpbnQgcmV0LCBpLCBuOwo+ICAKPiAtCWlmICgh b2JqLT5hY3RpdmUpCj4gKwlpZiAoIWk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSkKPiAg CQlyZXR1cm4gMDsKPiAgCj4gIAluID0gMDsKPiBAQCAtMzU5Myw3ICszNTkzLDcgQEAgaTkxNV9n ZW1fYnVzeV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJaTkx NV9nZW1fb2JqZWN0X2ZsdXNoX2FjdGl2ZShvYmopOwo+ICAKPiAgCUJVSUxEX0JVR19PTihJOTE1 X05VTV9SSU5HUyA+IDE2KTsKPiAtCWFyZ3MtPmJ1c3kgPSBvYmotPmFjdGl2ZSA8PCAxNjsKPiAr CWFyZ3MtPmJ1c3kgPSBJOTE1X0JPX0FDVElWRShvYmopIDw8IDE2Owo+ICAJaWYgKG9iai0+bGFz dF93cml0ZS5yZXF1ZXN0KQo+ICAJCWFyZ3MtPmJ1c3kgfD0gb2JqLT5sYXN0X3dyaXRlLnJlcXVl c3QtPmVuZ2luZS0+aWQ7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9iYXRjaF9wb29sLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRj aF9wb29sLmMKPiBpbmRleCBkNDMxODY2NWFjNmMuLjVlYzViMTQzOWUxZiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKPiBAQCAtMTE1LDE0ICsxMTUs MTQgQEAgaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wg KnBvb2wsCj4gIAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRtcCwgbmV4dCwgbGlzdCwg YmF0Y2hfcG9vbF9saW5rKSB7Cj4gIAkJLyogVGhlIGJhdGNoZXMgYXJlIHN0cmljdGx5IExSVSBv cmRlcmVkICovCj4gLQkJaWYgKHRtcC0+YWN0aXZlKSB7Cj4gKwkJaWYgKGk5MTVfZ2VtX29iamVj dF9pc19hY3RpdmUodG1wKSkgewo+ICAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJx Owo+ICAKPiAgCQkJcnEgPSB0bXAtPmxhc3RfcmVhZFtwb29sLT5lbmdpbmUtPmlkXS5yZXF1ZXN0 Owo+ICAJCQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJxKSkKPiAgCQkJCWJyZWFr Owo+ICAKPiAtCQkJR0VNX0JVR19PTih0bXAtPmFjdGl2ZSAmIH5pbnRlbF9lbmdpbmVfZmxhZyhw b29sLT5lbmdpbmUpKTsKPiArCQkJR0VNX0JVR19PTigodG1wLT5mbGFncyA+PiBJOTE1X0JPX0FD VElWRV9TSElGVCkgJiAofmludGVsX2VuZ2luZV9mbGFnKHBvb2wtPmVuZ2luZSkgJiBJOTE1X0JP X0FDVElWRV9NQVNLKSk7Cj4gIAkJCUdFTV9CVUdfT04odG1wLT5sYXN0X3dyaXRlLnJlcXVlc3Qp Owo+ICAJCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGlu ZGV4IDE1ZDVhNWQyNDdlMC4uOTI1MGE3NDA1ODA3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYwo+IEBAIC00MjcsNyArNDI3LDcgQEAgdm9pZCBpOTE1X2dlbV9j b250ZXh0X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlXQVJOX09OKCFkZXZfcHJp di0+cmluZ1tSQ1NdLmxhc3RfY29udGV4dCk7Cj4gIAkJaWYgKGRldl9wcml2LT5yaW5nW1JDU10u bGFzdF9jb250ZXh0ID09IGRjdHgpIHsKPiAgCQkJLyogRmFrZSBzd2l0Y2ggdG8gTlVMTCBjb250 ZXh0ICovCj4gLQkJCVdBUk5fT04oZGN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUtPmFjdGl2 ZSk7Cj4gKwkJCVdBUk5fT04oaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShkY3R4LT5sZWdhY3lf aHdfY3R4LnJjc19zdGF0ZSkpOwo+ICAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihkY3R4 LT5sZWdhY3lfaHdfY3R4LnJjc19zdGF0ZSk7Cj4gIAkJCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZl cmVuY2UoZGN0eCk7Cj4gIAkJCWRldl9wcml2LT5yaW5nW1JDU10ubGFzdF9jb250ZXh0ID0gTlVM TDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXgg NzlkYmQ3NGI3M2MyLi5lNjY4NjRiZGJmYjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTUxNSw3ICs1MTUsNyBAQCBpOTE1X2dlbV9leGVj YnVmZmVyX3JlbG9jYXRlX2VudHJ5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4g IAl9Cj4gIAo+ICAJLyogV2UgY2FuJ3Qgd2FpdCBmb3IgcmVuZGVyaW5nIHdpdGggcGFnZWZhdWx0 cyBkaXNhYmxlZCAqLwo+IC0JaWYgKG9iai0+YWN0aXZlICYmIHBhZ2VmYXVsdF9kaXNhYmxlZCgp KQo+ICsJaWYgKGk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSAmJiBwYWdlZmF1bHRfZGlz YWJsZWQoKSkKPiAgCQlyZXR1cm4gLUVGQVVMVDsKPiAgCj4gIAlpZiAodXNlX2NwdV9yZWxvYyhv YmopKQo+IEBAIC05NzcsNyArOTc3LDcgQEAgc3RhdGljIGludAo+ICBpOTE1X2dlbV9leGVjYnVm ZmVyX21vdmVfdG9fZ3B1KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAJCQkJ c3RydWN0IGxpc3RfaGVhZCAqdm1hcykKPiAgewo+IC0JY29uc3QgdW5zaWduZWQgb3RoZXJfcmlu Z3MgPSB+aW50ZWxfZW5naW5lX2ZsYWcocmVxLT5lbmdpbmUpOwo+ICsJY29uc3QgdW5zaWduZWQg b3RoZXJfcmluZ3MgPSAofmludGVsX2VuZ2luZV9mbGFnKHJlcS0+ZW5naW5lKSAmIEk5MTVfQk9f QUNUSVZFX01BU0spIDw8IEk5MTVfQk9fQUNUSVZFX1NISUZUOwo+ICAJc3RydWN0IGk5MTVfdm1h ICp2bWE7Cj4gIAl1aW50MzJfdCBmbHVzaF9kb21haW5zID0gMDsKPiAgCWJvb2wgZmx1c2hfY2hp cHNldCA9IGZhbHNlOwo+IEBAIC05ODYsNyArOTg2LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9t b3ZlX3RvX2dwdShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgCWxpc3RfZm9y X2VhY2hfZW50cnkodm1hLCB2bWFzLCBleGVjX2xpc3QpIHsKPiAgCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7Cj4gIAo+IC0JCWlmIChvYmotPmFjdGl2ZSAmIG90 aGVyX3JpbmdzKSB7Cj4gKwkJaWYgKG9iai0+ZmxhZ3MgJiBvdGhlcl9yaW5ncykgewo+ICAJCQly ZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHJlcSk7Cj4gIAkJCWlmIChyZXQpCj4gIAkJ CQlyZXR1cm4gcmV0Owo+IEBAIC0xMTQ1LDkgKzExNDUsOSBAQCB2b2lkIGk5MTVfdm1hX21vdmVf dG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+ICAJICogYWRkIHRoZSBhY3RpdmUgcmVm ZXJlbmNlIGZpcnN0IGFuZCBxdWV1ZSBmb3IgaXQgdG8gYmUgZHJvcHBlZAo+ICAJICogKmxhc3Qq Lgo+ICAJICovCj4gLQlpZiAob2JqLT5hY3RpdmUgPT0gMCkKPiArCWlmICghaTkxNV9nZW1fb2Jq ZWN0X2lzX2FjdGl2ZShvYmopKQo+ICAJCWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZSgmb2JqLT5i YXNlKTsKPiAtCW9iai0+YWN0aXZlIHw9IDEgPDwgZW5naW5lOwo+ICsJaTkxNV9nZW1fb2JqZWN0 X3NldF9hY3RpdmUob2JqLCBlbmdpbmUpOwo+ICAJaTkxNV9nZW1fcmVxdWVzdF9tYXJrX2FjdGl2 ZShyZXEsICZvYmotPmxhc3RfcmVhZFtlbmdpbmVdKTsKPiAgCj4gIAlpZiAoZmxhZ3MgJiBFWEVD X09CSkVDVF9XUklURSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXgg OGYzYjJmMDUxOTE4Li42NjUyZGY1N2U1YjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYwo+IEBAIC0zMjI5LDcgKzMyMjksNyBAQCBpOTE1X3ZtYV9yZXRpcmUoc3RydWN0IGk5 MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlLAo+ICAJCWNvbnRhaW5lcl9vZihhY3RpdmUsIHN0cnVjdCBp OTE1X3ZtYSwgbGFzdF9yZWFkW2VuZ2luZV0pOwo+ICAKPiAgCUdFTV9CVUdfT04oKHZtYS0+YWN0 aXZlICYgKDEgPDwgZW5naW5lKSkgPT0gMCk7Cj4gLQlHRU1fQlVHX09OKCh2bWEtPm9iai0+YWN0 aXZlICYgdm1hLT5hY3RpdmUpICE9IHZtYS0+YWN0aXZlKTsKPiArCUdFTV9CVUdfT04oKCh2bWEt Pm9iai0+ZmxhZ3MgPj4gSTkxNV9CT19BQ1RJVkVfU0hJRlQpICYgdm1hLT5hY3RpdmUpICE9IHZt YS0+YWN0aXZlKTsKPiAgCj4gIAl2bWEtPmFjdGl2ZSAmPSB+KDEgPDwgZW5naW5lKTsKPiAgCWlm ICh2bWEtPmFjdGl2ZSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fc2hyaW5rZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMK PiBpbmRleCA2N2YzZWI5YTgzOTEuLjRkNDRkZWY4ZmIwMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwo+IEBAIC0xNTAsNyArMTUwLDggQEAgaTkxNV9nZW1f c2hyaW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAgIG9iai0+ bWFkdiAhPSBJOTE1X01BRFZfRE9OVE5FRUQpCj4gIAkJCQljb250aW51ZTsKPiAgCj4gLQkJCWlm ICgoZmxhZ3MgJiBJOTE1X1NIUklOS19BQ1RJVkUpID09IDAgJiYgb2JqLT5hY3RpdmUpCj4gKwkJ CWlmICgoZmxhZ3MgJiBJOTE1X1NIUklOS19BQ1RJVkUpID09IDAgJiYKPiArCQkJICAgIGk5MTVf Z2VtX29iamVjdF9pc19hY3RpdmUob2JqKSkKPiAgCQkJCWNvbnRpbnVlOwo+ICAKPiAgCQkJaWYg KCFjYW5fcmVsZWFzZV9wYWdlcyhvYmopKQo+IEBAIC0yMzMsNyArMjM0LDcgQEAgaTkxNV9nZW1f c2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmtlciwgc3RydWN0IHNocmlua19j b250cm9sICpzYykKPiAgCQkJY291bnQgKz0gb2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsK PiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgJmRldl9wcml2LT5tbS5ib3VuZF9saXN0 LCBnbG9iYWxfbGlzdCkgewo+IC0JCWlmICghb2JqLT5hY3RpdmUgJiYgY2FuX3JlbGVhc2VfcGFn ZXMob2JqKSkKPiArCQlpZiAoIWk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSAmJiBjYW5f cmVsZWFzZV9wYWdlcyhvYmopKQo+ICAJCQljb3VudCArPSBvYmotPmJhc2Uuc2l6ZSA+PiBQQUdF X1NISUZUOwo+ICAJfQo+ICAKPiAtLSAKPiAyLjcuMC5yYzMKPiAKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK