From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drm/i915: Pass around crtc and connector states for audio Date: Tue, 31 Oct 2017 21:58:39 +0200 Message-ID: <20171031195839.GZ10981@intel.com> References: <20171030184654.17429-1-ville.syrjala@linux.intel.com> <87zi87eku0.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B65FC6E283 for ; Tue, 31 Oct 2017 19:58:43 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87zi87eku0.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMzEsIDIwMTcgYXQgMTE6MTk6MDNBTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gTW9uLCAzMCBPY3QgMjAxNywgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+Cj4gPiBFeHBsaWNpdGx5IHBhc3MgdGhlIGNydGMg YW5kIGNvbm5lY3RvciBzdGF0ZXMgaW50byB0aGUgYXVkaW8KPiA+IGNvZGUgZW5hYmxlL2Rpc2Fi bGUgaG9va3MsIGFuZCBwbHVtYiB0aGVtIGFsbCB0aGUgd2F5IGRvd24uCj4gPgo+ID4gVGhpcyBn ZXRzIHJpZCBvZiBhbG1vc3QgYWxsIGNydGMtPmNvbmZpZyBhbmQgZW5jb2Rlci0+Y3J0Ywo+ID4g dXNlcy4gVGhlIG9uZSBwbGFjZSB3aGVyZSB3ZSBzdGlsbCB1c2UgdGhlbSBpcwo+ID4gaTkxNV9h dWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKCkgc2luY2UgdGhhdCBnZXRzIGNhbGxlZCBm cm9tCj4gPiB0aGUgYXVkaW8gZHJpdmVyIGFuZCB3ZSBkb24ndCBoYXZlIGV4cGxpY2l0IHN0YXRl cyBhcm91bmQgdGhlbi4KPiAKPiBXaGF0IGEgdGVkaW91cyBwYXRjaCB0byByZXZpZXchCj4gCj4g T24gYm90aCwKPiAKPiBSZXZpZXdlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVs LmNvbT4KClRoYW5rcyBmb3Igc3VmZmVyaW5nIHRocm91Z2ggdGhlIHRlZGl1bS4gU2VyaWVzIHB1 c2hlZCB0byBkaW5xLgoKPiAKPiAKPiA+Cj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICB8ICAxMCArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMgIHwgMjAyICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgIHwgICA2ICstCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgfCAgIDMgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9tc3QuYyB8ICAgMyArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgIHwgICA0ICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jICAgfCAgIDYgKy0KPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCAx MDIgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCA0 YTczMjVjNDE4OWMuLmMxMGZlY2U1OGU4NiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiA+IEBAIC03MjYsMTAgKzcyNiwxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxheV9mdW5j cyB7Cj4gPiAgCXZvaWQgKCpjcnRjX2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSwKPiA+ICAJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRf c3RhdGUpOwo+ID4gIAl2b2lkICgqdXBkYXRlX2NydGNzKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpOwo+ID4gLQl2b2lkICgqYXVkaW9fY29kZWNfZW5hYmxlKShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ID4gLQkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiA+IC0JCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUpOwo+ID4gLQl2b2lkICgqYXVkaW9fY29kZWNfZGlzYWJsZSkoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpOwo+ID4gKwl2b2lkICgqYXVkaW9fY29kZWNfZW5hYmxlKShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiArCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPiA+ICsJdm9pZCAoKmF1ZGlvX2NvZGVjX2Rpc2FibGUp KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gKwkJCQkgICAgY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ID4gKwkJCQkgICAgY29uc3Qgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKTsKPiA+ICAJdm9pZCAoKmZk aV9saW5rX3RyYWluKShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICAJCQkgICAgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ID4gIAl2b2lkICgqaW5p dF9jbG9ja19nYXRpbmcpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+IGluZGV4IDBkZGJhMTZmZGUxYi4uZTU2NTIw MDM3MjcwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8u Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gQEAgLTEw MiwxMyArMTAyLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBfYXVkX25fbSBkcF9hdWRfbl9t W10gPSB7Cj4gPiAgfTsKPiA+ICAKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRwX2F1ZF9uX20g Kgo+ID4gLWF1ZGlvX2NvbmZpZ19kcF9nZXRfbl9tKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLCBpbnQgcmF0ZSkKPiA+ICthdWRpb19jb25maWdfZHBfZ2V0X25fbShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgaW50IHJhdGUpCj4gPiAgewo+ID4gIAlpbnQg aTsKPiA+ICAKPiA+ICAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZHBfYXVkX25fbSk7IGkr Kykgewo+ID4gIAkJaWYgKHJhdGUgPT0gZHBfYXVkX25fbVtpXS5zYW1wbGVfcmF0ZSAmJgo+ID4g LQkJICAgIGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA9PSBkcF9hdWRfbl9tW2ldLmNs b2NrKQo+ID4gKwkJICAgIGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgPT0gZHBfYXVkX25fbVtpXS5j bG9jaykKPiA+ICAJCQlyZXR1cm4gJmRwX2F1ZF9uX21baV07Cj4gPiAgCX0KPiA+ICAKPiA+IEBA IC0xNTcsOCArMTU3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgewo+ID4gIH07Cj4gPiAgCj4g PiAgLyogZ2V0IEFVRF9DT05GSUdfUElYRUxfQ0xPQ0tfSERNSV8qIHZhbHVlIGZvciBtb2RlICov Cj4gPiAtc3RhdGljIHUzMiBhdWRpb19jb25maWdfaGRtaV9waXhlbF9jbG9jayhjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiA+ICtzdGF0aWMgdTMyIGF1ZGlv X2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ID4gIHsKPiA+ICsJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPQo+ID4gKwkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ ICAJaW50IGk7Cj4gPiAgCj4gPiAgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhkbWlfYXVk aW9fY2xvY2spOyBpKyspIHsKPiA+IEBAIC0xNzksOSArMTgxLDExIEBAIHN0YXRpYyB1MzIgYXVk aW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkCj4gPiAgCXJldHVybiBoZG1pX2F1ZGlvX2Nsb2NrW2ldLmNvbmZpZzsKPiA+ICB9 Cj4gPiAgCj4gPiAtc3RhdGljIGludCBhdWRpb19jb25maWdfaGRtaV9nZXRfbihjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSwKPiA+ICtzdGF0aWMgaW50IGF1ZGlv X2NvbmZpZ19oZG1pX2dldF9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ID4gIAkJCQkgICBpbnQgcmF0ZSkKPiA+ICB7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiA+ICsJCSZjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGU7Cj4gPiAgCWludCBpOwo+ID4gIAo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShoZG1pX2F1ZF9uY3RzKTsgaSsrKSB7Cj4gPiBAQCAtMjIwLDcgKzIyNCw5IEBAIHN0 YXRpYyBib29sIGludGVsX2VsZF91cHRvZGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ID4gIAlyZXR1cm4gdHJ1ZTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgZzR4 X2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiAr c3RhdGljIHZvaWQgZzR4X2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gPiArCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUsCj4gPiArCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICAJdWludDMyX3QgZWxk diwgdG1wOwo+ID4gQEAgLTIzOSwxMSArMjQ1LDEyIEBAIHN0YXRpYyB2b2lkIGc0eF9hdWRpb19j b2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gIAlJOTE1X1dS SVRFKEc0WF9BVURfQ05UTF9TVCwgdG1wKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQg ZzR4X2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ID4gLQkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCQkJICAgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gPiArc3RhdGljIHZv aWQgZzR4X2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiA+ICsJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g PiArCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj b25uZWN0b3ItPmRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwo+ID4gIAl1aW50OF90ICplbGQgPSBj b25uZWN0b3ItPmVsZDsKPiA+ICAJdWludDMyX3QgZWxkdjsKPiA+ICAJdWludDMyX3QgdG1wOwo+ ID4gQEAgLTI3OSwxNiArMjg2LDIwIEBAIHN0YXRpYyB2b2lkIGc0eF9hdWRpb19jb2RlY19lbmFi bGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICB9Cj4gPiAgCj4gPiAgc3Rh dGljIHZvaWQKPiA+IC1oc3dfZHBfYXVkaW9fY29uZmlnX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YywgZW51bSBwb3J0IHBvcnQsCj4gPiAtCQkJICAgY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gPiAraHN3X2RwX2F1ZGlvX2NvbmZpZ191 cGRhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiArCQkJICAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsK PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7Cj4gPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBk ZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+ID4gLQlpbnQgcmF0ZSA9IGFjb21wID8gYWNvbXAt PmF1ZF9zYW1wbGVfcmF0ZVtwb3J0XSA6IDA7Cj4gPiAtCWNvbnN0IHN0cnVjdCBkcF9hdWRfbl9t ICpubSA9IGF1ZGlvX2NvbmZpZ19kcF9nZXRfbl9tKGludGVsX2NydGMsIHJhdGUpOwo+ID4gLQll bnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gKwllbnVt IHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKPiA+ICsJY29uc3Qgc3RydWN0IGRwX2F1ZF9uX20gKm5tOwo+ID4gKwlpbnQgcmF0ZTsK PiA+ICAJdTMyIHRtcDsKPiA+ICAKPiA+ICsJcmF0ZSA9IGFjb21wID8gYWNvbXAtPmF1ZF9zYW1w bGVfcmF0ZVtwb3J0XSA6IDA7Cj4gPiArCW5tID0gYXVkaW9fY29uZmlnX2RwX2dldF9uX20oY3J0 Y19zdGF0ZSwgcmF0ZSk7Cj4gPiAgCWlmIChubSkKPiA+ICAJCURSTV9ERUJVR19LTVMoInVzaW5n IE1hdWQgJXUsIE5hdWQgJXVcbiIsIG5tLT5tLCBubS0+bik7Cj4gPiAgCWVsc2UKPiA+IEBAIC0z MjMsMjMgKzMzNCwyNiBAQCBoc3dfZHBfYXVkaW9fY29uZmlnX3VwZGF0ZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YywgZW51bSBwb3J0IHBvcnQsCj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRp YyB2b2lkCj4gPiAtaHN3X2hkbWlfYXVkaW9fY29uZmlnX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YywgZW51bSBwb3J0IHBvcnQsCj4gPiAtCQkJICAgICBjb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiA+ICtoc3dfaGRtaV9hdWRpb19jb25m aWdfdXBkYXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gKwkJCSAgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiAgewo+ID4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2Uu ZGV2KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNv bXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+ID4gLQlpbnQgcmF0ZSA9IGFjb21wID8g YWNvbXAtPmF1ZF9zYW1wbGVfcmF0ZVtwb3J0XSA6IDA7Cj4gPiAtCWVudW0gcGlwZSBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKPiA+IC0JaW50IG47Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gKwllbnVtIHBv cnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKPiA+ICsJaW50IG4sIHJhdGU7Cj4gPiAgCXUzMiB0bXA7Cj4gPiAgCj4gPiArCXJhdGUgPSBh Y29tcCA/IGFjb21wLT5hdWRfc2FtcGxlX3JhdGVbcG9ydF0gOiAwOwo+ID4gKwo+ID4gIAl0bXAg PSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOwo+ID4gIAl0bXAgJj0gfkFVRF9DT05GSUdf Tl9WQUxVRV9JTkRFWDsKPiA+ICAJdG1wICY9IH5BVURfQ09ORklHX1BJWEVMX0NMT0NLX0hETUlf TUFTSzsKPiA+ICAJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7Cj4gPiAtCXRtcCB8 PSBhdWRpb19jb25maWdfaGRtaV9waXhlbF9jbG9jayhhZGp1c3RlZF9tb2RlKTsKPiA+ICsJdG1w IHw9IGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGNydGNfc3RhdGUpOwo+ID4gIAo+ID4g LQluID0gYXVkaW9fY29uZmlnX2hkbWlfZ2V0X24oYWRqdXN0ZWRfbW9kZSwgcmF0ZSk7Cj4gPiAr CW4gPSBhdWRpb19jb25maWdfaGRtaV9nZXRfbihjcnRjX3N0YXRlLCByYXRlKTsKPiA+ICAJaWYg KG4gIT0gMCkgewo+ID4gIAkJRFJNX0RFQlVHX0tNUygidXNpbmcgTiAlZFxuIiwgbik7Cj4gPiAg Cj4gPiBAQCAtMzYzLDIwICszNzcsMjIgQEAgaHN3X2hkbWlfYXVkaW9fY29uZmlnX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywgZW51bSBwb3J0IHBvcnQsCj4gPiAgfQo+ID4g IAo+ID4gIHN0YXRpYyB2b2lkCj4gPiAtaHN3X2F1ZGlvX2NvbmZpZ191cGRhdGUoc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMsIGVudW0gcG9ydCBwb3J0LAo+ID4gLQkJCWNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ID4gK2hzd19hdWRpb19jb25maWdf dXBkYXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gKwkJCWNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gIHsKPiA+IC0JaWYgKGludGVsX2Ny dGNfaGFzX2RwX2VuY29kZXIoaW50ZWxfY3J0Yy0+Y29uZmlnKSkKPiA+IC0JCWhzd19kcF9hdWRp b19jb25maWdfdXBkYXRlKGludGVsX2NydGMsIHBvcnQsIGFkanVzdGVkX21vZGUpOwo+ID4gKwlp ZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSkKPiA+ICsJCWhzd19kcF9h dWRpb19jb25maWdfdXBkYXRlKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ID4gIAllbHNlCj4gPiAt CQloc3dfaGRtaV9hdWRpb19jb25maWdfdXBkYXRlKGludGVsX2NydGMsIHBvcnQsIGFkanVzdGVk X21vZGUpOwo+ID4gKwkJaHN3X2hkbWlfYXVkaW9fY29uZmlnX3VwZGF0ZShlbmNvZGVyLCBjcnRj X3N0YXRlKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgaHN3X2F1ZGlvX2NvZGVjX2Rp c2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiArc3RhdGljIHZvaWQgaHN3 X2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAr CQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4g PiArCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3Rh dGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gPiAtCWVudW0gcGlwZSBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gKwllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7Cj4gPiAgCXVpbnQzMl90IHRtcDsKPiA+ICAKPiA+ICAJRFJNX0RF QlVHX0tNUygiRGlzYWJsZSBhdWRpbyBjb2RlYyBvbiBwaXBlICVjXG4iLCBwaXBlX25hbWUocGlw ZSkpOwo+ID4gQEAgLTM4OSw3ICs0MDUsNyBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJdG1wIHw9IEFVRF9D T05GSUdfTl9QUk9HX0VOQUJMRTsKPiA+ICAJdG1wICY9IH5BVURfQ09ORklHX1VQUEVSX05fTUFT SzsKPiA+ICAJdG1wICY9IH5BVURfQ09ORklHX0xPV0VSX05fTUFTSzsKPiA+IC0JaWYgKGludGVs X2NydGNfaGFzX2RwX2VuY29kZXIoaW50ZWxfY3J0Yy0+Y29uZmlnKSkKPiA+ICsJaWYgKGludGVs X2NydGNfaGFzX2RwX2VuY29kZXIob2xkX2NydGNfc3RhdGUpKQo+ID4gIAkJdG1wIHw9IEFVRF9D T05GSUdfTl9WQUxVRV9JTkRFWDsKPiA+ICAJSTkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwg dG1wKTsKPiA+ICAKPiA+IEBAIC00MDIsMTQgKzQxOCwxNCBAQCBzdGF0aWMgdm9pZCBoc3dfYXVk aW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMg dm9pZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gPiAtCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ID4g LQkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiA+ ICtzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiA+ICsJCQkJICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsKPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGludGVsX2VuY29kZXItPmJhc2UuY3J0Yyk7Cj4gPiAtCWVu dW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+IC0JZW51bSBwb3J0IHBvcnQgPSBp bnRlbF9lbmNvZGVyLT5wb3J0Owo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gPiArCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gPiAr CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ICAJY29uc3QgdWludDhfdCAqZWxkID0g Y29ubmVjdG9yLT5lbGQ7Cj4gPiAgCXVpbnQzMl90IHRtcDsKPiA+ICAJaW50IGxlbiwgaTsKPiA+ IEBAIC00NDgsMTcgKzQ2NCwxOSBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCUk5MTVfV1JJVEUoSFNXX0FV RF9QSU5fRUxEX0NQX1ZMRCwgdG1wKTsKPiA+ICAKPiA+ICAJLyogRW5hYmxlIHRpbWVzdGFtcHMg Ki8KPiA+IC0JaHN3X2F1ZGlvX2NvbmZpZ191cGRhdGUoaW50ZWxfY3J0YywgcG9ydCwgYWRqdXN0 ZWRfbW9kZSk7Cj4gPiArCWhzd19hdWRpb19jb25maWdfdXBkYXRlKGVuY29kZXIsIGNydGNfc3Rh dGUpOwo+ID4gIAo+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiAg fQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIGlsa19hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ID4gK3N0YXRpYyB2b2lkIGlsa19hdWRpb19j b2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gKwkJCQkgICAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ID4gKwkJCQkg ICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ID4g IHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRl bF9lbmNvZGVyLT5iYXNlLmRldik7Cj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOwo+ID4gLQllbnVtIHBp cGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gPiAtCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxf ZW5jb2Rlci0+cG9ydDsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+ICsJZW51bSBw aXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gKwllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBv cnQ7Cj4gPiAgCXVpbnQzMl90IHRtcCwgZWxkdjsKPiA+ICAJaTkxNV9yZWdfdCBhdWRfY29uZmln LCBhdWRfY250cmxfc3QyOwo+ID4gIAo+ID4gQEAgLTQ4NSw3ICs1MDMsNyBAQCBzdGF0aWMgdm9p ZCBpbGtfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlcikKPiA+ICAJdG1wIHw9IEFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRTsKPiA+ICAJdG1wICY9 IH5BVURfQ09ORklHX1VQUEVSX05fTUFTSzsKPiA+ICAJdG1wICY9IH5BVURfQ09ORklHX0xPV0VS X05fTUFTSzsKPiA+IC0JaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoaW50ZWxfY3J0Yy0+ Y29uZmlnKSkKPiA+ICsJaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIob2xkX2NydGNfc3Rh dGUpKQo+ID4gIAkJdG1wIHw9IEFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKPiA+ICAJSTkxNV9X UklURShhdWRfY29uZmlnLCB0bXApOwo+ID4gIAo+ID4gQEAgLTQ5NywxNCArNTE1LDE1IEBAIHN0 YXRpYyB2b2lkIGlsa19hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyKQo+ID4gIAlJOTE1X1dSSVRFKGF1ZF9jbnRybF9zdDIsIHRtcCk7Cj4gPiAg fQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIGlsa19hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+IC0JCQkJICAgc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIsCj4gPiAtCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlKQo+ID4gK3N0YXRpYyB2b2lkIGlsa19hdWRpb19jb2RlY19lbmFibGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiArCQkJCSAgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpOwo+ID4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+ YmFzZS5jcnRjKTsKPiA+IC0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4g LQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2VuY29kZXItPnBvcnQ7Cj4gPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4g KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbm5fc3Rh dGUtPmNvbm5lY3RvcjsKPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gKwll bnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gPiAgCXVpbnQ4X3QgKmVsZCA9IGNvbm5l Y3Rvci0+ZWxkOwo+ID4gIAl1aW50MzJfdCB0bXAsIGVsZHY7Cj4gPiAgCWludCBsZW4sIGk7Cj4g PiBAQCAtNTY4LDM2ICs1ODcsMzYgQEAgc3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2VuYWJs ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIAl0bXAgJj0gfkFVRF9DT05G SUdfTl9WQUxVRV9JTkRFWDsKPiA+ICAJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7 Cj4gPiAgCXRtcCAmPSB+QVVEX0NPTkZJR19QSVhFTF9DTE9DS19IRE1JX01BU0s7Cj4gPiAtCWlm IChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGludGVsX2NydGMtPmNvbmZpZykpCj4gPiArCWlm IChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKQo+ID4gIAkJdG1wIHw9IEFV RF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKPiA+ICAJZWxzZQo+ID4gLQkJdG1wIHw9IGF1ZGlvX2Nv bmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGFkanVzdGVkX21vZGUpOwo+ID4gKwkJdG1wIHw9IGF1ZGlv X2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGNydGNfc3RhdGUpOwo+ID4gIAlJOTE1X1dSSVRFKGF1 ZF9jb25maWcsIHRtcCk7Cj4gPiAgfQo+ID4gIAo+ID4gIC8qKgo+ID4gICAqIGludGVsX2F1ZGlv X2NvZGVjX2VuYWJsZSAtIEVuYWJsZSB0aGUgYXVkaW8gY29kZWMgZm9yIEhEIGF1ZGlvCj4gPiAt ICogQGludGVsX2VuY29kZXI6IGVuY29kZXIgb24gd2hpY2ggdG8gZW5hYmxlIGF1ZGlvCj4gPiAr ICogQGVuY29kZXI6IGVuY29kZXIgb24gd2hpY2ggdG8gZW5hYmxlIGF1ZGlvCj4gPiAgICogQGNy dGNfc3RhdGU6IHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgY3J0YyBzdGF0ZS4KPiA+ICAgKiBAY29u bl9zdGF0ZTogcG9pbnRlciB0byB0aGUgY3VycmVudCBjb25uZWN0b3Igc3RhdGUuCj4gPiAgICoK PiA+ICAgKiBUaGUgZW5hYmxlIHNlcXVlbmNlcyBtYXkgb25seSBiZSBwZXJmb3JtZWQgYWZ0ZXIg ZW5hYmxpbmcgdGhlIHRyYW5zY29kZXIgYW5kCj4gPiAgICogcG9ydCwgYW5kIGFmdGVyIGNvbXBs ZXRlZCBsaW5rIHRyYWluaW5nLgo+ID4gICAqLwo+ID4gLXZvaWQgaW50ZWxfYXVkaW9fY29kZWNf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ID4gK3ZvaWQgaW50 ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g IAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4g IAkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2VuY29kZXIt PmJhc2U7Cj4gPiAtCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+IC0Jc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICAJc3RydWN0IGk5MTVf YXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7Cj4gPiAt CWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZW5jb2Rlci0+cG9ydDsKPiA+IC0JZW51bSBwaXBlIHBp cGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7Cj4gPiArCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwo+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+ Y29ubmVjdG9yOwo+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9Cj4gPiArCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gKwllbnVt IHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKPiA+ICAKPiA+IC0JY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwo+ID4g LQlpZiAoIWNvbm5lY3RvciB8fCAhY29ubmVjdG9yLT5lbGRbMF0pCj4gPiArCWlmICghY29ubmVj dG9yLT5lbGRbMF0pCj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAgCURSTV9ERUJVR19EUklWRVIo IkVMRCBvbiBbQ09OTkVDVE9SOiVkOiVzXSwgW0VOQ09ERVI6JWQ6JXNdXG4iLAo+ID4gQEAgLTYw OSwxOSArNjI4LDIwIEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ID4gIAljb25uZWN0b3ItPmVsZFs2XSA9IGRybV9h dl9zeW5jX2RlbGF5KGNvbm5lY3RvciwgYWRqdXN0ZWRfbW9kZSkgLyAyOwo+ID4gIAo+ID4gIAlp ZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZW5hYmxlKQo+ID4gLQkJZGV2X3ByaXYt PmRpc3BsYXkuYXVkaW9fY29kZWNfZW5hYmxlKGNvbm5lY3RvciwgaW50ZWxfZW5jb2RlciwKPiA+ IC0JCQkJCQkgICAgIGFkanVzdGVkX21vZGUpOwo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuYXVk aW9fY29kZWNfZW5hYmxlKGVuY29kZXIsCj4gPiArCQkJCQkJICAgICBjcnRjX3N0YXRlLAo+ID4g KwkJCQkJCSAgICAgY29ubl9zdGF0ZSk7Cj4gPiAgCj4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5hdl9tdXRleCk7Cj4gPiAtCWludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciA9IGNvbm5l Y3RvcjsKPiA+ICsJZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gY29ubmVjdG9yOwo+ID4gIAo+ ID4gIAkvKiByZWZlcnJlZCBpbiBhdWRpbyBjYWxsYmFja3MgKi8KPiA+IC0JZGV2X3ByaXYtPmF2 X2VuY19tYXBbcGlwZV0gPSBpbnRlbF9lbmNvZGVyOwo+ID4gKwlkZXZfcHJpdi0+YXZfZW5jX21h cFtwaXBlXSA9IGVuY29kZXI7Cj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsKPiA+ICAKPiA+ICAJaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNvbXAtPmF1 ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpIHsKPiA+ICAJCS8qIGF1ZGlvIGRyaXZlcnMgZXhwZWN0 IHBpcGUgPSAtMSB0byBpbmRpY2F0ZSBOb24tTVNUIGNhc2VzICovCj4gPiAtCQlpZiAoaW50ZWxf ZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFBfTVNUKQo+ID4gKwkJaWYgKGVuY29kZXIt PnR5cGUgIT0gSU5URUxfT1VUUFVUX0RQX01TVCkKPiA+ICAJCQlwaXBlID0gLTE7Cj4gPiAgCQlh Y29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19w dHIsCj4gPiAgCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBpcGUpOwo+ID4gQEAgLTYyOSwzNiAr NjQ5LDQxIEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyLAo+ID4gIAo+ID4gIAlpbnRlbF9scGVfYXVkaW9fbm90aWZ5KGRl dl9wcml2LCBwaXBlLCBwb3J0LCBjb25uZWN0b3ItPmVsZCwKPiA+ICAJCQkgICAgICAgY3J0Y19z dGF0ZS0+cG9ydF9jbG9jaywKPiA+IC0JCQkgICAgICAgaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJ TlRFTF9PVVRQVVRfRFApOwo+ID4gKwkJCSAgICAgICBlbmNvZGVyLT50eXBlID09IElOVEVMX09V VFBVVF9EUCk7Cj4gPiAgfQo+ID4gIAo+ID4gIC8qKgo+ID4gICAqIGludGVsX2F1ZGlvX2NvZGVj X2Rpc2FibGUgLSBEaXNhYmxlIHRoZSBhdWRpbyBjb2RlYyBmb3IgSEQgYXVkaW8KPiA+IC0gKiBA aW50ZWxfZW5jb2RlcjogZW5jb2RlciBvbiB3aGljaCB0byBkaXNhYmxlIGF1ZGlvCj4gPiArICog QGVuY29kZXI6IGVuY29kZXIgb24gd2hpY2ggdG8gZGlzYWJsZSBhdWRpbwo+ID4gKyAqIEBjcnRj X3N0YXRlOiBwb2ludGVyIHRvIHRoZSBvbGQgY3J0YyBzdGF0ZS4KPiA+ICsgKiBAY29ubl9zdGF0 ZTogcG9pbnRlciB0byB0aGUgb2xkIGNvbm5lY3RvciBzdGF0ZS4KPiA+ICAgKgo+ID4gICAqIFRo ZSBkaXNhYmxlIHNlcXVlbmNlcyBtdXN0IGJlIHBlcmZvcm1lZCBiZWZvcmUgZGlzYWJsaW5nIHRo ZSB0cmFuc2NvZGVyIG9yCj4gPiAgICogcG9ydC4KPiA+ICAgKi8KPiA+IC12b2lkIGludGVsX2F1 ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4g PiArdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ID4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUsCj4gPiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpvbGRfY29ubl9zdGF0ZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAlz dHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBv bmVudDsKPiA+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9lbmNvZGVyLT5wb3J0Owo+ID4gLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4g PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKPiA+ICsJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ID4g IAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiAgCj4gPiAgCWlmIChkZXZfcHJpdi0+ ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlKQo+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuYXVk aW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5 LmF1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2RlciwKPiA+ICsJCQkJCQkgICAgICBvbGRfY3J0Y19z dGF0ZSwKPiA+ICsJCQkJCQkgICAgICBvbGRfY29ubl9zdGF0ZSk7Cj4gPiAgCj4gPiAgCW11dGV4 X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiAtCWludGVsX2VuY29kZXItPmF1ZGlvX2Nv bm5lY3RvciA9IE5VTEw7Cj4gPiArCWVuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciA9IE5VTEw7Cj4g PiAgCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gTlVMTDsKPiA+ICAJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gIAo+ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1 ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkgewo+ID4gIAkJLyog YXVkaW8gZHJpdmVycyBleHBlY3QgcGlwZSA9IC0xIHRvIGluZGljYXRlIE5vbi1NU1QgY2FzZXMg Ki8KPiA+IC0JCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EUF9NU1Qp Cj4gPiArCQlpZiAoZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFBfTVNUKQo+ID4gIAkJ CXBpcGUgPSAtMTsKPiA+ICAJCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21w LT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwKPiA+ICAJCQkJCQkgKGludCkgcG9ydCwgKGludCkgcGlw ZSk7Cj4gPiBAQCAtNzkzLDEwICs4MTgsOSBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9u ZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICprZGV2LCBpbnQgcG9ydCwKPiA+ICAJ CQkJCQlpbnQgcGlwZSwgaW50IHJhdGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoa2Rldik7Cj4gPiAtCXN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKPiA+ IC0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4gPiAgCXN0cnVjdCBp OTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+ ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiA+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGM7Cj4gPiAgCWludCBlcnIgPSAwOwo+ID4gIAo+ID4gIAlpZiAoIUhBU19EREkoZGV2 X3ByaXYpKQo+ID4gQEAgLTgwNiwyMyArODMwLDE5IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19j b21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmtkZXYsIGludCBwb3J0LAo+ ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gIAo+ID4gIAkvKiAxLiBn ZXQgdGhlIHBpcGUgKi8KPiA+IC0JaW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmMoZGV2X3By aXYsIHBvcnQsIHBpcGUpOwo+ID4gLQlpZiAoIWludGVsX2VuY29kZXIgfHwgIWludGVsX2VuY29k ZXItPmJhc2UuY3J0Yykgewo+ID4gKwllbmNvZGVyID0gZ2V0X3NhdmVkX2VuYyhkZXZfcHJpdiwg cG9ydCwgcGlwZSk7Cj4gPiArCWlmICghZW5jb2RlciB8fCAhZW5jb2Rlci0+YmFzZS5jcnRjKSB7 Cj4gPiAgCQlEUk1fREVCVUdfS01TKCJOb3QgdmFsaWQgZm9yIHBvcnQgJWNcbiIsIHBvcnRfbmFt ZShwb3J0KSk7Cj4gPiAgCQllcnIgPSAtRU5PREVWOwo+ID4gIAkJZ290byB1bmxvY2s7Cj4gPiAg CX0KPiA+ICAKPiA+IC0JLyogcGlwZSBwYXNzZWQgZnJvbSB0aGUgYXVkaW8gZHJpdmVyIHdpbGwg YmUgLTEgZm9yIE5vbi1NU1QgY2FzZSAqLwo+ID4gLQljcnRjID0gdG9faW50ZWxfY3J0YyhpbnRl bF9lbmNvZGVyLT5iYXNlLmNydGMpOwo+ID4gLQlwaXBlID0gY3J0Yy0+cGlwZTsKPiA+IC0KPiA+ IC0JYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ ICsJY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiA+ICAKPiA+ICAJ LyogcG9ydCBtdXN0IGJlIHZhbGlkIG5vdywgb3RoZXJ3aXNlIHRoZSBwaXBlIHdpbGwgYmUgaW52 YWxpZCAqLwo+ID4gIAlhY29tcC0+YXVkX3NhbXBsZV9yYXRlW3BvcnRdID0gcmF0ZTsKPiA+ICAK PiA+IC0JaHN3X2F1ZGlvX2NvbmZpZ191cGRhdGUoY3J0YywgcG9ydCwgYWRqdXN0ZWRfbW9kZSk7 Cj4gPiArCWhzd19hdWRpb19jb25maWdfdXBkYXRlKGVuY29kZXIsIGNydGMtPmNvbmZpZyk7Cj4g PiAgCj4gPiAgIHVubG9jazoKPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgp Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IGluZGV4IGViOGY0ZTNiYjg1Zi4uYWNl Njc0Y2Q3OWI5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBAQCAtMjQy NSw3ICsyNDI1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kZGlfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ID4gIAo+ID4gIAlpZiAob2xkX2NydGNf c3RhdGUtPmhhc19hdWRpbykKPiA+IC0JCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2Rl cik7Cj4gPiArCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIsCj4gPiArCQkJCQkg IG9sZF9jcnRjX3N0YXRlLCBvbGRfY29ubl9zdGF0ZSk7Cj4gPiAgCj4gPiAgCWludGVsX2VkcF9k cnJzX2Rpc2FibGUoaW50ZWxfZHAsIG9sZF9jcnRjX3N0YXRlKTsKPiA+ICAJaW50ZWxfcHNyX2Rp c2FibGUoaW50ZWxfZHAsIG9sZF9jcnRjX3N0YXRlKTsKPiA+IEBAIC0yNDM3LDcgKzI0MzgsOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4gIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq b2xkX2Nvbm5fc3RhdGUpCj4gPiAgewo+ID4gIAlpZiAob2xkX2NydGNfc3RhdGUtPmhhc19hdWRp bykKPiA+IC0JCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2Rlcik7Cj4gPiArCQlpbnRl bF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIsCj4gPiArCQkJCQkgIG9sZF9jcnRjX3N0YXRl LCBvbGRfY29ubl9zdGF0ZSk7Cj4gPiAgCj4gPiAgCWludGVsX2hkbWlfaGFuZGxlX3Npbmtfc2Ny YW1ibGluZyhlbmNvZGVyLAo+ID4gIAkJCQkJICBvbGRfY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBmMGM0OTk2MmZmYmUuLmQyN2MwMTQ1 YWM5MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBAIC0yNzA4LDcgKzI3 MDgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVs X2RwKCZlbmNvZGVyLT5iYXNlKTsKPiA+ICAKPiA+ICAJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNf YXVkaW8pCj4gPiAtCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIpOwo+ID4gKwkJ aW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShlbmNvZGVyLAo+ID4gKwkJCQkJICBvbGRfY3J0Y19z dGF0ZSwgb2xkX2Nvbm5fc3RhdGUpOwo+ID4gIAo+ID4gIAkvKiBNYWtlIHN1cmUgdGhlIHBhbmVs IGlzIG9mZiBiZWZvcmUgdHJ5aW5nIHRvIGNoYW5nZSB0aGUgbW9kZS4gQnV0IGFsc28KPiA+ICAJ ICogZW5zdXJlIHRoYXQgd2UgaGF2ZSB2ZGQgd2hpbGUgd2Ugc3dpdGNoIG9mZiB0aGUgcGFuZWwu ICovCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4gaW5kZXggNmYxMWJiMzVm NjZmLi42NTNjYTM5Nzg5YjggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9tc3QuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmMKPiA+IEBAIC0xNDksNyArMTQ5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0X2Rpc2FibGVf ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQlEUk1fRVJST1IoImZhaWxl ZCB0byB1cGRhdGUgcGF5bG9hZCAlZFxuIiwgcmV0KTsKPiA+ICAJfQo+ID4gIAlpZiAob2xkX2Ny dGNfc3RhdGUtPmhhc19hdWRpbykKPiA+IC0JCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5j b2Rlcik7Cj4gPiArCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIsCj4gPiArCQkJ CQkgIG9sZF9jcnRjX3N0YXRlLCBvbGRfY29ubl9zdGF0ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0 YXRpYyB2b2lkIGludGVsX21zdF9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggNDQ5OGQ3NDNj ZWJjLi40YjgwNzMwMzQxNWIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ IEBAIC0xMzExLDcgKzEzMTEsOSBAQCB2b2lkIGludGVsX2luaXRfYXVkaW9faG9va3Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+ICB2b2lkIGludGVsX2F1ZGlvX2NvZGVj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJCQkgICAgICBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cj4gPiAtdm9pZCBpbnRl bF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiA+ ICt2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gPiArCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9j cnRjX3N0YXRlLAo+ID4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpvbGRfY29ubl9zdGF0ZSk7Cj4gPiAgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiAgdm9pZCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiAg dm9pZCBpbnRlbF9hdWRpb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBpbmRleCBmZTQ2YWJmZWJhMjYuLmZh MWM3OTNhMjFlZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBAQCAt MTIwNiw3ICsxMjA2LDggQEAgc3RhdGljIHZvaWQgZzR4X2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiA+ICB7Cj4gPiAgCWlmIChvbGRfY3J0Y19zdGF0 ZS0+aGFzX2F1ZGlvKQo+ID4gLQkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShlbmNvZGVyKTsK PiA+ICsJCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2RlciwKPiA+ICsJCQkJCSAgb2xk X2NydGNfc3RhdGUsIG9sZF9jb25uX3N0YXRlKTsKPiA+ICAKPiA+ICAJaW50ZWxfZGlzYWJsZV9o ZG1pKGVuY29kZXIsIG9sZF9jcnRjX3N0YXRlLCBvbGRfY29ubl9zdGF0ZSk7Cj4gPiAgfQo+ID4g QEAgLTEyMTYsNyArMTIxNyw4IEBAIHN0YXRpYyB2b2lkIHBjaF9kaXNhYmxlX2hkbWkoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gPiAgewo+ID4gIAlpZiAob2xkX2NydGNf c3RhdGUtPmhhc19hdWRpbykKPiA+IC0JCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2Rl cik7Cj4gPiArCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIsCj4gPiArCQkJCQkg IG9sZF9jcnRjX3N0YXRlLCBvbGRfY29ubl9zdGF0ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRp YyB2b2lkIHBjaF9wb3N0X2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=