From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm: Convert prime dma-buf <-> handle to rbtree Date: Thu, 29 Sep 2016 11:21:36 +0200 Message-ID: <20160929092136.GC25432@dvetter-linux.ger.corp.intel.com> References: <20160922144328.28432-1-chris@chris-wilson.co.uk> <20160926204414.23222-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id ADBA76E82E for ; Thu, 29 Sep 2016 09:21:40 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id b4so9765189wmb.2 for ; Thu, 29 Sep 2016 02:21:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: Intel Graphics Development , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBTZXAgMjcsIDIwMTYgYXQgMTI6MTg6MTNQTSAtMDQwMCwgU2VhbiBQYXVsIHdyb3Rl Ogo+IE9uIFR1ZSwgU2VwIDI3LCAyMDE2IGF0IDI6MzYgQU0sIERhdmlkIEhlcnJtYW5uIDxkaC5o ZXJybWFubkBnbWFpbC5jb20+IHdyb3RlOgo+ID4gSGkgQ2hyaXMKPiA+Cj4gPiBPbiBNb24sIFNl cCAyNiwgMjAxNiBhdCAxMDo0NCBQTSwgQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+IHdyb3RlOgo+ID4+IEN1cnJlbnRseSB3ZSB1c2UgYSBsaW5lYXIgd2FsayB0byBsb29r dXAgYSBoYW5kbGUgYW5kIHJldHVybiBhIGRtYS1idWYsCj4gPj4gYW5kIHZpY2UgdmVyc2EuIEEg bG9uZyBvdmVyZHVlIFRPRE8gdGFzayBpcyB0byBjb252ZXJ0IHRoYXQgdG8gYQo+ID4+IGhhc2h0 YWJsZS4gU2luY2UgdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgZG1hLWJ1Zi9wcmltZSwg d2Ugbm93Cj4gPj4gaGF2ZSByZXNpemVhYmxlIGhhc2h0YWJsZXMgd2UgY2FuIHVzZSAoYW5kIG5v dyBhIGZ1dHVyZSB0YXNrIGlzIHRvIFJDVQo+ID4+IGVuYWJsZSB0aGUgbG9va3VwISkuIEhvd2V2 ZXIsIHRoaXMgcGF0Y2ggb3B0cyB0byB1c2UgYW4gcmJ0cmVlIGluc3RlYWQKPiA+PiB0byBwcm92 aWRlIE8obGdOKSBsb29rdXBzIChhbmQgaW5zZXJ0aW9uLCBkZWxldGlvbikuIHJidHJlZXMgd2Vy ZSBjaG9zZW4KPiA+PiBvdmVyIHVzaW5nIHRoZSBSQ1UgYmFja2VkIHJlc2l6YWJsZSBoYXNodGFi bGUgdG8gZmlyc3RseSBhdm9pZCB0aGUKPiA+PiByZWFsbG9jYXRpb25zIChyYnRyZWVzIGNhbiBi ZSBlbWJlZGRlZCBlbnRpcmVseSB3aXRoaW4gdGhlIHBhcmVudAo+ID4+IHN0cnVjdCkgYW5kIHRv IGZhdm91ciBzaW1wbGVyIGNvZGUgd2l0aCBwcmVkaWN0YWJsZSB3b3JzdCBjYXNlCj4gPj4gYmVo YXZpb3VyLiBJbiBzaW1wbGUgdGVzdGluZywgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB1c2luZyB0 aGUgY29uc3RhbnQKPiA+PiBsb29rdXAgYW5kIGluc2VydGlvbiBvZiB0aGUgcmhhc2h0YWJsZSBh bmQgdGhlIHJidHJlZSB3YXMgbGVzcyB0aGFuIDEwJQo+ID4+IG9mIHRoZSB3YWxsIHRpbWUgKGln dC9iZW5jaG1hcmtzL3ByaW1lX2xvb2t1cCkgLSBib3RoIGFyZSBkcmFtYXRpYwo+ID4+IGltcHJv dmVtZW50cyBvdmVyIHRoZSBleGlzdGluZyBsaW5lYXIgbGlzdHMuCj4gPj4KPiA+PiB2MjogRmF2 b3VyIHJidHJlZSBvdmVyIHJoYXNodGFibGUKPiA+Pgo+ID4+IEJ1Z3ppbGxhOiBodHRwczovL2J1 Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05NDYzMQo+ID4+IFNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4+IENjOiBTZWFu IFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPiA+PiBDYzogRGF2aWQgSGVycm1hbm4gPGRo LmhlcnJtYW5uQGdtYWlsLmNvbT4KPiA+PiAtLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9w cmltZS5jIHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t Cj4gPj4gIGluY2x1ZGUvZHJtL2RybVAuaCAgICAgICAgICB8ICA1ICstLQo+ID4+ICAyIGZpbGVz IGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+ID4KPiA+IFRoYW5r cyBmb3IgZG9pbmcgdGhlIGJlbmNobWFyayBhbmQgcmV3cml0aW5nIGl0IHdpdGggcmItdHJlZXMu IEkgdGhpbmsKPiA+IHRoZSBsYWNrIG9mIGVycm9yLWhhbmRsaW5nIGlzIGEgYmlnIHBsdXMgaGVy ZS4gQW55d2F5LCB0aGlzIGlzOgo+ID4KPiA+IFJldmlld2VkLWJ5OiBEYXZpZCBIZXJybWFubiA8 ZGguaGVycm1hbm5AZ21haWwuY29tPgo+IAo+IAo+IEFncmVlZCwgaXQncyBhbHNvIG5pY2UgYmUg YWJsZSB0byBrZWVwIHRoZSBXQVJOX09OIGluCj4gZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9wcml2 YXRlCj4gCj4gUmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgoK QXBwbGllZCB0byBkcm0tbWlzYywgdGhhbmtzLgotRGFuaWVsCgo+IAo+ID4KPiA+IFlvdXIgdHJl ZS10cmF2ZXJzYWxzIGFyZSBhIGJpdCBpbmNvbnNpc3RlbnQgaW4gaG93IHlvdSBvcmRlciB5b3Vy Cj4gPiBpdGVyYXRvciBhZ2FpbnN0IHRoZSBlbGVtZW50IHRvIGxvb2t1cCBpbiB5b3VyIGNvbmRp dGlvbnMsIGJ1dC4uIG1laC4KPiA+IEEgYmlnIFdBUk5fT04gb24gY29uZmxpY3RzIG1pZ2h0IG5v dCBodXJ0IGVpdGhlci4gQnV0IGxvb2tzIGFsbCBnb29kLgo+ID4KPiA+IFRoYW5rcwo+ID4gRGF2 aWQKPiA+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+ID4+IGluZGV4IDc4MDU4OWI0MjBhNC4uNTcyMDFk NjhjZjYxIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+ID4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+ID4+IEBAIC0yOCw2ICsyOCw3IEBA Cj4gPj4KPiA+PiAgI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgo+ID4+ICAjaW5jbHVkZSA8bGlu dXgvZG1hLWJ1Zi5oPgo+ID4+ICsjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+Cj4gPj4gICNpbmNs dWRlIDxkcm0vZHJtUC5oPgo+ID4+ICAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KPiA+Pgo+ID4+ IEBAIC02MSw5ICs2MiwxMSBAQAo+ID4+ICAgKi8KPiA+Pgo+ID4+ICBzdHJ1Y3QgZHJtX3ByaW1l X21lbWJlciB7Cj4gPj4gLSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5Owo+ID4+ICAgICAg ICAgc3RydWN0IGRtYV9idWYgKmRtYV9idWY7Cj4gPj4gICAgICAgICB1aW50MzJfdCBoYW5kbGU7 Cj4gPj4gKwo+ID4+ICsgICAgICAgc3RydWN0IHJiX25vZGUgZG1hYnVmX3JiOwo+ID4+ICsgICAg ICAgc3RydWN0IHJiX25vZGUgaGFuZGxlX3JiOwo+ID4+ICB9Owo+ID4+Cj4gPj4gIHN0cnVjdCBk cm1fcHJpbWVfYXR0YWNobWVudCB7Cj4gPj4gQEAgLTc1LDYgKzc4LDcgQEAgc3RhdGljIGludCBk cm1fcHJpbWVfYWRkX2J1Zl9oYW5kbGUoc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnBy aW1lX2Zwcml2LAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkbWFfYnVmICpkbWFfYnVmLCB1aW50MzJfdCBoYW5kbGUpCj4gPj4gIHsKPiA+PiAgICAgICAg IHN0cnVjdCBkcm1fcHJpbWVfbWVtYmVyICptZW1iZXI7Cj4gPj4gKyAgICAgICBzdHJ1Y3QgcmJf bm9kZSAqKnAsICpyYjsKPiA+Pgo+ID4+ICAgICAgICAgbWVtYmVyID0ga21hbGxvYyhzaXplb2Yo Km1lbWJlciksIEdGUF9LRVJORUwpOwo+ID4+ICAgICAgICAgaWYgKCFtZW1iZXIpCj4gPj4gQEAg LTgzLDE4ICs4Nyw1NiBAQCBzdGF0aWMgaW50IGRybV9wcmltZV9hZGRfYnVmX2hhbmRsZShzdHJ1 Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYsCj4gPj4gICAgICAgICBnZXRf ZG1hX2J1ZihkbWFfYnVmKTsKPiA+PiAgICAgICAgIG1lbWJlci0+ZG1hX2J1ZiA9IGRtYV9idWY7 Cj4gPj4gICAgICAgICBtZW1iZXItPmhhbmRsZSA9IGhhbmRsZTsKPiA+PiAtICAgICAgIGxpc3Rf YWRkKCZtZW1iZXItPmVudHJ5LCAmcHJpbWVfZnByaXYtPmhlYWQpOwo+ID4+ICsKPiA+PiArICAg ICAgIHJiID0gTlVMTDsKPiA+PiArICAgICAgIHAgPSAmcHJpbWVfZnByaXYtPmRtYWJ1ZnMucmJf bm9kZTsKPiA+PiArICAgICAgIHdoaWxlICgqcCkgewo+ID4+ICsgICAgICAgICAgICAgICBzdHJ1 Y3QgZHJtX3ByaW1lX21lbWJlciAqcG9zOwo+ID4+ICsKPiA+PiArICAgICAgICAgICAgICAgcmIg PSAqcDsKPiA+PiArICAgICAgICAgICAgICAgcG9zID0gcmJfZW50cnkocmIsIHN0cnVjdCBkcm1f cHJpbWVfbWVtYmVyLCBkbWFidWZfcmIpOwo+ID4+ICsgICAgICAgICAgICAgICBpZiAoZG1hX2J1 ZiA+IHBvcy0+ZG1hX2J1ZikKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBwID0gJnJiLT5y Yl9yaWdodDsKPiA+PiArICAgICAgICAgICAgICAgZWxzZQo+ID4+ICsgICAgICAgICAgICAgICAg ICAgICAgIHAgPSAmcmItPnJiX2xlZnQ7Cj4gPj4gKyAgICAgICB9Cj4gPj4gKyAgICAgICByYl9s aW5rX25vZGUoJm1lbWJlci0+ZG1hYnVmX3JiLCByYiwgcCk7Cj4gPj4gKyAgICAgICByYl9pbnNl cnRfY29sb3IoJm1lbWJlci0+ZG1hYnVmX3JiLCAmcHJpbWVfZnByaXYtPmRtYWJ1ZnMpOwo+ID4+ ICsKPiA+PiArICAgICAgIHJiID0gTlVMTDsKPiA+PiArICAgICAgIHAgPSAmcHJpbWVfZnByaXYt PmhhbmRsZXMucmJfbm9kZTsKPiA+PiArICAgICAgIHdoaWxlICgqcCkgewo+ID4+ICsgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX3ByaW1lX21lbWJlciAqcG9zOwo+ID4+ICsKPiA+PiArICAgICAg ICAgICAgICAgcmIgPSAqcDsKPiA+PiArICAgICAgICAgICAgICAgcG9zID0gcmJfZW50cnkocmIs IHN0cnVjdCBkcm1fcHJpbWVfbWVtYmVyLCBoYW5kbGVfcmIpOwo+ID4+ICsgICAgICAgICAgICAg ICBpZiAoaGFuZGxlID4gcG9zLT5oYW5kbGUpCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg cCA9ICZyYi0+cmJfcmlnaHQ7Cj4gPj4gKyAgICAgICAgICAgICAgIGVsc2UKPiA+PiArICAgICAg ICAgICAgICAgICAgICAgICBwID0gJnJiLT5yYl9sZWZ0Owo+ID4+ICsgICAgICAgfQo+ID4+ICsg ICAgICAgcmJfbGlua19ub2RlKCZtZW1iZXItPmhhbmRsZV9yYiwgcmIsIHApOwo+ID4+ICsgICAg ICAgcmJfaW5zZXJ0X2NvbG9yKCZtZW1iZXItPmhhbmRsZV9yYiwgJnByaW1lX2Zwcml2LT5oYW5k bGVzKTsKPiA+PiArCj4gPj4gICAgICAgICByZXR1cm4gMDsKPiA+PiAgfQo+ID4+Cj4gPj4gIHN0 YXRpYyBzdHJ1Y3QgZG1hX2J1ZiAqZHJtX3ByaW1lX2xvb2t1cF9idWZfYnlfaGFuZGxlKHN0cnVj dCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdiwKPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoYW5kbGUp Cj4gPj4gIHsKPiA+PiAtICAgICAgIHN0cnVjdCBkcm1fcHJpbWVfbWVtYmVyICptZW1iZXI7Cj4g Pj4gKyAgICAgICBzdHJ1Y3QgcmJfbm9kZSAqcmI7Cj4gPj4gKwo+ID4+ICsgICAgICAgcmIgPSBw cmltZV9mcHJpdi0+aGFuZGxlcy5yYl9ub2RlOwo+ID4+ICsgICAgICAgd2hpbGUgKHJiKSB7Cj4g Pj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJpbWVfbWVtYmVyICptZW1iZXI7Cj4gPj4K PiA+PiAtICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkobWVtYmVyLCAmcHJpbWVfZnByaXYtPmhl YWQsIGVudHJ5KSB7Cj4gPj4gKyAgICAgICAgICAgICAgIG1lbWJlciA9IHJiX2VudHJ5KHJiLCBz dHJ1Y3QgZHJtX3ByaW1lX21lbWJlciwgaGFuZGxlX3JiKTsKPiA+PiAgICAgICAgICAgICAgICAg aWYgKG1lbWJlci0+aGFuZGxlID09IGhhbmRsZSkKPiA+PiAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gbWVtYmVyLT5kbWFfYnVmOwo+ID4+ICsgICAgICAgICAgICAgICBlbHNlIGlmICht ZW1iZXItPmhhbmRsZSA8IGhhbmRsZSkKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICByYiA9 IHJiLT5yYl9yaWdodDsKPiA+PiArICAgICAgICAgICAgICAgZWxzZQo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJiID0gcmItPnJiX2xlZnQ7Cj4gPj4gICAgICAgICB9Cj4gPj4KPiA+PiAg ICAgICAgIHJldHVybiBOVUxMOwo+ID4+IEBAIC0xMDQsMTQgKzE0NiwyMyBAQCBzdGF0aWMgaW50 IGRybV9wcmltZV9sb29rdXBfYnVmX2hhbmRsZShzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0 ZSAqcHJpbWVfZnByaQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90ICpoYW5kbGUpCj4gPj4gIHsKPiA+PiAtICAgICAgIHN0cnVj dCBkcm1fcHJpbWVfbWVtYmVyICptZW1iZXI7Cj4gPj4gKyAgICAgICBzdHJ1Y3QgcmJfbm9kZSAq cmI7Cj4gPj4gKwo+ID4+ICsgICAgICAgcmIgPSBwcmltZV9mcHJpdi0+ZG1hYnVmcy5yYl9ub2Rl Owo+ID4+ICsgICAgICAgd2hpbGUgKHJiKSB7Cj4gPj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBk cm1fcHJpbWVfbWVtYmVyICptZW1iZXI7Cj4gPj4KPiA+PiAtICAgICAgIGxpc3RfZm9yX2VhY2hf ZW50cnkobWVtYmVyLCAmcHJpbWVfZnByaXYtPmhlYWQsIGVudHJ5KSB7Cj4gPj4gKyAgICAgICAg ICAgICAgIG1lbWJlciA9IHJiX2VudHJ5KHJiLCBzdHJ1Y3QgZHJtX3ByaW1lX21lbWJlciwgZG1h YnVmX3JiKTsKPiA+PiAgICAgICAgICAgICAgICAgaWYgKG1lbWJlci0+ZG1hX2J1ZiA9PSBkbWFf YnVmKSB7Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgKmhhbmRsZSA9IG1lbWJlci0+aGFu ZGxlOwo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4+ICsgICAgICAg ICAgICAgICB9IGVsc2UgaWYgKG1lbWJlci0+ZG1hX2J1ZiA8IGRtYV9idWYpIHsKPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICByYiA9IHJiLT5yYl9yaWdodDsKPiA+PiArICAgICAgICAgICAg ICAgfSBlbHNlIHsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICByYiA9IHJiLT5yYl9sZWZ0 Owo+ID4+ICAgICAgICAgICAgICAgICB9Cj4gPj4gICAgICAgICB9Cj4gPj4gKwo+ID4+ICAgICAg ICAgcmV0dXJuIC1FTk9FTlQ7Cj4gPj4gIH0KPiA+Pgo+ID4+IEBAIC0xNjYsMTMgKzIxNywyNCBA QCBzdGF0aWMgdm9pZCBkcm1fZ2VtX21hcF9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYV9idWYs Cj4gPj4gIHZvaWQgZHJtX3ByaW1lX3JlbW92ZV9idWZfaGFuZGxlX2xvY2tlZChzdHJ1Y3QgZHJt X3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYsCj4gPj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQo+ID4+ICB7Cj4g Pj4gLSAgICAgICBzdHJ1Y3QgZHJtX3ByaW1lX21lbWJlciAqbWVtYmVyLCAqc2FmZTsKPiA+PiAr ICAgICAgIHN0cnVjdCByYl9ub2RlICpyYjsKPiA+Pgo+ID4+IC0gICAgICAgbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKG1lbWJlciwgc2FmZSwgJnByaW1lX2Zwcml2LT5oZWFkLCBlbnRyeSkgewo+ ID4+ICsgICAgICAgcmIgPSBwcmltZV9mcHJpdi0+ZG1hYnVmcy5yYl9ub2RlOwo+ID4+ICsgICAg ICAgd2hpbGUgKHJiKSB7Cj4gPj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJpbWVfbWVt YmVyICptZW1iZXI7Cj4gPj4gKwo+ID4+ICsgICAgICAgICAgICAgICBtZW1iZXIgPSByYl9lbnRy eShyYiwgc3RydWN0IGRybV9wcmltZV9tZW1iZXIsIGRtYWJ1Zl9yYik7Cj4gPj4gICAgICAgICAg ICAgICAgIGlmIChtZW1iZXItPmRtYV9idWYgPT0gZG1hX2J1Zikgewo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJiX2VyYXNlKCZtZW1iZXItPmhhbmRsZV9yYiwgJnByaW1lX2Zwcml2LT5o YW5kbGVzKTsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICByYl9lcmFzZSgmbWVtYmVyLT5k bWFidWZfcmIsICZwcmltZV9mcHJpdi0+ZG1hYnVmcyk7Cj4gPj4gKwo+ID4+ICAgICAgICAgICAg ICAgICAgICAgICAgIGRtYV9idWZfcHV0KGRtYV9idWYpOwo+ID4+IC0gICAgICAgICAgICAgICAg ICAgICAgIGxpc3RfZGVsKCZtZW1iZXItPmVudHJ5KTsKPiA+PiAgICAgICAgICAgICAgICAgICAg ICAgICBrZnJlZShtZW1iZXIpOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK PiA+PiArICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1iZXItPmRtYV9idWYgPCBkbWFfYnVm KSB7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmIgPSByYi0+cmJfcmlnaHQ7Cj4gPj4g KyAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmIg PSByYi0+cmJfbGVmdDsKPiA+PiAgICAgICAgICAgICAgICAgfQo+ID4+ICAgICAgICAgfQo+ID4+ ICB9Cj4gPj4gQEAgLTc1OSwxMiArODIxLDEzIEBAIEVYUE9SVF9TWU1CT0woZHJtX3ByaW1lX2dl bV9kZXN0cm95KTsKPiA+Pgo+ID4+ICB2b2lkIGRybV9wcmltZV9pbml0X2ZpbGVfcHJpdmF0ZShz dHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYpCj4gPj4gIHsKPiA+PiAt ICAgICAgIElOSVRfTElTVF9IRUFEKCZwcmltZV9mcHJpdi0+aGVhZCk7Cj4gPj4gICAgICAgICBt dXRleF9pbml0KCZwcmltZV9mcHJpdi0+bG9jayk7Cj4gPj4gKyAgICAgICBwcmltZV9mcHJpdi0+ ZG1hYnVmcyA9IFJCX1JPT1Q7Cj4gPj4gKyAgICAgICBwcmltZV9mcHJpdi0+aGFuZGxlcyA9IFJC X1JPT1Q7Cj4gPj4gIH0KPiA+Pgo+ID4+ICB2b2lkIGRybV9wcmltZV9kZXN0cm95X2ZpbGVfcHJp dmF0ZShzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYpCj4gPj4gIHsK PiA+PiAgICAgICAgIC8qIGJ5IG5vdyBkcm1fZ2VtX3JlbGVhc2Ugc2hvdWxkJ3ZlIG1hZGUgc3Vy ZSB0aGUgbGlzdCBpcyBlbXB0eSAqLwo+ID4+IC0gICAgICAgV0FSTl9PTighbGlzdF9lbXB0eSgm cHJpbWVfZnByaXYtPmhlYWQpKTsKPiA+PiArICAgICAgIFdBUk5fT04oIVJCX0VNUFRZX1JPT1Qo JnByaW1lX2Zwcml2LT5kbWFidWZzKSk7Cj4gPj4gIH0KPiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCj4gPj4gaW5kZXggYzUzZGM5MDk0MmUw Li4yODkyMDdmMTJhZGIgMTAwNjQ0Cj4gPj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCj4gPj4g KysrIGIvaW5jbHVkZS9kcm0vZHJtUC5oCj4gPj4gQEAgLTUxLDYgKzUxLDcgQEAKPiA+PiAgI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4+ICAjaW5jbHVkZSA8bGludXgvcG9s bC5oPgo+ID4+ICAjaW5jbHVkZSA8bGludXgvcmF0ZWxpbWl0Lmg+Cj4gPj4gKyNpbmNsdWRlIDxs aW51eC9yYnRyZWUuaD4KPiA+PiAgI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Cj4gPj4gICNpbmNs dWRlIDxsaW51eC9zbGFiLmg+Cj4gPj4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ID4+IEBA IC0zNzEsMTAgKzM3MiwxMCBAQCBzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQgewo+ID4+ICAgICAg ICAgICAgICAgICAgICAgICB3ZSBkZWxpdmVyIHRoZSBldmVudCwgZm9yIHRyYWNpbmcgb25seSAq Lwo+ID4+ICB9Owo+ID4+Cj4gPj4gLS8qIGluaXRpYWwgaW1wbGVtZW50YXRvbiB1c2luZyBhIGxp bmtlZCBsaXN0IC0gdG9kbyBoYXNodGFiICovCj4gPj4gIHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9w cml2YXRlIHsKPiA+PiAtICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKPiA+PiAgICAgICAg IHN0cnVjdCBtdXRleCBsb2NrOwo+ID4+ICsgICAgICAgc3RydWN0IHJiX3Jvb3QgZG1hYnVmczsK PiA+PiArICAgICAgIHN0cnVjdCByYl9yb290IGhhbmRsZXM7Cj4gPj4gIH07Cj4gPj4KPiA+PiAg LyoqIEZpbGUgcHJpdmF0ZSBkYXRhICovCj4gPj4gLS0KPiA+PiAyLjkuMwo+ID4+Cj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFp bGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==