From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/2] drm/i915: Pass around crtc and connector states for audio Date: Tue, 31 Oct 2017 11:19:03 +0200 Message-ID: <87zi87eku0.fsf@intel.com> References: <20171030184654.17429-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1C3EF89D8E for ; Tue, 31 Oct 2017 09:17:37 +0000 (UTC) In-Reply-To: <20171030184654.17429-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAzMCBPY3QgMjAxNywgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBFeHBsaWNpdGx5IHBhc3MgdGhlIGNydGMgYW5kIGNvbm5lY3Rv ciBzdGF0ZXMgaW50byB0aGUgYXVkaW8KPiBjb2RlIGVuYWJsZS9kaXNhYmxlIGhvb2tzLCBhbmQg cGx1bWIgdGhlbSBhbGwgdGhlIHdheSBkb3duLgo+Cj4gVGhpcyBnZXRzIHJpZCBvZiBhbG1vc3Qg YWxsIGNydGMtPmNvbmZpZyBhbmQgZW5jb2Rlci0+Y3J0Ywo+IHVzZXMuIFRoZSBvbmUgcGxhY2Ug d2hlcmUgd2Ugc3RpbGwgdXNlIHRoZW0gaXMKPiBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1 ZGlvX3JhdGUoKSBzaW5jZSB0aGF0IGdldHMgY2FsbGVkIGZyb20KPiB0aGUgYXVkaW8gZHJpdmVy IGFuZCB3ZSBkb24ndCBoYXZlIGV4cGxpY2l0IHN0YXRlcyBhcm91bmQgdGhlbi4KCldoYXQgYSB0 ZWRpb3VzIHBhdGNoIHRvIHJldmlldyEKCk9uIGJvdGgsCgpSZXZpZXdlZC1ieTogSmFuaSBOaWt1 bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KCgo+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgfCAgMTAgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8u YyAgfCAyMDIgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgIHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMgICAgIHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX21zdC5jIHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAg IHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgIHwgICA2ICst Cj4gIDcgZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMoKyksIDEwMiBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDRhNzMyNWM0MTg5Yy4uYzEwZmVjZTU4 ZTg2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTcyNiwxMCArNzI2LDEyIEBA IHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKPiAgCXZvaWQgKCpjcnRjX2Rpc2FibGUp KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJICAgICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKTsKPiAgCXZvaWQgKCp1cGRhdGVfY3J0Y3Mp KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gLQl2b2lkICgqYXVkaW9fY29kZWNf ZW5hYmxlKShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IC0JCQkJICAgc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSk7Cj4gLQl2b2lkICgqYXVkaW9fY29kZWNfZGlzYWJsZSko c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ICsJdm9pZCAoKmF1ZGlvX2NvZGVjX2Vu YWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCSAgIGNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPiArCXZvaWQgKCphdWRpb19jb2RlY19k aXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gKwkJCQkgICAgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKTsKPiAgCXZvaWQgKCpm ZGlfbGlua190cmFpbikoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJCSAgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIAl2b2lkICgqaW5pdF9j bG9ja19nYXRpbmcpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gaW5kZXggMGRkYmExNmZkZTFiLi5lNTY1MjAwMzcyNzAg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiBAQCAtMTAyLDEzICsxMDIsMTMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcF9hdWRfbl9tIGRwX2F1ZF9uX21bXSA9IHsKPiAgfTsK PiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBfYXVkX25fbSAqCj4gLWF1ZGlvX2NvbmZpZ19k cF9nZXRfbl9tKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLCBpbnQgcmF0ZSkKPiArYXVk aW9fY29uZmlnX2RwX2dldF9uX20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsIGludCByYXRlKQo+ICB7Cj4gIAlpbnQgaTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShkcF9hdWRfbl9tKTsgaSsrKSB7Cj4gIAkJaWYgKHJhdGUgPT0gZHBfYXVkX25f bVtpXS5zYW1wbGVfcmF0ZSAmJgo+IC0JCSAgICBpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xv Y2sgPT0gZHBfYXVkX25fbVtpXS5jbG9jaykKPiArCQkgICAgY3J0Y19zdGF0ZS0+cG9ydF9jbG9j ayA9PSBkcF9hdWRfbl9tW2ldLmNsb2NrKQo+ICAJCQlyZXR1cm4gJmRwX2F1ZF9uX21baV07Cj4g IAl9Cj4gIAo+IEBAIC0xNTcsOCArMTU3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgewo+ICB9 Owo+ICAKPiAgLyogZ2V0IEFVRF9DT05GSUdfUElYRUxfQ0xPQ0tfSERNSV8qIHZhbHVlIGZvciBt b2RlICovCj4gLXN0YXRpYyB1MzIgYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gK3N0YXRpYyB1MzIgYXVk aW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gIHsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0KPiArCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAJaW50 IGk7Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGRtaV9hdWRpb19jbG9jayk7 IGkrKykgewo+IEBAIC0xNzksOSArMTgxLDExIEBAIHN0YXRpYyB1MzIgYXVkaW9fY29uZmlnX2hk bWlfcGl4ZWxfY2xvY2soY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkCj4g IAlyZXR1cm4gaGRtaV9hdWRpb19jbG9ja1tpXS5jb25maWc7Cj4gIH0KPiAgCj4gLXN0YXRpYyBp bnQgYXVkaW9fY29uZmlnX2hkbWlfZ2V0X24oY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUsCj4gK3N0YXRpYyBpbnQgYXVkaW9fY29uZmlnX2hkbWlfZ2V0X24oY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQkgICBpbnQgcmF0 ZSkKPiAgewo+ICsJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQo+ICsJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gIAlpbnQgaTsKPiAgCj4g IAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShoZG1pX2F1ZF9uY3RzKTsgaSsrKSB7Cj4gQEAg LTIyMCw3ICsyMjQsOSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lbGRfdXB0b2RhdGUoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCBnNHhfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiArc3RhdGljIHZvaWQgZzR4X2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAl1aW50MzJfdCBlbGR2 LCB0bXA7Cj4gQEAgLTIzOSwxMSArMjQ1LDEyIEBAIHN0YXRpYyB2b2lkIGc0eF9hdWRpb19jb2Rl Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJSTkxNV9XUklURShH NFhfQVVEX0NOVExfU1QsIHRtcCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGc0eF9hdWRpb19j b2RlY19lbmFibGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAtCQkJCSAgIHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQkJICAgY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gK3N0YXRpYyB2b2lkIGc0eF9hdWRpb19jb2Rl Y19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCSAgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp Owo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbm5fc3RhdGUtPmNvbm5l Y3RvcjsKPiAgCXVpbnQ4X3QgKmVsZCA9IGNvbm5lY3Rvci0+ZWxkOwo+ICAJdWludDMyX3QgZWxk djsKPiAgCXVpbnQzMl90IHRtcDsKPiBAQCAtMjc5LDE2ICsyODYsMjAgQEAgc3RhdGljIHZvaWQg ZzR4X2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1oc3dfZHBfYXVkaW9fY29uZmlnX3VwZGF0ZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywgZW51bSBwb3J0IHBvcnQsCj4gLQkJCSAgIGNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICtoc3dfZHBfYXVkaW9f Y29uZmlnX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYp Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2 X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiAtCWludCByYXRlID0gYWNvbXAgPyBhY29tcC0+YXVk X3NhbXBsZV9yYXRlW3BvcnRdIDogMDsKPiAtCWNvbnN0IHN0cnVjdCBkcF9hdWRfbl9tICpubSA9 IGF1ZGlvX2NvbmZpZ19kcF9nZXRfbl9tKGludGVsX2NydGMsIHJhdGUpOwo+IC0JZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwllbnVtIHBvcnQgcG9ydCA9 IGVuY29kZXItPnBvcnQ7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gKwljb25z dCBzdHJ1Y3QgZHBfYXVkX25fbSAqbm07Cj4gKwlpbnQgcmF0ZTsKPiAgCXUzMiB0bXA7Cj4gIAo+ ICsJcmF0ZSA9IGFjb21wID8gYWNvbXAtPmF1ZF9zYW1wbGVfcmF0ZVtwb3J0XSA6IDA7Cj4gKwlu bSA9IGF1ZGlvX2NvbmZpZ19kcF9nZXRfbl9tKGNydGNfc3RhdGUsIHJhdGUpOwo+ICAJaWYgKG5t KQo+ICAJCURSTV9ERUJVR19LTVMoInVzaW5nIE1hdWQgJXUsIE5hdWQgJXVcbiIsIG5tLT5tLCBu bS0+bik7Cj4gIAllbHNlCj4gQEAgLTMyMywyMyArMzM0LDI2IEBAIGhzd19kcF9hdWRpb19jb25m aWdfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLCBlbnVtIHBvcnQgcG9ydCwK PiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiAtaHN3X2hkbWlfYXVkaW9fY29uZmlnX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywgZW51bSBwb3J0IHBvcnQsCj4gLQkJCSAgICAg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gK2hzd19oZG1p X2F1ZGlvX2NvbmZpZ191cGRhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJ CSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+ YmFzZS5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFj b21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiAtCWludCByYXRlID0gYWNvbXAgPyBh Y29tcC0+YXVkX3NhbXBsZV9yYXRlW3BvcnRdIDogMDsKPiAtCWVudW0gcGlwZSBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKPiAtCWludCBuOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwllbnVtIHBvcnQgcG9ydCA9 IGVuY29kZXItPnBvcnQ7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gKwlpbnQg biwgcmF0ZTsKPiAgCXUzMiB0bXA7Cj4gIAo+ICsJcmF0ZSA9IGFjb21wID8gYWNvbXAtPmF1ZF9z YW1wbGVfcmF0ZVtwb3J0XSA6IDA7Cj4gKwo+ICAJdG1wID0gSTkxNV9SRUFEKEhTV19BVURfQ0ZH KHBpcGUpKTsKPiAgCXRtcCAmPSB+QVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOwo+ICAJdG1wICY9 IH5BVURfQ09ORklHX1BJWEVMX0NMT0NLX0hETUlfTUFTSzsKPiAgCXRtcCAmPSB+QVVEX0NPTkZJ R19OX1BST0dfRU5BQkxFOwo+IC0JdG1wIHw9IGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2Nr KGFkanVzdGVkX21vZGUpOwo+ICsJdG1wIHw9IGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2Nr KGNydGNfc3RhdGUpOwo+ICAKPiAtCW4gPSBhdWRpb19jb25maWdfaGRtaV9nZXRfbihhZGp1c3Rl ZF9tb2RlLCByYXRlKTsKPiArCW4gPSBhdWRpb19jb25maWdfaGRtaV9nZXRfbihjcnRjX3N0YXRl LCByYXRlKTsKPiAgCWlmIChuICE9IDApIHsKPiAgCQlEUk1fREVCVUdfS01TKCJ1c2luZyBOICVk XG4iLCBuKTsKPiAgCj4gQEAgLTM2MywyMCArMzc3LDIyIEBAIGhzd19oZG1pX2F1ZGlvX2NvbmZp Z191cGRhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIGVudW0gcG9ydCBwb3J0LAo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1oc3dfYXVkaW9fY29uZmlnX3VwZGF0ZShzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywgZW51bSBwb3J0IHBvcnQsCj4gLQkJCWNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICtoc3dfYXVkaW9fY29uZmlnX3Vw ZGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCWlmIChpbnRlbF9jcnRjX2hhc19k cF9lbmNvZGVyKGludGVsX2NydGMtPmNvbmZpZykpCj4gLQkJaHN3X2RwX2F1ZGlvX2NvbmZpZ191 cGRhdGUoaW50ZWxfY3J0YywgcG9ydCwgYWRqdXN0ZWRfbW9kZSk7Cj4gKwlpZiAoaW50ZWxfY3J0 Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSkKPiArCQloc3dfZHBfYXVkaW9fY29uZmlnX3Vw ZGF0ZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKPiAgCWVsc2UKPiAtCQloc3dfaGRtaV9hdWRpb19j b25maWdfdXBkYXRlKGludGVsX2NydGMsIHBvcnQsIGFkanVzdGVkX21vZGUpOwo+ICsJCWhzd19o ZG1pX2F1ZGlvX2NvbmZpZ191cGRhdGUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gIH0KPiAgCj4g LXN0YXRpYyB2b2lkIGhzd19hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gKwkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMp Owo+IC0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJdWludDMyX3QgdG1wOwo+ICAKPiAg CURSTV9ERUJVR19LTVMoIkRpc2FibGUgYXVkaW8gY29kZWMgb24gcGlwZSAlY1xuIiwgcGlwZV9u YW1lKHBpcGUpKTsKPiBAQCAtMzg5LDcgKzQwNSw3IEBAIHN0YXRpYyB2b2lkIGhzd19hdWRpb19j b2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJdG1wIHw9IEFV RF9DT05GSUdfTl9QUk9HX0VOQUJMRTsKPiAgCXRtcCAmPSB+QVVEX0NPTkZJR19VUFBFUl9OX01B U0s7Cj4gIAl0bXAgJj0gfkFVRF9DT05GSUdfTE9XRVJfTl9NQVNLOwo+IC0JaWYgKGludGVsX2Ny dGNfaGFzX2RwX2VuY29kZXIoaW50ZWxfY3J0Yy0+Y29uZmlnKSkKPiArCWlmIChpbnRlbF9jcnRj X2hhc19kcF9lbmNvZGVyKG9sZF9jcnRjX3N0YXRlKSkKPiAgCQl0bXAgfD0gQVVEX0NPTkZJR19O X1ZBTFVFX0lOREVYOwo+ICAJSTkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKPiAg Cj4gQEAgLTQwMiwxNCArNDE4LDE0IEBAIHN0YXRpYyB2b2lkIGhzd19hdWRpb19jb2RlY19kaXNh YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+YXZfbXV0ZXgpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNf ZW5hYmxlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gLQkJCQkgICBzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAtCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICtzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29k ZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCQkgICBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmRldik7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+ YmFzZS5jcnRjKTsKPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAtCWVu dW0gcG9ydCBwb3J0ID0gaW50ZWxfZW5jb2Rlci0+cG9ydDsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVj dG9yOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJY29uc3QgdWludDhfdCAq ZWxkID0gY29ubmVjdG9yLT5lbGQ7Cj4gIAl1aW50MzJfdCB0bXA7Cj4gIAlpbnQgbGVuLCBpOwo+ IEBAIC00NDgsMTcgKzQ2NCwxOSBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlJOTE1X1dSSVRFKEhTV19BVURf UElOX0VMRF9DUF9WTEQsIHRtcCk7Cj4gIAo+ICAJLyogRW5hYmxlIHRpbWVzdGFtcHMgKi8KPiAt CWhzd19hdWRpb19jb25maWdfdXBkYXRlKGludGVsX2NydGMsIHBvcnQsIGFkanVzdGVkX21vZGUp Owo+ICsJaHN3X2F1ZGlvX2NvbmZpZ191cGRhdGUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gIAo+ ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dm9pZCBpbGtfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+ YmFzZS5jcnRjKTsKPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAtCWVu dW0gcG9ydCBwb3J0ID0gaW50ZWxfZW5jb2Rlci0+cG9ydDsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICsJZW51bSBwb3J0IHBvcnQg PSBlbmNvZGVyLT5wb3J0Owo+ICAJdWludDMyX3QgdG1wLCBlbGR2Owo+ICAJaTkxNV9yZWdfdCBh dWRfY29uZmlnLCBhdWRfY250cmxfc3QyOwo+ICAKPiBAQCAtNDg1LDcgKzUwMyw3IEBAIHN0YXRp YyB2b2lkIGlsa19hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyKQo+ICAJdG1wIHw9IEFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRTsKPiAgCXRtcCAm PSB+QVVEX0NPTkZJR19VUFBFUl9OX01BU0s7Cj4gIAl0bXAgJj0gfkFVRF9DT05GSUdfTE9XRVJf Tl9NQVNLOwo+IC0JaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoaW50ZWxfY3J0Yy0+Y29u ZmlnKSkKPiArCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKG9sZF9jcnRjX3N0YXRlKSkK PiAgCQl0bXAgfD0gQVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOwo+ICAJSTkxNV9XUklURShhdWRf Y29uZmlnLCB0bXApOwo+ICAKPiBAQCAtNDk3LDE0ICs1MTUsMTUgQEAgc3RhdGljIHZvaWQgaWxr X2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp Cj4gIAlJOTE1X1dSSVRFKGF1ZF9jbnRybF9zdDIsIHRtcCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIGlsa19hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiAtCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+IC0JCQkJ ICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gK3N0YXRp YyB2b2lkIGlsa19hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiArCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5l Y3Rvci0+ZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9lbmNvZGVyLT5wb3J0Owo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ig PSBjb25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gIAl1aW50OF90ICplbGQgPSBj b25uZWN0b3ItPmVsZDsKPiAgCXVpbnQzMl90IHRtcCwgZWxkdjsKPiAgCWludCBsZW4sIGk7Cj4g QEAgLTU2OCwzNiArNTg3LDM2IEBAIHN0YXRpYyB2b2lkIGlsa19hdWRpb19jb2RlY19lbmFibGUo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXRtcCAmPSB+QVVEX0NPTkZJR19O X1ZBTFVFX0lOREVYOwo+ICAJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7Cj4gIAl0 bXAgJj0gfkFVRF9DT05GSUdfUElYRUxfQ0xPQ0tfSERNSV9NQVNLOwo+IC0JaWYgKGludGVsX2Ny dGNfaGFzX2RwX2VuY29kZXIoaW50ZWxfY3J0Yy0+Y29uZmlnKSkKPiArCWlmIChpbnRlbF9jcnRj X2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKQo+ICAJCXRtcCB8PSBBVURfQ09ORklHX05fVkFM VUVfSU5ERVg7Cj4gIAllbHNlCj4gLQkJdG1wIHw9IGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Ns b2NrKGFkanVzdGVkX21vZGUpOwo+ICsJCXRtcCB8PSBhdWRpb19jb25maWdfaGRtaV9waXhlbF9j bG9jayhjcnRjX3N0YXRlKTsKPiAgCUk5MTVfV1JJVEUoYXVkX2NvbmZpZywgdG1wKTsKPiAgfQo+ ICAKPiAgLyoqCj4gICAqIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZSAtIEVuYWJsZSB0aGUgYXVk aW8gY29kZWMgZm9yIEhEIGF1ZGlvCj4gLSAqIEBpbnRlbF9lbmNvZGVyOiBlbmNvZGVyIG9uIHdo aWNoIHRvIGVuYWJsZSBhdWRpbwo+ICsgKiBAZW5jb2RlcjogZW5jb2RlciBvbiB3aGljaCB0byBl bmFibGUgYXVkaW8KPiAgICogQGNydGNfc3RhdGU6IHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgY3J0 YyBzdGF0ZS4KPiAgICogQGNvbm5fc3RhdGU6IHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgY29ubmVj dG9yIHN0YXRlLgo+ICAgKgo+ICAgKiBUaGUgZW5hYmxlIHNlcXVlbmNlcyBtYXkgb25seSBiZSBw ZXJmb3JtZWQgYWZ0ZXIgZW5hYmxpbmcgdGhlIHRyYW5zY29kZXIgYW5kCj4gICAqIHBvcnQsIGFu ZCBhZnRlciBjb21wbGV0ZWQgbGluayB0cmFpbmluZy4KPiAgICovCj4gLXZvaWQgaW50ZWxfYXVk aW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICt2 b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4gIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+ YmFzZTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0g JmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3I7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBv bmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+IC0JZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9lbmNvZGVyLT5wb3J0Owo+IC0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gKwljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gKwkJJmNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiArCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9y dDsKPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCj4gLQljb25uZWN0b3IgPSBj b25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gLQlpZiAoIWNvbm5lY3RvciB8fCAhY29ubmVjdG9yLT5l bGRbMF0pCj4gKwlpZiAoIWNvbm5lY3Rvci0+ZWxkWzBdKQo+ICAJCXJldHVybjsKPiAgCj4gIAlE Uk1fREVCVUdfRFJJVkVSKCJFTEQgb24gW0NPTk5FQ1RPUjolZDolc10sIFtFTkNPREVSOiVkOiVz XVxuIiwKPiBAQCAtNjA5LDE5ICs2MjgsMjAgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gIAljb25uZWN0b3ItPmVs ZFs2XSA9IGRybV9hdl9zeW5jX2RlbGF5KGNvbm5lY3RvciwgYWRqdXN0ZWRfbW9kZSkgLyAyOwo+ ICAKPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19lbmFibGUpCj4gLQkJZGV2 X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZW5hYmxlKGNvbm5lY3RvciwgaW50ZWxfZW5jb2Rl ciwKPiAtCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlKTsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5h dWRpb19jb2RlY19lbmFibGUoZW5jb2RlciwKPiArCQkJCQkJICAgICBjcnRjX3N0YXRlLAo+ICsJ CQkJCQkgICAgIGNvbm5fc3RhdGUpOwo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9t dXRleCk7Cj4gLQlpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgPSBjb25uZWN0b3I7Cj4g KwllbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgPSBjb25uZWN0b3I7Cj4gIAo+ICAJLyogcmVmZXJy ZWQgaW4gYXVkaW8gY2FsbGJhY2tzICovCj4gLQlkZXZfcHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9 IGludGVsX2VuY29kZXI7Cj4gKwlkZXZfcHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9IGVuY29kZXI7 Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gIAo+ICAJaWYgKGFjb21w ICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkp IHsKPiAgCQkvKiBhdWRpbyBkcml2ZXJzIGV4cGVjdCBwaXBlID0gLTEgdG8gaW5kaWNhdGUgTm9u LU1TVCBjYXNlcyAqLwo+IC0JCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBV VF9EUF9NU1QpCj4gKwkJaWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0RQX01TVCkK PiAgCQkJcGlwZSA9IC0xOwo+ICAJCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFj b21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwKPiAgCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBp cGUpOwo+IEBAIC02MjksMzYgKzY0OSw0MSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAgCj4gIAlpbnRlbF9scGVf YXVkaW9fbm90aWZ5KGRldl9wcml2LCBwaXBlLCBwb3J0LCBjb25uZWN0b3ItPmVsZCwKPiAgCQkJ ICAgICAgIGNydGNfc3RhdGUtPnBvcnRfY2xvY2ssCj4gLQkJCSAgICAgICBpbnRlbF9lbmNvZGVy LT50eXBlID09IElOVEVMX09VVFBVVF9EUCk7Cj4gKwkJCSAgICAgICBlbmNvZGVyLT50eXBlID09 IElOVEVMX09VVFBVVF9EUCk7Cj4gIH0KPiAgCj4gIC8qKgo+ICAgKiBpbnRlbF9hdWRpb19jb2Rl Y19kaXNhYmxlIC0gRGlzYWJsZSB0aGUgYXVkaW8gY29kZWMgZm9yIEhEIGF1ZGlvCj4gLSAqIEBp bnRlbF9lbmNvZGVyOiBlbmNvZGVyIG9uIHdoaWNoIHRvIGRpc2FibGUgYXVkaW8KPiArICogQGVu Y29kZXI6IGVuY29kZXIgb24gd2hpY2ggdG8gZGlzYWJsZSBhdWRpbwo+ICsgKiBAY3J0Y19zdGF0 ZTogcG9pbnRlciB0byB0aGUgb2xkIGNydGMgc3RhdGUuCj4gKyAqIEBjb25uX3N0YXRlOiBwb2lu dGVyIHRvIHRoZSBvbGQgY29ubmVjdG9yIHN0YXRlLgo+ICAgKgo+ICAgKiBUaGUgZGlzYWJsZSBz ZXF1ZW5jZXMgbXVzdCBiZSBwZXJmb3JtZWQgYmVmb3JlIGRpc2FibGluZyB0aGUgdHJhbnNjb2Rl ciBvcgo+ICAgKiBwb3J0Lgo+ICAgKi8KPiAtdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICt2b2lkIGludGVsX2F1ZGlv X2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gKwkJCSAg ICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4g IHsKPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNl Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21w ID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiAtCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxf ZW5jb2Rlci0+cG9ydDsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhlbmNvZGVyLT5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCWVudW0gcG9ydCBwb3J0ID0gZW5j b2Rlci0+cG9ydDsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCj4gIAlpZiAo ZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZSkKPiAtCQlkZXZfcHJpdi0+ZGlz cGxheS5hdWRpb19jb2RlY19kaXNhYmxlKGludGVsX2VuY29kZXIpOwo+ICsJCWRldl9wcml2LT5k aXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2RlciwKPiArCQkJCQkJICAgICAgb2xkX2Ny dGNfc3RhdGUsCj4gKwkJCQkJCSAgICAgIG9sZF9jb25uX3N0YXRlKTsKPiAgCj4gIAltdXRleF9s b2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+IC0JaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVj dG9yID0gTlVMTDsKPiArCWVuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciA9IE5VTEw7Cj4gIAlkZXZf cHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9IE5VTEw7Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2 LT5hdl9tdXRleCk7Cj4gIAo+ICAJaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNv bXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpIHsKPiAgCQkvKiBhdWRpbyBkcml2ZXJzIGV4 cGVjdCBwaXBlID0gLTEgdG8gaW5kaWNhdGUgTm9uLU1TVCBjYXNlcyAqLwo+IC0JCWlmIChpbnRl bF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EUF9NU1QpCj4gKwkJaWYgKGVuY29kZXIt PnR5cGUgIT0gSU5URUxfT1VUUFVUX0RQX01TVCkKPiAgCQkJcGlwZSA9IC0xOwo+ICAJCWFjb21w LT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwK PiAgCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBpcGUpOwo+IEBAIC03OTMsMTAgKzgxOCw5IEBA IHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBk ZXZpY2UgKmtkZXYsIGludCBwb3J0LAo+ICAJCQkJCQlpbnQgcGlwZSwgaW50IHJhdGUpCj4gIHsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShrZGV2 KTsKPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOwo+IC0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGM7Cj4gLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZTsKPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVk aW9fY29tcG9uZW50Owo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YzsKPiAgCWludCBlcnIgPSAwOwo+ICAKPiAgCWlmICghSEFTX0RE SShkZXZfcHJpdikpCj4gQEAgLTgwNiwyMyArODMwLDE5IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRp b19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmtkZXYsIGludCBwb3J0 LAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAgCj4gIAkvKiAxLiBnZXQg dGhlIHBpcGUgKi8KPiAtCWludGVsX2VuY29kZXIgPSBnZXRfc2F2ZWRfZW5jKGRldl9wcml2LCBw b3J0LCBwaXBlKTsKPiAtCWlmICghaW50ZWxfZW5jb2RlciB8fCAhaW50ZWxfZW5jb2Rlci0+YmFz ZS5jcnRjKSB7Cj4gKwllbmNvZGVyID0gZ2V0X3NhdmVkX2VuYyhkZXZfcHJpdiwgcG9ydCwgcGlw ZSk7Cj4gKwlpZiAoIWVuY29kZXIgfHwgIWVuY29kZXItPmJhc2UuY3J0Yykgewo+ICAJCURSTV9E RUJVR19LTVMoIk5vdCB2YWxpZCBmb3IgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKPiAg CQllcnIgPSAtRU5PREVWOwo+ICAJCWdvdG8gdW5sb2NrOwo+ICAJfQo+ICAKPiAtCS8qIHBpcGUg cGFzc2VkIGZyb20gdGhlIGF1ZGlvIGRyaXZlciB3aWxsIGJlIC0xIGZvciBOb24tTVNUIGNhc2Ug Ki8KPiAtCWNydGMgPSB0b19pbnRlbF9jcnRjKGludGVsX2VuY29kZXItPmJhc2UuY3J0Yyk7Cj4g LQlwaXBlID0gY3J0Yy0+cGlwZTsKPiAtCj4gLQlhZGp1c3RlZF9tb2RlID0gJmNydGMtPmNvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICsJY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+ YmFzZS5jcnRjKTsKPiAgCj4gIAkvKiBwb3J0IG11c3QgYmUgdmFsaWQgbm93LCBvdGhlcndpc2Ug dGhlIHBpcGUgd2lsbCBiZSBpbnZhbGlkICovCj4gIAlhY29tcC0+YXVkX3NhbXBsZV9yYXRlW3Bv cnRdID0gcmF0ZTsKPiAgCj4gLQloc3dfYXVkaW9fY29uZmlnX3VwZGF0ZShjcnRjLCBwb3J0LCBh ZGp1c3RlZF9tb2RlKTsKPiArCWhzd19hdWRpb19jb25maWdfdXBkYXRlKGVuY29kZXIsIGNydGMt PmNvbmZpZyk7Cj4gIAo+ICAgdW5sb2NrOgo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZf bXV0ZXgpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggZWI4ZjRlM2JiODVmLi5h Y2U2NzRjZDc5YjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0yNDI1LDcg KzI0MjUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9kcChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9f aW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAKPiAgCWlmIChvbGRfY3J0Y19zdGF0ZS0+aGFz X2F1ZGlvKQo+IC0JCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2Rlcik7Cj4gKwkJaW50 ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShlbmNvZGVyLAo+ICsJCQkJCSAgb2xkX2NydGNfc3RhdGUs IG9sZF9jb25uX3N0YXRlKTsKPiAgCj4gIAlpbnRlbF9lZHBfZHJyc19kaXNhYmxlKGludGVsX2Rw LCBvbGRfY3J0Y19zdGF0ZSk7Cj4gIAlpbnRlbF9wc3JfZGlzYWJsZShpbnRlbF9kcCwgb2xkX2Ny dGNfc3RhdGUpOwo+IEBAIC0yNDM3LDcgKzI0MzgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNh YmxlX2RkaV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gIAlp ZiAob2xkX2NydGNfc3RhdGUtPmhhc19hdWRpbykKPiAtCQlpbnRlbF9hdWRpb19jb2RlY19kaXNh YmxlKGVuY29kZXIpOwo+ICsJCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2RlciwKPiAr CQkJCQkgIG9sZF9jcnRjX3N0YXRlLCBvbGRfY29ubl9zdGF0ZSk7Cj4gIAo+ICAJaW50ZWxfaGRt aV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKGVuY29kZXIsCj4gIAkJCQkJICBvbGRfY29ubl9zdGF0 ZS0+Y29ubmVjdG9yLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGYwYzQ5OTYyZmZi ZS4uZDI3YzAxNDVhYzkxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTI3MDgs NyArMjcwOCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAgCj4gIAlpZiAob2xkX2NydGNfc3RhdGUtPmhhc19h dWRpbykKPiAtCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIpOwo+ICsJCWludGVs X2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2RlciwKPiArCQkJCQkgIG9sZF9jcnRjX3N0YXRlLCBv bGRfY29ubl9zdGF0ZSk7Cj4gIAo+ICAJLyogTWFrZSBzdXJlIHRoZSBwYW5lbCBpcyBvZmYgYmVm b3JlIHRyeWluZyB0byBjaGFuZ2UgdGhlIG1vZGUuIEJ1dCBhbHNvCj4gIAkgKiBlbnN1cmUgdGhh dCB3ZSBoYXZlIHZkZCB3aGlsZSB3ZSBzd2l0Y2ggb2ZmIHRoZSBwYW5lbC4gKi8KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IGluZGV4IDZmMTFiYjM1ZjY2Zi4uNjUzY2EzOTc4OWI4 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBAQCAtMTQ5LDcgKzE0OSw4 IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHVwZGF0ZSBwYXlsb2FkICVkXG4i LCByZXQpOwo+ICAJfQo+ICAJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNfYXVkaW8pCj4gLQkJaW50 ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShlbmNvZGVyKTsKPiArCQlpbnRlbF9hdWRpb19jb2RlY19k aXNhYmxlKGVuY29kZXIsCj4gKwkJCQkJICBvbGRfY3J0Y19zdGF0ZSwgb2xkX2Nvbm5fc3RhdGUp Owo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfcG9zdF9kaXNhYmxlX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5k ZXggNDQ5OGQ3NDNjZWJjLi40YjgwNzMwMzQxNWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+IEBAIC0xMzExLDcgKzEzMTEsOSBAQCB2b2lkIGludGVsX2luaXRfYXVkaW9faG9va3Mo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpbnRlbF9hdWRpb19j b2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgIGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICAgICBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cj4gLXZvaWQgaW50ZWxf YXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gK3Zv aWQgaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiArCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlLAo+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nv bm5fc3RhdGUpOwo+ICB2b2lkIGk5MTVfYXVkaW9fY29tcG9uZW50X2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jbGVh bnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfYXVk aW9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZG1pLmMKPiBpbmRleCBmZTQ2YWJmZWJhMjYuLmZhMWM3OTNhMjFlZiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBAQCAtMTIwNiw3ICsxMjA2LDggQEAgc3RhdGlj IHZvaWQgZzR4X2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUp Cj4gIHsKPiAgCWlmIChvbGRfY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQo+IC0JCWludGVsX2F1ZGlv X2NvZGVjX2Rpc2FibGUoZW5jb2Rlcik7Cj4gKwkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShl bmNvZGVyLAo+ICsJCQkJCSAgb2xkX2NydGNfc3RhdGUsIG9sZF9jb25uX3N0YXRlKTsKPiAgCj4g IAlpbnRlbF9kaXNhYmxlX2hkbWkoZW5jb2Rlciwgb2xkX2NydGNfc3RhdGUsIG9sZF9jb25uX3N0 YXRlKTsKPiAgfQo+IEBAIC0xMjE2LDcgKzEyMTcsOCBAQCBzdGF0aWMgdm9pZCBwY2hfZGlzYWJs ZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgIGNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgewo+ICAJaWYgKG9s ZF9jcnRjX3N0YXRlLT5oYXNfYXVkaW8pCj4gLQkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShl bmNvZGVyKTsKPiArCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIsCj4gKwkJCQkJ ICBvbGRfY3J0Y19zdGF0ZSwgb2xkX2Nvbm5fc3RhdGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9p ZCBwY2hfcG9zdF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCgot LSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=