From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 57/59] drm/i915: Update a bunch of LRC functions to take requests Date: Tue, 31 Mar 2015 19:18:09 +0100 Message-ID: <551AE4E1.1050000@intel.com> References: <1426768264-16996-1-git-send-email-John.C.Harrison@Intel.com> <1426768264-16996-58-git-send-email-John.C.Harrison@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 6BE876E05B for ; Tue, 31 Mar 2015 11:18:12 -0700 (PDT) In-Reply-To: <1426768264-16996-58-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 T24gMTkvMDMvMjAxNSAxMjozMSwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gQSBidW5j aCBvZiB0aGUgbG93IGxldmVsIExSQyBmdW5jdGlvbnMgd2VyZSBwYXNzaW5nIGFyb3VuZCByaW5n YnVmIGFuZCBjdHgKPiBwYWlycy4gSW4gYSBmZXcgY2FzZXMsIHRoZXkgdG9vayB0aGUgci9jIHBh aXIgYW5kIGEgcmVxdWVzdCBhcyB3ZWxsLiBUaGlzIGlzIGFsbAo+IHF1aXRlIG1lc3N5IGFuZCB1 bm5lY2VzYXJ5LiBUaGUgY29udGV4dF9xdWV1ZSgpIGNhbGwgaXMgZXNwZWNpYWxseSBiYWQgc2lu Y2UgdGhlCj4gZmFrZSByZXF1ZXN0IGNvZGUgZ290IHJlbW92ZWQgLSBpdCB0YWtlcyBhIHJlcXVl c3QgYW5kIHRocmVlIGV4dHJhIHRoaW5ncyB0aGF0Cj4gbXVzdCBiZSBleHRyYWN0ZWQgZnJvbSB0 aGUgcmVxdWVzdCBhbmQgdGhlbiBpdCBjaGVja3MgdGhlbSBhZ2FpbnN0IHdoYXQgaXQgZmluZHMK PiBpbiB0aGUgcmVxdWVzdC4gUmVtb3ZpbmcgYWxsIHRoZSBkZXJpdmFibGUgZGF0YSBtYWtlcyB0 aGUgY29kZSBtdWNoIHNpbXBsZXIgYWxsCj4gcm91bmQuCj4KPiBUaGlzIHBhdGNoIHVwZGF0ZXMg dGhvc2UgZnVuY3Rpb25zIHRvIGp1c3QgdGFrZSB0aGUgcmVxdWVzdCBzdHJ1Y3R1cmUuCj4KPiBG b3I6IFZJWi01MTE1Cj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJp c29uQEludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j IHwgICA2NiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgMSBmaWxl IGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKPiBpbmRleCA4MjE5MGFkLi5hZTAwMDU0IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKPiBAQCAtNDk0LDI1ICs0OTQsMjAgQEAgdm9pZCBpbnRlbF9scmNfaXJx X2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAkJICAgKCh1MzIpcmlu Zy0+bmV4dF9jb250ZXh0X3N0YXR1c19idWZmZXIgJiAweDA3KSA8PCA4KTsKPiAgIH0KPgo+IC1z dGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCj4gLQkJCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqdG8sCj4gLQkJCQkgICB1MzIg dGFpbCwKPiAtCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAr c3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9xdWV1ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0g cmVxdWVzdC0+cmluZzsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmN1cnNvcjsK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9w cml2YXRlOwo+ICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gICAJaW50IG51bV9lbGVtZW50cyA9 IDA7Cj4KPiAtCWlmICh0byAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gLQkJaW50ZWxfbHJf Y29udGV4dF9waW4ocmluZywgdG8pOwo+IC0KPiAtCVdBUk5fT04oIXJlcXVlc3QpOwo+IC0JV0FS Tl9PTih0byAhPSByZXF1ZXN0LT5jdHgpOwo+ICsJaWYgKHJlcXVlc3QtPmN0eCAhPSByaW5nLT5k ZWZhdWx0X2NvbnRleHQpCj4gKwkJaW50ZWxfbHJfY29udGV4dF9waW4ocmluZywgcmVxdWVzdC0+ Y3R4KTsKPgo+ICAgCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwo+Cj4gLQly ZXF1ZXN0LT50YWlsID0gdGFpbDsKPiArCXJlcXVlc3QtPnRhaWwgPSByZXF1ZXN0LT5yaW5nYnVm LT50YWlsOwo+Cj4gICAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwo+Cj4gQEAgLTUy OSw3ICs1MjQsNyBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCwKPiAgIAkJCQkJICAgZXhlY2xpc3RfbGluayk7Cj4KPiAtCQlpZiAodG8gPT0gdGFpbF9y ZXEtPmN0eCkgewo+ICsJCWlmIChyZXF1ZXN0LT5jdHggPT0gdGFpbF9yZXEtPmN0eCkgewo+ICAg CQkJV0FSTih0YWlsX3JlcS0+ZWxzcF9zdWJtaXR0ZWQgIT0gMCwKPiAgIAkJCQkiTW9yZSB0aGFu IDIgYWxyZWFkeS1zdWJtaXR0ZWQgcmVxcyBxdWV1ZWRcbiIpOwo+ICAgCQkJbGlzdF9kZWwoJnRh aWxfcmVxLT5leGVjbGlzdF9saW5rKTsKPiBAQCAtNjEwLDEyICs2MDUsMTIgQEAgaW50IGludGVs X2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgo+IC1zdGF0aWMgaW50IGxvZ2lj YWxfcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwK PiAtCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICtzdGF0aWMgaW50IGxv Z2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwKPiAgIAkJCQkgICAgICAgaW50IGJ5dGVzKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcXVlc3Q7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcS0+ cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRhcmdldDsKCk15IG9ubHkgZ3JpcGUgaGVy ZSBpcyB0aGF0IGhhZCB5b3Ugbm90IHJlbmFtZWQgdGhlIHJlcXVlc3QgdmFyaWFibGUgCnRhcmdl dCB5b3Ugd291bGRuJ3QgaGF2ZSBoYWQgdG8gY2hhbmdlIGFueXRoaW5nIGluIHRoaXMgZnVuY3Rp b24gYmVsb3cgCnRoaXMgcG9pbnQuIEhvd2V2ZXIsIEkgZG8gYWxzbyBhZ3JlZSB0aGF0IGhhdmlu ZyBvbmUgdmFyaWFibGUgY2FsbGVkIHJlcSAKYW5kIGFub3RoZXIgb25lIGNhbGxlZCByZXF1ZXN0 IGluIHRoZSBzYW1lIGZ1bmN0aW9uIGlzIGxlc3MgdGhhbiBvcHRpbWFsLgoKV2l0aCB0aGF0IG5v dGVkLi4uCgpSZXZpZXdlZC1ieTogVG9tYXMgRWxmIDx0b21hcy5lbGZAaW50ZWwuY29tPgoKVGhh bmtzLApUb21hcwoKPiAgIAlpbnQgcmV0LCBuZXdfc3BhY2U7Cj4KPiAgIAkvKiBUaGUgd2hvbGUg cG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwo+IEBAIC02MjQsMzAg KzYxOSwzMCBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAgIAlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5n YnVmKSA+PSBieXRlcykKPiAgIAkJcmV0dXJuIDA7Cj4KPiAtCWxpc3RfZm9yX2VhY2hfZW50cnko cmVxdWVzdCwgJnJpbmctPnJlcXVlc3RfbGlzdCwgbGlzdCkgewo+ICsJbGlzdF9mb3JfZWFjaF9l bnRyeSh0YXJnZXQsICZyaW5nLT5yZXF1ZXN0X2xpc3QsIGxpc3QpIHsKPiAgIAkJLyoKPiAgIAkJ ICogVGhlIHJlcXVlc3QgcXVldWUgaXMgcGVyLWVuZ2luZSwgc28gY2FuIGNvbnRhaW4gcmVxdWVz dHMKPiAgIAkJICogZnJvbSBtdWx0aXBsZSByaW5nYnVmZmVycy4gSGVyZSwgd2UgbXVzdCBpZ25v cmUgYW55IHRoYXQKPiAgIAkJICogYXJlbid0IGZyb20gdGhlIHJpbmdidWZmZXIgd2UncmUgY29u c2lkZXJpbmcuCj4gICAJCSAqLwo+IC0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXF1 ZXN0LT5jdHg7Cj4gKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IHRhcmdldC0+Y3R4Owo+ ICAgCQlpZiAoY3R4LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWYgIT0gcmluZ2J1ZikKPiAgIAkJ CWNvbnRpbnVlOwo+Cj4gICAJCS8qIFdvdWxkIGNvbXBsZXRpb24gb2YgdGhpcyByZXF1ZXN0IGZy ZWUgZW5vdWdoIHNwYWNlPyAqLwo+IC0JCW5ld19zcGFjZSA9IF9faW50ZWxfcmluZ19zcGFjZShy ZXF1ZXN0LT5wb3N0Zml4LCByaW5nYnVmLT50YWlsLAo+ICsJCW5ld19zcGFjZSA9IF9faW50ZWxf cmluZ19zcGFjZSh0YXJnZXQtPnBvc3RmaXgsIHJpbmdidWYtPnRhaWwsCj4gICAJCQkJICAgICAg IHJpbmdidWYtPnNpemUpOwo+ICAgCQlpZiAobmV3X3NwYWNlID49IGJ5dGVzKQo+ICAgCQkJYnJl YWs7Cj4gICAJfQo+Cj4gICAJLyogSXQgc2hvdWxkIGFsd2F5cyBiZSBwb3NzaWJsZSB0byBmaW5k IGEgc3VpdGFibGUgcmVxdWVzdCEgKi8KPiAtCWlmICgmcmVxdWVzdC0+bGlzdCA9PSAmcmluZy0+ cmVxdWVzdF9saXN0KSB7Cj4gKwlpZiAoJnRhcmdldC0+bGlzdCA9PSAmcmluZy0+cmVxdWVzdF9s aXN0KSB7Cj4gICAJCVdBUk5fT04odHJ1ZSk7Cj4gICAJCXJldHVybiAtRU5PU1BDOwo+ICAgCX0K Pgo+IC0JcmV0ID0gaTkxNV93YWl0X3JlcXVlc3QocmVxdWVzdCk7Cj4gKwlyZXQgPSBpOTE1X3dh aXRfcmVxdWVzdCh0YXJnZXQpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBA QCAtNjYwLDcgKzY1NSw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNl KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+Cj4gICAvKgo+ICAgICogaW50ZWxf bG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdCgpIC0gYWR2YW5jZSB0aGUgdGFpbCBhbmQg c3VibWl0IHRoZSB3b3JrbG9hZAo+IC0gKiBAcmluZ2J1ZjogTG9naWNhbCBSaW5nYnVmZmVyIHRv IGFkdmFuY2UuCj4gKyAqIEByZXF1ZXN0OiBSZXF1ZXN0IHRvIGFkdmFuY2UgdGhlIGxvZ2ljYWwg cmluZ2J1ZmZlciBvZi4KPiAgICAqCj4gICAgKiBUaGUgdGFpbCBpcyB1cGRhdGVkIGluIG91ciBs b2dpY2FsIHJpbmdidWZmZXIgc3RydWN0LCBub3QgaW4gdGhlIGFjdHVhbCBjb250ZXh0LiBXaGF0 Cj4gICAgKiByZWFsbHkgaGFwcGVucyBkdXJpbmcgc3VibWlzc2lvbiBpcyB0aGF0IHRoZSBjb250 ZXh0IGFuZCBjdXJyZW50IHRhaWwgd2lsbCBiZSBwbGFjZWQKPiBAQCAtNjY4LDIzICs2NjMsMjEg QEAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWYsCj4gICAgKiBwb2ludCwgdGhlIHRhaWwgKmluc2lkZSogdGhlIGNv bnRleHQgaXMgdXBkYXRlZCBhbmQgdGhlIEVMU1Agd3JpdHRlbiB0by4KPiAgICAqLwo+ICAgc3Rh dGljIHZvaWQKPiAtaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAtCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgsCj4gLQkJCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QpCj4gK2ludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyA9IHJpbmdidWYtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n ID0gcmVxdWVzdC0+cmluZzsKPgo+IC0JaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1 Zik7Cj4gKwlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyZXF1ZXN0LT5yaW5nYnVmKTsKPgo+ ICAgCWlmIChpbnRlbF9yaW5nX3N0b3BwZWQocmluZykpCj4gICAJCXJldHVybjsKPgo+IC0JZXhl Y2xpc3RzX2NvbnRleHRfcXVldWUocmluZywgY3R4LCByaW5nYnVmLT50YWlsLCByZXF1ZXN0KTsK PiArCWV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHJlcXVlc3QpOwo+ICAgfQo+Cj4gLXN0YXRpYyBp bnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n YnVmLAo+IC0JCQkJICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gK3N0YXRpYyBpbnQg bG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQo+ICAgewo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdi dWY7Cj4gICAJdWludDMyX3QgX19pb21lbSAqdmlydDsKPiAgIAlpbnQgcmVtID0gcmluZ2J1Zi0+ c2l6ZSAtIHJpbmdidWYtPnRhaWw7Cj4KPiBAQCAtNjkyLDcgKzY4NSw3IEBAIHN0YXRpYyBpbnQg bG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm LAo+ICAgCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPgo+ICAgCWlmIChyaW5n YnVmLT5zcGFjZSA8IHJlbSkgewo+IC0JCWludCByZXQgPSBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jf c3BhY2UocmluZ2J1ZiwgY3R4LCByZW0pOwo+ICsJCWludCByZXQgPSBsb2dpY2FsX3Jpbmdfd2Fp dF9mb3Jfc3BhY2UocmVxLCByZW0pOwo+Cj4gICAJCWlmIChyZXQpCj4gICAJCQlyZXR1cm4gcmV0 Owo+IEBAIC03MDksMjIgKzcwMiwyMiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193cmFwX2J1 ZmZlcihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAgIAlyZXR1cm4gMDsKPiAg IH0KPgo+IC1zdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJlKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmLAo+IC0JCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwgaW50IGJ5 dGVzKQo+ICtzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0ZXMpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiA9IHJlcS0+cmluZ2J1ZjsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJaWYgKCFy aW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpCj4gICAJCWJ5dGVzICs9IHJpbmdidWYtPnJlc2VydmVk X3NpemU7Cj4KPiAgIAlpZiAodW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIGJ5dGVzID4gcmluZ2J1 Zi0+ZWZmZWN0aXZlX3NpemUpKSB7Cj4gLQkJcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVy KHJpbmdidWYsIGN0eCk7Cj4gKwkJcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHJlcSk7 Cj4gICAJCWlmICh1bmxpa2VseShyZXQpKQo+ICAgCQkJcmV0dXJuIHJldDsKPiAgIAl9Cj4KPiAg IAlpZiAodW5saWtlbHkocmluZ2J1Zi0+c3BhY2UgPCBieXRlcykpIHsKPiAtCQlyZXQgPSBsb2dp Y2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2UocmluZ2J1ZiwgY3R4LCBieXRlcyk7Cj4gKwkJcmV0ID0g bG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHJlcSwgYnl0ZXMpOwo+ICAgCQlpZiAodW5saWtl bHkocmV0KSkKPiAgIAkJCXJldHVybiByZXQ7Cj4gICAJfQo+IEBAIC03NTksOCArNzUyLDcgQEAg c3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsCj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IC0JcmV0ID0g bG9naWNhbF9yaW5nX3ByZXBhcmUocmVxLT5yaW5nYnVmLCByZXEtPmN0eCwKPiAtCQkJCSAgIG51 bV9kd29yZHMgKiBzaXplb2YodWludDMyX3QpKTsKPiArCXJldCA9IGxvZ2ljYWxfcmluZ19wcmVw YXJlKHJlcSwgbnVtX2R3b3JkcyAqIHNpemVvZih1aW50MzJfdCkpOwo+ICAgCWlmIChyZXQpCj4g ICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMTI2Niw3ICsxMjU4LDcgQEAgc3RhdGljIGludCBnZW44 X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vx bm8ocmVxdWVzdCkpOwo+ICAgCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX1VT RVJfSU5URVJSVVBUKTsKPiAgIAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9O T09QKTsKPiAtCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQocmluZ2J1Ziwg cmVxdWVzdC0+Y3R4LCByZXF1ZXN0KTsKPiArCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2Fu ZF9zdWJtaXQocmVxdWVzdCk7Cj4KPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK