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: Mon, 4 Jan 2016 09:20:44 -0800 Message-ID: <568AA9EC.500@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> <5672F432.3070900@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-f169.google.com (mail-pf0-f169.google.com [209.85.192.169]) by gabe.freedesktop.org (Postfix) with ESMTPS id C8B938908E for ; Mon, 4 Jan 2016 09:18:11 -0800 (PST) Received: by mail-pf0-f169.google.com with SMTP id q63so169080029pfb.0 for ; Mon, 04 Jan 2016 09:18:11 -0800 (PST) In-Reply-To: <5672F432.3070900@virtuousgeek.org> 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 T24gMTIvMTcvMjAxNSAwOTo0MyBBTSwgSmVzc2UgQmFybmVzIHdyb3RlOgo+IE9uIDEyLzExLzIw MTUgMDU6MTEgQU0sIEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20gd3JvdGU6Cj4+IEZyb206IEpv aG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4+Cj4+IFRoZXJlIGlzIGEg Y29uc3RydWN0IGluIHRoZSBsaW51eCBrZXJuZWwgY2FsbGVkICdzdHJ1Y3QgZmVuY2UnIHRoYXQg aXMKPj4gaW50ZW5kZWQgdG8ga2VlcCB0cmFjayBvZiB3b3JrIHRoYXQgaXMgZXhlY3V0ZWQgb24g aGFyZHdhcmUuIEkuZS4gaXQKPj4gc29sdmVzIHRoZSBiYXNpYyBwcm9ibGVtIHRoYXQgdGhlIGRy aXZlcnMgJ3N0cnVjdAo+PiBkcm1faTkxNV9nZW1fcmVxdWVzdCcgaXMgdHJ5aW5nIHRvIGFkZHJl c3MuIFRoZSByZXF1ZXN0IHN0cnVjdHVyZSBkb2VzCj4+IHF1aXRlIGEgbG90IG1vcmUgdGhhbiBz aW1wbHkgdHJhY2sgdGhlIGV4ZWN1dGlvbiBwcm9ncmVzcyBzbyBpcyB2ZXJ5Cj4+IGRlZmluaXRl bHkgc3RpbGwgcmVxdWlyZWQuIEhvd2V2ZXIsIHRoZSBiYXNpYyBjb21wbGV0aW9uIHN0YXR1cyBz aWRlCj4+IGNvdWxkIGJlIHVwZGF0ZWQgdG8gdXNlIHRoZSByZWFkeSBtYWRlIGZlbmNlIGltcGxl bWVudGF0aW9uIGFuZCBnYWluCj4+IGFsbCB0aGUgYWR2YW50YWdlcyB0aGF0IHByb3ZpZGVzLgo+ Pgo+PiBUaGlzIHBhdGNoIG1ha2VzIHRoZSBmaXJzdCBzdGVwIG9mIGludGVncmF0aW5nIGEgc3Ry dWN0IGZlbmNlIGludG8gdGhlCj4+IHJlcXVlc3QuIEl0IHJlcGxhY2VzIHRoZSBleHBsaWNpdCBy ZWZlcmVuY2UgY291bnQgd2l0aCB0aGF0IG9mIHRoZQo+PiBmZW5jZS4gSXQgYWxzbyByZXBsYWNl cyB0aGUgJ2lzIGNvbXBsZXRlZCcgdGVzdCB3aXRoIHRoZSBmZW5jZSdzCj4+IGVxdWl2YWxlbnQu IEN1cnJlbnRseSwgdGhhdCBzaW1wbHkgY2hhaW5zIG9uIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0 Cj4+IGltcGxlbWVudGF0aW9uLiBBIGZ1dHVyZSBwYXRjaCB3aWxsIGltcHJvdmUgdGhpcy4KPj4K Pj4gdjM6IFVwZGF0ZWQgYWZ0ZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IFR2cnRrbyBVcnN1bGluLiBB ZGRlZCBmZW5jZQo+PiBjb250ZXh0L3NlcW5vIHBhaXIgdG8gdGhlIGRlYnVnZnMgcmVxdWVzdCBp bmZvLiBSZW5hbWVkIGZlbmNlICdkcml2ZXIKPj4gbmFtZScgdG8ganVzdCAnaTkxNScuIFJlbW92 ZWQgQlVHX09Ocy4KPj4KPj4gRm9yOiBWSVotNTE5MAo+PiBTaWduZWQtb2ZmLWJ5OiBKb2huIEhh cnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+PiBDYzogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyAgICAgfCAgNSArLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICAgICB8IDQ1ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA1NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAg ICAgICB8ICAxICsKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8 ICAxICsKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAzICsr Cj4+ICA2IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQo+ Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+PiBpbmRleCA3NDE1NjA2Li41YjMx MTg2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+PiBAQCAtNzA5LDEx ICs3MDksMTIgQEAgc3RhdGljIGludCBpOTE1X2dlbV9yZXF1ZXN0X2luZm8oc3RydWN0IHNlcV9m aWxlICptLCB2b2lkICpkYXRhKQo+PiAgCQkJdGFzayA9IE5VTEw7Cj4+ICAJCQlpZiAocmVxLT5w aWQpCj4+ICAJCQkJdGFzayA9IHBpZF90YXNrKHJlcS0+cGlkLCBQSURUWVBFX1BJRCk7Cj4+IC0J CQlzZXFfcHJpbnRmKG0sICIgICAgJXggQCAlZDogJXMgWyVkXVxuIiwKPj4gKwkJCXNlcV9wcmlu dGYobSwgIiAgICAleCBAICVkOiAlcyBbJWRdLCBmZW5jZSA9ICV1LiV1XG4iLAo+PiAgCQkJCSAg IHJlcS0+c2Vxbm8sCj4+ICAJCQkJICAgKGludCkgKGppZmZpZXMgLSByZXEtPmVtaXR0ZWRfamlm ZmllcyksCj4+ICAJCQkJICAgdGFzayA/IHRhc2stPmNvbW0gOiAiPHVua25vd24+IiwKPj4gLQkJ CQkgICB0YXNrID8gdGFzay0+cGlkIDogLTEpOwo+PiArCQkJCSAgIHRhc2sgPyB0YXNrLT5waWQg OiAtMSwKPj4gKwkJCQkgICByZXEtPmZlbmNlLmNvbnRleHQsIHJlcS0+ZmVuY2Uuc2Vxbm8pOwo+ PiAgCQkJcmN1X3JlYWRfdW5sb2NrKCk7Cj4+ICAJCX0KPj4gIAo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPj4gaW5kZXggNDM2MTQ5ZS4uYWE1Y2JhNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4+IEBAIC01MSw2ICs1MSw3IEBACj4+ICAjaW5jbHVkZSA8bGludXgva3JlZi5oPgo+ PiAgI2luY2x1ZGUgPGxpbnV4L3BtX3Fvcy5oPgo+PiAgI2luY2x1ZGUgImludGVsX2d1Yy5oIgo+ PiArI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+Cj4+ICAKPj4gIC8qIEdlbmVyYWwgY3VzdG9taXph dGlvbjoKPj4gICAqLwo+PiBAQCAtMjE3NCw3ICsyMTc1LDE3IEBAIHZvaWQgaTkxNV9nZW1fdHJh Y2tfZmIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZCwKPj4gICAqIGluaXRpYWwgcmVm ZXJlbmNlIHRha2VuIHVzaW5nIGtyZWZfaW5pdAo+PiAgICovCj4+ICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3Qgewo+PiAtCXN0cnVjdCBrcmVmIHJlZjsKPj4gKwkvKioKPj4gKwkgKiBVbmRl cmx5aW5nIG9iamVjdCBmb3IgaW1wbGVtZW50aW5nIHRoZSBzaWduYWwvd2FpdCBzdHVmZi4KPj4g KwkgKiBOQjogTmV2ZXIgY2FsbCBmZW5jZV9sYXRlcigpIG9yIHJldHVybiB0aGlzIGZlbmNlIG9i amVjdCB0byB1c2VyCj4+ICsJICogbGFuZCEgRHVlIHRvIGxhenkgYWxsb2NhdGlvbiwgc2NoZWR1 bGVyIHJlLW9yZGVyaW5nLCBwcmUtZW1wdGlvbiwKPj4gKwkgKiBldGMuLCB0aGVyZSBpcyBubyBn dWFyYW50ZWUgYXQgYWxsIGFib3V0IHRoZSB2YWxpZGl0eSBvcgo+PiArCSAqIHNlcXVlbnRpYWxp dHkgb2YgdGhlIGZlbmNlJ3Mgc2Vxbm8hIEl0IGlzIGFsc28gdW5zYWZlIHRvIGxldAo+PiArCSAq IGFueXRoaW5nIG91dHNpZGUgb2YgdGhlIGk5MTUgZHJpdmVyIGdldCBob2xkIG9mIHRoZSBmZW5j ZSBvYmplY3QKPj4gKwkgKiBhcyB0aGUgY2xlYW4gdXAgd2hlbiBkZWNyZW1lbnRpbmcgdGhlIHJl ZmVyZW5jZSBjb3VudCByZXF1aXJlcwo+PiArCSAqIGhvbGRpbmcgdGhlIGRyaXZlciBtdXRleCBs b2NrLgo+PiArCSAqLwo+PiArCXN0cnVjdCBmZW5jZSBmZW5jZTsKPj4gIAo+PiAgCS8qKiBPbiBX aGljaCByaW5nIHRoaXMgcmVxdWVzdCB3YXMgZ2VuZXJhdGVkICovCj4+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTU7Cj4+IEBAIC0yMjUxLDcgKzIyNjIsMTMgQEAgaW50IGk5MTVfZ2Vt X3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4gIAkJCSAgIHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4+ICAJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKipyZXFfb3V0KTsKPj4gIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+PiAtdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Zy ZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpOwo+PiArCj4+ICtzdGF0aWMgaW5saW5lIGJvb2wgaTkx NV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs Cj4+ICsJCQkJCSAgICAgIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4+ICt7Cj4+ICsJcmV0dXJuIGZl bmNlX2lzX3NpZ25hbGVkKCZyZXEtPmZlbmNlKTsKPj4gK30KPj4gKwo+PiAgaW50IGk5MTVfZ2Vt X3JlcXVlc3RfYWRkX3RvX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK Pj4gIAkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwo+PiAgCj4+IEBAIC0yMjcxLDcgKzIy ODgsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCj4+ICBp OTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSkKPj4gIHsKPj4gIAlpZiAocmVxKQo+PiAtCQlrcmVmX2dldCgmcmVxLT5yZWYpOwo+PiArCQlm ZW5jZV9nZXQoJnJlcS0+ZmVuY2UpOwo+PiAgCXJldHVybiByZXE7Cj4+ICB9Cj4+ICAKPj4gQEAg LTIyNzksNyArMjI5Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZAo+PiAgaTkxNV9nZW1fcmVxdWVz dF91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4gIHsKPj4g IAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJlcS0+cmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKPj4gLQlrcmVmX3B1dCgmcmVxLT5yZWYsIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZSk7Cj4+ICsJ ZmVuY2VfcHV0KCZyZXEtPmZlbmNlKTsKPj4gIH0KPj4gIAo+PiAgc3RhdGljIGlubGluZSB2b2lk Cj4+IEBAIC0yMjkxLDcgKzIzMDgsNyBAQCBpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlX191 bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4gIAkJcmV0dXJuOwo+ PiAgCj4+ICAJZGV2ID0gcmVxLT5yaW5nLT5kZXY7Cj4+IC0JaWYgKGtyZWZfcHV0X211dGV4KCZy ZXEtPnJlZiwgaTkxNV9nZW1fcmVxdWVzdF9mcmVlLCAmZGV2LT5zdHJ1Y3RfbXV0ZXgpKQo+PiAr CWlmIChrcmVmX3B1dF9tdXRleCgmcmVxLT5mZW5jZS5yZWZjb3VudCwgZmVuY2VfcmVsZWFzZSwg JmRldi0+c3RydWN0X211dGV4KSkKPj4gIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7Cj4+ICB9Cj4+ICAKPj4gQEAgLTIzMDgsMTIgKzIzMjUsNiBAQCBzdGF0aWMgaW5saW5lIHZv aWQgaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoq cGRzdCwKPj4gIH0KPj4gIAo+PiAgLyoKPj4gLSAqIFhYWDogaTkxNV9nZW1fcmVxdWVzdF9jb21w bGV0ZWQgc2hvdWxkIGJlIGhlcmUgYnV0IGN1cnJlbnRseSBuZWVkcyB0aGUKPj4gLSAqIGRlZmlu aXRpb24gb2YgaTkxNV9zZXFub19wYXNzZWQoKSB3aGljaCBpcyBiZWxvdy4gSXQgd2lsbCBiZSBt b3ZlZCBpbgo+PiAtICogYSBsYXRlciBwYXRjaCB3aGVuIHRoZSBjYWxsIHRvIGk5MTVfc2Vxbm9f cGFzc2VkKCkgaXMgb2Jzb2xldGVkLi4uCj4+IC0gKi8KPj4gLQo+PiAtLyoKPj4gICAqIEEgY29t bWFuZCB0aGF0IHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcgYnkgdGhlIGNvbW1hbmQgcGFyc2Vy Lgo+PiAgICovCj4+ICBzdHJ1Y3QgZHJtX2k5MTVfY21kX2Rlc2NyaXB0b3Igewo+PiBAQCAtMjkx NiwxOCArMjkyNyw2IEBAIGk5MTVfc2Vxbm9fcGFzc2VkKHVpbnQzMl90IHNlcTEsIHVpbnQzMl90 IHNlcTIpCj4+ICAJcmV0dXJuIChpbnQzMl90KShzZXExIC0gc2VxMikgPj0gMDsKPj4gIH0KPj4g IAo+PiAtc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+PiAtCQkJCQkgICAgICBib29sIGxhenlfY29o ZXJlbmN5KQo+PiAtewo+PiAtCXUzMiBzZXFubzsKPj4gLQo+PiAtCUJVR19PTihyZXEgPT0gTlVM TCk7Cj4+IC0KPj4gLQlzZXFubyA9IHJlcS0+cmluZy0+Z2V0X3NlcW5vKHJlcS0+cmluZywgbGF6 eV9jb2hlcmVuY3kpOwo+PiAtCj4+IC0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCBy ZXEtPnNlcW5vKTsKPj4gLX0KPj4gLQo+PiAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9nZXRf c2Vxbm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyICpzZXFubyk7Cj4+ICBpbnQgX19tdXN0 X2NoZWNrIGk5MTVfZ2VtX3NldF9zZXFubyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2Vx bm8pOwo+PiAgCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiBpbmRleCBlNDA1NmEzLi5hMWI0 ZGJkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gQEAgLTI2MTcsMTIgKzI2MTcs MTQgQEAgc3RhdGljIHZvaWQgaTkxNV9zZXRfcmVzZXRfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPj4gIAl9Cj4+ICB9Cj4+ICAKPj4gLXZvaWQgaTkxNV9nZW1fcmVx dWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+PiArc3RhdGljIHZvaWQgaTkxNV9nZW1f cmVxdWVzdF9mcmVlKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQo+PiAgewo+PiAtCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gY29udGFpbmVyX29mKHJlcV9yZWYsCj4+IC0JCQkJ CQkgdHlwZW9mKCpyZXEpLCByZWYpOwo+PiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxID0gY29udGFpbmVyX29mKHJlcV9mZW5jZSwKPj4gKwkJCQkJCSB0eXBlb2YoKnJlcSksIGZl bmNlKTsKPj4gIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7Cj4+ICAKPj4g KwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJlcS0+cmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKPj4gKwo+PiAgCWlmIChyZXEtPmZpbGVfcHJpdikKPj4gIAkJaTkxNV9nZW1fcmVxdWVzdF9y ZW1vdmVfZnJvbV9jbGllbnQocmVxKTsKPj4gIAo+PiBAQCAtMjYzOCw2ICsyNjQwLDQ1IEBAIHZv aWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+PiAgCWttZW1f Y2FjaGVfZnJlZShyZXEtPmk5MTUtPnJlcXVlc3RzLCByZXEpOwo+PiAgfQo+PiAgCj4+ICtzdGF0 aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpy ZXFfZmVuY2UpCj4+ICt7Cj4+ICsJLyogSW50ZXJydXB0IGRyaXZlbiBmZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZCB5ZXQuKi8KPj4gKwlXQVJOKHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2Fs bGVkISIpOwo+PiArCXJldHVybiB0cnVlOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgYm9vbCBpOTE1 X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPj4gK3sK Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFf ZmVuY2UsCj4+ICsJCQkJCQkgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4+ICsJdTMyIHNlcW5vOwo+ PiArCj4+ICsJc2Vxbm8gPSByZXEtPnJpbmctPmdldF9zZXFubyhyZXEtPnJpbmcsIGZhbHNlLyps YXp5X2NvaGVyZW5jeSovKTsKPj4gKwo+PiArCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChzZXFu bywgcmVxLT5zZXFubyk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2dl bV9yZXF1ZXN0X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPj4gK3sK Pj4gKwlyZXR1cm4gImk5MTUiOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3QgY2hhciAqaTkx NV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkK Pj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9v ZihyZXFfZmVuY2UsCj4+ICsJCQkJCQkgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4+ICsJcmV0dXJu IHJlcS0+cmluZy0+bmFtZTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5j ZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3BzID0gewo+PiArCS5lbmFibGVfc2lnbmFsaW5nCT0g aTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfc2lnbmFsaW5nLAo+PiArCS5zaWduYWxlZAkJPSBpOTE1 X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZCwKPj4gKwkud2FpdAkJCT0gZmVuY2VfZGVmYXVsdF93 YWl0LAo+PiArCS5yZWxlYXNlCQk9IGk5MTVfZ2VtX3JlcXVlc3RfZnJlZSwKPj4gKwkuZ2V0X2Ry aXZlcl9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJpdmVyX25hbWUsCj4+ICsJLmdldF90 aW1lbGluZV9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZSwKPj4gK307 Cj4+ICsKPj4gIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCj4+ICAJCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+PiAgCQkJICAg c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCkKPj4gQEAgLTI2NTksNyArMjcw MCw2IEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCj4+ICAJaWYgKHJldCkKPj4gIAkJZ290byBlcnI7Cj4+ICAKPj4gLQlrcmVmX2luaXQo JnJlcS0+cmVmKTsKPj4gIAlyZXEtPmk5MTUgPSBkZXZfcHJpdjsKPj4gIAlyZXEtPnJpbmcgPSBy aW5nOwo+PiAgCXJlcS0+Y3R4ICA9IGN0eDsKPj4gQEAgLTI2NzQsNiArMjcxNCw4IEBAIGludCBp OTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4+ICAJ CWdvdG8gZXJyOwo+PiAgCX0KPj4gIAo+PiArCWZlbmNlX2luaXQoJnJlcS0+ZmVuY2UsICZpOTE1 X2dlbV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLCByaW5nLT5mZW5jZV9jb250ZXh0 LCByZXEtPnNlcW5vKTsKPj4gKwo+PiAgCS8qCj4+ICAJICogUmVzZXJ2ZSBzcGFjZSBpbiB0aGUg cmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWlyZWQgdG8KPj4gIAkgKiBldmVu dHVhbGx5IGVtaXQgdGhpcyByZXF1ZXN0LiBUaGlzIGlzIHRvIGd1YXJhbnRlZSB0aGF0IHRoZQo+ PiBAQCAtNDcyMyw3ICs0NzY1LDcgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+PiAgewo+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKPj4gLQlp bnQgcmV0LCBpLCBqOwo+PiArCWludCByZXQsIGksIGosIGZlbmNlX2Jhc2U7Cj4+ICAKPj4gIAlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA2ICYmICFpbnRlbF9lbmFibGVfZ3R0KCkpCj4+ICAJ CXJldHVybiAtRUlPOwo+PiBAQCAtNDc5MywxMiArNDgzNSwxNiBAQCBpOTE1X2dlbV9pbml0X2h3 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJaWYgKHJldCkKPj4gIAkJZ290byBvdXQ7Cj4+ ICAKPj4gKwlmZW5jZV9iYXNlID0gZmVuY2VfY29udGV4dF9hbGxvYyhJOTE1X05VTV9SSU5HUyk7 Cj4+ICsKPj4gIAkvKiBOb3cgaXQgaXMgc2FmZSB0byBnbyBiYWNrIHJvdW5kIGFuZCBkbyBldmVy eXRoaW5nIGVsc2U6ICovCj4+ICAJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+ PiAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPj4gIAo+PiAgCQlXQVJOX09O KCFyaW5nLT5kZWZhdWx0X2NvbnRleHQpOwo+PiAgCj4+ICsJCXJpbmctPmZlbmNlX2NvbnRleHQg PSBmZW5jZV9iYXNlICsgaTsKPj4gKwo+PiAgCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9j KHJpbmcsIHJpbmctPmRlZmF1bHRfY29udGV4dCwgJnJlcSk7Cj4+ICAJCWlmIChyZXQpIHsKPj4g IAkJCWk5MTVfZ2VtX2NsZWFudXBfcmluZ2J1ZmZlcihkZXYpOwo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+PiBpbmRleCAwNjE4MGRjLi5iOGM4ZjliIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+PiBAQCAtMTkyMCw2ICsxOTIwLDcgQEAgc3RhdGljIGludCBsb2dpY2FsX3Jp bmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW4KPj4gIAlyaW5nLT5kZXYgPSBkZXY7Cj4+ICAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmFjdGl2 ZV9saXN0KTsKPj4gIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+cmVxdWVzdF9saXN0KTsKPj4gKwlz cGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7Cj4+ICAJaTkxNV9nZW1fYmF0Y2hfcG9v bF9pbml0KGRldiwgJnJpbmctPmJhdGNoX3Bvb2wpOwo+PiAgCWluaXRfd2FpdHF1ZXVlX2hlYWQo JnJpbmctPmlycV9xdWV1ZSk7Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYwo+PiBpbmRleCBjOWIwODFmLi5mNGE2NDAzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4+IEBAIC0yMTU4LDYgKzIxNTgsNyBAQCBzdGF0aWMg aW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAlJ TklUX0xJU1RfSEVBRCgmcmluZy0+cmVxdWVzdF9saXN0KTsKPj4gIAlJTklUX0xJU1RfSEVBRCgm cmluZy0+ZXhlY2xpc3RfcXVldWUpOwo+PiAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5idWZmZXJz KTsKPj4gKwlzcGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7Cj4+ICAJaTkxNV9nZW1f YmF0Y2hfcG9vbF9pbml0KGRldiwgJnJpbmctPmJhdGNoX3Bvb2wpOwo+PiAgCW1lbXNldChyaW5n LT5zZW1hcGhvcmUuc3luY19zZXFubywgMCwgc2l6ZW9mKHJpbmctPnNlbWFwaG9yZS5zeW5jX3Nl cW5vKSk7Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+PiBp bmRleCA1OGIxOTc2Li40NTQ3NjQ1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oCj4+IEBAIC0zNDgsNiArMzQ4LDkgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVf Y3Mgewo+PiAgCSAqIHRvIGVuY29kZSB0aGUgY29tbWFuZCBsZW5ndGggaW4gdGhlIGhlYWRlciku Cj4+ICAJICovCj4+ICAJdTMyICgqZ2V0X2NtZF9sZW5ndGhfbWFzaykodTMyIGNtZF9oZWFkZXIp Owo+PiArCj4+ICsJdW5zaWduZWQgZmVuY2VfY29udGV4dDsKPj4gKwlzcGlubG9ja190IGZlbmNl X2xvY2s7Cj4+ICB9Owo+PiAgCj4+ICBib29sIGludGVsX3JpbmdfaW5pdGlhbGl6ZWQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4+Cj4gCj4gQ2hyaXMgaGFzIGFuIGVxdWl2YWxlbnQg cGF0Y2ggdGhhdCBkb2VzIGEgbGl0dGxlIG1vcmUgKGludGVycnVwdCBkcml2ZW4gd2FpdHMsIGN1 c3RvbSBpOTE1IHdhaXQgZnVuY3Rpb24sIGV0YykuICBDYW4geW91IHJldmlldyB0aGF0IGluc3Rl YWQgYXNzdW1pbmcgaXQncyBzdWZmaWNpZW50Pwo+IAo+IGh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9w Lm9yZy9+aWNrbGUvbGludXgtMi42L2NvbW1pdC8/aD1icmVhZGNydW1icyZpZD1mMDYyZTcwNjc0 MGQ4N2JlZmI4ZTdjZDdlYTMzN2Y5OGYwYjI0ZjUyCgpPayBnaXZlbiB0aGF0IENocmlzJ3Mgc3R1 ZmYgaXMgbW9yZSBhbWJpdGlvdXMsIGFuZCB0aGlzIGhhcyBhbHJlYWR5IGJlZW4Kb3V0IHRoZXJl IGEgbG9uZyB0aW1lIGFuZCBzZWVuIGEgbG90IG9mIHJldmlldywgSSB0aGluayB3ZSBzaG91bGQg Z28KYWhlYWQgd2l0aCB0aGlzIHZlcnNpb24gZmlyc3QsIGFuZCB0aGVuIHJlYmFzZSBDaHJpcydz IHN0dWZmIG9uIHRvcC4KClNvIHRoaXMgb25lIGhhcyBteSBhY2suCgpKZXNzZQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK