From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 3/9] drm/i915: Convert requests to use struct fence Date: Tue, 21 Jul 2015 09:05:29 +0200 Message-ID: <20150721070529.GP16722@phenom.ffwll.local> References: <1437143483-6234-1-git-send-email-John.C.Harrison@Intel.com> <1437143483-6234-4-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-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by gabe.freedesktop.org (Postfix) with ESMTPS id F2DC66E706 for ; Tue, 21 Jul 2015 00:02:50 -0700 (PDT) Received: by wicgb10 with SMTP id gb10so46111419wic.1 for ; Tue, 21 Jul 2015 00:02:49 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1437143483-6234-4-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 T24gRnJpLCBKdWwgMTcsIDIwMTUgYXQgMDM6MzE6MTdQTSArMDEwMCwgSm9obi5DLkhhcnJpc29u QEludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25A SW50ZWwuY29tPgo+IAo+IFRoZXJlIGlzIGEgY29uc3RydWN0IGluIHRoZSBsaW51eCBrZXJuZWwg Y2FsbGVkICdzdHJ1Y3QgZmVuY2UnIHRoYXQgaXMgaW50ZW5kZWQKPiB0byBrZWVwIHRyYWNrIG9m IHdvcmsgdGhhdCBpcyBleGVjdXRlZCBvbiBoYXJkd2FyZS4gSS5lLiBpdCBzb2x2ZXMgdGhlIGJh c2ljCj4gcHJvYmxlbSB0aGF0IHRoZSBkcml2ZXJzICdzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QnIGlzIHRyeWluZyB0byBhZGRyZXNzLiBUaGUKPiByZXF1ZXN0IHN0cnVjdHVyZSBkb2VzIHF1 aXRlIGEgbG90IG1vcmUgdGhhbiBzaW1wbHkgdHJhY2sgdGhlIGV4ZWN1dGlvbiBwcm9ncmVzcwo+ IHNvIGlzIHZlcnkgZGVmaW5pdGVseSBzdGlsbCByZXF1aXJlZC4gSG93ZXZlciwgdGhlIGJhc2lj IGNvbXBsZXRpb24gc3RhdHVzIHNpZGUKPiBjb3VsZCBiZSB1cGRhdGVkIHRvIHVzZSB0aGUgcmVh ZHkgbWFkZSBmZW5jZSBpbXBsZW1lbnRhdGlvbiBhbmQgZ2FpbiBhbGwgdGhlCj4gYWR2YW50YWdl cyB0aGF0IHByb3ZpZGVzLgo+IAo+IFRoaXMgcGF0Y2ggbWFrZXMgdGhlIGZpcnN0IHN0ZXAgb2Yg aW50ZWdyYXRpbmcgYSBzdHJ1Y3QgZmVuY2UgaW50byB0aGUgcmVxdWVzdC4KPiBJdCByZXBsYWNl cyB0aGUgZXhwbGljaXQgcmVmZXJlbmNlIGNvdW50IHdpdGggdGhhdCBvZiB0aGUgZmVuY2UuIEl0 IGFsc28KPiByZXBsYWNlcyB0aGUgJ2lzIGNvbXBsZXRlZCcgdGVzdCB3aXRoIHRoZSBmZW5jZSdz IGVxdWl2YWxlbnQuIEN1cnJlbnRseSwgdGhhdAo+IHNpbXBseSBjaGFpbnMgb24gdG8gdGhlIG9y aWdpbmFsIHJlcXVlc3QgaW1wbGVtZW50YXRpb24uIEEgZnV0dXJlIHBhdGNoIHdpbGwKPiBpbXBy b3ZlIHRoaXMuCj4gCj4gRm9yOiBWSVotNTE5MAo+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlz b24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICB8IDQ1ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgNTggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j ICAgICAgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j IHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgMyAr Kwo+ICA1IGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGNmNjc2MWMuLjc5ZDM0NmMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNTAsNiArNTAsNyBAQAo+ICAjaW5jbHVkZSA8 bGludXgvaW50ZWwtaW9tbXUuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KPiAgI2luY2x1 ZGUgPGxpbnV4L3BtX3Fvcy5oPgo+ICsjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KPiAgCj4gIC8q IEdlbmVyYWwgY3VzdG9taXphdGlvbjoKPiAgICovCj4gQEAgLTIxNTAsNyArMjE1MSwxNyBAQCB2 b2lkIGk5MTVfZ2VtX3RyYWNrX2ZiKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4g ICAqIGluaXRpYWwgcmVmZXJlbmNlIHRha2VuIHVzaW5nIGtyZWZfaW5pdAo+ICAgKi8KPiAgc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPiAtCXN0cnVjdCBrcmVmIHJlZjsKPiArCS8qKgo+ ICsJICogVW5kZXJseWluZyBvYmplY3QgZm9yIGltcGxlbWVudGluZyB0aGUgc2lnbmFsL3dhaXQg c3R1ZmYuCj4gKwkgKiBOQjogTmV2ZXIgY2FsbCBmZW5jZV9sYXRlcigpIG9yIHJldHVybiB0aGlz IGZlbmNlIG9iamVjdCB0byB1c2VyCj4gKwkgKiBsYW5kISBEdWUgdG8gbGF6eSBhbGxvY2F0aW9u LCBzY2hlZHVsZXIgcmUtb3JkZXJpbmcsIHByZS1lbXB0aW9uLAo+ICsJICogZXRjLiwgdGhlcmUg aXMgbm8gZ3VhcmFudGVlIGF0IGFsbCBhYm91dCB0aGUgdmFsaWRpdHkgb3IKPiArCSAqIHNlcXVl bnRpYWxpdHkgb2YgdGhlIGZlbmNlJ3Mgc2Vxbm8hIEl0IGlzIGFsc28gdW5zYWZlIHRvIGxldAo+ ICsJICogYW55dGhpbmcgb3V0c2lkZSBvZiB0aGUgaTkxNSBkcml2ZXIgZ2V0IGhvbGQgb2YgdGhl IGZlbmNlIG9iamVjdAo+ICsJICogYXMgdGhlIGNsZWFuIHVwIHdoZW4gZGVjcmVtZW50aW5nIHRo ZSByZWZlcmVuY2UgY291bnQgcmVxdWlyZXMKPiArCSAqIGhvbGRpbmcgdGhlIGRyaXZlciBtdXRl eCBsb2NrLgo+ICsJICovCgpUaGlzIGNvbW1lbnQgaXMgb3V0ZGF0ZWQuIEFsc28gSSdtIGxlYW5p bmcgdG93YXJkcyBzcXVhc2hpbmcgdGhpcyBwYXRjaAp3aXRoIHRoZSBvbmUgaW1wbGVtZW50aW5n IGZlbmNlcyB3aXRoIGV4cGxpY2l0IGlycSBlbmFibGluZywgdG8gYXZvaWQKY2h1cm4gYW5kIGlu dGVybWVkaWF0ZSBXQVJOX09Ocy4gRWFjaCBwYXRjaCBzaG91bGQgYmUgZnVsbHkgZnVuY3Rpb25h bAp3aXRob3V0IHJlcXVpcmluZyBmb2xsb3ctdXAgcGF0Y2hlcy4KLURhbmllbAoKCj4gKwlzdHJ1 Y3QgZmVuY2UgZmVuY2U7Cj4gIAo+ICAJLyoqIE9uIFdoaWNoIHJpbmcgdGhpcyByZXF1ZXN0IHdh cyBnZW5lcmF0ZWQgKi8KPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1Owo+IEBAIC0y MjI3LDcgKzIyMzgsMTMgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZywKPiAgCQkJICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAg CQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCk7Cj4gIHZvaWQgaTkx NV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+ IC12b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZik7Cj4gKwo+ ICtzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gKwkJCQkJICAgICAgYm9vbCBsYXp5X2NvaGVyZW5j eSkKPiArewo+ICsJcmV0dXJuIGZlbmNlX2lzX3NpZ25hbGVkKCZyZXEtPmZlbmNlKTsKPiArfQo+ ICsKPiAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3RvX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKPiAgCQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Cj4gIAo+ IEBAIC0yMjQ3LDcgKzIyNjQsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqCj4gIGk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+ICB7Cj4gIAlpZiAocmVxKQo+IC0JCWtyZWZfZ2V0KCZyZXEtPnJl Zik7Cj4gKwkJZmVuY2VfZ2V0KCZyZXEtPmZlbmNlKTsKPiAgCXJldHVybiByZXE7Cj4gIH0KPiAg Cj4gQEAgLTIyNTUsNyArMjI3Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZAo+ICBpOTE1X2dlbV9y ZXF1ZXN0X3VucmVmZXJlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICB7 Cj4gIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJlcS0+cmluZy0+ZGV2LT5zdHJ1Y3RfbXV0 ZXgpKTsKPiAtCWtyZWZfcHV0KCZyZXEtPnJlZiwgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKTsKPiAr CWZlbmNlX3B1dCgmcmVxLT5mZW5jZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbmxpbmUgdm9pZAo+ IEBAIC0yMjY3LDcgKzIyODQsNyBAQCBpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlX191bmxv Y2tlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgCQlyZXR1cm47Cj4gIAo+ ICAJZGV2ID0gcmVxLT5yaW5nLT5kZXY7Cj4gLQlpZiAoa3JlZl9wdXRfbXV0ZXgoJnJlcS0+cmVm LCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUsICZkZXYtPnN0cnVjdF9tdXRleCkpCj4gKwlpZiAoa3Jl Zl9wdXRfbXV0ZXgoJnJlcS0+ZmVuY2UucmVmY291bnQsIGZlbmNlX3JlbGVhc2UsICZkZXYtPnN0 cnVjdF9tdXRleCkpCj4gIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gIH0K PiAgCj4gQEAgLTIyODQsMTIgKzIzMDEsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1f cmVxdWVzdF9hc3NpZ24oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcGRzdCwKPiAgfQo+ ICAKPiAgLyoKPiAtICogWFhYOiBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCBzaG91bGQgYmUg aGVyZSBidXQgY3VycmVudGx5IG5lZWRzIHRoZQo+IC0gKiBkZWZpbml0aW9uIG9mIGk5MTVfc2Vx bm9fcGFzc2VkKCkgd2hpY2ggaXMgYmVsb3cuIEl0IHdpbGwgYmUgbW92ZWQgaW4KPiAtICogYSBs YXRlciBwYXRjaCB3aGVuIHRoZSBjYWxsIHRvIGk5MTVfc2Vxbm9fcGFzc2VkKCkgaXMgb2Jzb2xl dGVkLi4uCj4gLSAqLwo+IC0KPiAtLyoKPiAgICogQSBjb21tYW5kIHRoYXQgcmVxdWlyZXMgc3Bl Y2lhbCBoYW5kbGluZyBieSB0aGUgY29tbWFuZCBwYXJzZXIuCj4gICAqLwo+ICBzdHJ1Y3QgZHJt X2k5MTVfY21kX2Rlc2NyaXB0b3Igewo+IEBAIC0yODUxLDE4ICsyODYyLDYgQEAgaTkxNV9zZXFu b19wYXNzZWQodWludDMyX3Qgc2VxMSwgdWludDMyX3Qgc2VxMikKPiAgCXJldHVybiAoaW50MzJf dCkoc2VxMSAtIHNlcTIpID49IDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1 X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK PiAtCQkJCQkgICAgICBib29sIGxhenlfY29oZXJlbmN5KQo+IC17Cj4gLQl1MzIgc2Vxbm87Cj4g LQo+IC0JQlVHX09OKHJlcSA9PSBOVUxMKTsKPiAtCj4gLQlzZXFubyA9IHJlcS0+cmluZy0+Z2V0 X3NlcW5vKHJlcS0+cmluZywgbGF6eV9jb2hlcmVuY3kpOwo+IC0KPiAtCXJldHVybiBpOTE1X3Nl cW5vX3Bhc3NlZChzZXFubywgcmVxLT5zZXFubyk7Cj4gLX0KPiAtCj4gIGludCBfX211c3RfY2hl Y2sgaTkxNV9nZW1fZ2V0X3NlcW5vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiAqc2Vxbm8p Owo+ICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3NldF9zZXFubyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1MzIgc2Vxbm8pOwo+ICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX29iamVjdF9n ZXRfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCj4gaW5kZXggZDlmMjcwMS4uODg4YmI3MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+IEBAIC0yNjE2LDEyICsyNjE2LDE0IEBAIHN0YXRpYyB2b2lkIGk5MTVfc2V0X3Jl c2V0X3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl9Cj4gIH0K PiAgCj4gLXZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+ ICtzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGZlbmNlICpyZXFfZmVu Y2UpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gY29udGFpbmVy X29mKHJlcV9yZWYsCj4gLQkJCQkJCSB0eXBlb2YoKnJlcSksIHJlZik7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCj4gKwkJCQkJ CSB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSBy ZXEtPmN0eDsKPiAgCj4gKwlCVUdfT04oIW11dGV4X2lzX2xvY2tlZCgmcmVxLT5yaW5nLT5kZXYt PnN0cnVjdF9tdXRleCkpOwo+ICsKPiAgCWlmIChyZXEtPmZpbGVfcHJpdikKPiAgCQlpOTE1X2dl bV9yZXF1ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChyZXEpOwo+ICAKPiBAQCAtMjYzNyw2ICsyNjM5 LDQ3IEBAIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+ ICAJa21lbV9jYWNoZV9mcmVlKHJlcS0+aTkxNS0+cmVxdWVzdHMsIHJlcSk7Cj4gIH0KPiAgCj4g K3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF9kcml2ZXJfbmFtZShzdHJ1 Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiArewo+ICsJcmV0dXJuICJpOTE1X3JlcXVlc3QiOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVf bmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJfb2YocmVxX2ZlbmNlLAo+ICsJCQkJCQkgdHlwZW9m KCpyZXEpLCBmZW5jZSk7Cj4gKwlyZXR1cm4gcmVxLT5yaW5nLT5uYW1lOwo+ICt9Cj4gKwo+ICtz dGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNl ICpyZXFfZmVuY2UpCj4gK3sKPiArCS8qIEludGVycnVwdCBkcml2ZW4gZmVuY2VzIGFyZSBub3Qg aW1wbGVtZW50ZWQgeWV0LiovCj4gKwlXQVJOKHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2Fs bGVkISIpOwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGk5MTVfZ2Vt X3JlcXVlc3RfaXNfY29tcGxldGVkKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQo+ICt7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2Us Cj4gKwkJCQkJCSB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPiArCXUzMiBzZXFubzsKPiArCj4gKwlC VUdfT04ocmVxID09IE5VTEwpOwo+ICsKPiArCXNlcW5vID0gcmVxLT5yaW5nLT5nZXRfc2Vxbm8o cmVxLT5yaW5nLCBmYWxzZS8qbGF6eV9jb2hlcmVuY3kqLyk7Cj4gKwo+ICsJcmV0dXJuIGk5MTVf c2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnNlcW5vKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3BzID0gewo+ICsJLmdldF9kcml2 ZXJfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2RyaXZlcl9uYW1lLAo+ICsJLmdldF90aW1l bGluZV9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZSwKPiArCS5lbmFi bGVfc2lnbmFsaW5nCT0gaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfc2lnbmFsaW5nLAo+ICsJLnNp Z25hbGVkCQk9IGk5MTVfZ2VtX3JlcXVlc3RfaXNfY29tcGxldGVkLAo+ICsJLndhaXQJCQk9IGZl bmNlX2RlZmF1bHRfd2FpdCwKPiArCS5yZWxlYXNlCQk9IGk5MTVfZ2VtX3JlcXVlc3RfZnJlZSwK PiArfTsKPiArCj4gIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsCj4gIAkJCSAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gIAkJCSAg IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9vdXQpCj4gQEAgLTI2NTgsNyArMjcw MSw2IEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gZXJyOwo+ICAKPiAtCWtyZWZfaW5pdCgmcmVx LT5yZWYpOwo+ICAJcmVxLT5pOTE1ID0gZGV2X3ByaXY7Cj4gIAlyZXEtPnJpbmcgPSByaW5nOwo+ ICAJcmVxLT5jdHggID0gY3R4Owo+IEBAIC0yNjczLDYgKzI3MTUsOCBAQCBpbnQgaTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAJCWdvdG8gZXJy Owo+ICAJfQo+ICAKPiArCWZlbmNlX2luaXQoJnJlcS0+ZmVuY2UsICZpOTE1X2dlbV9yZXF1ZXN0 X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLCByaW5nLT5mZW5jZV9jb250ZXh0LCByZXEtPnNlcW5v KTsKPiArCj4gIAkvKgo+ICAJICogUmVzZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIgZm9y IGFsbCB0aGUgY29tbWFuZHMgcmVxdWlyZWQgdG8KPiAgCSAqIGV2ZW50dWFsbHkgZW1pdCB0aGlz IHJlcXVlc3QuIFRoaXMgaXMgdG8gZ3VhcmFudGVlIHRoYXQgdGhlCj4gQEAgLTUwMjEsNyArNTA2 NSw3IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAg CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Cj4gLQlpbnQgcmV0LCBpLCBqOwo+ICsJaW50 IHJldCwgaSwgaiwgZmVuY2VfYmFzZTsKPiAgCj4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g PCA2ICYmICFpbnRlbF9lbmFibGVfZ3R0KCkpCj4gIAkJcmV0dXJuIC1FSU87Cj4gQEAgLTUwNzMs MTIgKzUxMTcsMTYgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICAJCQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gKwlmZW5jZV9iYXNlID0gZmVuY2VfY29udGV4dF9h bGxvYyhJOTE1X05VTV9SSU5HUyk7Cj4gKwo+ICAJLyogTm93IGl0IGlzIHNhZmUgdG8gZ28gYmFj ayByb3VuZCBhbmQgZG8gZXZlcnl0aGluZyBlbHNlOiAqLwo+ICAJZm9yX2VhY2hfcmluZyhyaW5n LCBkZXZfcHJpdiwgaSkgewo+ICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ ICAKPiAgCQlXQVJOX09OKCFyaW5nLT5kZWZhdWx0X2NvbnRleHQpOwo+ICAKPiArCQlyaW5nLT5m ZW5jZV9jb250ZXh0ID0gZmVuY2VfYmFzZSArIGk7Cj4gKwo+ICAJCXJldCA9IGk5MTVfZ2VtX3Jl cXVlc3RfYWxsb2MocmluZywgcmluZy0+ZGVmYXVsdF9jb250ZXh0LCAmcmVxKTsKPiAgCQlpZiAo cmV0KSB7Cj4gIAkJCWk5MTVfZ2VtX2NsZWFudXBfcmluZ2J1ZmZlcihkZXYpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gaW5kZXggOWZhYWQ4Mi4uZWU0YWVjZCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gQEAgLTE4MDgsNiArMTgwOCw3IEBAIHN0YXRpYyBpbnQgbG9naWNh bF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluCj4gIAlyaW5nLT5kZXYgPSBkZXY7Cj4gIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+YWN0 aXZlX2xpc3QpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPnJlcXVlc3RfbGlzdCk7Cj4gKwlz cGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7Cj4gIAlpOTE1X2dlbV9iYXRjaF9wb29s X2luaXQoZGV2LCAmcmluZy0+YmF0Y2hfcG9vbCk7Cj4gIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZy aW5nLT5pcnFfcXVldWUpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCj4gaW5kZXggMTc3ZjdlZC4uZDFjZWQzMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjA0MCw2ICsyMDQwLDcgQEAgc3RhdGljIGludCBpbnRl bF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlJTklUX0xJU1Rf SEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPnJlcXVl c3RfbGlzdCk7Cj4gIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+ZXhlY2xpc3RfcXVldWUpOwo+ICsJ c3Bpbl9sb2NrX2luaXQoJnJpbmctPmZlbmNlX2xvY2spOwo+ICAJaTkxNV9nZW1fYmF0Y2hfcG9v bF9pbml0KGRldiwgJnJpbmctPmJhdGNoX3Bvb2wpOwo+ICAJcmluZ2J1Zi0+c2l6ZSA9IDMyICog UEFHRV9TSVpFOwo+ICAJcmluZ2J1Zi0+cmluZyA9IHJpbmc7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDJlODVmZGEuLmE0YjA1NDUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTM0Niw2ICszNDYsOSBAQCBz dHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7Cj4gIAkgKiB0byBlbmNvZGUgdGhlIGNvbW1hbmQgbGVu Z3RoIGluIHRoZSBoZWFkZXIpLgo+ICAJICovCj4gIAl1MzIgKCpnZXRfY21kX2xlbmd0aF9tYXNr KSh1MzIgY21kX2hlYWRlcik7Cj4gKwo+ICsJdW5zaWduZWQgZmVuY2VfY29udGV4dDsKPiArCXNw aW5sb2NrX3QgZmVuY2VfbG9jazsKPiAgfTsKPiAgCj4gIGJvb2wgaW50ZWxfcmluZ19pbml0aWFs aXplZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiAtLSAKPiAxLjkuMQo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK