From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/xen-front: Remove CMA support Date: Tue, 17 Apr 2018 11:04:01 +0200 Message-ID: <20180417090401.GA31310@phenom.ffwll.local> References: <20180417074012.21311-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 550706E0B7 for ; Tue, 17 Apr 2018 09:04:06 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id u11so33276077wri.12 for ; Tue, 17 Apr 2018 02:04:06 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180417074012.21311-1-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 T24gVHVlLCBBcHIgMTcsIDIwMTggYXQgMTA6NDA6MTJBTSArMDMwMCwgT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gd3JvdGU6Cj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5k cl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+IAo+IEV2ZW4gaWYgeGVuLWZyb250IGFsbG9jYXRl cyBpdHMgYnVmZmVycyBmcm9tIGNvbnRpZ3VvdXMgbWVtb3J5Cj4gdGhvc2UgYXJlIHN0aWxsIG5v dCBjb250aWd1b3VzIGluIFBBIHNwYWNlLCBlLmcuIHRoZSBidWZmZXIgaXMgb25seQo+IGNvbnRp Z3VvdXMgaW4gSVBBIHNwYWNlLgo+IFRoZSBvbmx5IHVzZS1jYXNlIGZvciB0aGlzIG1vZGUgd2Fz IGlmIHhlbi1mcm9udCBpcyB1c2VkIHRvIGFsbG9jYXRlCj4gZHVtYiBidWZmZXJzIHdoaWNoIGxh dGVyIGJlIHVzZWQgYnkgc29tZSBvdGhlciBkcml2ZXIgcmVxdWlyaW5nCj4gY29udGlndW91cyBt ZW1vcnksIGJ1dCB0aGVyZSBpcyBubyBjdXJyZW50bHkgc3VjaCBhIHVzZS1jYXNlIG9yCj4gaXQg Y2FuIGJlIHdvcmtlZCBhcm91bmQgd2l0aCB4ZW4tZnJvbnQuCgpQbGVhc2UgYWxzbyBtZW50aW9u IHRoZSBuZW50cyBjb25mdXNpb24gaGVyZSwgYW5kIHRoZSBwYXRjaCB0aGF0IGZpeGVzIGl0LgpP ciBqdXN0IG91dHJpZ2h0IHRha2UgdGhlIGNvbW1pdCBtZXNzYWdlIGZyb20gbXkgcGF0Y2ggd2l0 aCBhbGwgdGhlCmRldGFpbHM6CgogICAgZHJtL3hlbjogRGlzc2FibGUgQ01BIHN1cHBvcnQKICAg IAogICAgSXQgdHVybnMgb3V0IHRoaXMgd2FzIG9ubHkgbmVlZGVkIHRvIHBhcGVyIG92ZXIgYSBi dWcgaW4gdGhlIENNQQogICAgaGVscGVycywgd2hpY2ggd2FzIGFkZHJlc3NlZCBpbgogICAgCiAg ICBjb21taXQgOTk4ZmIxYTBmNDc4YjgzNDkyMjIwZmY3OTU4M2JmOWFkNTM4YmRkOAogICAgQXV0 aG9yOiBMaXZpdSBEdWRhdSA8TGl2aXUuRHVkYXVAYXJtLmNvbT4KICAgIERhdGU6ICAgRnJpIE5v diAxMCAxMzozMzoxMCAyMDE3ICswMDAwCiAgICAKICAgICAgICBkcm06IGdlbV9jbWFfaGVscGVy LmM6IEFsbG93IGltcG9ydGluZyBvZiBjb250aWd1b3VzIHNjYXR0ZXJsaXN0cyB3aXRoIG5lbnRz ID4gMQogICAgCiAgICBXaXRob3V0IHRoaXMgdGhlIGZvbGxvd2luZyBwaXBlbGluZSBkaWRuJ3Qg d29yazoKICAgIAogICAgZG9tVToKICAgIDEuIHhlbi1mcm9udCBhbGxvY2F0ZXMgYSBub24tY29u dGlnIGJ1ZmZlcgogICAgMi4gY3JlYXRlcyBncmFudHMgb3V0IG9mIGl0CiAgICAKICAgIGRvbTA6 CiAgICAzLiBjb252ZXJ0cyB0aGUgZ3JhbnRzIGludG8gYSBkbWEtYnVmLiBTaW5jZSB0aGV5J3Jl IG5vbi1jb250aWcsIHRoZQogICAgc2NhdHRlci1saXN0IGlzIGh1Z2UuCiAgICA0LiBpbXBvcnRz IGl0IGludG8gcmNhci1kdSwgd2hpY2ggcmVxdWlyZXMgZG1hLWNvbnRpZyBtZW1vcnkgZm9yCiAg ICBzY2Fub3V0LgogICAgCiAgICAtPiBPbiB0aGlzIGdpdmVuIHBsYXRmb3JtIHRoZXJlJ3MgYW4g SU9NTVUsIHNvIGluIHRoZW9yeSB0aGlzIHNob3VsZAogICAgd29yay4gQnV0IGluIHByYWN0aWNl IHRoaXMgZmFpbGVkLCBiZWNhdXNlIG9mIHRoZSBodWdlIG51bWJlciBvZiBzZwogICAgZW50cmll cywgZXZlbiB0aG91Z2ggdGhlIElPTU1VIGRyaXZlciBtYXBwZWQgaXQgYWxsIGludG8gYSBkbWEt Y29udGlnCiAgICByYW5nZS4KICAgIAogICAgV2l0aCBhIGd1ZXN0LWNvbnRpZyBidWZmZXIgYWxs b2NhdGVkIGluIHN0ZXAgMSwgdGhpcyBwcm9ibGVtIGRvZXNuJ3QKICAgIGV4aXN0LiBCdXQgdGhl cmUncyB0ZWNobmljYWxseSBubyByZWFzb24gdG8gcmVxdWlyZSBndWVzdC1jb250aWcKICAgIG1l bW9yeSBmb3IgeGVuIGJ1ZmZlciBzaGFyaW5nIHVzaW5nIGdyYW50cy4KCldpdGggdGhlIGNvbW1p dCBtZXNzYWdlIGltcHJvdmVkOgoKQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAZmZ3bGwuY2g+CgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r byA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4gU3VnZ2VzdGVkLWJ5OiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9u L2dwdS94ZW4tZnJvbnQucnN0ICAgICAgICAgICAgIHwgMTIgLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0veGVuL0tjb25maWcgICAgICAgICAgICAgICAgIHwgMTMgLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0veGVuL01ha2VmaWxlICAgICAgICAgICAgICAgIHwgIDkgKy0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS94ZW4veGVuX2RybV9mcm9udC5jICAgICAgICAgfCA2MiArKystLS0tLS0tLS0tLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oICAgICAgICAgfCA0MiArKy0tLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMgICAgIHwgMTIgKy0t LQo+ICBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmggICAgIHwgIDMgLQo+ ICBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtX2NtYS5jIHwgNzkgLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9zaGJ1 Zi5jICAgfCAyMiAtLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X3No YnVmLmggICB8ICA4IC0tLQo+ICAxMCBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAy NDEgZGVsZXRpb25zKC0pCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnRfZ2VtX2NtYS5jCj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v Z3B1L3hlbi1mcm9udC5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS94ZW4tZnJvbnQucnN0Cj4gaW5k ZXggMDA5ZDk0MjM4NmM1Li5kOTg4ZGE3ZDE5ODMgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlv bi9ncHUveGVuLWZyb250LnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3hlbi1mcm9udC5y c3QKPiBAQCAtMTgsMTggKzE4LDYgQEAgQnVmZmVycyBhbGxvY2F0ZWQgYnkgdGhlIGZyb250ZW5k IGRyaXZlcgo+ICAuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy b250LmgKPiAgICAgOmRvYzogQnVmZmVycyBhbGxvY2F0ZWQgYnkgdGhlIGZyb250ZW5kIGRyaXZl cgo+ICAKPiAtV2l0aCBHRU0gQ01BIGhlbHBlcnMKPiAtfn5+fn5+fn5+fn5+fn5+fn5+fn4KPiAt Cj4gLS4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaAo+ IC0gICA6ZG9jOiBXaXRoIEdFTSBDTUEgaGVscGVycwo+IC0KPiAtV2l0aG91dCBHRU0gQ01BIGhl bHBlcnMKPiAtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KPiAtCj4gLS4uIGtlcm5lbC1kb2M6OiBk cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaAo+IC0gICA6ZG9jOiBXaXRob3V0IEdF TSBDTUEgaGVscGVycwo+IC0KPiAgQnVmZmVycyBhbGxvY2F0ZWQgYnkgdGhlIGJhY2tlbmQKPiAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS94ZW4vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4vS2NvbmZpZwo+IGlu ZGV4IDRmNGFiYzkxZjNiNi4uNGNjYTE2MDc4MmFiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS94ZW4vS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4vS2NvbmZpZwo+IEBA IC0xNSwxNiArMTUsMyBAQCBjb25maWcgRFJNX1hFTl9GUk9OVEVORAo+ICAJaGVscAo+ICAJICBD aG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gZW5hYmxlIGEgcGFyYS12aXJ0dWFsaXpl ZAo+ICAJICBmcm9udGVuZCBEUk0vS01TIGRyaXZlciBmb3IgWGVuIGd1ZXN0IE9TZXMuCj4gLQo+ IC1jb25maWcgRFJNX1hFTl9GUk9OVEVORF9DTUEKPiAtCWJvb2wgIlVzZSBEUk0gQ01BIHRvIGFs bG9jYXRlIGR1bWIgYnVmZmVycyIKPiAtCWRlcGVuZHMgb24gRFJNX1hFTl9GUk9OVEVORAo+IC0J c2VsZWN0IERSTV9LTVNfQ01BX0hFTFBFUgo+IC0Jc2VsZWN0IERSTV9HRU1fQ01BX0hFTFBFUgo+ IC0JaGVscAo+IC0JICBVc2UgRFJNIENNQSBoZWxwZXJzIHRvIGFsbG9jYXRlIGRpc3BsYXkgYnVm ZmVycy4KPiAtCSAgVGhpcyBpcyB1c2VmdWwgZm9yIHRoZSB1c2UtY2FzZXMgd2hlbiBndWVzdCBk cml2ZXIgbmVlZHMgdG8KPiAtCSAgc2hhcmUgb3IgZXhwb3J0IGJ1ZmZlcnMgdG8gb3RoZXIgZHJp dmVycyB3aGljaCBvbmx5IGV4cGVjdAo+IC0JICBjb250aWd1b3VzIGJ1ZmZlcnMuCj4gLQkgIE5v dGU6IGluIHRoaXMgbW9kZSBkcml2ZXIgY2Fubm90IHVzZSBidWZmZXJzIGFsbG9jYXRlZAo+IC0J ICBieSB0aGUgYmFja2VuZC4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi9NYWtl ZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS94ZW4vTWFrZWZpbGUKPiBpbmRleCAzNTI3MzBkYzZjMTMu LjcxMmFmZmY1ZmZjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVuL01ha2VmaWxl Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlbi9NYWtlZmlsZQo+IEBAIC01LDEyICs1LDcgQEAg ZHJtX3hlbl9mcm9udC1vYmpzIDo9IHhlbl9kcm1fZnJvbnQubyBcCj4gIAkJICAgICAgeGVuX2Ry bV9mcm9udF9jb25uLm8gXAo+ICAJCSAgICAgIHhlbl9kcm1fZnJvbnRfZXZ0Y2hubC5vIFwKPiAg CQkgICAgICB4ZW5fZHJtX2Zyb250X3NoYnVmLm8gXAo+IC0JCSAgICAgIHhlbl9kcm1fZnJvbnRf Y2ZnLm8KPiAtCj4gLWlmZXEgKCQoQ09ORklHX0RSTV9YRU5fRlJPTlRFTkRfQ01BKSx5KQo+IC0J ZHJtX3hlbl9mcm9udC1vYmpzICs9IHhlbl9kcm1fZnJvbnRfZ2VtX2NtYS5vCj4gLWVsc2UKPiAt CWRybV94ZW5fZnJvbnQtb2JqcyArPSB4ZW5fZHJtX2Zyb250X2dlbS5vCj4gLWVuZGlmCj4gKwkJ ICAgICAgeGVuX2RybV9mcm9udF9jZmcubyBcCj4gKwkJICAgICAgeGVuX2RybV9mcm9udF9nZW0u bwo+ICAKPiAgb2JqLSQoQ09ORklHX0RSTV9YRU5fRlJPTlRFTkQpICs9IGRybV94ZW5fZnJvbnQu bwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuYyBiL2Ry aXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5jCj4gaW5kZXggNGEwOGI3N2YxYzllLi4x YjBlYTlhYzMzMGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy b250LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuYwo+IEBAIC0x Miw3ICsxMiw2IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiAgI2lu Y2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+ Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+Cj4gIAo+ICAjaW5jbHVkZSA8 bGludXgvb2ZfZGV2aWNlLmg+Cj4gIAo+IEBAIC0xNjcsMTAgKzE2Niw5IEBAIGludCB4ZW5fZHJt X2Zyb250X21vZGVfc2V0KHN0cnVjdCB4ZW5fZHJtX2Zyb250X2RybV9waXBlbGluZSAqcGlwZWxp bmUsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGJlX2RidWZfY3JlYXRl X2ludChzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZvLAo+ICtpbnQgeGVuX2Ry bV9mcm9udF9kYnVmX2NyZWF0ZShzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZv LAo+ICAJCQkgICAgICB1NjQgZGJ1Zl9jb29raWUsIHUzMiB3aWR0aCwgdTMyIGhlaWdodCwKPiAt CQkJICAgICAgdTMyIGJwcCwgdTY0IHNpemUsIHN0cnVjdCBwYWdlICoqcGFnZXMsCj4gLQkJCSAg ICAgIHN0cnVjdCBzZ190YWJsZSAqc2d0KQo+ICsJCQkgICAgICB1MzIgYnBwLCB1NjQgc2l6ZSwg c3RydWN0IHBhZ2UgKipwYWdlcykKPiAgewo+ICAJc3RydWN0IHhlbl9kcm1fZnJvbnRfZXZ0Y2hu bCAqZXZ0Y2hubDsKPiAgCXN0cnVjdCB4ZW5fZHJtX2Zyb250X3NoYnVmICpzaGJ1ZjsKPiBAQCAt MTg3LDcgKzE4NSw2IEBAIHN0YXRpYyBpbnQgYmVfZGJ1Zl9jcmVhdGVfaW50KHN0cnVjdCB4ZW5f ZHJtX2Zyb250X2luZm8gKmZyb250X2luZm8sCj4gIAlidWZfY2ZnLnhiX2RldiA9IGZyb250X2lu Zm8tPnhiX2RldjsKPiAgCWJ1Zl9jZmcucGFnZXMgPSBwYWdlczsKPiAgCWJ1Zl9jZmcuc2l6ZSA9 IHNpemU7Cj4gLQlidWZfY2ZnLnNndCA9IHNndDsKPiAgCWJ1Zl9jZmcuYmVfYWxsb2MgPSBmcm9u dF9pbmZvLT5jZmcuYmVfYWxsb2M7Cj4gIAo+ICAJc2hidWYgPSB4ZW5fZHJtX2Zyb250X3NoYnVm X2FsbG9jKCZidWZfY2ZnKTsKPiBAQCAtMjM3LDIyICsyMzQsNiBAQCBzdGF0aWMgaW50IGJlX2Ri dWZfY3JlYXRlX2ludChzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZvLAo+ICAJ cmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtaW50IHhlbl9kcm1fZnJvbnRfZGJ1Zl9jcmVhdGVfZnJv bV9zZ3Qoc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyAqZnJvbnRfaW5mbywKPiAtCQkJCSAgICAg ICB1NjQgZGJ1Zl9jb29raWUsIHUzMiB3aWR0aCwgdTMyIGhlaWdodCwKPiAtCQkJCSAgICAgICB1 MzIgYnBwLCB1NjQgc2l6ZSwgc3RydWN0IHNnX3RhYmxlICpzZ3QpCj4gLXsKPiAtCXJldHVybiBi ZV9kYnVmX2NyZWF0ZV9pbnQoZnJvbnRfaW5mbywgZGJ1Zl9jb29raWUsIHdpZHRoLCBoZWlnaHQs Cj4gLQkJCQkgIGJwcCwgc2l6ZSwgTlVMTCwgc2d0KTsKPiAtfQo+IC0KPiAtaW50IHhlbl9kcm1f ZnJvbnRfZGJ1Zl9jcmVhdGVfZnJvbV9wYWdlcyhzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpm cm9udF9pbmZvLAo+IC0JCQkJCSB1NjQgZGJ1Zl9jb29raWUsIHUzMiB3aWR0aCwgdTMyIGhlaWdo dCwKPiAtCQkJCQkgdTMyIGJwcCwgdTY0IHNpemUsIHN0cnVjdCBwYWdlICoqcGFnZXMpCj4gLXsK PiAtCXJldHVybiBiZV9kYnVmX2NyZWF0ZV9pbnQoZnJvbnRfaW5mbywgZGJ1Zl9jb29raWUsIHdp ZHRoLCBoZWlnaHQsCj4gLQkJCQkgIGJwcCwgc2l6ZSwgcGFnZXMsIE5VTEwpOwo+IC19Cj4gLQo+ ICBzdGF0aWMgaW50IHhlbl9kcm1fZnJvbnRfZGJ1Zl9kZXN0cm95KHN0cnVjdCB4ZW5fZHJtX2Zy b250X2luZm8gKmZyb250X2luZm8sCj4gIAkJCQkgICAgICB1NjQgZGJ1Zl9jb29raWUpCj4gIHsK PiBAQCAtNDM0LDI0ICs0MTUsMTEgQEAgc3RhdGljIGludCB4ZW5fZHJtX2Rydl9kdW1iX2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsCj4gIAkJZ290byBmYWlsOwo+ICAJfQo+ICAKPiAtCS8q Cj4gLQkgKiBJbiBjYXNlIG9mIENPTkZJR19EUk1fWEVOX0ZST05URU5EX0NNQSBnZW1fb2JqIGlz IGNvbnN0cnVjdGVkCj4gLQkgKiB2aWEgRFJNIENNQSBoZWxwZXJzIGFuZCBkb2Vzbid0IGhhdmUg LT5wYWdlcyBhbGxvY2F0ZWQKPiAtCSAqICh4ZW5kcm1fZ2VtX2dldF9wYWdlcyB3aWxsIHJldHVy biBOVUxMKSwgYnV0IGluc3RlYWQgY2FuIHByb3ZpZGUKPiAtCSAqIHNnIHRhYmxlCj4gLQkgKi8K PiAtCWlmICh4ZW5fZHJtX2Zyb250X2dlbV9nZXRfcGFnZXMob2JqKSkKPiAtCQlyZXQgPSB4ZW5f ZHJtX2Zyb250X2RidWZfY3JlYXRlX2Zyb21fcGFnZXMoZHJtX2luZm8tPmZyb250X2luZm8sCj4g LQkJCQl4ZW5fZHJtX2Zyb250X2RidWZfdG9fY29va2llKG9iaiksCj4gLQkJCQlhcmdzLT53aWR0 aCwgYXJncy0+aGVpZ2h0LCBhcmdzLT5icHAsCj4gLQkJCQlhcmdzLT5zaXplLAo+IC0JCQkJeGVu X2RybV9mcm9udF9nZW1fZ2V0X3BhZ2VzKG9iaikpOwo+IC0JZWxzZQo+IC0JCXJldCA9IHhlbl9k cm1fZnJvbnRfZGJ1Zl9jcmVhdGVfZnJvbV9zZ3QoZHJtX2luZm8tPmZyb250X2luZm8sCj4gLQkJ CQl4ZW5fZHJtX2Zyb250X2RidWZfdG9fY29va2llKG9iaiksCj4gLQkJCQlhcmdzLT53aWR0aCwg YXJncy0+aGVpZ2h0LCBhcmdzLT5icHAsCj4gLQkJCQlhcmdzLT5zaXplLAo+IC0JCQkJeGVuX2Ry bV9mcm9udF9nZW1fZ2V0X3NnX3RhYmxlKG9iaikpOwo+ICsJcmV0ID0geGVuX2RybV9mcm9udF9k YnVmX2NyZWF0ZShkcm1faW5mby0+ZnJvbnRfaW5mbywKPiArCQkJCQl4ZW5fZHJtX2Zyb250X2Ri dWZfdG9fY29va2llKG9iaiksCj4gKwkJCQkJYXJncy0+d2lkdGgsIGFyZ3MtPmhlaWdodCwgYXJn cy0+YnBwLAo+ICsJCQkJCWFyZ3MtPnNpemUsCj4gKwkJCQkJeGVuX2RybV9mcm9udF9nZW1fZ2V0 X3BhZ2VzKG9iaikpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGZhaWxfYmFja2VuZDsKPiAgCj4g QEAgLTUyMywxMSArNDkxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg eGVuX2RybV9kZXZfZm9wcyA9IHsKPiAgCS5wb2xsICAgICAgICAgICA9IGRybV9wb2xsLAo+ICAJ LnJlYWQgICAgICAgICAgID0gZHJtX3JlYWQsCj4gIAkubGxzZWVrICAgICAgICAgPSBub19sbHNl ZWssCj4gLSNpZmRlZiBDT05GSUdfRFJNX1hFTl9GUk9OVEVORF9DTUEKPiAtCS5tbWFwICAgICAg ICAgICA9IGRybV9nZW1fY21hX21tYXAsCj4gLSNlbHNlCj4gIAkubW1hcCAgICAgICAgICAgPSB4 ZW5fZHJtX2Zyb250X2dlbV9tbWFwLAo+IC0jZW5kaWYKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgeGVuX2RybV9kcnZfdm1fb3BzID0gewo+IEBA IC01NDcsNiArNTExLDkgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHhlbl9kcm1fZHJpdmVy ID0gewo+ICAJLmdlbV9wcmltZV9leHBvcnQgICAgICAgICAgPSBkcm1fZ2VtX3ByaW1lX2V4cG9y dCwKPiAgCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0geGVuX2RybV9mcm9udF9nZW1faW1w b3J0X3NnX3RhYmxlLAo+ICAJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgICAgPSB4ZW5fZHJtX2Zy b250X2dlbV9nZXRfc2dfdGFibGUsCj4gKwkuZ2VtX3ByaW1lX3ZtYXAgICAgICAgICAgICA9IHhl bl9kcm1fZnJvbnRfZ2VtX3ByaW1lX3ZtYXAsCj4gKwkuZ2VtX3ByaW1lX3Z1bm1hcCAgICAgICAg ICA9IHhlbl9kcm1fZnJvbnRfZ2VtX3ByaW1lX3Z1bm1hcCwKPiArCS5nZW1fcHJpbWVfbW1hcCAg ICAgICAgICAgID0geGVuX2RybV9mcm9udF9nZW1fcHJpbWVfbW1hcCwKPiAgCS5kdW1iX2NyZWF0 ZSAgICAgICAgICAgICAgID0geGVuX2RybV9kcnZfZHVtYl9jcmVhdGUsCj4gIAkuZm9wcyAgICAg ICAgICAgICAgICAgICAgICA9ICZ4ZW5fZHJtX2Rldl9mb3BzLAo+ICAJLm5hbWUgICAgICAgICAg ICAgICAgICAgICAgPSAieGVuZHJtLWR1IiwKPiBAQCAtNTU1LDE1ICs1MjIsNiBAQCBzdGF0aWMg c3RydWN0IGRybV9kcml2ZXIgeGVuX2RybV9kcml2ZXIgPSB7Cj4gIAkubWFqb3IgICAgICAgICAg ICAgICAgICAgICA9IDEsCj4gIAkubWlub3IgICAgICAgICAgICAgICAgICAgICA9IDAsCj4gIAo+ IC0jaWZkZWYgQ09ORklHX0RSTV9YRU5fRlJPTlRFTkRfQ01BCj4gLQkuZ2VtX3ByaW1lX3ZtYXAg ICAgICAgICAgICA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCj4gLQkuZ2VtX3ByaW1lX3Z1bm1h cCAgICAgICAgICA9IGRybV9nZW1fY21hX3ByaW1lX3Z1bm1hcCwKPiAtCS5nZW1fcHJpbWVfbW1h cCAgICAgICAgICAgID0gZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCwKPiAtI2Vsc2UKPiAtCS5nZW1f cHJpbWVfdm1hcCAgICAgICAgICAgID0geGVuX2RybV9mcm9udF9nZW1fcHJpbWVfdm1hcCwKPiAt CS5nZW1fcHJpbWVfdnVubWFwICAgICAgICAgID0geGVuX2RybV9mcm9udF9nZW1fcHJpbWVfdnVu bWFwLAo+IC0JLmdlbV9wcmltZV9tbWFwICAgICAgICAgICAgPSB4ZW5fZHJtX2Zyb250X2dlbV9w cmltZV9tbWFwLAo+IC0jZW5kaWYKPiAgfTsKPiAgCj4gIHN0YXRpYyBpbnQgeGVuX2RybV9kcnZf aW5pdChzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZvKQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaCBiL2RyaXZlcnMvZ3B1L2RybS94 ZW4veGVuX2RybV9mcm9udC5oCj4gaW5kZXggMTY1NTRiMjQ2M2Q4Li4yYzI0NzliNTcxYWUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaAo+IEBAIC0yMyw0MCArMjMsMTQgQEAK PiAgICoKPiAgICogRGVwZW5kaW5nIG9uIHRoZSByZXF1aXJlbWVudHMgZm9yIHRoZSBwYXJhLXZp cnR1YWxpemVkIGVudmlyb25tZW50LCBuYW1lbHkKPiAgICogcmVxdWlyZW1lbnRzIGRpY3RhdGVk IGJ5IHRoZSBhY2NvbXBhbnlpbmcgRFJNLyh2KUdQVSBkcml2ZXJzIHJ1bm5pbmcgaW4gYm90aAo+ IC0gKiBob3N0IGFuZCBndWVzdCBlbnZpcm9ubWVudHMsIG51bWJlciBvZiBvcGVyYXRpbmcgbW9k ZXMgb2YgcGFyYS12aXJ0dWFsaXplZAo+IC0gKiBkaXNwbGF5IGRyaXZlciBhcmUgc3VwcG9ydGVk Ogo+IC0gKgo+IC0gKiAtIGRpc3BsYXkgYnVmZmVycyBjYW4gYmUgYWxsb2NhdGVkIGJ5IGVpdGhl ciBmcm9udGVuZCBkcml2ZXIgb3IgYmFja2VuZAo+IC0gKiAtIGRpc3BsYXkgYnVmZmVycyBjYW4g YmUgYWxsb2NhdGVkIHRvIGJlIGNvbnRpZ3VvdXMgaW4gbWVtb3J5IG9yIG5vdAo+IC0gKgo+IC0g KiBOb3RlISBGcm9udGVuZCBkcml2ZXIgaXRzZWxmIGhhcyBubyBkZXBlbmRlbmN5IG9uIGNvbnRp Z3VvdXMgbWVtb3J5IGZvcgo+IC0gKiBpdHMgb3BlcmF0aW9uLgo+ICsgKiBob3N0IGFuZCBndWVz dCBlbnZpcm9ubWVudHMsIGRpc3BsYXkgYnVmZmVycyBjYW4gYmUgYWxsb2NhdGVkIGJ5IGVpdGhl cgo+ICsgKiBmcm9udGVuZCBkcml2ZXIgb3IgYmFja2VuZC4KPiAgICovCj4gIAo+ICAvKioKPiAg ICogRE9DOiBCdWZmZXJzIGFsbG9jYXRlZCBieSB0aGUgZnJvbnRlbmQgZHJpdmVyCj4gICAqCj4g LSAqIFRoZSBiZWxvdyBtb2RlcyBvZiBvcGVyYXRpb24gYXJlIGNvbmZpZ3VyZWQgYXQgY29tcGls ZS10aW1lIHZpYQo+IC0gKiBmcm9udGVuZCBkcml2ZXIncyBrZXJuZWwgY29uZmlndXJhdGlvbjoK PiAtICovCj4gLQo+IC0vKioKPiAtICogRE9DOiBXaXRoIEdFTSBDTUEgaGVscGVycwo+IC0gKgo+ IC0gKiBUaGlzIHVzZS1jYXNlIGlzIHVzZWZ1bCB3aGVuIHVzZWQgd2l0aCBhY2NvbXBhbnlpbmcg RFJNL3ZHUFUgZHJpdmVyIGluCj4gLSAqIGd1ZXN0IGRvbWFpbiB3aGljaCB3YXMgZGVzaWduZWQg dG8gb25seSB3b3JrIHdpdGggY29udGlndW91cyBidWZmZXJzLAo+IC0gKiBlLmcuIERSTSBkcml2 ZXIgYmFzZWQgb24gR0VNIENNQSBoZWxwZXJzOiBzdWNoIGRyaXZlcnMgY2FuIG9ubHkgaW1wb3J0 Cj4gLSAqIGNvbnRpZ3VvdXMgUFJJTUUgYnVmZmVycywgdGh1cyByZXF1aXJpbmcgZnJvbnRlbmQg ZHJpdmVyIHRvIHByb3ZpZGUKPiAtICogc3VjaC4gSW4gb3JkZXIgdG8gaW1wbGVtZW50IHRoaXMg bW9kZSBvZiBvcGVyYXRpb24gcGFyYS12aXJ0dWFsaXplZAo+IC0gKiBmcm9udGVuZCBkcml2ZXIg Y2FuIGJlIGNvbmZpZ3VyZWQgdG8gdXNlIEdFTSBDTUEgaGVscGVycy4KPiAtICovCj4gLQo+IC0v KioKPiAtICogRE9DOiBXaXRob3V0IEdFTSBDTUEgaGVscGVycwo+IC0gKgo+IC0gKiBJZiBhY2Nv bXBhbnlpbmcgZHJpdmVycyBjYW4gY29wZSB3aXRoIG5vbi1jb250aWd1b3VzIG1lbW9yeSB0aGVu LCB0bwo+IC0gKiBsb3dlciBwcmVzc3VyZSBvbiBDTUEgc3Vic3lzdGVtIG9mIHRoZSBrZXJuZWws IGRyaXZlciBjYW4gYWxsb2NhdGUKPiAtICogYnVmZmVycyBmcm9tIHN5c3RlbSBtZW1vcnkuCj4g KyAqIEluIHRoaXMgbW9kZSBvZiBvcGVyYXRpb24gZHJpdmVyIGFsbG9jYXRlcyBidWZmZXJzIGZy b20gc3lzdGVtIG1lbW9yeS4KPiAgICoKPiAgICogTm90ZSEgSWYgdXNlZCB3aXRoIGFjY29tcGFu eWluZyBEUk0vKHYpR1BVIGRyaXZlcnMgdGhpcyBtb2RlIG9mIG9wZXJhdGlvbgo+ICAgKiBtYXkg cmVxdWlyZSBJT01NVSBzdXBwb3J0IG9uIHRoZSBwbGF0Zm9ybSwgc28gYWNjb21wYW55aW5nIERS TS92R1BVCj4gQEAgLTE2NCwxMyArMTM4LDkgQEAgaW50IHhlbl9kcm1fZnJvbnRfbW9kZV9zZXQo c3RydWN0IHhlbl9kcm1fZnJvbnRfZHJtX3BpcGVsaW5lICpwaXBlbGluZSwKPiAgCQkJICAgdTMy IHgsIHUzMiB5LCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQsCj4gIAkJCSAgIHUzMiBicHAsIHU2NCBm Yl9jb29raWUpOwo+ICAKPiAtaW50IHhlbl9kcm1fZnJvbnRfZGJ1Zl9jcmVhdGVfZnJvbV9zZ3Qo c3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyAqZnJvbnRfaW5mbywKPiAtCQkJCSAgICAgICB1NjQg ZGJ1Zl9jb29raWUsIHUzMiB3aWR0aCwgdTMyIGhlaWdodCwKPiAtCQkJCSAgICAgICB1MzIgYnBw LCB1NjQgc2l6ZSwgc3RydWN0IHNnX3RhYmxlICpzZ3QpOwo+IC0KPiAtaW50IHhlbl9kcm1fZnJv bnRfZGJ1Zl9jcmVhdGVfZnJvbV9wYWdlcyhzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9u dF9pbmZvLAo+IC0JCQkJCSB1NjQgZGJ1Zl9jb29raWUsIHUzMiB3aWR0aCwgdTMyIGhlaWdodCwK PiAtCQkJCQkgdTMyIGJwcCwgdTY0IHNpemUsIHN0cnVjdCBwYWdlICoqcGFnZXMpOwo+ICtpbnQg eGVuX2RybV9mcm9udF9kYnVmX2NyZWF0ZShzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9u dF9pbmZvLAo+ICsJCQkgICAgICB1NjQgZGJ1Zl9jb29raWUsIHUzMiB3aWR0aCwgdTMyIGhlaWdo dCwKPiArCQkJICAgICAgdTMyIGJwcCwgdTY0IHNpemUsIHN0cnVjdCBwYWdlICoqcGFnZXMpOwo+ ICAKPiAgaW50IHhlbl9kcm1fZnJvbnRfZmJfYXR0YWNoKHN0cnVjdCB4ZW5fZHJtX2Zyb250X2lu Zm8gKmZyb250X2luZm8sCj4gIAkJCSAgICB1NjQgZGJ1Zl9jb29raWUsIHU2NCBmYl9jb29raWUs IHUzMiB3aWR0aCwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy b250X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jCj4gaW5k ZXggM2IwNGEyMjY5ZDdhLi5jODViZmU3NTcxY2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94 ZW5fZHJtX2Zyb250X2dlbS5jCj4gQEAgLTIxMCwxNSArMjEwLDkgQEAgeGVuX2RybV9mcm9udF9n ZW1faW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAocmV0IDwg MCkKPiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAKPiAtCS8qCj4gLQkgKiBOLkIuIEFsdGhv dWdoIHdlIGhhdmUgYW4gQVBJIHRvIGNyZWF0ZSBkaXNwbGF5IGJ1ZmZlciBmcm9tIHNndAo+IC0J ICogd2UgdXNlIHBhZ2VzIEFQSSwgYmVjYXVzZSB3ZSBzdGlsbCBuZWVkIHRob3NlIGZvciBHRU0g aGFuZGxpbmcsCj4gLQkgKiBlLmcuIGZvciBtYXBwaW5nIGV0Yy4KPiAtCSAqLwo+IC0JcmV0ID0g eGVuX2RybV9mcm9udF9kYnVmX2NyZWF0ZV9mcm9tX3BhZ2VzKGRybV9pbmZvLT5mcm9udF9pbmZv LAo+IC0JCQkJCQkgICB4ZW5fZHJtX2Zyb250X2RidWZfdG9fY29va2llKCZ4ZW5fb2JqLT5iYXNl KSwKPiAtCQkJCQkJICAgMCwgMCwgMCwgc2l6ZSwKPiAtCQkJCQkJICAgeGVuX29iai0+cGFnZXMp Owo+ICsJcmV0ID0geGVuX2RybV9mcm9udF9kYnVmX2NyZWF0ZShkcm1faW5mby0+ZnJvbnRfaW5m bywKPiArCQkJCQl4ZW5fZHJtX2Zyb250X2RidWZfdG9fY29va2llKCZ4ZW5fb2JqLT5iYXNlKSwK PiArCQkJCQkwLCAwLCAwLCBzaXplLCB4ZW5fb2JqLT5wYWdlcyk7Cj4gIAlpZiAocmV0IDwgMCkK PiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5oIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X2dlbS5oCj4gaW5kZXggNTVlNTMxZjVhNzYzLi5kNWFiNzM0ZmRhZmUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5oCj4gQEAgLTI3LDggKzI3LDYgQEAg c3RydWN0IHBhZ2UgKip4ZW5fZHJtX2Zyb250X2dlbV9nZXRfcGFnZXMoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopOwo+ICAKPiAgdm9pZCB4ZW5fZHJtX2Zyb250X2dlbV9mcmVlX29iamVjdF91 bmxvY2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmopOwo+ICAKPiAtI2lmbmRlZiBD T05GSUdfRFJNX1hFTl9GUk9OVEVORF9DTUEKPiAtCj4gIGludCB4ZW5fZHJtX2Zyb250X2dlbV9t bWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Cj4gIAo+ ICB2b2lkICp4ZW5fZHJtX2Zyb250X2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqZ2VtX29iaik7Cj4gQEAgLTM4LDYgKzM2LDUgQEAgdm9pZCB4ZW5fZHJtX2Zyb250X2dlbV9w cmltZV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqLAo+ICAKPiAgaW50IHhl bl9kcm1fZnJvbnRfZ2VtX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2Jq LAo+ICAJCQkJIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAtI2VuZGlmCj4gIAo+ICAj ZW5kaWYgLyogX19YRU5fRFJNX0ZST05UX0dFTV9IICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW1fY21hLmMgYi9kcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnRfZ2VtX2NtYS5jCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggYmEzMGE0YmMyYTM5Li4wMDAwMDAwMDAwMDAKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnRfZ2VtX2NtYS5jCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDc5ICswLDAg QEAKPiAtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUCj4gLQo+IC0v Kgo+IC0gKiAgWGVuIHBhcmEtdmlydHVhbCBEUk0gZGV2aWNlCj4gLSAqCj4gLSAqIENvcHlyaWdo dCAoQykgMjAxNi0yMDE4IEVQQU0gU3lzdGVtcyBJbmMuCj4gLSAqCj4gLSAqIEF1dGhvcjogT2xl a3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+ IC0gKi8KPiAtCj4gLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9n ZW0uaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgo+IC0jaW5jbHVkZSA8 ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgo+IC0KPiAtI2luY2x1ZGUgInhlbl9kcm1fZnJvbnQu aCIKPiAtI2luY2x1ZGUgInhlbl9kcm1fZnJvbnRfZ2VtLmgiCj4gLQo+IC1zdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKgo+IC14ZW5fZHJtX2Zyb250X2dlbV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAtCQkJCSAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNo LAo+IC0JCQkJICBzdHJ1Y3Qgc2dfdGFibGUgKnNndCkKPiAtewo+IC0Jc3RydWN0IHhlbl9kcm1f ZnJvbnRfZHJtX2luZm8gKmRybV9pbmZvID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBk cm1fZ2VtX29iamVjdCAqZ2VtX29iajsKPiAtCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNt YV9vYmo7Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWdlbV9vYmogPSBkcm1fZ2VtX2NtYV9wcmltZV9p bXBvcnRfc2dfdGFibGUoZGV2LCBhdHRhY2gsIHNndCk7Cj4gLQlpZiAoSVNfRVJSX09SX05VTEwo Z2VtX29iaikpCj4gLQkJcmV0dXJuIGdlbV9vYmo7Cj4gLQo+IC0JY21hX29iaiA9IHRvX2RybV9n ZW1fY21hX29iaihnZW1fb2JqKTsKPiAtCj4gLQlyZXQgPSB4ZW5fZHJtX2Zyb250X2RidWZfY3Jl YXRlX2Zyb21fc2d0KGRybV9pbmZvLT5mcm9udF9pbmZvLAo+IC0JCQkJCQkgeGVuX2RybV9mcm9u dF9kYnVmX3RvX2Nvb2tpZShnZW1fb2JqKSwKPiAtCQkJCQkJIDAsIDAsIDAsIGdlbV9vYmotPnNp emUsCj4gLQkJCQkJCSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUoZ2VtX29iaikpOwo+ IC0JaWYgKHJldCA8IDApCj4gLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAtCj4gLQlEUk1fREVC VUcoIkltcG9ydGVkIENNQSBidWZmZXIgb2Ygc2l6ZSAlenVcbiIsIGdlbV9vYmotPnNpemUpOwo+ IC0KPiAtCXJldHVybiBnZW1fb2JqOwo+IC19Cj4gLQo+IC1zdHJ1Y3Qgc2dfdGFibGUgKnhlbl9k cm1fZnJvbnRfZ2VtX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmop Cj4gLXsKPiAtCXJldHVybiBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUoZ2VtX29iaik7 Cj4gLX0KPiAtCj4gLXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqeGVuX2RybV9mcm9udF9nZW1fY3Jl YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCQkJCXNpemVfdCBzaXplKQo+IC17Cj4g LQlzdHJ1Y3QgeGVuX2RybV9mcm9udF9kcm1faW5mbyAqZHJtX2luZm8gPSBkZXYtPmRldl9wcml2 YXRlOwo+IC0Jc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iajsKPiAtCj4gLQlpZiAo ZHJtX2luZm8tPmZyb250X2luZm8tPmNmZy5iZV9hbGxvYykgewo+IC0JCS8qIFRoaXMgdXNlLWNh c2UgaXMgbm90IHlldCBzdXBwb3J0ZWQgYW5kIHByb2JhYmx5IHdvbid0IGJlICovCj4gLQkJRFJN X0VSUk9SKCJCYWNrZW5kIGFsbG9jYXRlZCBidWZmZXJzIGFuZCBDTUEgaGVscGVycyBhcmUgbm90 IHN1cHBvcnRlZCBhdCB0aGUgc2FtZSB0aW1lXG4iKTsKPiAtCQlyZXR1cm4gRVJSX1BUUigtRUlO VkFMKTsKPiAtCX0KPiAtCj4gLQljbWFfb2JqID0gZHJtX2dlbV9jbWFfY3JlYXRlKGRldiwgc2l6 ZSk7Cj4gLQlpZiAoSVNfRVJSX09SX05VTEwoY21hX29iaikpCj4gLQkJcmV0dXJuIEVSUl9DQVNU KGNtYV9vYmopOwo+IC0KPiAtCXJldHVybiAmY21hX29iai0+YmFzZTsKPiAtfQo+IC0KPiAtdm9p ZCB4ZW5fZHJtX2Zyb250X2dlbV9mcmVlX29iamVjdF91bmxvY2tlZChzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKmdlbV9vYmopCj4gLXsKPiAtCWRybV9nZW1fY21hX2ZyZWVfb2JqZWN0KGdlbV9vYmop Owo+IC19Cj4gLQo+IC1zdHJ1Y3QgcGFnZSAqKnhlbl9kcm1fZnJvbnRfZ2VtX2dldF9wYWdlcyhz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmopCj4gLXsKPiAtCXJldHVybiBOVUxMOwo+IC19 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9zaGJ1Zi5j IGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X3NoYnVmLmMKPiBpbmRleCAxOTkx NGRkZTRiM2QuLmQ1NzA1MjUxYTBkNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnRfc2hidWYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9zaGJ1Zi5jCj4gQEAgLTg5LDEwICs4OSw2IEBAIHZvaWQgeGVuX2RybV9mcm9udF9z aGJ1Zl9mcmVlKHN0cnVjdCB4ZW5fZHJtX2Zyb250X3NoYnVmICpidWYpCj4gIAl9Cj4gIAlrZnJl ZShidWYtPmdyZWZzKTsKPiAgCWtmcmVlKGJ1Zi0+ZGlyZWN0b3J5KTsKPiAtCWlmIChidWYtPnNn dCkgewo+IC0JCXNnX2ZyZWVfdGFibGUoYnVmLT5zZ3QpOwo+IC0JCWt2ZnJlZShidWYtPnBhZ2Vz KTsKPiAtCX0KPiAgCWtmcmVlKGJ1Zik7Cj4gIH0KPiAgCj4gQEAgLTM1MCwxNyArMzQ2LDYgQEAg c3RhdGljIGludCBncmFudF9yZWZlcmVuY2VzKHN0cnVjdCB4ZW5fZHJtX2Zyb250X3NoYnVmICpi dWYpCj4gIAo+ICBzdGF0aWMgaW50IGFsbG9jX3N0b3JhZ2Uoc3RydWN0IHhlbl9kcm1fZnJvbnRf c2hidWYgKmJ1ZikKPiAgewo+IC0JaWYgKGJ1Zi0+c2d0KSB7Cj4gLQkJYnVmLT5wYWdlcyA9IGt2 bWFsbG9jX2FycmF5KGJ1Zi0+bnVtX3BhZ2VzLAo+IC0JCQkJCSAgICBzaXplb2Yoc3RydWN0IHBh Z2UgKiksIEdGUF9LRVJORUwpOwo+IC0JCWlmICghYnVmLT5wYWdlcykKPiAtCQkJcmV0dXJuIC1F Tk9NRU07Cj4gLQo+IC0JCWlmIChkcm1fcHJpbWVfc2dfdG9fcGFnZV9hZGRyX2FycmF5cyhidWYt PnNndCwgYnVmLT5wYWdlcywKPiAtCQkJCQkJICAgICBOVUxMLCBidWYtPm51bV9wYWdlcykgPCAw KQo+IC0JCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gIAlidWYtPmdyZWZzID0ga2NhbGxv YyhidWYtPm51bV9ncmVmcywgc2l6ZW9mKCpidWYtPmdyZWZzKSwgR0ZQX0tFUk5FTCk7Cj4gIAlp ZiAoIWJ1Zi0+Z3JlZnMpCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gQEAgLTM5NiwxMiArMzgxLDYg QEAgeGVuX2RybV9mcm9udF9zaGJ1Zl9hbGxvYyhzdHJ1Y3QgeGVuX2RybV9mcm9udF9zaGJ1Zl9j ZmcgKmNmZykKPiAgCXN0cnVjdCB4ZW5fZHJtX2Zyb250X3NoYnVmICpidWY7Cj4gIAlpbnQgcmV0 Owo+ICAKPiAtCS8qIGVpdGhlciBwYWdlcyBvciBzZ3QsIG5vdCBib3RoICovCj4gLQlpZiAodW5s aWtlbHkoY2ZnLT5wYWdlcyAmJiBjZmctPnNndCkpIHsKPiAtCQlEUk1fRVJST1IoIkNhbm5vdCBo YW5kbGUgYnVmZmVyIGFsbG9jYXRpb24gd2l0aCBib3RoIHBhZ2VzIGFuZCBzZyB0YWJsZSBwcm92 aWRlZFxuIik7Cj4gLQkJcmV0dXJuIE5VTEw7Cj4gLQl9Cj4gLQo+ICAJYnVmID0ga3phbGxvYyhz aXplb2YoKmJ1ZiksIEdGUF9LRVJORUwpOwo+ICAJaWYgKCFidWYpCj4gIAkJcmV0dXJuIE5VTEw7 Cj4gQEAgLTQxMyw3ICszOTIsNiBAQCB4ZW5fZHJtX2Zyb250X3NoYnVmX2FsbG9jKHN0cnVjdCB4 ZW5fZHJtX2Zyb250X3NoYnVmX2NmZyAqY2ZnKQo+ICAKPiAgCWJ1Zi0+eGJfZGV2ID0gY2ZnLT54 Yl9kZXY7Cj4gIAlidWYtPm51bV9wYWdlcyA9IERJVl9ST1VORF9VUChjZmctPnNpemUsIFBBR0Vf U0laRSk7Cj4gLQlidWYtPnNndCA9IGNmZy0+c2d0Owo+ICAJYnVmLT5wYWdlcyA9IGNmZy0+cGFn ZXM7Cj4gIAo+ICAJYnVmLT5vcHMtPmNhbGNfbnVtX2dyZWZzKGJ1Zik7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9zaGJ1Zi5oIGIvZHJpdmVycy9ncHUv ZHJtL3hlbi94ZW5fZHJtX2Zyb250X3NoYnVmLmgKPiBpbmRleCA4YzAzN2ZkNzYwOGIuLjc1NDVj NjkyNTM5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRf c2hidWYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9zaGJ1Zi5o Cj4gQEAgLTI5LDE2ICsyOSw5IEBAIHN0cnVjdCB4ZW5fZHJtX2Zyb250X3NoYnVmIHsKPiAgCWdy YW50X3JlZl90ICpncmVmczsKPiAgCXVuc2lnbmVkIGNoYXIgKmRpcmVjdG9yeTsKPiAgCj4gLQkv Kgo+IC0JICogdGhlcmUgYXJlIDIgd2F5cyB0byBwcm92aWRlIGJhY2tpbmcgc3RvcmFnZSBmb3Ig dGhpcyBzaGFyZWQgYnVmZmVyOgo+IC0JICogZWl0aGVyIHBhZ2VzIG9yIHNndC4gaWYgYnVmZmVy IGNyZWF0ZWQgZnJvbSBzZ3QgdGhlbiB3ZSBvd24KPiAtCSAqIHRoZSBwYWdlcyBhbmQgbXVzdCBm cmVlIHRob3NlIG91cnNlbHZlcyBvbiBjbG9zdXJlCj4gLQkgKi8KPiAgCWludCBudW1fcGFnZXM7 Cj4gIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwo+ICAKPiAtCXN0cnVjdCBzZ190YWJsZSAqc2d0Owo+ IC0KPiAgCXN0cnVjdCB4ZW5idXNfZGV2aWNlICp4Yl9kZXY7Cj4gIAo+ICAJLyogdGhlc2UgYXJl IHRoZSBvcHMgdXNlZCBpbnRlcm5hbGx5IGRlcGVuZGluZyBvbiBiZV9hbGxvYyBtb2RlICovCj4g QEAgLTUyLDcgKzQ1LDYgQEAgc3RydWN0IHhlbl9kcm1fZnJvbnRfc2hidWZfY2ZnIHsKPiAgCXN0 cnVjdCB4ZW5idXNfZGV2aWNlICp4Yl9kZXY7Cj4gIAlzaXplX3Qgc2l6ZTsKPiAgCXN0cnVjdCBw YWdlICoqcGFnZXM7Cj4gLQlzdHJ1Y3Qgc2dfdGFibGUgKnNndDsKPiAgCWJvb2wgYmVfYWxsb2M7 Cj4gIH07Cj4gIAo+IC0tIAo+IDIuMTcuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=