From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 1/2] drm: Per-plane locking Date: Tue, 11 Nov 2014 09:37:08 -0500 Message-ID: <20141111143708.GA19869@philcollins> References: <1415697121-1945-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f50.google.com (mail-qa0-f50.google.com [209.85.216.50]) by gabe.freedesktop.org (Postfix) with ESMTP id 083396E5AF for ; Tue, 11 Nov 2014 06:37:43 -0800 (PST) Received: by mail-qa0-f50.google.com with SMTP id bm13so6989537qab.37 for ; Tue, 11 Nov 2014 06:37:42 -0800 (PST) Content-Disposition: inline In-Reply-To: <1415697121-1945-1-git-send-email-daniel.vetter@ffwll.ch> 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: Daniel Vetter , Intel Graphics Development , Thierry Reding , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBOb3YgMTEsIDIwMTQgYXQgMTA6MTI6MDBBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBUdXJuZWQgb3V0IHRvIGJlIG11Y2ggc2ltcGxlciBvbiB0b3Agb2YgbXkgbGF0ZXN0 IGF0b21pYyBzdHVmZiB0aGFuCj4gd2hhdCBJJ3ZlIGZlYXJlZC4gU29tZSBkZXRhaWxzOgo+IAo+ IC0gRHJvcCB0aGUgbW9kZXNldF9sb2NrX2FsbCBzbmFrZW9pbCBpbiBkcm1fcGxhbmVfaW5pdC4g U2FtZQo+ICAganVzdGlmaWNhdGlvbiBhcyBmb3IgdGhlIGVxdWl2YWxlbnQgY2hhbmdlIGluIGRy bV9jcnRjX2luaXQgZG9uZSBpbgo+IAo+IAljb21taXQgZDBmYTFhZjQwZTc4NGFhZjdlYmI3YmE4 YTE3YjIyOWJiM2ZhNGMyMQo+IAlBdXRob3I6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+Cj4gCURhdGU6ICAgTW9uIFNlcCA4IDA5OjAyOjQ5IDIwMTQgKzAyMDAKPiAKPiAJ ICAgIGRybTogRHJvcCBtb2Rlc2V0IGxvY2tpbmcgZnJvbSBjcnRjIGluaXQgZnVuY3Rpb24KPiAK PiAgIFdpdGhvdXQgdGhlc2UgdGhlIGRybV9tb2Rlc2V0X2xvY2tfaW5pdCB3b3VsZCBmYWxsIG92 ZXIgdGhlIGV4YWN0Cj4gICBzYW1lIHdheS4KPiAKPiAtIFNpbmNlIHRoZSBhdG9taWMgY29yZSBj b2RlIHdyYXBzIHRoZSBsb2NraW5nIHN3aXRjaGluZyBpdCB0bwo+ICAgcGVyLXBsYW5lIGxvY2tz IHdhcyBhIG9uZS1saW5lIGNoYW5nZS4KPiAKPiAtIEZvciB0aGUgbGVnYWN5IGlvY3RscyBhZGQg YSBwbGFuZSBhcmd1bWVudCB0byB0aGUgbG9ja2luZyBoZWxwZXIgc28KPiAgIHRoYXQgd2UgY2Fu IGdyYWIgdGhlIHJpZ2h0IHBsYW5lIGxvY2sgKGN1cnNvciBvciBwcmltYXJ5KS4gU2luY2UgdGhl Cj4gICB1bml2ZXJzYWwgY3Vyc29yIHBsYW5lIG1pZ2h0IG5vdCBiZSB0aGVyZSwgb3Igc29tZW9u ZSByZWFsbHkgY3JhenkKPiAgIG1pZ2h0IGZvcmdvZSB0aGUgcHJpbWFyeSBwbGFuZSBldmVuIGFj Y2VwdCBOVUxMLgo+IAo+IC0gQWRkIHNvbWUgbG9ja2luZyBXQVJOX09OIHRvIHRoZSBhdG9taWMg aGVscGVycyBmb3IgZ29vZCBwYXJhbm9pZAo+ICAgbWVhc3VyZSBhbmQgdG8gY2hlY2sgdGhhdCBp dCBhbGwgd29ya3Mgb3V0Lgo+IAo+IFRlc3RlZCBvbiBteSBleHlub3MgYXRvbWljIGhhY2tmZXN0 IHdpdGggZnVsbCBsb2NrZGVwIGNoZWNrcyBhbmQgd3cKPiBiYWNrb2ZmIGluamVjdGlvbi4KPiAK PiB2MjogSSd2ZSBmb3Jnb3R0ZW4gYWJvdXQgdGhlIGxvYWQtZGV0ZWN0IGNvZGUgaW4gaTkxNS4K PiAKPiB2MzogVGhpZXJyeSByZXBvcnRlZCB0aGF0IGluIGxhdGVzdCAzLjE4LXJjIHZtd2dmeCBk b2Vzbid0IGNvbXBpbGUgYW55Cj4gbW9yZSBkdWUgdG8KPiAKPiBjb21taXQgMjFlODg2MjBhYTIx YjQ4ZDRmNjJkMjkyNzVlM2UyOTQ0YTVlYTJiNQo+IEF1dGhvcjogUm9iIENsYXJrIDxyb2JkY2xh cmtAZ21haWwuY29tPgo+IERhdGU6ICAgVGh1IE9jdCAzMCAxMzozOTowNCAyMDE0IC0wNDAwCj4g Cj4gICAgIGRybS92bXdnZng6IGZpeCBsb2NrIGJyZWFrYWdlCj4gCj4gUmViYXNlZCBhbmQgZml4 IHRoaXMgdXAuCj4gCj4gQ2M6IFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5j b20+Cj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5j b20+CgoKT25lIG1pbm9yIG5pdCBhYm91dCBhdm9pZGluZyB0aGUgcmVjdXJzaXZlIGxvY2sgaGFu ZGxpbmcgaW4gZHJtX21vZGVzZXRfbG9jay4gSQphbSBmaW5lIHdpdGggdGhlIHBhdGNoIGVpdGhl ciB3YXkuCgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgfCAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgfCAgNCArKysrCj4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fY3J0Yy5jICAgICAgICAgICB8ICA5ICsrKystLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1fbW9kZXNldF9sb2NrLmMgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgNiAr KysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyAgfCAgNCArKy0tCj4g IGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgICB8ICAyICsrCj4gIGluY2x1ZGUv ZHJtL2RybV9tb2Rlc2V0X2xvY2suaCAgICAgICB8ICA0ICsrKy0KPiAgOCBmaWxlcyBjaGFuZ2Vk LCA1NSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK PiBpbmRleCBlZDk5MWJhNjZlMjEuLmVkMjJhNzE5NDQwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu Ywo+IEBAIC0yNDQsNyArMjQ0LDcgQEAgZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJICogZ3JhYiBhbGwgY3J0YyBsb2Nrcy4gT25j ZSB3ZSBoYXZlIHBlci1wbGFuZSBsb2NrcyB3ZSBtdXN0IHVwZGF0ZSB0aGlzCj4gIAkgKiB0byBv bmx5IHRha2UgdGhlIHBsYW5lIG11dGV4Lgo+ICAJICovCj4gLQlyZXQgPSBkcm1fbW9kZXNldF9s b2NrX2FsbF9jcnRjcyhzdGF0ZS0+ZGV2LCBzdGF0ZS0+YWNxdWlyZV9jdHgpOwo+ICsJcmV0ID0g ZHJtX21vZGVzZXRfbG9jaygmcGxhbmUtPm11dGV4LCBzdGF0ZS0+YWNxdWlyZV9jdHgpOwo+ICAJ aWYgKHJldCkKPiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYwo+IGluZGV4IGNhODM5YmQ5YmIwZC4uMjUyNmRlOGU2Y2JlIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBAQCAtOTk1LDYgKzk5NSw4IEBAIHZvaWQg ZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJCWlmICghY3J0YykKPiAgCQkJY29udGludWU7Cj4gIAo+ICsJCVdBUk5fT04oIWRybV9tb2Rl c2V0X2lzX2xvY2tlZCgmY3J0Yy0+bXV0ZXgpKTsKPiArCj4gIAkJZnVuY3MgPSBjcnRjLT5oZWxw ZXJfcHJpdmF0ZTsKPiAgCj4gIAkJaWYgKCFmdW5jcyB8fCAhZnVuY3MtPmF0b21pY19iZWdpbikK PiBAQCAtMTAxMCw2ICsxMDEyLDggQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxh bmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJaWYgKCFwbGFuZSkKPiAgCQkJY29udGlu dWU7Cj4gIAo+ICsJCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmcGxhbmUtPm11dGV4 KSk7Cj4gKwo+ICAJCWZ1bmNzID0gcGxhbmUtPmhlbHBlcl9wcml2YXRlOwo+ICAKPiAgCQlpZiAo IWZ1bmNzIHx8ICFmdW5jcy0+YXRvbWljX3VwZGF0ZSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+IGluZGV4IGU2 YzE2OTE1MmJmMS4uMzY1MmVkOGRkYTgwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBAQCAtMTE1Miwx MiArMTE1MiwxMiBAQCBpbnQgZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAK PiAtCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4gLQo+ICAJcmV0ID0gZHJtX21vZGVfb2Jq ZWN0X2dldChkZXYsICZwbGFuZS0+YmFzZSwgRFJNX01PREVfT0JKRUNUX1BMQU5FKTsKPiAgCWlm IChyZXQpCj4gIAkJZ290byBvdXQ7Cj4gIAo+ICsJZHJtX21vZGVzZXRfbG9ja19pbml0KCZwbGFu ZS0+bXV0ZXgpOwo+ICsKPiAgCXBsYW5lLT5iYXNlLnByb3BlcnRpZXMgPSAmcGxhbmUtPnByb3Bl cnRpZXM7Cj4gIAlwbGFuZS0+ZGV2ID0gZGV2Owo+ICAJcGxhbmUtPmZ1bmNzID0gZnVuY3M7Cj4g QEAgLTExODUsNyArMTE4NSw2IEBAIGludCBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCQkgICBwbGFu ZS0+dHlwZSk7Cj4gIAo+ICAgb3V0Ogo+IC0JZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwo+ ICAKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiBAQCAtMjgwOSw3ICsyODA4LDcgQEAgc3RhdGljIGlu dCBkcm1fbW9kZV9jdXJzb3JfY29tbW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkgKiBJ ZiB0aGlzIGNydGMgaGFzIGEgdW5pdmVyc2FsIGN1cnNvciBwbGFuZSwgY2FsbCB0aGF0IHBsYW5l J3MgdXBkYXRlCj4gIAkgKiBoYW5kbGVyIHJhdGhlciB0aGFuIHVzaW5nIGxlZ2FjeSBjdXJzb3Ig aGFuZGxlcnMuCj4gIAkgKi8KPiAtCWRybV9tb2Rlc2V0X2xvY2tfY3J0YyhjcnRjKTsKPiArCWRy bV9tb2Rlc2V0X2xvY2tfY3J0YyhjcnRjLCBjcnRjLT5jdXJzb3IpOwo+ICAJaWYgKGNydGMtPmN1 cnNvcikgewo+ICAJCXJldCA9IGRybV9tb2RlX2N1cnNvcl91bml2ZXJzYWwoY3J0YywgcmVxLCBm aWxlX3ByaXYpOwo+ICAJCWdvdG8gb3V0Owo+IEBAIC00NTk4LDcgKzQ1OTcsNyBAQCBpbnQgZHJt X21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAoIWNy dGMpCj4gIAkJcmV0dXJuIC1FTk9FTlQ7Cj4gIAo+IC0JZHJtX21vZGVzZXRfbG9ja19jcnRjKGNy dGMpOwo+ICsJZHJtX21vZGVzZXRfbG9ja19jcnRjKGNydGMsIGNydGMtPnByaW1hcnkpOwo+ICAJ aWYgKGNydGMtPnByaW1hcnktPmZiID09IE5VTEwpIHsKPiAgCQkvKiBUaGUgZnJhbWVidWZmZXIg aXMgY3VycmVudGx5IHVuYm91bmQsIHByZXN1bWFibHkKPiAgCQkgKiBkdWUgdG8gYSBob3RwbHVn IGV2ZW50LCB0aGF0IHVzZXJzcGFjZSBoYXMgbm90Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fbW9kZXNldF9sb2NrLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfbG9j ay5jCj4gaW5kZXggNDc0ZTRkMTJhMmQ4Li41MWNjNDdkODI3ZDggMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2xvY2suYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fbW9kZXNldF9sb2NrLmMKPiBAQCAtMTU3LDE0ICsxNTcsMjAgQEAgdm9pZCBkcm1fbW9kZXNl dF91bmxvY2tfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIEVYUE9SVF9TWU1CT0woZHJt X21vZGVzZXRfdW5sb2NrX2FsbCk7Cj4gIAo+ICAvKioKPiAtICogZHJtX21vZGVzZXRfbG9ja19j cnRjIC0gbG9jayBjcnRjIHdpdGggaGlkZGVuIGFjcXVpcmUgY3R4Cj4gLSAqIEBjcnRjOiBkcm0g Y3J0Ywo+ICsgKiBkcm1fbW9kZXNldF9sb2NrX2NydGMgLSBsb2NrIGNydGMgd2l0aCBoaWRkZW4g YWNxdWlyZSBjdHggZm9yIGEgcGxhbmUgdXBkYXRlCj4gKyAqIEBjcnRjOiBEUk0gQ1JUQwo+ICsg KiBAcGxhbmU6IERSTSBwbGFuZSB0byBiZSB1cGRhdGVkIG9uIEBjcnRjCj4gKyAqCj4gKyAqIFRo aXMgZnVuY3Rpb24gbG9ja3MgdGhlIGdpdmVuIGNydGMgYW5kIHBsYW5lICh3aGljaCBzaG91bGQg YmUgZWl0aGVyIHRoZQo+ICsgKiBwcmltYXJ5IG9yIGN1cnNvciBwbGFuZSkgdXNpbmcgYSBoaWRk ZW4gYWNxdWlyZSBjb250ZXh0LiBUaGlzIGlzIG5lY2Vzc2FyeSBzbwo+ICsgKiB0aGF0IGRyaXZl cnMgaW50ZXJuYWxseSB1c2luZyB0aGUgYXRvbWljIGludGVyZmFjZXMgY2FuIGdyYWIgZnVydGhl ciBsb2Nrcwo+ICsgKiB3aXRoIHRoZSBsb2NrIGFjcXVpcmUgY29udGV4dC4KPiAgICoKPiAtICog VGhpcyBmdW5jdGlvbiBsb2NrcyB0aGUgZ2l2ZW4gY3J0YyB1c2luZyBhIGhpZGRlbiBhY3F1aXJl IGNvbnRleHQuIFRoaXMgaXMKPiAtICogbmVjZXNzYXJ5IHNvIHRoYXQgZHJpdmVycyBpbnRlcm5h bGx5IHVzaW5nIHRoZSBhdG9taWMgaW50ZXJmYWNlcyBjYW4gZ3JhYgo+IC0gKiBmdXJ0aGVyIGxv Y2tzIHdpdGggdGhlIGxvY2sgYWNxdWlyZSBjb250ZXh0Lgo+ICsgKiBOb3RlIHRoYXQgQHBsYW5l IGNhbiBiZSBOVUxMLCBlLmcuIHdoZW4gdGhlIGN1cnNvciBzdXBwb3J0IGhhc24ndCB5ZXQgYmVl bgo+ICsgKiBjb252ZXJ0ZWQgdG8gdW5pdmVyc2FsIHBsYW5lcyB5ZXQuCj4gICAqLwo+IC12b2lk IGRybV9tb2Rlc2V0X2xvY2tfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gK3ZvaWQgZHJt X21vZGVzZXRfbG9ja19jcnRjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkJICAgc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0 eCAqY3R4Owo+ICAJaW50IHJldDsKPiBAQCAtMTgwLDYgKzE4NiwxOCBAQCByZXRyeToKPiAgCWlm IChyZXQpCj4gIAkJZ290byBmYWlsOwo+ICAKPiArCWlmIChwbGFuZSkgewo+ICsJCXJldCA9IGRy bV9tb2Rlc2V0X2xvY2soJnBsYW5lLT5tdXRleCwgY3R4KTsKPiArCQlpZiAocmV0KQo+ICsJCQln b3RvIGZhaWw7Cj4gKwo+ICsJCWlmIChwbGFuZS0+Y3J0YykgewoKbml0OiBpZiB5b3UgY2hlY2sg cGxhbmUtPmNydGMgIT0gY3J0YyBoZXJlLCB5b3UgY2FuIHNhdmUgZnJvbSBnb2luZyB0aHJvdWdo IHRoZQp3dyBlcnJvciBoYW5kbGluZyBjb2RlIGFzIHdlbGwgYXMgYXZvaWRpbmcgdGhlIG1vZGVz ZXRfbG9jayAtRUFMUkVBRFkgc2FmZXR5IG5ldAoKPiArCQkJcmV0ID0gZHJtX21vZGVzZXRfbG9j aygmcGxhbmUtPmNydGMtPm11dGV4LCBjdHgpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJZ290byBm YWlsOwo+ICsJCX0KPiArCX0KPiArCj4gIAlXQVJOX09OKGNydGMtPmFjcXVpcmVfY3R4KTsKPiAg Cj4gIAkvKiBub3cgd2UgaG9sZCB0aGUgbG9ja3MsIHNvIG5vdyB0aGF0IGl0IGlzIHNhZmUsIHN0 YXNoIHRoZQo+IEBAIC00MzcsMTUgKzQ1NSwxNCBAQCB2b2lkIGRybV9tb2Rlc2V0X3VubG9jayhz dHJ1Y3QgZHJtX21vZGVzZXRfbG9jayAqbG9jaykKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9t b2Rlc2V0X3VubG9jayk7Cj4gIAo+IC0vKiBUZW1wb3JhcnkuLiB1bnRpbCB3ZSBoYXZlIHN1ZmZp Y2llbnRseSBmaW5lIGdyYWluZWQgbG9ja2luZywgdGhlcmUKPiAtICogYXJlIGEgY291cGxlIHNj ZW5hcmlvcyB3aGVyZSBpdCBpcyBjb252ZW5pZW50IHRvIGdyYWIgYWxsIGNydGMgbG9ja3MuCj4g LSAqIEl0IGlzIHBsYW5uZWQgdG8gcmVtb3ZlIHRoaXM6Cj4gLSAqLwo+ICsvKiBJbiBzb21lIGxl Z2FjeSBjb2RlcGF0aHMgaXQncyBjb252ZW5pZW50IHRvIGp1c3QgZ3JhYiBhbGwgdGhlIGNydGMg YW5kIHBsYW5lCj4gKyAqIHJlbGF0ZWQgbG9ja3MuICovCj4gIGludCBkcm1fbW9kZXNldF9sb2Nr X2FsbF9jcnRjcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXN0cnVjdCBkcm1fbW9kZXNl dF9hY3F1aXJlX2N0eCAqY3R4KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25m aWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCXN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICAJaW50IHJldCA9IDA7Cj4gIAo+ICAJbGlzdF9mb3Jf ZWFjaF9lbnRyeShjcnRjLCAmY29uZmlnLT5jcnRjX2xpc3QsIGhlYWQpIHsKPiBAQCAtNDU0LDYg KzQ3MSwxMiBAQCBpbnQgZHJtX21vZGVzZXRfbG9ja19hbGxfY3J0Y3Moc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgCQkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHBsYW5lLCAmY29uZmlnLT5wbGFuZV9saXN0LCBoZWFkKSB7Cj4gKwkJcmV0ID0gZHJtX21v ZGVzZXRfbG9jaygmcGxhbmUtPm11dGV4LCBjdHgpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVy biByZXQ7Cj4gKwl9Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1f bW9kZXNldF9sb2NrX2FsbF9jcnRjcyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IGluZGV4IDcyODg2OWQ2NDBjOC4uN2Y3NDdhN2FjMGQzIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC04NTYzLDYgKzg1NjMsOSBAQCByZXRyeToKPiAgCQly ZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgY3R4KTsKPiAgCQlpZiAocmV0KQo+ ICAJCQlnb3RvIGZhaWxfdW5sb2NrOwo+ICsJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMt PnByaW1hcnktPm11dGV4LCBjdHgpOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZmFpbF91bmxv Y2s7Cj4gIAo+ICAJCW9sZC0+ZHBtc19tb2RlID0gY29ubmVjdG9yLT5kcG1zOwo+ICAJCW9sZC0+ bG9hZF9kZXRlY3RfdGVtcCA9IGZhbHNlOwo+IEBAIC04NjAwLDYgKzg2MDMsOSBAQCByZXRyeToK PiAgCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4LCBjdHgpOwo+ICAJaWYgKHJl dCkKPiAgCQlnb3RvIGZhaWxfdW5sb2NrOwo+ICsJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0 Yy0+cHJpbWFyeS0+bXV0ZXgsIGN0eCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZmFpbF91bmxv Y2s7Cj4gIAlpbnRlbF9lbmNvZGVyLT5uZXdfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4g IAl0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKS0+bmV3X2VuY29kZXIgPSBpbnRlbF9lbmNv ZGVyOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21z LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwo+IGluZGV4IDk0MWE3YmMw Yjc5MS4uMzcyNWI1MjFkOTMxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2ttcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMK PiBAQCAtMjUyLDcgKzI1Miw3IEBAIGludCB2bXdfZHVfY3J0Y19jdXJzb3Jfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gIAlyZXQgPSAwOwo+ ICBvdXQ6Cj4gIAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldl9wcml2LT5kZXYpOwo+IC0JZHJt X21vZGVzZXRfbG9ja19jcnRjKGNydGMpOwo+ICsJZHJtX21vZGVzZXRfbG9ja19jcnRjKGNydGMs IGNydGMtPmN1cnNvcik7Cj4gIAo+ICAJcmV0dXJuIHJldDsKPiAgfQo+IEBAIC0yODEsNyArMjgx LDcgQEAgaW50IHZtd19kdV9jcnRjX2N1cnNvcl9tb3ZlKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg aW50IHgsIGludCB5KQo+ICAJCQkJICAgZHUtPmN1cnNvcl95ICsgZHUtPmhvdHNwb3RfeSk7Cj4g IAo+ICAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXZfcHJpdi0+ZGV2KTsKPiAtCWRybV9tb2Rl c2V0X2xvY2tfY3J0YyhjcnRjKTsKPiArCWRybV9tb2Rlc2V0X2xvY2tfY3J0YyhjcnRjLCBjcnRj LT5jdXJzb3IpOwo+ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gaW5kZXggZDgyMjM4YzVi OWQ4Li44NzM5ZThmY2YwMzggMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBAQCAtNzcxLDYgKzc3MSw4IEBAIHN0cnVj dCBkcm1fcGxhbmUgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiAgCXN0cnVjdCBsaXN0 X2hlYWQgaGVhZDsKPiAgCj4gKwlzdHJ1Y3QgZHJtX21vZGVzZXRfbG9jayBtdXRleDsKPiArCj4g IAlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0IGJhc2U7Cj4gIAo+ICAJdWludDMyX3QgcG9zc2libGVf Y3J0Y3M7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2xvY2suaCBiL2lu Y2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2xvY2suaAo+IGluZGV4IDI4OTMxYTIzZDk2Yy4uNzA1OTVm ZjU2NWJhIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2xvY2suaAo+ICsr KyBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2xvY2suaAo+IEBAIC0xMjcsMTEgKzEyNywxMyBA QCB2b2lkIGRybV9tb2Rlc2V0X3VubG9jayhzdHJ1Y3QgZHJtX21vZGVzZXRfbG9jayAqbG9jayk7 Cj4gIAo+ICBzdHJ1Y3QgZHJtX2RldmljZTsKPiAgc3RydWN0IGRybV9jcnRjOwo+ICtzdHJ1Y3Qg ZHJtX3BsYW5lOwo+ICAKPiAgdm9pZCBkcm1fbW9kZXNldF9sb2NrX2FsbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiAgaW50IF9fZHJtX21vZGVzZXRfbG9ja19hbGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgYm9vbCB0cnlsb2NrKTsKPiAgdm9pZCBkcm1fbW9kZXNldF91bmxvY2tfYWxsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC12b2lkIGRybV9tb2Rlc2V0X2xvY2tfY3J0YyhzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpOwo+ICt2b2lkIGRybV9tb2Rlc2V0X2xvY2tfY3J0YyhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gKwkJCSAgIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKPiAgdm9p ZCBkcm1fbW9kZXNldF91bmxvY2tfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICB2b2lk IGRybV93YXJuX29uX21vZGVzZXRfbm90X2FsbF9sb2NrZWQoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4gIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqCj4gLS0gCj4gMi4xLjEKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=