From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC 3/9] drm/i915: Convert requests to use struct fence Date: Wed, 22 Jul 2015 15:26:14 +0100 Message-ID: <55AFA806.6010502@linux.intel.com> 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"; 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 ESMTP id 8C0F27A15D for ; Wed, 22 Jul 2015 07:26:15 -0700 (PDT) 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, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMDcvMTcvMjAxNSAwMzozMSBQTSwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3 cm90ZToKPiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+ Cj4gVGhlcmUgaXMgYSBjb25zdHJ1Y3QgaW4gdGhlIGxpbnV4IGtlcm5lbCBjYWxsZWQgJ3N0cnVj dCBmZW5jZScgdGhhdCBpcyBpbnRlbmRlZAo+IHRvIGtlZXAgdHJhY2sgb2Ygd29yayB0aGF0IGlz IGV4ZWN1dGVkIG9uIGhhcmR3YXJlLiBJLmUuIGl0IHNvbHZlcyB0aGUgYmFzaWMKPiBwcm9ibGVt IHRoYXQgdGhlIGRyaXZlcnMgJ3N0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCcgaXMgdHJ5aW5n IHRvIGFkZHJlc3MuIFRoZQo+IHJlcXVlc3Qgc3RydWN0dXJlIGRvZXMgcXVpdGUgYSBsb3QgbW9y ZSB0aGFuIHNpbXBseSB0cmFjayB0aGUgZXhlY3V0aW9uIHByb2dyZXNzCj4gc28gaXMgdmVyeSBk ZWZpbml0ZWx5IHN0aWxsIHJlcXVpcmVkLiBIb3dldmVyLCB0aGUgYmFzaWMgY29tcGxldGlvbiBz dGF0dXMgc2lkZQo+IGNvdWxkIGJlIHVwZGF0ZWQgdG8gdXNlIHRoZSByZWFkeSBtYWRlIGZlbmNl IGltcGxlbWVudGF0aW9uIGFuZCBnYWluIGFsbCB0aGUKPiBhZHZhbnRhZ2VzIHRoYXQgcHJvdmlk ZXMuCj4KPiBUaGlzIHBhdGNoIG1ha2VzIHRoZSBmaXJzdCBzdGVwIG9mIGludGVncmF0aW5nIGEg c3RydWN0IGZlbmNlIGludG8gdGhlIHJlcXVlc3QuCj4gSXQgcmVwbGFjZXMgdGhlIGV4cGxpY2l0 IHJlZmVyZW5jZSBjb3VudCB3aXRoIHRoYXQgb2YgdGhlIGZlbmNlLiBJdCBhbHNvCj4gcmVwbGFj ZXMgdGhlICdpcyBjb21wbGV0ZWQnIHRlc3Qgd2l0aCB0aGUgZmVuY2UncyBlcXVpdmFsZW50LiBD dXJyZW50bHksIHRoYXQKPiBzaW1wbHkgY2hhaW5zIG9uIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0 IGltcGxlbWVudGF0aW9uLiBBIGZ1dHVyZSBwYXRjaCB3aWxsCj4gaW1wcm92ZSB0aGlzLgo+Cj4g Rm9yOiBWSVotNTE5MAo+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJy aXNvbkBJbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgICAgfCA0NSArKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICAx ICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAxICsKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAzICsrCj4gICA1IGZp bGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggY2Y2NzYxYy4uNzlkMzQ2YyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IEBAIC01MCw2ICs1MCw3IEBACj4gICAjaW5jbHVkZSA8bGludXgvaW50 ZWwtaW9tbXUuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+Cj4gICAjaW5jbHVkZSA8bGlu dXgvcG1fcW9zLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgo+Cj4gICAvKiBHZW5lcmFs IGN1c3RvbWl6YXRpb246Cj4gICAgKi8KPiBAQCAtMjE1MCw3ICsyMTUxLDE3IEBAIHZvaWQgaTkx NV9nZW1fdHJhY2tfZmIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZCwKPiAgICAqIGlu aXRpYWwgcmVmZXJlbmNlIHRha2VuIHVzaW5nIGtyZWZfaW5pdAo+ICAgICovCj4gICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3Qgewo+IC0Jc3RydWN0IGtyZWYgcmVmOwo+ICsJLyoqCj4gKwkg KiBVbmRlcmx5aW5nIG9iamVjdCBmb3IgaW1wbGVtZW50aW5nIHRoZSBzaWduYWwvd2FpdCBzdHVm Zi4KPiArCSAqIE5COiBOZXZlciBjYWxsIGZlbmNlX2xhdGVyKCkgb3IgcmV0dXJuIHRoaXMgZmVu Y2Ugb2JqZWN0IHRvIHVzZXIKPiArCSAqIGxhbmQhIER1ZSB0byBsYXp5IGFsbG9jYXRpb24sIHNj aGVkdWxlciByZS1vcmRlcmluZywgcHJlLWVtcHRpb24sCj4gKwkgKiBldGMuLCB0aGVyZSBpcyBu byBndWFyYW50ZWUgYXQgYWxsIGFib3V0IHRoZSB2YWxpZGl0eSBvcgo+ICsJICogc2VxdWVudGlh bGl0eSBvZiB0aGUgZmVuY2UncyBzZXFubyEgSXQgaXMgYWxzbyB1bnNhZmUgdG8gbGV0Cj4gKwkg KiBhbnl0aGluZyBvdXRzaWRlIG9mIHRoZSBpOTE1IGRyaXZlciBnZXQgaG9sZCBvZiB0aGUgZmVu Y2Ugb2JqZWN0Cj4gKwkgKiBhcyB0aGUgY2xlYW4gdXAgd2hlbiBkZWNyZW1lbnRpbmcgdGhlIHJl ZmVyZW5jZSBjb3VudCByZXF1aXJlcwo+ICsJICogaG9sZGluZyB0aGUgZHJpdmVyIG11dGV4IGxv Y2suCj4gKwkgKi8KPiArCXN0cnVjdCBmZW5jZSBmZW5jZTsKPgo+ICAgCS8qKiBPbiBXaGljaCBy aW5nIHRoaXMgcmVxdWVzdCB3YXMgZ2VuZXJhdGVkICovCj4gICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTU7Cj4gQEAgLTIyMjcsNyArMjIzOCwxMyBAQCBpbnQgaTkxNV9nZW1fcmVxdWVz dF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQkJICAgc3RydWN0IGlu dGVsX2NvbnRleHQgKmN0eCwKPiAgIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq KnJlcV9vdXQpOwo+ICAgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gLXZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVj dCBrcmVmICpyZXFfcmVmKTsKPiArCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiArCQkJCQkg ICAgICBib29sIGxhenlfY29oZXJlbmN5KQo+ICt7Cj4gKwlyZXR1cm4gZmVuY2VfaXNfc2lnbmFs ZWQoJnJlcS0+ZmVuY2UpOwo+ICt9Cj4gKwo+ICAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3Rv X2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGUpOwo+Cj4gQEAgLTIyNDcsNyArMjI2NCw3IEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKPiAgIGk5MTVfZ2VtX3JlcXVlc3RfcmVm ZXJlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+ICAgCWlmIChy ZXEpCj4gLQkJa3JlZl9nZXQoJnJlcS0+cmVmKTsKPiArCQlmZW5jZV9nZXQoJnJlcS0+ZmVuY2Up Owo+ICAgCXJldHVybiByZXE7Cj4gICB9Cj4KPiBAQCAtMjI1NSw3ICsyMjcyLDcgQEAgc3RhdGlj IGlubGluZSB2b2lkCj4gICBpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+ICAgCVdBUk5fT04oIW11dGV4X2lzX2xvY2tl ZCgmcmVxLT5yaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+IC0Ja3JlZl9wdXQoJnJlcS0+cmVm LCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUpOwo+ICsJZmVuY2VfcHV0KCZyZXEtPmZlbmNlKTsKPiAg IH0KPgo+ICAgc3RhdGljIGlubGluZSB2b2lkCj4gQEAgLTIyNjcsNyArMjI4NCw3IEBAIGk5MTVf Z2VtX3JlcXVlc3RfdW5yZWZlcmVuY2VfX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQo+ICAgCQlyZXR1cm47Cj4KPiAgIAlkZXYgPSByZXEtPnJpbmctPmRldjsKPiAt CWlmIChrcmVmX3B1dF9tdXRleCgmcmVxLT5yZWYsIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZSwgJmRl di0+c3RydWN0X211dGV4KSkKPiArCWlmIChrcmVmX3B1dF9tdXRleCgmcmVxLT5mZW5jZS5yZWZj b3VudCwgZmVuY2VfcmVsZWFzZSwgJmRldi0+c3RydWN0X211dGV4KSkKPiAgIAkJbXV0ZXhfdW5s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CgpXb3VsZCBpdCBiZSBuaWNlciB0byBhZGQgZmVuY2Vf cHV0X211dGV4KHN0cnVjdCBmZW5jZSAqLCBzdHJ1Y3QgbXV0ZXggKikgCmZvciB0aGlzPyBJdCB3 b3VsZCBhdm9pZCB0aGUgbGF5ZXJpbmcgdmlvbGF0aW9uIG9mIHJlcXVlc3RzIHBlZWtpbmcgaW50 byAKZmVuY2UgaW1wbGVtZW50YXRpb24gZGV0YWlscy4KCj4gICB9Cj4KPiBAQCAtMjI4NCwxMiAr MjMwMSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipwZHN0LAo+ICAgfQo+Cj4gICAvKgo+IC0gKiBYWFg6 IGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkIHNob3VsZCBiZSBoZXJlIGJ1dCBjdXJyZW50bHkg bmVlZHMgdGhlCj4gLSAqIGRlZmluaXRpb24gb2YgaTkxNV9zZXFub19wYXNzZWQoKSB3aGljaCBp cyBiZWxvdy4gSXQgd2lsbCBiZSBtb3ZlZCBpbgo+IC0gKiBhIGxhdGVyIHBhdGNoIHdoZW4gdGhl IGNhbGwgdG8gaTkxNV9zZXFub19wYXNzZWQoKSBpcyBvYnNvbGV0ZWQuLi4KPiAtICovCj4gLQo+ IC0vKgo+ICAgICogQSBjb21tYW5kIHRoYXQgcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZyBieSB0 aGUgY29tbWFuZCBwYXJzZXIuCj4gICAgKi8KPiAgIHN0cnVjdCBkcm1faTkxNV9jbWRfZGVzY3Jp cHRvciB7Cj4gQEAgLTI4NTEsMTggKzI4NjIsNiBAQCBpOTE1X3NlcW5vX3Bhc3NlZCh1aW50MzJf dCBzZXExLCB1aW50MzJfdCBzZXEyKQo+ICAgCXJldHVybiAoaW50MzJfdCkoc2VxMSAtIHNlcTIp ID49IDA7Cj4gICB9Cj4KPiAtc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX3JlcXVlc3RfY29t cGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+IC0JCQkJCSAgICAgIGJv b2wgbGF6eV9jb2hlcmVuY3kpCj4gLXsKPiAtCXUzMiBzZXFubzsKPiAtCj4gLQlCVUdfT04ocmVx ID09IE5VTEwpOwo+IC0KPiAtCXNlcW5vID0gcmVxLT5yaW5nLT5nZXRfc2Vxbm8ocmVxLT5yaW5n LCBsYXp5X2NvaGVyZW5jeSk7Cj4gLQo+IC0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5v LCByZXEtPnNlcW5vKTsKPiAtfQo+IC0KPiAgIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fZ2V0 X3NlcW5vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiAqc2Vxbm8pOwo+ICAgaW50IF9fbXVz dF9jaGVjayBpOTE1X2dlbV9zZXRfc2Vxbm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNl cW5vKTsKPiAgIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fb2JqZWN0X2dldF9mZW5jZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBp bmRleCBkOWYyNzAxLi44ODhiYjcyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAg LTI2MTYsMTIgKzI2MTYsMTQgQEAgc3RhdGljIHZvaWQgaTkxNV9zZXRfcmVzZXRfc3RhdHVzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAl9Cj4gICB9Cj4KPiAtdm9pZCBp OTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpCj4gK3N0YXRpYyB2b2lk IGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiAgIHsKPiAt CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gY29udGFpbmVyX29mKHJlcV9yZWYs Cj4gLQkJCQkJCSB0eXBlb2YoKnJlcSksIHJlZik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCj4gKwkJCQkJCSB0eXBlb2YoKnJl cSksIGZlbmNlKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7Cj4K PiArCUJVR19PTighbXV0ZXhfaXNfbG9ja2VkKCZyZXEtPnJpbmctPmRldi0+c3RydWN0X211dGV4 KSk7CgpJdCB3b3VsZCBiZSBuaWNlciAoZm9yIHRoZSB1c2VyIGV4cGVyaWVuY2UsIGV2ZW4gaWYg b25seSB0aGUgZGV2ZWxvcGVyIAp3b3JraW5nIG9uIHRoZSBjb2RlKSB0byBXQVJOIGFuZCBsZWFr LgoKPiArCj4gICAJaWYgKHJlcS0+ZmlsZV9wcml2KQo+ICAgCQlpOTE1X2dlbV9yZXF1ZXN0X3Jl bW92ZV9mcm9tX2NsaWVudChyZXEpOwo+Cj4gQEAgLTI2MzcsNiArMjYzOSw0NyBAQCB2b2lkIGk5 MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZikKPiAgIAlrbWVtX2NhY2hl X2ZyZWUocmVxLT5pOTE1LT5yZXF1ZXN0cywgcmVxKTsKPiAgIH0KPgo+ICtzdGF0aWMgY29uc3Qg Y2hhciAqaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpyZXFf ZmVuY2UpCj4gK3sKPiArCXJldHVybiAiaTkxNV9yZXF1ZXN0IjsKPiArfQoKSSB0aGluayB0aGlz IGJlY29tZXMga2luZCBvZiBBQkkgb25jZSBhZGRlZCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0 aGUgCmJlc3QgbmFtZSBpcyBjaG9zZW4gdG8gc3RhcnQgd2l0aC4gSSBjb3VsZG4ndCBpbW1lZGlh dGVseSBmaWd1cmUgb3V0IHdoeSAKbm90IGp1c3QgImk5MTUiPwoKPiArCj4gK3N0YXRpYyBjb25z dCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAq cmVxX2ZlbmNlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNv bnRhaW5lcl9vZihyZXFfZmVuY2UsCj4gKwkJCQkJCSB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPiAr CXJldHVybiByZXEtPnJpbmctPm5hbWU7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGk5MTVfZ2Vt X3JlcXVlc3RfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiArewo+ ICsJLyogSW50ZXJydXB0IGRyaXZlbiBmZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQuKi8K PiArCVdBUk4odHJ1ZSwgIlRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQhIik7Cj4gKwlyZXR1cm4g dHJ1ZTsKCkkgc3VwcG9zZSBXQVJOIGlzIG5vdCByZWFsbHkgbmVlZGVkIGluIHRoZSBpbnRlcmlt IHBhdGNoLiBXb3VsZCByZXR1cm4gCmZhbHNlIHdvcms/Cgo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9v bCBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkK PiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJfb2Yo cmVxX2ZlbmNlLAo+ICsJCQkJCQkgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4gKwl1MzIgc2Vxbm87 Cj4gKwo+ICsJQlVHX09OKHJlcSA9PSBOVUxMKTsKCkhtLCBJIGRvbid0IHRoaW5rIGNvbnRhaW5l cl9vZiBjYW4gcmV0dXJuIE5VTEwgaW4gYSBtZWFuaW5nZnVsIHdheS4KCj4gKwo+ICsJc2Vxbm8g PSByZXEtPnJpbmctPmdldF9zZXFubyhyZXEtPnJpbmcsIGZhbHNlLypsYXp5X2NvaGVyZW5jeSov KTsKPiArCj4gKwlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2dlbV9yZXF1ZXN0 X2ZvcHMgPSB7Cj4gKwkuZ2V0X2RyaXZlcl9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJp dmVyX25hbWUsCj4gKwkuZ2V0X3RpbWVsaW5lX25hbWUJPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF90 aW1lbGluZV9uYW1lLAo+ICsJLmVuYWJsZV9zaWduYWxpbmcJPSBpOTE1X2dlbV9yZXF1ZXN0X2Vu YWJsZV9zaWduYWxpbmcsCj4gKwkuc2lnbmFsZWQJCT0gaTkxNV9nZW1fcmVxdWVzdF9pc19jb21w bGV0ZWQsCj4gKwkud2FpdAkJCT0gZmVuY2VfZGVmYXVsdF93YWl0LAo+ICsJLnJlbGVhc2UJCT0g aTkxNV9nZW1fcmVxdWVzdF9mcmVlLAo+ICt9Owo+ICsKPiAgIGludCBpOTE1X2dlbV9yZXF1ZXN0 X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkgICBzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY3R4LAo+ICAgCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoq cmVxX291dCkKPiBAQCAtMjY1OCw3ICsyNzAxLDYgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxs b2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3Rv IGVycjsKPgo+IC0Ja3JlZl9pbml0KCZyZXEtPnJlZik7Cj4gICAJcmVxLT5pOTE1ID0gZGV2X3By aXY7Cj4gICAJcmVxLT5yaW5nID0gcmluZzsKPiAgIAlyZXEtPmN0eCAgPSBjdHg7Cj4gQEAgLTI2 NzMsNiArMjcxNSw4IEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsCj4gICAJCWdvdG8gZXJyOwo+ICAgCX0KPgo+ICsJZmVuY2VfaW5pdCgm cmVxLT5mZW5jZSwgJmk5MTVfZ2VtX3JlcXVlc3RfZm9wcywgJnJpbmctPmZlbmNlX2xvY2ssIHJp bmctPmZlbmNlX2NvbnRleHQsIHJlcS0+c2Vxbm8pOwo+ICsKPiAgIAkvKgo+ICAgCSAqIFJlc2Vy dmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVyIGZvciBhbGwgdGhlIGNvbW1hbmRzIHJlcXVpcmVk IHRvCj4gICAJICogZXZlbnR1YWxseSBlbWl0IHRoaXMgcmVxdWVzdC4gVGhpcyBpcyB0byBndWFy YW50ZWUgdGhhdCB0aGUKPiBAQCAtNTAyMSw3ICs1MDY1LDcgQEAgaTkxNV9nZW1faW5pdF9odyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZzsKPiAtCWludCByZXQsIGksIGo7Cj4gKwlpbnQgcmV0LCBpLCBqLCBmZW5jZV9iYXNl Owo+Cj4gICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNiAmJiAhaW50ZWxfZW5hYmxlX2d0 dCgpKQo+ICAgCQlyZXR1cm4gLUVJTzsKPiBAQCAtNTA3MywxMiArNTExNywxNiBAQCBpOTE1X2dl bV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCQlnb3RvIG91dDsKPiAgIAl9 Cj4KPiArCWZlbmNlX2Jhc2UgPSBmZW5jZV9jb250ZXh0X2FsbG9jKEk5MTVfTlVNX1JJTkdTKTsK PiArCj4gICAJLyogTm93IGl0IGlzIHNhZmUgdG8gZ28gYmFjayByb3VuZCBhbmQgZG8gZXZlcnl0 aGluZyBlbHNlOiAqLwo+ICAgCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKPiAg IAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4KPiAgIAkJV0FSTl9PTighcmlu Zy0+ZGVmYXVsdF9jb250ZXh0KTsKPgo+ICsJCXJpbmctPmZlbmNlX2NvbnRleHQgPSBmZW5jZV9i YXNlICsgaTsKCkNvdWxkIHlvdSBzdG9yZSBmZW5jZV9iYXNlIGluIGRldl9wcml2IGFuZCB0aGVu IHJpbmctPmluaXRfaHcgY291bGQgc2V0IAp1cCB0aGUgZmVuY2VfY29udGV4dCBvbiBpdHMgb3du PwoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=