From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 07/13] drm/i915: Add per context timelines to fence object Date: Thu, 17 Dec 2015 09:49:27 -0800 Message-ID: <5672F5A7.3010609@virtuousgeek.org> References: <1449839521-21958-1-git-send-email-John.C.Harrison@Intel.com> <1449839521-21958-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 gproxy4-pub.mail.unifiedlayer.com (gproxy4-pub.mail.unifiedlayer.com [69.89.23.142]) by gabe.freedesktop.org (Postfix) with SMTP id 9916F6E9ED for ; Thu, 17 Dec 2015 09:49:43 -0800 (PST) In-Reply-To: <1449839521-21958-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, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMTIvMTEvMjAxNSAwNToxMSBBTSwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToK PiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IAo+IFRo ZSBmZW5jZSBvYmplY3QgdXNlZCBpbnNpZGUgdGhlIHJlcXVlc3Qgc3RydWN0dXJlIHJlcXVpcmVz IGEgc2VxdWVuY2UKPiBudW1iZXIuIEFsdGhvdWdoIHRoaXMgaXMgbm90IHVzZWQgYnkgdGhlIGk5 MTUgZHJpdmVyIGl0c2VsZiwgaXQgY291bGQKPiBwb3RlbnRpYWxseSBiZSB1c2VkIGJ5IG5vbi1p OTE1IGNvZGUgaWYgdGhlIGZlbmNlIGlzIHBhc3NlZCBvdXRzaWRlIG9mCj4gdGhlIGRyaXZlci4g VGhpcyBpcyB0aGUgaW50ZW50aW9uIGFzIGl0IGFsbG93cyBleHRlcm5hbCBrZXJuZWwgZHJpdmVy cwo+IGFuZCB1c2VyIGFwcGxpY2F0aW9ucyB0byB3YWl0IG9uIGJhdGNoIGJ1ZmZlciBjb21wbGV0 aW9uCj4gYXN5bmNocm9ub3VzbHkgdmlhIHRoZSBkbWEtYnVmZiBmZW5jZSBBUEkuCj4gCj4gVG8g ZW5zdXJlIHRoYXQgc3VjaCBleHRlcm5hbCB1c2VycyBhcmUgbm90IGNvbmZ1c2VkIGJ5IHN0cmFu Z2UgdGhpbmdzCj4gaGFwcGVuaW5nIHdpdGggdGhlIHNlcW5vLCB0aGlzIHBhdGNoIGFkZHMgaW4g YSBwZXIgY29udGV4dCB0aW1lbGluZQo+IHRoYXQgY2FuIHByb3ZpZGUgYSBndWFyYW50ZWVkIGlu LW9yZGVyIHNlcW5vIHZhbHVlIGZvciB0aGUgZmVuY2UuIFRoaXMKPiBpcyBzYWZlIGJlY2F1c2Ug dGhlIHNjaGVkdWxlciB3aWxsIG5vdCByZS1vcmRlciBiYXRjaCBidWZmZXJzIHdpdGhpbiBhCj4g Y29udGV4dCAtIHRoZXkgYXJlIGNvbnNpZGVyZWQgdG8gYmUgbXV0dWFsbHkgZGVwZW5kZW50Lgo+ IAo+IHYyOiBOZXcgcGF0Y2ggaW4gc2VyaWVzLgo+IAo+IHYzOiBSZW5hbWVkL3JldHlwZWQgdGlt ZWxpbmUgc3RydWN0dXJlIGZpZWxkcyBhZnRlciByZXZpZXcgY29tbWVudHMgYnkKPiBUdnJ0a28g VXJzdWxpbi4KPiAKPiBBZGRlZCBjb250ZXh0IGluZm9ybWF0aW9uIHRvIHRoZSB0aW1lbGluZSdz IG5hbWUgc3RyaW5nIGZvciBiZXR0ZXIKPiBpZGVudGlmaWNhdGlvbiBpbiBkZWJ1Z2ZzIG91dHB1 dC4KPiAKPiBGb3I6IFZJWi01MTkwCj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9o bi5DLkhhcnJpc29uQEludGVsLmNvbT4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgIHwgMjUgKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgIHwgODAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyB8IDE1ICsrKysrKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgIDggKysrKwo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgMSAtCj4gIDUgZmlsZXMgY2hhbmdlZCwg MTExIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IGNhZjc4OTcuLjdkNmE3YzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtODQxLDYgKzg0MSwxNSBAQCBzdHJ1Y3QgaTkxNV9jdHhfaGFuZ19zdGF0cyB7Cj4g IAlib29sIGJhbm5lZDsKPiAgfTsKPiAgCj4gK3N0cnVjdCBpOTE1X2ZlbmNlX3RpbWVsaW5lIHsK PiArCWNoYXIgICAgICAgIG5hbWVbMzJdOwo+ICsJdW5zaWduZWQgICAgZmVuY2VfY29udGV4dDsK PiArCXVuc2lnbmVkICAgIG5leHQ7Cj4gKwo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eDsK PiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Cj4gK307Cj4gKwo+ICAvKiBUaGlzIG11 c3QgbWF0Y2ggdXAgd2l0aCB0aGUgdmFsdWUgcHJldmlvdXNseSB1c2VkIGZvciBleGVjYnVmMi5y c3ZkMS4gKi8KPiAgI2RlZmluZSBERUZBVUxUX0NPTlRFWFRfSEFORExFIDAKPiAgCj4gQEAgLTg4 NSw2ICs4OTQsNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCB7Cj4gIAkJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKnN0YXRlOwo+ICAJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm Owo+ICAJCWludCBwaW5fY291bnQ7Cj4gKwkJc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgZmVu Y2VfdGltZWxpbmU7Cj4gIAl9IGVuZ2luZVtJOTE1X05VTV9SSU5HU107Cj4gIAo+ICAJc3RydWN0 IGxpc3RfaGVhZCBsaW5rOwo+IEBAIC0yMTc3LDEzICsyMTg3LDEwIEBAIHZvaWQgaTkxNV9nZW1f dHJhY2tfZmIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZCwKPiAgc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0IHsKPiAgCS8qKgo+ICAJICogVW5kZXJseWluZyBvYmplY3QgZm9yIGlt cGxlbWVudGluZyB0aGUgc2lnbmFsL3dhaXQgc3R1ZmYuCj4gLQkgKiBOQjogTmV2ZXIgY2FsbCBm ZW5jZV9sYXRlcigpIG9yIHJldHVybiB0aGlzIGZlbmNlIG9iamVjdCB0byB1c2VyCj4gLQkgKiBs YW5kISBEdWUgdG8gbGF6eSBhbGxvY2F0aW9uLCBzY2hlZHVsZXIgcmUtb3JkZXJpbmcsIHByZS1l bXB0aW9uLAo+IC0JICogZXRjLiwgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIGF0IGFsbCBhYm91dCB0 aGUgdmFsaWRpdHkgb3IKPiAtCSAqIHNlcXVlbnRpYWxpdHkgb2YgdGhlIGZlbmNlJ3Mgc2Vxbm8h IEl0IGlzIGFsc28gdW5zYWZlIHRvIGxldAo+IC0JICogYW55dGhpbmcgb3V0c2lkZSBvZiB0aGUg aTkxNSBkcml2ZXIgZ2V0IGhvbGQgb2YgdGhlIGZlbmNlIG9iamVjdAo+IC0JICogYXMgdGhlIGNs ZWFuIHVwIHdoZW4gZGVjcmVtZW50aW5nIHRoZSByZWZlcmVuY2UgY291bnQgcmVxdWlyZXMKPiAt CSAqIGhvbGRpbmcgdGhlIGRyaXZlciBtdXRleCBsb2NrLgo+ICsJICogTkI6IE5ldmVyIHJldHVy biB0aGlzIGZlbmNlIG9iamVjdCB0byB1c2VyIGxhbmQhIEl0IGlzIHVuc2FmZSB0bwo+ICsJICog bGV0IGFueXRoaW5nIG91dHNpZGUgb2YgdGhlIGk5MTUgZHJpdmVyIGdldCBob2xkIG9mIHRoZSBm ZW5jZQo+ICsJICogb2JqZWN0IGFzIHRoZSBjbGVhbiB1cCB3aGVuIGRlY3JlbWVudGluZyB0aGUg cmVmZXJlbmNlIGNvdW50Cj4gKwkgKiByZXF1aXJlcyBob2xkaW5nIHRoZSBkcml2ZXIgbXV0ZXgg bG9jay4KPiAgCSAqLwo+ICAJc3RydWN0IGZlbmNlIGZlbmNlOwo+ICAKPiBAQCAtMjI2Myw2ICsy MjcwLDEwIEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCj4gIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9vdXQp Owo+ICB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKTsKPiAgCj4gK2ludCBpOTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK PiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICsKPiAgc3RhdGlj IGlubGluZSBib29sIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+ICB7Cj4gIAlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoJnJlcS0+ ZmVuY2UpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDA4MDE3MzguLjdhMzdmYjcg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMjY2NSw5ICsyNjY1LDMyIEBAIHN0 YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3Qg ZmVuY2UgKnJlcV9mZW5jZSkKPiAgCj4gIHN0YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1 ZXN0X2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQo+ICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2Us Cj4gLQkJCQkJCSB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPiAtCXJldHVybiByZXEtPnJpbmctPm5h bWU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiArCXN0cnVjdCBpOTE1 X2ZlbmNlX3RpbWVsaW5lICp0aW1lbGluZTsKPiArCj4gKwlyZXEgPSBjb250YWluZXJfb2YocmVx X2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPiArCXRpbWVsaW5lID0gJnJlcS0+Y3R4LT5l bmdpbmVbcmVxLT5yaW5nLT5pZF0uZmVuY2VfdGltZWxpbmU7Cj4gKwo+ICsJcmV0dXJuIHRpbWVs aW5lLT5uYW1lOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3RpbWVs aW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6 ZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4gKwo+ICsJcmVx ID0gY29udGFpbmVyX29mKHJlcV9mZW5jZSwgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4gKwo+ICsJ LyogTGFzdCBzaWduYWxsZWQgdGltZWxpbmUgdmFsdWUgPz8/ICovCj4gKwlzbnByaW50ZihzdHIs IHNpemUsICI/IFslZF0iLyosIHRpbWVsaW5lLT52YWx1ZSovLCByZXEtPnJpbmctPmdldF9zZXFu byhyZXEtPnJpbmcsIHRydWUpKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVx dWVzdF9mZW5jZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpyZXFfZmVuY2UsIGNoYXIgKnN0ciwg aW50IHNpemUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ICsK PiArCXJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsIHR5cGVvZigqcmVxKSwgZmVuY2UpOwo+ ICsKPiArCXNucHJpbnRmKHN0ciwgc2l6ZSwgIiVkIFslZF0iLCByZXEtPmZlbmNlLnNlcW5vLCBy ZXEtPnNlcW5vKTsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgaTkx NV9nZW1fcmVxdWVzdF9mb3BzID0gewo+IEBAIC0yNjc3LDggKzI3MDAsNDkgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3BzID0gewo+ICAJLnJlbGVh c2UJCT0gaTkxNV9nZW1fcmVxdWVzdF9mcmVlLAo+ICAJLmdldF9kcml2ZXJfbmFtZQk9IGk5MTVf Z2VtX3JlcXVlc3RfZ2V0X2RyaXZlcl9uYW1lLAo+ICAJLmdldF90aW1lbGluZV9uYW1lCT0gaTkx NV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZSwKPiArCS5mZW5jZV92YWx1ZV9zdHIJPSBp OTE1X2dlbV9yZXF1ZXN0X2ZlbmNlX3ZhbHVlX3N0ciwKPiArCS50aW1lbGluZV92YWx1ZV9zdHIJ PSBpOTE1X2dlbV9yZXF1ZXN0X3RpbWVsaW5lX3ZhbHVlX3N0ciwKPiAgfTsKPiAgCj4gK2ludCBp OTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkg ICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpCj4gK3sKPiArCXN0cnVjdCBpOTE1X2ZlbmNlX3RpbWVsaW5lICp0 aW1lbGluZTsKPiArCj4gKwl0aW1lbGluZSA9ICZjdHgtPmVuZ2luZVtyaW5nLT5pZF0uZmVuY2Vf dGltZWxpbmU7Cj4gKwo+ICsJaWYgKHRpbWVsaW5lLT5yaW5nKQo+ICsJCXJldHVybiAwOwo+ICsK PiArCXRpbWVsaW5lLT5mZW5jZV9jb250ZXh0ID0gZmVuY2VfY29udGV4dF9hbGxvYygxKTsKPiAr Cj4gKwkvKgo+ICsJICogU3RhcnQgdGhlIHRpbWVsaW5lIGZyb20gc2Vxbm8gMCBhcyB0aGlzIGlz IGEgc3BlY2lhbCB2YWx1ZQo+ICsJICogdGhhdCBpcyByZXNlcnZlZCBmb3IgaW52YWxpZCBzeW5j IHBvaW50cy4KPiArCSAqLwo+ICsJdGltZWxpbmUtPm5leHQgICAgICAgPSAxOwo+ICsJdGltZWxp bmUtPmN0eCAgICAgICAgPSBjdHg7Cj4gKwl0aW1lbGluZS0+cmluZyAgICAgICA9IHJpbmc7Cj4g Kwo+ICsJc25wcmludGYodGltZWxpbmUtPm5hbWUsIHNpemVvZih0aW1lbGluZS0+bmFtZSksICIl ZD4lczolZCIsIHRpbWVsaW5lLT5mZW5jZV9jb250ZXh0LCByaW5nLT5uYW1lLCBjdHgtPnVzZXJf aGFuZGxlKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHVuc2lnbmVkIGk5 MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oc3RydWN0IGk5MTVfZmVuY2VfdGltZWxp bmUgKnRpbWVsaW5lKQo+ICt7Cj4gKwl1bnNpZ25lZCBzZXFubzsKPiArCj4gKwlzZXFubyA9IHRp bWVsaW5lLT5uZXh0Owo+ICsKPiArCS8qIFJlc2VydmUgemVybyBmb3IgaW52YWxpZCAqLwo+ICsJ aWYgKCsrdGltZWxpbmUtPm5leHQgPT0gMCApCj4gKwkJdGltZWxpbmUtPm5leHQgPSAxOwo+ICsK PiArCXJldHVybiBzZXFubzsKPiArfQo+ICsKPiAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCQkJICAgc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCwKPiAgCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCkK PiBAQCAtMjcxNCw3ICsyNzc4LDkgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCQlnb3RvIGVycjsKPiAgCX0KPiAgCj4gLQlmZW5j ZV9pbml0KCZyZXEtPmZlbmNlLCAmaTkxNV9nZW1fcmVxdWVzdF9mb3BzLCAmcmluZy0+ZmVuY2Vf bG9jaywgcmluZy0+ZmVuY2VfY29udGV4dCwgcmVxLT5zZXFubyk7Cj4gKwlmZW5jZV9pbml0KCZy ZXEtPmZlbmNlLCAmaTkxNV9nZW1fcmVxdWVzdF9mb3BzLCAmcmluZy0+ZmVuY2VfbG9jaywKPiAr CQkgICBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uZmVuY2VfdGltZWxpbmUuZmVuY2VfY29udGV4dCwK PiArCQkgICBpOTE1X2ZlbmNlX3RpbWVsaW5lX2dldF9uZXh0X3NlcW5vKCZjdHgtPmVuZ2luZVty aW5nLT5pZF0uZmVuY2VfdGltZWxpbmUpKTsKPiAgCj4gIAkvKgo+ICAJICogUmVzZXJ2ZSBzcGFj ZSBpbiB0aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWlyZWQgdG8KPiBA QCAtNDc2NSw3ICs0ODMxLDcgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKPiAtCWludCByZXQs IGksIGosIGZlbmNlX2Jhc2U7Cj4gKwlpbnQgcmV0LCBpLCBqOwo+ICAKPiAgCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA8IDYgJiYgIWludGVsX2VuYWJsZV9ndHQoKSkKPiAgCQlyZXR1cm4gLUVJ TzsKPiBAQCAtNDgzNSwxNiArNDkwMSwxMiBAQCBpOTE1X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAtCWZlbmNlX2Jh c2UgPSBmZW5jZV9jb250ZXh0X2FsbG9jKEk5MTVfTlVNX1JJTkdTKTsKPiAtCj4gIAkvKiBOb3cg aXQgaXMgc2FmZSB0byBnbyBiYWNrIHJvdW5kIGFuZCBkbyBldmVyeXRoaW5nIGVsc2U6ICovCj4g IAlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7Cj4gIAkJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXE7Cj4gIAo+ICAJCVdBUk5fT04oIXJpbmctPmRlZmF1bHRfY29udGV4 dCk7Cj4gIAo+IC0JCXJpbmctPmZlbmNlX2NvbnRleHQgPSBmZW5jZV9iYXNlICsgaTsKPiAtCj4g IAkJcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCByaW5nLT5kZWZhdWx0X2NvbnRl eHQsICZyZXEpOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVm ZmVyKGRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4 IDQzYjFjNzMuLjI3OThkZGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCj4gQEAgLTI2Niw3ICsyNjYsNyBAQCBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICB7Cj4gIAljb25zdCBib29sIGlzX2dsb2JhbF9kZWZhdWx0 X2N0eCA9IGZpbGVfcHJpdiA9PSBOVUxMOwo+ICAJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eDsK PiAtCWludCByZXQgPSAwOwo+ICsJaW50IGksIHJldCA9IDA7Cj4gIAo+ICAJQlVHX09OKCFtdXRl eF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7Cj4gIAo+IEBAIC0yNzQsNiArMjc0LDE5 IEBAIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlp ZiAoSVNfRVJSKGN0eCkpCj4gIAkJcmV0dXJuIGN0eDsKPiAgCj4gKwlpZiAoIWk5MTUuZW5hYmxl X2V4ZWNsaXN0cykgewo+ICsJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Cj4gKwo+ICsJ CS8qIENyZWF0ZSBhIHBlciBjb250ZXh0IHRpbWVsaW5lIGZvciBmZW5jZXMgKi8KPiArCQlmb3Jf ZWFjaF9yaW5nKHJpbmcsIHRvX2k5MTUoZGV2KSwgaSkgewo+ICsJCQlyZXQgPSBpOTE1X2NyZWF0 ZV9mZW5jZV90aW1lbGluZShkZXYsIGN0eCwgcmluZyk7Cj4gKwkJCWlmIChyZXQpIHsKPiArCQkJ CURSTV9FUlJPUigiRmVuY2UgdGltZWxpbmUgY3JlYXRpb24gZmFpbGVkIGZvciBsZWdhY3kgJXM6 ICVwXG4iLCByaW5nLT5uYW1lLCBjdHgpOwo+ICsJCQkJZ290byBlcnJfZGVzdHJveTsKPiArCQkJ fQo+ICsJCX0KPiArCX0KPiArCj4gIAlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRfY3R4ICYmIGN0eC0+ bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUpIHsKPiAgCQkvKiBXZSBtYXkgbmVlZCB0byBkbyB0aGlu Z3Mgd2l0aCB0aGUgc2hyaW5rZXIgd2hpY2gKPiAgCQkgKiByZXF1aXJlIHVzIHRvIGltbWVkaWF0 ZWx5IHN3aXRjaCBiYWNrIHRvIHRoZSBkZWZhdWx0Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK PiBpbmRleCBiOGM4ZjliLi4yYjU2NjUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK PiBAQCAtMjQ4OSw2ICsyNDg5LDE0IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2Fs bG9jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gIAkJZ290byBlcnJvcl9yaW5nYnVmOwo+ ICAJfQo+ICAKPiArCS8qIENyZWF0ZSBhIHBlciBjb250ZXh0IHRpbWVsaW5lIGZvciBmZW5jZXMg Ki8KPiArCXJldCA9IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKGRldiwgY3R4LCByaW5nKTsK PiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIkZlbmNlIHRpbWVsaW5lIGNyZWF0aW9uIGZh aWxlZCBmb3IgcmluZyAlcywgY3R4ICVwXG4iLAo+ICsJCQkgIHJpbmctPm5hbWUsIGN0eCk7Cj4g KwkJZ290byBlcnJvcl9yaW5nYnVmOwo+ICsJfQo+ICsKPiAgCWN0eC0+ZW5naW5lW3JpbmctPmlk XS5yaW5nYnVmID0gcmluZ2J1ZjsKPiAgCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZSA9IGN0 eF9vYmo7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRl eCA0NTQ3NjQ1Li4zNTZiNmE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAo+IEBAIC0zNDksNyArMzQ5LDYgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3Mgewo+ ICAJICovCj4gIAl1MzIgKCpnZXRfY21kX2xlbmd0aF9tYXNrKSh1MzIgY21kX2hlYWRlcik7Cj4g IAo+IC0JdW5zaWduZWQgZmVuY2VfY29udGV4dDsKPiAgCXNwaW5sb2NrX3QgZmVuY2VfbG9jazsK PiAgfTsKPiAgCj4gCgpZZWFoIHdlIGRlZmluaXRlbHkgd2FudCB0aGlzLCBidXQgaXQnbGwgaGF2 ZSB0byBiZSByZWNvbmNpbGVkIHdpdGggdGhlIGRpZmZlcmVudCByZXF1ZXN0LT5mZW5jZSBwYXRj aGVzLiAgSSdtIG5vdCBzdXJlIGlmIGl0IHdvdWxkIGJlIGVhc2llciB0byBtb3ZlIHRvIHBlci1j b250ZXh0IHNlcW5vcyBmaXJzdCBvciBnbyB0aGlzIHJvdXRlIGFuZCBkZWFsIHdpdGggdGhlIG1p c21hdGNoIGJldHdlZW4gZ2xvYmFsIGFuZCBwZXItY3R4LgoKSmVzc2UKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK