From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 16/29] drm/i915: Export intel_context_instance() Date: Thu, 11 Apr 2019 13:57:50 +0100 Message-ID: References: <20190408091728.20207-1-chris@chris-wilson.co.uk> <20190408091728.20207-16-chris@chris-wilson.co.uk> <3d7a484c-b08d-8c06-3e2b-83089088e29e@linux.intel.com> <155492475097.28388.12166995008999403413@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 70A4589838 for ; Thu, 11 Apr 2019 12:57:53 +0000 (UTC) In-Reply-To: <155492475097.28388.12166995008999403413@skylake-alporthouse-com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDEwLzA0LzIwMTkgMjA6MzIsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE5LTA0LTEwIDEzOjA2OjA0KQo+Pgo+PiBPbiAwOC8wNC8yMDE5IDEwOjE3 LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+PiBXZSB3YW50IHRvIHBhc3MgaW4gYSBpbnRlbF9jb250 ZXh0IGludG8gaW50ZWxfY29udGV4dF9waW4oKSBhbmQgdGhhdAo+Pj4gcmVxdWlyZXMgdXMgdG8g Zmlyc3QgYmUgYWJsZSB0byBsb29rdXAgdGhlIGludGVsX2NvbnRleHQhCj4+Pgo+Pj4gU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+PiAtLS0K Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYyAgICB8IDM3ICsr KysrKysrKysrLS0tLS0tLS0tLS0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2NvbnRleHQuaCAgICB8IDE5ICsrKysrKystLS0tCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgfCAgOCArKysrLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvbW9ja19lbmdpbmUuYyAgICAgIHwgIDggKysrKy0KPj4+ICAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYyAgICAgICB8ICA3ICsrKy0KPj4+ICAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDExICsrKysrLS0KPj4+ICAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jICAgICAgICAgICB8IDIxICsrKysrKysrLS0t LQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgIHwgMTEg KysrKysrLQo+Pj4gICAgOCBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAzOSBkZWxl dGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4+ PiBpbmRleCA2YWU2YTNmNTgzNjQuLmExMjY3NzM5ZTM2OSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4+PiBAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQg X19pbnRlbF9jb250ZXh0X3JlbW92ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4+PiAgICAg ICAgc3Bpbl91bmxvY2soJmN0eC0+aHdfY29udGV4dHNfbG9jayk7Cj4+PiAgICB9Cj4+PiAgICAK Pj4+IC1zdGF0aWMgc3RydWN0IGludGVsX2NvbnRleHQgKgo+Pj4gK3N0cnVjdCBpbnRlbF9jb250 ZXh0ICoKPj4+ICAgIGludGVsX2NvbnRleHRfaW5zdGFuY2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4+PiAgICB7Cj4+PiBAQCAtMTEyLDcgKzExMiw3IEBAIGludGVsX2NvbnRleHRf aW5zdGFuY2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4+ICAgIAo+Pj4gICAgICAg IGNlID0gaW50ZWxfY29udGV4dF9sb29rdXAoY3R4LCBlbmdpbmUpOwo+Pj4gICAgICAgIGlmIChs aWtlbHkoY2UpKQo+Pj4gLSAgICAgICAgICAgICByZXR1cm4gY2U7Cj4+PiArICAgICAgICAgICAg IHJldHVybiBpbnRlbF9jb250ZXh0X2dldChjZSk7Cj4+PiAgICAKPj4+ICAgICAgICBjZSA9IGlu dGVsX2NvbnRleHRfYWxsb2MoKTsKPj4+ICAgICAgICBpZiAoIWNlKQo+Pj4gQEAgLTEyNSw3ICsx MjUsNyBAQCBpbnRlbF9jb250ZXh0X2luc3RhbmNlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpj dHgsCj4+PiAgICAgICAgICAgICAgICBpbnRlbF9jb250ZXh0X2ZyZWUoY2UpOwo+Pj4gICAgCj4+ PiAgICAgICAgR0VNX0JVR19PTihpbnRlbF9jb250ZXh0X2xvb2t1cChjdHgsIGVuZ2luZSkgIT0g cG9zKTsKPj4+IC0gICAgIHJldHVybiBwb3M7Cj4+PiArICAgICByZXR1cm4gaW50ZWxfY29udGV4 dF9nZXQocG9zKTsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4gICAgc3RydWN0IGludGVsX2NvbnRleHQg Kgo+Pj4gQEAgLTEzOSwzMCArMTM5LDMwIEBAIGludGVsX2NvbnRleHRfcGluX2xvY2soc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4+ICAgICAgICBpZiAoSVNfRVJSKGNlKSkKPj4+ICAg ICAgICAgICAgICAgIHJldHVybiBjZTsKPj4+ICAgIAo+Pj4gLSAgICAgaWYgKG11dGV4X2xvY2tf aW50ZXJydXB0aWJsZSgmY2UtPnBpbl9tdXRleCkpCj4+PiArICAgICBpZiAobXV0ZXhfbG9ja19p bnRlcnJ1cHRpYmxlKCZjZS0+cGluX211dGV4KSkgewo+Pj4gKyAgICAgICAgICAgICBpbnRlbF9j b250ZXh0X3B1dChjZSk7Cj4+PiAgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRUlOVFIp Owo+Pj4gKyAgICAgfQo+Pj4gICAgCj4+PiAgICAgICAgcmV0dXJuIGNlOwo+Pj4gICAgfQo+Pj4g ICAgCj4+PiAtc3RydWN0IGludGVsX2NvbnRleHQgKgo+Pj4gLWludGVsX2NvbnRleHRfcGluKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4+PiAtICAgICAgICAgICAgICAgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+Pj4gK3ZvaWQgaW50ZWxfY29udGV4dF9waW5fdW5sb2Nr KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPj4+ICsgICAgIF9fcmVsZWFzZXMoY2UtPnBpbl9t dXRleCkKPj4+ICAgIHsKPj4+IC0gICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPj4+IC0g ICAgIGludCBlcnI7Cj4+PiAtCj4+PiAtICAgICBjZSA9IGludGVsX2NvbnRleHRfaW5zdGFuY2Uo Y3R4LCBlbmdpbmUpOwo+Pj4gLSAgICAgaWYgKElTX0VSUihjZSkpCj4+PiAtICAgICAgICAgICAg IHJldHVybiBjZTsKPj4+ICsgICAgIG11dGV4X3VubG9jaygmY2UtPnBpbl9tdXRleCk7Cj4+PiAr ICAgICBpbnRlbF9jb250ZXh0X3B1dChjZSk7Cj4+PiArfQo+Pj4gICAgCj4+PiAtICAgICBpZiAo bGlrZWx5KGF0b21pY19pbmNfbm90X3plcm8oJmNlLT5waW5fY291bnQpKSkKPj4+IC0gICAgICAg ICAgICAgcmV0dXJuIGNlOwo+Pj4gK2ludCBfX2ludGVsX2NvbnRleHRfZG9fcGluKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSkKPj4+ICt7Cj4+PiArICAgICBpbnQgZXJyOwo+Pj4gICAgCj4+PiAg ICAgICAgaWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmY2UtPnBpbl9tdXRleCkpCj4+PiAt ICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FSU5UUik7Cj4+PiArICAgICAgICAgICAgIHJl dHVybiAtRUlOVFI7Cj4+PiAgICAKPj4+ICAgICAgICBpZiAobGlrZWx5KCFhdG9taWNfcmVhZCgm Y2UtPnBpbl9jb3VudCkpKSB7Cj4+PiArICAgICAgICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHggPSBjZS0+Z2VtX2NvbnRleHQ7Cj4+PiAgICAgICAgICAgICAgICBpbnRlbF93YWtl cmVmX3Qgd2FrZXJlZjsKPj4+ICAgIAo+Pj4gICAgICAgICAgICAgICAgZXJyID0gMDsKPj4+IEBA IC0xNzIsNyArMTcyLDYgQEAgaW50ZWxfY29udGV4dF9waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnI7Cj4+PiAgICAKPj4+ ICAgICAgICAgICAgICAgIGk5MTVfZ2VtX2NvbnRleHRfZ2V0KGN0eCk7Cj4+PiAtICAgICAgICAg ICAgIEdFTV9CVUdfT04oY2UtPmdlbV9jb250ZXh0ICE9IGN0eCk7Cj4+PiAgICAKPj4+ICAgICAg ICAgICAgICAgIG11dGV4X2xvY2soJmN0eC0+bXV0ZXgpOwo+Pj4gICAgICAgICAgICAgICAgbGlz dF9hZGQoJmNlLT5hY3RpdmVfbGluaywgJmN0eC0+YWN0aXZlX2VuZ2luZXMpOwo+Pj4gQEAgLTE4 NiwxMSArMTg1LDExIEBAIGludGVsX2NvbnRleHRfcGluKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsCj4+PiAgICAgICAgR0VNX0JVR19PTighaW50ZWxfY29udGV4dF9pc19waW5uZWQoY2Up KTsgLyogbm8gb3ZlcmZsb3chICovCj4+PiAgICAKPj4+ICAgICAgICBtdXRleF91bmxvY2soJmNl LT5waW5fbXV0ZXgpOwo+Pj4gLSAgICAgcmV0dXJuIGNlOwo+Pj4gKyAgICAgcmV0dXJuIDA7Cj4+ PiAgICAKPj4+ICAgIGVycjoKPj4+ICAgICAgICBtdXRleF91bmxvY2soJmNlLT5waW5fbXV0ZXgp Owo+Pj4gLSAgICAgcmV0dXJuIEVSUl9QVFIoZXJyKTsKPj4+ICsgICAgIHJldHVybiBlcnI7Cj4+ PiAgICB9Cj4+PiAgICAKPj4+ICAgIHZvaWQgaW50ZWxfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY2UpCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5o Cj4+PiBpbmRleCA5YWVlZjg4MTc2YjkuLmRhMzQyZTlhOGMyZSAxMDA2NDQKPj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaAo+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCj4+PiBAQCAtNDksMTEgKzQ5LDcgQEAgaW50 ZWxfY29udGV4dF9pc19waW5uZWQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+Pj4gICAgICAg IHJldHVybiBhdG9taWNfcmVhZCgmY2UtPnBpbl9jb3VudCk7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ IC1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY29udGV4dF9waW5fdW5sb2NrKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSkKPj4+IC1fX3JlbGVhc2VzKGNlLT5waW5fbXV0ZXgpCj4+PiAtewo+Pj4g LSAgICAgbXV0ZXhfdW5sb2NrKCZjZS0+cGluX211dGV4KTsKPj4+IC19Cj4+Cj4+IENvdWxkIGxl YXZlIHRoaXMgYXMgc3RhdGljIGlubGluZSBzaW5jZSB0aGUgb25seSBhZGRpdGlvbiBpcyBrcmVm X3B1dCBzbwo+PiBjb21waWxlciBjb3VsZCBkZWNpZGUgd2hhdCB0byBkbz8gRG9uJ3QgbWluZCBl aXRoZXIgd2F5Lgo+IAo+IEluIHRoZSBuZXh0IChvciB0d28pIHBhdGNoLgo+IAo+Pj4gK3ZvaWQg aW50ZWxfY29udGV4dF9waW5fdW5sb2NrKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7Cj4+PiAg ICAKPj4+ICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKPj4+ICAgIF9faW50ZWxfY29udGV4dF9p bnNlcnQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4+IEBAIC02Myw3ICs1OSwxOCBA QCB2b2lkCj4+PiAgICBfX2ludGVsX2NvbnRleHRfcmVtb3ZlKHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZSk7Cj4+PiAgICAKPj4+ICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKPj4+IC1pbnRlbF9j b250ZXh0X3BpbihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpOwo+Pj4gK2ludGVsX2NvbnRleHRfaW5zdGFuY2Uoc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPj4+ICsgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7Cj4+PiArCj4+PiAraW50IF9faW50ZWxfY29udGV4dF9kb19waW4o c3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKPj4+ICsKPj4+ICtzdGF0aWMgaW5saW5lIGludCBp bnRlbF9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4+PiArewo+Pj4gKyAg ICAgaWYgKGxpa2VseShhdG9taWNfaW5jX25vdF96ZXJvKCZjZS0+cGluX2NvdW50KSkpCj4+PiAr ICAgICAgICAgICAgIHJldHVybiAwOwo+Pj4gKwo+Pj4gKyAgICAgcmV0dXJuIF9faW50ZWxfY29u dGV4dF9kb19waW4oY2UpOwo+Pj4gK30KPj4+ICAgIAo+Pj4gICAgc3RhdGljIGlubGluZSB2b2lk IF9faW50ZWxfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+Pj4gICAgewo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKPj4+IGluZGV4IGQz NzhiMjc2ZTQ3Ni4uZjY4MjhjMDI3NmViIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2VuZ2luZV9jcy5jCj4+PiBAQCAtNjk3LDExICs2OTcsMTcgQEAgc3RhdGljIGlu dCBwaW5fY29udGV4dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+Pj4gICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoqb3V0KQo+Pj4gICAgewo+Pj4gICAg ICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPj4+ICsgICAgIGludCBlcnI7Cj4+PiAgICAK Pj4+IC0gICAgIGNlID0gaW50ZWxfY29udGV4dF9waW4oY3R4LCBlbmdpbmUpOwo+Pj4gKyAgICAg Y2UgPSBpbnRlbF9jb250ZXh0X2luc3RhbmNlKGN0eCwgZW5naW5lKTsKPj4+ICAgICAgICBpZiAo SVNfRVJSKGNlKSkKPj4+ICAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGNlKTsKPj4+ICAg IAo+Pj4gKyAgICAgZXJyID0gaW50ZWxfY29udGV4dF9waW4oY2UpOwo+Pj4gKyAgICAgaW50ZWxf Y29udGV4dF9wdXQoY2UpOwo+Pj4gKyAgICAgaWYgKGVycikKPj4+ICsgICAgICAgICAgICAgcmV0 dXJuIGVycjsKPj4+ICsKPj4+ICAgICAgICAqb3V0ID0gY2U7Cj4+PiAgICAgICAgcmV0dXJuIDA7 Cj4+PiAgICB9Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19l bmdpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMKPj4+IGluZGV4 IGQ5ZjY4Yzg5ZGZmNC4uYTc5ZDk5MDlkMTcxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvbW9ja19lbmdpbmUuYwo+Pj4gQEAgLTIzOSw2ICsyMzksNyBAQCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlkKQo+Pj4gICAgewo+Pj4gICAg ICAgIHN0cnVjdCBtb2NrX2VuZ2luZSAqZW5naW5lOwo+Pj4gKyAgICAgaW50IGVycjsKPj4+ICAg IAo+Pj4gICAgICAgIEdFTV9CVUdfT04oaWQgPj0gSTkxNV9OVU1fRU5HSU5FUyk7Cj4+PiAgICAK Pj4+IEBAIC0yNzgsMTAgKzI3OSwxNSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptb2NrX2Vu Z2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4+ICAgICAgICBJTklUX0xJU1Rf SEVBRCgmZW5naW5lLT5od19xdWV1ZSk7Cj4+PiAgICAKPj4+ICAgICAgICBlbmdpbmUtPmJhc2Uu a2VybmVsX2NvbnRleHQgPQo+Pj4gLSAgICAgICAgICAgICBpbnRlbF9jb250ZXh0X3BpbihpOTE1 LT5rZXJuZWxfY29udGV4dCwgJmVuZ2luZS0+YmFzZSk7Cj4+PiArICAgICAgICAgICAgIGludGVs X2NvbnRleHRfaW5zdGFuY2UoaTkxNS0+a2VybmVsX2NvbnRleHQsICZlbmdpbmUtPmJhc2UpOwo+ Pj4gICAgICAgIGlmIChJU19FUlIoZW5naW5lLT5iYXNlLmtlcm5lbF9jb250ZXh0KSkKPj4+ICAg ICAgICAgICAgICAgIGdvdG8gZXJyX2JyZWFkY3J1bWJzOwo+Pj4gICAgCj4+PiArICAgICBlcnIg PSBpbnRlbF9jb250ZXh0X3BpbihlbmdpbmUtPmJhc2Uua2VybmVsX2NvbnRleHQpOwo+Pj4gKyAg ICAgaW50ZWxfY29udGV4dF9wdXQoZW5naW5lLT5iYXNlLmtlcm5lbF9jb250ZXh0KTsKPj4+ICsg ICAgIGlmIChlcnIpCj4+PiArICAgICAgICAgICAgIGdvdG8gZXJyX2JyZWFkY3J1bWJzOwo+Pj4g Kwo+Pj4gICAgICAgIHJldHVybiAmZW5naW5lLT5iYXNlOwo+Pj4gICAgCj4+PiAgICBlcnJfYnJl YWRjcnVtYnM6Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVk dWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jCj4+PiBpbmRleCA0 MGQ5ZjU0OWEwY2QuLjYwNmZjMjcxMzI0MCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9zY2hlZHVsZXIuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L3NjaGVkdWxlci5jCj4+PiBAQCAtMTE4OCwxMiArMTE4OCwxNyBAQCBpbnQgaW50ZWxfdmdwdV9z ZXR1cF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQo+Pj4gICAgICAgICAgICAg ICAgSU5JVF9MSVNUX0hFQUQoJnMtPndvcmtsb2FkX3FfaGVhZFtpXSk7Cj4+PiAgICAgICAgICAg ICAgICBzLT5zaGFkb3dbaV0gPSBFUlJfUFRSKC1FSU5WQUwpOwo+Pj4gICAgCj4+PiAtICAgICAg ICAgICAgIGNlID0gaW50ZWxfY29udGV4dF9waW4oY3R4LCBlbmdpbmUpOwo+Pj4gKyAgICAgICAg ICAgICBjZSA9IGludGVsX2NvbnRleHRfaW5zdGFuY2UoY3R4LCBlbmdpbmUpOwo+Pj4gICAgICAg ICAgICAgICAgaWYgKElTX0VSUihjZSkpIHsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgcmV0 ID0gUFRSX0VSUihjZSk7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X3NoYWRv d19jdHg7Cj4+PiAgICAgICAgICAgICAgICB9Cj4+PiAgICAKPj4+ICsgICAgICAgICAgICAgcmV0 ID0gaW50ZWxfY29udGV4dF9waW4oY2UpOwo+Pj4gKyAgICAgICAgICAgICBpbnRlbF9jb250ZXh0 X3B1dChjZSk7Cj4+PiArICAgICAgICAgICAgIGlmIChyZXQpCj4+PiArICAgICAgICAgICAgICAg ICAgICAgZ290byBvdXRfc2hhZG93X2N0eDsKPj4+ICsKPj4+ICAgICAgICAgICAgICAgIHMtPnNo YWRvd1tpXSA9IGNlOwo+Pj4gICAgICAgIH0KPj4+ICAgIAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+Pj4gaW5kZXggMzU3MzJjMmFlMTdmLi5jNzAwY2Jj MmY1OTQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVj YnVmZmVyLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+Pj4gQEAgLTIxMDEsMTQgKzIxMDEsMTkgQEAgc3RhdGljIGludCBlYl9waW5fY29udGV4 dChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwKPj4+ICAgICAgICBpZiAoZXJyKQo+Pj4gICAg ICAgICAgICAgICAgcmV0dXJuIGVycjsKPj4+ICAgIAo+Pj4gKyAgICAgY2UgPSBpbnRlbF9jb250 ZXh0X2luc3RhbmNlKGViLT5nZW1fY29udGV4dCwgZW5naW5lKTsKPj4+ICsgICAgIGlmIChJU19F UlIoY2UpKQo+Pj4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihjZSk7Cj4+PiArCj4+PiAg ICAgICAgLyoKPj4+ICAgICAgICAgKiBQaW5uaW5nIHRoZSBjb250ZXh0cyBtYXkgZ2VuZXJhdGUg cmVxdWVzdHMgaW4gb3JkZXIgdG8gYWNxdWlyZQo+Pj4gICAgICAgICAqIEdHVFQgc3BhY2UsIHNv IGRvIHRoaXMgZmlyc3QgYmVmb3JlIHdlIHJlc2VydmUgYSBzZXFubyBmb3IKPj4+ICAgICAgICAg KiBvdXJzZWx2ZXMuCj4+PiAgICAgICAgICovCj4+PiAtICAgICBjZSA9IGludGVsX2NvbnRleHRf cGluKGViLT5nZW1fY29udGV4dCwgZW5naW5lKTsKPj4+IC0gICAgIGlmIChJU19FUlIoY2UpKQo+ Pj4gLSAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihjZSk7Cj4+PiArICAgICBlcnIgPSBpbnRl bF9jb250ZXh0X3BpbihjZSk7Cj4+PiArICAgICBpbnRlbF9jb250ZXh0X3B1dChjZSk7Cj4+PiAr ICAgICBpZiAoZXJyKQo+Pj4gKyAgICAgICAgICAgICByZXR1cm4gZXJyOwo+Pj4gICAgCj4+PiAg ICAgICAgZWItPmVuZ2luZSA9IGVuZ2luZTsKPj4+ICAgICAgICBlYi0+Y29udGV4dCA9IGNlOwo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPj4+IGluZGV4IDMyOGE3NDBlNzJjYi4uYWZhZWFi ZTVlNTMxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMK Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4+PiBAQCAtMTIwNSwx MSArMTIwNSwxNyBAQCBzdGF0aWMgc3RydWN0IGludGVsX2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+Pj4gICAgewo+Pj4gICAgICAgIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGk5MTUtPmVuZ2luZVtSQ1MwXTsKPj4+ICAgICAg ICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7Cj4+PiAtICAgICBpbnQgcmV0Owo+Pj4gKyAgICAg aW50IGVycjsKPj4+ICAgIAo+Pj4gLSAgICAgcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVw dGlibGUoJmk5MTUtPmRybSk7Cj4+PiAtICAgICBpZiAocmV0KQo+Pj4gLSAgICAgICAgICAgICBy ZXR1cm4gRVJSX1BUUihyZXQpOwo+Pj4gKyAgICAgY2UgPSBpbnRlbF9jb250ZXh0X2luc3RhbmNl KGN0eCwgZW5naW5lKTsKPj4+ICsgICAgIGlmIChJU19FUlIoY2UpKQo+Pj4gKyAgICAgICAgICAg ICByZXR1cm4gY2U7Cj4+PiArCj4+PiArICAgICBlcnIgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJy dXB0aWJsZSgmaTkxNS0+ZHJtKTsKPj4+ICsgICAgIGlmIChlcnIpIHsKPj4+ICsgICAgICAgICAg ICAgaW50ZWxfY29udGV4dF9wdXQoY2UpOwo+Pj4gKyAgICAgICAgICAgICByZXR1cm4gRVJSX1BU UihlcnIpOwo+Pj4gKyAgICAgfQo+Pj4gICAgCj4+PiAgICAgICAgLyoKPj4+ICAgICAgICAgKiBB cyB0aGUgSUQgaXMgdGhlIGd0dCBvZmZzZXQgb2YgdGhlIGNvbnRleHQncyB2bWEgd2UKPj4+IEBA IC0xMjE3LDEwICsxMjIzLDExIEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqb2FfcGlu X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4+PiAgICAgICAgICoKPj4+ ICAgICAgICAgKiBOQjogaW1wbGllZCBSQ1MgZW5naW5lLi4uCj4+PiAgICAgICAgICovCj4+PiAt ICAgICBjZSA9IGludGVsX2NvbnRleHRfcGluKGN0eCwgZW5naW5lKTsKPj4+ICsgICAgIGVyciA9 IGludGVsX2NvbnRleHRfcGluKGNlKTsKPj4+ICAgICAgICBtdXRleF91bmxvY2soJmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwo+Pj4gLSAgICAgaWYgKElTX0VSUihjZSkpCj4+PiAtICAgICAgICAg ICAgIHJldHVybiBjZTsKPj4+ICsgICAgIGludGVsX2NvbnRleHRfcHV0KGNlKTsKPj4+ICsgICAg IGlmIChlcnIpCj4+PiArICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKGVycik7Cj4+PiAgICAK Pj4+ICAgICAgICBpOTE1LT5wZXJmLm9hLnBpbm5lZF9jdHggPSBjZTsKPj4+ICAgIAo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPj4+IGluZGV4IDc5MzJkMTIwOTI0Ny4uOGFiZDg5 MWQ5Mjg3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4+PiBAQCAt NzUzLDYgKzc1Myw3IEBAIGk5MTVfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4+PiAgICAgICAgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7Cj4+PiAgICAgICAgc3RydWN0 IGludGVsX2NvbnRleHQgKmNlOwo+Pj4gICAgICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwo+ Pj4gKyAgICAgaW50IGVycjsKPj4+ICAgIAo+Pj4gICAgICAgIC8qCj4+PiAgICAgICAgICogUHJl ZW1wdCBjb250ZXh0cyBhcmUgcmVzZXJ2ZWQgZm9yIGV4Y2x1c2l2ZSB1c2UgdG8gaW5qZWN0IGEK Pj4+IEBAIC03NjYsMTMgKzc2NywyMSBAQCBpOTE1X3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+Pj4gICAg ICAgICAqIEdHVFQgc3BhY2UsIHNvIGRvIHRoaXMgZmlyc3QgYmVmb3JlIHdlIHJlc2VydmUgYSBz ZXFubyBmb3IKPj4+ICAgICAgICAgKiBvdXJzZWx2ZXMuCj4+PiAgICAgICAgICovCj4+PiAtICAg ICBjZSA9IGludGVsX2NvbnRleHRfcGluKGN0eCwgZW5naW5lKTsKPj4+ICsgICAgIGNlID0gaW50 ZWxfY29udGV4dF9pbnN0YW5jZShjdHgsIGVuZ2luZSk7Cj4+PiAgICAgICAgaWYgKElTX0VSUihj ZSkpCj4+PiAgICAgICAgICAgICAgICByZXR1cm4gRVJSX0NBU1QoY2UpOwo+Pj4gICAgCj4+PiAr ICAgICBlcnIgPSBpbnRlbF9jb250ZXh0X3BpbihjZSk7Cj4+PiArICAgICBpZiAoZXJyKSB7Cj4+ PiArICAgICAgICAgICAgIHJxID0gRVJSX1BUUihlcnIpOwo+Pj4gKyAgICAgICAgICAgICBnb3Rv IGVycl9wdXQ7Cj4+PiArICAgICB9Cj4+PiArCj4+PiAgICAgICAgcnEgPSBpOTE1X3JlcXVlc3Rf Y3JlYXRlKGNlKTsKPj4+ICAgICAgICBpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKPj4+ICAgIAo+ Pj4gK2Vycl9wdXQ6Cj4+PiArICAgICBpbnRlbF9jb250ZXh0X3B1dChjZSk7Cj4+PiAgICAgICAg cmV0dXJuIHJxOwo+Pj4gICAgfQo+Pj4gICAgCj4+Pgo+Pgo+PiBUaGUgcGF0dGVybiBvZiBpbnN0 YW5jZS1waW4tcHV0IGlzIHJlcGVhdGVkIHNvIG1hbnkgdGltZXMgaXQgYmVncyB0byBiZQo+PiBw cm9tb3RlZCB0byBzb21ldGhpbmcgbGlrZSBpbnRlbF9jb250ZXh0X3Bpbl9pbnN0YW5jZS4KPiAK PiBJdCdzIGp1c3QgYSB0cmFuc2l0aW9uIHBhdGNoLiBXZSdsbCBnZXQgcmlkIG9mIGludGVsX2Nv bnRleHRfaW5zdGFuY2UoKQo+IG1vbWVudGFyaWx5LgoKQW5kIGhhdmVuJ3QgSSBzcG90dGVkIHRo aXMgbGF0ZXIgbXlzZWxmIQoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeA==