From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 09/10] drm/vkms: totally reworked crc data tracking Date: Thu, 13 Jun 2019 09:59:35 +0200 Message-ID: <20190613075935.GD23020@phenom.ffwll.local> References: <20190606222751.32567-1-daniel.vetter@ffwll.ch> <20190606222751.32567-10-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id EDF30897E0 for ; Thu, 13 Jun 2019 07:59:39 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id w13so29887759eds.4 for ; Thu, 13 Jun 2019 00:59:39 -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: Rodrigo Siqueira Cc: Daniel Vetter , Haneen Mohammed , DRI Development , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKdW4gMTIsIDIwMTkgYXQgMTA6NDY6MjhBTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBPbiBUaHUsIEp1biA2LCAyMDE5IGF0IDc6MjggUE0gRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBmZndsbC5jaD4gd3JvdGU6Cj4gPgo+ID4gVGhlIGNyYyBjb21wdXRhdGlv biB3b3JrZXIgbmVlZHMgdG8gYmUgYWJsZSB0byBnZXQgYXQgc29tZSBkYXRhCj4gPiBzdHJ1Y3R1 cmVzIGFuZCBmcmFtZWJ1ZmZlciBtYXBwaW5ncywgd2hpbGUgcG90ZW50aWFsbHkgbW9yZSBhdG9t aWMKPiA+IHVwZGF0ZXMgYXJlIGdvaW5nIG9uLiBUaGUgc29sdXRpb24gdGh1cyBmYXIgaXMgdG8g Y29weSByZWxldmFudCBiaXRzCj4gPiBhcm91bmQsIGJ1dCB0aGF0J3MgdmVyeSB0ZWRpb3VzLgo+ ID4KPiA+IEhlcmUncyBhIG5ldyBhcHByb2FjaCwgd2hpY2ggdHJpZXMgdG8gYmUgbW9yZSBjbGV2 ZXIsIGJ1dCByZWxpZXMgb24gYQo+ID4gZmV3IG5vdC1zby1vYnZpb3VzIHRoaW5nczoKPiA+IC0g Y3J0Y19zdGF0ZSBpcyBhbHdheXMgdXBkYXRlZCB3aGVuIGEgcGxhbmVfc3RhdGUgY2hhbmdlcy4g VGhlcmVmb3JlCj4gPiAgIHdlIGNhbiBqdXN0IHN0dWZmIHBsYW5lX3N0YXRlIHBvaW50ZXJzIGlu dG8gYSBjcnRjX3N0YXRlLiBUaGF0Cj4gPiAgIHNvbHZlcyB0aGUgcHJvYmxlbSBvZiBlYXNpbHkg Z2V0dGluZyBhdCB0aGUgbmVlZGVkIHBsYW5lX3N0YXRlcy4KPiAKPiBKdXN0IGZvciBjdXJpb3Np dHksIHdoZXJlIGV4YWN0bHkgdGhlIGNyY3Rfc3RhdGUgaXMgdXBkYXRlZD8gSWYKPiBwb3NzaWJs ZSwgY291bGQgeW91IGVsYWJvcmF0ZSBhIGxpdHRsZSBiaXQgYWJvdXQgdGhpcz8KCmRybV9hdG9t aWNfZ2V0X3BsYW5lX3N0YXRlIGFsd2F5cyBnZXRzIHRoZSBjcnRjX3N0YXRlIHRvbywgd2hpY2gg bWVhbnMgaWYKd2UgZHVwbGljYXRlIGEgcGxhbmVfc3RhdGUsIHdlIHdpbGwgX2Fsd2F5c18gZHVw bGljYXRlIHRoZSBjcnRjIHN0YXRlIHRvby4KVGhpcyBpcyBhIGd1YXJhbnRlZSBieSB0aGUgYXRv bWljIGttcyBkZXNpZ24uCgo+IAo+ID4gLSB3aXRoIHRoZSBmbHVzaGluZyBjaGFuZ2VzIGZyb20g cHJldmlvdXMgcGF0Y2hlcyB0aGUgYWJvdmUgYWxzbyBob2xkcwo+ID4gICB3aXRob3V0IHJhY2Vz IGR1ZSB0byB0aGUgbmV4dCBhdG9taWMgdXBkYXRlIGJlaW5nIGEgYml0IGVhZ2VyIHdpdGgKPiA+ ICAgY2xlYW5pbmcgdXAgcGVuZGluZyB3b3JrIC0gd2UgYWx3YXlzIHdhaXQgZm9yIGFsbCBjcmMg d29yayBpdGVtcyB0bwo+ID4gICBjb21wbGV0ZSBiZWZvcmUgdW5tYXBwaW5nIGZyYW1lYnVmZmVy cy4KPiA+IC0gd2UgYWxzbyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBocnRpbWVyIGZpcmVz IG9mZiB0aGUgcmlnaHQKPiA+ICAgd29ya2VyLiBLZWVwIGEgbmV3IGRpc3RpbmN0IGNyY19zdGF0 ZSBwb2ludGVyLCB1bmRlciB0aGUKPiA+ICAgdmttc19vdXRwdXQtPmxvY2sgcHJvdGVjdGlvbiBm b3IgdGhpcy4gTm90ZSB0aGF0IGNydGMtPnN0YXRlIGlzCj4gPiAgIHVwZGF0ZWQgdmVyeSBlYXJs eSBpbiB0aGUgYXRvbWljIGNvbW1pdCwgd2F5IGJlZm9yZSB3ZSBhcm0gdGhlCj4gPiAgIHZibGFu ayBldmVudCAtIHRoZSB2YmxhbmsgZXZlbnQgc2hvdWxkIGFsd2F5cyBtYXRjaCB0aGUgYnVmZmVy cyB3ZQo+ID4gICB1c2UgdG8gY29tcHV0ZSB0aGUgY3JjLiBUaGlzIGFsc28gc29sdmVzIGFuIGlz c3VlIGluIHRoZSBocnRpbWVyLAo+ID4gICB3aGVyZSB3ZSd2ZSBhY2Nlc3NlZCBkcm1fY3J0Yy0+ c3RhdGUgd2l0aG91dCBob2xkaW5nIHRoZSByaWdodCBsb2Nrcwo+ID4gICAod2UgaGVsZCBub25l IC0gb29wcykuCj4gPiAtIGluIHRoZSB3b3JrZXIgaXRzZWxmIHdlIGNhbiB0aGVuIGp1c3QgYWNj ZXNzIHRoZSBwbGFuZSBzdGF0ZXMgd2UKPiA+ICAgbmVlZCwgYWdhaW4gc29sdmluZyBhIGJ1bmNo IG9mIG9yZGVyaW5nIGFuZCBsb2NraW5nIGlzc3Vlcy4KPiA+ICAgQWNjZXNzaW5nIHBsYW5lLT5z dGF0ZSByZXF1aXJlcyBsb2NrcywgYWNjZXNzaW5nIHRoZSBwcml2YXRlCj4gPiAgIHZrbXNfY3J0 Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyBwb2ludGVyIG9ubHkgcmVxdWlyZXMgdGhhdCB0aGUgbWVt b3J5Cj4gPiAgIGRvZXNuJ3QgZ2V0IGZyZWVkIHRvbyBlYXJseS4KPiA+Cj4gPiBUaGUgaWRlYSBi ZWhpbmQgdmttc19jcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzIGlzIHRoYXQgdGhpcyB3b3VsZAo+ ID4gY29udGFpbiBhbGwgdmlzaWJsZSBwbGFuZXMsIGluIHotb3JkZXIsIGFzIGEgZmlyc3Qgc3Rl cCB0b3dhcmRzIGEgbW9yZQo+ID4gZ2VuZXJpYyBibGVuZGluZyBpbXBsZW1lbnRhdGlvbi4KPiA+ Cj4gPiBOb3RlIHRoYXQgdGhpcyBwYXRjaCBhbHNvIGZpeGVzIHJhY2VzIGJldHdlZW4gcHJlcGFy ZV9mYi9jbGVhbnVwX2ZiCj4gPiBhbmQgdGhlIGNyYyB3b3JrZXIgYWNjZXNzaW5nIC0+dmFkZHIu Cj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRl bC5jb20+Cj4gPiBDYzogUm9kcmlnbyBTaXF1ZWlyYSA8cm9kcmlnb3NpcXVlaXJhbWVsb0BnbWFp bC5jb20+Cj4gPiBDYzogSGFuZWVuIE1vaGFtbWVkIDxoYW1vaGFtbWVkLnNhQGdtYWlsLmNvbT4K PiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gPiAtLS0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jICB8IDIxICsrKy0tLS0tLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgfCA2MCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggIHwgIDkgKysrKy0K PiA+ICAzIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQo+ ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jIGIvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYwo+ID4gaW5kZXggOWQxNWU1ZTg1ODMwLi4wZDMx Y2ZjMzIwNDIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gPiBAQCAtMTU5LDEx ICsxNTksOCBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyY193b3JrKTsKPiA+ICAgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjOwo+ID4gICAgICAgICBzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRybV9j cnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ID4gLSAgICAgICBzdHJ1Y3Qgdmttc19kZXZpY2Ug KnZkZXYgPSBjb250YWluZXJfb2Yob3V0LCBzdHJ1Y3Qgdmttc19kZXZpY2UsCj4gPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQpOwo+ID4gICAg ICAgICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqcHJpbWFyeV9jcmMgPSBOVUxMOwo+ID4gICAgICAg ICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3Vyc29yX2NyYyA9IE5VTEw7Cj4gPiAtICAgICAgIHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ID4gICAgICAgICB1MzIgY3JjMzIgPSAwOwo+ID4gICAg ICAgICB1NjQgZnJhbWVfc3RhcnQsIGZyYW1lX2VuZDsKPiA+ICAgICAgICAgYm9vbCBjcmNfcGVu ZGluZzsKPiA+IEBAIC0xODQsMjEgKzE4MSwxMSBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxl KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICAgICAgICAgaWYgKCFjcmNfcGVuZGluZykK PiA+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4gPgo+ID4gLSAgICAgICBkcm1fZm9yX2VhY2hf cGxhbmUocGxhbmUsICZ2ZGV2LT5kcm0pIHsKPiA+IC0gICAgICAgICAgICAgICBzdHJ1Y3Qgdmtt c19wbGFuZV9zdGF0ZSAqdnBsYW5lX3N0YXRlOwo+ID4gLSAgICAgICAgICAgICAgIHN0cnVjdCB2 a21zX2NyY19kYXRhICpjcmNfZGF0YTsKPiA+ICsgICAgICAgaWYgKGNydGNfc3RhdGUtPm51bV9h Y3RpdmVfcGxhbmVzID49IDEpCj4gPiArICAgICAgICAgICAgICAgcHJpbWFyeV9jcmMgPSBjcnRj X3N0YXRlLT5hY3RpdmVfcGxhbmVzWzBdLT5jcmNfZGF0YTsKPiA+Cj4gPiAtICAgICAgICAgICAg ICAgdnBsYW5lX3N0YXRlID0gdG9fdmttc19wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwo+ID4g LSAgICAgICAgICAgICAgIGNyY19kYXRhID0gdnBsYW5lX3N0YXRlLT5jcmNfZGF0YTsKPiA+IC0K PiA+IC0gICAgICAgICAgICAgICBpZiAoZHJtX2ZyYW1lYnVmZmVyX3JlYWRfcmVmY291bnQoJmNy Y19kYXRhLT5mYikgPT0gMCkKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ ID4gLQo+ID4gLSAgICAgICAgICAgICAgIGlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9jcmMgPSBjcmNf ZGF0YTsKPiA+IC0gICAgICAgICAgICAgICBlbHNlCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICBjdXJzb3JfY3JjID0gY3JjX2RhdGE7Cj4gPiAtICAgICAgIH0KPiA+ICsgICAgICAgaWYgKGNy dGNfc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID09IDIpCj4gPiArICAgICAgICAgICAgICAgY3Vy c29yX2NyYyA9IGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXNbMV0tPmNyY19kYXRhOwo+ID4KPiA+ ICAgICAgICAgaWYgKHByaW1hcnlfY3JjKQo+ID4gICAgICAgICAgICAgICAgIGNyYzMyID0gX3Zr bXNfZ2V0X2NyYyhwcmltYXJ5X2NyYywgY3Vyc29yX2NyYyk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X2NydGMuYwo+ID4gaW5kZXggNDhhNzkzYmE0MDMwLi4xNDE1NmVkNzA0MTUgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+IEBAIC0xLDYgKzEsNyBAQAo+ID4gIC8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwo+ID4KPiA+ICAjaW5jbHVkZSAidmttc19kcnYu aCIKPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KPiA+ICAjaW5jbHVkZSA8ZHJtL2Ry bV9hdG9taWNfaGVscGVyLmg+Cj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+ Cj4gPgo+ID4gQEAgLTksNyArMTAsNyBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgdmtt c192Ymxhbmtfc2ltdWxhdGUoc3RydWN0IGhydGltZXIgKnRpbWVyKQo+ID4gICAgICAgICBzdHJ1 Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9IGNvbnRhaW5lcl9vZih0aW1lciwgc3RydWN0IHZrbXNf b3V0cHV0LAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2YmxhbmtfaHJ0aW1lcik7Cj4gPiAgICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 ICZvdXRwdXQtPmNydGM7Cj4gPiAtICAgICAgIHN0cnVjdCB2a21zX2NydGNfc3RhdGUgKnN0YXRl ID0gdG9fdmttc19jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiA+ICsgICAgICAgc3RydWN0IHZr bXNfY3J0Y19zdGF0ZSAqc3RhdGU7Cj4gPiAgICAgICAgIHU2NCByZXRfb3ZlcnJ1bjsKPiA+ICAg ICAgICAgYm9vbCByZXQ7Cj4gPgo+ID4gQEAgLTIzLDYgKzI0LDcgQEAgc3RhdGljIGVudW0gaHJ0 aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikK PiA+ICAgICAgICAgaWYgKCFyZXQpCj4gPiAgICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJ2a21z IGZhaWx1cmUgb24gaGFuZGxpbmcgdmJsYW5rIik7Cj4gPgo+ID4gKyAgICAgICBzdGF0ZSA9IG91 dHB1dC0+Y3JjX3N0YXRlOwo+ID4gICAgICAgICBpZiAoc3RhdGUgJiYgb3V0cHV0LT5jcmNfZW5h YmxlZCkgewo+ID4gICAgICAgICAgICAgICAgIHU2NCBmcmFtZSA9IGRybV9jcnRjX2FjY3VyYXRl X3ZibGFua19jb3VudChjcnRjKTsKPiA+Cj4gPiBAQCAtMTI0LDEwICsxMjYsOSBAQCBzdGF0aWMg dm9pZCB2a21zX2F0b21pY19jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ID4KPiA+ICAgICAgICAgX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUo c3RhdGUpOwo+ID4KPiA+IC0gICAgICAgaWYgKHZrbXNfc3RhdGUpIHsKPiA+IC0gICAgICAgICAg ICAgICBXQVJOX09OKHdvcmtfcGVuZGluZygmdmttc19zdGF0ZS0+Y3JjX3dvcmspKTsKPiA+IC0g ICAgICAgICAgICAgICBrZnJlZSh2a21zX3N0YXRlKTsKPiA+IC0gICAgICAgfQo+ID4gKyAgICAg ICBXQVJOX09OKHdvcmtfcGVuZGluZygmdmttc19zdGF0ZS0+Y3JjX3dvcmspKTsKPiA+ICsgICAg ICAga2ZyZWUodmttc19zdGF0ZS0+YWN0aXZlX3BsYW5lcyk7Cj4gPiArICAgICAgIGtmcmVlKHZr bXNfc3RhdGUpOwo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQgdmttc19hdG9taWNfY3J0Y19y ZXNldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiBAQCAtMTU2LDYgKzE1Nyw1MiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9IHsKPiA+ICAg ICAgICAgLnZlcmlmeV9jcmNfc291cmNlICAgICAgPSB2a21zX3ZlcmlmeV9jcmNfc291cmNlLAo+ ID4gIH07Cj4gPgo+ID4gK3N0YXRpYyBpbnQgdmttc19jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3Qgdmtt c19jcnRjX3N0YXRlICp2a21zX3N0YXRlID0gdG9fdmttc19jcnRjX3N0YXRlKHN0YXRlKTsKPiA+ ICsgICAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPiArICAgICAgIHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ID4gKyAgICAgICBpbnQgaSA9IDAsIHJldDsKPiA+ ICsKPiA+ICsgICAgICAgaWYgKHZrbXNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMpCj4gPiArICAgICAg ICAgICAgICAgcmV0dXJuIDA7Cj4gPiArCj4gPiArICAgICAgIHJldCA9IGRybV9hdG9taWNfYWRk X2FmZmVjdGVkX3BsYW5lcyhzdGF0ZS0+c3RhdGUsIGNydGMpOwo+ID4gKyAgICAgICBpZiAocmV0 IDwgMCkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gKwo+ID4gKyAgICAgICBk cm1fZm9yX2VhY2hfcGxhbmVfbWFzayhwbGFuZSwgY3J0Yy0+ZGV2LCBzdGF0ZS0+cGxhbmVfbWFz aykgewo+IAo+IEluIHRoZSBkcm1fZm9yX2VhY2hfcGxhbmVfbWFzayBkb2N1bWVudGF0aW9uIHNh eXM6IOKAnCBJdGVyYXRlIG92ZXIgYWxsCj4gcGxhbmVzIHNwZWNpZmllZCBieSBiaXRtYXNr4oCd LiBJIGRpZCBub3QgdW5kZXJzdGFuZCB3aGF0IGl0IG1lYW5zIGJ5Cj4g4oCcc3BlY2lmaWVkIGJ5 IGJpdG1hc2vigJ0gYW5kIHRoZSB1c2Ugb2YgdGhpcyBtYWNybyBpbiB0aGlzIGNvbnRleHQuIEkK CnN0YXRlLT5wbGFuZV9tYXNrIGlzIHRoZSBiaXRtYXNrLiBFYWNoIGJpdCBpbiB0aGVyZSByZXBy ZXNlbnRzIGEgcGxhbmUsIHNvCmNhbiBiZSB1c2VkIGFzIGEgdmVyeSBlZmZlY3RpdmUgcmVwcmVz ZW50YXRpb24gZm9yIGEgc3Vic2V0IG9mIHBsYW5lcyAoYXMKbG9uZyBhcyB3ZSBkb24ndCBoYXZl IG1vcmUgdGhhbiAzMiBwbGFuZXMgaW4gdG90YWwpLgoKPiB0cmllZCB0byByZXBsYWNlIGl0IGZv ciBkcm1fZm9yX2VhY2hfcGxhbmUsIGJ1dCB0aGUgdGVzdCBqdXN0IGJyZWFrLgoKSG0gcmlnaHQg bm93IHRoaXMgc2hvdWxkIHdvcmssIGJlY2F1c2Ugd2Ugb25seSBoYXZlIG9uZSBjcnRjLCBzbyBu bwpwcm9ibGVtIHdpdGggd2Fsa2luZyBvdmVyIHBsYW5lcyB3ZSBzaG91bGRuJ3QgZXZlbiBsb29r IGF0LgoKPiBDb3VsZCB5b3UgZXhwbGFpbiBhIGxpdHRsZSBiaXQgdGhlIG1hZ2ljIGJlaGluZAo+ IGRybV9mb3JfZWFjaF9wbGFuZV9tYXNrPwoKSG9wZSB0aGUgYWJvdmUgcXVpY2sgc3VtbWFyeSBv ZiB3aGF0IHdlIHVzZSB0aGUgYml0bWFzayBmb3IgaGVscHMgdG8gZ2V0CnlvdSBzdGFydGVkLgot RGFuaWVsCgo+IAo+ID4gKyAgICAgICAgICAgICAgIHBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoc3RhdGUtPnN0YXRlLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmUp Owo+ID4gKyAgICAgICAgICAgICAgIFdBUk5fT04oIXBsYW5lX3N0YXRlKTsKPiA+ICsKPiA+ICsg ICAgICAgICAgICAgICBpZiAoIXBsYW5lX3N0YXRlLT52aXNpYmxlKQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgaSsrOwo+ID4g KyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIHZrbXNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgPSBr Y2FsbG9jKGksIHNpemVvZihwbGFuZSksIEdGUF9LRVJORUwpOwo+ID4gKyAgICAgICBpZiAoIXZr bXNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMpCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07Cj4gPiArICAgICAgIHZrbXNfc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID0gaTsKPiA+ICsK PiA+ICsgICAgICAgaSA9IDA7Cj4gPiArICAgICAgIGRybV9mb3JfZWFjaF9wbGFuZV9tYXNrKHBs YW5lLCBjcnRjLT5kZXYsIHN0YXRlLT5wbGFuZV9tYXNrKSB7Cj4gPiArICAgICAgICAgICAgICAg cGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShzdGF0ZS0+ c3RhdGUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwbGFuZSk7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgaWYg KCFwbGFuZV9zdGF0ZS0+dmlzaWJsZSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIHZrbXNfc3RhdGUtPmFjdGl2ZV9wbGFuZXNb aSsrXSA9Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICB0b192a21zX3BsYW5lX3N0YXRlKHBs YW5lX3N0YXRlKTsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4gMDsKPiA+ ICt9Cj4gPiArCj4gPiAgc3RhdGljIHZvaWQgdmttc19jcnRjX2F0b21pY19lbmFibGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCj4gPiAgewo+ID4gQEAgLTE5NywxMCAr MjQ0LDEzIEBAIHN0YXRpYyB2b2lkIHZrbXNfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ID4gICAgICAgICAgICAgICAgIGNydGMtPnN0YXRlLT5ldmVudCA9IE5VTEw7 Cj4gPiAgICAgICAgIH0KPiA+Cj4gPiArICAgICAgIHZrbXNfb3V0cHV0LT5jcmNfc3RhdGUgPSB0 b192a21zX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ID4gKwo+ID4gICAgICAgICBzcGluX3Vu bG9ja19pcnEoJnZrbXNfb3V0cHV0LT5sb2NrKTsKPiA+ICB9Cj4gPgo+ID4gIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHZrbXNfY3J0Y19oZWxwZXJfZnVuY3MgPSB7 Cj4gPiArICAgICAgIC5hdG9taWNfY2hlY2sgICA9IHZrbXNfY3J0Y19hdG9taWNfY2hlY2ssCj4g PiAgICAgICAgIC5hdG9taWNfYmVnaW4gICA9IHZrbXNfY3J0Y19hdG9taWNfYmVnaW4sCj4gPiAg ICAgICAgIC5hdG9taWNfZmx1c2ggICA9IHZrbXNfY3J0Y19hdG9taWNfZmx1c2gsCj4gPiAgICAg ICAgIC5hdG9taWNfZW5hYmxlICA9IHZrbXNfY3J0Y19hdG9taWNfZW5hYmxlLAo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v dmttcy92a21zX2Rydi5oCj4gPiBpbmRleCAyYTM1Mjk5YmZiODkuLjRlNzQ1MDExMWQ0NSAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+IEBAIC00OSw2ICs0OSwxMCBAQCBzdHJ1 Y3Qgdmttc19jcnRjX3N0YXRlIHsKPiA+ICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlIGJh c2U7Cj4gPiAgICAgICAgIHN0cnVjdCB3b3JrX3N0cnVjdCBjcmNfd29yazsKPiA+Cj4gPiArICAg ICAgIGludCBudW1fYWN0aXZlX3BsYW5lczsKPiA+ICsgICAgICAgLyogc3RhY2sgb2YgYWN0aXZl IHBsYW5lcyBmb3IgY3JjIGNvbXB1dGF0aW9uLCBzaG91bGQgYmUgaW4geiBvcmRlciAqLwo+ID4g KyAgICAgICBzdHJ1Y3Qgdmttc19wbGFuZV9zdGF0ZSAqKmFjdGl2ZV9wbGFuZXM7Cj4gPiArCj4g PiAgICAgICAgIC8qIGJlbG93IHRocmVlIGFyZSBwcm90ZWN0ZWQgYnkgdmttc19vdXRwdXQuY3Jj X2xvY2sgKi8KPiA+ICAgICAgICAgYm9vbCBjcmNfcGVuZGluZzsKPiA+ICAgICAgICAgdTY0IGZy YW1lX3N0YXJ0Owo+ID4gQEAgLTYyLDEyICs2NiwxNSBAQCBzdHJ1Y3Qgdmttc19vdXRwdXQgewo+ ID4gICAgICAgICBzdHJ1Y3QgaHJ0aW1lciB2YmxhbmtfaHJ0aW1lcjsKPiA+ICAgICAgICAga3Rp bWVfdCBwZXJpb2RfbnM7Cj4gPiAgICAgICAgIHN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZl bnQgKmV2ZW50Owo+ID4gLSAgICAgICBib29sIGNyY19lbmFibGVkOwo+ID4gICAgICAgICAvKiBv cmRlcmVkIHdxIGZvciBjcmNfd29yayAqLwo+ID4gICAgICAgICBzdHJ1Y3Qgd29ya3F1ZXVlX3N0 cnVjdCAqY3JjX3dvcmtxOwo+ID4gICAgICAgICAvKiBwcm90ZWN0cyBjb25jdXJyZW50IGFjY2Vz cyB0byBjcmNfZGF0YSAqLwo+ID4gICAgICAgICBzcGlubG9ja190IGxvY2s7Cj4gPgo+ID4gKyAg ICAgICAvKiBwcm90ZWN0ZWQgYnkgQGxvY2sgKi8KPiA+ICsgICAgICAgYm9vbCBjcmNfZW5hYmxl ZDsKPiA+ICsgICAgICAgc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqY3JjX3N0YXRlOwo+ID4gKwo+ ID4gICAgICAgICBzcGlubG9ja190IGNyY19sb2NrOwo+ID4gIH07Cj4gPgo+ID4gLS0KPiA+IDIu MjAuMQo+ID4KPiAKPiAKPiAtLSAKPiAKPiBSb2RyaWdvIFNpcXVlaXJhCj4gaHR0cHM6Ly9zaXF1 ZWlyYS50ZWNoCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVs