From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 7/9] drm/i915: Interrupt driven fences Date: Tue, 21 Jul 2015 09:19:25 +0200 Message-ID: <20150721071925.GQ16722@phenom.ffwll.local> References: <1437143483-6234-1-git-send-email-John.C.Harrison@Intel.com> <1437143483-6234-8-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 mail-wg0-f44.google.com (mail-wg0-f44.google.com [74.125.82.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id C272D6E70B for ; Tue, 21 Jul 2015 00:17:03 -0700 (PDT) Received: by wgkl9 with SMTP id l9so147985527wgk.1 for ; Tue, 21 Jul 2015 00:17:02 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1437143483-6234-8-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 Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdWwgMTcsIDIwMTUgYXQgMDM6MzE6MjFQTSArMDEwMCwgSm9obi5DLkhhcnJpc29u QEludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25A SW50ZWwuY29tPgo+IAo+IFRoZSBpbnRlbmRlZCB1c2FnZSBtb2RlbCBmb3Igc3RydWN0IGZlbmNl IGlzIHRoYXQgdGhlIHNpZ25hbGxlZCBzdGF0dXMgc2hvdWxkIGJlCj4gc2V0IG9uIGRlbWFuZCBy YXRoZXIgdGhhbiBwb2xsZWQuIFRoYXQgaXMsIHRoZXJlIHNob3VsZCBub3QgYmUgYSBuZWVkIGZv ciBhCj4gJ3NpZ25hbGVkJyBmdW5jdGlvbiB0byBiZSBjYWxsZWQgZXZlcnl0aW1lIHRoZSBzdGF0 dXMgaXMgcXVlcmllZC4gSW5zdGVhZCwKPiAnc29tZXRoaW5nJyBzaG91bGQgYmUgZG9uZSB0byBl bmFibGUgYSBzaWduYWwgY2FsbGJhY2sgZnJvbSB0aGUgaGFyZHdhcmUgd2hpY2gKPiB3aWxsIHVw ZGF0ZSB0aGUgc3RhdGUgZGlyZWN0bHkuIEluIHRoZSBjYXNlIG9mIHJlcXVlc3RzLCB0aGlzIGlz IHRoZSBzZXFubwo+IHVwZGF0ZSBpbnRlcnJ1cHQuIFRoZSBpZGVhIGlzIHRoYXQgdGhpcyBjYWxs YmFjayB3aWxsIG9ubHkgYmUgZW5hYmxlZCBvbiBkZW1hbmQKPiB3aGVuIHNvbWV0aGluZyBhY3R1 YWxseSB0cmllcyB0byB3YWl0IG9uIHRoZSBmZW5jZS4KPiAKPiBUaGlzIGNoYW5nZSByZW1vdmVz IHRoZSBwb2xsaW5nIHRlc3QgYW5kIHJlcGxhY2VzIGl0IHdpdGggdGhlIGNhbGxiYWNrIHNjaGVt ZS4KPiBFYWNoIGZlbmNlIGlzIGFkZGVkIHRvIGEgJ3BsZWFzZSBwb2tlIG1lJyBsaXN0IGF0IHRo ZSBzdGFydCBvZgo+IGk5MTVfYWRkX3JlcXVlc3QoKS4gVGhlIGludGVycnVwdCBoYW5kbGVyIHRo ZW4gc2NhbnMgdGhyb3VnaCB0aGUgJ3Bva2UgbWUnIGxpc3QKPiB3aGVuIGEgbmV3IHNlcW5vIHBv cHMgb3V0IGFuZCBzaWduYWxzIGFueSBtYXRjaGluZyBmZW5jZS9yZXF1ZXN0LiBUaGUgZmVuY2Ug aXMKPiB0aGVuIHJlbW92ZWQgZnJvbSB0aGUgbGlzdCBzbyB0aGUgZW50aXJlIHJlcXVlc3Qgc3Rh Y2sgZG9lcyBub3QgbmVlZCB0byBiZQo+IHNjYW5uZWQgZXZlcnkgdGltZS4gTm90ZSB0aGF0IHRo ZSBmZW5jZSBpcyBhZGRlZCB0byB0aGUgbGlzdCBiZWZvcmUgdGhlIGNvbW1hbmRzCj4gdG8gZ2Vu ZXJhdGUgdGhlIHNlcW5vIGludGVycnVwdCBhcmUgYWRkZWQgdG8gdGhlIHJpbmcuIFRodXMgdGhl IHNlcXVlbmNlIGlzCj4gZ3VhcmFudGVlZCB0byBiZSByYWNlIGZyZWUgaWYgdGhlIGludGVycnVw dCBpcyBhbHJlYWR5IGVuYWJsZWQuCj4gCj4gTm90ZSB0aGF0IHRoZSBpbnRlcnJ1cHQgaXMgb25s eSBlbmFibGVkIG9uIGRlbWFuZCAoaS5lLiB3aGVuIF9fd2FpdF9yZXF1ZXN0KCkgaXMKPiBjYWxs ZWQpLiBUaHVzIHRoZXJlIGlzIHN0aWxsIGEgcG90ZW50aWFsIHJhY2Ugd2hlbiBlbmFibGluZyB0 aGUgaW50ZXJydXB0IGFzIHRoZQo+IHJlcXVlc3QgbWF5IGFscmVhZHkgaGF2ZSBjb21wbGV0ZWQu IEhvd2V2ZXIsIHRoaXMgaXMgc2ltcGx5IHNvbHZlZCBieSBjYWxsaW5nCj4gdGhlIGludGVycnVw dCBwcm9jZXNzaW5nIGNvZGUgaW1tZWRpYXRlbHkgYWZ0ZXIgZW5hYmxpbmcgdGhlIGludGVycnVw dCBhbmQKPiB0aGVyZWJ5IGNoZWNraW5nIGZvciBhbHJlYWR5IGNvbXBsZXRlZCByZXF1ZXN0cy4K PiAKPiBMYXN0bHksIHRoZSByaW5nIGNsZWFuIHVwIGNvZGUgaGFzIHRoZSBwb3NzaWJpbGl0eSB0 byBjYW5jZWwgb3V0c3RhbmRpbmcKPiByZXF1ZXN0cyAoZS5nLiBiZWNhdXNlIFREUiBoYXMgcmVz ZXQgdGhlIHJpbmcpLiBUaGVzZSByZXF1ZXN0cyB3aWxsIG5ldmVyIGdldAo+IHNpZ25hbGxlZCBh bmQgc28gbXVzdCBiZSByZW1vdmVkIGZyb20gdGhlIHNpZ25hbCBsaXN0IG1hbnVhbGx5LiBUaGlz IGlzIGRvbmUgYnkKPiBzZXR0aW5nIGEgJ2NhbmNlbGxlZCcgZmxhZyBhbmQgdGhlbiBjYWxsaW5n IHRoZSByZWd1bGFyIG5vdGlmeS9yZXRpcmUgY29kZSBwYXRoCj4gcmF0aGVyIHRoYW4gYXR0ZW1w dGluZyB0byBkdXBsaWNhdGUgdGhlIGxpc3QgbWFuaXB1bGF0YXRpb24gYW5kIGNsZWFuIHVwIGNv ZGUgaW4KPiBtdWx0aXBsZSBwbGFjZXMuIFRoaXMgYWxzbyBhdm9pZCBhbnkgcmFjZSBjb25kaXRp b24gd2hlcmUgdGhlIGNhbmNlbGxhdGlvbgo+IHJlcXVlc3QgbWlnaHQgb2NjdXIgYWZ0ZXIvZHVy aW5nIHRoZSBjb21wbGV0aW9uIGludGVycnVwdCBhY3R1YWxseSBhcnJpdmluZy4KPiAKPiB2Mjog VXBkYXRlZCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgcmVxdWVzdCB1bnJlZmVyZW5jZSBubyBs b25nZXIgcmVxdWlyaW5nIHRoZQo+IG11dGV4IGxvY2suCj4gCj4gRm9yOiBWSVotNTE5MAo+IFNp Z25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgOCArKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCAxMzIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu YyAgICAgICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAg ICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwg ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAxICsK PiAgNiBmaWxlcyBjaGFuZ2VkLCAxMzYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA2MWMzZGIyLi5kN2YxYWE1IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIxNjMsNyArMjE2MywxMSBAQCB2b2lkIGk5MTVf Z2VtX3RyYWNrX2ZiKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4gIHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCB7Cj4gIAkvKiogVW5kZXJseWluZyBvYmplY3QgZm9yIGltcGxl bWVudGluZyB0aGUgc2lnbmFsL3dhaXQgc3R1ZmYuICovCj4gIAlzdHJ1Y3QgZmVuY2UgZmVuY2U7 Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25hbF9saXN0Owo+ICsJc3RydWN0IGxpc3RfaGVhZCB1 bnNpZ25hbF9saXN0Owo+ICAJc3RydWN0IGxpc3RfaGVhZCBkZWxheV9mcmVlX2xpc3Q7CgpGcm9t IGEgdmVyeSBxdWljayBsb29rIGEgcmVxdWVzdCBjYW4gb25seSBldmVyIGJlIG9uIG9uZSBvZiB0 aGVzZSBsaXN0cy4KSXQgd291bGQgYmUgY2xlYXJlciB0byBqdXN0IHVzZSBvbmUgbGlzdCBhbmQg bGlzdF9tb3ZlIHRvIG1ha2UgdGhhdApyZWFzc2lnbmVtZW50IGFuZCBjaGFuZ2luZyBvZiBvd25l cnNoaXAgY2xlYXJlci4KCj4gKwlib29sIGNhbmNlbGxlZDsKPiArCWJvb2wgaXJxX2VuYWJsZWQ7 Cj4gIAo+ICAJLyoqIE9uIFdoaWNoIHJpbmcgdGhpcyByZXF1ZXN0IHdhcyBnZW5lcmF0ZWQgKi8K PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1Owo+IEBAIC0yMjQxLDYgKzIyNDUsMTAg QEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPiAgCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCk7Cj4gIHZv aWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpOwo+ICAKPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSk7Cj4gK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJy dXB0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiArdm9pZCBpOTE1X2dlbV9y ZXF1ZXN0X25vdGlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiArCj4gIGludCBp OTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkg ICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgCQkJICAgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDQ4Mjgz NWEuLjdjNTg5YTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTIyMiw2ICsx MjIyLDExIEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAo+ICAJaWYgKGxpc3RfZW1wdHkoJnJlcS0+bGlzdCkpCj4gIAkJcmV0dXJuIDA7 Cj4gIAo+ICsJLyoKPiArCSAqIEVuYWJsZSBpbnRlcnJ1cHQgY29tcGxldGlvbiBvZiB0aGUgcmVx dWVzdC4KPiArCSAqLwo+ICsJaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHJlcSk7 Cj4gKwo+ICAJaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSkpCj4gIAkJcmV0dXJu IDA7Cj4gIAo+IEBAIC0xMzgyLDYgKzEzODcsMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVx dWVzdF9yZXRpcmUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAJbGlz dF9kZWxfaW5pdCgmcmVxdWVzdC0+bGlzdCk7Cj4gIAlpOTE1X2dlbV9yZXF1ZXN0X3JlbW92ZV9m cm9tX2NsaWVudChyZXF1ZXN0KTsKPiAgCj4gKwkvKiBJbiBjYXNlIHRoZSByZXF1ZXN0IGlzIHN0 aWxsIGluIHRoZSBzaWduYWwgcGVuZGluZyBsaXN0ICovCj4gKwlpZiAoIWxpc3RfZW1wdHkoJnJl cXVlc3QtPnNpZ25hbF9saXN0KSkKPiArCQlyZXF1ZXN0LT5jYW5jZWxsZWQgPSB0cnVlOwo+ICsK PiAgCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxdWVzdCk7Cj4gIH0KPiAgCj4gQEAg LTI1MzQsNiArMjU0MywxMiBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gIAkgKi8KPiAgCXJlcXVlc3QtPnBvc3RmaXggPSBp bnRlbF9yaW5nX2dldF90YWlsKHJpbmdidWYpOwo+ICAKPiArCS8qCj4gKwkgKiBBZGQgdGhlIGZl bmNlIHRvIHRoZSBwZW5kaW5nIGxpc3QgYmVmb3JlIGVtaXR0aW5nIHRoZSBjb21tYW5kcyB0bwo+ ICsJICogZ2VuZXJhdGUgYSBzZXFubyBub3RpZmljYXRpb24gaW50ZXJydXB0Lgo+ICsJICovCj4g KwlpOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChyZXF1ZXN0KTsKPiArCj4gIAlpZiAoaTkxNS5lbmFi bGVfZXhlY2xpc3RzKQo+ICAJCXJldCA9IHJpbmctPmVtaXRfcmVxdWVzdChyZXF1ZXN0KTsKPiAg CWVsc2Ugewo+IEBAIC0yNjUzLDYgKzI2NjgsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1 ZXN0X2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIAkJaTkxNV9nZW1f Y29udGV4dF91bnJlZmVyZW5jZShjdHgpOwo+ICAJfQo+ICAKPiArCWlmIChyZXEtPmlycV9lbmFi bGVkKQo+ICsJCXJlcS0+cmluZy0+aXJxX3B1dChyZXEtPnJpbmcpOwo+ICsKPiAgCWttZW1fY2Fj aGVfZnJlZShyZXEtPmk5MTUtPnJlcXVlc3RzLCByZXEpOwo+ICB9Cj4gIAo+IEBAIC0yNjY4LDI0 ICsyNjg2LDEwNSBAQCBzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGlt ZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiAgCXJldHVybiByZXEtPnJpbmct Pm5hbWU7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIGk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX3Np Z25hbGluZyhzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiArLyoKPiArICogVGhlIHJlcXVlc3Qg aGFzIGJlZW4gc3VibWl0dGVkIHRvIHRoZSBoYXJkd2FyZSBzbyBhZGQgdGhlIGZlbmNlIHRvIHRo ZQo+ICsgKiBsaXN0IG9mIHNpZ25hbGFibGUgZmVuY2VzLgo+ICsgKgo+ICsgKiBOQjogVGhpcyBk b2VzIG5vdCBlbmFibGUgaW50ZXJydXB0cyB5ZXQuIFRoYXQgb25seSBvY2N1cnMgb24gZGVtYW5k IHdoZW4KPiArICogdGhlIHJlcXVlc3QgaXMgYWN0dWFsbHkgd2FpdGVkIG9uLiBIb3dldmVyLCBh ZGRpbmcgaXQgdG8gdGhlIGxpc3QgZWFybHkKPiArICogZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5v IHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBpbnRlcnJ1cHQgY291bGQgcG9wCj4gKyAqIG91dCBw cmVtYXR1cmVseSBhbmQgdGh1cyBiZSBjb21wbGV0ZWx5IGxvc3QuIFRoZSByYWNlIGlzIG1lcmVs eSB0aGF0IHRoZQo+ICsgKiBpbnRlcnJ1cHQgbXVzdCBiZSBtYW51YWxseSBjaGVja2VkIGZvciBh ZnRlciBiZWluZyBlbmFibGVkLgo+ICsgKi8KPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3N1Ym1p dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgewo+IC0JLyogSW50ZXJydXB0 IGRyaXZlbiBmZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQuKi8KPiAtCVdBUk4odHJ1ZSwg IlRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQhIik7Cj4gLQlyZXR1cm4gdHJ1ZTsKPiArCWZlbmNl X2VuYWJsZV9zd19zaWduYWxpbmcoJnJlcS0+ZmVuY2UpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9v bCBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkK PiArLyoKPiArICogVGhlIHJlcXVlc3QgaXMgYmVpbmcgYWN0aXZlbHkgd2FpdGVkIG9uLCBzbyBl bmFibGUgaW50ZXJydXB0IGJhc2VkCj4gKyAqIGNvbXBsZXRpb24gc2lnbmFsbGluZy4KPiArICov Cj4gK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQo+ICt7Cj4gKwlpZiAocmVxLT5pcnFfZW5hYmxlZCkKPiArCQly ZXR1cm47Cj4gKwo+ICsJV0FSTl9PTighcmVxLT5yaW5nLT5pcnFfZ2V0KHJlcS0+cmluZykpOwo+ ICsJcmVxLT5pcnFfZW5hYmxlZCA9IHRydWU7Cj4gKwo+ICsJLyoKPiArCSAqIEJlY2F1c2UgdGhl IGludGVycnVwdCBpcyBvbmx5IGVuYWJsZWQgb24gZGVtYW5kLCB0aGVyZSBpcyBhIHJhY2UKPiAr CSAqIHdoZXJlIHRoZSBpbnRlcnJ1cHQgY2FuIGZpcmUgYmVmb3JlIGFueW9uZSBpcyBsb29raW5n IGZvciBpdC4gU28KPiArCSAqIGRvIGFuIGV4cGxpY2l0IGNoZWNrIGZvciBtaXNzZWQgaW50ZXJy dXB0cy4KPiArCSAqLwo+ICsJaTkxNV9nZW1fcmVxdWVzdF9ub3RpZnkocmVxLT5yaW5nKTsKPiAr fQo+ICsKPiArc3RhdGljIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfc2lnbmFsaW5nKHN0 cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCj4gIAkJCQkJCSB0eXBlb2YoKnJlcSks IGZlbmNlKTsKPiArCj4gKwlpOTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShyZXEpOwo+ICsJV0FS Tl9PTighbGlzdF9lbXB0eSgmcmVxLT5zaWduYWxfbGlzdCkpOwo+ICsJbGlzdF9hZGRfdGFpbCgm cmVxLT5zaWduYWxfbGlzdCwgJnJlcS0+cmluZy0+ZmVuY2Vfc2lnbmFsX2xpc3QpOwo+ICsKPiAr CS8qCj4gKwkgKiBOb3RlIHRoYXQgc2lnbmFsbGluZyBpcyBhbHdheXMgZW5hYmxlZCBmb3IgZXZl cnkgcmVxdWVzdCBiZWZvcmUKPiArCSAqIHRoYXQgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgdG8gdGhl IGhhcmR3YXJlLiBUaGVyZWZvcmUgdGhlcmUgaXMKPiArCSAqIG5vIHJhY2UgY29uZGl0aW9uIHdo ZXJlYnkgdGhlIHNpZ25hbCBjb3VsZCBwb3Agb3V0IGJlZm9yZSB0aGUKPiArCSAqIHJlcXVlc3Qg aGFzIGJlZW4gYWRkZWQgdG8gdGhlIGxpc3QuIEhlbmNlIG5vIG5lZWQgdG8gY2hlY2sKPiArCSAq IGZvciBjb21wbGV0aW9uLCB1bmRvIHRoZSBsaXN0IGFkZCBhbmQgcmV0dXJuIGZhbHNlLgo+ICsJ ICoKPiArCSAqIE5COiBJbnRlcnJ1cHRzIGFyZSBvbmx5IGVuYWJsZWQgb24gZGVtYW5kLiBUaHVz IHRoZXJlIGlzIHN0aWxsIGEKPiArCSAqIHJhY2Ugd2hlcmUgdGhlIHJlcXVlc3QgY291bGQgY29t cGxldGUgYmVmb3JlIHRoZSBpbnRlcnJ1cHQgaGFzCj4gKwkgKiBiZWVuIGVuYWJsZWQuIFRodXMg Y2FyZSBtdXN0IGJlIHRha2VuIGF0IHRoYXQgcG9pbnQuCj4gKwkgKi8KPiArCj4gKwlyZXR1cm4g dHJ1ZTsKCmZlbmNlLT5lbmFibGVfc2lnbmFsbGluZyBpcyB0aGUgcGFydCB0aGF0IHNob3VsZCBl bmFibGUgdGltZWx5IHNpZ25hbGxpbmcsCmkuZS4gaW50ZXJydXB0cy4gQWRkaW5nIHRoZSBmZW5j ZSB0byBjb21wbGV0aW9uIGxpc3RzIGZvciBldmVudHVhbApzaWduYWxsaW5nIHNob3VsZCBiZSBk b25lIHVuY29uZGl0aW9uYWxseS4KCk5vdGUgdGhhdCBzdHJ1Y3QgZmVuY2Ugc3VwcG9ydHMgaXJx IGNvbnRleHQgY2FsbGJhY2tzIGFuZCBub3QganVzdAp3YWl0aW5nLCBzbyBqdXN0IGVuYWJsaW5n IGludGVycnVwdHMgaW4gdGhlIHdhaXQgY2FsbGJhY2sgaXMgbm90IGVub3VnaC4KCmZlbmNlLT53 YWl0IGNhbGxiYWNrIGlzIG9wdGlvbmFsIGFuZCByZWFsbHkganVzdCBmb3Igc29tZSBhZGRpdGlv bmFsCnRyaWNrcyB3aGVuIHdhaXRpbmcgd2l0aCBhIHByb2Nlc3MgY29udGV4dCwgbGlrZSBidXN5 LXNwaW5uaW5nICh3aGljaCB3ZQpkbykuIFRoZSBjdXJyZW50IGk5MTVfd2FpdF9yZXF1ZXN0IHNo b3VsZCBiZSBtb3ZlZCBpbnRvIHRoYXQgY2FsbGJhY2suCgpBbHNvIEknZCBsaWtlIHRvIG1vdmUg aTkxNSBpbnRlcm5hbGx5IG92ZXIgdG8gY2FsbGluZyBmZW5jZSBmdW5jdGlvbnMgc28KdGhhdCB3 ZSBjYW4gdGVzdCB0aGlzIGNvZGUgd2l0aG91dCB0aGUgYW5kcm9pZCBzeW5jcHRzLgotRGFuaWVs Cgo+ICt9Cj4gKwo+ICt2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LCAqcmVxX25leHQ7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAJdTMyIHNlcW5vOwo+ICsJ TElTVF9IRUFEKGZyZWVfbGlzdCk7Cj4gIAo+IC0JQlVHX09OKHJlcSA9PSBOVUxMKTsKPiArCWlm IChsaXN0X2VtcHR5KCZyaW5nLT5mZW5jZV9zaWduYWxfbGlzdCkpCj4gKwkJcmV0dXJuOwo+ICsK PiArCXNlcW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcsIGZhbHNlKTsKPiArCj4gKwlzcGluX2xv Y2tfaXJxc2F2ZSgmcmluZy0+ZmVuY2VfbG9jaywgZmxhZ3MpOwo+ICsJbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKHJlcSwgcmVxX25leHQsICZyaW5nLT5mZW5jZV9zaWduYWxfbGlzdCwgc2lnbmFs X2xpc3QpIHsKPiArCQlpZiAoIXJlcS0+Y2FuY2VsbGVkKSB7Cj4gKwkJCWlmICghaTkxNV9zZXFu b19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pKQo+ICsJCQkJY29udGludWU7Cj4gIAo+IC0Jc2Vx bm8gPSByZXEtPnJpbmctPmdldF9zZXFubyhyZXEtPnJpbmcsIGZhbHNlLypsYXp5X2NvaGVyZW5j eSovKTsKPiArCQkJZmVuY2Vfc2lnbmFsX2xvY2tlZCgmcmVxLT5mZW5jZSk7Cj4gKwkJfQo+ICsK PiArCQlsaXN0X2RlbF9pbml0KCZyZXEtPnNpZ25hbF9saXN0KTsKPiArCQlpZiAocmVxLT5pcnFf ZW5hYmxlZCkgewo+ICsJCQlyZXEtPnJpbmctPmlycV9wdXQocmVxLT5yaW5nKTsKPiArCQkJcmVx LT5pcnFfZW5hYmxlZCA9IGZhbHNlOwo+ICsJCX0KPiAgCj4gLQlyZXR1cm4gaTkxNV9zZXFub19w YXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOwo+ICsJCS8qIENhbid0IHVucmVmZXJlbmNlIGhlcmUg YmVjYXVzZSB0aGF0IG1pZ2h0IGdyYWIgZmVuY2VfbG9jayAqLwo+ICsJCWxpc3RfYWRkX3RhaWwo JnJlcS0+dW5zaWduYWxfbGlzdCwgJmZyZWVfbGlzdCk7Cj4gKwl9Cj4gKwlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZyaW5nLT5mZW5jZV9sb2NrLCBmbGFncyk7Cj4gKwo+ICsJLyogSXQgc2hvdWxk IG5vdyBiZSBzYWZlIHRvIGFjdHVhbGx5IGZyZWUgdGhlIHJlcXVlc3RzICovCj4gKwl3aGlsZSAo IWxpc3RfZW1wdHkoJmZyZWVfbGlzdCkpIHsKPiArCQlyZXEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZm cmVlX2xpc3QsCj4gKwkJCQkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0LCB1bnNp Z25hbF9saXN0KTsKPiArCQlsaXN0X2RlbCgmcmVxLT51bnNpZ25hbF9saXN0KTsKPiArCj4gKwkJ aTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ICsJfQo+ICB9Cj4gIAo+ICBzdGF0 aWMgdm9pZCBpOTE1X2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNl LCBjaGFyICpzdHIsIGludCBzaXplKQo+IEBAIC0yNzExLDcgKzI4MTAsNiBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMgPSB7Cj4gIAkuZ2V0X2Ry aXZlcl9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJpdmVyX25hbWUsCj4gIAkuZ2V0X3Rp bWVsaW5lX25hbWUJPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF90aW1lbGluZV9uYW1lLAo+ICAJLmVu YWJsZV9zaWduYWxpbmcJPSBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcsCj4gLQku c2lnbmFsZWQJCT0gaTkxNV9nZW1fcmVxdWVzdF9pc19jb21wbGV0ZWQsCj4gIAkud2FpdAkJCT0g ZmVuY2VfZGVmYXVsdF93YWl0LAo+ICAJLnJlbGVhc2UJCT0gaTkxNV9nZW1fcmVxdWVzdF9yZWxl YXNlLAo+ICAJLmZlbmNlX3ZhbHVlX3N0cgk9IGk5MTVfZmVuY2VfdmFsdWVfc3RyLAo+IEBAIC0y NzkxLDYgKzI4ODksNyBAQCBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAo+ICAJCWdvdG8gZXJyOwo+ICAJfQo+ICAKPiArCUlOSVRfTElTVF9I RUFEKCZyZXEtPnNpZ25hbF9saXN0KTsKPiAgCWZlbmNlX2luaXQoJnJlcS0+ZmVuY2UsICZpOTE1 X2dlbV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLAo+ICAJCSAgIGN0eC0+ZW5naW5l W3JpbmctPmlkXS5mZW5jZV90aW1lbGluZS5mZW5jZV9jb250ZXh0LAo+ICAJCSAgIGk5MTVfZmVu Y2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oJmN0eC0+ZW5naW5lW3JpbmctPmlkXS5mZW5jZV90 aW1lbGluZSkpOwo+IEBAIC0yOTEzLDYgKzMwMTIsMTMgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1f cmVzZXRfcmluZ19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg Cj4gIAkJaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7Cj4gIAl9Cj4gKwo+ICsJLyoK PiArCSAqIE1ha2Ugc3VyZSBhbnkgcmVxdWVzdHMgdGhhdCB3ZXJlIG9uIHRoZSBzaWduYWwgcGVu ZGluZyBsaXN0IGdldAo+ICsJICogY2xlYW5lZCB1cC4KPiArCSAqLwo+ICsJaTkxNV9nZW1fcmVx dWVzdF9ub3RpZnkocmluZyk7Cj4gKwlpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmluZyhyaW5n KTsKPiAgfQo+ICAKPiAgdm9pZCBpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+IEBAIC0yOTY4LDYgKzMwNzQsMTMgQEAgaTkxNV9nZW1fcmV0aXJlX3JlcXVl c3RzX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgewo+ICAJV0FSTl9PTihp OTE1X3ZlcmlmeV9saXN0cyhyaW5nLT5kZXYpKTsKPiAgCj4gKwkvKgo+ICsJICogSWYgbm8tb25l IGhhcyB3YWl0ZWQgb24gYSByZXF1ZXN0IHJlY2VudGx5IHRoZW4gaW50ZXJydXB0cyB3aWxsCj4g KwkgKiBub3QgaGF2ZSBiZWVuIGVuYWJsZWQgYW5kIHRodXMgbm8gcmVxdWVzdHMgd2lsbCBldmVy IGJlIG1hcmtlZCBhcwo+ICsJICogY29tcGxldGVkLiBTbyBkbyBhbiBpbnRlcnJ1cHQgY2hlY2sg bm93Lgo+ICsJICovCj4gKwlpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShyaW5nKTsKPiArCj4gIAkv KiBSZXRpcmUgcmVxdWVzdHMgZmlyc3QgYXMgd2UgdXNlIGl0IGFib3ZlIGZvciB0aGUgZWFybHkg cmV0dXJuLgo+ICAJICogSWYgd2UgcmV0aXJlIHJlcXVlc3RzIGxhc3QsIHdlIG1heSB1c2UgYSBs YXRlciBzZXFubyBhbmQgc28gY2xlYXIKPiAgCSAqIHRoZSByZXF1ZXN0cyBsaXN0cyB3aXRob3V0 IGNsZWFyaW5nIHRoZSBhY3RpdmUgbGlzdCwgbGVhZGluZyB0bwo+IEBAIC01MzQ1LDYgKzU0NTgs NyBAQCBpbml0X3JpbmdfbGlzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgewo+ ICAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmFjdGl2ZV9saXN0KTsKPiAgCUlOSVRfTElTVF9IRUFE KCZyaW5nLT5yZXF1ZXN0X2xpc3QpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmZlbmNlX3Np Z25hbF9saXN0KTsKPiAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5kZWxheWVkX2ZyZWVfbGlzdCk7 Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5kZXggZDg3ZjE3My4uZTQ0NjUw OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC04NTMsNiArODUzLDggQEAgc3Rh dGljIHZvaWQgbm90aWZ5X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgCj4g IAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShyaW5nKTsKPiAgCj4gKwlpOTE1X2dlbV9y ZXF1ZXN0X25vdGlmeShyaW5nKTsKPiArCj4gIAl3YWtlX3VwX2FsbCgmcmluZy0+aXJxX3F1ZXVl KTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IDllZTgwZjUuLjE4 ZGJkNWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0xODA4LDYgKzE4MDgs NyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbgo+ICAJcmluZy0+ZGV2ID0gZGV2Owo+ICAJSU5J VF9MSVNUX0hFQUQoJnJpbmctPmFjdGl2ZV9saXN0KTsKPiAgCUlOSVRfTElTVF9IRUFEKCZyaW5n LT5yZXF1ZXN0X2xpc3QpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmZlbmNlX3NpZ25hbF9s aXN0KTsKPiAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5kZWxheWVkX2ZyZWVfbGlzdCk7Cj4gIAlz cGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7Cj4gIAlzcGluX2xvY2tfaW5pdCgmcmlu Zy0+ZGVsYXllZF9mcmVlX2xvY2spOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKPiBpbmRleCAxMTQ5NGEzLi44M2E1MjU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0yMDQwLDYgKzIwNDAsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCUlOSVRfTElT VF9IRUFEKCZyaW5nLT5hY3RpdmVfbGlzdCk7Cj4gIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+cmVx dWVzdF9saXN0KTsKPiAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5leGVjbGlzdF9xdWV1ZSk7Cj4g KwlJTklUX0xJU1RfSEVBRCgmcmluZy0+ZmVuY2Vfc2lnbmFsX2xpc3QpOwo+ICAJSU5JVF9MSVNU X0hFQUQoJnJpbmctPmRlbGF5ZWRfZnJlZV9saXN0KTsKPiAgCXNwaW5fbG9ja19pbml0KCZyaW5n LT5mZW5jZV9sb2NrKTsKPiAgCXNwaW5fbG9ja19pbml0KCZyaW5nLT5kZWxheWVkX2ZyZWVfbG9j ayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDY4MTcz YTMuLjJlNjhiNzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o Cj4gQEAgLTM1Miw2ICszNTIsNyBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7Cj4gIAl1MzIg KCpnZXRfY21kX2xlbmd0aF9tYXNrKSh1MzIgY21kX2hlYWRlcik7Cj4gIAo+ICAJc3BpbmxvY2tf dCBmZW5jZV9sb2NrOwo+ICsJc3RydWN0IGxpc3RfaGVhZCBmZW5jZV9zaWduYWxfbGlzdDsKPiAg fTsKPiAgCj4gIGJvb2wgaW50ZWxfcmluZ19pbml0aWFsaXplZChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKTsKPiAtLSAKPiAxLjkuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK