From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 03/55] drm/i915: i915_add_request must not fail Date: Fri, 05 Jun 2015 11:55:20 +0100 Message-ID: <55718018.4030806@intel.com> References: <1432917856-12261-1-git-send-email-John.C.Harrison@Intel.com> <1432917856-12261-4-git-send-email-John.C.Harrison@Intel.com> <556DF316.4080506@intel.com> <55705BBB.3000207@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 1A4766E13A for ; Fri, 5 Jun 2015 03:55:23 -0700 (PDT) In-Reply-To: <55705BBB.3000207@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 Harrison , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMDQvMDYvMjAxNSAxNTowNywgSm9obiBIYXJyaXNvbiB3cm90ZToKPiBPbiAwMi8wNi8yMDE1 IDE5OjE2LCBUb21hcyBFbGYgd3JvdGU6Cj4+IE9uIDI5LzA1LzIwMTUgMTc6NDMsIEpvaG4uQy5I YXJyaXNvbkBJbnRlbC5jb20gd3JvdGU6Cj4+PiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMu SGFycmlzb25ASW50ZWwuY29tPgo+Pj4KPj4+IFRoZSBpOTE1X2FkZF9yZXF1ZXN0KCkgZnVuY3Rp b24gaXMgY2FsbGVkIHRvIGtlZXAgdHJhY2sgb2Ygd29yayB0aGF0Cj4+PiBoYXMgYmVlbgo+Pj4g d3JpdHRlbiB0byB0aGUgcmluZyBidWZmZXIuIEl0IGFkZHMgZXBpbG9ndWUgY29tbWFuZHMgdG8g dHJhY2sKPj4+IHByb2dyZXNzIChzZXFubwo+Pj4gdXBkYXRlcyBhbmQgc3VjaCksIG1vdmVzIHRo ZSByZXF1ZXN0IHN0cnVjdHVyZSBvbnRvIHRoZSByaWdodCBsaXN0Cj4+PiBhbmQgb3RoZXIKPj4+ IHN1Y2ggaG91c2Uga2VlcGluZyB0YXNrcy4gSG93ZXZlciwgdGhlIHdvcmsgaXRzZWxmIGhhcyBh bHJlYWR5IGJlZW4KPj4+IHdyaXR0ZW4gdG8KPj4+IHRoZSByaW5nIGFuZCB3aWxsIGdldCBleGVj dXRlZCB3aGV0aGVyIG9yIG5vdCB0aGUgYWRkIHJlcXVlc3QgY2FsbAo+Pj4gc3VjY2VlZHMuIFNv Cj4+PiBubyBtYXR0ZXIgd2hhdCBnb2VzIHdyb25nLCB0aGVyZSBpc24ndCBhIHdob2xlIGxvdCBv ZiBwb2ludCBpbgo+Pj4gZmFpbGluZyB0aGUgY2FsbC4KPj4+Cj4+PiBBdCB0aGUgbW9tZW50LCB0 aGlzIGlzIGZpbmUoaXNoKS4gSWYgdGhlIGFkZCByZXF1ZXN0IGRvZXMgYmFpbCBlYXJseQo+Pj4g b24gYW5kIG5vdAo+Pj4gZG8gdGhlIGhvdXNla2VlcGluZywgdGhlIHJlcXVlc3Qgd2lsbCBzdGls bCBmbG9hdCBhcm91bmQgaW4gdGhlCj4+PiByaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3Qg ZmllbGQgYW5kIGJlIHBpY2tlZCB1cCBuZXh0IHRpbWUuIEl0Cj4+PiBtZWFucwo+Pj4gbXVsdGlw bGUgcGllY2VzIG9mIHdvcmsgd2lsbCBiZSB0YWdnZWQgYXMgdGhlIHNhbWUgcmVxdWVzdCBhbmQg ZHJpdmVyCj4+PiBjYW4ndAo+Pj4gYWN0dWFsbHkgd2FpdCBmb3IgdGhlIGZpcnN0IHBpZWNlIG9m IHdvcmsgdW50aWwgc29tZXRoaW5nIGVsc2UgaGFzIGJlZW4KPj4+IHN1Ym1pdHRlZC4gQnV0IGl0 IGFsbCBzb3J0IG9mIGhhbmdzIHRvZ2V0aGVyLgo+Pj4KPj4+IFRoaXMgcGF0Y2ggc2VyaWVzIGlz IGFsbCBhYm91dCByZW1vdmluZyB0aGUgT0xSIGFuZCBndWFyYW50ZWVpbmcgdGhhdAo+Pj4gZWFj aCBwaWVjZQo+Pj4gb2Ygd29yayBnZXRzIGl0cyBvd24gcGVyc29uYWwgcmVxdWVzdC4gVGhhdCBt ZWFucyB0aGF0IHRoZXJlIGlzIG5vIG1vcmUKPj4+ICdob292ZXJpbmcgdXAgb2YgZm9yZ290dGVu IHJlcXVlc3RzJy4gSWYgdGhlIHJlcXVlc3QgZG9lcyBub3QgZ2V0Cj4+PiB0cmFja2VkIHRoZW4K Pj4+IGl0IHdpbGwgYmUgbGVha2VkLiBUaHVzIHRoZSBhZGQgcmVxdWVzdCBjYWxsIF9tdXN0XyBu b3QgZmFpbC4gVGhlCj4+PiBwcmV2aW91cyBwYXRjaAo+Pj4gc2hvdWxkIGhhdmUgYWxyZWFkeSBl bnN1cmVkIHRoYXQgaXQgX3dpbGxfIG5vdCBmYWlsIGJ5IHJlbW92aW5nIHRoZQo+Pj4gcG90ZW50 aWFsCj4+PiBmb3IgcnVubmluZyBvdXQgb2YgcmluZyBzcGFjZS4gVGhpcyBwYXRjaCBlbmZvcmNl cyB0aGUgcnVsZSBieQo+Pj4gYWN0dWFsbHkgcmVtb3ZpbmcKPj4+IHRoZSBlYXJseSBleGl0IHBh dGhzIGFuZCB0aGUgcmV0dXJuIGNvZGUuCj4+Pgo+Pj4gTm90ZSB0aGF0IGlmIHNvbWV0aGluZyBk b2VzIG1hbmFnZSB0byBmYWlsIGFuZCB0aGUgZXBpbG9ndWUgY29tbWFuZHMKPj4+IGRvbid0IGdl dAo+Pj4gd3JpdHRlbiB0byB0aGUgcmluZywgdGhlIGRyaXZlciB3aWxsIHN0aWxsIGhhbmcgdG9n ZXRoZXIuIFRoZSByZXF1ZXN0Cj4+PiB3aWxsIGJlCj4+PiBhZGRlZCB0byB0aGUgdHJhY2tpbmcg bGlzdHMuIEFuZCBhcyBpbiB0aGUgb2xkIGNhc2UsIGFueSBzdWJzZXF1ZW50Cj4+PiB3b3JrIHdp bGwKPj4+IGdlbmVyYXRlIGEgbmV3IHNlcW5vIHdoaWNoIHdpbGwgc3VmZmljZSBmb3IgbWFya2lu ZyB0aGUgb2xkIG9uZSBhcwo+Pj4gY29tcGxldGUuCj4+Pgo+Pj4gdjI6IEltcHJvdmVkIFdBUk5p bmdzIChUb21hcyBFbGYgcmV2aWV3IHJlcXVlc3QpLgo+Pj4KPj4+IEZvcjogVklaLTUxMTUKPj4+ IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+ Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAg ICAgfCAgICA2ICsrLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAg ICAgICAgICAgfCAgIDQzCj4+PiArKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+Pj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgICB8ICAgIDIgKy0KPj4+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMgfCAgICAyICstCj4+ PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICAgIHwgICAgMiAr LQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgICAgICAgICB8ICAg IDggKystLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAg ICAgfCAgICA4ICsrLS0tCj4+PiAgIDcgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwg NDAgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gaW5k ZXggZWJhMTg1Ny4uMWJlNGE1MiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+ IEBAIC0yODYwLDkgKzI4NjAsOSBAQCB2b2lkIGk5MTVfZ2VtX2luaXRfc3dpenpsaW5nKHN0cnVj dCBkcm1fZGV2aWNlCj4+PiAqZGV2KTsKPj4+ICAgdm9pZCBpOTE1X2dlbV9jbGVhbnVwX3Jpbmdi dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiAgIGludCBfX211c3RfY2hlY2sgaTkx NV9ncHVfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4+ICAgaW50IF9fbXVzdF9jaGVj ayBpOTE1X2dlbV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Pj4gLWludCBfX2k5 MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4+IC0gICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4+PiAtICAgICAgICAgICAgICAgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKmJhdGNoX29iaik7Cj4+PiArdm9pZCBfX2k5MTVfYWRkX3Jl cXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4+ICsgICAgICAgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGUsCj4+PiArICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmJhdGNoX29iaik7Cj4+PiAgICNkZWZpbmUgaTkxNV9hZGRfcmVxdWVzdChyaW5nKSBc Cj4+PiAgICAgICBfX2k5MTVfYWRkX3JlcXVlc3QocmluZywgTlVMTCwgTlVMTCkKPj4+ICAgaW50 IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+PiBpbmRleCA2ZjUxNDE2Li5kZDM5YWE1IDEw MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4gQEAgLTExNTUsMTUgKzExNTUsMTIg QEAgaTkxNV9nZW1fY2hlY2tfd2VkZ2Uoc3RydWN0IGk5MTVfZ3B1X2Vycm9yCj4+PiAqZXJyb3Is Cj4+PiAgIGludAo+Pj4gICBpOTE1X2dlbV9jaGVja19vbHIoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpCj4+PiAgIHsKPj4+IC0gICAgaW50IHJldDsKPj4+IC0KPj4+IFdBUk5fT04o IW11dGV4X2lzX2xvY2tlZCgmcmVxLT5yaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+Pj4KPj4+ IC0gICAgcmV0ID0gMDsKPj4+ICAgICAgIGlmIChyZXEgPT0gcmVxLT5yaW5nLT5vdXRzdGFuZGlu Z19sYXp5X3JlcXVlc3QpCj4+PiAtICAgICAgICByZXQgPSBpOTE1X2FkZF9yZXF1ZXN0KHJlcS0+ cmluZyk7Cj4+PiArICAgICAgICBpOTE1X2FkZF9yZXF1ZXN0KHJlcS0+cmluZyk7Cj4+Pgo+Pj4g LSAgICByZXR1cm4gcmV0Owo+Pj4gKyAgICByZXR1cm4gMDsKPj4+ICAgfQo+Pgo+PiBpOTE1X2dl bV9jaGVja19vbHIgbmV2ZXIgcmV0dXJucyBhbnl0aGluZyBidXQgMC4gSG93IGFib3V0IG1ha2lu ZyBpdAo+PiB2b2lkPwo+IFNlZW1zIGxpa2UgcmVkdW5kYW50L3VubmVjZXNzYXJ5IGNoYW5nZXMg Z2l2ZW4gdGhhdCB0aGUgZW50aXJlIGZ1bmN0aW9uCj4gaXMgcmVtb3ZlZCBsYXRlciBpbiB0aGUg c2VyaWVzLiBDaGFuZ2luZyBpdCBmcm9tIGEgJ19fbXVzdF9jaGVjaycgdG8gYQo+ICd2b2lkJyBu b3cgd291bGQgYmUgYSBsb3Qgb2YgZXh0cmEgY2hhbmdlcy4KPgo+PiBUaGFua3MsCj4+IFRvbWFz Cj4+Cj4+Pgo+Pj4gICBzdGF0aWMgdm9pZCBmYWtlX2lycSh1bnNpZ25lZCBsb25nIGRhdGEpCj4+ PiBAQCAtMjQ2Niw5ICsyNDYzLDE0IEBAIGk5MTVfZ2VtX2dldF9zZXFubyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1MzIKPj4+ICpzZXFubykKPj4+ICAgICAgIHJldHVybiAwOwo+Pj4gICB9Cj4+ Pgo+Pj4gLWludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPj4+IC0gICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4+PiAtICAgICAg ICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPj4+ICsvKgo+Pj4gKyAq IE5COiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIHRvIGZhaWwuIERvaW5nIHNvIHdvdWxk IG1lYW4gdGhlCj4+PiB0aGUKPj4+ICsgKiByZXF1ZXN0IGlzIG5vdCBiZWluZyB0cmFja2VkIGZv ciBjb21wbGV0aW9uIGJ1dCB0aGUgd29yayBpdHNlbGYgaXMKPj4+ICsgKiBnb2luZyB0byBoYXBw ZW4gb24gdGhlIGhhcmR3YXJlLiBUaGlzIHdvdWxkIGJlIGEgQmFkIFRoaW5nKHRtKS4KPj4+ICsg Ki8KPj4+ICt2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAo+Pj4gKyAgICAgICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPj4+ICsgICAgICAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+Pj4gICB7Cj4+PiAgICAgICBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRl Owo+Pj4gICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Owo+Pj4gQEAg LTI0NzgsNyArMjQ4MCw3IEBAIGludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2Vu Z2luZV9jcwo+Pj4gKnJpbmcsCj4+Pgo+Pj4gICAgICAgcmVxdWVzdCA9IHJpbmctPm91dHN0YW5k aW5nX2xhenlfcmVxdWVzdDsKPj4+ICAgICAgIGlmIChXQVJOX09OKHJlcXVlc3QgPT0gTlVMTCkp Cj4+PiAtICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4+ICsgICAgICAgIHJldHVybjsKPj4KPj4g WW91IGhhdmUgYSBXQVJOIGZvciB0aGUgb3RoZXIgcG9pbnRzIG9mIGZhaWx1cmUgaW4gdGhpcyBm dW5jdGlvbiwgd2h5Cj4+IG5vdCBoZXJlPwo+IEVybSwgeW91IG1lYW4gbGlrZSB0aGUgb25lIGlu IHRoZSAnaWYnIGl0c2VsZj8KPgoKRXhhY3RseSEgOikKClJldmlld2VkLWJ5OiBUb21hcyBFbGYg PHRvbWFzLmVsZkBpbnRlbC5jb20+CgpUaGFua3MsClRvbWFzCgo+Pgo+Pj4KPj4+ICAgICAgIGlm IChpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKPj4+ICAgICAgICAgICByaW5nYnVmID0gcmVxdWVz dC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7Cj4+PiBAQCAtMjUwMCwxNSArMjUwMiwx MiBAQCBpbnQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MKPj4+ICpy aW5nLAo+Pj4gICAgICAgICogaXMgdGhhdCB0aGUgZmx1c2ggX211c3RfIGhhcHBlbiBiZWZvcmUg dGhlIG5leHQgcmVxdWVzdCwgbm8KPj4+IG1hdHRlcgo+Pj4gICAgICAgICogd2hhdC4KPj4+ICAg ICAgICAqLwo+Pj4gLSAgICBpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Cj4+PiArICAgIGlm IChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCj4+PiAgICAgICAgICAgcmV0ID0gbG9naWNhbF9yaW5n X2ZsdXNoX2FsbF9jYWNoZXMocmluZ2J1ZiwgcmVxdWVzdC0+Y3R4KTsKPj4+IC0gICAgICAgIGlm IChyZXQpCj4+PiAtICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+IC0gICAgfSBlbHNlIHsKPj4+ ICsgICAgZWxzZQo+Pj4gICAgICAgICAgIHJldCA9IGludGVsX3JpbmdfZmx1c2hfYWxsX2NhY2hl cyhyaW5nKTsKPj4+IC0gICAgICAgIGlmIChyZXQpCj4+PiAtICAgICAgICAgICAgcmV0dXJuIHJl dDsKPj4+IC0gICAgfQo+Pj4gKyAgICAvKiBOb3QgYWxsb3dlZCB0byBmYWlsISAqLwo+Pj4gKyAg ICBXQVJOKHJldCwgIipfcmluZ19mbHVzaF9hbGxfY2FjaGVzIGZhaWxlZDogJWQhXG4iLCByZXQp Owo+Pj4KPj4+ICAgICAgIC8qIFJlY29yZCB0aGUgcG9zaXRpb24gb2YgdGhlIHN0YXJ0IG9mIHRo ZSByZXF1ZXN0IHNvIHRoYXQKPj4+ICAgICAgICAqIHNob3VsZCB3ZSBkZXRlY3QgdGhlIHVwZGF0 ZWQgc2Vxbm8gcGFydC13YXkgdGhyb3VnaCB0aGUKPj4+IEBAIC0yNTE3LDE3ICsyNTE2LDE1IEBA IGludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcwo+Pj4gKnJpbmcs Cj4+PiAgICAgICAgKi8KPj4+ICAgICAgIHJlcXVlc3QtPnBvc3RmaXggPSBpbnRlbF9yaW5nX2dl dF90YWlsKHJpbmdidWYpOwo+Pj4KPj4+IC0gICAgaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykg ewo+Pj4gKyAgICBpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+Pj4gICAgICAgICAgIHJldCA9 IHJpbmctPmVtaXRfcmVxdWVzdChyaW5nYnVmLCByZXF1ZXN0KTsKPj4+IC0gICAgICAgIGlmIChy ZXQpCj4+PiAtICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+IC0gICAgfSBlbHNlIHsKPj4+ICsg ICAgZWxzZSB7Cj4+PiAgICAgICAgICAgcmV0ID0gcmluZy0+YWRkX3JlcXVlc3QocmluZyk7Cj4+ PiAtICAgICAgICBpZiAocmV0KQo+Pj4gLSAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Pgo+Pj4g ICAgICAgICAgIHJlcXVlc3QtPnRhaWwgPSBpbnRlbF9yaW5nX2dldF90YWlsKHJpbmdidWYpOwo+ Pj4gICAgICAgfQo+Pj4gKyAgICAvKiBOb3QgYWxsb3dlZCB0byBmYWlsISAqLwo+Pj4gKyAgICBX QVJOKHJldCwgImVtaXR8YWRkX3JlcXVlc3QgZmFpbGVkOiAlZCFcbiIsIHJldCk7Cj4+Pgo+Pj4g ICAgICAgcmVxdWVzdC0+aGVhZCA9IHJlcXVlc3Rfc3RhcnQ7Cj4+Pgo+Pj4gQEAgLTI1NzYsOCAr MjU3Myw2IEBAIGludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcwo+ Pj4gKnJpbmcsCj4+Pgo+Pj4gICAgICAgLyogU2FuaXR5IGNoZWNrIHRoYXQgdGhlIHJlc2VydmVk IHNpemUgd2FzIGxhcmdlIGVub3VnaC4gKi8KPj4+ICAgICAgIGludGVsX3JpbmdfcmVzZXJ2ZWRf c3BhY2VfZW5kKHJpbmdidWYpOwo+Pj4gLQo+Pj4gLSAgICByZXR1cm4gMDsKPj4+ICAgfQo+Pj4K Pj4+ICAgc3RhdGljIGJvb2wgaTkxNV9jb250ZXh0X2lzX2Jhbm5lZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYwo+Pj4gaW5kZXggYmQwZTRiZC4uMmI0OGEzMSAxMDA2NDQKPj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4+PiBAQCAtMTA2MSw3ICsx MDYxLDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMoc3RydWN0Cj4+PiBk cm1fZGV2aWNlICpkZXYsCj4+PiAgICAgICByaW5nLT5ncHVfY2FjaGVzX2RpcnR5ID0gdHJ1ZTsK Pj4+Cj4+PiAgICAgICAvKiBBZGQgYSBicmVhZGNydW1iIGZvciB0aGUgY29tcGxldGlvbiBvZiB0 aGUgYmF0Y2ggYnVmZmVyICovCj4+PiAtICAgICh2b2lkKV9faTkxNV9hZGRfcmVxdWVzdChyaW5n LCBmaWxlLCBvYmopOwo+Pj4gKyAgICBfX2k5MTVfYWRkX3JlcXVlc3QocmluZywgZmlsZSwgb2Jq KTsKPj4+ICAgfQo+Pj4KPj4+ICAgc3RhdGljIGludAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCj4+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCj4+PiBpbmRleCA1MjE1NDhhLi5jZTQ3ODhm IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0 YXRlLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0 ZS5jCj4+PiBAQCAtMTczLDcgKzE3Myw3IEBAIGludCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5p dChzdHJ1Y3QKPj4+IGludGVsX2VuZ2luZV9jcyAqcmluZykKPj4+Cj4+PiAgICAgICBpOTE1X3Zt YV9tb3ZlX3RvX2FjdGl2ZShpOTE1X2dlbV9vYmpfdG9fZ2d0dChzby5vYmopLCByaW5nKTsKPj4+ Cj4+PiAtICAgIHJldCA9IF9faTkxNV9hZGRfcmVxdWVzdChyaW5nLCBOVUxMLCBzby5vYmopOwo+ Pj4gKyAgICBfX2k5MTVfYWRkX3JlcXVlc3QocmluZywgTlVMTCwgc28ub2JqKTsKPj4+ICAgICAg IC8qIF9faTkxNV9hZGRfcmVxdWVzdCBtb3ZlcyBvYmplY3QgdG8gaW5hY3RpdmUgaWYgaXQgZmFp bHMgKi8KPj4+ICAgb3V0Ogo+Pj4gICAgICAgaTkxNV9nZW1fcmVuZGVyX3N0YXRlX2ZpbmkoJnNv KTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+Pj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+Pj4gaW5kZXggZTYyZDM5Ni4uN2E3 NWZjOCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+Pj4gQEAgLTEzNzMsNyAr MTM3Myw3IEBAIHN0YXRpYyBpbnQKPj4+IGludGVsX2xyX2NvbnRleHRfcmVuZGVyX3N0YXRlX2lu aXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4+Cj4+PiAgICAgICBpOTE1X3ZtYV9t b3ZlX3RvX2FjdGl2ZShpOTE1X2dlbV9vYmpfdG9fZ2d0dChzby5vYmopLCByaW5nKTsKPj4+Cj4+ PiAtICAgIHJldCA9IF9faTkxNV9hZGRfcmVxdWVzdChyaW5nLCBmaWxlLCBzby5vYmopOwo+Pj4g KyAgICBfX2k5MTVfYWRkX3JlcXVlc3QocmluZywgZmlsZSwgc28ub2JqKTsKPj4+ICAgICAgIC8q IGludGVsX2xvZ2ljYWxfcmluZ19hZGRfcmVxdWVzdCBtb3ZlcyBvYmplY3QgdG8gaW5hY3RpdmUg aWYgaXQKPj4+ICAgICAgICAqIGZhaWxzICovCj4+PiAgIG91dDoKPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPj4+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfb3ZlcmxheS5jCj4+PiBpbmRleCAyNWM4ZWM2Li5lNzUzNGI5IDEwMDY0NAo+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPj4+IEBAIC0yMjAsOSArMjIwLDcg QEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X2RvX3dhaXRfcmVxdWVzdChzdHJ1Y3QKPj4+IGlu dGVsX292ZXJsYXkgKm92ZXJsYXksCj4+PiAgICAgICBXQVJOX09OKG92ZXJsYXktPmxhc3RfZmxp cF9yZXEpOwo+Pj4gICAgICAgaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm92ZXJsYXktPmxhc3Rf ZmxpcF9yZXEsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaW5nLT5vdXRzdGFuZGlu Z19sYXp5X3JlcXVlc3QpOwo+Pj4gLSAgICByZXQgPSBpOTE1X2FkZF9yZXF1ZXN0KHJpbmcpOwo+ Pj4gLSAgICBpZiAocmV0KQo+Pj4gLSAgICAgICAgcmV0dXJuIHJldDsKPj4+ICsgICAgaTkxNV9h ZGRfcmVxdWVzdChyaW5nKTsKPj4+Cj4+PiAgICAgICBvdmVybGF5LT5mbGlwX3RhaWwgPSB0YWls Owo+Pj4gICAgICAgcmV0ID0gaTkxNV93YWl0X3JlcXVlc3Qob3ZlcmxheS0+bGFzdF9mbGlwX3Jl cSk7Cj4+PiBAQCAtMjkxLDcgKzI4OSw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9jb250 aW51ZShzdHJ1Y3QKPj4+IGludGVsX292ZXJsYXkgKm92ZXJsYXksCj4+PiAgICAgICBXQVJOX09O KG92ZXJsYXktPmxhc3RfZmxpcF9yZXEpOwo+Pj4gICAgICAgaTkxNV9nZW1fcmVxdWVzdF9hc3Np Z24oJm92ZXJsYXktPmxhc3RfZmxpcF9yZXEsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICByaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpOwo+Pj4gLSAgICByZXR1cm4gaTkxNV9h ZGRfcmVxdWVzdChyaW5nKTsKPj4+ICsgICAgaTkxNV9hZGRfcmVxdWVzdChyaW5nKTsKPj4+ICsK Pj4+ICsgICAgcmV0dXJuIDA7Cj4+PiAgIH0KPj4+Cj4+PiAgIHN0YXRpYyB2b2lkIGludGVsX292 ZXJsYXlfcmVsZWFzZV9vbGRfdmlkX3RhaWwoc3RydWN0IGludGVsX292ZXJsYXkKPj4+ICpvdmVy bGF5KQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4+IGlu ZGV4IDc0YzIyMjIuLjcwNjFiMDcgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwo+Pj4gQEAgLTIxNTYsMTQgKzIxNTYsMTAgQEAgc3RhdGljIGludCBpbnRl bF93cmFwX3JpbmdfYnVmZmVyKHN0cnVjdAo+Pj4gaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+Pj4g ICBpbnQgaW50ZWxfcmluZ19pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4+PiAg IHsKPj4+ICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+Pj4gLSAgICBp bnQgcmV0Owo+Pj4KPj4+ICAgICAgIC8qIFdlIG5lZWQgdG8gYWRkIGFueSByZXF1ZXN0cyByZXF1 aXJlZCB0byBmbHVzaCB0aGUgb2JqZWN0cwo+Pj4gYW5kIHJpbmcgKi8KPj4+IC0gICAgaWYgKHJp bmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCkgewo+Pj4gLSAgICAgICAgcmV0ID0gaTkxNV9h ZGRfcmVxdWVzdChyaW5nKTsKPj4+IC0gICAgICAgIGlmIChyZXQpCj4+PiAtICAgICAgICAgICAg cmV0dXJuIHJldDsKPj4+IC0gICAgfQo+Pj4gKyAgICBpZiAocmluZy0+b3V0c3RhbmRpbmdfbGF6 eV9yZXF1ZXN0KQo+Pj4gKyAgICAgICAgaTkxNV9hZGRfcmVxdWVzdChyaW5nKTsKPj4+Cj4+PiAg ICAgICAvKiBXYWl0IHVwb24gdGhlIGxhc3QgcmVxdWVzdCB0byBiZSBjb21wbGV0ZWQgKi8KPj4+ ICAgICAgIGlmIChsaXN0X2VtcHR5KCZyaW5nLT5yZXF1ZXN0X2xpc3QpKQo+Pj4KPj4KPgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK