From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 9/9] drm/xen-front: Implement communication with backend Date: Mon, 5 Mar 2018 10:25:15 +0100 Message-ID: <20180305092515.GJ22212@phenom.ffwll.local> References: <1519200222-20623-1-git-send-email-andr2000@gmail.com> <1519200222-20623-10-git-send-email-andr2000@gmail.com> 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 E975B6E3F7 for ; Mon, 5 Mar 2018 09:25:19 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id q83so14392337wme.5 for ; Mon, 05 Mar 2018 01:25:19 -0800 (PST) Content-Disposition: inline In-Reply-To: <1519200222-20623-10-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Oleksandr Andrushchenko Cc: jgross@suse.com, konrad.wilk@oracle.com, airlied@linux.ie, Oleksandr Andrushchenko , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, daniel.vetter@intel.com, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBGZWIgMjEsIDIwMTggYXQgMTA6MDM6NDJBTSArMDIwMCwgT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gd3JvdGU6Cj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5k cl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+IAo+IEhhbmRsZSBjb21tdW5pY2F0aW9uIHdpdGgg dGhlIGJhY2tlbmQ6Cj4gIC0gc2VuZCByZXF1ZXN0cyBhbmQgd2FpdCBmb3IgdGhlIHJlc3BvbnNl cyBhY2NvcmRpbmcKPiAgICB0byB0aGUgZGlzcGxpZiBwcm90b2NvbAo+ICAtIHNlcmlhbGl6ZSBh Y2Nlc3MgdG8gdGhlIGNvbW11bmljYXRpb24gY2hhbm5lbAo+ICAtIHRpbWUtb3V0IHVzZWQgZm9y IGJhY2tlbmQgY29tbXVuaWNhdGlvbiBpcyBzZXQgdG8gMzAwMCBtcwo+ICAtIG1hbmFnZSBkaXNw bGF5IGJ1ZmZlcnMgc2hhcmVkIHdpdGggdGhlIGJhY2tlbmQKPiAKPiBTaWduZWQtb2ZmLWJ5OiBP bGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+ CgpBZnRlciB0aGUgZGVtaWRsYXllcmluZyBpdCBwcm9iYWJseSBtYWtlcyBzZW5zZSB0byBtZXJn ZSB0aGlzIHdpdGggdGhlCm92ZXJhbGwga21zL2Jhc2ljLWRybS1kcml2ZXIgcGF0Y2guIFVwIHRv IHlvdSByZWFsbHkuCi1EYW5pZWwKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250LmMgfCAzMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIGRy aXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oIHwgICA1ICsKPiAgMiBmaWxlcyBjaGFu Z2VkLCAzMjcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMgYi9kcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnQuYwo+IGluZGV4IDhkZTg4ZTM1OWQ1ZS4uNWFkNTQ2MjMxZDMwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMKPiBAQCAtMzEsMTIgKzMxLDE0NiBAQAo+ ICAjaW5jbHVkZSAieGVuX2RybV9mcm9udF9ldnRjaG5sLmgiCj4gICNpbmNsdWRlICJ4ZW5fZHJt X2Zyb250X3NoYnVmLmgiCj4gIAo+ICsvKiB0aW1lb3V0IGluIG1zIHRvIHdhaXQgZm9yIGJhY2tl bmQgdG8gcmVzcG9uZCAqLwo+ICsjZGVmaW5lIFZEUk1fV0FJVF9CQUNLX01TCTMwMDAKPiArCj4g K3N0cnVjdCB4ZW5fZHJtX2Zyb250X2RidWYgewo+ICsJc3RydWN0IGxpc3RfaGVhZCBsaXN0Owo+ ICsJdWludDY0X3QgZGJ1Zl9jb29raWU7Cj4gKwl1aW50NjRfdCBmYl9jb29raWU7Cj4gKwlzdHJ1 Y3QgeGVuX2RybV9mcm9udF9zaGJ1ZiAqc2hidWY7Cj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IGRi dWZfYWRkX3RvX2xpc3Qoc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyAqZnJvbnRfaW5mbywKPiAr CQlzdHJ1Y3QgeGVuX2RybV9mcm9udF9zaGJ1ZiAqc2hidWYsIHVpbnQ2NF90IGRidWZfY29va2ll KQo+ICt7Cj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9kYnVmICpkYnVmOwo+ICsKPiArCWRidWYg PSBremFsbG9jKHNpemVvZigqZGJ1ZiksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFkYnVmKQo+ICsJ CXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWRidWYtPmRidWZfY29va2llID0gZGJ1Zl9jb29raWU7 Cj4gKwlkYnVmLT5zaGJ1ZiA9IHNoYnVmOwo+ICsJbGlzdF9hZGQoJmRidWYtPmxpc3QsICZmcm9u dF9pbmZvLT5kYnVmX2xpc3QpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1 Y3QgeGVuX2RybV9mcm9udF9kYnVmICpkYnVmX2dldChzdHJ1Y3QgbGlzdF9oZWFkICpkYnVmX2xp c3QsCj4gKwkJdWludDY0X3QgZGJ1Zl9jb29raWUpCj4gK3sKPiArCXN0cnVjdCB4ZW5fZHJtX2Zy b250X2RidWYgKmJ1ZiwgKnE7Cj4gKwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJ1Ziwg cSwgZGJ1Zl9saXN0LCBsaXN0KQo+ICsJCWlmIChidWYtPmRidWZfY29va2llID09IGRidWZfY29v a2llKQo+ICsJCQlyZXR1cm4gYnVmOwo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBkYnVmX2ZsdXNoX2ZiKHN0cnVjdCBsaXN0X2hlYWQgKmRidWZfbGlzdCwgdWlu dDY0X3QgZmJfY29va2llKQo+ICt7Cj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9kYnVmICpidWYs ICpxOwo+ICsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShidWYsIHEsIGRidWZfbGlzdCwg bGlzdCkKPiArCQlpZiAoYnVmLT5mYl9jb29raWUgPT0gZmJfY29va2llKQo+ICsJCQl4ZW5fZHJt X2Zyb250X3NoYnVmX2ZsdXNoKGJ1Zi0+c2hidWYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBk YnVmX2ZyZWUoc3RydWN0IGxpc3RfaGVhZCAqZGJ1Zl9saXN0LCB1aW50NjRfdCBkYnVmX2Nvb2tp ZSkKPiArewo+ICsJc3RydWN0IHhlbl9kcm1fZnJvbnRfZGJ1ZiAqYnVmLCAqcTsKPiArCj4gKwls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYnVmLCBxLCBkYnVmX2xpc3QsIGxpc3QpCj4gKwkJaWYg KGJ1Zi0+ZGJ1Zl9jb29raWUgPT0gZGJ1Zl9jb29raWUpIHsKPiArCQkJbGlzdF9kZWwoJmJ1Zi0+ bGlzdCk7Cj4gKwkJCXhlbl9kcm1fZnJvbnRfc2hidWZfdW5tYXAoYnVmLT5zaGJ1Zik7Cj4gKwkJ CXhlbl9kcm1fZnJvbnRfc2hidWZfZnJlZShidWYtPnNoYnVmKTsKPiArCQkJa2ZyZWUoYnVmKTsK PiArCQkJYnJlYWs7Cj4gKwkJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkYnVmX2ZyZWVfYWxs KHN0cnVjdCBsaXN0X2hlYWQgKmRidWZfbGlzdCkKPiArewo+ICsJc3RydWN0IHhlbl9kcm1fZnJv bnRfZGJ1ZiAqYnVmLCAqcTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYnVmLCBx LCBkYnVmX2xpc3QsIGxpc3QpIHsKPiArCQlsaXN0X2RlbCgmYnVmLT5saXN0KTsKPiArCQl4ZW5f ZHJtX2Zyb250X3NoYnVmX3VubWFwKGJ1Zi0+c2hidWYpOwo+ICsJCXhlbl9kcm1fZnJvbnRfc2hi dWZfZnJlZShidWYtPnNoYnVmKTsKPiArCQlrZnJlZShidWYpOwo+ICsJfQo+ICt9Cj4gKwo+ICtz dGF0aWMgc3RydWN0IHhlbmRpc3BsX3JlcSAqYmVfcHJlcGFyZV9yZXEoCj4gKwkJc3RydWN0IHhl bl9kcm1fZnJvbnRfZXZ0Y2hubCAqZXZ0Y2hubCwgdWludDhfdCBvcGVyYXRpb24pCj4gK3sKPiAr CXN0cnVjdCB4ZW5kaXNwbF9yZXEgKnJlcTsKPiArCj4gKwlyZXEgPSBSSU5HX0dFVF9SRVFVRVNU KCZldnRjaG5sLT51LnJlcS5yaW5nLAo+ICsJCQlldnRjaG5sLT51LnJlcS5yaW5nLnJlcV9wcm9k X3B2dCk7Cj4gKwlyZXEtPm9wZXJhdGlvbiA9IG9wZXJhdGlvbjsKPiArCXJlcS0+aWQgPSBldnRj aG5sLT5ldnRfbmV4dF9pZCsrOwo+ICsJZXZ0Y2hubC0+ZXZ0X2lkID0gcmVxLT5pZDsKPiArCXJl dHVybiByZXE7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgYmVfc3RyZWFtX2RvX2lvKHN0cnVjdCB4 ZW5fZHJtX2Zyb250X2V2dGNobmwgKmV2dGNobmwsCj4gKwkJc3RydWN0IHhlbmRpc3BsX3JlcSAq cmVxKQo+ICt7Cj4gKwlyZWluaXRfY29tcGxldGlvbigmZXZ0Y2hubC0+dS5yZXEuY29tcGxldGlv bik7Cj4gKwlpZiAodW5saWtlbHkoZXZ0Y2hubC0+c3RhdGUgIT0gRVZUQ0hOTF9TVEFURV9DT05O RUNURUQpKQo+ICsJCXJldHVybiAtRUlPOwo+ICsKPiArCXhlbl9kcm1fZnJvbnRfZXZ0Y2hubF9m bHVzaChldnRjaG5sKTsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGJlX3N0 cmVhbV93YWl0X2lvKHN0cnVjdCB4ZW5fZHJtX2Zyb250X2V2dGNobmwgKmV2dGNobmwpCj4gK3sK PiArCWlmICh3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmV2dGNobmwtPnUucmVxLmNvbXBs ZXRpb24sCj4gKwkJCW1zZWNzX3RvX2ppZmZpZXMoVkRSTV9XQUlUX0JBQ0tfTVMpKSA8PSAwKQo+ ICsJCXJldHVybiAtRVRJTUVET1VUOwo+ICsKPiArCXJldHVybiBldnRjaG5sLT51LnJlcS5yZXNw X3N0YXR1czsKPiArfQo+ICsKPiAgc3RhdGljIGludCBiZV9tb2RlX3NldChzdHJ1Y3QgeGVuX2Ry bV9mcm9udF9kcm1fcGlwZWxpbmUgKnBpcGVsaW5lLCB1aW50MzJfdCB4LAo+ICAJCXVpbnQzMl90 IHksIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGJwcCwKPiAgCQl1 aW50NjRfdCBmYl9jb29raWUpCj4gIAo+ICB7Cj4gLQlyZXR1cm4gMDsKPiArCXN0cnVjdCB4ZW5f ZHJtX2Zyb250X2V2dGNobmwgKmV2dGNobmw7Cj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZv ICpmcm9udF9pbmZvOwo+ICsJc3RydWN0IHhlbmRpc3BsX3JlcSAqcmVxOwo+ICsJdW5zaWduZWQg bG9uZyBmbGFnczsKPiArCWludCByZXQ7Cj4gKwo+ICsJZnJvbnRfaW5mbyA9IHBpcGVsaW5lLT5k cm1faW5mby0+ZnJvbnRfaW5mbzsKPiArCWV2dGNobmwgPSAmZnJvbnRfaW5mby0+ZXZ0X3BhaXJz W3BpcGVsaW5lLT5pbmRleF0ucmVxOwo+ICsJaWYgKHVubGlrZWx5KCFldnRjaG5sKSkKPiArCQly ZXR1cm4gLUVJTzsKPiArCj4gKwltdXRleF9sb2NrKCZmcm9udF9pbmZvLT5yZXFfaW9fbG9jayk7 Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmZyb250X2luZm8tPmlvX2xvY2ssIGZsYWdzKTsK PiArCXJlcSA9IGJlX3ByZXBhcmVfcmVxKGV2dGNobmwsIFhFTkRJU1BMX09QX1NFVF9DT05GSUcp Owo+ICsJcmVxLT5vcC5zZXRfY29uZmlnLnggPSB4Owo+ICsJcmVxLT5vcC5zZXRfY29uZmlnLnkg PSB5Owo+ICsJcmVxLT5vcC5zZXRfY29uZmlnLndpZHRoID0gd2lkdGg7Cj4gKwlyZXEtPm9wLnNl dF9jb25maWcuaGVpZ2h0ID0gaGVpZ2h0Owo+ICsJcmVxLT5vcC5zZXRfY29uZmlnLmJwcCA9IGJw cDsKPiArCXJlcS0+b3Auc2V0X2NvbmZpZy5mYl9jb29raWUgPSBmYl9jb29raWU7Cj4gKwo+ICsJ cmV0ID0gYmVfc3RyZWFtX2RvX2lvKGV2dGNobmwsIHJlcSk7Cj4gKwlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZmcm9udF9pbmZvLT5pb19sb2NrLCBmbGFncyk7Cj4gKwo+ICsJaWYgKHJldCA9PSAw KQo+ICsJCXJldCA9IGJlX3N0cmVhbV93YWl0X2lvKGV2dGNobmwpOwo+ICsKPiArCW11dGV4X3Vu bG9jaygmZnJvbnRfaW5mby0+cmVxX2lvX2xvY2spOwo+ICsJcmV0dXJuIHJldDsKPiAgfQo+ICAK PiAgc3RhdGljIGludCBiZV9kYnVmX2NyZWF0ZV9pbnQoc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5m byAqZnJvbnRfaW5mbywKPiBAQCAtNDQsNyArMTc4LDY5IEBAIHN0YXRpYyBpbnQgYmVfZGJ1Zl9j cmVhdGVfaW50KHN0cnVjdCB4ZW5fZHJtX2Zyb250X2luZm8gKmZyb250X2luZm8sCj4gIAkJdWlu dDMyX3QgYnBwLCB1aW50NjRfdCBzaXplLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAo+ICAJCXN0cnVj dCBzZ190YWJsZSAqc2d0KQo+ICB7Cj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9ldnRjaG5sICpl dnRjaG5sOwo+ICsJc3RydWN0IHhlbl9kcm1fZnJvbnRfc2hidWYgKnNoYnVmOwo+ICsJc3RydWN0 IHhlbmRpc3BsX3JlcSAqcmVxOwo+ICsJc3RydWN0IHhlbl9kcm1fZnJvbnRfc2hidWZfY2ZnIGJ1 Zl9jZmc7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJaW50IHJldDsKPiArCj4gKwlldnRj aG5sID0gJmZyb250X2luZm8tPmV2dF9wYWlyc1tHRU5FUklDX09QX0VWVF9DSE5MXS5yZXE7Cj4g KwlpZiAodW5saWtlbHkoIWV2dGNobmwpKQo+ICsJCXJldHVybiAtRUlPOwo+ICsKPiArCW1lbXNl dCgmYnVmX2NmZywgMCwgc2l6ZW9mKGJ1Zl9jZmcpKTsKPiArCWJ1Zl9jZmcueGJfZGV2ID0gZnJv bnRfaW5mby0+eGJfZGV2Owo+ICsJYnVmX2NmZy5wYWdlcyA9IHBhZ2VzOwo+ICsJYnVmX2NmZy5z aXplID0gc2l6ZTsKPiArCWJ1Zl9jZmcuc2d0ID0gc2d0Owo+ICsJYnVmX2NmZy5iZV9hbGxvYyA9 IGZyb250X2luZm8tPmNmZy5iZV9hbGxvYzsKPiArCj4gKwlzaGJ1ZiA9IHhlbl9kcm1fZnJvbnRf c2hidWZfYWxsb2MoJmJ1Zl9jZmcpOwo+ICsJaWYgKCFzaGJ1ZikKPiArCQlyZXR1cm4gLUVOT01F TTsKPiArCj4gKwlyZXQgPSBkYnVmX2FkZF90b19saXN0KGZyb250X2luZm8sIHNoYnVmLCBkYnVm X2Nvb2tpZSk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCXhlbl9kcm1fZnJvbnRfc2hidWZfZnJl ZShzaGJ1Zik7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwltdXRleF9sb2NrKCZmcm9u dF9pbmZvLT5yZXFfaW9fbG9jayk7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmZyb250X2lu Zm8tPmlvX2xvY2ssIGZsYWdzKTsKPiArCXJlcSA9IGJlX3ByZXBhcmVfcmVxKGV2dGNobmwsIFhF TkRJU1BMX09QX0RCVUZfQ1JFQVRFKTsKPiArCXJlcS0+b3AuZGJ1Zl9jcmVhdGUuZ3JlZl9kaXJl Y3RvcnkgPQo+ICsJCQl4ZW5fZHJtX2Zyb250X3NoYnVmX2dldF9kaXJfc3RhcnQoc2hidWYpOwo+ ICsJcmVxLT5vcC5kYnVmX2NyZWF0ZS5idWZmZXJfc3ogPSBzaXplOwo+ICsJcmVxLT5vcC5kYnVm X2NyZWF0ZS5kYnVmX2Nvb2tpZSA9IGRidWZfY29va2llOwo+ICsJcmVxLT5vcC5kYnVmX2NyZWF0 ZS53aWR0aCA9IHdpZHRoOwo+ICsJcmVxLT5vcC5kYnVmX2NyZWF0ZS5oZWlnaHQgPSBoZWlnaHQ7 Cj4gKwlyZXEtPm9wLmRidWZfY3JlYXRlLmJwcCA9IGJwcDsKPiArCWlmIChidWZfY2ZnLmJlX2Fs bG9jKQo+ICsJCXJlcS0+b3AuZGJ1Zl9jcmVhdGUuZmxhZ3MgfD0gWEVORElTUExfREJVRl9GTEdf UkVRX0FMTE9DOwo+ICsKPiArCXJldCA9IGJlX3N0cmVhbV9kb19pbyhldnRjaG5sLCByZXEpOwo+ ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZnJvbnRfaW5mby0+aW9fbG9jaywgZmxhZ3MpOwo+ ICsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWdvdG8gZmFpbDsKPiArCj4gKwlyZXQgPSBiZV9zdHJl YW1fd2FpdF9pbyhldnRjaG5sKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWdvdG8gZmFpbDsKPiAr Cj4gKwlyZXQgPSB4ZW5fZHJtX2Zyb250X3NoYnVmX21hcChzaGJ1Zik7Cj4gKwlpZiAocmV0IDwg MCkKPiArCQlnb3RvIGZhaWw7Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZmcm9udF9pbmZvLT5yZXFf aW9fbG9jayk7Cj4gIAlyZXR1cm4gMDsKPiArCj4gK2ZhaWw6Cj4gKwltdXRleF91bmxvY2soJmZy b250X2luZm8tPnJlcV9pb19sb2NrKTsKPiArCWRidWZfZnJlZSgmZnJvbnRfaW5mby0+ZGJ1Zl9s aXN0LCBkYnVmX2Nvb2tpZSk7Cj4gKwlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50 IGJlX2RidWZfY3JlYXRlX2Zyb21fc2d0KHN0cnVjdCB4ZW5fZHJtX2Zyb250X2luZm8gKmZyb250 X2luZm8sCj4gQEAgLTY2LDI2ICsyNjIsMTQ0IEBAIHN0YXRpYyBpbnQgYmVfZGJ1Zl9jcmVhdGVf ZnJvbV9wYWdlcyhzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZvLAo+ICBzdGF0 aWMgaW50IGJlX2RidWZfZGVzdHJveShzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9p bmZvLAo+ICAJCXVpbnQ2NF90IGRidWZfY29va2llKQo+ICB7Cj4gLQlyZXR1cm4gMDsKPiArCXN0 cnVjdCB4ZW5fZHJtX2Zyb250X2V2dGNobmwgKmV2dGNobmw7Cj4gKwlzdHJ1Y3QgeGVuZGlzcGxf cmVxICpyZXE7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJYm9vbCBiZV9hbGxvYzsKPiAr CWludCByZXQ7Cj4gKwo+ICsJZXZ0Y2hubCA9ICZmcm9udF9pbmZvLT5ldnRfcGFpcnNbR0VORVJJ Q19PUF9FVlRfQ0hOTF0ucmVxOwo+ICsJaWYgKHVubGlrZWx5KCFldnRjaG5sKSkKPiArCQlyZXR1 cm4gLUVJTzsKPiArCj4gKwliZV9hbGxvYyA9IGZyb250X2luZm8tPmNmZy5iZV9hbGxvYzsKPiAr Cj4gKwkvKgo+ICsJICogZm9yIHRoZSBiYWNrZW5kIGFsbG9jYXRlZCBidWZmZXIgcmVsZWFzZSBy ZWZlcmVuY2VzIG5vdywgc28gYmFja2VuZAo+ICsJICogY2FuIGZyZWUgdGhlIGJ1ZmZlcgo+ICsJ ICovCj4gKwlpZiAoYmVfYWxsb2MpCj4gKwkJZGJ1Zl9mcmVlKCZmcm9udF9pbmZvLT5kYnVmX2xp c3QsIGRidWZfY29va2llKTsKPiArCj4gKwltdXRleF9sb2NrKCZmcm9udF9pbmZvLT5yZXFfaW9f bG9jayk7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmZyb250X2luZm8tPmlvX2xvY2ssIGZs YWdzKTsKPiArCXJlcSA9IGJlX3ByZXBhcmVfcmVxKGV2dGNobmwsIFhFTkRJU1BMX09QX0RCVUZf REVTVFJPWSk7Cj4gKwlyZXEtPm9wLmRidWZfZGVzdHJveS5kYnVmX2Nvb2tpZSA9IGRidWZfY29v a2llOwo+ICsKPiArCXJldCA9IGJlX3N0cmVhbV9kb19pbyhldnRjaG5sLCByZXEpOwo+ICsJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZnJvbnRfaW5mby0+aW9fbG9jaywgZmxhZ3MpOwo+ICsKPiAr CWlmIChyZXQgPT0gMCkKPiArCQlyZXQgPSBiZV9zdHJlYW1fd2FpdF9pbyhldnRjaG5sKTsKPiAr Cj4gKwkvKgo+ICsJICogZG8gdGhpcyByZWdhcmRsZXNzIG9mIGNvbW11bmljYXRpb24gc3RhdHVz IHdpdGggdGhlIGJhY2tlbmQ6Cj4gKwkgKiBpZiB3ZSBjYW5ub3QgcmVtb3ZlIHJlbW90ZSByZXNv dXJjZXMgcmVtb3ZlIHdoYXQgd2UgY2FuIGxvY2FsbHkKPiArCSAqLwo+ICsJaWYgKCFiZV9hbGxv YykKPiArCQlkYnVmX2ZyZWUoJmZyb250X2luZm8tPmRidWZfbGlzdCwgZGJ1Zl9jb29raWUpOwo+ ICsKPiArCW11dGV4X3VubG9jaygmZnJvbnRfaW5mby0+cmVxX2lvX2xvY2spOwo+ICsJcmV0dXJu IHJldDsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBiZV9mYl9hdHRhY2goc3RydWN0IHhlbl9kcm1f ZnJvbnRfaW5mbyAqZnJvbnRfaW5mbywKPiAgCQl1aW50NjRfdCBkYnVmX2Nvb2tpZSwgdWludDY0 X3QgZmJfY29va2llLCB1aW50MzJfdCB3aWR0aCwKPiAgCQl1aW50MzJfdCBoZWlnaHQsIHVpbnQz Ml90IHBpeGVsX2Zvcm1hdCkKPiAgewo+IC0JcmV0dXJuIDA7Cj4gKwlzdHJ1Y3QgeGVuX2RybV9m cm9udF9ldnRjaG5sICpldnRjaG5sOwo+ICsJc3RydWN0IHhlbl9kcm1fZnJvbnRfZGJ1ZiAqYnVm Owo+ICsJc3RydWN0IHhlbmRpc3BsX3JlcSAqcmVxOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsK PiArCWludCByZXQ7Cj4gKwo+ICsJZXZ0Y2hubCA9ICZmcm9udF9pbmZvLT5ldnRfcGFpcnNbR0VO RVJJQ19PUF9FVlRfQ0hOTF0ucmVxOwo+ICsJaWYgKHVubGlrZWx5KCFldnRjaG5sKSkKPiArCQly ZXR1cm4gLUVJTzsKPiArCj4gKwlidWYgPSBkYnVmX2dldCgmZnJvbnRfaW5mby0+ZGJ1Zl9saXN0 LCBkYnVmX2Nvb2tpZSk7Cj4gKwlpZiAoIWJ1ZikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4g KwlidWYtPmZiX2Nvb2tpZSA9IGZiX2Nvb2tpZTsKPiArCj4gKwltdXRleF9sb2NrKCZmcm9udF9p bmZvLT5yZXFfaW9fbG9jayk7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmZyb250X2luZm8t PmlvX2xvY2ssIGZsYWdzKTsKPiArCXJlcSA9IGJlX3ByZXBhcmVfcmVxKGV2dGNobmwsIFhFTkRJ U1BMX09QX0ZCX0FUVEFDSCk7Cj4gKwlyZXEtPm9wLmZiX2F0dGFjaC5kYnVmX2Nvb2tpZSA9IGRi dWZfY29va2llOwo+ICsJcmVxLT5vcC5mYl9hdHRhY2guZmJfY29va2llID0gZmJfY29va2llOwo+ ICsJcmVxLT5vcC5mYl9hdHRhY2gud2lkdGggPSB3aWR0aDsKPiArCXJlcS0+b3AuZmJfYXR0YWNo LmhlaWdodCA9IGhlaWdodDsKPiArCXJlcS0+b3AuZmJfYXR0YWNoLnBpeGVsX2Zvcm1hdCA9IHBp eGVsX2Zvcm1hdDsKPiArCj4gKwlyZXQgPSBiZV9zdHJlYW1fZG9faW8oZXZ0Y2hubCwgcmVxKTsK PiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZyb250X2luZm8tPmlvX2xvY2ssIGZsYWdzKTsK PiArCj4gKwlpZiAocmV0ID09IDApCj4gKwkJcmV0ID0gYmVfc3RyZWFtX3dhaXRfaW8oZXZ0Y2hu bCk7Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZmcm9udF9pbmZvLT5yZXFfaW9fbG9jayk7Cj4gKwly ZXR1cm4gcmV0Owo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGJlX2ZiX2RldGFjaChzdHJ1Y3QgeGVu X2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZvLAo+ICAJCXVpbnQ2NF90IGZiX2Nvb2tpZSkKPiAg ewo+IC0JcmV0dXJuIDA7Cj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9ldnRjaG5sICpldnRjaG5s Owo+ICsJc3RydWN0IHhlbmRpc3BsX3JlcSAqcmVxOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsK PiArCWludCByZXQ7Cj4gKwo+ICsJZXZ0Y2hubCA9ICZmcm9udF9pbmZvLT5ldnRfcGFpcnNbR0VO RVJJQ19PUF9FVlRfQ0hOTF0ucmVxOwo+ICsJaWYgKHVubGlrZWx5KCFldnRjaG5sKSkKPiArCQly ZXR1cm4gLUVJTzsKPiArCj4gKwltdXRleF9sb2NrKCZmcm9udF9pbmZvLT5yZXFfaW9fbG9jayk7 Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmZyb250X2luZm8tPmlvX2xvY2ssIGZsYWdzKTsK PiArCXJlcSA9IGJlX3ByZXBhcmVfcmVxKGV2dGNobmwsIFhFTkRJU1BMX09QX0ZCX0RFVEFDSCk7 Cj4gKwlyZXEtPm9wLmZiX2RldGFjaC5mYl9jb29raWUgPSBmYl9jb29raWU7Cj4gKwo+ICsJcmV0 ID0gYmVfc3RyZWFtX2RvX2lvKGV2dGNobmwsIHJlcSk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZmcm9udF9pbmZvLT5pb19sb2NrLCBmbGFncyk7Cj4gKwo+ICsJaWYgKHJldCA9PSAwKQo+ ICsJCXJldCA9IGJlX3N0cmVhbV93YWl0X2lvKGV2dGNobmwpOwo+ICsKPiArCW11dGV4X3VubG9j aygmZnJvbnRfaW5mby0+cmVxX2lvX2xvY2spOwo+ICsJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAg c3RhdGljIGludCBiZV9wYWdlX2ZsaXAoc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyAqZnJvbnRf aW5mbywgaW50IGNvbm5faWR4LAo+ICAJCXVpbnQ2NF90IGZiX2Nvb2tpZSkKPiAgewo+IC0JcmV0 dXJuIDA7Cj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9ldnRjaG5sICpldnRjaG5sOwo+ICsJc3Ry dWN0IHhlbmRpc3BsX3JlcSAqcmVxOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCWludCBy ZXQ7Cj4gKwo+ICsJaWYgKHVubGlrZWx5KGNvbm5faWR4ID49IGZyb250X2luZm8tPm51bV9ldnRf cGFpcnMpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWRidWZfZmx1c2hfZmIoJmZyb250 X2luZm8tPmRidWZfbGlzdCwgZmJfY29va2llKTsKPiArCWV2dGNobmwgPSAmZnJvbnRfaW5mby0+ ZXZ0X3BhaXJzW2Nvbm5faWR4XS5yZXE7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZnJvbnRfaW5mby0+ cmVxX2lvX2xvY2spOwo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZmcm9udF9pbmZvLT5pb19s b2NrLCBmbGFncyk7Cj4gKwlyZXEgPSBiZV9wcmVwYXJlX3JlcShldnRjaG5sLCBYRU5ESVNQTF9P UF9QR19GTElQKTsKPiArCXJlcS0+b3AucGdfZmxpcC5mYl9jb29raWUgPSBmYl9jb29raWU7Cj4g Kwo+ICsJcmV0ID0gYmVfc3RyZWFtX2RvX2lvKGV2dGNobmwsIHJlcSk7Cj4gKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZmcm9udF9pbmZvLT5pb19sb2NrLCBmbGFncyk7Cj4gKwo+ICsJaWYgKHJl dCA9PSAwKQo+ICsJCXJldCA9IGJlX3N0cmVhbV93YWl0X2lvKGV2dGNobmwpOwo+ICsKPiArCW11 dGV4X3VubG9jaygmZnJvbnRfaW5mby0+cmVxX2lvX2xvY2spOwo+ICsJcmV0dXJuIHJldDsKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQgeGVuX2RybV9kcnZfdW5sb2FkKHN0cnVjdCB4ZW5fZHJtX2Zy b250X2luZm8gKmZyb250X2luZm8pCj4gQEAgLTE4Myw2ICs0OTcsNyBAQCBzdGF0aWMgdm9pZCB4 ZW5fZHJ2X3JlbW92ZV9pbnRlcm5hbChzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9p bmZvKQo+ICB7Cj4gIAl4ZW5fZHJtX2Rydl9kZWluaXQoZnJvbnRfaW5mbyk7Cj4gIAl4ZW5fZHJt X2Zyb250X2V2dGNobmxfZnJlZV9hbGwoZnJvbnRfaW5mbyk7Cj4gKwlkYnVmX2ZyZWVfYWxsKCZm cm9udF9pbmZvLT5kYnVmX2xpc3QpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGJhY2tlbmRfb25f aW5pdHdhaXQoc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyAqZnJvbnRfaW5mbykKPiBAQCAtMzEw LDYgKzYyNSw4IEBAIHN0YXRpYyBpbnQgeGVuX2Rydl9wcm9iZShzdHJ1Y3QgeGVuYnVzX2Rldmlj ZSAqeGJfZGV2LAo+ICAKPiAgCWZyb250X2luZm8tPnhiX2RldiA9IHhiX2RldjsKPiAgCXNwaW5f bG9ja19pbml0KCZmcm9udF9pbmZvLT5pb19sb2NrKTsKPiArCW11dGV4X2luaXQoJmZyb250X2lu Zm8tPnJlcV9pb19sb2NrKTsKPiArCUlOSVRfTElTVF9IRUFEKCZmcm9udF9pbmZvLT5kYnVmX2xp c3QpOwo+ICAJZnJvbnRfaW5mby0+ZHJtX3BkcnZfcmVnaXN0ZXJlZCA9IGZhbHNlOwo+ICAJZGV2 X3NldF9kcnZkYXRhKCZ4Yl9kZXYtPmRldiwgZnJvbnRfaW5mbyk7Cj4gIAlyZXR1cm4geGVuYnVz X3N3aXRjaF9zdGF0ZSh4Yl9kZXYsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmggYi9kcml2ZXJzL2dwdS9k cm0veGVuL3hlbl9kcm1fZnJvbnQuaAo+IGluZGV4IGM2ZjUyYzg5MjQzNC4uZGIzMmQwMDE0NWQx IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmgKPiBAQCAtMTM3LDYgKzEzNyw4 IEBAIHN0cnVjdCB4ZW5fZHJtX2Zyb250X2luZm8gewo+ICAJc3RydWN0IHhlbmJ1c19kZXZpY2Ug KnhiX2RldjsKPiAgCS8qIHRvIHByb3RlY3QgZGF0YSBiZXR3ZWVuIGJhY2tlbmQgSU8gY29kZSBh bmQgaW50ZXJydXB0IGhhbmRsZXIgKi8KPiAgCXNwaW5sb2NrX3QgaW9fbG9jazsKPiArCS8qIHNl cmlhbGl6ZXIgZm9yIGJhY2tlbmQgSU86IHJlcXVlc3QvcmVzcG9uc2UgKi8KPiArCXN0cnVjdCBt dXRleCByZXFfaW9fbG9jazsKPiAgCWJvb2wgZHJtX3BkcnZfcmVnaXN0ZXJlZDsKPiAgCS8qIHZp cnR1YWwgRFJNIHBsYXRmb3JtIGRldmljZSAqLwo+ICAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAq ZHJtX3BkZXY7Cj4gQEAgLTE0NCw2ICsxNDYsOSBAQCBzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZv IHsKPiAgCWludCBudW1fZXZ0X3BhaXJzOwo+ICAJc3RydWN0IHhlbl9kcm1fZnJvbnRfZXZ0Y2hu bF9wYWlyICpldnRfcGFpcnM7Cj4gIAlzdHJ1Y3QgeGVuX2RybV9mcm9udF9jZmcgY2ZnOwo+ICsK PiArCS8qIGRpc3BsYXkgYnVmZmVycyAqLwo+ICsJc3RydWN0IGxpc3RfaGVhZCBkYnVmX2xpc3Q7 Cj4gIH07Cj4gIAo+ICAjZW5kaWYgLyogX19YRU5fRFJNX0ZST05UX0hfICovCj4gLS0gCj4gMi43 LjQKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK