From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v7 1/8] drm/i915: Convert requests to use struct fence Date: Thu, 21 Apr 2016 09:06:27 +0200 Message-ID: <57187BF3.6050304@linux.intel.com> References: <1461172195-3959-1-git-send-email-John.C.Harrison@Intel.com> <1461172195-3959-2-git-send-email-John.C.Harrison@Intel.com> 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 6B2AA6E19C for ; Thu, 21 Apr 2016 07:06:31 +0000 (UTC) In-Reply-To: <1461172195-3959-2-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMjAtMDQtMTYgb20gMTk6MDkgc2NocmVlZiBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tOgo+ IEZyb206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4KPiBUaGVy ZSBpcyBhIGNvbnN0cnVjdCBpbiB0aGUgbGludXgga2VybmVsIGNhbGxlZCAnc3RydWN0IGZlbmNl JyB0aGF0IGlzCj4gaW50ZW5kZWQgdG8ga2VlcCB0cmFjayBvZiB3b3JrIHRoYXQgaXMgZXhlY3V0 ZWQgb24gaGFyZHdhcmUuIEkuZS4gaXQKPiBzb2x2ZXMgdGhlIGJhc2ljIHByb2JsZW0gdGhhdCB0 aGUgZHJpdmVycyAnc3RydWN0Cj4gZHJtX2k5MTVfZ2VtX3JlcXVlc3QnIGlzIHRyeWluZyB0byBh ZGRyZXNzLiBUaGUgcmVxdWVzdCBzdHJ1Y3R1cmUgZG9lcwo+IHF1aXRlIGEgbG90IG1vcmUgdGhh biBzaW1wbHkgdHJhY2sgdGhlIGV4ZWN1dGlvbiBwcm9ncmVzcyBzbyBpcyB2ZXJ5Cj4gZGVmaW5p dGVseSBzdGlsbCByZXF1aXJlZC4gSG93ZXZlciwgdGhlIGJhc2ljIGNvbXBsZXRpb24gc3RhdHVz IHNpZGUKPiBjb3VsZCBiZSB1cGRhdGVkIHRvIHVzZSB0aGUgcmVhZHkgbWFkZSBmZW5jZSBpbXBs ZW1lbnRhdGlvbiBhbmQgZ2Fpbgo+IGFsbCB0aGUgYWR2YW50YWdlcyB0aGF0IHByb3ZpZGVzLgo+ Cj4gVGhpcyBwYXRjaCBtYWtlcyB0aGUgZmlyc3Qgc3RlcCBvZiBpbnRlZ3JhdGluZyBhIHN0cnVj dCBmZW5jZSBpbnRvIHRoZQo+IHJlcXVlc3QuIEl0IHJlcGxhY2VzIHRoZSBleHBsaWNpdCByZWZl cmVuY2UgY291bnQgd2l0aCB0aGF0IG9mIHRoZQo+IGZlbmNlLiBJdCBhbHNvIHJlcGxhY2VzIHRo ZSAnaXMgY29tcGxldGVkJyB0ZXN0IHdpdGggdGhlIGZlbmNlJ3MKPiBlcXVpdmFsZW50LiBDdXJy ZW50bHksIHRoYXQgc2ltcGx5IGNoYWlucyBvbiB0byB0aGUgb3JpZ2luYWwgcmVxdWVzdAo+IGlt cGxlbWVudGF0aW9uLiBBIGZ1dHVyZSBwYXRjaCB3aWxsIGltcHJvdmUgdGhpcy4KPgo+IHYzOiBV cGRhdGVkIGFmdGVyIHJldmlldyBjb21tZW50cyBieSBUdnJ0a28gVXJzdWxpbi4gQWRkZWQgZmVu Y2UKPiBjb250ZXh0L3NlcW5vIHBhaXIgdG8gdGhlIGRlYnVnZnMgcmVxdWVzdCBpbmZvLiBSZW5h bWVkIGZlbmNlICdkcml2ZXIKPiBuYW1lJyB0byBqdXN0ICdpOTE1Jy4gUmVtb3ZlZCBCVUdfT05z Lgo+Cj4gdjU6IENoYW5nZWQgc2Vxbm8gZm9ybWF0IGluIGRlYnVnZnMgdG8gJXggcmF0aGVyIHRo YW4gJXUgYXMgdGhhdCBpcwo+IGFwcGFyZW50bHkgdGhlIHByZWZlcnJlZCBhcHBlYXJhbmNlLiBM aW5lIHdyYXBwZWQgc29tZSBsb25nIGxpbmVzIHRvCj4ga2VlcCB0aGUgc3R5bGUgY2hlY2tlciBo YXBweS4KPgo+IHY2OiBVcGRhdGVkIHRvIG5ld2VyIG5pZ3RobHkgYW5kIHJlc29sdmVkIGNvbmZs aWN0cy4gVGhlIGJpZ2dlc3QgaXNzdWUKPiB3YXMgd2l0aCB0aGUgcmUtd29ya2VkIGJ1c3kgc3Bp biBwcmVjdXJzb3IgdG8gd2FpdGluZyBvbiBhIHJlcXVlc3QuIEluCj4gcGFydGljdWxhciwgdGhl IGFkZGl0aW9uIG9mIGEgJ3JlcXVlc3Rfc3RhcnRlZCcgaGVscGVyIGZ1bmN0aW9uLiBUaGlzCj4g aGFzIG5vIGNvcnJlc3BvbmRpbmcgY29uY2VwdCB3aXRoaW4gdGhlIGZlbmNlIGZyYW1ld29yay4g SG93ZXZlciwgaXQKPiBpcyBvbmx5IGV2ZXIgdXNlZCBpbiBvbmUgcGxhY2UgYW5kIHRoZSB3aG9s ZSBwb2ludCBvZiB0aGF0IHBsYWNlIGlzIHRvCj4gYWx3YXlzIGRpcmVjdGx5IHJlYWQgdGhlIHNl cW5vIGZvciBhYnNvbHV0ZWx5IGxvd2VzdCBsYXRlbmN5IHBvc3NpYmxlLgo+IFNvIHRoZSBzaW1w bGUgc29sdXRpb24gaXMgdG8ganVzdCBtYWtlIHRoZSBzZXFubyB0ZXN0IGV4cGxpY2l0IGF0IHRo YXQKPiBwb2ludCBub3cgcmF0aGVyIHRoYW4gbGF0ZXIgaW4gdGhlIHNlcmllcyAoaXQgd2FzIHBy ZXZpb3VzbHkgYmVpbmcKPiBkb25lIGFueXdheSB3aGVuIGZlbmNlcyBiZWNvbWUgaW50ZXJydXB0 IGRyaXZlbikuCj4KPiB2NzogUmViYXNlZCB0byBuZXdlciBuaWdodGx5IC0gbG90cyBvZiByaW5n IC0+IGVuZ2luZSByZW5hbWluZyBhbmQKPiBpbnRlcmZhY2UgY2hhbmdlIHRvIGdldF9zZXFubygp Lgo+Cj4gRm9yOiBWSVotNTE5MAo+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4u Qy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxp bkBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IEplc3NlIEJhcm5lcyA8amJhcm5lc0B2aXJ0dW91 c2dlZWsub3JnPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgfCAgNSArKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwg NTEgKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICAxICsKPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgMyArKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDk0IGlu c2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKPiBpbmRleCAyZDExYjQ5Li42OTE3NTE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKPiBAQCAtNzA3LDExICs3MDcsMTIgQEAgc3RhdGljIGludCBpOTE1X2dlbV9y ZXF1ZXN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAJCQl0YXNrID0g TlVMTDsKPiAgCQkJaWYgKHJlcS0+cGlkKQo+ICAJCQkJdGFzayA9IHBpZF90YXNrKHJlcS0+cGlk LCBQSURUWVBFX1BJRCk7Cj4gLQkJCXNlcV9wcmludGYobSwgIiAgICAleCBAICVkOiAlcyBbJWRd XG4iLAo+ICsJCQlzZXFfcHJpbnRmKG0sICIgICAgJXggQCAlZDogJXMgWyVkXSwgZmVuY2UgPSAl eDoleFxuIiwKPiAgCQkJCSAgIHJlcS0+c2Vxbm8sCj4gIAkJCQkgICAoaW50KSAoamlmZmllcyAt IHJlcS0+ZW1pdHRlZF9qaWZmaWVzKSwKPiAgCQkJCSAgIHRhc2sgPyB0YXNrLT5jb21tIDogIjx1 bmtub3duPiIsCj4gLQkJCQkgICB0YXNrID8gdGFzay0+cGlkIDogLTEpOwo+ICsJCQkJICAgdGFz ayA/IHRhc2stPnBpZCA6IC0xLAo+ICsJCQkJICAgcmVxLT5mZW5jZS5jb250ZXh0LCByZXEtPmZl bmNlLnNlcW5vKTsKPiAgCQkJcmN1X3JlYWRfdW5sb2NrKCk7Cj4gIAkJfQo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBkMWU2ZTU4Li5lNWY0OWYzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gQEAgLTU0LDYgKzU0LDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L3BtX3Fv cy5oPgo+ICAjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCj4gICNpbmNsdWRlICJpbnRlbF9kcGxsX21n ci5oIgo+ICsjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KPiAgCj4gIC8qIEdlbmVyYWwgY3VzdG9t aXphdGlvbjoKPiAgICovCj4gQEAgLTIyNDIsNyArMjI0MywxNyBAQCB2b2lkIGk5MTVfZ2VtX3Ry YWNrX2ZiKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4gICAqIGluaXRpYWwgcmVm ZXJlbmNlIHRha2VuIHVzaW5nIGtyZWZfaW5pdAo+ICAgKi8KPiAgc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0IHsKPiAtCXN0cnVjdCBrcmVmIHJlZjsKPiArCS8qKgo+ICsJICogVW5kZXJseWlu ZyBvYmplY3QgZm9yIGltcGxlbWVudGluZyB0aGUgc2lnbmFsL3dhaXQgc3R1ZmYuCj4gKwkgKiBO QjogTmV2ZXIgY2FsbCBmZW5jZV9sYXRlcigpIG9yIHJldHVybiB0aGlzIGZlbmNlIG9iamVjdCB0 byB1c2VyCj4gKwkgKiBsYW5kISBEdWUgdG8gbGF6eSBhbGxvY2F0aW9uLCBzY2hlZHVsZXIgcmUt b3JkZXJpbmcsIHByZS1lbXB0aW9uLAo+ICsJICogZXRjLiwgdGhlcmUgaXMgbm8gZ3VhcmFudGVl IGF0IGFsbCBhYm91dCB0aGUgdmFsaWRpdHkgb3IKPiArCSAqIHNlcXVlbnRpYWxpdHkgb2YgdGhl IGZlbmNlJ3Mgc2Vxbm8hIEl0IGlzIGFsc28gdW5zYWZlIHRvIGxldAo+ICsJICogYW55dGhpbmcg b3V0c2lkZSBvZiB0aGUgaTkxNSBkcml2ZXIgZ2V0IGhvbGQgb2YgdGhlIGZlbmNlIG9iamVjdAo+ ICsJICogYXMgdGhlIGNsZWFuIHVwIHdoZW4gZGVjcmVtZW50aW5nIHRoZSByZWZlcmVuY2UgY291 bnQgcmVxdWlyZXMKPiArCSAqIGhvbGRpbmcgdGhlIGRyaXZlciBtdXRleCBsb2NrLgo+ICsJICov Cj4gKwlzdHJ1Y3QgZmVuY2UgZmVuY2U7Cj4gIAo+ICAJLyoqIE9uIFdoaWNoIHJpbmcgdGhpcyBy ZXF1ZXN0IHdhcyBnZW5lcmF0ZWQgKi8KPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 Owo+IEBAIC0yMzI4LDcgKzIzMzksMTMgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICog X19tdXN0X2NoZWNrCj4gIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAo+ICAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKPiAg dm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSk7Cj4gLXZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVm KTsKPiArCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiArCQkJCQkgICAgICBib29sIGxhenlf Y29oZXJlbmN5KQo+ICt7Cj4gKwlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoJnJlcS0+ZmVuY2Up Owo+ICt9Cj4gKwo+ICBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hZGRfdG9fY2xpZW50KHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxl KTsKPiAgCj4gQEAgLTIzNDgsNyArMjM2NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICoKPiAgaTkxNV9nZW1fcmVxdWVzdF9yZWZlcmVuY2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIHsKPiAgCWlmIChyZXEpCj4gLQkJa3JlZl9nZXQo JnJlcS0+cmVmKTsKPiArCQlmZW5jZV9nZXQoJnJlcS0+ZmVuY2UpOwo+ICAJcmV0dXJuIHJlcTsK PiAgfQo+ICAKPiBAQCAtMjM1Niw3ICsyMzczLDcgQEAgc3RhdGljIGlubGluZSB2b2lkCj4gIGk5 MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCj4gIHsKPiAgCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmVxLT5lbmdpbmUtPmRldi0+ c3RydWN0X211dGV4KSk7Cj4gLQlrcmVmX3B1dCgmcmVxLT5yZWYsIGk5MTVfZ2VtX3JlcXVlc3Rf ZnJlZSk7Cj4gKwlmZW5jZV9wdXQoJnJlcS0+ZmVuY2UpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5s aW5lIHZvaWQKPiBAQCAtMjM2OCw3ICsyMzg1LDcgQEAgaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVy ZW5jZV9fdW5sb2NrZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIAkJcmV0 dXJuOwo+ICAKPiAgCWRldiA9IHJlcS0+ZW5naW5lLT5kZXY7Cj4gLQlpZiAoa3JlZl9wdXRfbXV0 ZXgoJnJlcS0+cmVmLCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUsICZkZXYtPnN0cnVjdF9tdXRleCkp Cj4gKwlpZiAoa3JlZl9wdXRfbXV0ZXgoJnJlcS0+ZmVuY2UucmVmY291bnQsIGZlbmNlX3JlbGVh c2UsICZkZXYtPnN0cnVjdF9tdXRleCkpCj4gIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7Cj4gIH0KPiAgCj4gQEAgLTIzODUsMTIgKzI0MDIsNiBAQCBzdGF0aWMgaW5saW5lIHZv aWQgaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoq cGRzdCwKPiAgfQo+ICAKPiAgLyoKPiAtICogWFhYOiBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZCBzaG91bGQgYmUgaGVyZSBidXQgY3VycmVudGx5IG5lZWRzIHRoZQo+IC0gKiBkZWZpbml0aW9u IG9mIGk5MTVfc2Vxbm9fcGFzc2VkKCkgd2hpY2ggaXMgYmVsb3cuIEl0IHdpbGwgYmUgbW92ZWQg aW4KPiAtICogYSBsYXRlciBwYXRjaCB3aGVuIHRoZSBjYWxsIHRvIGk5MTVfc2Vxbm9fcGFzc2Vk KCkgaXMgb2Jzb2xldGVkLi4uCj4gLSAqLwo+IC0KPiAtLyoKPiAgICogQSBjb21tYW5kIHRoYXQg cmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZyBieSB0aGUgY29tbWFuZCBwYXJzZXIuCj4gICAqLwo+ ICBzdHJ1Y3QgZHJtX2k5MTVfY21kX2Rlc2NyaXB0b3Igewo+IEBAIC0zMDU1LDI0ICszMDY2LDYg QEAgaTkxNV9zZXFub19wYXNzZWQodWludDMyX3Qgc2VxMSwgdWludDMyX3Qgc2VxMikKPiAgCXJl dHVybiAoaW50MzJfdCkoc2VxMSAtIHNlcTIpID49IDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbmxp bmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X3N0YXJ0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCj4gLQkJCQkJICAgYm9vbCBsYXp5X2NvaGVyZW5jeSkKPiAtewo+IC0JaWYgKCFs YXp5X2NvaGVyZW5jeSAmJiByZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCj4gLQkJcmVx LT5lbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKHJlcS0+ZW5naW5lKTsKPiAtCXJldHVybiBpOTE1 X3NlcW5vX3Bhc3NlZChyZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5naW5lKSwKPiAtCQkJ CSByZXEtPnByZXZpb3VzX3NlcW5vKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSBib29sIGk5 MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAo+IC0JCQkJCSAgICAgIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4gLXsKPiAtCWlmICghbGF6eV9j b2hlcmVuY3kgJiYgcmVxLT5lbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKQo+IC0JCXJlcS0+ZW5n aW5lLT5pcnFfc2Vxbm9fYmFycmllcihyZXEtPmVuZ2luZSk7Cj4gLQlyZXR1cm4gaTkxNV9zZXFu b19wYXNzZWQocmVxLT5lbmdpbmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSksCj4gLQkJCQkgcmVx LT5zZXFubyk7Cj4gLX0KPiAtCj4gIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fZ2V0X3NlcW5v KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiAqc2Vxbm8pOwo+ICBpbnQgX19tdXN0X2NoZWNr IGk5MTVfZ2VtX3NldF9zZXFubyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2Vxbm8pOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBlYmVmMDNiLi4xYWRkMjlhOSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0xMTgzLDYgKzExODMsNyBAQCBzdGF0aWMg aW50IF9faTkxNV9zcGluX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs IGludCBzdGF0ZSkKPiAgewo+ICAJdW5zaWduZWQgbG9uZyB0aW1lb3V0Owo+ICAJdW5zaWduZWQg Y3B1Owo+ICsJdWludDMyX3Qgc2Vxbm87Cj4gIAo+ICAJLyogV2hlbiB3YWl0aW5nIGZvciBoaWdo IGZyZXF1ZW5jeSByZXF1ZXN0cywgZS5nLiBkdXJpbmcgc3luY2hyb25vdXMKPiAgCSAqIHJlbmRl cmluZyBzcGxpdCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVSwgdGhlIGZpbml0ZSBhbW91bnQgb2Yg dGltZQo+IEBAIC0xMTk4LDEyICsxMTk5LDE0IEBAIHN0YXRpYyBpbnQgX19pOTE1X3NwaW5fcmVx dWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IHN0YXRlKQo+ICAJCXJl dHVybiAtRUJVU1k7Cj4gIAo+ICAJLyogT25seSBzcGluIGlmIHdlIGtub3cgdGhlIEdQVSBpcyBw cm9jZXNzaW5nIHRoaXMgcmVxdWVzdCAqLwo+IC0JaWYgKCFpOTE1X2dlbV9yZXF1ZXN0X3N0YXJ0 ZWQocmVxLCB0cnVlKSkKPiArCXNlcW5vID0gcmVxLT5lbmdpbmUtPmdldF9zZXFubyhyZXEtPmVu Z2luZSk7Cj4gKwlpZiAoIWk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnByZXZpb3VzX3Nl cW5vKSkKPiAgCQlyZXR1cm4gLUVBR0FJTjsKPiAgCj4gIAl0aW1lb3V0ID0gbG9jYWxfY2xvY2tf dXMoJmNwdSkgKyA1Owo+ICAJd2hpbGUgKCFuZWVkX3Jlc2NoZWQoKSkgewo+IC0JCWlmIChpOTE1 X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEsIHRydWUpKQo+ICsJCXNlcW5vID0gcmVxLT5lbmdp bmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSk7Cj4gKwkJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNl cW5vLCByZXEtPnNlcW5vKSkKPiAgCQkJcmV0dXJuIDA7Cj4gIAo+ICAJCWlmIChzaWduYWxfcGVu ZGluZ19zdGF0ZShzdGF0ZSwgY3VycmVudCkpCj4gQEAgLTEyMTUsNyArMTIxOCwxMCBAQCBzdGF0 aWMgaW50IF9faTkxNV9zcGluX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEsIGludCBzdGF0ZSkKPiAgCQljcHVfcmVsYXhfbG93bGF0ZW5jeSgpOwo+ICAJfQo+ICAKPiAt CWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEsIGZhbHNlKSkKPiArCWlmIChyZXEt PmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCj4gKwkJcmVxLT5lbmdpbmUtPmlycV9zZXFub19i YXJyaWVyKHJlcS0+ZW5naW5lKTsKPiArCXNlcW5vID0gcmVxLT5lbmdpbmUtPmdldF9zZXFubyhy ZXEtPmVuZ2luZSk7Cj4gKwlpZiAoaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8p KQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCXJldHVybiAtRUFHQUlOOwo+IEBAIC0yNzIxLDEyICsy NzI3LDE0IEBAIHN0YXRpYyB2b2lkIGk5MTVfc2V0X3Jlc2V0X3N0YXR1cyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl9Cj4gIH0KPiAgCj4gLXZvaWQgaTkxNV9nZW1fcmVx dWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+ICtzdGF0aWMgdm9pZCBpOTE1X2dlbV9y ZXF1ZXN0X2ZyZWUoc3RydWN0IGZlbmNlICpyZXFfZmVuY2UpCj4gIHsKPiAtCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gY29udGFpbmVyX29mKHJlcV9yZWYsCj4gLQkJCQkJCSB0 eXBlb2YoKnJlcSksIHJlZik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9 IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCj4gKwkJCQkJCSB0eXBlb2YoKnJlcSksIGZlbmNlKTsK PiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXEtPmN0eDsKPiAgCj4gKwlXQVJOX09O KCFtdXRleF9pc19sb2NrZWQoJnJlcS0+ZW5naW5lLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ICsK PiAgCWlmIChyZXEtPmZpbGVfcHJpdikKPiAgCQlpOTE1X2dlbV9yZXF1ZXN0X3JlbW92ZV9mcm9t X2NsaWVudChyZXEpOwo+ICAKPgpJcyBrbWVtX2NhY2hlX2ZyZWUgcmN1LXNhZmU/CgpJIGRvbid0 IHRoaW5rIGl0IGlzLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBzb21lIGhhcmQgdG8gZGVidWcgaXNz dWVzLgoKQWRkaW5nIFNMQUJfREVTVFJPWV9CWV9SQ1UgdG8gZmxhZ3Mgd291bGRuJ3QgZG8gd2hh dCB5b3Ugd291bGQgZXhwZWN0IGhlcmUsCnNvIHlvdXIgYmVzdCBiZXQgd291bGQgYmUgdG8gZG8g YSBjYWxsX3JjdSgmZmVuY2UtPnJjdSwgd3JhcHBlcl9mb3Jfa21lbV9jYWNoZV9mcmVlKTsKCn5N YWFydGVuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=