From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v7 1/8] drm/i915: Convert requests to use struct fence Date: Thu, 21 Apr 2016 13:12:11 +0200 Message-ID: <5718B58B.30805@linux.intel.com> References: <1461172195-3959-1-git-send-email-John.C.Harrison@Intel.com> <1461172195-3959-2-git-send-email-John.C.Harrison@Intel.com> <57187BF3.6050304@linux.intel.com> <5718AAEF.20001@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2C9BB6E272 for ; Thu, 21 Apr 2016 11:12:13 +0000 (UTC) In-Reply-To: <5718AAEF.20001@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 Harrison , Intel-GFX@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMjEtMDQtMTYgb20gMTI6MjYgc2NocmVlZiBKb2huIEhhcnJpc29uOgo+IE9uIDIxLzA0LzIw MTYgMDg6MDYsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+PiBPcCAyMC0wNC0xNiBvbSAxOTow OSBzY2hyZWVmIEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb206Cj4+PiBGcm9tOiBKb2huIEhhcnJp c29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Pj4KPj4+IFRoZXJlIGlzIGEgY29uc3Ry dWN0IGluIHRoZSBsaW51eCBrZXJuZWwgY2FsbGVkICdzdHJ1Y3QgZmVuY2UnIHRoYXQgaXMKPj4+ IGludGVuZGVkIHRvIGtlZXAgdHJhY2sgb2Ygd29yayB0aGF0IGlzIGV4ZWN1dGVkIG9uIGhhcmR3 YXJlLiBJLmUuIGl0Cj4+PiBzb2x2ZXMgdGhlIGJhc2ljIHByb2JsZW0gdGhhdCB0aGUgZHJpdmVy cyAnc3RydWN0Cj4+PiBkcm1faTkxNV9nZW1fcmVxdWVzdCcgaXMgdHJ5aW5nIHRvIGFkZHJlc3Mu IFRoZSByZXF1ZXN0IHN0cnVjdHVyZSBkb2VzCj4+PiBxdWl0ZSBhIGxvdCBtb3JlIHRoYW4gc2lt cGx5IHRyYWNrIHRoZSBleGVjdXRpb24gcHJvZ3Jlc3Mgc28gaXMgdmVyeQo+Pj4gZGVmaW5pdGVs eSBzdGlsbCByZXF1aXJlZC4gSG93ZXZlciwgdGhlIGJhc2ljIGNvbXBsZXRpb24gc3RhdHVzIHNp ZGUKPj4+IGNvdWxkIGJlIHVwZGF0ZWQgdG8gdXNlIHRoZSByZWFkeSBtYWRlIGZlbmNlIGltcGxl bWVudGF0aW9uIGFuZCBnYWluCj4+PiBhbGwgdGhlIGFkdmFudGFnZXMgdGhhdCBwcm92aWRlcy4K Pj4+Cj4+PiBUaGlzIHBhdGNoIG1ha2VzIHRoZSBmaXJzdCBzdGVwIG9mIGludGVncmF0aW5nIGEg c3RydWN0IGZlbmNlIGludG8gdGhlCj4+PiByZXF1ZXN0LiBJdCByZXBsYWNlcyB0aGUgZXhwbGlj aXQgcmVmZXJlbmNlIGNvdW50IHdpdGggdGhhdCBvZiB0aGUKPj4+IGZlbmNlLiBJdCBhbHNvIHJl cGxhY2VzIHRoZSAnaXMgY29tcGxldGVkJyB0ZXN0IHdpdGggdGhlIGZlbmNlJ3MKPj4+IGVxdWl2 YWxlbnQuIEN1cnJlbnRseSwgdGhhdCBzaW1wbHkgY2hhaW5zIG9uIHRvIHRoZSBvcmlnaW5hbCBy ZXF1ZXN0Cj4+PiBpbXBsZW1lbnRhdGlvbi4gQSBmdXR1cmUgcGF0Y2ggd2lsbCBpbXByb3ZlIHRo aXMuCj4+Pgo+Pj4gdjM6IFVwZGF0ZWQgYWZ0ZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IFR2cnRrbyBV cnN1bGluLiBBZGRlZCBmZW5jZQo+Pj4gY29udGV4dC9zZXFubyBwYWlyIHRvIHRoZSBkZWJ1Z2Zz IHJlcXVlc3QgaW5mby4gUmVuYW1lZCBmZW5jZSAnZHJpdmVyCj4+PiBuYW1lJyB0byBqdXN0ICdp OTE1Jy4gUmVtb3ZlZCBCVUdfT05zLgo+Pj4KPj4+IHY1OiBDaGFuZ2VkIHNlcW5vIGZvcm1hdCBp biBkZWJ1Z2ZzIHRvICV4IHJhdGhlciB0aGFuICV1IGFzIHRoYXQgaXMKPj4+IGFwcGFyZW50bHkg dGhlIHByZWZlcnJlZCBhcHBlYXJhbmNlLiBMaW5lIHdyYXBwZWQgc29tZSBsb25nIGxpbmVzIHRv Cj4+PiBrZWVwIHRoZSBzdHlsZSBjaGVja2VyIGhhcHB5Lgo+Pj4KPj4+IHY2OiBVcGRhdGVkIHRv IG5ld2VyIG5pZ3RobHkgYW5kIHJlc29sdmVkIGNvbmZsaWN0cy4gVGhlIGJpZ2dlc3QgaXNzdWUK Pj4+IHdhcyB3aXRoIHRoZSByZS13b3JrZWQgYnVzeSBzcGluIHByZWN1cnNvciB0byB3YWl0aW5n IG9uIGEgcmVxdWVzdC4gSW4KPj4+IHBhcnRpY3VsYXIsIHRoZSBhZGRpdGlvbiBvZiBhICdyZXF1 ZXN0X3N0YXJ0ZWQnIGhlbHBlciBmdW5jdGlvbi4gVGhpcwo+Pj4gaGFzIG5vIGNvcnJlc3BvbmRp bmcgY29uY2VwdCB3aXRoaW4gdGhlIGZlbmNlIGZyYW1ld29yay4gSG93ZXZlciwgaXQKPj4+IGlz IG9ubHkgZXZlciB1c2VkIGluIG9uZSBwbGFjZSBhbmQgdGhlIHdob2xlIHBvaW50IG9mIHRoYXQg cGxhY2UgaXMgdG8KPj4+IGFsd2F5cyBkaXJlY3RseSByZWFkIHRoZSBzZXFubyBmb3IgYWJzb2x1 dGVseSBsb3dlc3QgbGF0ZW5jeSBwb3NzaWJsZS4KPj4+IFNvIHRoZSBzaW1wbGUgc29sdXRpb24g aXMgdG8ganVzdCBtYWtlIHRoZSBzZXFubyB0ZXN0IGV4cGxpY2l0IGF0IHRoYXQKPj4+IHBvaW50 IG5vdyByYXRoZXIgdGhhbiBsYXRlciBpbiB0aGUgc2VyaWVzIChpdCB3YXMgcHJldmlvdXNseSBi ZWluZwo+Pj4gZG9uZSBhbnl3YXkgd2hlbiBmZW5jZXMgYmVjb21lIGludGVycnVwdCBkcml2ZW4p Lgo+Pj4KPj4+IHY3OiBSZWJhc2VkIHRvIG5ld2VyIG5pZ2h0bHkgLSBsb3RzIG9mIHJpbmcgLT4g ZW5naW5lIHJlbmFtaW5nIGFuZAo+Pj4gaW50ZXJmYWNlIGNoYW5nZSB0byBnZXRfc2Vxbm8oKS4K Pj4+Cj4+PiBGb3I6IFZJWi01MTkwCj4+PiBTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxK b2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Pj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28u dXJzdWxpbkBpbnRlbC5jb20+Cj4+PiBSZXZpZXdlZC1ieTogSmVzc2UgQmFybmVzIDxqYmFybmVz QHZpcnR1b3VzZ2Vlay5vcmc+Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgICAgIHwgIDUgKystCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgICAgICB8IDUxICsrKysrKysrKystLS0tLS0tLS0tLS0tCj4+PiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAg ICAgfCAgMSArCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8 ICAxICsKPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDMg KysKPj4+ICAgNiBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMo LSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+Pj4gaW5kZXggMmQxMWI0 OS4uNjkxNzUxNSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+Pj4g QEAgLTcwNywxMSArNzA3LDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcmVxdWVzdF9pbmZvKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPj4+ICAgICAgICAgICAgICAgdGFzayA9IE5V TEw7Cj4+PiAgICAgICAgICAgICAgIGlmIChyZXEtPnBpZCkKPj4+ICAgICAgICAgICAgICAgICAg IHRhc2sgPSBwaWRfdGFzayhyZXEtPnBpZCwgUElEVFlQRV9QSUQpOwo+Pj4gLSAgICAgICAgICAg IHNlcV9wcmludGYobSwgIiAgICAleCBAICVkOiAlcyBbJWRdXG4iLAo+Pj4gKyAgICAgICAgICAg IHNlcV9wcmludGYobSwgIiAgICAleCBAICVkOiAlcyBbJWRdLCBmZW5jZSA9ICV4OiV4XG4iLAo+ Pj4gICAgICAgICAgICAgICAgICAgICAgcmVxLT5zZXFubywKPj4+ICAgICAgICAgICAgICAgICAg ICAgIChpbnQpIChqaWZmaWVzIC0gcmVxLT5lbWl0dGVkX2ppZmZpZXMpLAo+Pj4gICAgICAgICAg ICAgICAgICAgICAgdGFzayA/IHRhc2stPmNvbW0gOiAiPHVua25vd24+IiwKPj4+IC0gICAgICAg ICAgICAgICAgICAgdGFzayA/IHRhc2stPnBpZCA6IC0xKTsKPj4+ICsgICAgICAgICAgICAgICAg ICAgdGFzayA/IHRhc2stPnBpZCA6IC0xLAo+Pj4gKyAgICAgICAgICAgICAgICAgICByZXEtPmZl bmNlLmNvbnRleHQsIHJlcS0+ZmVuY2Uuc2Vxbm8pOwo+Pj4gICAgICAgICAgICAgICByY3VfcmVh ZF91bmxvY2soKTsKPj4+ICAgICAgICAgICB9Cj4+PiAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ Pj4gaW5kZXggZDFlNmU1OC4uZTVmNDlmMyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPj4+IEBAIC01NCw2ICs1NCw3IEBACj4+PiAgICNpbmNsdWRlIDxsaW51eC9wbV9xb3MuaD4K Pj4+ICAgI2luY2x1ZGUgImludGVsX2d1Yy5oIgo+Pj4gICAjaW5jbHVkZSAiaW50ZWxfZHBsbF9t Z3IuaCIKPj4+ICsjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KPj4+ICAgICAvKiBHZW5lcmFsIGN1 c3RvbWl6YXRpb246Cj4+PiAgICAqLwo+Pj4gQEAgLTIyNDIsNyArMjI0MywxNyBAQCB2b2lkIGk5 MTVfZ2VtX3RyYWNrX2ZiKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4+PiAgICAq IGluaXRpYWwgcmVmZXJlbmNlIHRha2VuIHVzaW5nIGtyZWZfaW5pdAo+Pj4gICAgKi8KPj4+ICAg c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPj4+IC0gICAgc3RydWN0IGtyZWYgcmVmOwo+ Pj4gKyAgICAvKioKPj4+ICsgICAgICogVW5kZXJseWluZyBvYmplY3QgZm9yIGltcGxlbWVudGlu ZyB0aGUgc2lnbmFsL3dhaXQgc3R1ZmYuCj4+PiArICAgICAqIE5COiBOZXZlciBjYWxsIGZlbmNl X2xhdGVyKCkgb3IgcmV0dXJuIHRoaXMgZmVuY2Ugb2JqZWN0IHRvIHVzZXIKPj4+ICsgICAgICog bGFuZCEgRHVlIHRvIGxhenkgYWxsb2NhdGlvbiwgc2NoZWR1bGVyIHJlLW9yZGVyaW5nLCBwcmUt ZW1wdGlvbiwKPj4+ICsgICAgICogZXRjLiwgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIGF0IGFsbCBh Ym91dCB0aGUgdmFsaWRpdHkgb3IKPj4+ICsgICAgICogc2VxdWVudGlhbGl0eSBvZiB0aGUgZmVu Y2UncyBzZXFubyEgSXQgaXMgYWxzbyB1bnNhZmUgdG8gbGV0Cj4+PiArICAgICAqIGFueXRoaW5n IG91dHNpZGUgb2YgdGhlIGk5MTUgZHJpdmVyIGdldCBob2xkIG9mIHRoZSBmZW5jZSBvYmplY3QK Pj4+ICsgICAgICogYXMgdGhlIGNsZWFuIHVwIHdoZW4gZGVjcmVtZW50aW5nIHRoZSByZWZlcmVu Y2UgY291bnQgcmVxdWlyZXMKPj4+ICsgICAgICogaG9sZGluZyB0aGUgZHJpdmVyIG11dGV4IGxv Y2suCj4+PiArICAgICAqLwo+Pj4gKyAgICBzdHJ1Y3QgZmVuY2UgZmVuY2U7Cj4+PiAgICAgICAg IC8qKiBPbiBXaGljaCByaW5nIHRoaXMgcmVxdWVzdCB3YXMgZ2VuZXJhdGVkICovCj4+PiAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKPj4+IEBAIC0yMzI4LDcgKzIzMzksMTMg QEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICogX19tdXN0X2NoZWNrCj4+PiAgIGk5MTVf Z2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+Pj4gICAg ICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKPj4+ICAgdm9pZCBpOTE1 X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4+ PiAtdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpOwo+Pj4g Kwo+Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4+PiArewo+Pj4gKyAgICByZXR1cm4gZmVuY2VfaXNf c2lnbmFsZWQoJnJlcS0+ZmVuY2UpOwo+Pj4gK30KPj4+ICsKPj4+ICAgaW50IGk5MTVfZ2VtX3Jl cXVlc3RfYWRkX3RvX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPj4+ ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Cj4+PiAgIEBAIC0y MzQ4LDcgKzIzNjUsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqCj4+PiAgIGk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQo+Pj4gICB7Cj4+PiAgICAgICBpZiAocmVxKQo+Pj4gLSAgICAgICAga3Jl Zl9nZXQoJnJlcS0+cmVmKTsKPj4+ICsgICAgICAgIGZlbmNlX2dldCgmcmVxLT5mZW5jZSk7Cj4+ PiAgICAgICByZXR1cm4gcmVxOwo+Pj4gICB9Cj4+PiAgIEBAIC0yMzU2LDcgKzIzNzMsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQKPj4+ICAgaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4+ICAgewo+Pj4gICAgICAgV0FSTl9PTigh bXV0ZXhfaXNfbG9ja2VkKCZyZXEtPmVuZ2luZS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPj4+IC0g ICAga3JlZl9wdXQoJnJlcS0+cmVmLCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUpOwo+Pj4gKyAgICBm ZW5jZV9wdXQoJnJlcS0+ZmVuY2UpOwo+Pj4gICB9Cj4+PiAgICAgc3RhdGljIGlubGluZSB2b2lk Cj4+PiBAQCAtMjM2OCw3ICsyMzg1LDcgQEAgaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZV9f dW5sb2NrZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4+PiAgICAgICAgICAg cmV0dXJuOwo+Pj4gICAgICAgICBkZXYgPSByZXEtPmVuZ2luZS0+ZGV2Owo+Pj4gLSAgICBpZiAo a3JlZl9wdXRfbXV0ZXgoJnJlcS0+cmVmLCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUsICZkZXYtPnN0 cnVjdF9tdXRleCkpCj4+PiArICAgIGlmIChrcmVmX3B1dF9tdXRleCgmcmVxLT5mZW5jZS5yZWZj b3VudCwgZmVuY2VfcmVsZWFzZSwgJmRldi0+c3RydWN0X211dGV4KSkKPj4+ICAgICAgICAgICBt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPj4+ICAgfQo+Pj4gICBAQCAtMjM4NSwx MiArMjQwMiw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipwZHN0LAo+Pj4gICB9Cj4+PiAgICAgLyoKPj4+ IC0gKiBYWFg6IGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkIHNob3VsZCBiZSBoZXJlIGJ1dCBj dXJyZW50bHkgbmVlZHMgdGhlCj4+PiAtICogZGVmaW5pdGlvbiBvZiBpOTE1X3NlcW5vX3Bhc3Nl ZCgpIHdoaWNoIGlzIGJlbG93LiBJdCB3aWxsIGJlIG1vdmVkIGluCj4+PiAtICogYSBsYXRlciBw YXRjaCB3aGVuIHRoZSBjYWxsIHRvIGk5MTVfc2Vxbm9fcGFzc2VkKCkgaXMgb2Jzb2xldGVkLi4u Cj4+PiAtICovCj4+PiAtCj4+PiAtLyoKPj4+ICAgICogQSBjb21tYW5kIHRoYXQgcmVxdWlyZXMg c3BlY2lhbCBoYW5kbGluZyBieSB0aGUgY29tbWFuZCBwYXJzZXIuCj4+PiAgICAqLwo+Pj4gICBz dHJ1Y3QgZHJtX2k5MTVfY21kX2Rlc2NyaXB0b3Igewo+Pj4gQEAgLTMwNTUsMjQgKzMwNjYsNiBA QCBpOTE1X3NlcW5vX3Bhc3NlZCh1aW50MzJfdCBzZXExLCB1aW50MzJfdCBzZXEyKQo+Pj4gICAg ICAgcmV0dXJuIChpbnQzMl90KShzZXExIC0gc2VxMikgPj0gMDsKPj4+ICAgfQo+Pj4gICAtc3Rh dGljIGlubGluZSBib29sIGk5MTVfZ2VtX3JlcXVlc3Rfc3RhcnRlZChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbGF6eV9j b2hlcmVuY3kpCj4+PiAtewo+Pj4gLSAgICBpZiAoIWxhenlfY29oZXJlbmN5ICYmIHJlcS0+ZW5n aW5lLT5pcnFfc2Vxbm9fYmFycmllcikKPj4+IC0gICAgICAgIHJlcS0+ZW5naW5lLT5pcnFfc2Vx bm9fYmFycmllcihyZXEtPmVuZ2luZSk7Cj4+PiAtICAgIHJldHVybiBpOTE1X3NlcW5vX3Bhc3Nl ZChyZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5naW5lKSwKPj4+IC0gICAgICAgICAgICAg ICAgIHJlcS0+cHJldmlvdXNfc2Vxbm8pOwo+Pj4gLX0KPj4+IC0KPj4+IC1zdGF0aWMgaW5saW5l IGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGxhenlfY29oZXJl bmN5KQo+Pj4gLXsKPj4+IC0gICAgaWYgKCFsYXp5X2NvaGVyZW5jeSAmJiByZXEtPmVuZ2luZS0+ aXJxX3NlcW5vX2JhcnJpZXIpCj4+PiAtICAgICAgICByZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2Jh cnJpZXIocmVxLT5lbmdpbmUpOwo+Pj4gLSAgICByZXR1cm4gaTkxNV9zZXFub19wYXNzZWQocmVx LT5lbmdpbmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSksCj4+PiAtICAgICAgICAgICAgICAgICBy ZXEtPnNlcW5vKTsKPj4+IC19Cj4+PiAtCj4+PiAgIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1f Z2V0X3NlcW5vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiAqc2Vxbm8pOwo+Pj4gICBpbnQg X19tdXN0X2NoZWNrIGk5MTVfZ2VtX3NldF9zZXFubyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 MzIgc2Vxbm8pOwo+Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4+IGluZGV4IGViZWYwM2Iu LjFhZGQyOWE5IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u Ywo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4gQEAgLTExODMs NiArMTE4Myw3IEBAIHN0YXRpYyBpbnQgX19pOTE1X3NwaW5fcmVxdWVzdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IHN0YXRlKQo+Pj4gICB7Cj4+PiAgICAgICB1bnNpZ25l ZCBsb25nIHRpbWVvdXQ7Cj4+PiAgICAgICB1bnNpZ25lZCBjcHU7Cj4+PiArICAgIHVpbnQzMl90 IHNlcW5vOwo+Pj4gICAgICAgICAvKiBXaGVuIHdhaXRpbmcgZm9yIGhpZ2ggZnJlcXVlbmN5IHJl cXVlc3RzLCBlLmcuIGR1cmluZyBzeW5jaHJvbm91cwo+Pj4gICAgICAgICogcmVuZGVyaW5nIHNw bGl0IGJldHdlZW4gdGhlIENQVSBhbmQgR1BVLCB0aGUgZmluaXRlIGFtb3VudCBvZiB0aW1lCj4+ PiBAQCAtMTE5OCwxMiArMTE5OSwxNCBAQCBzdGF0aWMgaW50IF9faTkxNV9zcGluX3JlcXVlc3Qo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkKPj4+ICAgICAgICAg ICByZXR1cm4gLUVCVVNZOwo+Pj4gICAgICAgICAvKiBPbmx5IHNwaW4gaWYgd2Uga25vdyB0aGUg R1BVIGlzIHByb2Nlc3NpbmcgdGhpcyByZXF1ZXN0ICovCj4+PiAtICAgIGlmICghaTkxNV9nZW1f cmVxdWVzdF9zdGFydGVkKHJlcSwgdHJ1ZSkpCj4+PiArICAgIHNlcW5vID0gcmVxLT5lbmdpbmUt PmdldF9zZXFubyhyZXEtPmVuZ2luZSk7Cj4+PiArICAgIGlmICghaTkxNV9zZXFub19wYXNzZWQo c2Vxbm8sIHJlcS0+cHJldmlvdXNfc2Vxbm8pKQo+Pj4gICAgICAgICAgIHJldHVybiAtRUFHQUlO Owo+Pj4gICAgICAgICB0aW1lb3V0ID0gbG9jYWxfY2xvY2tfdXMoJmNwdSkgKyA1Owo+Pj4gICAg ICAgd2hpbGUgKCFuZWVkX3Jlc2NoZWQoKSkgewo+Pj4gLSAgICAgICAgaWYgKGk5MTVfZ2VtX3Jl cXVlc3RfY29tcGxldGVkKHJlcSwgdHJ1ZSkpCj4+PiArICAgICAgICBzZXFubyA9IHJlcS0+ZW5n aW5lLT5nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpOwo+Pj4gKyAgICAgICAgaWYgKGk5MTVfc2Vxbm9f cGFzc2VkKHNlcW5vLCByZXEtPnNlcW5vKSkKPj4+ICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+ PiAgICAgICAgICAgICBpZiAoc2lnbmFsX3BlbmRpbmdfc3RhdGUoc3RhdGUsIGN1cnJlbnQpKQo+ Pj4gQEAgLTEyMTUsNyArMTIxOCwxMCBAQCBzdGF0aWMgaW50IF9faTkxNV9zcGluX3JlcXVlc3Qo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkKPj4+ICAgICAgICAg ICBjcHVfcmVsYXhfbG93bGF0ZW5jeSgpOwo+Pj4gICAgICAgfQo+Pj4gICAtICAgIGlmIChpOTE1 X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEsIGZhbHNlKSkKPj4+ICsgICAgaWYgKHJlcS0+ZW5n aW5lLT5pcnFfc2Vxbm9fYmFycmllcikKPj4+ICsgICAgICAgIHJlcS0+ZW5naW5lLT5pcnFfc2Vx bm9fYmFycmllcihyZXEtPmVuZ2luZSk7Cj4+PiArICAgIHNlcW5vID0gcmVxLT5lbmdpbmUtPmdl dF9zZXFubyhyZXEtPmVuZ2luZSk7Cj4+PiArICAgIGlmIChpOTE1X3NlcW5vX3Bhc3NlZChzZXFu bywgcmVxLT5zZXFubykpCj4+PiAgICAgICAgICAgcmV0dXJuIDA7Cj4+PiAgICAgICAgIHJldHVy biAtRUFHQUlOOwo+Pj4gQEAgLTI3MjEsMTIgKzI3MjcsMTQgQEAgc3RhdGljIHZvaWQgaTkxNV9z ZXRfcmVzZXRfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAg ICAgIH0KPj4+ICAgfQo+Pj4gICAtdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGty ZWYgKnJlcV9yZWYpCj4+PiArc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVj dCBmZW5jZSAqcmVxX2ZlbmNlKQo+Pj4gICB7Cj4+PiAtICAgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxID0gY29udGFpbmVyX29mKHJlcV9yZWYsCj4+PiAtICAgICAgICAgICAgICAg ICAgICAgICAgIHR5cGVvZigqcmVxKSwgcmVmKTsKPj4+ICsgICAgc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJfb2YocmVxX2ZlbmNlLAo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPj4+ICAgICAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHggPSByZXEtPmN0eDsKPj4+ICAgKyAgICBXQVJOX09OKCFtdXRleF9pc19s b2NrZWQoJnJlcS0+ZW5naW5lLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+Pj4gKwo+Pj4gICAgICAg aWYgKHJlcS0+ZmlsZV9wcml2KQo+Pj4gICAgICAgICAgIGk5MTVfZ2VtX3JlcXVlc3RfcmVtb3Zl X2Zyb21fY2xpZW50KHJlcSk7Cj4+PiAgCj4+IElzIGttZW1fY2FjaGVfZnJlZSByY3Utc2FmZT8K Pj4KPj4gSSBkb24ndCB0aGluayBpdCBpcywgYW5kIHRoYXQgd291bGQgY2F1c2Ugc29tZSBoYXJk IHRvIGRlYnVnIGlzc3Vlcy4KPj4KPj4gQWRkaW5nIFNMQUJfREVTVFJPWV9CWV9SQ1UgdG8gZmxh Z3Mgd291bGRuJ3QgZG8gd2hhdCB5b3Ugd291bGQgZXhwZWN0IGhlcmUsCj4+IHNvIHlvdXIgYmVz dCBiZXQgd291bGQgYmUgdG8gZG8gYSBjYWxsX3JjdSgmZmVuY2UtPnJjdSwgd3JhcHBlcl9mb3Jf a21lbV9jYWNoZV9mcmVlKTsKPj4KPj4gfk1hYXJ0ZW4KPiBJIGRvbid0IHVuZGVyc3RhbmQgd2hh dCB5b3UgbWVhbj8gQXJlIHlvdSByZWZlcnJpbmcgdG8gdGhlIGttZW1fY2FjaGVfZnJlZSB0aGF0 IGZyZWVzIHRoZSByZXF1ZXN0IG9iamVjdCBhdCB0aGUgZW5kIG9mIHRoZSBhYm92ZSBmdW5jdGlv biAod2hpY2ggeW91IGhhdmUgYWN0dWFsbHkgZGVsZXRlZCBmcm9tIHlvdXIgcmVwbHkpPyBPciBh cmUgeW91IHJlZmVycmluZyB0byBzb21ldGhpbmcgaW5zaWRlIHRoZSBpOTE1X2dlbV9yZXF1ZXN0 X3JlbW92ZV9mcm9tX2NsaWVudCgpIGNhbGwgdGhhdCB5b3VyIGNvbW1lbnRzIHNlZW0gdG8gYmUg aW4gcmVwbHkgdG8/Cj4KPiBJZiB5b3UgbWVhbiB0aGUgZnJlZSBvZiB0aGUgcmVxdWVzdCBpdHNl bGYsIHRoZW4gdGhlIG9ubHkgdXNhZ2Ugb2YgdGhhdCBwYXJ0aWN1bGFyIGttZW1fY2FjaGUgYXJl IHdpdGhpbiB0aGUgZHJpdmVyIG11dGV4IGxvY2suIERvZXMgdGhhdCBub3QgbWFrZSBpdCBzYWZl PyBJZiB5b3UgbWVhbiB0aGUgY2xpZW50IHJlbW92ZSwgdGhlbiB3aGVyZSBpcyB0aGUga21lbV9j YWNoZV9mcmVlIGluIHRoYXQgY2FsbCBwYXRoPwpKdXN0IGJlY2F1c2UgYSBmdW5jdGlvbiBpcyBs b2NrZWQgZG9lc24ndCBtYWtlIGl0IFJDVSBzYWZlLiBUaGUgZmVuY2UgYXBpIGhhcyBmdW5jdGlv biBjYWxsZWQgZmVuY2VfZ2V0X3JjdSBhbmQgaXQgcmVxdWlyZXMgdGhhdCB0aGUgbWVtb3J5IGJh Y2tpbmcgdGhlIGZlbmNlIHNob3VsZCBiZSBmcmVlZCB3aXRoIGtmcmVlX3JjdSwgY2FsbF9yY3Us IG9yIGJ5IGNhbGxpbmcgc3luY2hyb25pemVfcmN1IGJlZm9yZSBmcmVlaW5nLgoKSW4gcGFydGlj dWxhciBrbWVtX2NhY2hlX2ZyZWUgd291bGRuJ3Qgd29yayBhcyBpbnRlbmRlZCwgd2hpY2ggcmVz dWx0cyBpbiBhbm90aGVyIGZlbmNlIHBvc3NpYmx5IHJlLXVzaW5nIHRoZSBtZW1vcnkuCgpOZWVk cyBhIF9fcmN1IGFubm90YXRlZCB2ZXJzaW9uIG9mIGh0dHBzOi8vY2dpdC5mcmVlZGVza3RvcC5v cmcvfmlja2xlL2xpbnV4LTIuNi9jb21taXQvP2g9dGFza2xldCZpZD01OWY2M2NhYWM3NGJiZWE4 MTcyMjVlMTM0ZTUxY2E5N2VjZDA2NTY4Cgp+TWFhcnRlbgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK