From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 05/15] drm/mode: move framebuffer reference into object. Date: Thu, 21 Apr 2016 10:12:57 +0200 Message-ID: <20160421081257.GG2510@phenom.ffwll.local> References: <1460697046-23781-1-git-send-email-airlied@gmail.com> <1460697046-23781-6-git-send-email-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1B0546EC0E for ; Thu, 21 Apr 2016 08:13:02 +0000 (UTC) Received: by mail-wm0-x236.google.com with SMTP id n3so119343662wmn.0 for ; Thu, 21 Apr 2016 01:13:02 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1460697046-23781-6-git-send-email-airlied@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Dave Airlie Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBcHIgMTUsIDIwMTYgYXQgMDM6MTA6MzZQTSArMTAwMCwgRGF2ZSBBaXJsaWUgd3Jv dGU6Cj4gRnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPiAKPiBUaGlzIGlz IHRoZSBpbml0aWFsIGNvZGUgdG8gYWRkIHJlZmVyZW5jZXMgdG8gc29tZSBtb2RlIG9iamVjdHMu Cj4gSW4gdGhlIGZ1dHVyZSB3ZSBuZWVkIHRvIHN0YXJ0IHJlZmVyZW5jZSBjb3VudGluZyBjb25u ZWN0b3JzIHNvCj4gZmlyc3RseSBJIHdhbnQgdG8gcmVvcmdhbmlzZSB0aGUgY29kZSBzbyB0aGUg ZnJhbWVidWZmZXIgcmVmIGNvdW50aW5nCj4gdXNlcyB0aGUgc2FtZSBwYXRocy4KPiAKPiBUaGlz IHBhdGNoIHNob3VsZG4ndCBjaGFuZ2UgYW55IGZ1bmN0aW9uYWxpdHksIGp1c3QgbW92ZXMgdGhl IGtyZWYuCj4gCj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgfCA3MiArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9jcnRj LmggICAgIHwgMjAgKysrKysrKysrKy0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlv bnMoKyksIDM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gaW5kZXggODYxNjczNy4u NzVhNDVlOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gQEAgLTI3NSw3ICsyNzUsOCBAQCBFWFBPUlRf U1lNQk9MKGRybV9nZXRfZm9ybWF0X25hbWUpOwo+ICBzdGF0aWMgaW50IGRybV9tb2RlX29iamVj dF9nZXRfcmVnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgICBzdHJ1Y3QgZHJtX21v ZGVfb2JqZWN0ICpvYmosCj4gIAkJCQkgICB1aW50MzJfdCBvYmpfdHlwZSwKPiAtCQkJCSAgIGJv b2wgcmVnaXN0ZXJfb2JqKQo+ICsJCQkJICAgYm9vbCByZWdpc3Rlcl9vYmosCj4gKwkJCQkgICB2 b2lkICgqb2JqX2ZyZWVfY2IpKHN0cnVjdCBrcmVmICprcmVmKSkKPiAgewo+ICAJaW50IHJldDsK PiAgCj4gQEAgLTI4OCw2ICsyODksMTAgQEAgc3RhdGljIGludCBkcm1fbW9kZV9vYmplY3RfZ2V0 X3JlZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCSAqLwo+ICAJCW9iai0+aWQgPSByZXQ7 Cj4gIAkJb2JqLT50eXBlID0gb2JqX3R5cGU7Cj4gKwkJaWYgKG9ial9mcmVlX2NiKSB7Cj4gKwkJ CW9iai0+ZnJlZV9jYiA9IG9ial9mcmVlX2NiOwo+ICsJCQlrcmVmX2luaXQoJm9iai0+cmVmY291 bnQpOwo+ICsJCX0KPiAgCX0KPiAgCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5pZHJf bXV0ZXgpOwo+ICAKPiBAQCAtMzExLDcgKzMxNiw3IEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfb2Jq ZWN0X2dldF9yZWcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgaW50IGRybV9tb2RlX29iamVj dF9nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJc3RydWN0IGRybV9tb2RlX29iamVj dCAqb2JqLCB1aW50MzJfdCBvYmpfdHlwZSkKPiAgewo+IC0JcmV0dXJuIGRybV9tb2RlX29iamVj dF9nZXRfcmVnKGRldiwgb2JqLCBvYmpfdHlwZSwgdHJ1ZSk7Cj4gKwlyZXR1cm4gZHJtX21vZGVf b2JqZWN0X2dldF9yZWcoZGV2LCBvYmosIG9ial90eXBlLCB0cnVlLCBOVUxMKTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQgZHJtX21vZGVfb2JqZWN0X3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gQEAgLTM4OSwxMCArMzk0LDM1IEBAIHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKmRy bV9tb2RlX29iamVjdF9maW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIH0KPiAgRVhQT1JU X1NZTUJPTChkcm1fbW9kZV9vYmplY3RfZmluZCk7Cj4gIAoKS2VybmVsZG9jIGZvciB0aGlzIG9u ZSB3b3VsZCBiZSBuaWNlLgoKPiArdm9pZCBkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uoc3Ry dWN0IGRybV9tb2RlX29iamVjdCAqb2JqKQo+ICt7Cj4gKwlpZiAob2JqLT5mcmVlX2NiKSB7Cj4g KwkJRFJNX0RFQlVHKCJPQkogSUQ6ICVkICglZClcbiIsIG9iai0+aWQsIGF0b21pY19yZWFkKCZv YmotPnJlZmNvdW50LnJlZmNvdW50KSk7Cj4gKwkJa3JlZl9wdXQoJm9iai0+cmVmY291bnQsIG9i ai0+ZnJlZV9jYik7Cj4gKwl9Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9vYmplY3Rf dW5yZWZlcmVuY2UpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9tb2RlX29iamVjdF9yZWZlcmVuY2Ug LSBpbmNyIHRoZSBmYiByZWZjbnQKPiArICogQG9iajogbW9kZV9vYmplY3QKPiArICoKPiArICog VGhpcyBmdW5jdGlvbiBvcGVyYXRlcyBvbmx5IG9uIHJlZmNvdW50ZWQgb2JqZWN0cy4KPiArICog VGhpcyBmdW5jdGlvbnMgaW5jcmVtZW50cyB0aGUgb2JqZWN0J3MgcmVmY291bnQuCj4gKyAqLwo+ ICt2b2lkIGRybV9tb2RlX29iamVjdF9yZWZlcmVuY2Uoc3RydWN0IGRybV9tb2RlX29iamVjdCAq b2JqKQo+ICt7Cj4gKwlpZiAob2JqLT5mcmVlX2NiKSB7Cj4gKwkJRFJNX0RFQlVHKCJPQkogSUQ6 ICVkICglZClcbiIsIG9iai0+aWQsIGF0b21pY19yZWFkKCZvYmotPnJlZmNvdW50LnJlZmNvdW50 KSk7Cj4gKwkJa3JlZl9nZXQoJm9iai0+cmVmY291bnQpOwo+ICsJfQo+ICt9Cj4gK0VYUE9SVF9T WU1CT0woZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZSk7Cj4gKwo+ICBzdGF0aWMgdm9pZCBkcm1f ZnJhbWVidWZmZXJfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikKPiAgewo+ICAJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPQo+IC0JCQljb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciwgcmVmY291bnQpOwo+ICsJCQljb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciwgYmFzZS5yZWZjb3VudCk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZmItPmRldjsKPiAgCj4gIAkvKgo+IEBAIC00MzAsMTIgKzQ2MCwxMiBAQCBpbnQgZHJtX2ZyYW1l YnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCj4gIAlpbnQgcmV0Owo+ICAKPiAgCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcu ZmJfbG9jayk7Cj4gLQlrcmVmX2luaXQoJmZiLT5yZWZjb3VudCk7Cj4gIAlJTklUX0xJU1RfSEVB RCgmZmItPmZpbHBfaGVhZCk7Cj4gIAlmYi0+ZGV2ID0gZGV2Owo+ICAJZmItPmZ1bmNzID0gZnVu Y3M7Cj4gIAo+IC0JcmV0ID0gZHJtX21vZGVfb2JqZWN0X2dldChkZXYsICZmYi0+YmFzZSwgRFJN X01PREVfT0JKRUNUX0ZCKTsKPiArCXJldCA9IGRybV9tb2RlX29iamVjdF9nZXRfcmVnKGRldiwg JmZiLT5iYXNlLCBEUk1fTU9ERV9PQkpFQ1RfRkIsCj4gKwkJCQkgICAgICB0cnVlLCBkcm1fZnJh bWVidWZmZXJfZnJlZSk7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0Owo+ICAKPiBAQCAtNDgy LDcgKzUxMiw3IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmRybV9mcmFtZWJ1ZmZlcl9sb29r dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25m aWcuZmJfbG9jayk7Cj4gIAlmYiA9IF9fZHJtX2ZyYW1lYnVmZmVyX2xvb2t1cChkZXYsIGlkKTsK PiAgCWlmIChmYikgewo+IC0JCWlmICgha3JlZl9nZXRfdW5sZXNzX3plcm8oJmZiLT5yZWZjb3Vu dCkpCj4gKwkJaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmZmItPmJhc2UucmVmY291bnQpKQo+ ICAJCQlmYiA9IE5VTEw7Cj4gIAl9Cj4gIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcu ZmJfbG9jayk7Cj4gQEAgLTQ5MiwzMiArNTIyLDYgQEAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZHJtX2ZyYW1lYnVmZmVyX2xvb2t1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICBFWFBPUlRf U1lNQk9MKGRybV9mcmFtZWJ1ZmZlcl9sb29rdXApOwo+ICAKPiAgLyoqCj4gLSAqIGRybV9mcmFt ZWJ1ZmZlcl91bnJlZmVyZW5jZSAtIHVucmVmIGEgZnJhbWVidWZmZXIKPiAtICogQGZiOiBmcmFt ZWJ1ZmZlciB0byB1bnJlZgo+IC0gKgo+IC0gKiBUaGlzIGZ1bmN0aW9ucyBkZWNyZW1lbnRzIHRo ZSBmYidzIHJlZmNvdW50IGFuZCBmcmVlcyBpdCBpZiBpdCBkcm9wcyB0byB6ZXJvLgo+IC0gKi8K PiAtdm9pZCBkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uoc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIpCj4gLXsKPiAtCURSTV9ERUJVRygiJXA6IEZCIElEOiAlZCAoJWQpXG4iLCBmYiwgZmIt PmJhc2UuaWQsIGF0b21pY19yZWFkKCZmYi0+cmVmY291bnQucmVmY291bnQpKTsKPiAtCWtyZWZf cHV0KCZmYi0+cmVmY291bnQsIGRybV9mcmFtZWJ1ZmZlcl9mcmVlKTsKPiAtfQo+IC1FWFBPUlRf U1lNQk9MKGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZSk7Cj4gLQo+IC0vKioKPiAtICogZHJt X2ZyYW1lYnVmZmVyX3JlZmVyZW5jZSAtIGluY3IgdGhlIGZiIHJlZmNudAo+IC0gKiBAZmI6IGZy YW1lYnVmZmVyCj4gLSAqCj4gLSAqIFRoaXMgZnVuY3Rpb25zIGluY3JlbWVudHMgdGhlIGZiJ3Mg cmVmY291bnQuCj4gLSAqLwo+IC12b2lkIGRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uoc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIpCj4gLXsKPiAtCURSTV9ERUJVRygiJXA6IEZCIElEOiAlZCAo JWQpXG4iLCBmYiwgZmItPmJhc2UuaWQsIGF0b21pY19yZWFkKCZmYi0+cmVmY291bnQucmVmY291 bnQpKTsKPiAtCWtyZWZfZ2V0KCZmYi0+cmVmY291bnQpOwo+IC19Cj4gLUVYUE9SVF9TWU1CT0wo ZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZSk7Cj4gLQo+IC0vKioKPiAgICogZHJtX2ZyYW1lYnVm ZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZSAtIHVucmVnaXN0ZXIgYSBwcml2YXRlIGZiIGZyb20gdGhl IGxvb2t1cCBpZHIKPiAgICogQGZiOiBmYiB0byB1bnJlZ2lzdGVyCj4gICAqCj4gQEAgLTkwMiw3 ICs5MDYsNyBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAo+ICAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKPiAgCj4gLQlyZXQgPSBkcm1fbW9k ZV9vYmplY3RfZ2V0X3JlZyhkZXYsICZjb25uZWN0b3ItPmJhc2UsIERSTV9NT0RFX09CSkVDVF9D T05ORUNUT1IsIGZhbHNlKTsKPiArCXJldCA9IGRybV9tb2RlX29iamVjdF9nZXRfcmVnKGRldiwg JmNvbm5lY3Rvci0+YmFzZSwgRFJNX01PREVfT0JKRUNUX0NPTk5FQ1RPUiwgZmFsc2UsIE5VTEwp Owo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIG91dF91bmxvY2s7Cj4gIAo+IEBAIC01OTIyLDcgKzU5 MjYsNyBAQCB2b2lkIGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gIAkgKi8KPiAgCVdBUk5fT04oIWxpc3RfZW1wdHkoJmRldi0+bW9kZV9jb25maWcuZmJf bGlzdCkpOwo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGZiLCBmYnQsICZkZXYtPm1vZGVf Y29uZmlnLmZiX2xpc3QsIGhlYWQpIHsKPiAtCQlkcm1fZnJhbWVidWZmZXJfZnJlZSgmZmItPnJl ZmNvdW50KTsKPiArCQlkcm1fZnJhbWVidWZmZXJfZnJlZSgmZmItPmJhc2UucmVmY291bnQpOwo+ ICAJfQo+ICAKPiAgCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwbGFuZSwgcGx0LCAmZGV2LT5t b2RlX2NvbmZpZy5wbGFuZV9saXN0LAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0 Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+IGluZGV4IDk5YTEyZjAuLjU3NmZhZjQgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKPiBAQCAtNTksNiArNTksOCBAQCBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0IHsKPiAg CXVpbnQzMl90IGlkOwo+ICAJdWludDMyX3QgdHlwZTsKPiAgCXN0cnVjdCBkcm1fb2JqZWN0X3By b3BlcnRpZXMgKnByb3BlcnRpZXM7Cj4gKwlzdHJ1Y3Qga3JlZiByZWZjb3VudDsKPiArCXZvaWQg KCpmcmVlX2NiKShzdHJ1Y3Qga3JlZiAqa3JlZik7Cj4gIH07Cj4gIAo+ICAjZGVmaW5lIERSTV9P QkpFQ1RfTUFYX1BST1BFUlRZIDI0Cj4gQEAgLTIzMyw4ICsyMzUsOCBAQCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyIHsKPiAgCSAqIHNob3VsZCBiZSBkZWZlcnJlZC4gIEluIGNhc2VzIGxpa2UgdGhp cywgdGhlIGRyaXZlciB3b3VsZCBsaWtlIHRvCj4gIAkgKiBob2xkIGEgcmVmIHRvIHRoZSBmYiBl dmVuIHRob3VnaCBpdCBoYXMgYWxyZWFkeSBiZWVuIHJlbW92ZWQgZnJvbQo+ICAJICogdXNlcnNw YWNlIHBlcnNwZWN0aXZlLgoKQmlrZXNoZWQ6IE1heWJlIG5ldyBwYXJhZ3JhcGggaGVyZSBmb3Ig YmV0dGVyIGZvcm1hdHRpbmcgd2l0aCBrZXJuZWxkb2MuCgo+ICsJICogVGhlIHJlZmNvdW50IGlz IHN0b3JlZCBpbnNpZGUgdGhlIG1vZGUgb2JqZWN0Lgo+ICAJICovCj4gLQlzdHJ1Y3Qga3JlZiBy ZWZjb3VudDsKPiAgCS8qCj4gIAkgKiBQbGFjZSBvbiB0aGUgZGV2LT5tb2RlX2NvbmZpZy5mYl9s aXN0LCBhY2Nlc3MgcHJvdGVjdGVkIGJ5Cj4gIAkgKiBkZXYtPm1vZGVfY29uZmlnLmZiX2xvY2su Cj4gQEAgLTIzODYsOCArMjM4OCw2IEBAIGV4dGVybiBpbnQgZHJtX2ZyYW1lYnVmZmVyX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZm ZXJfZnVuY3MgKmZ1bmNzKTsKPiAgZXh0ZXJuIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmRybV9m cmFtZWJ1ZmZlcl9sb29rdXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCQkJICAgICAg dWludDMyX3QgaWQpOwo+IC1leHRlcm4gdm9pZCBkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uo c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwo+IC1leHRlcm4gdm9pZCBkcm1fZnJhbWVidWZm ZXJfcmVmZXJlbmNlKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKPiAgZXh0ZXJuIHZvaWQg ZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYik7Cj4gIGV4 dGVybiB2b2lkIGRybV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiKTsKPiAgZXh0ZXJuIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZShz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYik7Cj4gQEAgLTI0NDUsNiArMjQ0NSw4IEBAIGV4dGVy biBpbnQgZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gIAkJCQkJIGludCBnYW1tYV9zaXplKTsKPiAgZXh0ZXJuIHN0cnVjdCBkcm1fbW9kZV9vYmpl Y3QgKmRybV9tb2RlX29iamVjdF9maW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJdWlu dDMyX3QgaWQsIHVpbnQzMl90IHR5cGUpOwo+ICt2b2lkIGRybV9tb2RlX29iamVjdF9yZWZlcmVu Y2Uoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKTsKPiArdm9pZCBkcm1fbW9kZV9vYmplY3Rf dW5yZWZlcmVuY2Uoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKTsKPiAgCj4gIC8qIElPQ1RM cyAqLwo+ICBleHRlcm4gaW50IGRybV9tb2RlX2dldHJlc291cmNlcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+IEBAIC0yNjA4LDkgKzI2MTAsMTkgQEAgc3RhdGljIGlubGluZSB1aW50MzJfdCBk cm1fY29sb3JfbHV0X2V4dHJhY3QodWludDMyX3QgdXNlcl9pbnB1dCwKPiAgCXJldHVybiBjbGFt cF92YWwodmFsLCAwLCBtYXgpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2Zy YW1lYnVmZmVyX3JlZmVyZW5jZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiArewo+ICsJ ZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZSgmZmItPmJhc2UpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW5saW5lIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiKQo+ICt7Cj4gKwlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2UoJmZiLT5iYXNl KTsKPiArfQoKWW91IGxvc3QgdGhlIGtlcm5lbGRvYyBmb3IgdGhlIGFib3ZlIHR3by4KCldpdGgg dGhlIGtlcm5lbGRvYyBjb21tbWVudHMgYWJvdmUgYWRkcmVzc2VkOgoKUmV2aWV3ZWQtYnk6IERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgoKPiArCj4gIHN0YXRpYyBpbmxp bmUgdWludDMyX3QgZHJtX2ZyYW1lYnVmZmVyX3JlYWRfcmVmY291bnQoc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIpCj4gIHsKPiAtCXJldHVybiBhdG9taWNfcmVhZCgmZmItPnJlZmNvdW50LnJl ZmNvdW50KTsKPiArCXJldHVybiBhdG9taWNfcmVhZCgmZmItPmJhc2UucmVmY291bnQucmVmY291 bnQpOwo+ICB9Cj4gIAo+ICAvKiBQbGFuZSBsaXN0IGl0ZXJhdG9yIGZvciBsZWdhY3kgKG92ZXJs YXkgb25seSkgcGxhbmVzLiAqLwo+IC0tIAo+IDIuNS41Cj4gCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4g ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==