From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 01/10] drm/vkms: Fix crc worker races Date: Tue, 18 Jun 2019 10:49:59 +0200 Message-ID: <20190618084959.GN12905@phenom.ffwll.local> References: <20190606222751.32567-1-daniel.vetter@ffwll.ch> <20190606222751.32567-2-daniel.vetter@ffwll.ch> <20190612144849.GP2458@phenom.ffwll.local> <20190618023931.ccs3glcvh5hnm4m3@smtp.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id E73F86E117 for ; Tue, 18 Jun 2019 08:50:03 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id a14so20466788edv.12 for ; Tue, 18 Jun 2019 01:50:03 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190618023931.ccs3glcvh5hnm4m3@smtp.gmail.com> 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: Haneen Mohammed , Daniel Vetter , DRI Development , Shayenne Moura , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdW4gMTcsIDIwMTkgYXQgMTE6Mzk6MzFQTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBPbiAwNi8xMiwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFdlZCwgSnVu IDEyLCAyMDE5IGF0IDEwOjMzOjExQU0gLTAzMDAsIFJvZHJpZ28gU2lxdWVpcmEgd3JvdGU6Cj4g PiA+IE9uIFRodSwgSnVuIDYsIDIwMTkgYXQgNzoyOCBQTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IFRoZSBpc3N1ZSB3ZSBoYXZl IGlzIHRoYXQgdGhlIGNyYyB3b3JrZXIgbWlnaHQgZmFsbCBiZWhpbmQuIFdlJ3ZlCj4gPiA+ID4g dHJpZWQgdG8gaGFuZGxlIHRoaXMgYnkgdHJhY2tpbmcgYm90aCB0aGUgZWFybGllc3QgZnJhbWUg Zm9yIHdoaWNoIGl0Cj4gPiA+ID4gc3RpbGwgbmVlZHMgdG8gY29tcHV0ZSBhIGNyYywgYW5kIHRo ZSBsYXN0IG9uZS4gUGx1cyB3aGVuIHRoZQo+ID4gPiA+IGNydGNfc3RhdGUgY2hhbmdlcywgd2Ug aGF2ZSBhIG5ldyB3b3JrIGl0ZW0sIHdoaWNoIGFyZSBhbGwgcnVuIGluCj4gPiA+ID4gb3JkZXIg ZHVlIHRvIHRoZSBvcmRlcmVkIHdvcmtxdWV1ZSB3ZSBhbGxvY2F0ZSBmb3IgZWFjaCB2a21zIGNy dGMuCj4gPiA+ID4KPiA+ID4gPiBUcm91YmxlIGlzIHRoZXJlJ3MgYmVlbiBhIGZldyBzbWFsbCBp c3N1ZXMgaW4gdGhlIGN1cnJlbnQgY29kZToKPiA+ID4gPiAtIHdlIG5lZWQgdG8gY2FwdHVyZSBm cmFtZV9lbmQgaW4gdGhlIHZibGFuayBocnRpbWVyLCBub3QgaW4gdGhlCj4gPiA+ID4gICB3b3Jr ZXIuIFRoZSB3b3JrZXIgbWlnaHQgcnVuIG11Y2ggbGF0ZXIsIGFuZCB0aGVuIHdlIGdlbmVyYXRl IGEgbG90Cj4gPiA+ID4gICBvZiBjcmMgZm9yIHdoaWNoIHRoZXJlJ3MgYWxyZWFkeSBhIGRpZmZl cmVudCB3b3JrZXIgcXVldWVkIHVwLgo+ID4gPiA+IC0gZnJhbWUgbnVtYmVyIG1pZ2h0IGJlIDAs IHNvIGNyZWF0ZSBhIG5ldyBjcmNfcGVuZGluZyBib29sZWFuIHRvCj4gPiA+ID4gICB0cmFjayB0 aGlzIHdpdGhvdXQgY29uZnVzaW9uLgo+ID4gPiA+IC0gd2UgbmVlZCB0byBhdG9taWNhbGx5IGdy YWIgZnJhbWVfc3RhcnQvZW5kIGFuZCBjbGVhciBpdCwgc28gZG8gdGhhdAo+ID4gPiA+ICAgYWxs IGluIG9uZSBnby4gVGhpcyBpcyBub3QgZ29pbmcgdG8gY3JlYXRlIGEgbmV3IHJhY2UsIGJlY2F1 c2UgaWYgd2UKPiA+ID4gPiAgIHJhY2Ugd2l0aCB0aGUgaHJ0aW1lciB0aGVuIG91ciB3b3JrIHdp bGwgYmUgcmUtcnVuLgo+ID4gPiA+IC0gb25seSByYWNlIHRoYXQgY2FuIGhhcHBlbiBpcyB0aGUg Zm9sbG93aW5nOgo+ID4gPiA+ICAgMS4gd29ya2VyIHN0YXJ0cwo+ID4gPiA+ICAgMi4gaHJ0aW1l ciBydW5zIGFuZCB1cGRhdGVzIGZyYW1lX2VuZAo+ID4gPiA+ICAgMy4gd29ya2VyIGdyYWJzIGZy YW1lX3N0YXJ0L2VuZCwgYWxyZWFkeSByZWFkaW5nIHRoZSBuZXcgZnJhbWVfZW5kLAo+ID4gPiA+ ICAgYW5kIGNsZWFycyBjcmNfcGVuZGluZwo+ID4gPiA+ICAgNC4gaHJ0aW1lciBjYWxscyBxdWV1 ZV93b3JrKCkKPiA+ID4gPiAgIDUuIHdvcmtlciBjb21wbGV0ZXMKPiA+ID4gPiAgIDYuIHdvcmtl ciBnZXRzICByZS1ydW4sIGNyY19wZW5kaW5nIGlzIGZhbHNlCj4gPiA+ID4gICBFeHBsYWluIHRo aXMgY2FzZSBhIGJpdCBiZXR0ZXIgYnkgcmV3b3JkaW5nIHRoZSBjb21tZW50Lgo+ID4gPiA+Cj4g PiA+ID4gdjI6IERlbW90ZSB3YXJuaW5nIGxldmVsIG91dHB1dCB0byBkZWJ1ZyB3aGVuIHdlIGZh aWwgdG8gcmVxdWV1ZSwgdGhpcwo+ID4gPiA+IGlzIGV4cGVjdGVkIHVuZGVyIGhpZ2ggbG9hZCB3 aGVuIHRoZSBjcmMgd29ya2VyIGNhbid0IHF1aXRlIGtlZXAgdXAuCj4gPiA+ID4KPiA+ID4gPiBD YzogU2hheWVubmUgTW91cmEgPHNoYXllbm5lbHV6bW91cmFAZ21haWwuY29tPgo+ID4gPiA+IENj OiBSb2RyaWdvIFNpcXVlaXJhIDxyb2RyaWdvc2lxdWVpcmFtZWxvQGdtYWlsLmNvbT4KPiA+ID4g PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4K PiA+ID4gPiBDYzogSGFuZWVuIE1vaGFtbWVkIDxoYW1vaGFtbWVkLnNhQGdtYWlsLmNvbT4KPiA+ ID4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgo+ID4gPiA+IC0tLQo+ID4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jICB8IDI3ICsrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyB8 ICA5ICsrKysrKystLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oICB8 ICAyICsrCj4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTYgZGVs ZXRpb25zKC0pCj4gPiA+ID4KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcmMuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMKPiA+ID4gPiBp bmRleCBkN2I0MDlhM2MwZjguLjY2NjAzZGE2MzRmZSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19jcmMuYwo+ID4gPiA+IEBAIC0xNjYsMTYgKzE2NiwyNCBAQCB2b2lkIHZrbXNf Y3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ID4gPiAgICAgICAg IHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ID4gPiA+ICAgICAgICAgdTMyIGNyYzMyID0gMDsK PiA+ID4gPiAgICAgICAgIHU2NCBmcmFtZV9zdGFydCwgZnJhbWVfZW5kOwo+ID4gPiA+ICsgICAg ICAgYm9vbCBjcmNfcGVuZGluZzsKPiA+ID4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZvdXQtPnN0YXRlX2xv Y2ssIGZsYWdzKTsKPiA+ID4gPiAgICAgICAgIGZyYW1lX3N0YXJ0ID0gY3J0Y19zdGF0ZS0+ZnJh bWVfc3RhcnQ7Cj4gPiA+ID4gICAgICAgICBmcmFtZV9lbmQgPSBjcnRjX3N0YXRlLT5mcmFtZV9l bmQ7Cj4gPiA+ID4gKyAgICAgICBjcmNfcGVuZGluZyA9IGNydGNfc3RhdGUtPmNyY19wZW5kaW5n Owo+ID4gPiA+ICsgICAgICAgY3J0Y19zdGF0ZS0+ZnJhbWVfc3RhcnQgPSAwOwo+ID4gPiA+ICsg ICAgICAgY3J0Y19zdGF0ZS0+ZnJhbWVfZW5kID0gMDsKPiA+ID4gPiArICAgICAgIGNydGNfc3Rh dGUtPmNyY19wZW5kaW5nID0gZmFsc2U7Cj4gPiA+ID4gICAgICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZvdXQtPnN0YXRlX2xvY2ssIGZsYWdzKTsKPiA+ID4gPgo+ID4gPiA+IC0gICAgICAg LyogX3ZibGFua19oYW5kbGUoKSBoYXNuJ3QgdXBkYXRlZCBmcmFtZV9zdGFydCB5ZXQgKi8KPiA+ ID4gPiAtICAgICAgIGlmICghZnJhbWVfc3RhcnQgfHwgZnJhbWVfc3RhcnQgPT0gZnJhbWVfZW5k KQo+ID4gPiA+IC0gICAgICAgICAgICAgICBnb3RvIG91dDsKPiA+ID4gPiArICAgICAgIC8qCj4g PiA+ID4gKyAgICAgICAgKiBXZSByYWNlZCB3aXRoIHRoZSB2YmxhbmsgaHJ0aW1lciBhbmQgcHJl dmlvdXMgd29yayBhbHJlYWR5IGNvbXB1dGVkCj4gPiA+ID4gKyAgICAgICAgKiB0aGUgY3JjLCBu b3RoaW5nIHRvIGRvLgo+ID4gPiA+ICsgICAgICAgICovCj4gPiA+ID4gKyAgICAgICBpZiAoIWNy Y19wZW5kaW5nKQo+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm47Cj4gPiA+IAo+ID4gPiBJ IHRoaW5rIHRoaXMgY29uZGl0aW9uIGlzIG5vdCByZWFjaGFibGUgYmVjYXVzZSBjcmNfcGVuZGlu ZyB3aWxsIGJlCj4gPiA+IGZpbGxlZCB3aXRoIHRydWUgaW4gYHZrbXNfdmJsYW5rX3NpbXVsYXRl KClgIHdoaWNoIGluIHR1cm4gc2NoZWR1bGUKPiA+ID4gdGhlIGZ1bmN0aW9uIGB2a21zX2NyY193 b3JrX2hhbmRsZSgpYC4gSnVzdCBmb3IgY2hlY2tpbmcsIEkgdHJpZWQgdG8KPiA+ID4gcmVhY2gg dGhpcyBjb25kaXRpb24gYnkgcnVubmluZyBrbXNfZmxpcCwga21zX3BpcGVfY3JjX2Jhc2ljLCBh bmQKPiA+ID4ga21zX2N1cnNvcl9jcmMgd2l0aCB0d28gZGlmZmVyZW50IFZNIHNldHVwc1sxXSwg YnV0IEkgY291bGRuJ3QgcmVhY2gKPiA+ID4gaXQuIFdoYXQgZG8geW91IHRoaW5rPwo+ID4gCj4g PiB0aHJlYWQgQQkJCXRocmVhZCBCCj4gPiAxLiBydW4gdmJsYW5rIGhydGltZXIKPiA+IAo+ID4g CQkJCTIuIHN0YXJ0cyBydW5uaW5nIGNyYyB3b3JrIChmcm9tIHByZXZpb3VzCj4gPiAJCQkJdmJs YW5rKQo+ID4gCj4gPiAzLiBzcGluX2xvY2soKQkJCS0+IGdldHMgc3RhbGxlZCBvbiB0aGUgc3Bp bl9sb2NrKCkgYmVjYXVzZQo+ID4gCQkJCSAgIHRocmVhZCBBIGhhcyBpdCBhbHJlYWR5Cj4gPiAK PiA+IDQuIHVwZGF0ZSBmcmFtZV9lbmQgKG9ubHkgaW4KPiA+IGxhdGVyIHBhdGNoZXMsIGF0bSB0 aGlzIGlzCj4gPiBpbXBvc3NpYmxlKS4gY3JjX3BlbmRpbmcgaXMgc2V0Cj4gPiBhbHJlYWR5Lgo+ ID4gCj4gPiA1LiBzY2hlZHVsZV93b3JrOiBzaW5jZSB0aGUgd29yawo+ID4gaXMgcnVubmluZyBh bHJlYWR5LCB0aGlzIG1lYW5zIGl0Cj4gPiBpcyBzY2hlZHVsZWQgdG8gcnVuIG9uY2UgbW9yZS4K PiA+IAo+ID4gNi4gc3Bpbl91bmxvY2sKPiA+IAo+ID4gCQkJCTcuIGNvbXB1dGUgY3JjLCBjbGVh ciBjcmNfcGVuZGluZwo+ID4gCQkJCTguIHdvcmsgZmluaXNoZXMKPiA+IAkJCQk5LiB3b3JrIGdl dHMgcnVuIGFnYWluCj4gPiAJCQkJOC4gY3JjX3BlbmRpbmc9ZmFsc2UKPiA+IAo+ID4gU2luY2Ug dGhlIHNwaW5fbG9jayBjcml0aWNhbCBzZWN0aW9uIGlzIF92ZXJ5XyBzaG9ydCAobGVzcyB0aGFu IDEgdXNlYyBJCj4gPiBiZXQpLCB0aGlzIHJhY2UgaXMgdmVyeSBoYXJkIHRvIGhpdC4KPiAKPiBG aXJzdCBvZiBhbGwsIHRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIGFsbCBvZiB5b3VyIGRldGFpbGVk IGV4cGxhbmF0aW9uCj4gYW5kIHNvcnJ5IGZvciBteSBkZWxheSB0byByZXBseSwgSSB3YXMgJ3By b2Nlc3NpbmcnIGFsbCBvZiB5b3VyCj4gY29tbWVudHMuIEkgYmVsaWV2ZSB0aGF0IEkgdW5kZXJz dG9vZCB0aGUgaXNzdWVzIHJlbGF0ZWQgd2l0aCB0aGlzCj4gcGF0Y2hzZXQsIEkganVzdCB3YW50 IHRvIGNoZWNrIHdpdGggeW91IGlmIHRoZSBkaWFncmFtIGFuZCB0aGUgY2FzZXMKPiBiZWxvdyBt YWtlIHNlbnNlOgo+IAo+IHRpbWVyICAgfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0t LS18Li4uCj4gCj4gQ2FzZSAxOiAgICAgICAgKy0tLS14ICstLS14ICArLS0tLS14Cj4gCj4gQ2Fz ZSAyOiAgICAgQSAgKy0tLS0tLS0tLS14Cj4gICAgICAgICAgICAgQiAgICAgICAgICstLS0teAo+ IAo+IEF0IHRoZSB0b3Agb2YgdGhpcyBkaWFncmFtLCBJIGlsbHVzdHJhdGVkIHRoZSB2Ymxhbmsg cGVyaW9kIGFsb25nIHRoZQo+IHRpbWUuIEluIHRoZSBib3R0b20gbGluZXMsIEkgaGlnaGxpZ2h0 ZWQgdHdvIGNhc2VzOyB0aGUgJysnIHJlcHJlc2VudHMKPiB3aGVuIHRoZSB3b3JrZXIgaXMgcXVl dWVkIChxdWV1ZV93b3JrKCkpLCBhbmQgdGhlICd4JyBkZW5vdGVzIHdoZW4gdGhlCj4gQ1JDIHdv cmsgZmluaXNoZXMgaXRzIGRhdGEgcHJvY2Vzc2luZy4gQmVmb3JlIGRlc2NyaWJpbmcgZWFjaCBj YXNlIGZyb20KPiB0aGUgZGlhZ3JhbSwgSSB3YW50IHRvIGhpZ2hsaWdodCB0aGF0IEknbSBmb2N1 c2VkIG9uIHRoZXNlIHR3byBzbmlwcGV0cwo+IG9mIGNvZGU6Cj4gCj4gc3RhdGljIGVudW0gaHJ0 aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikg ewo+ICAgICBbLi5dCj4gCQlzcGluX2xvY2soJm91dHB1dC0+Y3JjX2xvY2spOwo+ICAgICAgIFsu Ll0gZGF0YSBbLi5dCj4gCQlzcGluX3VubG9jaygmb3V0cHV0LT5jcmNfbG9jayk7Cj4gICAgIFsu Ll0KPiB9Cj4gCj4gdm9pZCB2a21zX2NyY193b3JrX2hhbmRsZShzdHJ1Y3Qgd29ya19zdHJ1Y3Qg Kndvcmspewo+ICAgWy4uXQo+ICAgc3Bpbl9sb2NrX2lycSgmb3V0LT5jcmNfbG9jayk7Cj4gICBj cnRjX3N0YXRlLT5jcmNfcGVuZGluZyA9IGZhbHNlOwo+ICAgICBbLi5dIGRhdGEgWy4uXQo+IAlz cGluX3VubG9ja19pcnEoJm91dHB1dC0+Y3JjX2xvY2spOwo+ICAgWy4uXQo+IH0KPiAKPiBDYXNl czoKPiAKPiAxKSBUaGlzIGlzIHRoZSBiZXN0IHNjZW5hcmlvOyBlYWNoIENSQyB3b3JrZXIgZmlu aXNoZXMgYmVmb3JlIHRoZSBuZXh0Cj4gdmJsYW5rLgo+IAo+IDIpIEluIHRoaXMgc2NlbmFyaW8s IG9uZSBvZiB0aGUgQ1JDIHdvcmtlcnMgZXh0ZW5kcyBhbG9uZyBtdWx0aXBsZQo+IHZibGFua3Mu ICBJZiB3b3JrZXIgQSBhbHJlYWR5IGNvbGxlY3RlZCB0aGUgc2Vuc2l0aXZlIGRhdGEgaW5zaWRl Cj4gdmttc19jcmNfd29ya19oYW5kbGUoKSwgd29ya2VyIEEgYW5kIEIgd2lsbCBmaW5pc2ggd2l0 aG91dCBwcm9ibGVtcwo+ICh0aGFua3MgdG8geW91ciBjaGFuZ2VzKS4gSG93ZXZlciwgaWYgZm9y IGFueSByZWFzb24sIHRoZSB3b3JrZXIgQSBkaWQKPiBub3Qgc3RhcnQgYmVmb3JlIHRoZSB3b3Jr ZXIgQiwgdGhlIG5ldyB3b3JrIHdpbGwgdGFrZSBjYXJlIG9mIGl0cyBvd24KPiBDUkMgYW5kIHRo ZSBDUkMgZnJvbSB3b3JrZXIgQS4gRmluYWxseSwgc2luY2Ugd29ya2VyIEIgd2lsbCBzZXQKPiBj cmNfcGVuZGluZyBlcXVhbCBmYWxzZSB3aGVuIHRoZSB3b3JrZXIgQSBzdGFydHMsIGl0J2xsIGp1 c3QgcmV0dXJuCj4gYmVjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGNvZGU6Cj4gCj4gaWYgKCFjcmNf cGVuZGluZykKPiAgIHJldHVybjsKPiAKPiBNYWtlIHNlbnNlPwoKQWxtb3N0IGNvcnJlY3QsIGJ1 dCBJIHRoaW5rIHlvdSBtaXhlZCB1cCB0aGUgd29ya2VycyBoZXJlLiBTaW5jZSB3ZSBoYXZlIGEK c2luZ2xlLXRocmVhZGVkIHdvcmtxdWV1ZSBCIHdpbGwgYWx3YXlzIHJ1biBvbmx5IG9uY2UgQSBo YXMgc3RhcnRlZC4gU28gaWYKQSBoYXMgY29uc3VtZWQgdGhlIDJuZCB2YmxhbmsgYWxyZWFkeSAo YmVjYXVzZSBpdCBnb3QgZGVsYXllZCBmb3Igc29tZQpyZWFzb24pLCB0aGVuIGl0J3Mgd29ya2Vy IEIgd2hpY2ggd2lsbCBvYnNlcnZlIGNyY19wZW5kaW5nID09IGZhbHNlCihiZWNhdXNlIEEgaGFz IGFscmVhZHkgdGFrZW4gY2FyZSBvZiB0aGF0KS4KClNvIGluIGEgd2F5IHRoZXJlJ3MgYW4gYWRk aXRpb25hbCBldmVudCBwZXIgd29ya2VyIHRoYXQgeW91IG5lZWQgdG8KaW5jb3Jwb3JhdGUgaW50 byB5b3VyIHNjZW5hcmlvcyAoYW5kIHRoaXMgbWVhbnMgdGhlcmUncyBnb2luZyB0byBiZSBhIGZl dwptb3JlIHZhcmlhbnRzKS4gWW91IGFsc3JlYWR5IGhhdmUgdHdvOgoKLSBzcGluX2xvY2sgY3Jp dGljYWwgc2VjdGlvbiBpbiB2a21zX3ZibGFua19zaW11bGF0ZSwgd2hpY2ggYWxzbwogIChyZSlx dWV1ZXMgdGhlIHdvcmsuIEluIHlvdXIgZGlhZ3JhbSB0aGF0J3MgcmVwcmVzZW50ZWQgd2l0aCBh ICcrJwoKLSB0aGUgd29ya2VyIGZpbmlzaGVzIGFuZCBoYXMgdXBsb2FkZWQgdGhlIGNyYywgaW4g eW91ciBkaWFncmFtbSB0aGF0J3MgYQogICcqJwoKV2hhdCdzIG1pc3NpbmcgaXMgd2hlbiBleGFj dGx5IHRoZSB3b3JrZXIgc3RhcnRzLCBhbmQgbW9yZSBwcmVjaXNlbHksIHRoZQpzcGlubG9jayBw cm90ZWN0ZWQgY3JpdGljYWwgc2VjdGlvbiB3aGVyZSB0aGUgd29yayByZWFkcyBmcmFtZV9zdGFy dC9lbmQuClRoYXQncyB0aGUgdGhpbmcgd2hpY2ggY2FuIHJhY2UgaW4gaW50ZXJlc3Rpbmcgd2F5 cyB3aXRoIHRoZSB2YmxhbmsKaGFuZGxlci4KCkJ1dCBsb29raW5nIGF0IHlvdXIgZGlhZ3JhbXMg YW5kIGV4cGxhbmF0aW9ucyBJIHRoaW5rIHlvdSdyZSBnZXR0aW5nIHRoZQpoYW5nIG9mIHRoaW5r aW5nIHRocm91Z2ggcmFjZSBjb25kaXRpb25zLgoKYnR3IGFub3RoZXIgaW50ZXJlc3RpbmcgZXhl cmNpc2UgZm9yIHRoaW5raW5nIHRoZXNlIHRocm91Z2g6Ci0gd3JpdGUgdXAgdGhlIGNyaXRpY2Fs IHN0ZXBzIG9mIHRoZSBmdW5jdGlvbnMgeW91IHdhbnQgdG8gYW5hbHl6ZQotIGN1dCB0aGVtIHVw IGludG8gcGllY2VzIChudW1iZXIgdGhlbSBzbyB0aGVyZSdzIG5vIGNoYW9zKQotIHB1dCB0aGVt IG9uIHRoZSB0YWJsZSBhcyBjb2x1bW5zIChlYWNoIGNvbHVtbiByZXByZXNlbnRzIGEgY3B1IG9y IHRocmVhZAogIGRvaW5nIHN0dWZmKQotIHRoZW4gdHJ5IHRvIG1ha2UgZ2FwcyBhbmQgaW50ZXJs ZWF2ZSBleGVjdXRpb24gaW4gaW50ZXJlc3Rpbmcgd2F5cywgYW5kCiAgdHJ5IHRvIGZpZ3VyZSBv dXQgd2hldGhlciBldmVyeXRoaW5nIGlzIHN0aWxsIGNvbXB1dGVkIGNvcnJlY3RseS4KCkxpa2Ug aW4geW91ciBkaWFncmFtIHlvdSBtaWdodCBuZWVkIGEgZmV3IGNvcGllcyBvZiB0aGUgZnVuY3Rp b25zIHRvCnJlYWxseSBtYWtlIHRoaW5ncyBmdW4uIEZvciBtZSBiZWluZyBhYmxlIHRvIHF1aWNr bHkgbW92ZSBhcm91bmQgaG93IGNvZGUKaXMgZXhlY3V0ZWQgYW5kIGV2ZW4gcGxheSBvdXQgZXh0 cmVtZSBzY2VuYXJpb3MgKGxpa2UgIndoYXQgaGFwcGVucyBpZiB0aGUKZW50aXJlIHdvcmtlciBp cyBleGVjdXRlZCBiZXR3ZWVuIHRoZXNlIHR3byBpbnN0cnVjdGlvbnMgb3ZlciB0aGVyZSIgLQp0 aGlzIGlzIHBvc3NpYmxlIHdpdGggcHJlZW1wdGlvbiBhbmQgdGhlIGxpbnV4IHNjaGVkdWxlciBy dW5uaW5nIHNvbWV0aGluZwplbHNlKSBoZWxwcyBhIGxvdCBmb3IgdW5kZXJzdGFuZGluZyB0aGlz LgoKSXQncyBzdGlsbCByZWFsbHkgaGFyZCB0byBjb252aW5jZSB5b3Vyc2VsZiBvZiBjb3JyZWN0 bmVzcywgYnV0IGF0IGxlYXN0CmVhc2llciB0byBnZXQgYW4gaW50dWl0aXZlIHVuZGVyc3RhbmRp bmcuCgpDaGVlcnMsIERhbmllbAoKPiA+IEV4ZXJjaXNlOiBGaWd1cmUgb3V0IHdoeSBzY2hlZHVs ZV93b3JrIF9tdXN0XyBzY2hlZHVsZSB0aGUgd29yayBpdGVtIHRvCj4gPiByZS1ydW4gaWYgaXQn cyBydW5uaW5nIGFscmVhZHkuIElmIGl0IGRvZXNuJ3QgZG8gdGhhdCB0aGVyZSdzIGFub3RoZXIK PiA+IHJhY2UuCj4gPiAKPiA+ID4gCj4gPiA+IFsxXSBRZW11IHBhcmFtZXRlcnMKPiA+ID4gVk0x OiAtbSAxRyAtc21wIGNvcmVzPTIsY3B1cz0yCj4gPiA+IFZNMjogLWVuYWJsZS1rdm0gLW0gMkcg LXNtcCBjb3Jlcz00LGNwdXM9NAo+ID4gPiAKPiA+ID4gPiAgICAgICAgIGRybV9mb3JfZWFjaF9w bGFuZShwbGFuZSwgJnZkZXYtPmRybSkgewo+ID4gPiA+ICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dmttc19wbGFuZV9zdGF0ZSAqdnBsYW5lX3N0YXRlOwo+ID4gPiA+IEBAIC0xOTYsMjAgKzIwNCwx MSBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK PiA+ID4gPiAgICAgICAgIGlmIChwcmltYXJ5X2NyYykKPiA+ID4gPiAgICAgICAgICAgICAgICAg Y3JjMzIgPSBfdmttc19nZXRfY3JjKHByaW1hcnlfY3JjLCBjdXJzb3JfY3JjKTsKPiA+ID4gPgo+ ID4gPiA+IC0gICAgICAgZnJhbWVfZW5kID0gZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50 KGNydGMpOwo+ID4gPiA+IC0KPiA+ID4gPiAtICAgICAgIC8qIHF1ZXVlX3dvcmsgY2FuIGZhaWwg dG8gc2NoZWR1bGUgY3JjX3dvcms7IGFkZCBjcmMgZm9yCj4gPiA+ID4gLSAgICAgICAgKiBtaXNz aW5nIGZyYW1lcwo+ID4gPiA+ICsgICAgICAgLyoKPiA+ID4gPiArICAgICAgICAqIFRoZSB3b3Jr ZXIgY2FuIGZhbGwgYmVoaW5kIHRoZSB2YmxhbmsgaHJ0aW1lciwgbWFrZSBzdXJlIHdlIGNhdGNo IHVwLgo+ID4gPiA+ICAgICAgICAgICovCj4gPiA+ID4gICAgICAgICB3aGlsZSAoZnJhbWVfc3Rh cnQgPD0gZnJhbWVfZW5kKQo+ID4gPiA+ICAgICAgICAgICAgICAgICBkcm1fY3J0Y19hZGRfY3Jj X2VudHJ5KGNydGMsIHRydWUsIGZyYW1lX3N0YXJ0KyssICZjcmMzMik7Cj4gPiA+IAo+ID4gPiBJ IHdhbnQgdG8gdGFrZSB0aGlzIG9wcG9ydHVuaXR5IHRvIGFzayBhYm91dCB0aGlzIHdoaWxlOyBJ dCdzIG5vdAo+ID4gPiByZWFsbHkgc3BlY2lmaWMgdG8gdGhpcyBwYXRjaC4KPiA+ID4gCj4gPiA+ IEkgaGF2ZSB0byBhZG1pdCB0aGF0IEkgbmV2ZXIgZnVsbHkgZ290IHRoZSBpZGVhIGJlaGluZCB0 aGlzICd3aGlsZSc7Cj4gPiA+IGl0IGxvb2tzIGxpa2UgdGhhdCB3ZSBqdXN0IGZpbGwgb3V0IHRo ZSBtaXNzZWQgZnJhbWVzIHdpdGggYSByZXBlYXRlZAo+ID4gPiB2YWx1ZS4gRldJVSwgYGRybV9j cnRjX2FkZF9jcmNfZW50cnkoKWAgd2lsbCBhZGQgYW4gZW50cnkgd2l0aCB0aGUgQ1JDCj4gPiA+ IGluZm9ybWF0aW9uIGZvciBhIGZyYW1lLCBidXQgaW4gdGhpcyBjYXNlLCB3ZSBhcmUgYWRkaW5n IHRoZSBzYW1lIENSQwo+ID4gPiBmb3IgYSBkaWZmZXJlbnQgc2V0IG9mIGZyYW1lcy4gSSBhZ3Jl ZSB0aGF0IG5lYXIgZnJhbWUgaGFzIGEgc2ltaWxhcgo+ID4gPiBDUkMgdmFsdWUsIGJ1dCBjb3Vs ZCB3ZSByZWx5IG9uIHRoaXMgYWxsIHRoZSB0aW1lPyBXaGF0IGNvdWxkIGhhcHBlbgo+ID4gPiBp ZiB3ZSBoYXZlIGEgZ3JlYXQgZGlmZmVyZW5jZSBmcm9tIHRoZSBmcmFtZV9zdGFydCBhbmQgZnJh bWVfZW5kPwo+ID4gCj4gPiBJdCdzIGEgY2hlYXAgdHJpY2sgZm9yIHNsb3cgY3B1OiBJZiB0aGUg Y3JjIHdvcmsgZ2V0cyBiZWhpbmQgdGhlIHZibGFuawo+ID4gaHJ0aW1lciwgd2UgbmVlZCB0byBz b21laG93IGNhdGNoIHVwLiBXaXRoIHJlYWwgaHcgdGhpcyBpcyBub3QgcG9zc2libGUsCj4gPiBi dXQgd2l0aCB2a21zIHdlIHNpbXVsYXRlIHRoZSBody4gVGhlIG9ubHkgcXVpY2sgd2F5IHRvIGNh dGNoIHVwIGlzIHRvCj4gPiBmaWxsIG91dCB0aGUgc2FtZSBjcmMgZm9yIGV2ZXJ5dGhpbmcuIEl0 J3MgYSBsaWUsIGl0IHdpbGwgbWFrZSBzb21lCj4gPiBrbXNfYXRvbWljIHRlc3RzIGZhaWwsIGJ1 dCBpdCdzIHRoZSBvbmx5IHRoaW5nIHdlIGNhbiByZWFsbHkgZG8uIEFzaWRlCj4gPiBmcm9tIHRy eWluZyB0byBtYWtlIHRoZSBjcmMgY29tcHV0YXRpb24gY29kZSBhcyBmYXN0IGFzIHBvc3NpYmxl Lgo+ID4gLURhbmllbAo+ID4gCj4gPiA+IAo+ID4gPiA+IC0KPiA+ID4gPiAtb3V0Ogo+ID4gPiA+ IC0gICAgICAgLyogdG8gYXZvaWQgdXNpbmcgdGhlIHNhbWUgdmFsdWUgZm9yIGZyYW1lIG51bWJl ciBhZ2FpbiAqLwo+ID4gPiA+IC0gICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJm91dC0+c3RhdGVf bG9jaywgZmxhZ3MpOwo+ID4gPiA+IC0gICAgICAgY3J0Y19zdGF0ZS0+ZnJhbWVfZW5kID0gZnJh bWVfZW5kOwo+ID4gPiA+IC0gICAgICAgY3J0Y19zdGF0ZS0+ZnJhbWVfc3RhcnQgPSAwOwo+ID4g PiA+IC0gICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb3V0LT5zdGF0ZV9sb2NrLCBmbGFn cyk7Cj4gPiA+ID4gIH0KPiA+ID4gPgo+ID4gPiA+ICBzdGF0aWMgaW50IHZrbXNfY3JjX3BhcnNl X3NvdXJjZShjb25zdCBjaGFyICpzcmNfbmFtZSwgYm9vbCAqZW5hYmxlZCkKPiA+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX2NydGMuYwo+ID4gPiA+IGluZGV4IDFiYmUwOTliN2RiOC4uYzcyN2Q4NDg2 ZTk3IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5j Cj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+ID4gPiBA QCAtMzAsMTMgKzMwLDE4IEBAIHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCB2a21zX3ZibGFu a19zaW11bGF0ZShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCj4gPiA+ID4gICAgICAgICAgICAgICAg ICAqIGhhcyByZWFkIHRoZSBkYXRhCj4gPiA+ID4gICAgICAgICAgICAgICAgICAqLwo+ID4gPiA+ ICAgICAgICAgICAgICAgICBzcGluX2xvY2soJm91dHB1dC0+c3RhdGVfbG9jayk7Cj4gPiA+ID4g LSAgICAgICAgICAgICAgIGlmICghc3RhdGUtPmZyYW1lX3N0YXJ0KQo+ID4gPiA+ICsgICAgICAg ICAgICAgICBpZiAoIXN0YXRlLT5jcmNfcGVuZGluZykKPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0ZS0+ZnJhbWVfc3RhcnQgPSBmcmFtZTsKPiA+ID4gPiArICAgICAgICAgICAg ICAgZWxzZQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19EUklWRVIo ImNyYyB3b3JrZXIgZmFsbGluZyBiZWhpbmQsIGZyYW1lX3N0YXJ0OiAlbGx1LCBmcmFtZV9lbmQ6 ICVsbHVcbiIsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0ZS0+ZnJhbWVfc3RhcnQsIGZyYW1lKTsKPiA+ID4gPiArICAgICAgICAgICAgICAgc3Rh dGUtPmZyYW1lX2VuZCA9IGZyYW1lOwo+ID4gPiA+ICsgICAgICAgICAgICAgICBzdGF0ZS0+Y3Jj X3BlbmRpbmcgPSB0cnVlOwo+ID4gPiA+ICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmb3V0 cHV0LT5zdGF0ZV9sb2NrKTsKPiA+ID4gPgo+ID4gPiA+ICAgICAgICAgICAgICAgICByZXQgPSBx dWV1ZV93b3JrKG91dHB1dC0+Y3JjX3dvcmtxLCAmc3RhdGUtPmNyY193b3JrKTsKPiA+ID4gPiAg ICAgICAgICAgICAgICAgaWYgKCFyZXQpCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg RFJNX1dBUk4oImZhaWxlZCB0byBxdWV1ZSB2a21zX2NyY193b3JrX2hhbmRsZSIpOwo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19EUklWRVIoInZrbXNfY3JjX3dvcmtf aGFuZGxlIGFscmVhZHkgcXVldWVkXG4iKTsKPiA+ID4gPiAgICAgICAgIH0KPiA+ID4gPgo+ID4g PiA+ICAgICAgICAgc3Bpbl91bmxvY2soJm91dHB1dC0+bG9jayk7Cj4gPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX2Rydi5oCj4gPiA+ID4gaW5kZXggODFmMWNmYmViOTM2Li4zYzdlMDZiMTllZmQgMTAw NjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+ID4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ID4gPiBAQCAtNTYsNiAr NTYsOCBAQCBzdHJ1Y3Qgdmttc19wbGFuZV9zdGF0ZSB7Cj4gPiA+ID4gIHN0cnVjdCB2a21zX2Ny dGNfc3RhdGUgewo+ID4gPiA+ICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7Cj4g PiA+ID4gICAgICAgICBzdHJ1Y3Qgd29ya19zdHJ1Y3QgY3JjX3dvcms7Cj4gPiA+ID4gKwo+ID4g PiA+ICsgICAgICAgYm9vbCBjcmNfcGVuZGluZzsKPiA+ID4gPiAgICAgICAgIHU2NCBmcmFtZV9z dGFydDsKPiA+ID4gPiAgICAgICAgIHU2NCBmcmFtZV9lbmQ7Cj4gPiA+ID4gIH07Cj4gPiA+ID4g LS0KPiA+ID4gPiAyLjIwLjEKPiA+ID4gPgo+ID4gPiAKPiA+ID4gCj4gPiA+IC0tIAo+ID4gPiAK PiA+ID4gUm9kcmlnbyBTaXF1ZWlyYQo+ID4gPiBodHRwczovL3NpcXVlaXJhLnRlY2gKPiA+IAo+ ID4gLS0gCj4gPiBEYW5pZWwgVmV0dGVyCj4gPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KPiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gCj4gLS0gCj4gUm9kcmlnbyBTaXF1 ZWlyYQo+IGh0dHBzOi8vc2lxdWVpcmEudGVjaAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==