From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH] kernfs: Move faulting copy_user operations outside of the mutex Date: Thu, 24 Mar 2016 17:01:37 +0200 Message-ID: <1458831697.7860.26.camel@linux.intel.com> References: <1458830280-30446-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 80F3D6E03E for ; Thu, 24 Mar 2016 15:01:06 +0000 (UTC) In-Reply-To: <1458830280-30446-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTYtMDMtMjQgYXQgMTQ6MzggKzAwMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBB IGZhdWx0IGluIGEgdXNlciBwcm92aWRlZCBidWZmZXIgbWF5IGxlYWQgYW55d2hlcmUsIGFuZCBs b2NrZGVwIHdhcm5zCj4gdGhhdCB3ZSBoYXZlIGEgcG90ZW50aWFsIGRlYWRsb2NrIGJldHdlZW4g dGhlIG1tLT5tbWFwX3NlbSBhbmQgdGhlCj4ga2VybmZzIGZpbGUgbXV0ZXg6Cj4gCj4gW8KgwqDC oDgyLjgxMTcwMl0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Cj4gW8KgwqDCoDgyLjgxMTcwNV0gWyBJTkZPOiBwb3NzaWJsZSBjaXJjdWxhciBs b2NraW5nIGRlcGVuZGVuY3kgZGV0ZWN0ZWQgXQo+IFvCoMKgwqA4Mi44MTE3MDldIDQuNS4wLXJj NC1nZnhiZW5jaCsgIzEgTm90IHRhaW50ZWQKPiBbwqDCoMKgODIuODExNzExXSAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gW8KgwqDCoDgy LjgxMTcxNF0ga21zX3NldG1vZGUvNTg1OSBpcyB0cnlpbmcgdG8gYWNxdWlyZSBsb2NrOgo+IFvC oMKgwqA4Mi44MTE3MTddwqDCoCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpeysuKy4rLn0sIGF0OiBbXSBk cm1fZ2VtX21tYXArMHgxYTEvMHgyNzAKPiBbwqDCoMKgODIuODExNzMxXQo+IGJ1dCB0YXNrIGlz IGFscmVhZHkgaG9sZGluZyBsb2NrOgo+IFvCoMKgwqA4Mi44MTE3MzRdwqDCoCgmbW0tPm1tYXBf c2VtKXsrKysrKyt9LCBhdDogW10gdm1fbW1hcF9wZ29mZisweDQ0LzB4YTAKPiBbwqDCoMKgODIu ODExNzQ1XQo+IHdoaWNoIGxvY2sgYWxyZWFkeSBkZXBlbmRzIG9uIHRoZSBuZXcgbG9jay4KPiAK PiBbwqDCoMKgODIuODExNzQ5XQo+IHRoZSBleGlzdGluZyBkZXBlbmRlbmN5IGNoYWluIChpbiBy ZXZlcnNlIG9yZGVyKSBpczoKPiBbwqDCoMKgODIuODExNzUyXQo+IC0+ICMzICgmbW0tPm1tYXBf c2VtKXsrKysrKyt9Ogo+IFvCoMKgwqA4Mi44MTE3NjFdwqDCoMKgwqDCoMKgwqDCoFtdIGxvY2tf YWNxdWlyZSsweGMzLzB4MWQwCj4gW8KgwqDCoDgyLjgxMTc2Nl3CoMKgwqDCoMKgwqDCoMKgW10g X19taWdodF9mYXVsdCsweDc1LzB4YTAKPiBbwqDCoMKgODIuODExNzcxXcKgwqDCoMKgwqDCoMKg wqBbXSBrZXJuZnNfZm9wX3dyaXRlKzB4OGEvMHgxODAKPiBbwqDCoMKgODIuODExNzg3XcKgwqDC oMKgwqDCoMKgwqBbXSBfX3Zmc193cml0ZSsweDIzLzB4ZTAKPiBbwqDCoMKgODIuODExNzkyXcKg wqDCoMKgwqDCoMKgwqBbXSB2ZnNfd3JpdGUrMHhhNC8weDE5MAo+IFvCoMKgwqA4Mi44MTE3OTdd wqDCoMKgwqDCoMKgwqDCoFtdIFN5U193cml0ZSsweDQ0LzB4YjAKPiBbwqDCoMKgODIuODExODAx XcKgwqDCoMKgwqDCoMKgwqBbXSBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MTYvMHg3Mwo+ IFvCoMKgwqA4Mi44MTE4MDddCj4gLT4gIzIgKHNfYWN0aXZlIzYpeysrKysuK306Cj4gW8KgwqDC oDgyLjgxMTgxNF3CoMKgwqDCoMKgwqDCoMKgW10gbG9ja19hY3F1aXJlKzB4YzMvMHgxZDAKPiBb wqDCoMKgODIuODExODE5XcKgwqDCoMKgwqDCoMKgwqBbXSBfX2tlcm5mc19yZW1vdmUrMHgyMTAv MHgyZjAKPiBbwqDCoMKgODIuODExODIzXcKgwqDCoMKgwqDCoMKgwqBbXSBrZXJuZnNfcmVtb3Zl X2J5X25hbWVfbnMrMHg0MC8weGEwCj4gW8KgwqDCoDgyLjgxMTgyOF3CoMKgwqDCoMKgwqDCoMKg W10gc3lzZnNfcmVtb3ZlX2ZpbGVfbnMrMHgxMC8weDIwCj4gW8KgwqDCoDgyLjgxMTgzMl3CoMKg wqDCoMKgwqDCoMKgW10gZGV2aWNlX2RlbCsweDEyNC8weDI1MAo+IFvCoMKgwqA4Mi44MTE4Mzdd wqDCoMKgwqDCoMKgwqDCoFtdIGRldmljZV91bnJlZ2lzdGVyKzB4MTkvMHg2MAo+IFvCoMKgwqA4 Mi44MTE4NDFdwqDCoMKgwqDCoMKgwqDCoFtdIGNwdV9jYWNoZV9zeXNmc19leGl0KzB4NTEvMHhi MAo+IFvCoMKgwqA4Mi44MTE4NDZdwqDCoMKgwqDCoMKgwqDCoFtdIGNhY2hlaW5mb19jcHVfY2Fs bGJhY2srMHgzOC8weDcwCj4gW8KgwqDCoDgyLjgxMTg1MV3CoMKgwqDCoMKgwqDCoMKgW10gbm90 aWZpZXJfY2FsbF9jaGFpbisweDM5LzB4YTAKPiBbwqDCoMKgODIuODExODU2XcKgwqDCoMKgwqDC oMKgwqBbXSBfX3Jhd19ub3RpZmllcl9jYWxsX2NoYWluKzB4OS8weDEwCj4gW8KgwqDCoDgyLjgx MTg2MF3CoMKgwqDCoMKgwqDCoMKgW10gY3B1X25vdGlmeSsweDFlLzB4NDAKPiBbwqDCoMKgODIu ODExODY1XcKgwqDCoMKgwqDCoMKgwqBbXSBjcHVfbm90aWZ5X25vZmFpbCsweDkvMHgyMAo+IFvC oMKgwqA4Mi44MTE4NjldwqDCoMKgwqDCoMKgwqDCoFtdIF9jcHVfZG93bisweDIzMy8weDM0MAo+ IFvCoMKgwqA4Mi44MTE4NzRdwqDCoMKgwqDCoMKgwqDCoFtdIGRpc2FibGVfbm9uYm9vdF9jcHVz KzB4YzkvMHgzNTAKPiBbwqDCoMKgODIuODExODc4XcKgwqDCoMKgwqDCoMKgwqBbXSBzdXNwZW5k X2RldmljZXNfYW5kX2VudGVyKzB4NWExLzB4YjUwCj4gW8KgwqDCoDgyLjgxMTg4M13CoMKgwqDC oMKgwqDCoMKgW10gcG1fc3VzcGVuZCsweDU0My8weDhkMAo+IFvCoMKgwqA4Mi44MTE4ODhdwqDC oMKgwqDCoMKgwqDCoFtdIHN0YXRlX3N0b3JlKzB4NzcvMHhlMAo+IFvCoMKgwqA4Mi44MTE4OTJd wqDCoMKgwqDCoMKgwqDCoFtdIGtvYmpfYXR0cl9zdG9yZSsweGYvMHgyMAo+IFvCoMKgwqA4Mi44 MTE4OTddwqDCoMKgwqDCoMKgwqDCoFtdIHN5c2ZzX2tmX3dyaXRlKzB4NDAvMHg1MAo+IFvCoMKg wqA4Mi44MTE5MDJdwqDCoMKgwqDCoMKgwqDCoFtdIGtlcm5mc19mb3Bfd3JpdGUrMHgxM2MvMHgx ODAKPiBbwqDCoMKgODIuODExOTA2XcKgwqDCoMKgwqDCoMKgwqBbXSBfX3Zmc193cml0ZSsweDIz LzB4ZTAKPiBbwqDCoMKgODIuODExOTEwXcKgwqDCoMKgwqDCoMKgwqBbXSB2ZnNfd3JpdGUrMHhh NC8weDE5MAo+IFvCoMKgwqA4Mi44MTE5MTRdwqDCoMKgwqDCoMKgwqDCoFtdIFN5U193cml0ZSsw eDQ0LzB4YjAKPiBbwqDCoMKgODIuODExOTE4XcKgwqDCoMKgwqDCoMKgwqBbXSBlbnRyeV9TWVND QUxMXzY0X2Zhc3RwYXRoKzB4MTYvMHg3Mwo+IFvCoMKgwqA4Mi44MTE5MjNdCj4gLT4gIzEgKGNw dV9ob3RwbHVnLmxvY2speysuKy4rLn06Cj4gW8KgwqDCoDgyLjgxMTkyOV3CoMKgwqDCoMKgwqDC oMKgW10gbG9ja19hY3F1aXJlKzB4YzMvMHgxZDAKPiBbwqDCoMKgODIuODExOTMzXcKgwqDCoMKg wqDCoMKgwqBbXSBtdXRleF9sb2NrX25lc3RlZCsweDYyLzB4M2IwCj4gW8KgwqDCoDgyLjgxMTk0 MF3CoMKgwqDCoMKgwqDCoMKgW10gZ2V0X29ubGluZV9jcHVzKzB4NjEvMHg4MAo+IFvCoMKgwqA4 Mi44MTE5NDRdwqDCoMKgwqDCoMKgwqDCoFtdIHN0b3BfbWFjaGluZSsweDFiLzB4ZTAKPiBbwqDC oMKgODIuODExOTQ5XcKgwqDCoMKgwqDCoMKgwqBbXSBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXNf X0JLTCsweDJkLzB4MzAgW2k5MTVdCj4gW8KgwqDCoDgyLjgxMjAwOV3CoMKgwqDCoMKgwqDCoMKg W10gZ2d0dF9iaW5kX3ZtYSsweDQ2LzB4NzAgW2k5MTVdCj4gW8KgwqDCoDgyLjgxMjA0NV3CoMKg wqDCoMKgwqDCoMKgW10gaTkxNV92bWFfYmluZCsweDE0MC8weDI5MCBbaTkxNV0KPiBbwqDCoMKg ODIuODEyMDgxXcKgwqDCoMKgwqDCoMKgwqBbXSBpOTE1X2dlbV9vYmplY3RfZG9fcGluKzB4ODk5 LzB4YjAwIFtpOTE1XQo+IFvCoMKgwqA4Mi44MTIxMTddwqDCoMKgwqDCoMKgwqDCoFtdIGk5MTVf Z2VtX29iamVjdF9waW4rMHgzNS8weDQwIFtpOTE1XQo+IFvCoMKgwqA4Mi44MTIxNTRdwqDCoMKg wqDCoMKgwqDCoFtdIGludGVsX2luaXRfcGlwZV9jb250cm9sKzB4YmUvMHgyMTAgW2k5MTVdCj4g W8KgwqDCoDgyLjgxMjE5Ml3CoMKgwqDCoMKgwqDCoMKgW10gaW50ZWxfbG9naWNhbF9yaW5nc19p bml0KzB4ZTIvMHhkZTAgW2k5MTVdCj4gW8KgwqDCoDgyLjgxMjIzMl3CoMKgwqDCoMKgwqDCoMKg W10gaTkxNV9nZW1faW5pdCsweGYzLzB4MTMwIFtpOTE1XQo+IFvCoMKgwqA4Mi44MTIyNzhdwqDC oMKgwqDCoMKgwqDCoFtdIGk5MTVfZHJpdmVyX2xvYWQrMHhmMmQvMHgxNzcwIFtpOTE1XQo+IFvC oMKgwqA4Mi44MTIzMThdwqDCoMKgwqDCoMKgwqDCoFtdIGRybV9kZXZfcmVnaXN0ZXIrMHhhNC8w eGIwCj4gW8KgwqDCoDgyLjgxMjMyM13CoMKgwqDCoMKgwqDCoMKgW10gZHJtX2dldF9wY2lfZGV2 KzB4Y2UvMHgxZTAKPiBbwqDCoMKgODIuODEyMzI4XcKgwqDCoMKgwqDCoMKgwqBbXSBpOTE1X3Bj aV9wcm9iZSsweDJmLzB4NTAgW2k5MTVdCj4gW8KgwqDCoDgyLjgxMjM2MF3CoMKgwqDCoMKgwqDC oMKgW10gcGNpX2RldmljZV9wcm9iZSsweDg3LzB4ZjAKPiBbwqDCoMKgODIuODEyMzY2XcKgwqDC oMKgwqDCoMKgwqBbXSBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MjI5LzB4NDUwCj4gW8KgwqDCoDgy LjgxMjM3MV3CoMKgwqDCoMKgwqDCoMKgW10gX19kcml2ZXJfYXR0YWNoKzB4ODMvMHg5MAo+IFvC oMKgwqA4Mi44MTIzNzVdwqDCoMKgwqDCoMKgwqDCoFtdIGJ1c19mb3JfZWFjaF9kZXYrMHg2MS8w eGEwCj4gW8KgwqDCoDgyLjgxMjM4MF3CoMKgwqDCoMKgwqDCoMKgW10gZHJpdmVyX2F0dGFjaCsw eDE5LzB4MjAKPiBbwqDCoMKgODIuODEyMzg0XcKgwqDCoMKgwqDCoMKgwqBbXSBidXNfYWRkX2Ry aXZlcisweDFlZi8weDI5MAo+IFvCoMKgwqA4Mi44MTIzODhdwqDCoMKgwqDCoMKgwqDCoFtdIGRy aXZlcl9yZWdpc3RlcisweDViLzB4ZTAKPiBbwqDCoMKgODIuODEyMzkzXcKgwqDCoMKgwqDCoMKg wqBbXSBfX3BjaV9yZWdpc3Rlcl9kcml2ZXIrMHg1Yi8weDYwCj4gW8KgwqDCoDgyLjgxMjM5OF3C oMKgwqDCoMKgwqDCoMKgW10gZHJtX3BjaV9pbml0KzB4ZDYvMHgxMDAKPiBbwqDCoMKgODIuODEy NDAyXcKgwqDCoMKgwqDCoMKgwqBbXSAweGZmZmZmZmZmYTAyN2MwOTQKPiBbwqDCoMKgODIuODEy NDA2XcKgwqDCoMKgwqDCoMKgwqBbXSBkb19vbmVfaW5pdGNhbGwrMHhhZS8weDFkMAo+IFvCoMKg wqA4Mi44MTI0MTJdwqDCoMKgwqDCoMKgwqDCoFtdIGRvX2luaXRfbW9kdWxlKzB4NWIvMHgxY2IK PiBbwqDCoMKgODIuODEyNDE3XcKgwqDCoMKgwqDCoMKgwqBbXSBsb2FkX21vZHVsZSsweDFjMjAv MHgyNDgwCj4gW8KgwqDCoDgyLjgxMjQyMl3CoMKgwqDCoMKgwqDCoMKgW10gU3lTX2Zpbml0X21v ZHVsZSsweDdlLzB4YTAKPiBbwqDCoMKgODIuODEyNDI4XcKgwqDCoMKgwqDCoMKgwqBbXSBlbnRy eV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MTYvMHg3Mwo+IFvCoMKgwqA4Mi44MTI0MzNdCj4gLT4g IzAgKCZkZXYtPnN0cnVjdF9tdXRleCl7Ky4rLisufToKPiBbwqDCoMKgODIuODEyNDM5XcKgwqDC oMKgwqDCoMKgwqBbXSBfX2xvY2tfYWNxdWlyZSsweDFmYzkvMHgyMGYwCj4gW8KgwqDCoDgyLjgx MjQ0M13CoMKgwqDCoMKgwqDCoMKgW10gbG9ja19hY3F1aXJlKzB4YzMvMHgxZDAKPiBbwqDCoMKg ODIuODEyNDU2XcKgwqDCoMKgwqDCoMKgwqBbXSBkcm1fZ2VtX21tYXArMHgxYzcvMHgyNzAKPiBb wqDCoMKgODIuODEyNDYwXcKgwqDCoMKgwqDCoMKgwqBbXSBtbWFwX3JlZ2lvbisweDMzNC8weDU4 MAo+IFvCoMKgwqA4Mi44MTI0NjZdwqDCoMKgwqDCoMKgwqDCoFtdIGRvX21tYXArMHgzNjQvMHg0 MTAKPiBbwqDCoMKgODIuODEyNDcwXcKgwqDCoMKgwqDCoMKgwqBbXSB2bV9tbWFwX3Bnb2ZmKzB4 NmQvMHhhMAo+IFvCoMKgwqA4Mi44MTI0NzRdwqDCoMKgwqDCoMKgwqDCoFtdIFN5U19tbWFwX3Bn b2ZmKzB4MTg0LzB4MjIwCj4gW8KgwqDCoDgyLjgxMjQ3OV3CoMKgwqDCoMKgwqDCoMKgW10gU3lT X21tYXArMHgxZC8weDIwCj4gW8KgwqDCoDgyLjgxMjQ4NF3CoMKgwqDCoMKgwqDCoMKgW10gZW50 cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDE2LzB4NzMKPiBbwqDCoMKgODIuODEyNDg5XQo+IG90 aGVyIGluZm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6Cj4gCj4gW8KgwqDCoDgyLjgx MjQ5M10gQ2hhaW4gZXhpc3RzIG9mOgo+IMKgICZkZXYtPnN0cnVjdF9tdXRleCAtLT4gc19hY3Rp dmUjNiAtLT4gJm1tLT5tbWFwX3NlbQo+IAo+IFvCoMKgwqA4Mi44MTI1MDJdwqDCoFBvc3NpYmxl IHVuc2FmZSBsb2NraW5nIHNjZW5hcmlvOgo+IAo+IFvCoMKgwqA4Mi44MTI1MDZdwqDCoMKgwqDC oMKgwqDCoENQVTDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgQ1BVMQo+ IFvCoMKgwqA4Mi44MTI1MDhdwqDCoMKgwqDCoMKgwqDCoC0tLS3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgLS0tLQo+IFvCoMKgwqA4Mi44MTI1MTBdwqDCoMKgbG9jaygm bW0tPm1tYXBfc2VtKTsKPiBbwqDCoMKgODIuODEyNTE0XcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsb2NrKHNfYWN0aXZlIzYp Owo+IFvCoMKgwqA4Mi44MTI1MTldwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvY2soJm1tLT5tbWFwX3NlbSk7Cj4gW8KgwqDC oDgyLjgxMjUyMl3CoMKgwqBsb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gW8KgwqDCoDgyLjgx MjUyNl0KPiDCoCoqKiBERUFETE9DSyAqKioKPiAKPiBbwqDCoMKgODIuODEyNTMxXSAxIGxvY2sg aGVsZCBieSBrbXNfc2V0bW9kZS81ODU5Ogo+IFvCoMKgwqA4Mi44MTI1MzNdwqDCoCMwOsKgwqAo Jm1tLT5tbWFwX3NlbSl7KysrKysrfSwgYXQ6IFtdIHZtX21tYXBfcGdvZmYrMHg0NC8weGEwCj4g W8KgwqDCoDgyLjgxMjU0MV0KPiBzdGFjayBiYWNrdHJhY2U6Cj4gW8KgwqDCoDgyLjgxMjU0N10g Q1BVOiAwIFBJRDogNTg1OSBDb21tOiBrbXNfc2V0bW9kZSBOb3QgdGFpbnRlZCA0LjUuMC1yYzQt Z2Z4YmVuY2grICMxCj4gW8KgwqDCoDgyLjgxMjU1MF0gSGFyZHdhcmUgbmFtZTrCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvTlVDNUNQWUIsIEJJT1MgUFlCU1dDRUwuODZBLjAw NDAuMjAxNS4wODE0LjEzNTMgMDgvMTQvMjAxNQo+IFvCoMKgwqA4Mi44MTI1NTNdwqDCoDAwMDAw MDAwMDAwMDAwMDAgZmZmZjg4MDA3OTQwN2JmMCBmZmZmZmZmZjgxM2Y4NTA1IGZmZmZmZmZmODI1 ZmIyNzAKPiBbwqDCoMKgODIuODEyNTYwXcKgwqBmZmZmZmZmZjgyNWM0MTkwIGZmZmY4ODAwNzk0 MDdjMzAgZmZmZmZmZmY4MTBjODRhYyBmZmZmODgwMDc5NDA3YzkwCj4gW8KgwqDCoDgyLjgxMjU2 Nl3CoMKgZmZmZjg4MDA3OTdlZDMyOCBmZmZmODgwMDc5N2VjYjAwIDAwMDAwMDAwMDAwMDAwMDEg ZmZmZjg4MDA3OTdlZDM1MAo+IFvCoMKgwqA4Mi44MTI1NzNdIENhbGwgVHJhY2U6Cj4gW8KgwqDC oDgyLjgxMjU3OF3CoMKgW10gZHVtcF9zdGFjaysweDY3LzB4OTIKPiBbwqDCoMKgODIuODEyNTgy XcKgwqBbXSBwcmludF9jaXJjdWxhcl9idWcrMHgxZmMvMHgzMTAKPiBbwqDCoMKgODIuODEyNTg2 XcKgwqBbXSBfX2xvY2tfYWNxdWlyZSsweDFmYzkvMHgyMGYwCj4gW8KgwqDCoDgyLjgxMjU5MF3C oMKgW10gbG9ja19hY3F1aXJlKzB4YzMvMHgxZDAKPiBbwqDCoMKgODIuODEyNTk0XcKgwqBbXSA/ IGRybV9nZW1fbW1hcCsweDFhMS8weDI3MAo+IFvCoMKgwqA4Mi44MTI1OTldwqDCoFtdIGRybV9n ZW1fbW1hcCsweDFjNy8weDI3MAo+IFvCoMKgwqA4Mi44MTI2MDNdwqDCoFtdID8gZHJtX2dlbV9t bWFwKzB4MWExLzB4MjcwCj4gW8KgwqDCoDgyLjgxMjYwOF3CoMKgW10gbW1hcF9yZWdpb24rMHgz MzQvMHg1ODAKPiBbwqDCoMKgODIuODEyNjEyXcKgwqBbXSBkb19tbWFwKzB4MzY0LzB4NDEwCj4g W8KgwqDCoDgyLjgxMjYxNl3CoMKgW10gdm1fbW1hcF9wZ29mZisweDZkLzB4YTAKPiBbwqDCoMKg ODIuODEyNjI5XcKgwqBbXSBTeVNfbW1hcF9wZ29mZisweDE4NC8weDIyMAo+IFvCoMKgwqA4Mi44 MTI2MzNdwqDCoFtdIFN5U19tbWFwKzB4MWQvMHgyMAo+IFvCoMKgwqA4Mi44MTI2MzddwqDCoFtd IGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxNi8weDczCj4gCj4gSGlnaGx5IHVubGlrZWx5 IHRob3VnaCB0aGlzIHNjZW5hcmlvIGlzLCB3ZSBjYW4gYXZvaWQgdGhlIGlzc3VlIGVudGlyZWx5 Cj4gYnkgbW92aW5nIHRoZSBjb3B5IG9wZXJhdGlvbiBmcm9tIG91dCB1bmRlciB0aGUgbXV0ZXgg YnkgYWx3YXlzIGFsbG9jYXRpbmcKPiBhIHRlbXBvcmFyeSBidWZmZXIgZm9yIHRoZSBvcGVyYXRp b24gKHJhdGhlciB0aGFuIHJldXNlIHRoZSBwcmVhbGxvY2F0ZWQKPiBidWYgd2hpY2ggcmVxdWly ZXMgdGhlIG11dGV4IGZvciBzZXJpYWxpc2F0aW9uKS4KPiAKPiBUaGUgbG9ja2VkIHNlY3Rpb24g d2FzIGV4dGVuZGVkIGJ5IHRoZSBhZGRpdGlvbiBvZiB0aGUgcHJlYWxsb2NhdGVkIGJ1Zgo+IHRv IHNwZWVkIHVwIG1kIHVzZXIgb3BlcmF0aW9ucyBpbgo+IAo+IGNvbW1pdCAyYjc1ODY5YmJhNjc2 YzI0OGQ4ZDI1YWU2ZDJiZDkyMjFkZmZmZGI2Cj4gQXV0aG9yOiBOZWlsQnJvd24gPG5laWxiQHN1 c2UuZGU+Cj4gRGF0ZTrCoMKgwqBNb24gT2N0IDEzIDE2OjQxOjI4IDIwMTQgKzExMDAKPiAKPiDC oMKgwqDCoHN5c2ZzL2tlcm5mczogYWxsb3cgYXR0cmlidXRlcyB0byByZXF1ZXN0IHdyaXRlIGJ1 ZmZlciBiZSBwcmUtYWxsb2NhdGVkLgo+IAo+IFJlcG9ydGVkLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3Mu ZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05NDM1MAo+IFNpZ25lZC1vZmYtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CgpUaGlzIGxvb2tzIHByZXR0eSBtdWNo IGxpa2Ugd2UgZGlzY3Vzc2VkLCBzbzoKClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpv b25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cgo+IElnbm9yZS1DYzogVGVqdW4gSGVvIDx0 akBrZXJuZWwub3JnPgo+IElnbm9yZS1DYzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGlu dXhmb3VuZGF0aW9uLm9yZz4KPiBJZ25vcmUtQ2M6IE5laWxCcm93biA8bmVpbGJAc3VzZS5kZT4K PiAtLS0KPiDCoGZzL2tlcm5mcy9maWxlLmPCoMKgwqDCoMKgwqDCoHwgNTEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiDCoGluY2x1ZGUvbGludXgv a2VybmZzLmggfMKgwqAxICsKPiDCoDIgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwg MjIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2ZzL2tlcm5mcy9maWxlLmMgYi9mcy9r ZXJuZnMvZmlsZS5jCj4gaW5kZXggNzI0NzI1MmVlOWIxLi5lMTU3NDAwOGFkYzkgMTAwNjQ0Cj4g LS0tIGEvZnMva2VybmZzL2ZpbGUuYwo+ICsrKyBiL2ZzL2tlcm5mcy9maWxlLmMKPiBAQCAtMTkw LDE1ICsxOTAsMTYgQEAgc3RhdGljIHNzaXplX3Qga2VybmZzX2ZpbGVfZGlyZWN0X3JlYWQoc3Ry dWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAo+IMKgCWNoYXIgKmJ1ZjsKPiDCoAo+IMKgCWJ1ZiA9 IG9mLT5wcmVhbGxvY19idWY7Cj4gLQlpZiAoIWJ1ZikKPiArCWlmIChidWYpCj4gKwkJbXV0ZXhf bG9jaygmb2YtPnByZWFsbG9jX211dGV4KTsKPiArCWVsc2UKPiDCoAkJYnVmID0ga21hbGxvYyhs ZW4sIEdGUF9LRVJORUwpOwo+IMKgCWlmICghYnVmKQo+IMKgCQlyZXR1cm4gLUVOT01FTTsKPiDC oAo+IMKgCS8qCj4gwqAJwqAqIEBvZi0+bXV0ZXggbmVzdHMgb3V0c2lkZSBhY3RpdmUgcmVmIGFu ZCBpcyB1c2VkIGJvdGggdG8gZW5zdXJlIHRoYXQKPiAtCcKgKiB0aGUgb3BzIGFyZW4ndCBjYWxs ZWQgY29uY3VycmVudGx5IGZvciB0aGUgc2FtZSBvcGVuIGZpbGUsIGFuZAo+IC0JwqAqIHRvIHBy b3ZpZGUgZXhjbHVzaXZlIGFjY2VzcyB0byAtPnByZWFsbG9jX2J1ZiAod2hlbiB0aGF0IGV4aXN0 cykuCj4gKwnCoCogdGhlIG9wcyBhcmVuJ3QgY2FsbGVkIGNvbmN1cnJlbnRseSBmb3IgdGhlIHNh bWUgb3BlbiBmaWxlLgo+IMKgCcKgKi8KPiDCoAltdXRleF9sb2NrKCZvZi0+bXV0ZXgpOwo+IMKg CWlmICgha2VybmZzX2dldF9hY3RpdmUob2YtPmtuKSkgewo+IEBAIC0yMTQsMjEgKzIxNSwyMyBA QCBzdGF0aWMgc3NpemVfdCBrZXJuZnNfZmlsZV9kaXJlY3RfcmVhZChzdHJ1Y3Qga2VybmZzX29w ZW5fZmlsZSAqb2YsCj4gwqAJZWxzZQo+IMKgCQlsZW4gPSAtRUlOVkFMOwo+IMKgCj4gKwlrZXJu ZnNfcHV0X2FjdGl2ZShvZi0+a24pOwo+ICsJbXV0ZXhfdW5sb2NrKCZvZi0+bXV0ZXgpOwo+ICsK PiDCoAlpZiAobGVuIDwgMCkKPiAtCQlnb3RvIG91dF91bmxvY2s7Cj4gKwkJZ290byBvdXRfZnJl ZTsKPiDCoAo+IMKgCWlmIChjb3B5X3RvX3VzZXIodXNlcl9idWYsIGJ1ZiwgbGVuKSkgewo+IMKg CQlsZW4gPSAtRUZBVUxUOwo+IC0JCWdvdG8gb3V0X3VubG9jazsKPiArCQlnb3RvIG91dF9mcmVl Owo+IMKgCX0KPiDCoAo+IMKgCSpwcG9zICs9IGxlbjsKPiDCoAo+IC0gb3V0X3VubG9jazoKPiAt CWtlcm5mc19wdXRfYWN0aXZlKG9mLT5rbik7Cj4gLQltdXRleF91bmxvY2soJm9mLT5tdXRleCk7 Cj4gwqAgb3V0X2ZyZWU6Cj4gLQlpZiAoYnVmICE9IG9mLT5wcmVhbGxvY19idWYpCj4gKwlpZiAo YnVmID09IG9mLT5wcmVhbGxvY19idWYpCj4gKwkJbXV0ZXhfdW5sb2NrKCZvZi0+cHJlYWxsb2Nf bXV0ZXgpOwo+ICsJZWxzZQo+IMKgCQlrZnJlZShidWYpOwo+IMKgCXJldHVybiBsZW47Cj4gwqB9 Cj4gQEAgLTI4NCwxNSArMjg3LDIyIEBAIHN0YXRpYyBzc2l6ZV90IGtlcm5mc19mb3Bfd3JpdGUo c3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZiwKPiDCoAl9Cj4g wqAKPiDCoAlidWYgPSBvZi0+cHJlYWxsb2NfYnVmOwo+IC0JaWYgKCFidWYpCj4gKwlpZiAoYnVm KQo+ICsJCW11dGV4X2xvY2soJm9mLT5wcmVhbGxvY19tdXRleCk7Cj4gKwllbHNlCj4gwqAJCWJ1 ZiA9IGttYWxsb2MobGVuICsgMSwgR0ZQX0tFUk5FTCk7Cj4gwqAJaWYgKCFidWYpCj4gwqAJCXJl dHVybiAtRU5PTUVNOwo+IMKgCj4gKwlpZiAoY29weV9mcm9tX3VzZXIoYnVmLCB1c2VyX2J1Ziwg bGVuKSkgewo+ICsJCWxlbiA9IC1FRkFVTFQ7Cj4gKwkJZ290byBvdXRfZnJlZTsKPiArCX0KPiAr CWJ1ZltsZW5dID0gJ1wwJzsJLyogZ3VhcmFudGVlIHN0cmluZyB0ZXJtaW5hdGlvbiAqLwo+ICsK PiDCoAkvKgo+IMKgCcKgKiBAb2YtPm11dGV4IG5lc3RzIG91dHNpZGUgYWN0aXZlIHJlZiBhbmQg aXMgdXNlZCBib3RoIHRvIGVuc3VyZSB0aGF0Cj4gLQnCoCogdGhlIG9wcyBhcmVuJ3QgY2FsbGVk IGNvbmN1cnJlbnRseSBmb3IgdGhlIHNhbWUgb3BlbiBmaWxlLCBhbmQKPiAtCcKgKiB0byBwcm92 aWRlIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gLT5wcmVhbGxvY19idWYgKHdoZW4gdGhhdCBleGlzdHMp Lgo+ICsJwqAqIHRoZSBvcHMgYXJlbid0IGNhbGxlZCBjb25jdXJyZW50bHkgZm9yIHRoZSBzYW1l IG9wZW4gZmlsZS4KPiDCoAnCoCovCj4gwqAJbXV0ZXhfbG9jaygmb2YtPm11dGV4KTsKPiDCoAlp ZiAoIWtlcm5mc19nZXRfYWN0aXZlKG9mLT5rbikpIHsKPiBAQCAtMzAxLDI2ICszMTEsMjIgQEAg c3RhdGljIHNzaXplX3Qga2VybmZzX2ZvcF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3Qg Y2hhciBfX3VzZXIgKnVzZXJfYnVmLAo+IMKgCQlnb3RvIG91dF9mcmVlOwo+IMKgCX0KPiDCoAo+ IC0JaWYgKGNvcHlfZnJvbV91c2VyKGJ1ZiwgdXNlcl9idWYsIGxlbikpIHsKPiAtCQlsZW4gPSAt RUZBVUxUOwo+IC0JCWdvdG8gb3V0X3VubG9jazsKPiAtCX0KPiAtCWJ1ZltsZW5dID0gJ1wwJzsJ LyogZ3VhcmFudGVlIHN0cmluZyB0ZXJtaW5hdGlvbiAqLwo+IC0KPiDCoAlvcHMgPSBrZXJuZnNf b3BzKG9mLT5rbik7Cj4gwqAJaWYgKG9wcy0+d3JpdGUpCj4gwqAJCWxlbiA9IG9wcy0+d3JpdGUo b2YsIGJ1ZiwgbGVuLCAqcHBvcyk7Cj4gwqAJZWxzZQo+IMKgCQlsZW4gPSAtRUlOVkFMOwo+IMKg Cj4gKwlrZXJuZnNfcHV0X2FjdGl2ZShvZi0+a24pOwo+ICsJbXV0ZXhfdW5sb2NrKCZvZi0+bXV0 ZXgpOwo+ICsKPiDCoAlpZiAobGVuID4gMCkKPiDCoAkJKnBwb3MgKz0gbGVuOwo+IMKgCj4gLW91 dF91bmxvY2s6Cj4gLQlrZXJuZnNfcHV0X2FjdGl2ZShvZi0+a24pOwo+IC0JbXV0ZXhfdW5sb2Nr KCZvZi0+bXV0ZXgpOwo+IMKgb3V0X2ZyZWU6Cj4gLQlpZiAoYnVmICE9IG9mLT5wcmVhbGxvY19i dWYpCj4gKwlpZiAoYnVmID09IG9mLT5wcmVhbGxvY19idWYpCj4gKwkJbXV0ZXhfdW5sb2NrKCZv Zi0+cHJlYWxsb2NfbXV0ZXgpOwo+ICsJZWxzZQo+IMKgCQlrZnJlZShidWYpOwo+IMKgCXJldHVy biBsZW47Cj4gwqB9Cj4gQEAgLTY4Nyw2ICs2OTMsNyBAQCBzdGF0aWMgaW50IGtlcm5mc19mb3Bf b3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKPiDCoAkJZXJyb3Ig PSAtRU5PTUVNOwo+IMKgCQlpZiAoIW9mLT5wcmVhbGxvY19idWYpCj4gwqAJCQlnb3RvIGVycl9m cmVlOwo+ICsJCW11dGV4X2luaXQoJm9mLT5wcmVhbGxvY19tdXRleCk7Cj4gwqAJfQo+IMKgCj4g wqAJLyoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9rZXJuZnMuaCBiL2luY2x1ZGUvbGlu dXgva2VybmZzLmgKPiBpbmRleCBhZjUxZGYzNWQ3NDkuLjAxOWVmMzQxNjkwMCAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2xpbnV4L2tlcm5mcy5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9rZXJuZnMu aAo+IEBAIC0xNzcsNiArMTc3LDcgQEAgc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgewo+IMKgCj4g wqAJLyogcHJpdmF0ZSBmaWVsZHMsIGRvIG5vdCB1c2Ugb3V0c2lkZSBrZXJuZnMgcHJvcGVyICov Cj4gwqAJc3RydWN0IG11dGV4CQltdXRleDsKPiArCXN0cnVjdCBtdXRleAkJcHJlYWxsb2NfbXV0 ZXg7Cj4gwqAJaW50CQkJZXZlbnQ7Cj4gwqAJc3RydWN0IGxpc3RfaGVhZAlsaXN0Owo+IMKgCWNo YXIJCQkqcHJlYWxsb2NfYnVmOwotLSAKSm9vbmFzIExhaHRpbmVuCk9wZW4gU291cmNlIFRlY2hu b2xvZ3kgQ2VudGVyCkludGVsIENvcnBvcmF0aW9uCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=