From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 1/2] drm/i915: Preallocate our mmu notifier workequeu to unbreak cpu hotplug deadlock Date: Fri, 6 Oct 2017 12:34:02 +0100 Message-ID: <9f61d57c-12c4-eb01-a008-e674727810d6@linux.intel.com> References: <20171006090637.25545-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 74B9C6E932 for ; Fri, 6 Oct 2017 11:34:05 +0000 (UTC) In-Reply-To: <20171006090637.25545-1-daniel.vetter@ffwll.ch> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Intel Graphics Development Cc: Peter Zijlstra , LKML , Sasha Levin , Tejun Heo , Daniel Vetter , Thomas Gleixner List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA2LzEwLzIwMTcgMTA6MDYsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gNC4xNC1yYzEgZ2Fp bmVkIHRoZSBmYW5jeSBuZXcgY3Jvc3MtcmVsZWFzZSBzdXBwb3J0IGluIGxvY2tkZXAsIHdoaWNo Cj4gc2VlbXMgdG8gaGF2ZSB1bmNvdmVyZWQgYSBmZXcgbW9yZSBydWxlcyBhYm91dCB3aGF0IGlz IGFsbG93ZWQgYW5kCj4gaXNuJ3QuCj4gCj4gVGhpcyBvbmUgaGVyZSBzZWVtcyB0byBpbmRpY2F0 ZSB0aGF0IGFsbG9jYXRpbmcgYSB3b3JrLXF1ZXVlIHdoaWxlCj4gaG9sZGluZyBtbWFwX3NlbSBp cyBhIG5vLWdvLCBzbyBsZXQncyB0cnkgdG8gcHJlYWxsb2NhdGUgaXQuCj4gCj4gT2YgY291cnNl IGFub3RoZXIgd2F5IHRvIGJyZWFrIHRoaXMgY2hhaW4gd291bGQgYmUgc29tZXdoZXJlIGluIHRo ZQo+IGNwdSBob3RwbHVnIGNvZGUsIHNpbmNlIHRoaXMgaXNuJ3QgdGhlIG9ubHkgdHJhY2Ugd2Un cmUgZmluZGluZyBub3cKPiB3aGljaCBnb2VzIHRocm91Z2ggbXNyX2NyZWF0ZV9kZXZpY2UuCj4g Cj4gRnVsbCBsb2NrZGVwIHNwbGF0Ogo+IAo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+IFdBUk5JTkc6IHBvc3NpYmxlIGNpcmN1bGFyIGxv Y2tpbmcgZGVwZW5kZW5jeSBkZXRlY3RlZAo+IDQuMTQuMC1yYzEtQ0ktQ0lfRFJNXzMxMTgrICMx IFRhaW50ZWQ6IEcgICAgIFUKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPiBwcmltZV9tbWFwLzE1NTEgaXMgdHJ5aW5nIHRvIGFjcXVpcmUg bG9jazoKPiAgIChjcHVfaG90cGx1Z19sb2NrLnJ3X3NlbSl7KysrK30sIGF0OiBbPGZmZmZmZmZm ODEwOWRiYjc+XSBhcHBseV93b3JrcXVldWVfYXR0cnMrMHgxNy8weDUwCj4gCj4gYnV0IHRhc2sg aXMgYWxyZWFkeSBob2xkaW5nIGxvY2s6Cj4gICAoJmRldl9wcml2LT5tbV9sb2NrKXsrLisufSwg YXQ6IFs8ZmZmZmZmZmZhMDFhN2IyYT5dIGk5MTVfZ2VtX3VzZXJwdHJfaW5pdF9fbW11X25vdGlm aWVyKzB4MTRhLzB4MjcwIFtpOTE1XQo+IAo+IHdoaWNoIGxvY2sgYWxyZWFkeSBkZXBlbmRzIG9u IHRoZSBuZXcgbG9jay4KPiAKPiB0aGUgZXhpc3RpbmcgZGVwZW5kZW5jeSBjaGFpbiAoaW4gcmV2 ZXJzZSBvcmRlcikgaXM6Cj4gCj4gLT4gIzYgKCZkZXZfcHJpdi0+bW1fbG9jayl7Ky4rLn06Cj4g ICAgICAgICBfX2xvY2tfYWNxdWlyZSsweDE0MjAvMHgxNWUwCj4gICAgICAgICBsb2NrX2FjcXVp cmUrMHhiMC8weDIwMAo+ICAgICAgICAgX19tdXRleF9sb2NrKzB4ODYvMHg5YjAKPiAgICAgICAg IG11dGV4X2xvY2tfbmVzdGVkKzB4MWIvMHgyMAo+ICAgICAgICAgaTkxNV9nZW1fdXNlcnB0cl9p bml0X19tbXVfbm90aWZpZXIrMHgxNGEvMHgyNzAgW2k5MTVdCj4gICAgICAgICBpOTE1X2dlbV91 c2VycHRyX2lvY3RsKzB4MjIyLzB4MmMwIFtpOTE1XQo+ICAgICAgICAgZHJtX2lvY3RsX2tlcm5l bCsweDY5LzB4YjAKPiAgICAgICAgIGRybV9pb2N0bCsweDJmOS8weDNkMAo+ICAgICAgICAgZG9f dmZzX2lvY3RsKzB4OTQvMHg2NzAKPiAgICAgICAgIFN5U19pb2N0bCsweDQxLzB4NzAKPiAgICAg ICAgIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxYy8weGIxCj4gCj4gLT4gIzUgKCZtbS0+ bW1hcF9zZW0peysrKyt9Ogo+ICAgICAgICAgX19sb2NrX2FjcXVpcmUrMHgxNDIwLzB4MTVlMAo+ ICAgICAgICAgbG9ja19hY3F1aXJlKzB4YjAvMHgyMDAKPiAgICAgICAgIF9fbWlnaHRfZmF1bHQr MHg2OC8weDkwCj4gICAgICAgICBfY29weV90b191c2VyKzB4MjMvMHg3MAo+ICAgICAgICAgZmls bGRpcisweGE1LzB4MTIwCj4gICAgICAgICBkY2FjaGVfcmVhZGRpcisweGY5LzB4MTcwCj4gICAg ICAgICBpdGVyYXRlX2RpcisweDY5LzB4MWEwCj4gICAgICAgICBTeVNfZ2V0ZGVudHMrMHhhNS8w eDE0MAo+ICAgICAgICAgZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFjLzB4YjEKPiAKPiAt PiAjNCAoJnNiLT5zX3R5cGUtPmlfbXV0ZXhfa2V5IzUpeysrKyt9Ogo+ICAgICAgICAgZG93bl93 cml0ZSsweDNiLzB4NzAKPiAgICAgICAgIGhhbmRsZV9jcmVhdGUrMHhjYi8weDFlMAo+ICAgICAg ICAgZGV2dG1wZnNkKzB4MTM5LzB4MTgwCj4gICAgICAgICBrdGhyZWFkKzB4MTUyLzB4MTkwCj4g ICAgICAgICByZXRfZnJvbV9mb3JrKzB4MjcvMHg0MAo+IAo+IC0+ICMzICgoY29tcGxldGUpJnJl cS5kb25lKXsrLisufToKPiAgICAgICAgIF9fbG9ja19hY3F1aXJlKzB4MTQyMC8weDE1ZTAKPiAg ICAgICAgIGxvY2tfYWNxdWlyZSsweGIwLzB4MjAwCj4gICAgICAgICB3YWl0X2Zvcl9jb21tb24r MHg1OC8weDIxMAo+ICAgICAgICAgd2FpdF9mb3JfY29tcGxldGlvbisweDFkLzB4MjAKPiAgICAg ICAgIGRldnRtcGZzX2NyZWF0ZV9ub2RlKzB4MTNkLzB4MTYwCj4gICAgICAgICBkZXZpY2VfYWRk KzB4NWViLzB4NjIwCj4gICAgICAgICBkZXZpY2VfY3JlYXRlX2dyb3Vwc192YXJncysweGUwLzB4 ZjAKPiAgICAgICAgIGRldmljZV9jcmVhdGUrMHgzYS8weDQwCj4gICAgICAgICBtc3JfZGV2aWNl X2NyZWF0ZSsweDJiLzB4NDAKPiAgICAgICAgIGNwdWhwX2ludm9rZV9jYWxsYmFjaysweGEzLzB4 ODQwCj4gICAgICAgICBjcHVocF90aHJlYWRfZnVuKzB4N2EvMHgxNTAKPiAgICAgICAgIHNtcGJv b3RfdGhyZWFkX2ZuKzB4MThhLzB4MjgwCj4gICAgICAgICBrdGhyZWFkKzB4MTUyLzB4MTkwCj4g ICAgICAgICByZXRfZnJvbV9mb3JrKzB4MjcvMHg0MAo+IAo+IC0+ICMyIChjcHVocF9zdGF0ZSl7 Ky4rLn06Cj4gICAgICAgICBfX2xvY2tfYWNxdWlyZSsweDE0MjAvMHgxNWUwCj4gICAgICAgICBs b2NrX2FjcXVpcmUrMHhiMC8weDIwMAo+ICAgICAgICAgY3B1aHBfaXNzdWVfY2FsbCsweDEwYi8w eDE3MAo+ICAgICAgICAgX19jcHVocF9zZXR1cF9zdGF0ZV9jcHVzbG9ja2VkKzB4MTM0LzB4MmEw Cj4gICAgICAgICBfX2NwdWhwX3NldHVwX3N0YXRlKzB4NDYvMHg2MAo+ICAgICAgICAgcGFnZV93 cml0ZWJhY2tfaW5pdCsweDQzLzB4NjcKPiAgICAgICAgIHBhZ2VjYWNoZV9pbml0KzB4M2QvMHg0 Mgo+ICAgICAgICAgc3RhcnRfa2VybmVsKzB4M2E4LzB4M2ZjCj4gICAgICAgICB4ODZfNjRfc3Rh cnRfcmVzZXJ2YXRpb25zKzB4MmEvMHgyYwo+ICAgICAgICAgeDg2XzY0X3N0YXJ0X2tlcm5lbCsw eDZkLzB4NzAKPiAgICAgICAgIHZlcmlmeV9jcHUrMHgwLzB4ZmIKPiAKPiAtPiAjMSAoY3B1aHBf c3RhdGVfbXV0ZXgpeysuKy59Ogo+ICAgICAgICAgX19sb2NrX2FjcXVpcmUrMHgxNDIwLzB4MTVl MAo+ICAgICAgICAgbG9ja19hY3F1aXJlKzB4YjAvMHgyMDAKPiAgICAgICAgIF9fbXV0ZXhfbG9j aysweDg2LzB4OWIwCj4gICAgICAgICBtdXRleF9sb2NrX25lc3RlZCsweDFiLzB4MjAKPiAgICAg ICAgIF9fY3B1aHBfc2V0dXBfc3RhdGVfY3B1c2xvY2tlZCsweDUyLzB4MmEwCj4gICAgICAgICBf X2NwdWhwX3NldHVwX3N0YXRlKzB4NDYvMHg2MAo+ICAgICAgICAgcGFnZV9hbGxvY19pbml0KzB4 MjgvMHgzMAo+ICAgICAgICAgc3RhcnRfa2VybmVsKzB4MTQ1LzB4M2ZjCj4gICAgICAgICB4ODZf NjRfc3RhcnRfcmVzZXJ2YXRpb25zKzB4MmEvMHgyYwo+ICAgICAgICAgeDg2XzY0X3N0YXJ0X2tl cm5lbCsweDZkLzB4NzAKPiAgICAgICAgIHZlcmlmeV9jcHUrMHgwLzB4ZmIKPiAKPiAtPiAjMCAo Y3B1X2hvdHBsdWdfbG9jay5yd19zZW0peysrKyt9Ogo+ICAgICAgICAgY2hlY2tfcHJldl9hZGQr MHg0MzAvMHg4NDAKPiAgICAgICAgIF9fbG9ja19hY3F1aXJlKzB4MTQyMC8weDE1ZTAKPiAgICAg ICAgIGxvY2tfYWNxdWlyZSsweGIwLzB4MjAwCj4gICAgICAgICBjcHVzX3JlYWRfbG9jaysweDNk LzB4YjAKPiAgICAgICAgIGFwcGx5X3dvcmtxdWV1ZV9hdHRycysweDE3LzB4NTAKPiAgICAgICAg IF9fYWxsb2Nfd29ya3F1ZXVlX2tleSsweDFkOC8weDRkOQo+ICAgICAgICAgaTkxNV9nZW1fdXNl cnB0cl9pbml0X19tbXVfbm90aWZpZXIrMHgxZmIvMHgyNzAgW2k5MTVdCj4gICAgICAgICBpOTE1 X2dlbV91c2VycHRyX2lvY3RsKzB4MjIyLzB4MmMwIFtpOTE1XQo+ICAgICAgICAgZHJtX2lvY3Rs X2tlcm5lbCsweDY5LzB4YjAKPiAgICAgICAgIGRybV9pb2N0bCsweDJmOS8weDNkMAo+ICAgICAg ICAgZG9fdmZzX2lvY3RsKzB4OTQvMHg2NzAKPiAgICAgICAgIFN5U19pb2N0bCsweDQxLzB4NzAK PiAgICAgICAgIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxYy8weGIxCj4gCj4gb3RoZXIg aW5mbyB0aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcgdGhpczoKPiAKPiBDaGFpbiBleGlzdHMgb2Y6 Cj4gICAgY3B1X2hvdHBsdWdfbG9jay5yd19zZW0gLS0+ICZtbS0+bW1hcF9zZW0gLS0+ICZkZXZf cHJpdi0+bW1fbG9jawo+IAo+ICAgUG9zc2libGUgdW5zYWZlIGxvY2tpbmcgc2NlbmFyaW86Cj4g Cj4gICAgICAgICBDUFUwICAgICAgICAgICAgICAgICAgICBDUFUxCj4gICAgICAgICAtLS0tICAg ICAgICAgICAgICAgICAgICAtLS0tCj4gICAgbG9jaygmZGV2X3ByaXYtPm1tX2xvY2spOwo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jaygmbW0tPm1tYXBfc2VtKTsKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2soJmRldl9wcml2LT5tbV9sb2NrKTsKPiAg ICBsb2NrKGNwdV9ob3RwbHVnX2xvY2sucndfc2VtKTsKPiAKPiAgICoqKiBERUFETE9DSyAqKioK PiAKPiAyIGxvY2tzIGhlbGQgYnkgcHJpbWVfbW1hcC8xNTUxOgo+ICAgIzA6ICAoJm1tLT5tbWFw X3NlbSl7KysrK30sIGF0OiBbPGZmZmZmZmZmYTAxYTdiMTg+XSBpOTE1X2dlbV91c2VycHRyX2lu aXRfX21tdV9ub3RpZmllcisweDEzOC8weDI3MCBbaTkxNV0KPiAgICMxOiAgKCZkZXZfcHJpdi0+ bW1fbG9jayl7Ky4rLn0sIGF0OiBbPGZmZmZmZmZmYTAxYTdiMmE+XSBpOTE1X2dlbV91c2VycHRy X2luaXRfX21tdV9ub3RpZmllcisweDE0YS8weDI3MCBbaTkxNV0KPiAKPiBzdGFjayBiYWNrdHJh Y2U6Cj4gQ1BVOiA0IFBJRDogMTU1MSBDb21tOiBwcmltZV9tbWFwIFRhaW50ZWQ6IEcgICAgIFUg ICAgICAgICAgNC4xNC4wLXJjMS1DSS1DSV9EUk1fMzExOCsgIzEKPiBIYXJkd2FyZSBuYW1lOiBE ZWxsIEluYy4gWFBTIDgzMDAgIC8wWTJNUkcsIEJJT1MgQTA2IDEwLzE3LzIwMTEKPiBDYWxsIFRy YWNlOgo+ICAgZHVtcF9zdGFjaysweDY4LzB4OWYKPiAgIHByaW50X2NpcmN1bGFyX2J1ZysweDIz NS8weDNjMAo+ICAgPyBsb2NrZGVwX2luaXRfbWFwX2Nyb3NzbG9jaysweDIwLzB4MjAKPiAgIGNo ZWNrX3ByZXZfYWRkKzB4NDMwLzB4ODQwCj4gICBfX2xvY2tfYWNxdWlyZSsweDE0MjAvMHgxNWUw Cj4gICA/IF9fbG9ja19hY3F1aXJlKzB4MTQyMC8weDE1ZTAKPiAgID8gbG9ja2RlcF9pbml0X21h cF9jcm9zc2xvY2srMHgyMC8weDIwCj4gICBsb2NrX2FjcXVpcmUrMHhiMC8weDIwMAo+ICAgPyBh cHBseV93b3JrcXVldWVfYXR0cnMrMHgxNy8weDUwCj4gICBjcHVzX3JlYWRfbG9jaysweDNkLzB4 YjAKPiAgID8gYXBwbHlfd29ya3F1ZXVlX2F0dHJzKzB4MTcvMHg1MAo+ICAgYXBwbHlfd29ya3F1 ZXVlX2F0dHJzKzB4MTcvMHg1MAo+ICAgX19hbGxvY193b3JrcXVldWVfa2V5KzB4MWQ4LzB4NGQ5 Cj4gICA/IF9fbG9ja2RlcF9pbml0X21hcCsweDU3LzB4MWMwCj4gICBpOTE1X2dlbV91c2VycHRy X2luaXRfX21tdV9ub3RpZmllcisweDFmYi8weDI3MCBbaTkxNV0KPiAgIGk5MTVfZ2VtX3VzZXJw dHJfaW9jdGwrMHgyMjIvMHgyYzAgW2k5MTVdCj4gICA/IGk5MTVfZ2VtX3VzZXJwdHJfcmVsZWFz ZSsweDE0MC8weDE0MCBbaTkxNV0KPiAgIGRybV9pb2N0bF9rZXJuZWwrMHg2OS8weGIwCj4gICBk cm1faW9jdGwrMHgyZjkvMHgzZDAKPiAgID8gaTkxNV9nZW1fdXNlcnB0cl9yZWxlYXNlKzB4MTQw LzB4MTQwIFtpOTE1XQo+ICAgPyBfX2RvX3BhZ2VfZmF1bHQrMHgyYTQvMHg1NzAKPiAgIGRvX3Zm c19pb2N0bCsweDk0LzB4NjcwCj4gICA/IGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHg1LzB4 YjEKPiAgID8gX190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKzB4MTMvMHgyMAo+ICAgPyB0cmFjZV9o YXJkaXJxc19vbl9jYWxsZXIrMHhlMy8weDFiMAo+ICAgU3lTX2lvY3RsKzB4NDEvMHg3MAo+ICAg ZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFjLzB4YjEKPiBSSVA6IDAwMzM6MHg3ZmJiODNj Mzk1ODcKPiBSU1A6IDAwMmI6MDAwMDdmZmYxODhkYzIyOCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdf UkFYOiAwMDAwMDAwMDAwMDAwMDEwCj4gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogZmZmZmZm ZmY4MTQ5Mjk2MyBSQ1g6IDAwMDA3ZmJiODNjMzk1ODcKPiBSRFg6IDAwMDA3ZmZmMTg4ZGMyNjAg UlNJOiAwMDAwMDAwMGMwMTg2NDczIFJESTogMDAwMDAwMDAwMDAwMDAwMwo+IFJCUDogZmZmZmM5 MDAwMTQ4N2Y4OCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwN2ZmZjE4OGRjMmFjCj4g UjEwOiAwMDAwN2ZiYjgzZWZjYjU4IFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAw MDAwMDAwMDAKPiBSMTM6IDAwMDAwMDAwMDAwMDAwMDMgUjE0OiAwMDAwMDAwMGMwMTg2NDczIFIx NTogMDAwMDdmZmYxODhkYzJhYwo+ICAgPyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2srMHgxMy8w eDIwCj4gCj4gdjI6IFNldCByZXQgY29ycmVjdGx5IHdoZW4gd2UgcmFjZWQgd2l0aCBhbm90aGVy IHRocmVhZC4KPiAKPiB2MzogVXNlIENocmlzJyBkaWZmLiBBdHRhY2ggdGhlIHJpZ2h0IGxvY2tk ZXAgc3BsYXQuCj4gCj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENjOiBK b29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFBl dGVyIFppamxzdHJhIDxwZXRlcnpAaW5mcmFkZWFkLm9yZz4KPiBDYzogVGhvbWFzIEdsZWl4bmVy IDx0Z2x4QGxpbnV0cm9uaXguZGU+Cj4gQ2M6IFNhc2hhIExldmluIDxhbGV4YW5kZXIubGV2aW5A dmVyaXpvbi5jb20+Cj4gQ2M6IE1hcnRhIExvZnN0ZWR0IDxtYXJ0YS5sb2ZzdGVkdEBpbnRlbC5j b20+Cj4gQ2M6IFRlanVuIEhlbyA8dGpAa2VybmVsLm9yZz4KPiBSZWZlcmVuY2VzOiBodHRwczov L2ludGVsLWdmeC1jaS4wMS5vcmcvdHJlZS9kcm0tdGlwL0NJX0RSTV8zMTgwL3NoYXJkLWhzdzMv aWd0QHByaW1lX21tYXBAdGVzdF91c2VycHRyLmh0bWwKPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdz LmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyOTM5Cj4gU2lnbmVkLW9mZi1ieTog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgfCAzNSArKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxNSBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fdXNlcnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCj4g aW5kZXggMmQ0OTk2ZGU3MzMxLi5mOWIzNDA2NDAxYWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fdXNlcnB0ci5jCj4gQEAgLTE2NCw3ICsxNjQsNiBAQCBzdGF0aWMgc3RydWN0 IGk5MTVfbW11X25vdGlmaWVyICoKPiAgIGk5MTVfbW11X25vdGlmaWVyX2NyZWF0ZShzdHJ1Y3Qg bW1fc3RydWN0ICptbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaTkxNV9tbXVfbm90aWZpZXIgKm1uOwo+ IC0JaW50IHJldDsKPiAgIAo+ICAgCW1uID0ga21hbGxvYyhzaXplb2YoKm1uKSwgR0ZQX0tFUk5F TCk7Cj4gICAJaWYgKG1uID09IE5VTEwpCj4gQEAgLTE3OSwxNCArMTc4LDYgQEAgaTkxNV9tbXVf bm90aWZpZXJfY3JlYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQo+ICAgCQlyZXR1cm4gRVJSX1BU UigtRU5PTUVNKTsKPiAgIAl9Cj4gICAKPiAtCSAvKiBQcm90ZWN0ZWQgYnkgbW1hcF9zZW0gKHdy aXRlLWxvY2spICovCj4gLQlyZXQgPSBfX21tdV9ub3RpZmllcl9yZWdpc3RlcigmbW4tPm1uLCBt bSk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJZGVzdHJveV93b3JrcXVldWUobW4tPndxKTsKPiAtCQlr ZnJlZShtbik7Cj4gLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAtCX0KPiAtCj4gICAJcmV0dXJu IG1uOwo+ICAgfQo+ICAgCj4gQEAgLTIxMCwyMyArMjAxLDM3IEBAIGk5MTVfZ2VtX3VzZXJwdHJf cmVsZWFzZV9fbW11X25vdGlmaWVyKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4g ICBzdGF0aWMgc3RydWN0IGk5MTVfbW11X25vdGlmaWVyICoKPiAgIGk5MTVfbW11X25vdGlmaWVy X2ZpbmQoc3RydWN0IGk5MTVfbW1fc3RydWN0ICptbSkKPiAgIHsKPiAtCXN0cnVjdCBpOTE1X21t dV9ub3RpZmllciAqbW4gPSBtbS0+bW47Cj4gKwlzdHJ1Y3QgaTkxNV9tbXVfbm90aWZpZXIgKm1u Owo+ICsJaW50IGVycjsKPiAgIAo+ICAgCW1uID0gbW0tPm1uOwo+ICAgCWlmIChtbikKPiAgIAkJ cmV0dXJuIG1uOwo+ICAgCj4gKwltbiA9IGk5MTVfbW11X25vdGlmaWVyX2NyZWF0ZShtbS0+bW0p Owo+ICsJaWYgKElTX0VSUihtbikpCj4gKwkJcmV0dXJuIG1uOwoKU3RyaWN0bHkgc3BlYWtpbmcg d2UgZG9uJ3Qgd2FudCB0byBmYWlsIGp1c3QgeWV0LCBvbmx5IGl0IHdlIGFjdHVhbGx5IApuZWVk ZWQgYSBuZXcgbm90aWZpZXIgYW5kIHdlIGZhaWxlZCB0byBjcmVhdGUgaXQuCgo+ICsKPiArCWVy ciA9IDA7Cj4gICAJZG93bl93cml0ZSgmbW0tPm1tLT5tbWFwX3NlbSk7Cj4gICAJbXV0ZXhfbG9j aygmbW0tPmk5MTUtPm1tX2xvY2spOwo+IC0JaWYgKChtbiA9IG1tLT5tbikgPT0gTlVMTCkgewo+ IC0JCW1uID0gaTkxNV9tbXVfbm90aWZpZXJfY3JlYXRlKG1tLT5tbSk7Cj4gLQkJaWYgKCFJU19F UlIobW4pKQo+IC0JCQltbS0+bW4gPSBtbjsKPiArCWlmIChtbS0+bW4gPT0gTlVMTCkgewo+ICsJ CS8qIFByb3RlY3RlZCBieSBtbWFwX3NlbSAod3JpdGUtbG9jaykgKi8KPiArCQllcnIgPSBfX21t dV9ub3RpZmllcl9yZWdpc3RlcigmbW4tPm1uLCBtbS0+bW0pOwo+ICsJCWlmICghZXJyKSB7Cj4g KwkJCS8qIFByb3RlY3RlZCBieSBtbV9sb2NrICovCj4gKwkJCW1tLT5tbiA9IGZldGNoX2FuZF96 ZXJvKCZtbik7Cj4gKwkJfQo+ICAgCX0KPiAgIAltdXRleF91bmxvY2soJm1tLT5pOTE1LT5tbV9s b2NrKTsKPiAgIAl1cF93cml0ZSgmbW0tPm1tLT5tbWFwX3NlbSk7Cj4gICAKPiAtCXJldHVybiBt bjsKPiArCWlmIChtbikgewo+ICsJCWRlc3Ryb3lfd29ya3F1ZXVlKG1uLT53cSk7Cj4gKwkJa2Zy ZWUobW4pOwo+ICsJfQo+ICsKPiArCXJldHVybiBlcnIgPyBFUlJfUFRSKGVycikgOiBtbS0+bW47 Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQKPiAKCk90aGVyd2lzZSBsb29rcyBnb29kIHRvIG1l LgoKSSB3b3VsZCBhbHNvIHB1dCBhIG5vdGUgaW4gdGhlIGNvbW1pdCBvbiBob3cgd29ya2luZyBh cm91bmQgdGhlIGxvY2tpbmcgCmlzc3VlIGlzIGFsc28gYmVuZWZpY2lhbCB0byBwZXJmb3JtYW5j ZSB3aXRoIG1vdmluZyB0aGUgYWxsb2NhdGlvbiBzdGVwIApvdXRzaWRlIHRoZSBtbWFwX3NlbS4K ClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==