From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [RFC 3/9] drm/i915: Convert requests to use struct fence Date: Tue, 28 Jul 2015 11:01:13 +0100 Message-ID: <55B752E9.7000106@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> <20150721070529.GP16722@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id C68746E0E3 for ; Tue, 28 Jul 2015 03:01:15 -0700 (PDT) In-Reply-To: <20150721070529.GP16722@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMjEvMDcvMjAxNSAwODowNSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBGcmksIEp1bCAx NywgMjAxNSBhdCAwMzozMToxN1BNICswMTAwLCBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tIHdy b3RlOgo+PiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+ Pgo+PiBUaGVyZSBpcyBhIGNvbnN0cnVjdCBpbiB0aGUgbGludXgga2VybmVsIGNhbGxlZCAnc3Ry dWN0IGZlbmNlJyB0aGF0IGlzIGludGVuZGVkCj4+IHRvIGtlZXAgdHJhY2sgb2Ygd29yayB0aGF0 IGlzIGV4ZWN1dGVkIG9uIGhhcmR3YXJlLiBJLmUuIGl0IHNvbHZlcyB0aGUgYmFzaWMKPj4gcHJv YmxlbSB0aGF0IHRoZSBkcml2ZXJzICdzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QnIGlzIHRy eWluZyB0byBhZGRyZXNzLiBUaGUKPj4gcmVxdWVzdCBzdHJ1Y3R1cmUgZG9lcyBxdWl0ZSBhIGxv dCBtb3JlIHRoYW4gc2ltcGx5IHRyYWNrIHRoZSBleGVjdXRpb24gcHJvZ3Jlc3MKPj4gc28gaXMg dmVyeSBkZWZpbml0ZWx5IHN0aWxsIHJlcXVpcmVkLiBIb3dldmVyLCB0aGUgYmFzaWMgY29tcGxl dGlvbiBzdGF0dXMgc2lkZQo+PiBjb3VsZCBiZSB1cGRhdGVkIHRvIHVzZSB0aGUgcmVhZHkgbWFk ZSBmZW5jZSBpbXBsZW1lbnRhdGlvbiBhbmQgZ2FpbiBhbGwgdGhlCj4+IGFkdmFudGFnZXMgdGhh dCBwcm92aWRlcy4KPj4KPj4gVGhpcyBwYXRjaCBtYWtlcyB0aGUgZmlyc3Qgc3RlcCBvZiBpbnRl Z3JhdGluZyBhIHN0cnVjdCBmZW5jZSBpbnRvIHRoZSByZXF1ZXN0Lgo+PiBJdCByZXBsYWNlcyB0 aGUgZXhwbGljaXQgcmVmZXJlbmNlIGNvdW50IHdpdGggdGhhdCBvZiB0aGUgZmVuY2UuIEl0IGFs c28KPj4gcmVwbGFjZXMgdGhlICdpcyBjb21wbGV0ZWQnIHRlc3Qgd2l0aCB0aGUgZmVuY2UncyBl cXVpdmFsZW50LiBDdXJyZW50bHksIHRoYXQKPj4gc2ltcGx5IGNoYWlucyBvbiB0byB0aGUgb3Jp Z2luYWwgcmVxdWVzdCBpbXBsZW1lbnRhdGlvbi4gQSBmdXR1cmUgcGF0Y2ggd2lsbAo+PiBpbXBy b3ZlIHRoaXMuCj4+Cj4+IEZvcjogVklaLTUxOTAKPj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJy aXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgNDUgKysrKysrKysrKysrKy0tLS0tLS0tLS0t LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8IDU4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jICAgICAgICB8ICAxICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgfCAgMSArCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIHwgIDMgKysKPj4gICA1IGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDI4 IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggY2Y2NzYx Yy4uNzlkMzQ2YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC01MCw2ICs1 MCw3IEBACj4+ICAgI2luY2x1ZGUgPGxpbnV4L2ludGVsLWlvbW11Lmg+Cj4+ICAgI2luY2x1ZGUg PGxpbnV4L2tyZWYuaD4KPj4gICAjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+Cj4+ICsjaW5jbHVk ZSA8bGludXgvZmVuY2UuaD4KPj4gICAKPj4gICAvKiBHZW5lcmFsIGN1c3RvbWl6YXRpb246Cj4+ ICAgICovCj4+IEBAIC0yMTUwLDcgKzIxNTEsMTcgQEAgdm9pZCBpOTE1X2dlbV90cmFja19mYihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkLAo+PiAgICAqIGluaXRpYWwgcmVmZXJlbmNl IHRha2VuIHVzaW5nIGtyZWZfaW5pdAo+PiAgICAqLwo+PiAgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCB7Cj4+IC0Jc3RydWN0IGtyZWYgcmVmOwo+PiArCS8qKgo+PiArCSAqIFVuZGVybHlp bmcgb2JqZWN0IGZvciBpbXBsZW1lbnRpbmcgdGhlIHNpZ25hbC93YWl0IHN0dWZmLgo+PiArCSAq IE5COiBOZXZlciBjYWxsIGZlbmNlX2xhdGVyKCkgb3IgcmV0dXJuIHRoaXMgZmVuY2Ugb2JqZWN0 IHRvIHVzZXIKPj4gKwkgKiBsYW5kISBEdWUgdG8gbGF6eSBhbGxvY2F0aW9uLCBzY2hlZHVsZXIg cmUtb3JkZXJpbmcsIHByZS1lbXB0aW9uLAo+PiArCSAqIGV0Yy4sIHRoZXJlIGlzIG5vIGd1YXJh bnRlZSBhdCBhbGwgYWJvdXQgdGhlIHZhbGlkaXR5IG9yCj4+ICsJICogc2VxdWVudGlhbGl0eSBv ZiB0aGUgZmVuY2UncyBzZXFubyEgSXQgaXMgYWxzbyB1bnNhZmUgdG8gbGV0Cj4+ICsJICogYW55 dGhpbmcgb3V0c2lkZSBvZiB0aGUgaTkxNSBkcml2ZXIgZ2V0IGhvbGQgb2YgdGhlIGZlbmNlIG9i amVjdAo+PiArCSAqIGFzIHRoZSBjbGVhbiB1cCB3aGVuIGRlY3JlbWVudGluZyB0aGUgcmVmZXJl bmNlIGNvdW50IHJlcXVpcmVzCj4+ICsJICogaG9sZGluZyB0aGUgZHJpdmVyIG11dGV4IGxvY2su Cj4+ICsJICovCj4gVGhpcyBjb21tZW50IGlzIG91dGRhdGVkLgpOb3QgYXQgdGhpcyBwb2ludCBp biB0aGUgcGF0Y2ggc2VyaWVzLiBVbnRpbCB0aGUgJ2RlbGF5IGZyZWVpbmcgb2YgCnJlcXVlc3Rz JyBwYXRjaCBpdCBpcyB2ZXJ5IGRlZmluaXRlbHkgdW5zYWZlIHRvIGFsbG93IGV4dGVybmFsIHJl ZmVyZW5jZSAKY291bnRpbmcgb2YgdGhlIGZlbmNlIG9iamVjdCBhcyBkZWNyZW1lbnRpbmcgdGhl IGNvdW50IG11c3Qgb25seSBiZSBkb25lIAp3aXRoIHRoZSBtdXRleCBsb2NrIGhlbGQuIExpa2V3 aXNlLCB3aXRob3V0IHRoZSBwZXIgY29udGV4dCBwZXIgcmluZyAKdGltZWxpbmUsIHRoZSBzZXFu byB2YWx1ZSB3b3VsZCB1bnNhZmUgaWYgYW55IHNjaGVkdWxpbmcgY29kZSB3YXMgYWRkZWQuIApU aGUgY29tbWVudCBpcyB3cml0dGVuIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2Ygd2hhdCBoYXBw ZW5zIGlmIHRoaXMgCnBhdGNoIGlzIHRha2VuIGFzIGEgc3RhbmQgYWxvbmUgcGF0Y2ggd2l0aG91 dCB0aGUgcmVzdCBvZiB0aGUgc2VyaWVzIApmb2xsb3dpbmcgYW5kIGRlc2NyaWJlcyB0aGUgc3Rh dGUgb2YgdGhlIGRyaXZlciBhdCB0aGF0IG1vbWVudCBpbiB0aW1lLgoKPiBBbHNvIEknbSBsZWFu aW5nIHRvd2FyZHMgc3F1YXNoaW5nIHRoaXMgcGF0Y2gKPiB3aXRoIHRoZSBvbmUgaW1wbGVtZW50 aW5nIGZlbmNlcyB3aXRoIGV4cGxpY2l0IGlycSBlbmFibGluZywgdG8gYXZvaWQKPiBjaHVybiBh bmQgaW50ZXJtZWRpYXRlIFdBUk5fT05zLiBFYWNoIHBhdGNoIHNob3VsZCBiZSBmdWxseSBmdW5j dGlvbmFsCj4gd2l0aG91dCByZXF1aXJpbmcgZm9sbG93LXVwIHBhdGNoZXMuCgpJdCBpcyBmdWxs eSBmdW5jdGlvbmFsIGFzIGEgc3RhbmQgYWxvbmUgcGF0Y2guIFRoZSBpbnRlcm1lZGlhdGUgV0FS Tl9PTnMgCndvdWxkIG5ldmVyIGZpcmUgdW5sZXNzIHNvbWVvbmUgdGFrZXMgb25seSB0aGlzIHBh dGNoIGFuZCB0aGUgc3RhcnRzIAphZGRpbmcgZXh0cmEgKHVuc3VwcG9ydGVkKSB1c2FnZSBvZiB0 aGUgZmVuY2Ugb2JqZWN0LiBJZiB0aGV5IHdhbnQgdG8gZG8gCnRoYXQgdGhlbiB0aGV5IG11c3Qg Zmlyc3QgYWRkIGluIHRoZSBleHRyYSBzdXBwb3J0IHRoYXQgdGhleSBuZWVkLiBPciAKdGhleSBj b3VsZCBqdXN0IHRha2UgdGhlIHJlc3Qgb2YgdGhlIHNlcmllcyB3aGljaCBhZGRzIGluIHRoYXQg c3VwcG9ydCAKZm9yIHRoZW0uCgpTcXVhc2hpbmcgdGhlIGludGVycnVwdCBzdXBwb3J0IGludG8g dGhlIGJhc2ljIGZlbmNlIGltcGxlbWVudGF0aW9uIAp3b3VsZCBqdXN0IG1ha2UgZm9yIGEgbXVj aCBtb3JlIGNvbXBsaWNhdGVkIHNpbmdsZSBwYXRjaC4KCgo+IC1EYW5pZWwKPgo+Cj4+ICsJc3Ry dWN0IGZlbmNlIGZlbmNlOwo+PiAgIAo+PiAgIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVl c3Qgd2FzIGdlbmVyYXRlZCAqLwo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsK Pj4gQEAgLTIyMjcsNyArMjIzOCwxMyBAQCBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+PiAgIAkJCSAgIHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHgsCj4+ICAgCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCk7 Cj4+ICAgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSk7Cj4+IC12b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAq cmVxX3JlZik7Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2Nv bXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPj4gKwkJCQkJICAgICAg Ym9vbCBsYXp5X2NvaGVyZW5jeSkKPj4gK3sKPj4gKwlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQo JnJlcS0+ZmVuY2UpOwo+PiArfQo+PiArCj4+ICAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3Rv X2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPj4gICAJCQkJICAgc3Ry dWN0IGRybV9maWxlICpmaWxlKTsKPj4gICAKPj4gQEAgLTIyNDcsNyArMjI2NCw3IEBAIHN0YXRp YyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKPj4gICBpOTE1X2dlbV9yZXF1 ZXN0X3JlZmVyZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4gICB7Cj4+ ICAgCWlmIChyZXEpCj4+IC0JCWtyZWZfZ2V0KCZyZXEtPnJlZik7Cj4+ICsJCWZlbmNlX2dldCgm cmVxLT5mZW5jZSk7Cj4+ICAgCXJldHVybiByZXE7Cj4+ICAgfQo+PiAgIAo+PiBAQCAtMjI1NSw3 ICsyMjcyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkCj4+ICAgaTkxNV9nZW1fcmVxdWVzdF91bnJl ZmVyZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4gICB7Cj4+ICAgCVdB Uk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmVxLT5yaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ PiAtCWtyZWZfcHV0KCZyZXEtPnJlZiwgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKTsKPj4gKwlmZW5j ZV9wdXQoJnJlcS0+ZmVuY2UpOwo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMgaW5saW5lIHZvaWQK Pj4gQEAgLTIyNjcsNyArMjI4NCw3IEBAIGk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2VfX3Vu bG9ja2VkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+PiAgIAkJcmV0dXJuOwo+ PiAgIAo+PiAgIAlkZXYgPSByZXEtPnJpbmctPmRldjsKPj4gLQlpZiAoa3JlZl9wdXRfbXV0ZXgo JnJlcS0+cmVmLCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUsICZkZXYtPnN0cnVjdF9tdXRleCkpCj4+ ICsJaWYgKGtyZWZfcHV0X211dGV4KCZyZXEtPmZlbmNlLnJlZmNvdW50LCBmZW5jZV9yZWxlYXNl LCAmZGV2LT5zdHJ1Y3RfbXV0ZXgpKQo+PiAgIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7Cj4+ICAgfQo+PiAgIAo+PiBAQCAtMjI4NCwxMiArMjMwMSw2IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKipwZHN0LAo+PiAgIH0KPj4gICAKPj4gICAvKgo+PiAtICogWFhYOiBpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZCBzaG91bGQgYmUgaGVyZSBidXQgY3VycmVudGx5IG5lZWRzIHRoZQo+PiAt ICogZGVmaW5pdGlvbiBvZiBpOTE1X3NlcW5vX3Bhc3NlZCgpIHdoaWNoIGlzIGJlbG93LiBJdCB3 aWxsIGJlIG1vdmVkIGluCj4+IC0gKiBhIGxhdGVyIHBhdGNoIHdoZW4gdGhlIGNhbGwgdG8gaTkx NV9zZXFub19wYXNzZWQoKSBpcyBvYnNvbGV0ZWQuLi4KPj4gLSAqLwo+PiAtCj4+IC0vKgo+PiAg ICAqIEEgY29tbWFuZCB0aGF0IHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcgYnkgdGhlIGNvbW1h bmQgcGFyc2VyLgo+PiAgICAqLwo+PiAgIHN0cnVjdCBkcm1faTkxNV9jbWRfZGVzY3JpcHRvciB7 Cj4+IEBAIC0yODUxLDE4ICsyODYyLDYgQEAgaTkxNV9zZXFub19wYXNzZWQodWludDMyX3Qgc2Vx MSwgdWludDMyX3Qgc2VxMikKPj4gICAJcmV0dXJuIChpbnQzMl90KShzZXExIC0gc2VxMikgPj0g MDsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9j b21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4+IC0JCQkJCSAgICAg IGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4+IC17Cj4+IC0JdTMyIHNlcW5vOwo+PiAtCj4+IC0JQlVH X09OKHJlcSA9PSBOVUxMKTsKPj4gLQo+PiAtCXNlcW5vID0gcmVxLT5yaW5nLT5nZXRfc2Vxbm8o cmVxLT5yaW5nLCBsYXp5X2NvaGVyZW5jeSk7Cj4+IC0KPj4gLQlyZXR1cm4gaTkxNV9zZXFub19w YXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOwo+PiAtfQo+PiAtCj4+ICAgaW50IF9fbXVzdF9jaGVj ayBpOTE1X2dlbV9nZXRfc2Vxbm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyICpzZXFubyk7 Cj4+ICAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9zZXRfc2Vxbm8oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdTMyIHNlcW5vKTsKPj4gICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX29iamVj dF9nZXRfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+PiBpbmRleCBkOWYyNzAxLi44ODhiYjcyIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPj4gQEAgLTI2MTYsMTIgKzI2MTYsMTQgQEAgc3RhdGljIHZvaWQgaTkx NV9zZXRfcmVzZXRfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4g ICAJfQo+PiAgIH0KPj4gICAKPj4gLXZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBr cmVmICpyZXFfcmVmKQo+PiArc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVj dCBmZW5jZSAqcmVxX2ZlbmNlKQo+PiAgIHsKPj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfcmVmLAo+PiAtCQkJCQkJIHR5cGVvZigqcmVxKSwg cmVmKTsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9v ZihyZXFfZmVuY2UsCj4+ICsJCQkJCQkgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4+ICAgCXN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXEtPmN0eDsKPj4gICAKPj4gKwlCVUdfT04oIW11dGV4 X2lzX2xvY2tlZCgmcmVxLT5yaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+PiArCj4+ICAgCWlm IChyZXEtPmZpbGVfcHJpdikKPj4gICAJCWk5MTVfZ2VtX3JlcXVlc3RfcmVtb3ZlX2Zyb21fY2xp ZW50KHJlcSk7Cj4+ICAgCj4+IEBAIC0yNjM3LDYgKzI2MzksNDcgQEAgdm9pZCBpOTE1X2dlbV9y ZXF1ZXN0X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpCj4+ICAgCWttZW1fY2FjaGVfZnJlZShy ZXEtPmk5MTUtPnJlcXVlc3RzLCByZXEpOwo+PiAgIH0KPj4gICAKPj4gK3N0YXRpYyBjb25zdCBj aGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9m ZW5jZSkKPj4gK3sKPj4gKwlyZXR1cm4gImk5MTVfcmVxdWVzdCI7Cj4+ICt9Cj4+ICsKPj4gK3N0 YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF90aW1lbGluZV9uYW1lKHN0cnVj dCBmZW5jZSAqcmVxX2ZlbmNlKQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxID0gY29udGFpbmVyX29mKHJlcV9mZW5jZSwKPj4gKwkJCQkJCSB0eXBlb2YoKnJlcSks IGZlbmNlKTsKPj4gKwlyZXR1cm4gcmVxLT5yaW5nLT5uYW1lOwo+PiArfQo+PiArCj4+ICtzdGF0 aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpy ZXFfZmVuY2UpCj4+ICt7Cj4+ICsJLyogSW50ZXJydXB0IGRyaXZlbiBmZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZCB5ZXQuKi8KPj4gKwlXQVJOKHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2Fs bGVkISIpOwo+PiArCXJldHVybiB0cnVlOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgYm9vbCBpOTE1 X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPj4gK3sK Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFf ZmVuY2UsCj4+ICsJCQkJCQkgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4+ICsJdTMyIHNlcW5vOwo+ PiArCj4+ICsJQlVHX09OKHJlcSA9PSBOVUxMKTsKPj4gKwo+PiArCXNlcW5vID0gcmVxLT5yaW5n LT5nZXRfc2Vxbm8ocmVxLT5yaW5nLCBmYWxzZS8qbGF6eV9jb2hlcmVuY3kqLyk7Cj4+ICsKPj4g KwlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOwo+PiArfQo+PiAr Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMg PSB7Cj4+ICsJLmdldF9kcml2ZXJfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2RyaXZlcl9u YW1lLAo+PiArCS5nZXRfdGltZWxpbmVfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3RpbWVs aW5lX25hbWUsCj4+ICsJLmVuYWJsZV9zaWduYWxpbmcJPSBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJs ZV9zaWduYWxpbmcsCj4+ICsJLnNpZ25hbGVkCQk9IGk5MTVfZ2VtX3JlcXVlc3RfaXNfY29tcGxl dGVkLAo+PiArCS53YWl0CQkJPSBmZW5jZV9kZWZhdWx0X3dhaXQsCj4+ICsJLnJlbGVhc2UJCT0g aTkxNV9nZW1fcmVxdWVzdF9mcmVlLAo+PiArfTsKPj4gKwo+PiAgIGludCBpOTE1X2dlbV9yZXF1 ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4+ICAgCQkJICAgc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCwKPj4gICAJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKipyZXFfb3V0KQo+PiBAQCAtMjY1OCw3ICsyNzAxLDYgQEAgaW50IGk5MTVfZ2VtX3JlcXVl c3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4gICAJaWYgKHJldCkKPj4g ICAJCWdvdG8gZXJyOwo+PiAgIAo+PiAtCWtyZWZfaW5pdCgmcmVxLT5yZWYpOwo+PiAgIAlyZXEt Pmk5MTUgPSBkZXZfcHJpdjsKPj4gICAJcmVxLT5yaW5nID0gcmluZzsKPj4gICAJcmVxLT5jdHgg ID0gY3R4Owo+PiBAQCAtMjY3Myw2ICsyNzE1LDggQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxs b2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4gICAJCWdvdG8gZXJyOwo+PiAgIAl9 Cj4+ICAgCj4+ICsJZmVuY2VfaW5pdCgmcmVxLT5mZW5jZSwgJmk5MTVfZ2VtX3JlcXVlc3RfZm9w cywgJnJpbmctPmZlbmNlX2xvY2ssIHJpbmctPmZlbmNlX2NvbnRleHQsIHJlcS0+c2Vxbm8pOwo+ PiArCj4+ICAgCS8qCj4+ICAgCSAqIFJlc2VydmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVyIGZv ciBhbGwgdGhlIGNvbW1hbmRzIHJlcXVpcmVkIHRvCj4+ICAgCSAqIGV2ZW50dWFsbHkgZW1pdCB0 aGlzIHJlcXVlc3QuIFRoaXMgaXMgdG8gZ3VhcmFudGVlIHRoYXQgdGhlCj4+IEBAIC01MDIxLDcg KzUwNjUsNyBAQCBpOTE1X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAg ewo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+PiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+PiAtCWludCByZXQsIGks IGo7Cj4+ICsJaW50IHJldCwgaSwgaiwgZmVuY2VfYmFzZTsKPj4gICAKPj4gICAJaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuIDwgNiAmJiAhaW50ZWxfZW5hYmxlX2d0dCgpKQo+PiAgIAkJcmV0dXJu IC1FSU87Cj4+IEBAIC01MDczLDEyICs1MTE3LDE2IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPj4gICAJCQlnb3RvIG91dDsKPj4gICAJfQo+PiAgIAo+PiArCWZl bmNlX2Jhc2UgPSBmZW5jZV9jb250ZXh0X2FsbG9jKEk5MTVfTlVNX1JJTkdTKTsKPj4gKwo+PiAg IAkvKiBOb3cgaXQgaXMgc2FmZSB0byBnbyBiYWNrIHJvdW5kIGFuZCBkbyBldmVyeXRoaW5nIGVs c2U6ICovCj4+ICAgCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKPj4gICAJCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+PiAgIAo+PiAgIAkJV0FSTl9PTighcmlu Zy0+ZGVmYXVsdF9jb250ZXh0KTsKPj4gICAKPj4gKwkJcmluZy0+ZmVuY2VfY29udGV4dCA9IGZl bmNlX2Jhc2UgKyBpOwo+PiArCj4+ICAgCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJp bmcsIHJpbmctPmRlZmF1bHRfY29udGV4dCwgJnJlcSk7Cj4+ICAgCQlpZiAocmV0KSB7Cj4+ICAg CQkJaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKGRldik7Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4+IGluZGV4IDlmYWFkODIuLmVlNGFlY2QgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4+IEBAIC0xODA4LDYgKzE4MDgsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmlu Z19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bgo+PiAgIAlyaW5nLT5kZXYgPSBkZXY7Cj4+ICAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5hY3Rp dmVfbGlzdCk7Cj4+ICAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3QpOwo+PiAr CXNwaW5fbG9ja19pbml0KCZyaW5nLT5mZW5jZV9sb2NrKTsKPj4gICAJaTkxNV9nZW1fYmF0Y2hf cG9vbF9pbml0KGRldiwgJnJpbmctPmJhdGNoX3Bvb2wpOwo+PiAgIAlpbml0X3dhaXRxdWV1ZV9o ZWFkKCZyaW5nLT5pcnFfcXVldWUpOwo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4+IGluZGV4IDE3N2Y3ZWQuLmQxY2VkMzAgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4gQEAgLTIwNDAsNiArMjA0MCw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ PiAgIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOwo+PiAgIAlJTklUX0xJU1Rf SEVBRCgmcmluZy0+cmVxdWVzdF9saXN0KTsKPj4gICAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmV4 ZWNsaXN0X3F1ZXVlKTsKPj4gKwlzcGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7Cj4+ ICAgCWk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChkZXYsICZyaW5nLT5iYXRjaF9wb29sKTsKPj4g ICAJcmluZ2J1Zi0+c2l6ZSA9IDMyICogUEFHRV9TSVpFOwo+PiAgIAlyaW5nYnVmLT5yaW5nID0g cmluZzsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+PiBpbmRleCAy ZTg1ZmRhLi5hNGIwNTQ1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCj4+IEBAIC0zNDYsNiArMzQ2LDkgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3Mgewo+ PiAgIAkgKiB0byBlbmNvZGUgdGhlIGNvbW1hbmQgbGVuZ3RoIGluIHRoZSBoZWFkZXIpLgo+PiAg IAkgKi8KPj4gICAJdTMyICgqZ2V0X2NtZF9sZW5ndGhfbWFzaykodTMyIGNtZF9oZWFkZXIpOwo+ PiArCj4+ICsJdW5zaWduZWQgZmVuY2VfY29udGV4dDsKPj4gKwlzcGlubG9ja190IGZlbmNlX2xv Y2s7Cj4+ICAgfTsKPj4gICAKPj4gICBib29sIGludGVsX3JpbmdfaW5pdGlhbGl6ZWQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4+IC0tIAo+PiAxLjkuMQo+Pgo+PiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK