From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Siqueira Subject: Re: [PATCH 01/10] drm/vkms: Fix crc worker races Date: Mon, 17 Jun 2019 23:39:31 -0300 Message-ID: <20190618023931.ccs3glcvh5hnm4m3@smtp.gmail.com> References: <20190606222751.32567-1-daniel.vetter@ffwll.ch> <20190606222751.32567-2-daniel.vetter@ffwll.ch> <20190612144849.GP2458@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1FF286E0CE for ; Tue, 18 Jun 2019 02:39:38 +0000 (UTC) Received: by mail-qt1-x842.google.com with SMTP id a15so13456745qtn.7 for ; Mon, 17 Jun 2019 19:39:38 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190612144849.GP2458@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , Daniel Vetter , Haneen Mohammed , DRI Development , Shayenne Moura List-Id: dri-devel@lists.freedesktop.org T24gMDYvMTIsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gV2VkLCBKdW4gMTIsIDIwMTkgYXQg MTA6MzM6MTFBTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWlyYSB3cm90ZToKPiA+IE9uIFRodSwgSnVu IDYsIDIwMTkgYXQgNzoyOCBQTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PiB3cm90ZToKPiA+ID4KPiA+ID4gVGhlIGlzc3VlIHdlIGhhdmUgaXMgdGhhdCB0aGUgY3JjIHdv cmtlciBtaWdodCBmYWxsIGJlaGluZC4gV2UndmUKPiA+ID4gdHJpZWQgdG8gaGFuZGxlIHRoaXMg YnkgdHJhY2tpbmcgYm90aCB0aGUgZWFybGllc3QgZnJhbWUgZm9yIHdoaWNoIGl0Cj4gPiA+IHN0 aWxsIG5lZWRzIHRvIGNvbXB1dGUgYSBjcmMsIGFuZCB0aGUgbGFzdCBvbmUuIFBsdXMgd2hlbiB0 aGUKPiA+ID4gY3J0Y19zdGF0ZSBjaGFuZ2VzLCB3ZSBoYXZlIGEgbmV3IHdvcmsgaXRlbSwgd2hp Y2ggYXJlIGFsbCBydW4gaW4KPiA+ID4gb3JkZXIgZHVlIHRvIHRoZSBvcmRlcmVkIHdvcmtxdWV1 ZSB3ZSBhbGxvY2F0ZSBmb3IgZWFjaCB2a21zIGNydGMuCj4gPiA+Cj4gPiA+IFRyb3VibGUgaXMg dGhlcmUncyBiZWVuIGEgZmV3IHNtYWxsIGlzc3VlcyBpbiB0aGUgY3VycmVudCBjb2RlOgo+ID4g PiAtIHdlIG5lZWQgdG8gY2FwdHVyZSBmcmFtZV9lbmQgaW4gdGhlIHZibGFuayBocnRpbWVyLCBu b3QgaW4gdGhlCj4gPiA+ICAgd29ya2VyLiBUaGUgd29ya2VyIG1pZ2h0IHJ1biBtdWNoIGxhdGVy LCBhbmQgdGhlbiB3ZSBnZW5lcmF0ZSBhIGxvdAo+ID4gPiAgIG9mIGNyYyBmb3Igd2hpY2ggdGhl cmUncyBhbHJlYWR5IGEgZGlmZmVyZW50IHdvcmtlciBxdWV1ZWQgdXAuCj4gPiA+IC0gZnJhbWUg bnVtYmVyIG1pZ2h0IGJlIDAsIHNvIGNyZWF0ZSBhIG5ldyBjcmNfcGVuZGluZyBib29sZWFuIHRv Cj4gPiA+ICAgdHJhY2sgdGhpcyB3aXRob3V0IGNvbmZ1c2lvbi4KPiA+ID4gLSB3ZSBuZWVkIHRv IGF0b21pY2FsbHkgZ3JhYiBmcmFtZV9zdGFydC9lbmQgYW5kIGNsZWFyIGl0LCBzbyBkbyB0aGF0 Cj4gPiA+ICAgYWxsIGluIG9uZSBnby4gVGhpcyBpcyBub3QgZ29pbmcgdG8gY3JlYXRlIGEgbmV3 IHJhY2UsIGJlY2F1c2UgaWYgd2UKPiA+ID4gICByYWNlIHdpdGggdGhlIGhydGltZXIgdGhlbiBv dXIgd29yayB3aWxsIGJlIHJlLXJ1bi4KPiA+ID4gLSBvbmx5IHJhY2UgdGhhdCBjYW4gaGFwcGVu IGlzIHRoZSBmb2xsb3dpbmc6Cj4gPiA+ICAgMS4gd29ya2VyIHN0YXJ0cwo+ID4gPiAgIDIuIGhy dGltZXIgcnVucyBhbmQgdXBkYXRlcyBmcmFtZV9lbmQKPiA+ID4gICAzLiB3b3JrZXIgZ3JhYnMg ZnJhbWVfc3RhcnQvZW5kLCBhbHJlYWR5IHJlYWRpbmcgdGhlIG5ldyBmcmFtZV9lbmQsCj4gPiA+ ICAgYW5kIGNsZWFycyBjcmNfcGVuZGluZwo+ID4gPiAgIDQuIGhydGltZXIgY2FsbHMgcXVldWVf d29yaygpCj4gPiA+ICAgNS4gd29ya2VyIGNvbXBsZXRlcwo+ID4gPiAgIDYuIHdvcmtlciBnZXRz ICByZS1ydW4sIGNyY19wZW5kaW5nIGlzIGZhbHNlCj4gPiA+ICAgRXhwbGFpbiB0aGlzIGNhc2Ug YSBiaXQgYmV0dGVyIGJ5IHJld29yZGluZyB0aGUgY29tbWVudC4KPiA+ID4KPiA+ID4gdjI6IERl bW90ZSB3YXJuaW5nIGxldmVsIG91dHB1dCB0byBkZWJ1ZyB3aGVuIHdlIGZhaWwgdG8gcmVxdWV1 ZSwgdGhpcwo+ID4gPiBpcyBleHBlY3RlZCB1bmRlciBoaWdoIGxvYWQgd2hlbiB0aGUgY3JjIHdv cmtlciBjYW4ndCBxdWl0ZSBrZWVwIHVwLgo+ID4gPgo+ID4gPiBDYzogU2hheWVubmUgTW91cmEg PHNoYXllbm5lbHV6bW91cmFAZ21haWwuY29tPgo+ID4gPiBDYzogUm9kcmlnbyBTaXF1ZWlyYSA8 cm9kcmlnb3NpcXVlaXJhbWVsb0BnbWFpbC5jb20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ID4gPiBDYzogSGFuZWVuIE1vaGFt bWVkIDxoYW1vaGFtbWVkLnNhQGdtYWlsLmNvbT4KPiA+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRh bmllbEBmZndsbC5jaD4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X2NyYy5jICB8IDI3ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ID4gPiAgZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgfCAgOSArKysrKysrLS0KPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfZHJ2LmggIHwgIDIgKysKPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMjIg aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmtt c19jcmMuYwo+ID4gPiBpbmRleCBkN2I0MDlhM2MwZjguLjY2NjAzZGE2MzRmZSAxMDA2NDQKPiA+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYwo+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gPiA+IEBAIC0xNjYsMTYgKzE2NiwyNCBAQCB2 b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ID4g ICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ID4gICAgICAgICB1MzIgY3JjMzIg PSAwOwo+ID4gPiAgICAgICAgIHU2NCBmcmFtZV9zdGFydCwgZnJhbWVfZW5kOwo+ID4gPiArICAg ICAgIGJvb2wgY3JjX3BlbmRpbmc7Cj4gPiA+ICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsK PiA+ID4KPiA+ID4gICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmb3V0LT5zdGF0ZV9sb2NrLCBm bGFncyk7Cj4gPiA+ICAgICAgICAgZnJhbWVfc3RhcnQgPSBjcnRjX3N0YXRlLT5mcmFtZV9zdGFy dDsKPiA+ID4gICAgICAgICBmcmFtZV9lbmQgPSBjcnRjX3N0YXRlLT5mcmFtZV9lbmQ7Cj4gPiA+ ICsgICAgICAgY3JjX3BlbmRpbmcgPSBjcnRjX3N0YXRlLT5jcmNfcGVuZGluZzsKPiA+ID4gKyAg ICAgICBjcnRjX3N0YXRlLT5mcmFtZV9zdGFydCA9IDA7Cj4gPiA+ICsgICAgICAgY3J0Y19zdGF0 ZS0+ZnJhbWVfZW5kID0gMDsKPiA+ID4gKyAgICAgICBjcnRjX3N0YXRlLT5jcmNfcGVuZGluZyA9 IGZhbHNlOwo+ID4gPiAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm91dC0+c3RhdGVf bG9jaywgZmxhZ3MpOwo+ID4gPgo+ID4gPiAtICAgICAgIC8qIF92YmxhbmtfaGFuZGxlKCkgaGFz bid0IHVwZGF0ZWQgZnJhbWVfc3RhcnQgeWV0ICovCj4gPiA+IC0gICAgICAgaWYgKCFmcmFtZV9z dGFydCB8fCBmcmFtZV9zdGFydCA9PSBmcmFtZV9lbmQpCj4gPiA+IC0gICAgICAgICAgICAgICBn b3RvIG91dDsKPiA+ID4gKyAgICAgICAvKgo+ID4gPiArICAgICAgICAqIFdlIHJhY2VkIHdpdGgg dGhlIHZibGFuayBocnRpbWVyIGFuZCBwcmV2aW91cyB3b3JrIGFscmVhZHkgY29tcHV0ZWQKPiA+ ID4gKyAgICAgICAgKiB0aGUgY3JjLCBub3RoaW5nIHRvIGRvLgo+ID4gPiArICAgICAgICAqLwo+ ID4gPiArICAgICAgIGlmICghY3JjX3BlbmRpbmcpCj4gPiA+ICsgICAgICAgICAgICAgICByZXR1 cm47Cj4gPiAKPiA+IEkgdGhpbmsgdGhpcyBjb25kaXRpb24gaXMgbm90IHJlYWNoYWJsZSBiZWNh dXNlIGNyY19wZW5kaW5nIHdpbGwgYmUKPiA+IGZpbGxlZCB3aXRoIHRydWUgaW4gYHZrbXNfdmJs YW5rX3NpbXVsYXRlKClgIHdoaWNoIGluIHR1cm4gc2NoZWR1bGUKPiA+IHRoZSBmdW5jdGlvbiBg dmttc19jcmNfd29ya19oYW5kbGUoKWAuIEp1c3QgZm9yIGNoZWNraW5nLCBJIHRyaWVkIHRvCj4g PiByZWFjaCB0aGlzIGNvbmRpdGlvbiBieSBydW5uaW5nIGttc19mbGlwLCBrbXNfcGlwZV9jcmNf YmFzaWMsIGFuZAo+ID4ga21zX2N1cnNvcl9jcmMgd2l0aCB0d28gZGlmZmVyZW50IFZNIHNldHVw c1sxXSwgYnV0IEkgY291bGRuJ3QgcmVhY2gKPiA+IGl0LiBXaGF0IGRvIHlvdSB0aGluaz8KPiAK PiB0aHJlYWQgQQkJCXRocmVhZCBCCj4gMS4gcnVuIHZibGFuayBocnRpbWVyCj4gCj4gCQkJCTIu IHN0YXJ0cyBydW5uaW5nIGNyYyB3b3JrIChmcm9tIHByZXZpb3VzCj4gCQkJCXZibGFuaykKPiAK PiAzLiBzcGluX2xvY2soKQkJCS0+IGdldHMgc3RhbGxlZCBvbiB0aGUgc3Bpbl9sb2NrKCkgYmVj YXVzZQo+IAkJCQkgICB0aHJlYWQgQSBoYXMgaXQgYWxyZWFkeQo+IAo+IDQuIHVwZGF0ZSBmcmFt ZV9lbmQgKG9ubHkgaW4KPiBsYXRlciBwYXRjaGVzLCBhdG0gdGhpcyBpcwo+IGltcG9zc2libGUp LiBjcmNfcGVuZGluZyBpcyBzZXQKPiBhbHJlYWR5Lgo+IAo+IDUuIHNjaGVkdWxlX3dvcms6IHNp bmNlIHRoZSB3b3JrCj4gaXMgcnVubmluZyBhbHJlYWR5LCB0aGlzIG1lYW5zIGl0Cj4gaXMgc2No ZWR1bGVkIHRvIHJ1biBvbmNlIG1vcmUuCj4gCj4gNi4gc3Bpbl91bmxvY2sKPiAKPiAJCQkJNy4g Y29tcHV0ZSBjcmMsIGNsZWFyIGNyY19wZW5kaW5nCj4gCQkJCTguIHdvcmsgZmluaXNoZXMKPiAJ CQkJOS4gd29yayBnZXRzIHJ1biBhZ2Fpbgo+IAkJCQk4LiBjcmNfcGVuZGluZz1mYWxzZQo+IAo+ IFNpbmNlIHRoZSBzcGluX2xvY2sgY3JpdGljYWwgc2VjdGlvbiBpcyBfdmVyeV8gc2hvcnQgKGxl c3MgdGhhbiAxIHVzZWMgSQo+IGJldCksIHRoaXMgcmFjZSBpcyB2ZXJ5IGhhcmQgdG8gaGl0LgoK Rmlyc3Qgb2YgYWxsLCB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciBhbGwgb2YgeW91ciBkZXRhaWxl ZCBleHBsYW5hdGlvbgphbmQgc29ycnkgZm9yIG15IGRlbGF5IHRvIHJlcGx5LCBJIHdhcyAncHJv Y2Vzc2luZycgYWxsIG9mIHlvdXIKY29tbWVudHMuIEkgYmVsaWV2ZSB0aGF0IEkgdW5kZXJzdG9v ZCB0aGUgaXNzdWVzIHJlbGF0ZWQgd2l0aCB0aGlzCnBhdGNoc2V0LCBJIGp1c3Qgd2FudCB0byBj aGVjayB3aXRoIHlvdSBpZiB0aGUgZGlhZ3JhbSBhbmQgdGhlIGNhc2VzCmJlbG93IG1ha2Ugc2Vu c2U6Cgp0aW1lciAgIHwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC4uLgoKQ2Fz ZSAxOiAgICAgICAgKy0tLS14ICstLS14ICArLS0tLS14CgpDYXNlIDI6ICAgICBBICArLS0tLS0t LS0tLXgKICAgICAgICAgICAgQiAgICAgICAgICstLS0teAoKQXQgdGhlIHRvcCBvZiB0aGlzIGRp YWdyYW0sIEkgaWxsdXN0cmF0ZWQgdGhlIHZibGFuayBwZXJpb2QgYWxvbmcgdGhlCnRpbWUuIElu IHRoZSBib3R0b20gbGluZXMsIEkgaGlnaGxpZ2h0ZWQgdHdvIGNhc2VzOyB0aGUgJysnIHJlcHJl c2VudHMKd2hlbiB0aGUgd29ya2VyIGlzIHF1ZXVlZCAocXVldWVfd29yaygpKSwgYW5kIHRoZSAn eCcgZGVub3RlcyB3aGVuIHRoZQpDUkMgd29yayBmaW5pc2hlcyBpdHMgZGF0YSBwcm9jZXNzaW5n LiBCZWZvcmUgZGVzY3JpYmluZyBlYWNoIGNhc2UgZnJvbQp0aGUgZGlhZ3JhbSwgSSB3YW50IHRv IGhpZ2hsaWdodCB0aGF0IEknbSBmb2N1c2VkIG9uIHRoZXNlIHR3byBzbmlwcGV0cwpvZiBjb2Rl OgoKc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVj dCBocnRpbWVyICp0aW1lcikgewogICAgWy4uXQoJCXNwaW5fbG9jaygmb3V0cHV0LT5jcmNfbG9j ayk7CiAgICAgIFsuLl0gZGF0YSBbLi5dCgkJc3Bpbl91bmxvY2soJm91dHB1dC0+Y3JjX2xvY2sp OwogICAgWy4uXQp9Cgp2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVj dCAqd29yayl7CiAgWy4uXQogIHNwaW5fbG9ja19pcnEoJm91dC0+Y3JjX2xvY2spOwogIGNydGNf c3RhdGUtPmNyY19wZW5kaW5nID0gZmFsc2U7CiAgICBbLi5dIGRhdGEgWy4uXQoJc3Bpbl91bmxv Y2tfaXJxKCZvdXRwdXQtPmNyY19sb2NrKTsKICBbLi5dCn0KCkNhc2VzOgoKMSkgVGhpcyBpcyB0 aGUgYmVzdCBzY2VuYXJpbzsgZWFjaCBDUkMgd29ya2VyIGZpbmlzaGVzIGJlZm9yZSB0aGUgbmV4 dAp2YmxhbmsuCgoyKSBJbiB0aGlzIHNjZW5hcmlvLCBvbmUgb2YgdGhlIENSQyB3b3JrZXJzIGV4 dGVuZHMgYWxvbmcgbXVsdGlwbGUKdmJsYW5rcy4gIElmIHdvcmtlciBBIGFscmVhZHkgY29sbGVj dGVkIHRoZSBzZW5zaXRpdmUgZGF0YSBpbnNpZGUKdmttc19jcmNfd29ya19oYW5kbGUoKSwgd29y a2VyIEEgYW5kIEIgd2lsbCBmaW5pc2ggd2l0aG91dCBwcm9ibGVtcwoodGhhbmtzIHRvIHlvdXIg Y2hhbmdlcykuIEhvd2V2ZXIsIGlmIGZvciBhbnkgcmVhc29uLCB0aGUgd29ya2VyIEEgZGlkCm5v dCBzdGFydCBiZWZvcmUgdGhlIHdvcmtlciBCLCB0aGUgbmV3IHdvcmsgd2lsbCB0YWtlIGNhcmUg b2YgaXRzIG93bgpDUkMgYW5kIHRoZSBDUkMgZnJvbSB3b3JrZXIgQS4gRmluYWxseSwgc2luY2Ug d29ya2VyIEIgd2lsbCBzZXQKY3JjX3BlbmRpbmcgZXF1YWwgZmFsc2Ugd2hlbiB0aGUgd29ya2Vy IEEgc3RhcnRzLCBpdCdsbCBqdXN0IHJldHVybgpiZWNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgY29k ZToKCmlmICghY3JjX3BlbmRpbmcpCiAgcmV0dXJuOwoKTWFrZSBzZW5zZT8KIAo+IEV4ZXJjaXNl OiBGaWd1cmUgb3V0IHdoeSBzY2hlZHVsZV93b3JrIF9tdXN0XyBzY2hlZHVsZSB0aGUgd29yayBp dGVtIHRvCj4gcmUtcnVuIGlmIGl0J3MgcnVubmluZyBhbHJlYWR5LiBJZiBpdCBkb2Vzbid0IGRv IHRoYXQgdGhlcmUncyBhbm90aGVyCj4gcmFjZS4KPiAKPiA+IAo+ID4gWzFdIFFlbXUgcGFyYW1l dGVycwo+ID4gVk0xOiAtbSAxRyAtc21wIGNvcmVzPTIsY3B1cz0yCj4gPiBWTTI6IC1lbmFibGUt a3ZtIC1tIDJHIC1zbXAgY29yZXM9NCxjcHVzPTQKPiA+IAo+ID4gPiAgICAgICAgIGRybV9mb3Jf ZWFjaF9wbGFuZShwbGFuZSwgJnZkZXYtPmRybSkgewo+ID4gPiAgICAgICAgICAgICAgICAgc3Ry dWN0IHZrbXNfcGxhbmVfc3RhdGUgKnZwbGFuZV9zdGF0ZTsKPiA+ID4gQEAgLTE5NiwyMCArMjA0 LDExIEBAIHZvaWQgdmttc19jcmNfd29ya19oYW5kbGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ID4gPiAgICAgICAgIGlmIChwcmltYXJ5X2NyYykKPiA+ID4gICAgICAgICAgICAgICAgIGNy YzMyID0gX3ZrbXNfZ2V0X2NyYyhwcmltYXJ5X2NyYywgY3Vyc29yX2NyYyk7Cj4gPiA+Cj4gPiA+ IC0gICAgICAgZnJhbWVfZW5kID0gZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KGNydGMp Owo+ID4gPiAtCj4gPiA+IC0gICAgICAgLyogcXVldWVfd29yayBjYW4gZmFpbCB0byBzY2hlZHVs ZSBjcmNfd29yazsgYWRkIGNyYyBmb3IKPiA+ID4gLSAgICAgICAgKiBtaXNzaW5nIGZyYW1lcwo+ ID4gPiArICAgICAgIC8qCj4gPiA+ICsgICAgICAgICogVGhlIHdvcmtlciBjYW4gZmFsbCBiZWhp bmQgdGhlIHZibGFuayBocnRpbWVyLCBtYWtlIHN1cmUgd2UgY2F0Y2ggdXAuCj4gPiA+ICAgICAg ICAgICovCj4gPiA+ICAgICAgICAgd2hpbGUgKGZyYW1lX3N0YXJ0IDw9IGZyYW1lX2VuZCkKPiA+ ID4gICAgICAgICAgICAgICAgIGRybV9jcnRjX2FkZF9jcmNfZW50cnkoY3J0YywgdHJ1ZSwgZnJh bWVfc3RhcnQrKywgJmNyYzMyKTsKPiA+IAo+ID4gSSB3YW50IHRvIHRha2UgdGhpcyBvcHBvcnR1 bml0eSB0byBhc2sgYWJvdXQgdGhpcyB3aGlsZTsgSXQncyBub3QKPiA+IHJlYWxseSBzcGVjaWZp YyB0byB0aGlzIHBhdGNoLgo+ID4gCj4gPiBJIGhhdmUgdG8gYWRtaXQgdGhhdCBJIG5ldmVyIGZ1 bGx5IGdvdCB0aGUgaWRlYSBiZWhpbmQgdGhpcyAnd2hpbGUnOwo+ID4gaXQgbG9va3MgbGlrZSB0 aGF0IHdlIGp1c3QgZmlsbCBvdXQgdGhlIG1pc3NlZCBmcmFtZXMgd2l0aCBhIHJlcGVhdGVkCj4g PiB2YWx1ZS4gRldJVSwgYGRybV9jcnRjX2FkZF9jcmNfZW50cnkoKWAgd2lsbCBhZGQgYW4gZW50 cnkgd2l0aCB0aGUgQ1JDCj4gPiBpbmZvcm1hdGlvbiBmb3IgYSBmcmFtZSwgYnV0IGluIHRoaXMg Y2FzZSwgd2UgYXJlIGFkZGluZyB0aGUgc2FtZSBDUkMKPiA+IGZvciBhIGRpZmZlcmVudCBzZXQg b2YgZnJhbWVzLiBJIGFncmVlIHRoYXQgbmVhciBmcmFtZSBoYXMgYSBzaW1pbGFyCj4gPiBDUkMg dmFsdWUsIGJ1dCBjb3VsZCB3ZSByZWx5IG9uIHRoaXMgYWxsIHRoZSB0aW1lPyBXaGF0IGNvdWxk IGhhcHBlbgo+ID4gaWYgd2UgaGF2ZSBhIGdyZWF0IGRpZmZlcmVuY2UgZnJvbSB0aGUgZnJhbWVf c3RhcnQgYW5kIGZyYW1lX2VuZD8KPiAKPiBJdCdzIGEgY2hlYXAgdHJpY2sgZm9yIHNsb3cgY3B1 OiBJZiB0aGUgY3JjIHdvcmsgZ2V0cyBiZWhpbmQgdGhlIHZibGFuawo+IGhydGltZXIsIHdlIG5l ZWQgdG8gc29tZWhvdyBjYXRjaCB1cC4gV2l0aCByZWFsIGh3IHRoaXMgaXMgbm90IHBvc3NpYmxl LAo+IGJ1dCB3aXRoIHZrbXMgd2Ugc2ltdWxhdGUgdGhlIGh3LiBUaGUgb25seSBxdWljayB3YXkg dG8gY2F0Y2ggdXAgaXMgdG8KPiBmaWxsIG91dCB0aGUgc2FtZSBjcmMgZm9yIGV2ZXJ5dGhpbmcu IEl0J3MgYSBsaWUsIGl0IHdpbGwgbWFrZSBzb21lCj4ga21zX2F0b21pYyB0ZXN0cyBmYWlsLCBi dXQgaXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4gcmVhbGx5IGRvLiBBc2lkZQo+IGZyb20gdHJ5 aW5nIHRvIG1ha2UgdGhlIGNyYyBjb21wdXRhdGlvbiBjb2RlIGFzIGZhc3QgYXMgcG9zc2libGUu Cj4gLURhbmllbAo+IAo+ID4gCj4gPiA+IC0KPiA+ID4gLW91dDoKPiA+ID4gLSAgICAgICAvKiB0 byBhdm9pZCB1c2luZyB0aGUgc2FtZSB2YWx1ZSBmb3IgZnJhbWUgbnVtYmVyIGFnYWluICovCj4g PiA+IC0gICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJm91dC0+c3RhdGVfbG9jaywgZmxhZ3MpOwo+ ID4gPiAtICAgICAgIGNydGNfc3RhdGUtPmZyYW1lX2VuZCA9IGZyYW1lX2VuZDsKPiA+ID4gLSAg ICAgICBjcnRjX3N0YXRlLT5mcmFtZV9zdGFydCA9IDA7Cj4gPiA+IC0gICAgICAgc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmb3V0LT5zdGF0ZV9sb2NrLCBmbGFncyk7Cj4gPiA+ICB9Cj4gPiA+Cj4g PiA+ICBzdGF0aWMgaW50IHZrbXNfY3JjX3BhcnNlX3NvdXJjZShjb25zdCBjaGFyICpzcmNfbmFt ZSwgYm9vbCAqZW5hYmxlZCkKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21z L3ZrbXNfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+ID4gaW5k ZXggMWJiZTA5OWI3ZGI4Li5jNzI3ZDg0ODZlOTcgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21z L3ZrbXNfY3J0Yy5jCj4gPiA+IEBAIC0zMCwxMyArMzAsMTggQEAgc3RhdGljIGVudW0gaHJ0aW1l cl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikKPiA+ ID4gICAgICAgICAgICAgICAgICAqIGhhcyByZWFkIHRoZSBkYXRhCj4gPiA+ICAgICAgICAgICAg ICAgICAgKi8KPiA+ID4gICAgICAgICAgICAgICAgIHNwaW5fbG9jaygmb3V0cHV0LT5zdGF0ZV9s b2NrKTsKPiA+ID4gLSAgICAgICAgICAgICAgIGlmICghc3RhdGUtPmZyYW1lX3N0YXJ0KQo+ID4g PiArICAgICAgICAgICAgICAgaWYgKCFzdGF0ZS0+Y3JjX3BlbmRpbmcpCj4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXRlLT5mcmFtZV9zdGFydCA9IGZyYW1lOwo+ID4gPiArICAgICAg ICAgICAgICAgZWxzZQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfRFJJ VkVSKCJjcmMgd29ya2VyIGZhbGxpbmcgYmVoaW5kLCBmcmFtZV9zdGFydDogJWxsdSwgZnJhbWVf ZW5kOiAlbGx1XG4iLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXRlLT5mcmFtZV9zdGFydCwgZnJhbWUpOwo+ID4gPiArICAgICAgICAgICAgICAgc3Rh dGUtPmZyYW1lX2VuZCA9IGZyYW1lOwo+ID4gPiArICAgICAgICAgICAgICAgc3RhdGUtPmNyY19w ZW5kaW5nID0gdHJ1ZTsKPiA+ID4gICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZvdXRwdXQt PnN0YXRlX2xvY2spOwo+ID4gPgo+ID4gPiAgICAgICAgICAgICAgICAgcmV0ID0gcXVldWVfd29y ayhvdXRwdXQtPmNyY193b3JrcSwgJnN0YXRlLT5jcmNfd29yayk7Cj4gPiA+ICAgICAgICAgICAg ICAgICBpZiAoIXJldCkKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgRFJNX1dBUk4oImZh aWxlZCB0byBxdWV1ZSB2a21zX2NyY193b3JrX2hhbmRsZSIpOwo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICBEUk1fREVCVUdfRFJJVkVSKCJ2a21zX2NyY193b3JrX2hhbmRsZSBhbHJlYWR5 IHF1ZXVlZFxuIik7Cj4gPiA+ICAgICAgICAgfQo+ID4gPgo+ID4gPiAgICAgICAgIHNwaW5fdW5s b2NrKCZvdXRwdXQtPmxvY2spOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ID4gaW5k ZXggODFmMWNmYmViOTM2Li4zYzdlMDZiMTllZmQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuaAo+ID4gPiBAQCAtNTYsNiArNTYsOCBAQCBzdHJ1Y3Qgdmttc19wbGFuZV9zdGF0 ZSB7Cj4gPiA+ICBzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlIHsKPiA+ID4gICAgICAgICBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgYmFzZTsKPiA+ID4gICAgICAgICBzdHJ1Y3Qgd29ya19zdHJ1Y3QgY3Jj X3dvcms7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICBib29sIGNyY19wZW5kaW5nOwo+ID4gPiAgICAg ICAgIHU2NCBmcmFtZV9zdGFydDsKPiA+ID4gICAgICAgICB1NjQgZnJhbWVfZW5kOwo+ID4gPiAg fTsKPiA+ID4gLS0KPiA+ID4gMi4yMC4xCj4gPiA+Cj4gPiAKPiA+IAo+ID4gLS0gCj4gPiAKPiA+ IFJvZHJpZ28gU2lxdWVpcmEKPiA+IGh0dHBzOi8vc2lxdWVpcmEudGVjaAo+IAo+IC0tIAo+IERh bmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRw Oi8vYmxvZy5mZndsbC5jaAoKLS0gClJvZHJpZ28gU2lxdWVpcmEKaHR0cHM6Ly9zaXF1ZWlyYS50 ZWNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==