From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 4/6] drm: Introduce drm_framebuffer_{get,put}() Date: Wed, 8 Feb 2017 14:36:37 -0500 Message-ID: <20170208193637.GH14321@art_vandelay> References: <20170208182408.5442-1-thierry.reding@gmail.com> <20170208182408.5442-5-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x229.google.com (mail-yw0-x229.google.com [IPv6:2607:f8b0:4002:c05::229]) by gabe.freedesktop.org (Postfix) with ESMTPS id CEC9F6E999 for ; Wed, 8 Feb 2017 19:36:40 +0000 (UTC) Received: by mail-yw0-x229.google.com with SMTP id l19so92301769ywc.2 for ; Wed, 08 Feb 2017 11:36:40 -0800 (PST) Content-Disposition: inline In-Reply-To: <20170208182408.5442-5-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Daniel Vetter , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBGZWIgMDgsIDIwMTcgYXQgMDc6MjQ6MDZQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBG b3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciByZWZlcmVuY2UgY291bnRpbmcgQVBJcyBpbiB0aGUg a2VybmVsLCBhZGQKPiBkcm1fZnJhbWVidWZmZXJfZ2V0KCkgYW5kIGRybV9mcmFtZWJ1ZmZlcl9w dXQoKSB0byByZWZlcmVuY2UgY291bnQgRFJNCj4gZnJhbWVidWZmZXJzLgo+IAo+IENvbXBhdGli aWxpdHkgYWxpYXNlcyBhcmUgYWRkZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRv IGhlbHAKPiBzcGVlZCB1cCB0aGUgdHJhbnNpdGlvbiwgYWxsIHRoZSBpbnN0YW5jZXMgb2YgdGhl IG9sZCBmdW5jdGlvbnMgaW4gdGhlCj4gRFJNIGNvcmUgYXJlIGFscmVhZHkgcmVwbGFjZWQgaW4g dGhpcyBjb21taXQuCj4gCj4gVGhlIGV4aXN0aW5nIHNlbWFudGljIHBhdGNoIGZvciB0aGUgRFJN IHN1YnN5c3RlbS13aWRlIGNvbnZlcnNpb24gaXMKPiBleHRlbmRlZCB0byBhY2NvdW50IGZvciB0 aGVzZSBuZXcgaGVscGVycy4KPiAKClJldmlld2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNo cm9taXVtLm9yZz4KCj4gU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZp ZGlhLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgICAg ICB8ICA2ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgICB8 ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAgICAgIHwgIDgg KysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyAgICAgICAgfCAzNCAr KysrKysrKysrKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAgICAg ICAgICAgICAgfCAxMiArKysrLS0tLQo+ICBpbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaCAg ICAgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAgc2NyaXB0 cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaSB8IDEwICsrKysrKysKPiAgNyBmaWxl cyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljLmMKPiBpbmRleCA4MmJhZDQwYjJmM2UuLjc0MDY1MGI0NTBjNSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYwo+IEBAIC03MzMsNyArNzMzLDcgQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gZHJtX2ZyYW1lYnVmZmVyX2xvb2t1cChkZXYsIHZhbCk7Cj4gIAkJZHJtX2F0 b21pY19zZXRfZmJfZm9yX3BsYW5lKHN0YXRlLCBmYik7Cj4gIAkJaWYgKGZiKQo+IC0JCQlkcm1f ZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOwo+ICsJCQlkcm1fZnJhbWVidWZmZXJfcHV0KGZi KTsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2luX2ZlbmNlX2ZkKSB7 Cj4gIAkJaWYgKHN0YXRlLT5mZW5jZSkKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTE4Mzcs MTIgKzE4MzcsMTIgQEAgdm9pZCBkcm1fYXRvbWljX2NsZWFuX29sZF9mYihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJCWlmIChyZXQgPT0gMCkgewo+ICAJCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpuZXdfZmIgPSBwbGFuZS0+c3RhdGUtPmZiOwo+ICAJCQlpZiAobmV3X2ZiKQo+IC0JCQkJ ZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShuZXdfZmIpOwo+ICsJCQkJZHJtX2ZyYW1lYnVmZmVy X2dldChuZXdfZmIpOwo+ICAJCQlwbGFuZS0+ZmIgPSBuZXdfZmI7Cj4gIAkJCXBsYW5lLT5jcnRj ID0gcGxhbmUtPnN0YXRlLT5jcnRjOwo+ICAKPiAgCQkJaWYgKHBsYW5lLT5vbGRfZmIpCj4gLQkJ CQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UocGxhbmUtPm9sZF9mYik7Cj4gKwkJCQlkcm1f ZnJhbWVidWZmZXJfcHV0KHBsYW5lLT5vbGRfZmIpOwo+ICAJCX0KPiAgCQlwbGFuZS0+b2xkX2Zi ID0gTlVMTDsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IGluZGV4IDlm MmMyOGRkZjk0OC4uNGRjZDY0Y2EzNGM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMKPiBAQCAtMzE1MSw3ICszMTUxLDcgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3Bs YW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCW1lbWNweShz dGF0ZSwgcGxhbmUtPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7Cj4gIAo+ICAJaWYgKHN0YXRlLT5m YikKPiAtCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKHN0YXRlLT5mYik7Cj4gKwkJZHJtX2Zy YW1lYnVmZmVyX2dldChzdGF0ZS0+ZmIpOwo+ICAKPiAgCXN0YXRlLT5mZW5jZSA9IE5VTEw7Cj4g IH0KPiBAQCAtMzE5MSw3ICszMTkxLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBl cl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUpOwo+ICB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxh bmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJ aWYgKHN0YXRlLT5mYikKPiAtCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uoc3RhdGUtPmZi KTsKPiArCQlkcm1fZnJhbWVidWZmZXJfcHV0KHN0YXRlLT5mYik7Cj4gIAo+ICAJaWYgKHN0YXRl LT5mZW5jZSkKPiAgCQlkbWFfZmVuY2VfcHV0KHN0YXRlLT5mZW5jZSk7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMK PiBpbmRleCA5NTk0YzYyMzc5OWIuLmUyOTc0ZDNjOTJlNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4g QEAgLTQ3MSw5ICs0NzEsOSBAQCBpbnQgZHJtX21vZGVfc2V0X2NvbmZpZ19pbnRlcm5hbChzdHJ1 Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gIAo+ICAJZHJtX2Zvcl9lYWNoX2NydGModG1wLCBjcnRj LT5kZXYpIHsKPiAgCQlpZiAodG1wLT5wcmltYXJ5LT5mYikKPiAtCQkJZHJtX2ZyYW1lYnVmZmVy X3JlZmVyZW5jZSh0bXAtPnByaW1hcnktPmZiKTsKPiArCQkJZHJtX2ZyYW1lYnVmZmVyX2dldCh0 bXAtPnByaW1hcnktPmZiKTsKPiAgCQlpZiAodG1wLT5wcmltYXJ5LT5vbGRfZmIpCj4gLQkJCWRy bV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZSh0bXAtPnByaW1hcnktPm9sZF9mYik7Cj4gKwkJCWRy bV9mcmFtZWJ1ZmZlcl9wdXQodG1wLT5wcmltYXJ5LT5vbGRfZmIpOwo+ICAJCXRtcC0+cHJpbWFy eS0+b2xkX2ZiID0gTlVMTDsKPiAgCX0KPiAgCj4gQEAgLTU2Nyw3ICs1NjcsNyBAQCBpbnQgZHJt X21vZGVfc2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJCQl9 Cj4gIAkJCWZiID0gY3J0Yy0+cHJpbWFyeS0+ZmI7Cj4gIAkJCS8qIE1ha2UgcmVmY291bnRpbmcg c3ltbWV0cmljIHdpdGggdGhlIGxvb2t1cCBwYXRoLiAqLwo+IC0JCQlkcm1fZnJhbWVidWZmZXJf cmVmZXJlbmNlKGZiKTsKPiArCQkJZHJtX2ZyYW1lYnVmZmVyX2dldChmYik7Cj4gIAkJfSBlbHNl IHsKPiAgCQkJZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwgY3J0Y19yZXEtPmZiX2lk KTsKPiAgCQkJaWYgKCFmYikgewo+IEBAIC02ODAsNyArNjgwLDcgQEAgaW50IGRybV9tb2RlX3Nl dGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCj4gIG91dDoKPiAg CWlmIChmYikKPiAtCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOwo+ICsJCWRybV9m cmFtZWJ1ZmZlcl9wdXQoZmIpOwo+ICAKPiAgCWlmIChjb25uZWN0b3Jfc2V0KSB7Cj4gIAkJZm9y IChpID0gMDsgaSA8IGNydGNfcmVxLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9mcmFtZWJ1ZmZlci5jCj4gaW5kZXggMTFkYWEyNDY5MmFhLi41ZThlMWQwNjg2NmEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCj4gQEAgLTUyLDEzICs1MiwxMyBAQAo+ICAg KiBtZXRhZGF0YSBmaWVsZHMuCj4gICAqCj4gICAqIFRoZSBsaWZldGltZSBvZiBhIGRybSBmcmFt ZWJ1ZmZlciBpcyBjb250cm9sbGVkIHdpdGggYSByZWZlcmVuY2UgY291bnQsCj4gLSAqIGRyaXZl cnMgY2FuIGdyYWIgYWRkaXRpb25hbCByZWZlcmVuY2VzIHdpdGggZHJtX2ZyYW1lYnVmZmVyX3Jl ZmVyZW5jZSgpIGFuZAo+IC0gKiBkcm9wIHRoZW0gYWdhaW4gd2l0aCBkcm1fZnJhbWVidWZmZXJf dW5yZWZlcmVuY2UoKS4gRm9yIGRyaXZlci1wcml2YXRlCj4gLSAqIGZyYW1lYnVmZmVycyBmb3Ig d2hpY2ggdGhlIGxhc3QgcmVmZXJlbmNlIGlzIG5ldmVyIGRyb3BwZWQgKGUuZy4gZm9yIHRoZQo+ IC0gKiBmYmRldiBmcmFtZWJ1ZmZlciB3aGVuIHRoZSBzdHJ1Y3QgJnN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgaXMgZW1iZWRkZWQgaW50bwo+IC0gKiB0aGUgZmJkZXYgaGVscGVyIHN0cnVjdCkgZHJp dmVycyBjYW4gbWFudWFsbHkgY2xlYW4gdXAgYSBmcmFtZWJ1ZmZlciBhdAo+IC0gKiBtb2R1bGUg dW5sb2FkIHRpbWUgd2l0aCBkcm1fZnJhbWVidWZmZXJfdW5yZWdpc3Rlcl9wcml2YXRlKCkuIEJ1 dCBkb2luZyB0aGlzCj4gLSAqIGlzIG5vdCByZWNvbW1lbmRlZCwgYW5kIGl0J3MgYmV0dGVyIHRv IGhhdmUgYSBub3JtYWwgZnJlZS1zdGFuZGluZyAmc3RydWN0Cj4gKyAqIGRyaXZlcnMgY2FuIGdy YWIgYWRkaXRpb25hbCByZWZlcmVuY2VzIHdpdGggZHJtX2ZyYW1lYnVmZmVyX2dldCgpIGFuZCBk cm9wCj4gKyAqIHRoZW0gYWdhaW4gd2l0aCBkcm1fZnJhbWVidWZmZXJfcHV0KCkuIEZvciBkcml2 ZXItcHJpdmF0ZSBmcmFtZWJ1ZmZlcnMgZm9yCj4gKyAqIHdoaWNoIHRoZSBsYXN0IHJlZmVyZW5j ZSBpcyBuZXZlciBkcm9wcGVkIChlLmcuIGZvciB0aGUgZmJkZXYgZnJhbWVidWZmZXIKPiArICog d2hlbiB0aGUgc3RydWN0ICZzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGlzIGVtYmVkZGVkIGludG8g dGhlIGZiZGV2IGhlbHBlcgo+ICsgKiBzdHJ1Y3QpIGRyaXZlcnMgY2FuIG1hbnVhbGx5IGNsZWFu IHVwIGEgZnJhbWVidWZmZXIgYXQgbW9kdWxlIHVubG9hZCB0aW1lCj4gKyAqIHdpdGggZHJtX2Zy YW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZSgpLiBCdXQgZG9pbmcgdGhpcyBpcyBub3QKPiAr ICogcmVjb21tZW5kZWQsIGFuZCBpdCdzIGJldHRlciB0byBoYXZlIGEgbm9ybWFsIGZyZWUtc3Rh bmRpbmcgJnN0cnVjdAo+ICAgKiBkcm1fZnJhbWVidWZmZXIuCj4gICAqLwo+ICAKPiBAQCAtMzc0 LDcgKzM3NCw3IEBAIGludCBkcm1fbW9kZV9ybWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAltdXRleF91bmxvY2soJmZpbGVfcHJpdi0+ZmJzX2xvY2spOwo+ICAKPiAgCS8qIGRyb3AgdGhl IHJlZmVyZW5jZSB3ZSBwaWNrZWQgdXAgaW4gZnJhbWVidWZmZXIgbG9va3VwICovCj4gLQlkcm1f ZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOwo+ICsJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7 Cj4gIAo+ICAJLyoKPiAgCSAqIHdlIG5vdyBvd24gdGhlIHJlZmVyZW5jZSB0aGF0IHdhcyBzdG9y ZWQgaW4gdGhlIGZicyBsaXN0Cj4gQEAgLTM5NCwxMiArMzk0LDEyIEBAIGludCBkcm1fbW9kZV9y bWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJZmx1c2hfd29yaygmYXJnLndvcmspOwo+ ICAJCWRlc3Ryb3lfd29ya19vbl9zdGFjaygmYXJnLndvcmspOwo+ICAJfSBlbHNlCj4gLQkJZHJt X2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKPiArCQlkcm1fZnJhbWVidWZmZXJfcHV0KGZi KTsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgCj4gIGZhaWxfdW5yZWY6Cj4gLQlkcm1fZnJhbWVidWZm ZXJfdW5yZWZlcmVuY2UoZmIpOwo+ICsJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7Cj4gIAlyZXR1 cm4gLUVOT0VOVDsKPiAgfQo+ICAKPiBAQCAtNDUzLDcgKzQ1Myw3IEBAIGludCBkcm1fbW9kZV9n ZXRmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXJldCA9IC1FTk9ERVY7Cj4gIAl9Cj4g IAo+IC0JZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKPiArCWRybV9mcmFtZWJ1ZmZl cl9wdXQoZmIpOwo+ICAKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiBAQCAtNTQwLDcgKzU0MCw3IEBA IGludCBkcm1fbW9kZV9kaXJ0eWZiX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIG91 dF9lcnIyOgo+ICAJa2ZyZWUoY2xpcHMpOwo+ICBvdXRfZXJyMToKPiAtCWRybV9mcmFtZWJ1ZmZl cl91bnJlZmVyZW5jZShmYik7Cj4gKwlkcm1fZnJhbWVidWZmZXJfcHV0KGZiKTsKPiAgCj4gIAly ZXR1cm4gcmV0Owo+ICB9Cj4gQEAgLTU4MCw3ICs1ODAsNyBAQCB2b2lkIGRybV9mYl9yZWxlYXNl KHN0cnVjdCBkcm1fZmlsZSAqcHJpdikKPiAgCQkJbGlzdF9kZWxfaW5pdCgmZmItPmZpbHBfaGVh ZCk7Cj4gIAo+ICAJCQkvKiBUaGlzIGRyb3BzIHRoZSBmcHJpdi0+ZmJzIHJlZmVyZW5jZS4gKi8K PiAtCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKPiArCQkJZHJtX2ZyYW1lYnVm ZmVyX3B1dChmYik7Cj4gIAkJfQo+ICAJfQo+ICAKPiBAQCAtNjYxLDcgKzY2MSw3IEBAIEVYUE9S VF9TWU1CT0woZHJtX2ZyYW1lYnVmZmVyX2luaXQpOwo+ICAgKgo+ICAgKiBJZiBzdWNjZXNzZnVs LCB0aGlzIGdyYWJzIGFuIGFkZGl0aW9uYWwgcmVmZXJlbmNlIHRvIHRoZSBmcmFtZWJ1ZmZlciAt Cj4gICAqIGNhbGxlcnMgbmVlZCB0byBtYWtlIHN1cmUgdG8gZXZlbnR1YWxseSB1bnJlZmVyZW5j ZSB0aGUgcmV0dXJuZWQgZnJhbWVidWZmZXIKPiAtICogYWdhaW4sIHVzaW5nIEBkcm1fZnJhbWVi dWZmZXJfdW5yZWZlcmVuY2UuCj4gKyAqIGFnYWluLCB1c2luZyBkcm1fZnJhbWVidWZmZXJfcHV0 KCkuCj4gICAqLwo+ICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpkcm1fZnJhbWVidWZmZXJfbG9v a3VwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAgICAgIHVpbnQzMl90IGlkKQo+ IEBAIC02ODcsOCArNjg3LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fZnJhbWVidWZmZXJfbG9va3Vw KTsKPiAgICoKPiAgICogTk9URTogVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLiBGb3IgZHJp dmVyLXByaXZhdGUgZnJhbWVidWZmZXJzIGl0IGlzIG5vdAo+ICAgKiByZWNvbW1lbmRlZCB0byBl bWJlZCBhIGZyYW1lYnVmZmVyIHN0cnVjdCBpbmZvIGZiZGV2IHN0cnVjdCwgaW5zdGVhZCwgYQo+ IC0gKiBmcmFtZWJ1ZmZlciBwb2ludGVyIGlzIHByZWZlcnJlZCBhbmQgZHJtX2ZyYW1lYnVmZmVy X3VucmVmZXJlbmNlKCkgc2hvdWxkIGJlCj4gLSAqIGNhbGxlZCB3aGVuIHRoZSBmcmFtZWJ1ZmZl ciBpcyB0byBiZSBjbGVhbmVkIHVwLgo+ICsgKiBmcmFtZWJ1ZmZlciBwb2ludGVyIGlzIHByZWZl cnJlZCBhbmQgZHJtX2ZyYW1lYnVmZmVyX3B1dCgpIHNob3VsZCBiZSBjYWxsZWQKPiArICogd2hl biB0aGUgZnJhbWVidWZmZXIgaXMgdG8gYmUgY2xlYW5lZCB1cC4KPiAgICovCj4gIHZvaWQgZHJt X2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YikKPiAgewo+IEBAIC03OTAsNyArNzkwLDcgQEAgdm9pZCBkcm1fZnJhbWVidWZmZXJfcmVtb3Zl KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQo+ICAJCWRybV9tb2Rlc2V0X3VubG9ja19hbGwo ZGV2KTsKPiAgCX0KPiAgCj4gLQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOwo+ICsJ ZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fZnJhbWVi dWZmZXJfcmVtb3ZlKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxh bmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+IGluZGV4IGY0MjU5MDA0OWEzYS4u YTIyZTc2ODM3MDY1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+IEBAIC0yOTMsNyArMjkzLDcgQEAg dm9pZCBkcm1fcGxhbmVfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAg CQlyZXR1cm47Cj4gIAl9Cj4gIAkvKiBkaXNjb25uZWN0IHRoZSBwbGFuZSBmcm9tIHRoZSBmYiBh bmQgY3J0YzogKi8KPiAtCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShwbGFuZS0+b2xkX2Zi KTsKPiArCWRybV9mcmFtZWJ1ZmZlcl9wdXQocGxhbmUtPm9sZF9mYik7Cj4gIAlwbGFuZS0+b2xk X2ZiID0gTlVMTDsKPiAgCXBsYW5lLT5mYiA9IE5VTEw7Cj4gIAlwbGFuZS0+Y3J0YyA9IE5VTEw7 Cj4gQEAgLTUyMCw5ICs1MjAsOSBAQCBzdGF0aWMgaW50IF9fc2V0cGxhbmVfaW50ZXJuYWwoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAo+ICBvdXQ6Cj4gIAlpZiAoZmIpCj4gLQkJZHJtX2Zy YW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKPiArCQlkcm1fZnJhbWVidWZmZXJfcHV0KGZiKTsK PiAgCWlmIChwbGFuZS0+b2xkX2ZiKQo+IC0JCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShw bGFuZS0+b2xkX2ZiKTsKPiArCQlkcm1fZnJhbWVidWZmZXJfcHV0KHBsYW5lLT5vbGRfZmIpOwo+ ICAJcGxhbmUtPm9sZF9mYiA9IE5VTEw7Cj4gIAo+ICAJcmV0dXJuIHJldDsKPiBAQCAtNjM4LDcg KzYzOCw3IEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfY3Vyc29yX3VuaXZlcnNhbChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gIAl9IGVsc2Ugewo+ICAJCWZiID0gY3J0Yy0+Y3Vyc29yLT5mYjsKPiAg CQlpZiAoZmIpCj4gLQkJCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2UoZmIpOwo+ICsJCQlkcm1f ZnJhbWVidWZmZXJfZ2V0KGZiKTsKPiAgCX0KPiAgCj4gIAlpZiAocmVxLT5mbGFncyAmIERSTV9N T0RFX0NVUlNPUl9NT1ZFKSB7Cj4gQEAgLTkwMiw5ICs5MDIsOSBAQCBpbnQgZHJtX21vZGVfcGFn ZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAocmV0ICYmIGNydGMt PmZ1bmNzLT5wYWdlX2ZsaXBfdGFyZ2V0KQo+ICAJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7 Cj4gIAlpZiAoZmIpCj4gLQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKPiArCQlk cm1fZnJhbWVidWZmZXJfcHV0KGZiKTsKPiAgCWlmIChjcnRjLT5wcmltYXJ5LT5vbGRfZmIpCj4g LQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGNydGMtPnByaW1hcnktPm9sZF9mYik7Cj4g KwkJZHJtX2ZyYW1lYnVmZmVyX3B1dChjcnRjLT5wcmltYXJ5LT5vbGRfZmIpOwo+ICAJY3J0Yy0+ cHJpbWFyeS0+b2xkX2ZiID0gTlVMTDsKPiAgCWRybV9tb2Rlc2V0X3VubG9ja19jcnRjKGNydGMp Owo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmggYi9pbmNs dWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaAo+IGluZGV4IGRkMWUzZTk5ZGNmZi4uNTI0NGYwNTlk MjNhIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCj4gKysrIGIv aW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmgKPiBAQCAtMTAxLDggKzEwMSw4IEBAIHN0cnVj dCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mgewo+ICAgKiBjbGVhbnVwIChsaWtlIHJlbGVhc2luZyB0 aGUgcmVmZXJlbmNlKHMpIG9uIHRoZSBiYWNraW5nIEdFTSBibyhzKSkKPiAgICogc2hvdWxkIGJl IGRlZmVycmVkLiAgSW4gY2FzZXMgbGlrZSB0aGlzLCB0aGUgZHJpdmVyIHdvdWxkIGxpa2UgdG8K PiAgICogaG9sZCBhIHJlZiB0byB0aGUgZmIgZXZlbiB0aG91Z2ggaXQgaGFzIGFscmVhZHkgYmVl biByZW1vdmVkIGZyb20KPiAtICogdXNlcnNwYWNlIHBlcnNwZWN0aXZlLiBTZWUgZHJtX2ZyYW1l YnVmZmVyX3JlZmVyZW5jZSgpIGFuZAo+IC0gKiBkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uo KS4KPiArICogdXNlcnNwYWNlIHBlcnNwZWN0aXZlLiBTZWUgZHJtX2ZyYW1lYnVmZmVyX2dldCgp IGFuZAo+ICsgKiBkcm1fZnJhbWVidWZmZXJfcHV0KCkuCj4gICAqCj4gICAqIFRoZSByZWZjb3Vu dCBpcyBzdG9yZWQgaW5zaWRlIHRoZSBtb2RlIG9iamVjdCBAYmFzZS4KPiAgICovCj4gQEAgLTIw NCwyNSArMjA0LDUwIEBAIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXAoc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIpOwo+ICB2b2lkIGRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZh dGUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwo+ICAKPiAgLyoqCj4gLSAqIGRybV9mcmFt ZWJ1ZmZlcl9yZWZlcmVuY2UgLSBpbmNyIHRoZSBmYiByZWZjbnQKPiAtICogQGZiOiBmcmFtZWJ1 ZmZlcgo+ICsgKiBkcm1fZnJhbWVidWZmZXJfZ2V0IC0gYWNxdWlyZSBhIGZyYW1lYnVmZmVyIHJl ZmVyZW5jZQo+ICsgKiBAZmI6IERSTSBmcmFtZWJ1ZmZlcgo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0 aW9uIGluY3JlbWVudHMgdGhlIGZyYW1lYnVmZmVyJ3MgcmVmZXJlbmNlIGNvdW50Lgo+ICsgKi8K PiArc3RhdGljIGlubGluZSB2b2lkIGRybV9mcmFtZWJ1ZmZlcl9nZXQoc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIpCj4gK3sKPiArCWRybV9tb2RlX29iamVjdF9nZXQoJmZiLT5iYXNlKTsKPiAr fQo+ICsKPiArLyoqCj4gKyAqIGRybV9mcmFtZWJ1ZmZlcl9wdXQgLSByZWxlYXNlIGEgZnJhbWVi dWZmZXIgcmVmZXJlbmNlCj4gKyAqIEBmYjogRFJNIGZyYW1lYnVmZmVyCj4gKyAqCj4gKyAqIFRo aXMgZnVuY3Rpb24gZGVjcmVtZW50cyB0aGUgZnJhbWVidWZmZXIncyByZWZlcmVuY2UgY291bnQg YW5kIGZyZWVzIHRoZQo+ICsgKiBmcmFtZWJ1ZmZlciBpZiB0aGUgcmVmZXJlbmNlIGNvdW50IGRy b3BzIHRvIHplcm8uCj4gKyAqLwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2ZyYW1lYnVmZmVy X3B1dChzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiArewo+ICsJZHJtX21vZGVfb2JqZWN0 X3B1dCgmZmItPmJhc2UpOwo+ICt9Cj4gKwo+ICsvKioKPiArICogZHJtX2ZyYW1lYnVmZmVyX3Jl ZmVyZW5jZSAtIGFjcXVpcmUgYSBmcmFtZWJ1ZmZlciByZWZlcmVuY2UKPiArICogQGZiOiBEUk0g ZnJhbWVidWZmZXIKPiAgICoKPiAtICogVGhpcyBmdW5jdGlvbnMgaW5jcmVtZW50cyB0aGUgZmIn cyByZWZjb3VudC4KPiArICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9yIGRybV9m cmFtZWJ1ZmZlcl9nZXQoKSBhbmQgc2hvdWxkIG5vdCBiZQo+ICsgKiB1c2VkIGJ5IG5ldyBjb2Rl Lgo+ICAgKi8KPiAgc3RhdGljIGlubGluZSB2b2lkIGRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uo c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCj4gIHsKPiAtCWRybV9tb2RlX29iamVjdF9yZWZl cmVuY2UoJmZiLT5iYXNlKTsKPiArCWRybV9mcmFtZWJ1ZmZlcl9nZXQoZmIpOwo+ICB9Cj4gIAo+ ICAvKioKPiAtICogZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlIC0gdW5yZWYgYSBmcmFtZWJ1 ZmZlcgo+IC0gKiBAZmI6IGZyYW1lYnVmZmVyIHRvIHVucmVmCj4gKyAqIGRybV9mcmFtZWJ1ZmZl cl91bnJlZmVyZW5jZSAtIHJlbGVhc2UgYSBmcmFtZWJ1ZmZlciByZWZlcmVuY2UKPiArICogQGZi OiBEUk0gZnJhbWVidWZmZXIKPiAgICoKPiAtICogVGhpcyBmdW5jdGlvbnMgZGVjcmVtZW50cyB0 aGUgZmIncyByZWZjb3VudCBhbmQgZnJlZXMgaXQgaWYgaXQgZHJvcHMgdG8gemVyby4KPiArICog VGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9yIGRybV9mcmFtZWJ1ZmZlcl9wdXQoKSBh bmQgc2hvdWxkIG5vdCBiZQo+ICsgKiB1c2VkIGJ5IG5ldyBjb2RlLgo+ICAgKi8KPiAgc3RhdGlj IGlubGluZSB2b2lkIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYikKPiAgewo+IC0JZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKCZmYi0+YmFz ZSk7Cj4gKwlkcm1fZnJhbWVidWZmZXJfcHV0KGZiKTsKPiAgfQo+ICAKPiAgLyoqCj4gQEAgLTI0 OCw5ICsyNzMsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX2Fzc2lnbihz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoqcCwKPiAgCQkJCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiKQo+ICB7Cj4gIAlpZiAoZmIpCj4gLQkJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShm Yik7Cj4gKwkJZHJtX2ZyYW1lYnVmZmVyX2dldChmYik7Cj4gIAlpZiAoKnApCj4gLQkJZHJtX2Zy YW1lYnVmZmVyX3VucmVmZXJlbmNlKCpwKTsKPiArCQlkcm1fZnJhbWVidWZmZXJfcHV0KCpwKTsK PiAgCSpwID0gZmI7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29jY2luZWxsZS9h cGkvZHJtLWdldC1wdXQuY29jY2kgYi9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0 LmNvY2NpCj4gaW5kZXggOGE0YzJjYjc4ODllLi5mZDI5OGMyNGE0NjUgMTAwNjQ0Cj4gLS0tIGEv c2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQo+ICsrKyBiL3NjcmlwdHMv Y29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kKPiBAQCAtMjYsNiArMjYsMTIgQEAgZXhw cmVzc2lvbiBvYmplY3Q7Cj4gIHwKPiAgLSBkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKG9iamVj dCkKPiAgKyBkcm1fY29ubmVjdG9yX3B1dChvYmplY3QpCj4gK3wKPiArLSBkcm1fZnJhbWVidWZm ZXJfcmVmZXJlbmNlKG9iamVjdCkKPiArKyBkcm1fZnJhbWVidWZmZXJfZ2V0KG9iamVjdCkKPiAr fAo+ICstIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShvYmplY3QpCj4gKysgZHJtX2ZyYW1l YnVmZmVyX3B1dChvYmplY3QpCj4gICkKPiAgCj4gIEByIGRlcGVuZHMgb24gcmVwb3J0QAo+IEBA IC00MSw2ICs0NywxMCBAQCBkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlQHAob2JqZWN0KQo+ICBk cm1fY29ubmVjdG9yX3VucmVmZXJlbmNlQHAob2JqZWN0KQo+ICB8Cj4gIGRybV9jb25uZWN0b3Jf cmVmZXJlbmNlQHAob2JqZWN0KQo+ICt8Cj4gK2RybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZUBw KG9iamVjdCkKPiArfAo+ICtkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlQHAob2JqZWN0KQo+ICAp Cj4gIAo+ICBAc2NyaXB0OnB5dGhvbiBkZXBlbmRzIG9uIHJlcG9ydEAKPiAtLSAKPiAyLjExLjEK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK Ci0tIApTZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK