From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/2] drm/i915: Preallocate our mmu notifier workequeu to unbreak cpu hotplug deadlock Date: Tue, 10 Oct 2017 12:57:50 +0200 Message-ID: <20171010105750.g6xyak6uuff37ikv@phenom.ffwll.local> References: <20171009164401.16035-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0F91289CD8 for ; Tue, 10 Oct 2017 10:57:55 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id u138so24096207wmu.0 for ; Tue, 10 Oct 2017 03:57:54 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20171009164401.16035-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development Cc: Peter Zijlstra , Daniel Vetter , Tejun Heo , Daniel Vetter , Thomas Gleixner , Sasha Levin List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMDksIDIwMTcgYXQgMDY6NDQ6MDBQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiA0LjE0LXJjMSBnYWluZWQgdGhlIGZhbmN5IG5ldyBjcm9zcy1yZWxlYXNlIHN1cHBv cnQgaW4gbG9ja2RlcCwgd2hpY2gKPiBzZWVtcyB0byBoYXZlIHVuY292ZXJlZCBhIGZldyBtb3Jl IHJ1bGVzIGFib3V0IHdoYXQgaXMgYWxsb3dlZCBhbmQKPiBpc24ndC4KPiAKPiBUaGlzIG9uZSBo ZXJlIHNlZW1zIHRvIGluZGljYXRlIHRoYXQgYWxsb2NhdGluZyBhIHdvcmstcXVldWUgd2hpbGUK PiBob2xkaW5nIG1tYXBfc2VtIGlzIGEgbm8tZ28sIHNvIGxldCdzIHRyeSB0byBwcmVhbGxvY2F0 ZSBpdC4KPiAKPiBPZiBjb3Vyc2UgYW5vdGhlciB3YXkgdG8gYnJlYWsgdGhpcyBjaGFpbiB3b3Vs ZCBiZSBzb21ld2hlcmUgaW4gdGhlCj4gY3B1IGhvdHBsdWcgY29kZSwgc2luY2UgdGhpcyBpc24n dCB0aGUgb25seSB0cmFjZSB3ZSdyZSBmaW5kaW5nIG5vdwo+IHdoaWNoIGdvZXMgdGhyb3VnaCBt c3JfY3JlYXRlX2RldmljZS4KPiAKPiBGdWxsIGxvY2tkZXAgc3BsYXQ6Cj4gCj4gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gV0FSTklORzog cG9zc2libGUgY2lyY3VsYXIgbG9ja2luZyBkZXBlbmRlbmN5IGRldGVjdGVkCj4gNC4xNC4wLXJj MS1DSS1DSV9EUk1fMzExOCsgIzEgVGFpbnRlZDogRyAgICAgVQo+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IHByaW1lX21tYXAvMTU1MSBp cyB0cnlpbmcgdG8gYWNxdWlyZSBsb2NrOgo+ICAoY3B1X2hvdHBsdWdfbG9jay5yd19zZW0peysr Kyt9LCBhdDogWzxmZmZmZmZmZjgxMDlkYmI3Pl0gYXBwbHlfd29ya3F1ZXVlX2F0dHJzKzB4MTcv MHg1MAo+IAo+IGJ1dCB0YXNrIGlzIGFscmVhZHkgaG9sZGluZyBsb2NrOgo+ICAoJmRldl9wcml2 LT5tbV9sb2NrKXsrLisufSwgYXQ6IFs8ZmZmZmZmZmZhMDFhN2IyYT5dIGk5MTVfZ2VtX3VzZXJw dHJfaW5pdF9fbW11X25vdGlmaWVyKzB4MTRhLzB4MjcwIFtpOTE1XQo+IAo+IHdoaWNoIGxvY2sg YWxyZWFkeSBkZXBlbmRzIG9uIHRoZSBuZXcgbG9jay4KPiAKPiB0aGUgZXhpc3RpbmcgZGVwZW5k ZW5jeSBjaGFpbiAoaW4gcmV2ZXJzZSBvcmRlcikgaXM6Cj4gCj4gLT4gIzYgKCZkZXZfcHJpdi0+ bW1fbG9jayl7Ky4rLn06Cj4gICAgICAgIF9fbG9ja19hY3F1aXJlKzB4MTQyMC8weDE1ZTAKPiAg ICAgICAgbG9ja19hY3F1aXJlKzB4YjAvMHgyMDAKPiAgICAgICAgX19tdXRleF9sb2NrKzB4ODYv MHg5YjAKPiAgICAgICAgbXV0ZXhfbG9ja19uZXN0ZWQrMHgxYi8weDIwCj4gICAgICAgIGk5MTVf Z2VtX3VzZXJwdHJfaW5pdF9fbW11X25vdGlmaWVyKzB4MTRhLzB4MjcwIFtpOTE1XQo+ICAgICAg ICBpOTE1X2dlbV91c2VycHRyX2lvY3RsKzB4MjIyLzB4MmMwIFtpOTE1XQo+ICAgICAgICBkcm1f aW9jdGxfa2VybmVsKzB4NjkvMHhiMAo+ICAgICAgICBkcm1faW9jdGwrMHgyZjkvMHgzZDAKPiAg ICAgICAgZG9fdmZzX2lvY3RsKzB4OTQvMHg2NzAKPiAgICAgICAgU3lTX2lvY3RsKzB4NDEvMHg3 MAo+ICAgICAgICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWMvMHhiMQo+IAo+IC0+ICM1 ICgmbW0tPm1tYXBfc2VtKXsrKysrfToKPiAgICAgICAgX19sb2NrX2FjcXVpcmUrMHgxNDIwLzB4 MTVlMAo+ICAgICAgICBsb2NrX2FjcXVpcmUrMHhiMC8weDIwMAo+ICAgICAgICBfX21pZ2h0X2Zh dWx0KzB4NjgvMHg5MAo+ICAgICAgICBfY29weV90b191c2VyKzB4MjMvMHg3MAo+ICAgICAgICBm aWxsZGlyKzB4YTUvMHgxMjAKPiAgICAgICAgZGNhY2hlX3JlYWRkaXIrMHhmOS8weDE3MAo+ICAg ICAgICBpdGVyYXRlX2RpcisweDY5LzB4MWEwCj4gICAgICAgIFN5U19nZXRkZW50cysweGE1LzB4 MTQwCj4gICAgICAgIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxYy8weGIxCj4gCj4gLT4g IzQgKCZzYi0+c190eXBlLT5pX211dGV4X2tleSM1KXsrKysrfToKPiAgICAgICAgZG93bl93cml0 ZSsweDNiLzB4NzAKPiAgICAgICAgaGFuZGxlX2NyZWF0ZSsweGNiLzB4MWUwCj4gICAgICAgIGRl dnRtcGZzZCsweDEzOS8weDE4MAo+ICAgICAgICBrdGhyZWFkKzB4MTUyLzB4MTkwCj4gICAgICAg IHJldF9mcm9tX2ZvcmsrMHgyNy8weDQwCj4gCj4gLT4gIzMgKChjb21wbGV0ZSkmcmVxLmRvbmUp eysuKy59Ogo+ICAgICAgICBfX2xvY2tfYWNxdWlyZSsweDE0MjAvMHgxNWUwCj4gICAgICAgIGxv Y2tfYWNxdWlyZSsweGIwLzB4MjAwCj4gICAgICAgIHdhaXRfZm9yX2NvbW1vbisweDU4LzB4MjEw Cj4gICAgICAgIHdhaXRfZm9yX2NvbXBsZXRpb24rMHgxZC8weDIwCj4gICAgICAgIGRldnRtcGZz X2NyZWF0ZV9ub2RlKzB4MTNkLzB4MTYwCj4gICAgICAgIGRldmljZV9hZGQrMHg1ZWIvMHg2MjAK PiAgICAgICAgZGV2aWNlX2NyZWF0ZV9ncm91cHNfdmFyZ3MrMHhlMC8weGYwCj4gICAgICAgIGRl dmljZV9jcmVhdGUrMHgzYS8weDQwCj4gICAgICAgIG1zcl9kZXZpY2VfY3JlYXRlKzB4MmIvMHg0 MAo+ICAgICAgICBjcHVocF9pbnZva2VfY2FsbGJhY2srMHhhMy8weDg0MAo+ICAgICAgICBjcHVo cF90aHJlYWRfZnVuKzB4N2EvMHgxNTAKPiAgICAgICAgc21wYm9vdF90aHJlYWRfZm4rMHgxOGEv MHgyODAKPiAgICAgICAga3RocmVhZCsweDE1Mi8weDE5MAo+ICAgICAgICByZXRfZnJvbV9mb3Jr KzB4MjcvMHg0MAo+IAo+IC0+ICMyIChjcHVocF9zdGF0ZSl7Ky4rLn06Cj4gICAgICAgIF9fbG9j a19hY3F1aXJlKzB4MTQyMC8weDE1ZTAKPiAgICAgICAgbG9ja19hY3F1aXJlKzB4YjAvMHgyMDAK PiAgICAgICAgY3B1aHBfaXNzdWVfY2FsbCsweDEwYi8weDE3MAo+ICAgICAgICBfX2NwdWhwX3Nl dHVwX3N0YXRlX2NwdXNsb2NrZWQrMHgxMzQvMHgyYTAKPiAgICAgICAgX19jcHVocF9zZXR1cF9z dGF0ZSsweDQ2LzB4NjAKPiAgICAgICAgcGFnZV93cml0ZWJhY2tfaW5pdCsweDQzLzB4NjcKPiAg ICAgICAgcGFnZWNhY2hlX2luaXQrMHgzZC8weDQyCj4gICAgICAgIHN0YXJ0X2tlcm5lbCsweDNh OC8weDNmYwo+ICAgICAgICB4ODZfNjRfc3RhcnRfcmVzZXJ2YXRpb25zKzB4MmEvMHgyYwo+ICAg ICAgICB4ODZfNjRfc3RhcnRfa2VybmVsKzB4NmQvMHg3MAo+ICAgICAgICB2ZXJpZnlfY3B1KzB4 MC8weGZiCj4gCj4gLT4gIzEgKGNwdWhwX3N0YXRlX211dGV4KXsrLisufToKPiAgICAgICAgX19s b2NrX2FjcXVpcmUrMHgxNDIwLzB4MTVlMAo+ICAgICAgICBsb2NrX2FjcXVpcmUrMHhiMC8weDIw MAo+ICAgICAgICBfX211dGV4X2xvY2srMHg4Ni8weDliMAo+ICAgICAgICBtdXRleF9sb2NrX25l c3RlZCsweDFiLzB4MjAKPiAgICAgICAgX19jcHVocF9zZXR1cF9zdGF0ZV9jcHVzbG9ja2VkKzB4 NTIvMHgyYTAKPiAgICAgICAgX19jcHVocF9zZXR1cF9zdGF0ZSsweDQ2LzB4NjAKPiAgICAgICAg cGFnZV9hbGxvY19pbml0KzB4MjgvMHgzMAo+ICAgICAgICBzdGFydF9rZXJuZWwrMHgxNDUvMHgz ZmMKPiAgICAgICAgeDg2XzY0X3N0YXJ0X3Jlc2VydmF0aW9ucysweDJhLzB4MmMKPiAgICAgICAg eDg2XzY0X3N0YXJ0X2tlcm5lbCsweDZkLzB4NzAKPiAgICAgICAgdmVyaWZ5X2NwdSsweDAvMHhm Ygo+IAo+IC0+ICMwIChjcHVfaG90cGx1Z19sb2NrLnJ3X3NlbSl7KysrK306Cj4gICAgICAgIGNo ZWNrX3ByZXZfYWRkKzB4NDMwLzB4ODQwCj4gICAgICAgIF9fbG9ja19hY3F1aXJlKzB4MTQyMC8w eDE1ZTAKPiAgICAgICAgbG9ja19hY3F1aXJlKzB4YjAvMHgyMDAKPiAgICAgICAgY3B1c19yZWFk X2xvY2srMHgzZC8weGIwCj4gICAgICAgIGFwcGx5X3dvcmtxdWV1ZV9hdHRycysweDE3LzB4NTAK PiAgICAgICAgX19hbGxvY193b3JrcXVldWVfa2V5KzB4MWQ4LzB4NGQ5Cj4gICAgICAgIGk5MTVf Z2VtX3VzZXJwdHJfaW5pdF9fbW11X25vdGlmaWVyKzB4MWZiLzB4MjcwIFtpOTE1XQo+ICAgICAg ICBpOTE1X2dlbV91c2VycHRyX2lvY3RsKzB4MjIyLzB4MmMwIFtpOTE1XQo+ICAgICAgICBkcm1f aW9jdGxfa2VybmVsKzB4NjkvMHhiMAo+ICAgICAgICBkcm1faW9jdGwrMHgyZjkvMHgzZDAKPiAg ICAgICAgZG9fdmZzX2lvY3RsKzB4OTQvMHg2NzAKPiAgICAgICAgU3lTX2lvY3RsKzB4NDEvMHg3 MAo+ICAgICAgICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWMvMHhiMQo+IAo+IG90aGVy IGluZm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6Cj4gCj4gQ2hhaW4gZXhpc3RzIG9m Ogo+ICAgY3B1X2hvdHBsdWdfbG9jay5yd19zZW0gLS0+ICZtbS0+bW1hcF9zZW0gLS0+ICZkZXZf cHJpdi0+bW1fbG9jawo+IAo+ICBQb3NzaWJsZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJpbzoKPiAK PiAgICAgICAgQ1BVMCAgICAgICAgICAgICAgICAgICAgQ1BVMQo+ICAgICAgICAtLS0tICAgICAg ICAgICAgICAgICAgICAtLS0tCj4gICBsb2NrKCZkZXZfcHJpdi0+bW1fbG9jayk7Cj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2soJm1tLT5tbWFwX3NlbSk7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxvY2soJmRldl9wcml2LT5tbV9sb2NrKTsKPiAgIGxvY2so Y3B1X2hvdHBsdWdfbG9jay5yd19zZW0pOwo+IAo+ICAqKiogREVBRExPQ0sgKioqCj4gCj4gMiBs b2NrcyBoZWxkIGJ5IHByaW1lX21tYXAvMTU1MToKPiAgIzA6ICAoJm1tLT5tbWFwX3NlbSl7Kysr K30sIGF0OiBbPGZmZmZmZmZmYTAxYTdiMTg+XSBpOTE1X2dlbV91c2VycHRyX2luaXRfX21tdV9u b3RpZmllcisweDEzOC8weDI3MCBbaTkxNV0KPiAgIzE6ICAoJmRldl9wcml2LT5tbV9sb2NrKXsr LisufSwgYXQ6IFs8ZmZmZmZmZmZhMDFhN2IyYT5dIGk5MTVfZ2VtX3VzZXJwdHJfaW5pdF9fbW11 X25vdGlmaWVyKzB4MTRhLzB4MjcwIFtpOTE1XQo+IAo+IHN0YWNrIGJhY2t0cmFjZToKPiBDUFU6 IDQgUElEOiAxNTUxIENvbW06IHByaW1lX21tYXAgVGFpbnRlZDogRyAgICAgVSAgICAgICAgICA0 LjE0LjAtcmMxLUNJLUNJX0RSTV8zMTE4KyAjMQo+IEhhcmR3YXJlIG5hbWU6IERlbGwgSW5jLiBY UFMgODMwMCAgLzBZMk1SRywgQklPUyBBMDYgMTAvMTcvMjAxMQo+IENhbGwgVHJhY2U6Cj4gIGR1 bXBfc3RhY2srMHg2OC8weDlmCj4gIHByaW50X2NpcmN1bGFyX2J1ZysweDIzNS8weDNjMAo+ICA/ IGxvY2tkZXBfaW5pdF9tYXBfY3Jvc3Nsb2NrKzB4MjAvMHgyMAo+ICBjaGVja19wcmV2X2FkZCsw eDQzMC8weDg0MAo+ICBfX2xvY2tfYWNxdWlyZSsweDE0MjAvMHgxNWUwCj4gID8gX19sb2NrX2Fj cXVpcmUrMHgxNDIwLzB4MTVlMAo+ICA/IGxvY2tkZXBfaW5pdF9tYXBfY3Jvc3Nsb2NrKzB4MjAv MHgyMAo+ICBsb2NrX2FjcXVpcmUrMHhiMC8weDIwMAo+ICA/IGFwcGx5X3dvcmtxdWV1ZV9hdHRy cysweDE3LzB4NTAKPiAgY3B1c19yZWFkX2xvY2srMHgzZC8weGIwCj4gID8gYXBwbHlfd29ya3F1 ZXVlX2F0dHJzKzB4MTcvMHg1MAo+ICBhcHBseV93b3JrcXVldWVfYXR0cnMrMHgxNy8weDUwCj4g IF9fYWxsb2Nfd29ya3F1ZXVlX2tleSsweDFkOC8weDRkOQo+ICA/IF9fbG9ja2RlcF9pbml0X21h cCsweDU3LzB4MWMwCj4gIGk5MTVfZ2VtX3VzZXJwdHJfaW5pdF9fbW11X25vdGlmaWVyKzB4MWZi LzB4MjcwIFtpOTE1XQo+ICBpOTE1X2dlbV91c2VycHRyX2lvY3RsKzB4MjIyLzB4MmMwIFtpOTE1 XQo+ICA/IGk5MTVfZ2VtX3VzZXJwdHJfcmVsZWFzZSsweDE0MC8weDE0MCBbaTkxNV0KPiAgZHJt X2lvY3RsX2tlcm5lbCsweDY5LzB4YjAKPiAgZHJtX2lvY3RsKzB4MmY5LzB4M2QwCj4gID8gaTkx NV9nZW1fdXNlcnB0cl9yZWxlYXNlKzB4MTQwLzB4MTQwIFtpOTE1XQo+ICA/IF9fZG9fcGFnZV9m YXVsdCsweDJhNC8weDU3MAo+ICBkb192ZnNfaW9jdGwrMHg5NC8weDY3MAo+ICA/IGVudHJ5X1NZ U0NBTExfNjRfZmFzdHBhdGgrMHg1LzB4YjEKPiAgPyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2sr MHgxMy8weDIwCj4gID8gdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKzB4ZTMvMHgxYjAKPiAgU3lT X2lvY3RsKzB4NDEvMHg3MAo+ICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWMvMHhiMQo+ IFJJUDogMDAzMzoweDdmYmI4M2MzOTU4Nwo+IFJTUDogMDAyYjowMDAwN2ZmZjE4OGRjMjI4IEVG TEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMTAKPiBSQVg6IGZmZmZmZmZm ZmZmZmZmZGEgUkJYOiBmZmZmZmZmZjgxNDkyOTYzIFJDWDogMDAwMDdmYmI4M2MzOTU4Nwo+IFJE WDogMDAwMDdmZmYxODhkYzI2MCBSU0k6IDAwMDAwMDAwYzAxODY0NzMgUkRJOiAwMDAwMDAwMDAw MDAwMDAzCj4gUkJQOiBmZmZmYzkwMDAxNDg3Zjg4IFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6 IDAwMDA3ZmZmMTg4ZGMyYWMKPiBSMTA6IDAwMDA3ZmJiODNlZmNiNTggUjExOiAwMDAwMDAwMDAw MDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAwMAo+IFIxMzogMDAwMDAwMDAwMDAwMDAwMyBSMTQ6 IDAwMDAwMDAwYzAxODY0NzMgUjE1OiAwMDAwN2ZmZjE4OGRjMmFjCj4gID8gX190aGlzX2NwdV9w cmVlbXB0X2NoZWNrKzB4MTMvMHgyMAo+IAo+IE5vdGUgdGhhdCB0aGlzIGFsc28gaGFzIHRoZSBt aW5vciBiZW5lZml0IG9mIHNsaWdodGx5IHJlZHVjaW5nIHRoZQo+IGNyaXRpY2FsIHNlY3Rpb24g d2hlcmUgd2UgaG9sZCBtbWFwX3NlbS4KPiAKPiB2MjogU2V0IHJldCBjb3JyZWN0bHkgd2hlbiB3 ZSByYWNlZCB3aXRoIGFub3RoZXIgdGhyZWFkLgo+IAo+IHYzOiBVc2UgQ2hyaXMnIGRpZmYuIEF0 dGFjaCB0aGUgcmlnaHQgbG9ja2RlcCBzcGxhdC4KPiAKPiB2NDogUmVwYWludCBpbiBUdnJ0a28n cyBjb2xvcnMgKGFrYSBkb24ndCByZXBvcnQgRU5PTUVNIGlmIHdlIHJhY2UgYW5kCj4gc29tZSBv dGhlciB0aHJlYWQgbWFuYWdlZCB0byBub3QgYWxzbyBnZXQgYW4gRU5PTUVNIGFuZCBzdWNjZXNz ZnVsbHkKPiBpbnN0YWxsIHRoZSBtbXUgbm90aWZpZXIuIE5vdGUgdGhhdCB0aGUga2VybmVsIGd1 YXJhbnRlZXMgdGhhdCBzbWFsbAo+IGFsbG9jYXRpb25zIHN1Y2NlZWQsIHNvIHRoaXMgbmV2ZXIg YWN0dWFsbHkgaGFwcGVucykuCj4gCj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29t Pgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ Cj4gQ2M6IFBldGVyIFppamxzdHJhIDxwZXRlcnpAaW5mcmFkZWFkLm9yZz4KPiBDYzogVGhvbWFz IEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+Cj4gQ2M6IFNhc2hhIExldmluIDxhbGV4YW5k ZXIubGV2aW5AdmVyaXpvbi5jb20+Cj4gQ2M6IE1hcnRhIExvZnN0ZWR0IDxtYXJ0YS5sb2ZzdGVk dEBpbnRlbC5jb20+Cj4gQ2M6IFRlanVuIEhlbyA8dGpAa2VybmVsLm9yZz4KPiBSZWZlcmVuY2Vz OiBodHRwczovL2ludGVsLWdmeC1jaS4wMS5vcmcvdHJlZS9kcm0tdGlwL0NJX0RSTV8zMTgwL3No YXJkLWhzdzMvaWd0QHByaW1lX21tYXBAdGVzdF91c2VycHRyLmh0bWwKPiBCdWd6aWxsYTogaHR0 cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyOTM5Cj4gU2lnbmVk LW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+CgpNZXJnZWQg dGhpcyBvbmUgd2l0aCB0aGUgci1iIGZyb20gVHZydGtvIGZyb20gdGhlIHByZXZpb3VzIHJvdW5k IChJCnNvbWVob3cgbWlzc2VkIHRoYXQpLgoKQnV0IHRoZSBzbmFnIGluIHNldF93ZWRnZWQgaXMg dGhlIG9uZSB0aGF0IENJIGlzIGhpdHRpbmcgYSBsb3QgbW9yZSBvZnRlbi4KLURhbmllbAoKPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jIHwgMzggKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRp b25zKCspLCAxNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f dXNlcnB0ci5jCj4gaW5kZXggNDFlMTZlMTljM2YzLi42NWZiZjMzNDUwOGUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCj4gQEAgLTE2NCw3ICsxNjQsNiBAQCBz dGF0aWMgc3RydWN0IGk5MTVfbW11X25vdGlmaWVyICoKPiAgaTkxNV9tbXVfbm90aWZpZXJfY3Jl YXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQo+ICB7Cj4gIAlzdHJ1Y3QgaTkxNV9tbXVfbm90aWZp ZXIgKm1uOwo+IC0JaW50IHJldDsKPiAgCj4gIAltbiA9IGttYWxsb2Moc2l6ZW9mKCptbiksIEdG UF9LRVJORUwpOwo+ICAJaWYgKG1uID09IE5VTEwpCj4gQEAgLTE3OSwxNCArMTc4LDYgQEAgaTkx NV9tbXVfbm90aWZpZXJfY3JlYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQo+ICAJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOwo+ICAJfQo+ICAKPiAtCSAvKiBQcm90ZWN0ZWQgYnkgbW1hcF9zZW0g KHdyaXRlLWxvY2spICovCj4gLQlyZXQgPSBfX21tdV9ub3RpZmllcl9yZWdpc3RlcigmbW4tPm1u LCBtbSk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJZGVzdHJveV93b3JrcXVldWUobW4tPndxKTsKPiAt CQlrZnJlZShtbik7Cj4gLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAtCX0KPiAtCj4gIAlyZXR1 cm4gbW47Cj4gIH0KPiAgCj4gQEAgLTIxMCwyMyArMjAxLDQwIEBAIGk5MTVfZ2VtX3VzZXJwdHJf cmVsZWFzZV9fbW11X25vdGlmaWVyKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4g IHN0YXRpYyBzdHJ1Y3QgaTkxNV9tbXVfbm90aWZpZXIgKgo+ICBpOTE1X21tdV9ub3RpZmllcl9m aW5kKHN0cnVjdCBpOTE1X21tX3N0cnVjdCAqbW0pCj4gIHsKPiAtCXN0cnVjdCBpOTE1X21tdV9u b3RpZmllciAqbW4gPSBtbS0+bW47Cj4gKwlzdHJ1Y3QgaTkxNV9tbXVfbm90aWZpZXIgKm1uOwo+ ICsJaW50IGVyciA9IDA7Cj4gIAo+ICAJbW4gPSBtbS0+bW47Cj4gIAlpZiAobW4pCj4gIAkJcmV0 dXJuIG1uOwo+ICAKPiArCW1uID0gaTkxNV9tbXVfbm90aWZpZXJfY3JlYXRlKG1tLT5tbSk7Cj4g KwlpZiAoSVNfRVJSKG1uKSkKPiArCQllcnIgPSBQVFJfRVJSKG1uKTsKPiArCj4gIAlkb3duX3dy aXRlKCZtbS0+bW0tPm1tYXBfc2VtKTsKPiAgCW11dGV4X2xvY2soJm1tLT5pOTE1LT5tbV9sb2Nr KTsKPiAtCWlmICgobW4gPSBtbS0+bW4pID09IE5VTEwpIHsKPiAtCQltbiA9IGk5MTVfbW11X25v dGlmaWVyX2NyZWF0ZShtbS0+bW0pOwo+IC0JCWlmICghSVNfRVJSKG1uKSkKPiAtCQkJbW0tPm1u ID0gbW47Cj4gKwlpZiAobW0tPm1uID09IE5VTEwgJiYgIWVycikgewo+ICsJCS8qIFByb3RlY3Rl ZCBieSBtbWFwX3NlbSAod3JpdGUtbG9jaykgKi8KPiArCQllcnIgPSBfX21tdV9ub3RpZmllcl9y ZWdpc3RlcigmbW4tPm1uLCBtbS0+bW0pOwo+ICsJCWlmICghZXJyKSB7Cj4gKwkJCS8qIFByb3Rl Y3RlZCBieSBtbV9sb2NrICovCj4gKwkJCW1tLT5tbiA9IGZldGNoX2FuZF96ZXJvKCZtbik7Cj4g KwkJfQo+ICsJfSBlbHNlIHsKPiArCQkvKiBzb21lb25lIGVsc2UgcmFjZWQgYW5kIHN1Y2Nlc3Nm dWxseSBpbnN0YWxsZWQgdGhlIG1tdQo+ICsJCSAqIG5vdGlmaWVyLCB3ZSBjYW4gY2FuY2VsIG91 ciBvd24gZXJyb3JzICovCj4gKwkJZXJyID0gMDsKPiAgCX0KPiAgCW11dGV4X3VubG9jaygmbW0t Pmk5MTUtPm1tX2xvY2spOwo+ICAJdXBfd3JpdGUoJm1tLT5tbS0+bW1hcF9zZW0pOwo+ICAKPiAt CXJldHVybiBtbjsKPiArCWlmIChtbikgewo+ICsJCWRlc3Ryb3lfd29ya3F1ZXVlKG1uLT53cSk7 Cj4gKwkJa2ZyZWUobW4pOwo+ICsJfQo+ICsKPiArCXJldHVybiBlcnIgPyBFUlJfUFRSKGVycikg OiBtbS0+bW47Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQKPiAtLSAKPiAyLjE0LjEKPiAKCi0tIApE YW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8v YmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK