From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH V3 2/5] drm/vkms: Rename vkms_crc.c into vkms_composer.c Date: Thu, 11 Jul 2019 10:10:25 +0200 Message-ID: <20190711081025.GG15868@phenom.ffwll.local> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5EB4D89E2C for ; Thu, 11 Jul 2019 08:10:29 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id w13so4862208eds.4 for ; Thu, 11 Jul 2019 01:10:29 -0700 (PDT) Content-Disposition: inline In-Reply-To: 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 , Simon Ser , Liviu Dudau , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdW4gMjUsIDIwMTkgYXQgMTA6Mzc6MDVQTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBBcyBhIHByZXBhcmF0aW9uIHdvcmsgZm9yIGludHJvZHVjaW5nIHdyaXRlYmFj ayB0byB2a21zLCB0aGlzIHBhdGNoCj4gcmVuYW1lcyB0aGUgZmlsZSB2a21zX2NyYy5jIGludG8g dmttc19jb21wb3Nlci5jLiBBY2NvcmRpbmdseSwgaXQgYWxzbwo+IGFkanVzdHMgdGhlIGZ1bmN0 aW9ucyBhbmQgZGF0YSBzdHJ1Y3R1cmVzIHRvIG1hdGNoIHRoZSBjaGFuZ2VzLgo+IAo+IE5vIGZ1 bmN0aW9uYWwgY2hhbmdlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gU2lxdWVpcmEgPHJv ZHJpZ29zaXF1ZWlyYW1lbG9AZ21haWwuY29tPgoKQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpUb28gbGF6eSB0byBjaGVjayBpdCBzdGlsbCBjb21waWxl cyA6LSkKLURhbmllbAoKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlICAg ICAgICAgICAgICAgICB8ICAyICstCj4gIC4uLi9kcm0vdmttcy97dmttc19jcmMuYyA9PiB2a21z X2NvbXBvc2VyLmN9ICB8IDk4ICsrKysrKysrKystLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19jcnRjLmMgICAgICAgICAgICAgIHwgMzAgKysrLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfZHJ2LmMgICAgICAgICAgICAgICB8ICA0ICstCj4gIGRyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfZHJ2LmggICAgICAgICAgICAgICB8IDI4ICsrKy0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMgICAgICAgICAgICAgfCAzNiArKystLS0tCj4gIDYg ZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQo+ICByZW5h bWUgZHJpdmVycy9ncHUvZHJtL3ZrbXMve3ZrbXNfY3JjLmMgPT4gdmttc19jb21wb3Nlci5jfSAo NjUlKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gaW5kZXggODlmMDliZWM3YjIzLi4wYjc2N2Q3 ZWZhMjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQo+IEBAIC0xLDQgKzEsNCBAQAo+ICAjIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKPiAtdmttcy15IDo9IHZrbXNfZHJ2 Lm8gdmttc19wbGFuZS5vIHZrbXNfb3V0cHV0Lm8gdmttc19jcnRjLm8gdmttc19nZW0ubyB2a21z X2NyYy5vCj4gK3ZrbXMteSA6PSB2a21zX2Rydi5vIHZrbXNfcGxhbmUubyB2a21zX291dHB1dC5v IHZrbXNfY3J0Yy5vIHZrbXNfZ2VtLm8gdmttc19jb21wb3Nlci5vCj4gIAo+ICBvYmotJChDT05G SUdfRFJNX1ZLTVMpICs9IHZrbXMubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb21wb3Nlci5jCj4gc2lt aWxhcml0eSBpbmRleCA2NSUKPiByZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X2NyYy5jCj4gcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY29tcG9zZXIuYwo+ IGluZGV4IDMwYjA0OGI2N2EzMi4uZWI3ZWE4YmUxZjk4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfY3JjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X2NvbXBvc2VyLmMKPiBAQCAtMTAsMjUgKzEwLDI1IEBACj4gICAqIGNvbXB1dGVfY3JjIC0gQ29t cHV0ZSBDUkMgdmFsdWUgb24gb3V0cHV0IGZyYW1lCj4gICAqCj4gICAqIEB2YWRkcl9vdXQ6IGFk ZHJlc3MgdG8gZmluYWwgZnJhbWVidWZmZXIKPiAtICogQGNyY19vdXQ6IGZyYW1lYnVmZmVyJ3Mg bWV0YWRhdGEKPiArICogQGNvbXBvc2VyOiBmcmFtZWJ1ZmZlcidzIG1ldGFkYXRhCj4gICAqCj4g ICAqIHJldHVybnMgQ1JDIHZhbHVlIGNvbXB1dGVkIHVzaW5nIGNyYzMyIG9uIHRoZSB2aXNpYmxl IHBvcnRpb24gb2YKPiAgICogdGhlIGZpbmFsIGZyYW1lYnVmZmVyIGF0IHZhZGRyX291dAo+ICAg Ki8KPiAtc3RhdGljIHVpbnQzMl90IGNvbXB1dGVfY3JjKHZvaWQgKnZhZGRyX291dCwgc3RydWN0 IHZrbXNfY3JjX2RhdGEgKmNyY19vdXQpCj4gK3N0YXRpYyB1aW50MzJfdCBjb21wdXRlX2NyYyh2 b2lkICp2YWRkcl9vdXQsIHN0cnVjdCB2a21zX2NvbXBvc2VyICpjb21wb3NlcikKPiAgewo+ICAJ aW50IGksIGosIHNyY19vZmZzZXQ7Cj4gLQlpbnQgeF9zcmMgPSBjcmNfb3V0LT5zcmMueDEgPj4g MTY7Cj4gLQlpbnQgeV9zcmMgPSBjcmNfb3V0LT5zcmMueTEgPj4gMTY7Cj4gLQlpbnQgaF9zcmMg PSBkcm1fcmVjdF9oZWlnaHQoJmNyY19vdXQtPnNyYykgPj4gMTY7Cj4gLQlpbnQgd19zcmMgPSBk cm1fcmVjdF93aWR0aCgmY3JjX291dC0+c3JjKSA+PiAxNjsKPiArCWludCB4X3NyYyA9IGNvbXBv c2VyLT5zcmMueDEgPj4gMTY7Cj4gKwlpbnQgeV9zcmMgPSBjb21wb3Nlci0+c3JjLnkxID4+IDE2 Owo+ICsJaW50IGhfc3JjID0gZHJtX3JlY3RfaGVpZ2h0KCZjb21wb3Nlci0+c3JjKSA+PiAxNjsK PiArCWludCB3X3NyYyA9IGRybV9yZWN0X3dpZHRoKCZjb21wb3Nlci0+c3JjKSA+PiAxNjsKPiAg CXUzMiBjcmMgPSAwOwo+ICAKPiAgCWZvciAoaSA9IHlfc3JjOyBpIDwgeV9zcmMgKyBoX3NyYzsg KytpKSB7Cj4gIAkJZm9yIChqID0geF9zcmM7IGogPCB4X3NyYyArIHdfc3JjOyArK2opIHsKPiAt CQkJc3JjX29mZnNldCA9IGNyY19vdXQtPm9mZnNldAo+IC0JCQkJICAgICArIChpICogY3JjX291 dC0+cGl0Y2gpCj4gLQkJCQkgICAgICsgKGogKiBjcmNfb3V0LT5jcHApOwo+ICsJCQlzcmNfb2Zm c2V0ID0gY29tcG9zZXItPm9mZnNldAo+ICsJCQkJICAgICArIChpICogY29tcG9zZXItPnBpdGNo KQo+ICsJCQkJICAgICArIChqICogY29tcG9zZXItPmNwcCk7Cj4gIAkJCS8qIFhSR0IgZm9ybWF0 IGlnbm9yZXMgQWxwaGEgY2hhbm5lbCAqLwo+ICAJCQltZW1zZXQodmFkZHJfb3V0ICsgc3JjX29m ZnNldCArIDI0LCAwLCAgOCk7Cj4gIAkJCWNyYyA9IGNyYzMyX2xlKGNyYywgdmFkZHJfb3V0ICsg c3JjX29mZnNldCwKPiBAQCAtNDMsOCArNDMsOCBAQCBzdGF0aWMgdWludDMyX3QgY29tcHV0ZV9j cmModm9pZCAqdmFkZHJfb3V0LCBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX291dCkKPiAgICog YmxlbmQgLSBiZWxuZCB2YWx1ZSBhdCB2YWRkcl9zcmMgd2l0aCB2YWx1ZSBhdCB2YWRkcl9kc3QK PiAgICogQHZhZGRyX2RzdDogZGVzdGluYXRpb24gYWRkcmVzcwo+ICAgKiBAdmFkZHJfc3JjOiBz b3VyY2UgYWRkcmVzcwo+IC0gKiBAY3JjX2RzdDogZGVzdGluYXRpb24gZnJhbWVidWZmZXIncyBt ZXRhZGF0YQo+IC0gKiBAY3JjX3NyYzogc291cmNlIGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKPiAr ICogQGRlc3RfY29tcG9zZXI6IGRlc3RpbmF0aW9uIGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKPiAr ICogQHNyY19jb21wb3Nlcjogc291cmNlIGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKPiAgICoKPiAg ICogQmxlbmQgdmFsdWUgYXQgdmFkZHJfc3JjIHdpdGggdmFsdWUgYXQgdmFkZHJfZHN0Lgo+ICAg KiBDdXJyZW50bHksIHRoaXMgZnVuY3Rpb24gd3JpdGUgdmFsdWUgYXQgdmFkZHJfc3JjIG9uIHZh bHVlCj4gQEAgLTU1LDMxICs1NSwzMSBAQCBzdGF0aWMgdWludDMyX3QgY29tcHV0ZV9jcmModm9p ZCAqdmFkZHJfb3V0LCBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX291dCkKPiAgICoJIGluc3Rl YWQgb2Ygb3ZlcndyaXRpbmcgaXQuCj4gICAqLwo+ICBzdGF0aWMgdm9pZCBibGVuZCh2b2lkICp2 YWRkcl9kc3QsIHZvaWQgKnZhZGRyX3NyYywKPiAtCQkgIHN0cnVjdCB2a21zX2NyY19kYXRhICpj cmNfZHN0LAo+IC0JCSAgc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19zcmMpCj4gKwkJICBzdHJ1 Y3Qgdmttc19jb21wb3NlciAqZGVzdF9jb21wb3NlciwKPiArCQkgIHN0cnVjdCB2a21zX2NvbXBv c2VyICpzcmNfY29tcG9zZXIpCj4gIHsKPiAgCWludCBpLCBqLCBqX2RzdCwgaV9kc3Q7Cj4gIAlp bnQgb2Zmc2V0X3NyYywgb2Zmc2V0X2RzdDsKPiAgCj4gLQlpbnQgeF9zcmMgPSBjcmNfc3JjLT5z cmMueDEgPj4gMTY7Cj4gLQlpbnQgeV9zcmMgPSBjcmNfc3JjLT5zcmMueTEgPj4gMTY7Cj4gKwlp bnQgeF9zcmMgPSBzcmNfY29tcG9zZXItPnNyYy54MSA+PiAxNjsKPiArCWludCB5X3NyYyA9IHNy Y19jb21wb3Nlci0+c3JjLnkxID4+IDE2Owo+ICAKPiAtCWludCB4X2RzdCA9IGNyY19zcmMtPmRz dC54MTsKPiAtCWludCB5X2RzdCA9IGNyY19zcmMtPmRzdC55MTsKPiAtCWludCBoX2RzdCA9IGRy bV9yZWN0X2hlaWdodCgmY3JjX3NyYy0+ZHN0KTsKPiAtCWludCB3X2RzdCA9IGRybV9yZWN0X3dp ZHRoKCZjcmNfc3JjLT5kc3QpOwo+ICsJaW50IHhfZHN0ID0gc3JjX2NvbXBvc2VyLT5kc3QueDE7 Cj4gKwlpbnQgeV9kc3QgPSBzcmNfY29tcG9zZXItPmRzdC55MTsKPiArCWludCBoX2RzdCA9IGRy bV9yZWN0X2hlaWdodCgmc3JjX2NvbXBvc2VyLT5kc3QpOwo+ICsJaW50IHdfZHN0ID0gZHJtX3Jl Y3Rfd2lkdGgoJnNyY19jb21wb3Nlci0+ZHN0KTsKPiAgCj4gIAlpbnQgeV9saW1pdCA9IHlfc3Jj ICsgaF9kc3Q7Cj4gIAlpbnQgeF9saW1pdCA9IHhfc3JjICsgd19kc3Q7Cj4gIAo+ICAJZm9yIChp ID0geV9zcmMsIGlfZHN0ID0geV9kc3Q7IGkgPCB5X2xpbWl0OyArK2kpIHsKPiAgCQlmb3IgKGog PSB4X3NyYywgal9kc3QgPSB4X2RzdDsgaiA8IHhfbGltaXQ7ICsraikgewo+IC0JCQlvZmZzZXRf ZHN0ID0gY3JjX2RzdC0+b2Zmc2V0Cj4gLQkJCQkgICAgICsgKGlfZHN0ICogY3JjX2RzdC0+cGl0 Y2gpCj4gLQkJCQkgICAgICsgKGpfZHN0KysgKiBjcmNfZHN0LT5jcHApOwo+IC0JCQlvZmZzZXRf c3JjID0gY3JjX3NyYy0+b2Zmc2V0Cj4gLQkJCQkgICAgICsgKGkgKiBjcmNfc3JjLT5waXRjaCkK PiAtCQkJCSAgICAgKyAoaiAqIGNyY19zcmMtPmNwcCk7Cj4gKwkJCW9mZnNldF9kc3QgPSBkZXN0 X2NvbXBvc2VyLT5vZmZzZXQKPiArCQkJCSAgICAgKyAoaV9kc3QgKiBkZXN0X2NvbXBvc2VyLT5w aXRjaCkKPiArCQkJCSAgICAgKyAoal9kc3QrKyAqIGRlc3RfY29tcG9zZXItPmNwcCk7Cj4gKwkJ CW9mZnNldF9zcmMgPSBzcmNfY29tcG9zZXItPm9mZnNldAo+ICsJCQkJICAgICArIChpICogc3Jj X2NvbXBvc2VyLT5waXRjaCkKPiArCQkJCSAgICAgKyAoaiAqIHNyY19jb21wb3Nlci0+Y3BwKTsK PiAgCj4gIAkJCW1lbWNweSh2YWRkcl9kc3QgKyBvZmZzZXRfZHN0LAo+ICAJCQkgICAgICAgdmFk ZHJfc3JjICsgb2Zmc2V0X3NyYywgc2l6ZW9mKHUzMikpOwo+IEBAIC04OCwyNSArODgsMjcgQEAg c3RhdGljIHZvaWQgYmxlbmQodm9pZCAqdmFkZHJfZHN0LCB2b2lkICp2YWRkcl9zcmMsCj4gIAl9 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGNvbXBvc2VfY3Vyc29yKHN0cnVjdCB2a21zX2NyY19k YXRhICpjdXJzb3JfY3JjLAo+IC0JCQkgICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqcHJpbWFyeV9j cmMsIHZvaWQgKnZhZGRyX291dCkKPiArc3RhdGljIHZvaWQgY29tcG9zZV9jdXJzb3Ioc3RydWN0 IHZrbXNfY29tcG9zZXIgKmN1cnNvcl9jb21wb3NlciwKPiArCQkJICAgc3RydWN0IHZrbXNfY29t cG9zZXIgKnByaW1hcnlfY29tcG9zZXIsCj4gKwkJCSAgIHZvaWQgKnZhZGRyX291dCkKPiAgewo+ ICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpjdXJzb3Jfb2JqOwo+ICAJc3RydWN0IHZrbXNfZ2Vt X29iamVjdCAqY3Vyc29yX3ZrbXNfb2JqOwo+ICAKPiAtCWN1cnNvcl9vYmogPSBkcm1fZ2VtX2Zi X2dldF9vYmooJmN1cnNvcl9jcmMtPmZiLCAwKTsKPiArCWN1cnNvcl9vYmogPSBkcm1fZ2VtX2Zi X2dldF9vYmooJmN1cnNvcl9jb21wb3Nlci0+ZmIsIDApOwo+ICAJY3Vyc29yX3ZrbXNfb2JqID0g ZHJtX2dlbV90b192a21zX2dlbShjdXJzb3Jfb2JqKTsKPiAgCj4gIAlpZiAoV0FSTl9PTighY3Vy c29yX3ZrbXNfb2JqLT52YWRkcikpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWJsZW5kKHZhZGRyX291 dCwgY3Vyc29yX3ZrbXNfb2JqLT52YWRkciwgcHJpbWFyeV9jcmMsIGN1cnNvcl9jcmMpOwo+ICsJ YmxlbmQodmFkZHJfb3V0LCBjdXJzb3Jfdmttc19vYmotPnZhZGRyLAo+ICsJICAgICAgcHJpbWFy eV9jb21wb3NlciwgY3Vyc29yX2NvbXBvc2VyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHVpbnQzMl90 IF92a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY3JjX2RhdGEgKnByaW1hcnlfY3JjLAo+IC0JCQkg ICAgICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3Vyc29yX2NyYykKPiArc3RhdGljIHVpbnQzMl90 IF92a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY29tcG9zZXIgKnByaW1hcnlfY29tcG9zZXIsCj4g KwkJCSAgICAgIHN0cnVjdCB2a21zX2NvbXBvc2VyICpjdXJzb3JfY29tcG9zZXIpCj4gIHsKPiAt CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gJnByaW1hcnlfY3JjLT5mYjsKPiArCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gJnByaW1hcnlfY29tcG9zZXItPmZiOwo+ICAJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqID0gZHJtX2dlbV9mYl9nZXRfb2JqKGZiLCAwKTsKPiAg CXN0cnVjdCB2a21zX2dlbV9vYmplY3QgKnZrbXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShn ZW1fb2JqKTsKPiAgCXZvaWQgKnZhZGRyX291dCA9IGt6YWxsb2Modmttc19vYmotPmdlbS5zaXpl LCBHRlBfS0VSTkVMKTsKPiBAQCAtMTI0LDEwICsxMjYsMTAgQEAgc3RhdGljIHVpbnQzMl90IF92 a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY3JjX2RhdGEgKnByaW1hcnlfY3JjLAo+ICAKPiAgCW1l bWNweSh2YWRkcl9vdXQsIHZrbXNfb2JqLT52YWRkciwgdmttc19vYmotPmdlbS5zaXplKTsKPiAg Cj4gLQlpZiAoY3Vyc29yX2NyYykKPiAtCQljb21wb3NlX2N1cnNvcihjdXJzb3JfY3JjLCBwcmlt YXJ5X2NyYywgdmFkZHJfb3V0KTsKPiArCWlmIChjdXJzb3JfY29tcG9zZXIpCj4gKwkJY29tcG9z ZV9jdXJzb3IoY3Vyc29yX2NvbXBvc2VyLCBwcmltYXJ5X2NvbXBvc2VyLCB2YWRkcl9vdXQpOwo+ ICAKPiAtCWNyYyA9IGNvbXB1dGVfY3JjKHZhZGRyX291dCwgcHJpbWFyeV9jcmMpOwo+ICsJY3Jj ID0gY29tcHV0ZV9jcmModmFkZHJfb3V0LCBwcmltYXJ5X2NvbXBvc2VyKTsKPiAgCj4gIAlrZnJl ZSh2YWRkcl9vdXQpOwo+ICAKPiBAQCAtMTM1LDM1ICsxMzcsMzUgQEAgc3RhdGljIHVpbnQzMl90 IF92a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY3JjX2RhdGEgKnByaW1hcnlfY3JjLAo+ICB9Cj4g IAo+ICAvKioKPiAtICogdmttc19jcmNfd29ya19oYW5kbGUgLSBvcmRlcmVkIHdvcmtfc3RydWN0 IHRvIGNvbXB1dGUgQ1JDCj4gKyAqIHZrbXNfY29tcG9zZXJfd29ya2VyIC0gb3JkZXJlZCB3b3Jr X3N0cnVjdCB0byBjb21wdXRlIENSQwo+ICAgKgo+ICAgKiBAd29yazogd29ya19zdHJ1Y3QKPiAg ICoKPiAtICogV29yayBoYW5kbGVyIGZvciBjb21wdXRpbmcgQ1JDcy4gd29ya19zdHJ1Y3Qgc2No ZWR1bGVkIGluCj4gKyAqIFdvcmsgaGFuZGxlciBmb3IgY29tcG9zaW5nIGFuZCBjb21wdXRpbmcg Q1JDcy4gd29ya19zdHJ1Y3Qgc2NoZWR1bGVkIGluCj4gICAqIGFuIG9yZGVyZWQgd29ya3F1ZXVl IHRoYXQncyBwZXJpb2RpY2FsbHkgc2NoZWR1bGVkIHRvIHJ1biBieQo+ICAgKiBfdmJsYW5rX2hh bmRsZSgpIGFuZCBmbHVzaGVkIGF0IHZrbXNfYXRvbWljX2NydGNfZGVzdHJveV9zdGF0ZSgpLgo+ ICAgKi8KPiAtdm9pZCB2a21zX2NyY193b3JrX2hhbmRsZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCj4gK3ZvaWQgdmttc19jb21wb3Nlcl93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ICB7Cj4gIAlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gY29udGFpbmVy X29mKHdvcmssCj4gIAkJCQkJCXN0cnVjdCB2a21zX2NydGNfc3RhdGUsCj4gLQkJCQkJCWNyY193 b3JrKTsKPiArCQkJCQkJY29tcG9zZXJfd29yayk7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7Cj4gIAlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRy bV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+IC0Jc3RydWN0IHZrbXNfY3JjX2RhdGEgKnBy aW1hcnlfY3JjID0gTlVMTDsKPiAtCXN0cnVjdCB2a21zX2NyY19kYXRhICpjdXJzb3JfY3JjID0g TlVMTDsKPiArCXN0cnVjdCB2a21zX2NvbXBvc2VyICpwcmltYXJ5X2NvbXBvc2VyID0gTlVMTDsK PiArCXN0cnVjdCB2a21zX2NvbXBvc2VyICpjdXJzb3JfY29tcG9zZXIgPSBOVUxMOwo+ICAJdTMy IGNyYzMyID0gMDsKPiAgCXU2NCBmcmFtZV9zdGFydCwgZnJhbWVfZW5kOwo+ICAJYm9vbCBjcmNf cGVuZGluZzsKPiAgCj4gLQlzcGluX2xvY2tfaXJxKCZvdXQtPmNyY19sb2NrKTsKPiArCXNwaW5f bG9ja19pcnEoJm91dC0+Y29tcG9zZXJfbG9jayk7Cj4gIAlmcmFtZV9zdGFydCA9IGNydGNfc3Rh dGUtPmZyYW1lX3N0YXJ0Owo+ICAJZnJhbWVfZW5kID0gY3J0Y19zdGF0ZS0+ZnJhbWVfZW5kOwo+ ICAJY3JjX3BlbmRpbmcgPSBjcnRjX3N0YXRlLT5jcmNfcGVuZGluZzsKPiAgCWNydGNfc3RhdGUt PmZyYW1lX3N0YXJ0ID0gMDsKPiAgCWNydGNfc3RhdGUtPmZyYW1lX2VuZCA9IDA7Cj4gIAljcnRj X3N0YXRlLT5jcmNfcGVuZGluZyA9IGZhbHNlOwo+IC0Jc3Bpbl91bmxvY2tfaXJxKCZvdXQtPmNy Y19sb2NrKTsKPiArCXNwaW5fdW5sb2NrX2lycSgmb3V0LT5jb21wb3Nlcl9sb2NrKTsKPiAgCj4g IAkvKgo+ICAJICogV2UgcmFjZWQgd2l0aCB0aGUgdmJsYW5rIGhydGltZXIgYW5kIHByZXZpb3Vz IHdvcmsgYWxyZWFkeSBjb21wdXRlZAo+IEBAIC0xNzMsMTMgKzE3NSwxMyBAQCB2b2lkIHZrbXNf Y3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCQlyZXR1cm47Cj4g IAo+ICAJaWYgKGNydGNfc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID49IDEpCj4gLQkJcHJpbWFy eV9jcmMgPSBjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzWzBdLT5jcmNfZGF0YTsKPiArCQlwcmlt YXJ5X2NvbXBvc2VyID0gY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lc1swXS0+Y29tcG9zZXI7Cj4g IAo+ICAJaWYgKGNydGNfc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID09IDIpCj4gLQkJY3Vyc29y X2NyYyA9IGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXNbMV0tPmNyY19kYXRhOwo+ICsJCWN1cnNv cl9jb21wb3NlciA9IGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXNbMV0tPmNvbXBvc2VyOwo+ICAK PiAtCWlmIChwcmltYXJ5X2NyYykKPiAtCQljcmMzMiA9IF92a21zX2dldF9jcmMocHJpbWFyeV9j cmMsIGN1cnNvcl9jcmMpOwo+ICsJaWYgKHByaW1hcnlfY29tcG9zZXIpCj4gKwkJY3JjMzIgPSBf dmttc19nZXRfY3JjKHByaW1hcnlfY29tcG9zZXIsIGN1cnNvcl9jb21wb3Nlcik7Cj4gIAo+ICAJ LyoKPiAgCSAqIFRoZSB3b3JrZXIgY2FuIGZhbGwgYmVoaW5kIHRoZSB2YmxhbmsgaHJ0aW1lciwg bWFrZSBzdXJlIHdlIGNhdGNoIHVwLgo+IEBAIC0yMzcsNyArMjM5LDcgQEAgaW50IHZrbXNfc2V0 X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSkK PiAgCXJldCA9IHZrbXNfY3JjX3BhcnNlX3NvdXJjZShzcmNfbmFtZSwgJmVuYWJsZWQpOwo+ICAK PiAgCXNwaW5fbG9ja19pcnEoJm91dC0+bG9jayk7Cj4gLQlvdXQtPmNyY19lbmFibGVkID0gZW5h YmxlZDsKPiArCW91dC0+Y29tcG9zZXJfZW5hYmxlZCA9IGVuYWJsZWQ7Cj4gIAlzcGluX3VubG9j a19pcnEoJm91dC0+bG9jayk7Cj4gIAo+ICAJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X2NydGMuYwo+IGluZGV4IGE2NDg4OTIzNzljMy4uMDRjNmY0MjUwZGVhIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19jcnRjLmMKPiBAQCAtMjQsMTQgKzI0LDE0IEBAIHN0YXRpYyBlbnVtIGhydGlt ZXJfcmVzdGFydCB2a21zX3ZibGFua19zaW11bGF0ZShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCj4g IAlpZiAoIXJldCkKPiAgCQlEUk1fRVJST1IoInZrbXMgZmFpbHVyZSBvbiBoYW5kbGluZyB2Ymxh bmsiKTsKPiAgCj4gLQlzdGF0ZSA9IG91dHB1dC0+Y3JjX3N0YXRlOwo+IC0JaWYgKHN0YXRlICYm IG91dHB1dC0+Y3JjX2VuYWJsZWQpIHsKPiArCXN0YXRlID0gb3V0cHV0LT5jb21wb3Nlcl9zdGF0 ZTsKPiArCWlmIChzdGF0ZSAmJiBvdXRwdXQtPmNvbXBvc2VyX2VuYWJsZWQpIHsKPiAgCQl1NjQg ZnJhbWUgPSBkcm1fY3J0Y19hY2N1cmF0ZV92YmxhbmtfY291bnQoY3J0Yyk7Cj4gIAo+IC0JCS8q IHVwZGF0ZSBmcmFtZV9zdGFydCBvbmx5IGlmIGEgcXVldWVkIHZrbXNfY3JjX3dvcmtfaGFuZGxl KCkKPiArCQkvKiB1cGRhdGUgZnJhbWVfc3RhcnQgb25seSBpZiBhIHF1ZXVlZCB2a21zX2NvbXBv c2VyX3dvcmtlcigpCj4gIAkJICogaGFzIHJlYWQgdGhlIGRhdGEKPiAgCQkgKi8KPiAtCQlzcGlu X2xvY2soJm91dHB1dC0+Y3JjX2xvY2spOwo+ICsJCXNwaW5fbG9jaygmb3V0cHV0LT5jb21wb3Nl cl9sb2NrKTsKPiAgCQlpZiAoIXN0YXRlLT5jcmNfcGVuZGluZykKPiAgCQkJc3RhdGUtPmZyYW1l X3N0YXJ0ID0gZnJhbWU7Cj4gIAkJZWxzZQo+IEBAIC0zOSwxMSArMzksMTEgQEAgc3RhdGljIGVu dW0gaHJ0aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0 aW1lcikKPiAgCQkJCQkgc3RhdGUtPmZyYW1lX3N0YXJ0LCBmcmFtZSk7Cj4gIAkJc3RhdGUtPmZy YW1lX2VuZCA9IGZyYW1lOwo+ICAJCXN0YXRlLT5jcmNfcGVuZGluZyA9IHRydWU7Cj4gLQkJc3Bp bl91bmxvY2soJm91dHB1dC0+Y3JjX2xvY2spOwo+ICsJCXNwaW5fdW5sb2NrKCZvdXRwdXQtPmNv bXBvc2VyX2xvY2spOwo+ICAKPiAtCQlyZXQgPSBxdWV1ZV93b3JrKG91dHB1dC0+Y3JjX3dvcmtx LCAmc3RhdGUtPmNyY193b3JrKTsKPiArCQlyZXQgPSBxdWV1ZV93b3JrKG91dHB1dC0+Y29tcG9z ZXJfd29ya3EsICZzdGF0ZS0+Y29tcG9zZXJfd29yayk7Cj4gIAkJaWYgKCFyZXQpCj4gLQkJCURS TV9ERUJVR19EUklWRVIoInZrbXNfY3JjX3dvcmtfaGFuZGxlIGFscmVhZHkgcXVldWVkXG4iKTsK PiArCQkJRFJNX0RFQlVHX0RSSVZFUigiQ29tcG9zZXIgd29ya2VyIGFscmVhZHkgcXVldWVkXG4i KTsKPiAgCX0KPiAgCj4gIAlzcGluX3VubG9jaygmb3V0cHV0LT5sb2NrKTsKPiBAQCAtMTE0LDcg KzExNCw3IEBAIHZrbXNfYXRvbWljX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiAgCj4gIAlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRl KGNydGMsICZ2a21zX3N0YXRlLT5iYXNlKTsKPiAgCj4gLQlJTklUX1dPUksoJnZrbXNfc3RhdGUt PmNyY193b3JrLCB2a21zX2NyY193b3JrX2hhbmRsZSk7Cj4gKwlJTklUX1dPUksoJnZrbXNfc3Rh dGUtPmNvbXBvc2VyX3dvcmssIHZrbXNfY29tcG9zZXJfd29ya2VyKTsKPiAgCj4gIAlyZXR1cm4g JnZrbXNfc3RhdGUtPmJhc2U7Cj4gIH0KPiBAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyB2b2lk IHZrbXNfYXRvbWljX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g IAo+ICAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RhdGUpOwo+ICAK PiAtCVdBUk5fT04od29ya19wZW5kaW5nKCZ2a21zX3N0YXRlLT5jcmNfd29yaykpOwo+ICsJV0FS Tl9PTih3b3JrX3BlbmRpbmcoJnZrbXNfc3RhdGUtPmNvbXBvc2VyX3dvcmspKTsKPiAgCWtmcmVl KHZrbXNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMpOwo+ICAJa2ZyZWUodmttc19zdGF0ZSk7Cj4gIH0K PiBAQCAtMTQxLDcgKzE0MSw3IEBAIHN0YXRpYyB2b2lkIHZrbXNfYXRvbWljX2NydGNfcmVzZXQo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAgCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19y ZXNldChjcnRjLCAmdmttc19zdGF0ZS0+YmFzZSk7Cj4gIAlpZiAodmttc19zdGF0ZSkKPiAtCQlJ TklUX1dPUksoJnZrbXNfc3RhdGUtPmNyY193b3JrLCB2a21zX2NyY193b3JrX2hhbmRsZSk7Cj4g KwkJSU5JVF9XT1JLKCZ2a21zX3N0YXRlLT5jb21wb3Nlcl93b3JrLCB2a21zX2NvbXBvc2VyX3dv cmtlcik7Cj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mgdmtt c19jcnRjX2Z1bmNzID0gewo+IEBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIHZvaWQgdmttc19j cnRjX2F0b21pY19iZWdpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlzdHJ1Y3Qgdmttc19v dXRwdXQgKnZrbXNfb3V0cHV0ID0gZHJtX2NydGNfdG9fdmttc19vdXRwdXQoY3J0Yyk7Cj4gIAo+ ICAJLyogVGhpcyBsb2NrIGlzIGhlbGQgYWNyb3NzIHRoZSBhdG9taWMgY29tbWl0IHRvIGJsb2Nr IHZibGFuayB0aW1lcgo+IC0JICogZnJvbSBzY2hlZHVsaW5nIHZrbXNfY3JjX3dvcmtfaGFuZGxl IHVudGlsIHRoZSBjcmNfZGF0YSBpcyB1cGRhdGVkCj4gKwkgKiBmcm9tIHNjaGVkdWxpbmcgdmtt c19jb21wb3Nlcl93b3JrZXIgdW50aWwgdGhlIGNvbXBvc2VyIGlzIHVwZGF0ZWQKPiAgCSAqLwo+ ICAJc3Bpbl9sb2NrX2lycSgmdmttc19vdXRwdXQtPmxvY2spOwo+ICB9Cj4gQEAgLTI0NSw3ICsy NDUsNyBAQCBzdGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiAgCQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOwo+ICAJfQo+ICAKPiAtCXZr bXNfb3V0cHV0LT5jcmNfc3RhdGUgPSB0b192a21zX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ ICsJdmttc19vdXRwdXQtPmNvbXBvc2VyX3N0YXRlID0gdG9fdmttc19jcnRjX3N0YXRlKGNydGMt PnN0YXRlKTsKPiAgCj4gIAlzcGluX3VubG9ja19pcnEoJnZrbXNfb3V0cHV0LT5sb2NrKTsKPiAg fQo+IEBAIC0yNzQsMTAgKzI3NCwxMCBAQCBpbnQgdmttc19jcnRjX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJZHJtX2NydGNfaGVscGVyX2Fk ZChjcnRjLCAmdmttc19jcnRjX2hlbHBlcl9mdW5jcyk7Cj4gIAo+ICAJc3Bpbl9sb2NrX2luaXQo JnZrbXNfb3V0LT5sb2NrKTsKPiAtCXNwaW5fbG9ja19pbml0KCZ2a21zX291dC0+Y3JjX2xvY2sp Owo+ICsJc3Bpbl9sb2NrX2luaXQoJnZrbXNfb3V0LT5jb21wb3Nlcl9sb2NrKTsKPiAgCj4gLQl2 a21zX291dC0+Y3JjX3dvcmtxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoInZrbXNfY3JjX3dv cmtxIiwgMCk7Cj4gLQlpZiAoIXZrbXNfb3V0LT5jcmNfd29ya3EpCj4gKwl2a21zX291dC0+Y29t cG9zZXJfd29ya3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgidmttc19jb21wb3NlciIsIDAp Owo+ICsJaWYgKCF2a21zX291dC0+Y29tcG9zZXJfd29ya3EpCj4gIAkJcmV0dXJuIC1FTk9NRU07 Cj4gIAo+ICAJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKPiBpbmRleCA5NjZi M2Q2NTMxODkuLmFjNzkwYjY1MjdlNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYwo+IEBA IC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIHZrbXNfcmVsZWFzZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oJnZrbXMtPmRybSk7Cj4gIAlk cm1fbW9kZV9jb25maWdfY2xlYW51cCgmdmttcy0+ZHJtKTsKPiAgCWRybV9kZXZfZmluaSgmdmtt cy0+ZHJtKTsKPiAtCWRlc3Ryb3lfd29ya3F1ZXVlKHZrbXMtPm91dHB1dC5jcmNfd29ya3EpOwo+ ICsJZGVzdHJveV93b3JrcXVldWUodmttcy0+b3V0cHV0LmNvbXBvc2VyX3dvcmtxKTsKPiAgfQo+ ICAKPiAgc3RhdGljIHZvaWQgdmttc19hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiBAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgdm9pZCB2a21z X2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ ICAJCXN0cnVjdCB2a21zX2NydGNfc3RhdGUgKnZrbXNfc3RhdGUgPQo+ICAJCQl0b192a21zX2Ny dGNfc3RhdGUob2xkX2NydGNfc3RhdGUpOwo+ICAKPiAtCQlmbHVzaF93b3JrKCZ2a21zX3N0YXRl LT5jcmNfd29yayk7Cj4gKwkJZmx1c2hfd29yaygmdmttc19zdGF0ZS0+Y29tcG9zZXJfd29yayk7 Cj4gIAl9Cj4gIAo+ICAJZHJtX2F0b21pY19oZWxwZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBvbGRf c3RhdGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+IGluZGV4IGUyZDFhYTA4OWRlYy4uZmM2 Y2RhMTY0MzM2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gQEAgLTIwLDcgKzIwLDcg QEAKPiAgCj4gIGV4dGVybiBib29sIGVuYWJsZV9jdXJzb3I7Cj4gIAo+IC1zdHJ1Y3Qgdmttc19j cmNfZGF0YSB7Cj4gK3N0cnVjdCB2a21zX2NvbXBvc2VyIHsKPiAgCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgZmI7Cj4gIAlzdHJ1Y3QgZHJtX3JlY3Qgc3JjLCBkc3Q7Cj4gIAl1bnNpZ25lZCBpbnQg b2Zmc2V0Owo+IEBAIC0zMSwyOSArMzEsMjkgQEAgc3RydWN0IHZrbXNfY3JjX2RhdGEgewo+ICAv KioKPiAgICogdmttc19wbGFuZV9zdGF0ZSAtIERyaXZlciBzcGVjaWZpYyBwbGFuZSBzdGF0ZQo+ ICAgKiBAYmFzZTogYmFzZSBwbGFuZSBzdGF0ZQo+IC0gKiBAY3JjX2RhdGE6IGRhdGEgcmVxdWly ZWQgZm9yIENSQyBjb21wdXRhdGlvbgo+ICsgKiBAY29tcG9zZXI6IGRhdGEgcmVxdWlyZWQgZm9y IGNvbXBvc2luZyBjb21wdXRhdGlvbgo+ICAgKi8KPiAgc3RydWN0IHZrbXNfcGxhbmVfc3RhdGUg ewo+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBiYXNlOwo+IC0Jc3RydWN0IHZrbXNfY3JjX2Rh dGEgKmNyY19kYXRhOwo+ICsJc3RydWN0IHZrbXNfY29tcG9zZXIgKmNvbXBvc2VyOwo+ICB9Owo+ ICAKPiAgLyoqCj4gICAqIHZrbXNfY3J0Y19zdGF0ZSAtIERyaXZlciBzcGVjaWZpYyBDUlRDIHN0 YXRlCj4gICAqIEBiYXNlOiBiYXNlIENSVEMgc3RhdGUKPiAtICogQGNyY193b3JrOiB3b3JrIHN0 cnVjdCB0byBjb21wdXRlIGFuZCBhZGQgQ1JDIGVudHJpZXMKPiArICogQGNvbXBvc2VyX3dvcms6 IHdvcmsgc3RydWN0IHRvIGNvbXBvc2UgYW5kIGFkZCBDUkMgZW50cmllcwo+ICAgKiBAbl9mcmFt ZV9zdGFydDogc3RhcnQgZnJhbWUgbnVtYmVyIGZvciBjb21wdXRlZCBDUkMKPiAgICogQG5fZnJh bWVfZW5kOiBlbmQgZnJhbWUgbnVtYmVyIGZvciBjb21wdXRlZCBDUkMKPiAgICovCj4gIHN0cnVj dCB2a21zX2NydGNfc3RhdGUgewo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7Cj4gLQlz dHJ1Y3Qgd29ya19zdHJ1Y3QgY3JjX3dvcms7Cj4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgY29tcG9z ZXJfd29yazsKPiAgCj4gIAlpbnQgbnVtX2FjdGl2ZV9wbGFuZXM7Cj4gIAkvKiBzdGFjayBvZiBh Y3RpdmUgcGxhbmVzIGZvciBjcmMgY29tcHV0YXRpb24sIHNob3VsZCBiZSBpbiB6IG9yZGVyICov Cj4gIAlzdHJ1Y3Qgdmttc19wbGFuZV9zdGF0ZSAqKmFjdGl2ZV9wbGFuZXM7Cj4gIAo+IC0JLyog YmVsb3cgdGhyZWUgYXJlIHByb3RlY3RlZCBieSB2a21zX291dHB1dC5jcmNfbG9jayAqLwo+ICsJ LyogYmVsb3cgdGhyZWUgYXJlIHByb3RlY3RlZCBieSB2a21zX291dHB1dC5jb21wb3Nlcl9sb2Nr ICovCj4gIAlib29sIGNyY19wZW5kaW5nOwo+ICAJdTY0IGZyYW1lX3N0YXJ0Owo+ICAJdTY0IGZy YW1lX2VuZDsKPiBAQCAtNjYsMTYgKzY2LDE2IEBAIHN0cnVjdCB2a21zX291dHB1dCB7Cj4gIAlz dHJ1Y3QgaHJ0aW1lciB2YmxhbmtfaHJ0aW1lcjsKPiAgCWt0aW1lX3QgcGVyaW9kX25zOwo+ICAJ c3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZlbnQ7Cj4gLQkvKiBvcmRlcmVkIHdx IGZvciBjcmNfd29yayAqLwo+IC0Jc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmNyY193b3JrcTsK PiAtCS8qIHByb3RlY3RzIGNvbmN1cnJlbnQgYWNjZXNzIHRvIGNyY19kYXRhICovCj4gKwkvKiBv cmRlcmVkIHdxIGZvciBjb21wb3Nlcl93b3JrICovCj4gKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVj dCAqY29tcG9zZXJfd29ya3E7Cj4gKwkvKiBwcm90ZWN0cyBjb25jdXJyZW50IGFjY2VzcyB0byBj b21wb3NlciAqLwo+ICAJc3BpbmxvY2tfdCBsb2NrOwo+ICAKPiAgCS8qIHByb3RlY3RlZCBieSBA bG9jayAqLwo+IC0JYm9vbCBjcmNfZW5hYmxlZDsKPiAtCXN0cnVjdCB2a21zX2NydGNfc3RhdGUg KmNyY19zdGF0ZTsKPiArCWJvb2wgY29tcG9zZXJfZW5hYmxlZDsKPiArCXN0cnVjdCB2a21zX2Ny dGNfc3RhdGUgKmNvbXBvc2VyX3N0YXRlOwo+ICAKPiAtCXNwaW5sb2NrX3QgY3JjX2xvY2s7Cj4g KwlzcGlubG9ja190IGNvbXBvc2VyX2xvY2s7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3Qgdmttc19kZXZp Y2Ugewo+IEBAIC0xNDMsNiArMTQzLDggQEAgY29uc3QgY2hhciAqY29uc3QgKnZrbXNfZ2V0X2Ny Y19zb3VyY2VzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgaW50IHZrbXNfc2V0X2NyY19zb3Vy Y2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSk7Cj4gIGludCB2 a21zX3ZlcmlmeV9jcmNfc291cmNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAq c291cmNlX25hbWUsCj4gIAkJCSAgIHNpemVfdCAqdmFsdWVzX2NudCk7Cj4gLXZvaWQgdmttc19j cmNfd29ya19oYW5kbGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKPiArCj4gKy8qIENvbXBv c2VyIFN1cHBvcnQgKi8KPiArdm9pZCB2a21zX2NvbXBvc2VyX3dvcmtlcihzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspOwo+ICAKPiAgI2VuZGlmIC8qIF9WS01TX0RSVl9IXyAqLwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0v dmttcy92a21zX3BsYW5lLmMKPiBpbmRleCAxOGM2MzBjZmM0ODUuLjhiNjBkMzQzNGQ3NSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiBAQCAtMTgsMjAgKzE4LDIwIEBAIHN0YXRp YyBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICoKPiAgdmttc19wbGFuZV9kdXBsaWNhdGVfc3RhdGUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gIHsKPiAgCXN0cnVjdCB2a21zX3BsYW5lX3N0YXRl ICp2a21zX3N0YXRlOwo+IC0Jc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRhOwo+ICsJc3Ry dWN0IHZrbXNfY29tcG9zZXIgKmNvbXBvc2VyOwo+ICAKPiAgCXZrbXNfc3RhdGUgPSBremFsbG9j KHNpemVvZigqdmttc19zdGF0ZSksIEdGUF9LRVJORUwpOwo+ICAJaWYgKCF2a21zX3N0YXRlKQo+ ICAJCXJldHVybiBOVUxMOwo+ICAKPiAtCWNyY19kYXRhID0ga3phbGxvYyhzaXplb2YoKmNyY19k YXRhKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWNyY19kYXRhKSB7Cj4gLQkJRFJNX0RFQlVHX0tN UygiQ291bGRuJ3QgYWxsb2NhdGUgY3JjX2RhdGFcbiIpOwo+ICsJY29tcG9zZXIgPSBremFsbG9j KHNpemVvZigqY29tcG9zZXIpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghY29tcG9zZXIpIHsKPiAr CQlEUk1fREVCVUdfS01TKCJDb3VsZG4ndCBhbGxvY2F0ZSBjb21wb3NlclxuIik7Cj4gIAkJa2Zy ZWUodmttc19zdGF0ZSk7Cj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAl9Cj4gIAo+IC0Jdmttc19zdGF0 ZS0+Y3JjX2RhdGEgPSBjcmNfZGF0YTsKPiArCXZrbXNfc3RhdGUtPmNvbXBvc2VyID0gY29tcG9z ZXI7Cj4gIAo+ICAJX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUocGxh bmUsCj4gIAkJCQkJCSAgJnZrbXNfc3RhdGUtPmJhc2UpOwo+IEBAIC00OSwxMiArNDksMTIgQEAg c3RhdGljIHZvaWQgdmttc19wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAo+ICAJCS8qIGRyb3BwaW5nIHRoZSByZWZlcmVuY2Ugd2UgYWNxdWlyZWQgaW4KPiAgCQkg KiB2a21zX3ByaW1hcnlfcGxhbmVfdXBkYXRlKCkKPiAgCQkgKi8KPiAtCQlpZiAoZHJtX2ZyYW1l YnVmZmVyX3JlYWRfcmVmY291bnQoJnZrbXNfc3RhdGUtPmNyY19kYXRhLT5mYikpCj4gLQkJCWRy bV9mcmFtZWJ1ZmZlcl9wdXQoJnZrbXNfc3RhdGUtPmNyY19kYXRhLT5mYik7Cj4gKwkJaWYgKGRy bV9mcmFtZWJ1ZmZlcl9yZWFkX3JlZmNvdW50KCZ2a21zX3N0YXRlLT5jb21wb3Nlci0+ZmIpKQo+ ICsJCQlkcm1fZnJhbWVidWZmZXJfcHV0KCZ2a21zX3N0YXRlLT5jb21wb3Nlci0+ZmIpOwo+ICAJ fQo+ICAKPiAtCWtmcmVlKHZrbXNfc3RhdGUtPmNyY19kYXRhKTsKPiAtCXZrbXNfc3RhdGUtPmNy Y19kYXRhID0gTlVMTDsKPiArCWtmcmVlKHZrbXNfc3RhdGUtPmNvbXBvc2VyKTsKPiArCXZrbXNf c3RhdGUtPmNvbXBvc2VyID0gTlVMTDsKPiAgCj4gIAlfX2RybV9hdG9taWNfaGVscGVyX3BsYW5l X2Rlc3Ryb3lfc3RhdGUob2xkX3N0YXRlKTsKPiAgCWtmcmVlKHZrbXNfc3RhdGUpOwo+IEBAIC05 MSwyMSArOTEsMjEgQEAgc3RhdGljIHZvaWQgdmttc19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ICB7Cj4gIAlzdHJ1Y3Qgdmttc19wbGFuZV9zdGF0ZSAqdmtt c19wbGFuZV9zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmUtPnN0 YXRlLT5mYjsKPiAtCXN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0YTsKPiArCXN0cnVjdCB2 a21zX2NvbXBvc2VyICpjb21wb3NlcjsKPiAgCj4gIAlpZiAoIXBsYW5lLT5zdGF0ZS0+Y3J0YyB8 fCAhZmIpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCXZrbXNfcGxhbmVfc3RhdGUgPSB0b192a21zX3Bs YW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7Cj4gIAo+IC0JY3JjX2RhdGEgPSB2a21zX3BsYW5lX3N0 YXRlLT5jcmNfZGF0YTsKPiAtCW1lbWNweSgmY3JjX2RhdGEtPnNyYywgJnBsYW5lLT5zdGF0ZS0+ c3JjLCBzaXplb2Yoc3RydWN0IGRybV9yZWN0KSk7Cj4gLQltZW1jcHkoJmNyY19kYXRhLT5kc3Qs ICZwbGFuZS0+c3RhdGUtPmRzdCwgc2l6ZW9mKHN0cnVjdCBkcm1fcmVjdCkpOwo+IC0JbWVtY3B5 KCZjcmNfZGF0YS0+ZmIsIGZiLCBzaXplb2Yoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcikpOwo+IC0J ZHJtX2ZyYW1lYnVmZmVyX2dldCgmY3JjX2RhdGEtPmZiKTsKPiAtCWNyY19kYXRhLT5vZmZzZXQg PSBmYi0+b2Zmc2V0c1swXTsKPiAtCWNyY19kYXRhLT5waXRjaCA9IGZiLT5waXRjaGVzWzBdOwo+ IC0JY3JjX2RhdGEtPmNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKPiArCWNvbXBvc2VyID0gdmtt c19wbGFuZV9zdGF0ZS0+Y29tcG9zZXI7Cj4gKwltZW1jcHkoJmNvbXBvc2VyLT5zcmMsICZwbGFu ZS0+c3RhdGUtPnNyYywgc2l6ZW9mKHN0cnVjdCBkcm1fcmVjdCkpOwo+ICsJbWVtY3B5KCZjb21w b3Nlci0+ZHN0LCAmcGxhbmUtPnN0YXRlLT5kc3QsIHNpemVvZihzdHJ1Y3QgZHJtX3JlY3QpKTsK PiArCW1lbWNweSgmY29tcG9zZXItPmZiLCBmYiwgc2l6ZW9mKHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIpKTsKPiArCWRybV9mcmFtZWJ1ZmZlcl9nZXQoJmNvbXBvc2VyLT5mYik7Cj4gKwljb21wb3Nl ci0+b2Zmc2V0ID0gZmItPm9mZnNldHNbMF07Cj4gKwljb21wb3Nlci0+cGl0Y2ggPSBmYi0+cGl0 Y2hlc1swXTsKPiArCWNvbXBvc2VyLT5jcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07Cj4gIH0KPiAg Cj4gIHN0YXRpYyBpbnQgdmttc19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gLS0gCj4gMi4yMS4wCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs