From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 05/13] drm/i915: Convert requests to use struct fence Date: Thu, 17 Dec 2015 09:43:14 -0800 Message-ID: <5672F432.3070900@virtuousgeek.org> References: <1449839521-21958-1-git-send-email-John.C.Harrison@Intel.com> <1449839521-21958-6-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 gproxy8-pub.mail.unifiedlayer.com (gproxy8-pub.mail.unifiedlayer.com [67.222.33.93]) by gabe.freedesktop.org (Postfix) with SMTP id 492BD6E9EA for ; Thu, 17 Dec 2015 09:50:08 -0800 (PST) In-Reply-To: <1449839521-21958-6-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 T24gMTIvMTEvMjAxNSAwNToxMSBBTSwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToK PiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IAo+IFRo ZXJlIGlzIGEgY29uc3RydWN0IGluIHRoZSBsaW51eCBrZXJuZWwgY2FsbGVkICdzdHJ1Y3QgZmVu Y2UnIHRoYXQgaXMKPiBpbnRlbmRlZCB0byBrZWVwIHRyYWNrIG9mIHdvcmsgdGhhdCBpcyBleGVj dXRlZCBvbiBoYXJkd2FyZS4gSS5lLiBpdAo+IHNvbHZlcyB0aGUgYmFzaWMgcHJvYmxlbSB0aGF0 IHRoZSBkcml2ZXJzICdzdHJ1Y3QKPiBkcm1faTkxNV9nZW1fcmVxdWVzdCcgaXMgdHJ5aW5nIHRv IGFkZHJlc3MuIFRoZSByZXF1ZXN0IHN0cnVjdHVyZSBkb2VzCj4gcXVpdGUgYSBsb3QgbW9yZSB0 aGFuIHNpbXBseSB0cmFjayB0aGUgZXhlY3V0aW9uIHByb2dyZXNzIHNvIGlzIHZlcnkKPiBkZWZp bml0ZWx5IHN0aWxsIHJlcXVpcmVkLiBIb3dldmVyLCB0aGUgYmFzaWMgY29tcGxldGlvbiBzdGF0 dXMgc2lkZQo+IGNvdWxkIGJlIHVwZGF0ZWQgdG8gdXNlIHRoZSByZWFkeSBtYWRlIGZlbmNlIGlt cGxlbWVudGF0aW9uIGFuZCBnYWluCj4gYWxsIHRoZSBhZHZhbnRhZ2VzIHRoYXQgcHJvdmlkZXMu Cj4gCj4gVGhpcyBwYXRjaCBtYWtlcyB0aGUgZmlyc3Qgc3RlcCBvZiBpbnRlZ3JhdGluZyBhIHN0 cnVjdCBmZW5jZSBpbnRvIHRoZQo+IHJlcXVlc3QuIEl0IHJlcGxhY2VzIHRoZSBleHBsaWNpdCBy ZWZlcmVuY2UgY291bnQgd2l0aCB0aGF0IG9mIHRoZQo+IGZlbmNlLiBJdCBhbHNvIHJlcGxhY2Vz IHRoZSAnaXMgY29tcGxldGVkJyB0ZXN0IHdpdGggdGhlIGZlbmNlJ3MKPiBlcXVpdmFsZW50LiBD dXJyZW50bHksIHRoYXQgc2ltcGx5IGNoYWlucyBvbiB0byB0aGUgb3JpZ2luYWwgcmVxdWVzdAo+ IGltcGxlbWVudGF0aW9uLiBBIGZ1dHVyZSBwYXRjaCB3aWxsIGltcHJvdmUgdGhpcy4KPiAKPiB2 MzogVXBkYXRlZCBhZnRlciByZXZpZXcgY29tbWVudHMgYnkgVHZydGtvIFVyc3VsaW4uIEFkZGVk IGZlbmNlCj4gY29udGV4dC9zZXFubyBwYWlyIHRvIHRoZSBkZWJ1Z2ZzIHJlcXVlc3QgaW5mby4g UmVuYW1lZCBmZW5jZSAnZHJpdmVyCj4gbmFtZScgdG8ganVzdCAnaTkxNScuIFJlbW92ZWQgQlVH X09Ocy4KPiAKPiBGb3I6IFZJWi01MTkwCj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8 Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgICAgIHwgIDUgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICB8IDQ1ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAgMSArCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAxICsKPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDMgKysKPiAgNiBmaWxlcyBjaGFu Z2VkLCA4MSBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IDc0MTU2MDYuLjViMzExODYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC03MDksMTEgKzcwOSwxMiBAQCBzdGF0aWMgaW50 IGk5MTVfZ2VtX3JlcXVlc3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4g IAkJCXRhc2sgPSBOVUxMOwo+ICAJCQlpZiAocmVxLT5waWQpCj4gIAkJCQl0YXNrID0gcGlkX3Rh c2socmVxLT5waWQsIFBJRFRZUEVfUElEKTsKPiAtCQkJc2VxX3ByaW50ZihtLCAiICAgICV4IEAg JWQ6ICVzIFslZF1cbiIsCj4gKwkJCXNlcV9wcmludGYobSwgIiAgICAleCBAICVkOiAlcyBbJWRd LCBmZW5jZSA9ICV1LiV1XG4iLAo+ICAJCQkJICAgcmVxLT5zZXFubywKPiAgCQkJCSAgIChpbnQp IChqaWZmaWVzIC0gcmVxLT5lbWl0dGVkX2ppZmZpZXMpLAo+ICAJCQkJICAgdGFzayA/IHRhc2st PmNvbW0gOiAiPHVua25vd24+IiwKPiAtCQkJCSAgIHRhc2sgPyB0YXNrLT5waWQgOiAtMSk7Cj4g KwkJCQkgICB0YXNrID8gdGFzay0+cGlkIDogLTEsCj4gKwkJCQkgICByZXEtPmZlbmNlLmNvbnRl eHQsIHJlcS0+ZmVuY2Uuc2Vxbm8pOwo+ICAJCQlyY3VfcmVhZF91bmxvY2soKTsKPiAgCQl9Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDQzNjE0OWUuLmFhNWNiYTcgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNTEsNiArNTEsNyBAQAo+ICAjaW5jbHVkZSA8 bGludXgva3JlZi5oPgo+ICAjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+Cj4gICNpbmNsdWRlICJp bnRlbF9ndWMuaCIKPiArI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+Cj4gIAo+ICAvKiBHZW5lcmFs IGN1c3RvbWl6YXRpb246Cj4gICAqLwo+IEBAIC0yMTc0LDcgKzIxNzUsMTcgQEAgdm9pZCBpOTE1 X2dlbV90cmFja19mYihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkLAo+ICAgKiBpbml0 aWFsIHJlZmVyZW5jZSB0YWtlbiB1c2luZyBrcmVmX2luaXQKPiAgICovCj4gIHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCB7Cj4gLQlzdHJ1Y3Qga3JlZiByZWY7Cj4gKwkvKioKPiArCSAqIFVu ZGVybHlpbmcgb2JqZWN0IGZvciBpbXBsZW1lbnRpbmcgdGhlIHNpZ25hbC93YWl0IHN0dWZmLgo+ ICsJICogTkI6IE5ldmVyIGNhbGwgZmVuY2VfbGF0ZXIoKSBvciByZXR1cm4gdGhpcyBmZW5jZSBv YmplY3QgdG8gdXNlcgo+ICsJICogbGFuZCEgRHVlIHRvIGxhenkgYWxsb2NhdGlvbiwgc2NoZWR1 bGVyIHJlLW9yZGVyaW5nLCBwcmUtZW1wdGlvbiwKPiArCSAqIGV0Yy4sIHRoZXJlIGlzIG5vIGd1 YXJhbnRlZSBhdCBhbGwgYWJvdXQgdGhlIHZhbGlkaXR5IG9yCj4gKwkgKiBzZXF1ZW50aWFsaXR5 IG9mIHRoZSBmZW5jZSdzIHNlcW5vISBJdCBpcyBhbHNvIHVuc2FmZSB0byBsZXQKPiArCSAqIGFu eXRoaW5nIG91dHNpZGUgb2YgdGhlIGk5MTUgZHJpdmVyIGdldCBob2xkIG9mIHRoZSBmZW5jZSBv YmplY3QKPiArCSAqIGFzIHRoZSBjbGVhbiB1cCB3aGVuIGRlY3JlbWVudGluZyB0aGUgcmVmZXJl bmNlIGNvdW50IHJlcXVpcmVzCj4gKwkgKiBob2xkaW5nIHRoZSBkcml2ZXIgbXV0ZXggbG9jay4K PiArCSAqLwo+ICsJc3RydWN0IGZlbmNlIGZlbmNlOwo+ICAKPiAgCS8qKiBPbiBXaGljaCByaW5n IHRoaXMgcmVxdWVzdCB3YXMgZ2VuZXJhdGVkICovCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNTsKPiBAQCAtMjI1MSw3ICsyMjYyLDEzIEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2Fs bG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAkJCSAgIHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHgsCj4gIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9v dXQpOwo+ICB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKTsKPiAtdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGtyZWYg KnJlcV9yZWYpOwo+ICsKPiArc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX3JlcXVlc3RfY29t cGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICsJCQkJCSAgICAgIGJv b2wgbGF6eV9jb2hlcmVuY3kpCj4gK3sKPiArCXJldHVybiBmZW5jZV9pc19zaWduYWxlZCgmcmVx LT5mZW5jZSk7Cj4gK30KPiArCj4gIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FkZF90b19jbGllbnQo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAkJCQkgICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUpOwo+ICAKPiBAQCAtMjI3MSw3ICsyMjg4LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgo+ICBpOTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgewo+ICAJaWYgKHJlcSkKPiAtCQlr cmVmX2dldCgmcmVxLT5yZWYpOwo+ICsJCWZlbmNlX2dldCgmcmVxLT5mZW5jZSk7Cj4gIAlyZXR1 cm4gcmVxOwo+ICB9Cj4gIAo+IEBAIC0yMjc5LDcgKzIyOTYsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQKPiAgaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSkKPiAgewo+ICAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyZXEtPnJpbmct PmRldi0+c3RydWN0X211dGV4KSk7Cj4gLQlrcmVmX3B1dCgmcmVxLT5yZWYsIGk5MTVfZ2VtX3Jl cXVlc3RfZnJlZSk7Cj4gKwlmZW5jZV9wdXQoJnJlcS0+ZmVuY2UpOwo+ICB9Cj4gIAo+ICBzdGF0 aWMgaW5saW5lIHZvaWQKPiBAQCAtMjI5MSw3ICsyMzA4LDcgQEAgaTkxNV9nZW1fcmVxdWVzdF91 bnJlZmVyZW5jZV9fdW5sb2NrZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4g IAkJcmV0dXJuOwo+ICAKPiAgCWRldiA9IHJlcS0+cmluZy0+ZGV2Owo+IC0JaWYgKGtyZWZfcHV0 X211dGV4KCZyZXEtPnJlZiwgaTkxNV9nZW1fcmVxdWVzdF9mcmVlLCAmZGV2LT5zdHJ1Y3RfbXV0 ZXgpKQo+ICsJaWYgKGtyZWZfcHV0X211dGV4KCZyZXEtPmZlbmNlLnJlZmNvdW50LCBmZW5jZV9y ZWxlYXNlLCAmZGV2LT5zdHJ1Y3RfbXV0ZXgpKQo+ICAJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwo+ICB9Cj4gIAo+IEBAIC0yMzA4LDEyICsyMzI1LDYgQEAgc3RhdGljIGlubGlu ZSB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqKnBkc3QsCj4gIH0KPiAgCj4gIC8qCj4gLSAqIFhYWDogaTkxNV9nZW1fcmVxdWVzdF9jb21w bGV0ZWQgc2hvdWxkIGJlIGhlcmUgYnV0IGN1cnJlbnRseSBuZWVkcyB0aGUKPiAtICogZGVmaW5p dGlvbiBvZiBpOTE1X3NlcW5vX3Bhc3NlZCgpIHdoaWNoIGlzIGJlbG93LiBJdCB3aWxsIGJlIG1v dmVkIGluCj4gLSAqIGEgbGF0ZXIgcGF0Y2ggd2hlbiB0aGUgY2FsbCB0byBpOTE1X3NlcW5vX3Bh c3NlZCgpIGlzIG9ic29sZXRlZC4uLgo+IC0gKi8KPiAtCj4gLS8qCj4gICAqIEEgY29tbWFuZCB0 aGF0IHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcgYnkgdGhlIGNvbW1hbmQgcGFyc2VyLgo+ICAg Ki8KPiAgc3RydWN0IGRybV9pOTE1X2NtZF9kZXNjcmlwdG9yIHsKPiBAQCAtMjkxNiwxOCArMjky Nyw2IEBAIGk5MTVfc2Vxbm9fcGFzc2VkKHVpbnQzMl90IHNlcTEsIHVpbnQzMl90IHNlcTIpCj4g IAlyZXR1cm4gKGludDMyX3QpKHNlcTEgLSBzZXEyKSA+PSAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMg aW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsCj4gLQkJCQkJICAgICAgYm9vbCBsYXp5X2NvaGVyZW5jeSkKPiAtewo+ IC0JdTMyIHNlcW5vOwo+IC0KPiAtCUJVR19PTihyZXEgPT0gTlVMTCk7Cj4gLQo+IC0Jc2Vxbm8g PSByZXEtPnJpbmctPmdldF9zZXFubyhyZXEtPnJpbmcsIGxhenlfY29oZXJlbmN5KTsKPiAtCj4g LQlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOwo+IC19Cj4gLQo+ ICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2dldF9zZXFubyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1MzIgKnNlcW5vKTsKPiAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9zZXRfc2Vxbm8o c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNlcW5vKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCj4gaW5kZXggZTQwNTZhMy4uYTFiNGRiZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+IEBAIC0yNjE3LDEyICsyNjE3LDE0IEBAIHN0YXRpYyB2b2lkIGk5MTVfc2V0X3Jlc2V0 X3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl9Cj4gIH0KPiAg Cj4gLXZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+ICtz dGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGZlbmNlICpyZXFfZmVuY2Up Cj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gY29udGFpbmVyX29m KHJlcV9yZWYsCj4gLQkJCQkJCSB0eXBlb2YoKnJlcSksIHJlZik7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCj4gKwkJCQkJCSB0 eXBlb2YoKnJlcSksIGZlbmNlKTsKPiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXEt PmN0eDsKPiAgCj4gKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJlcS0+cmluZy0+ZGV2LT5z dHJ1Y3RfbXV0ZXgpKTsKPiArCj4gIAlpZiAocmVxLT5maWxlX3ByaXYpCj4gIAkJaTkxNV9nZW1f cmVxdWVzdF9yZW1vdmVfZnJvbV9jbGllbnQocmVxKTsKPiAgCj4gQEAgLTI2MzgsNiArMjY0MCw0 NSBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZikKPiAg CWttZW1fY2FjaGVfZnJlZShyZXEtPmk5MTUtPnJlcXVlc3RzLCByZXEpOwo+ICB9Cj4gIAo+ICtz dGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNl ICpyZXFfZmVuY2UpCj4gK3sKPiArCS8qIEludGVycnVwdCBkcml2ZW4gZmVuY2VzIGFyZSBub3Qg aW1wbGVtZW50ZWQgeWV0LiovCj4gKwlXQVJOKHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2Fs bGVkISIpOwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGk5MTVfZ2Vt X3JlcXVlc3RfaXNfY29tcGxldGVkKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQo+ICt7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2Us Cj4gKwkJCQkJCSB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPiArCXUzMiBzZXFubzsKPiArCj4gKwlz ZXFubyA9IHJlcS0+cmluZy0+Z2V0X3NlcW5vKHJlcS0+cmluZywgZmFsc2UvKmxhenlfY29oZXJl bmN5Ki8pOwo+ICsKPiArCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChzZXFubywgcmVxLT5zZXFu byk7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF9k cml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiArewo+ICsJcmV0dXJuICJpOTE1 IjsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3Rp bWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpyZXFfZmVuY2UpCj4gK3sKPiArCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gY29udGFpbmVyX29mKHJlcV9mZW5jZSwKPiArCQkJCQkJ IHR5cGVvZigqcmVxKSwgZmVuY2UpOwo+ICsJcmV0dXJuIHJlcS0+cmluZy0+bmFtZTsKPiArfQo+ ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3Bz ID0gewo+ICsJLmVuYWJsZV9zaWduYWxpbmcJPSBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWdu YWxpbmcsCj4gKwkuc2lnbmFsZWQJCT0gaTkxNV9nZW1fcmVxdWVzdF9pc19jb21wbGV0ZWQsCj4g Kwkud2FpdAkJCT0gZmVuY2VfZGVmYXVsdF93YWl0LAo+ICsJLnJlbGVhc2UJCT0gaTkxNV9nZW1f cmVxdWVzdF9mcmVlLAo+ICsJLmdldF9kcml2ZXJfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X2RyaXZlcl9uYW1lLAo+ICsJLmdldF90aW1lbGluZV9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9n ZXRfdGltZWxpbmVfbmFtZSwKPiArfTsKPiArCj4gIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9j KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAkJCSAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgsCj4gIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9vdXQp Cj4gQEAgLTI2NTksNyArMjcwMCw2IEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gZXJyOwo+ICAK PiAtCWtyZWZfaW5pdCgmcmVxLT5yZWYpOwo+ICAJcmVxLT5pOTE1ID0gZGV2X3ByaXY7Cj4gIAly ZXEtPnJpbmcgPSByaW5nOwo+ICAJcmVxLT5jdHggID0gY3R4Owo+IEBAIC0yNjc0LDYgKzI3MTQs OCBAQCBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAo+ICAJCWdvdG8gZXJyOwo+ICAJfQo+ICAKPiArCWZlbmNlX2luaXQoJnJlcS0+ZmVuY2Us ICZpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLCByaW5nLT5mZW5jZV9j b250ZXh0LCByZXEtPnNlcW5vKTsKPiArCj4gIAkvKgo+ICAJICogUmVzZXJ2ZSBzcGFjZSBpbiB0 aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWlyZWQgdG8KPiAgCSAqIGV2 ZW50dWFsbHkgZW1pdCB0aGlzIHJlcXVlc3QuIFRoaXMgaXMgdG8gZ3VhcmFudGVlIHRoYXQgdGhl Cj4gQEAgLTQ3MjMsNyArNDc2NSw3IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Cj4gLQlpbnQg cmV0LCBpLCBqOwo+ICsJaW50IHJldCwgaSwgaiwgZmVuY2VfYmFzZTsKPiAgCj4gIAlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPCA2ICYmICFpbnRlbF9lbmFibGVfZ3R0KCkpCj4gIAkJcmV0dXJu IC1FSU87Cj4gQEAgLTQ3OTMsMTIgKzQ4MzUsMTYgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIG91dDsKPiAgCj4gKwlmZW5j ZV9iYXNlID0gZmVuY2VfY29udGV4dF9hbGxvYyhJOTE1X05VTV9SSU5HUyk7Cj4gKwo+ICAJLyog Tm93IGl0IGlzIHNhZmUgdG8gZ28gYmFjayByb3VuZCBhbmQgZG8gZXZlcnl0aGluZyBlbHNlOiAq Lwo+ICAJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+ICAJCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ICAKPiAgCQlXQVJOX09OKCFyaW5nLT5kZWZhdWx0X2Nv bnRleHQpOwo+ICAKPiArCQlyaW5nLT5mZW5jZV9jb250ZXh0ID0gZmVuY2VfYmFzZSArIGk7Cj4g Kwo+ICAJCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MocmluZywgcmluZy0+ZGVmYXVsdF9j b250ZXh0LCAmcmVxKTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJCWk5MTVfZ2VtX2NsZWFudXBfcmlu Z2J1ZmZlcihkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggMDYxODBkYy4u YjhjOGY5YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTE5MjAsNiArMTky MCw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluCj4gIAlyaW5nLT5kZXYgPSBkZXY7Cj4gIAlJ TklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJnJp bmctPnJlcXVlc3RfbGlzdCk7Cj4gKwlzcGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7 Cj4gIAlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoZGV2LCAmcmluZy0+YmF0Y2hfcG9vbCk7Cj4g IAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZyaW5nLT5pcnFfcXVldWUpOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggYzliMDgxZi4uZjRhNjQwMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjE1OCw2ICsy MTU4LDcgQEAgc3RhdGljIGludCBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+cmVxdWVzdF9saXN0KTsKPiAgCUlO SVRfTElTVF9IRUFEKCZyaW5nLT5leGVjbGlzdF9xdWV1ZSk7Cj4gIAlJTklUX0xJU1RfSEVBRCgm cmluZy0+YnVmZmVycyk7Cj4gKwlzcGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7Cj4g IAlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoZGV2LCAmcmluZy0+YmF0Y2hfcG9vbCk7Cj4gIAlt ZW1zZXQocmluZy0+c2VtYXBob3JlLnN5bmNfc2Vxbm8sIDAsIHNpemVvZihyaW5nLT5zZW1hcGhv cmUuc3luY19zZXFubykpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oCj4gaW5kZXggNThiMTk3Ni4uNDU0NzY0NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMzQ4LDYgKzM0OCw5IEBAIHN0cnVjdCAgaW50ZWxfZW5n aW5lX2NzIHsKPiAgCSAqIHRvIGVuY29kZSB0aGUgY29tbWFuZCBsZW5ndGggaW4gdGhlIGhlYWRl cikuCj4gIAkgKi8KPiAgCXUzMiAoKmdldF9jbWRfbGVuZ3RoX21hc2spKHUzMiBjbWRfaGVhZGVy KTsKPiArCj4gKwl1bnNpZ25lZCBmZW5jZV9jb250ZXh0Owo+ICsJc3BpbmxvY2tfdCBmZW5jZV9s b2NrOwo+ICB9Owo+ICAKPiAgYm9vbCBpbnRlbF9yaW5nX2luaXRpYWxpemVkKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpOwo+IAoKQ2hyaXMgaGFzIGFuIGVxdWl2YWxlbnQgcGF0Y2ggdGhh dCBkb2VzIGEgbGl0dGxlIG1vcmUgKGludGVycnVwdCBkcml2ZW4gd2FpdHMsIGN1c3RvbSBpOTE1 IHdhaXQgZnVuY3Rpb24sIGV0YykuICBDYW4geW91IHJldmlldyB0aGF0IGluc3RlYWQgYXNzdW1p bmcgaXQncyBzdWZmaWNpZW50PwoKaHR0cDovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL35pY2tsZS9s aW51eC0yLjYvY29tbWl0Lz9oPWJyZWFkY3J1bWJzJmlkPWYwNjJlNzA2NzQwZDg3YmVmYjhlN2Nk N2VhMzM3Zjk4ZjBiMjRmNTIKClRoYW5rcywKSmVzc2UKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK