From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shane McKee Subject: Re: [PATCH v4 1/2] drm/i915: Add support for retrying hotplug Date: Thu, 11 Jul 2019 13:55:34 -0700 Message-ID: <20190711205534.GB17360@smckee-dev> References: <20190710221500.11576-1-jose.souza@intel.com> <20190711200515.GF5942@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id DB0336E28A for ; Thu, 11 Jul 2019 20:57:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190711200515.GF5942@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 =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMTEsIDIwMTkgYXQgMTE6MDU6MTVQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgSnVsIDEwLCAyMDE5IGF0IDAzOjE0OjU5UE0gLTA3MDAsIEpvc8Op IFJvYmVydG8gZGUgU291emEgd3JvdGU6Cj4gPiBGcm9tOiBJbXJlIERlYWsgPGltcmUuZGVha0Bp bnRlbC5jb20+Cj4gPiAKPiA+IFRoZXJlIGlzIHNvbWUgc2NlbmFyaW9zIHRoYXQgd2UgYXJlIGF3 YXJlIHRoYXQgc2luayBwcm9iZSBjYW4gZmFpbCwKPiA+IHNvIGxldHMgYWRkIHRoZSBpbmZyYXN0 cnVjdHVyZSB0byBsZXQgaG90cGx1ZygpIGhvb2sgdG8gcmVxdWVzdAo+ID4gYW5vdGhlciBwcm9i ZSBhZnRlciBzb21lIHRpbWUuCj4gPiAKPiA+IHYyOiBIYW5kbGUgc2hhcmVkIEhQRCBwaW5zIChJ bXJlKQo+ID4gdjM6IFJlYmFzZWQKPiA+IHY0OiBSZW5hbWVkIElOVEVMX0hPVFBMVUdfTk9DSEFO R0UgdG8gSU5URUxfSE9UUExVR19VTkNIQU5HRUQgdG8ga2VlcAo+ID4gaXQgY29uc2lzdGVudChS b2RyaWdvKQo+ID4gCj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KVGVzdGVkLWJ5OiBTaGFuZSBNY0tlZSA8c2hhbmUubWNrZWVAaW50ZWwuY29t Pgo+ID4gUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4K PiA+IFNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50 ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVs LmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4K PiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAg IHwgMTIgKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAg ICAgIHwgMTIgKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90 cGx1Zy5jIHwgNTkgKysrKysrKysrKysrKysrLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuaCB8ICA1ICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMgICAgfCAgOCArKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICB8ICAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgfCAgMyArLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgIHwgMTEgKysrLQo+ID4gIDggZmlsZXMgY2hh bmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ID4gaW5kZXggYWQ2MzhlN2YyN2JiLi43 MzRjMDA0ODAwZjggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RkaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RkaS5jCj4gPiBAQCAtNDA0NywxNCArNDA0NywxNiBAQCBzdGF0aWMgaW50IGludGVsX2hkbWlf cmVzZXRfbGluayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJcmV0dXJuIG1v ZGVzZXRfcGlwZSgmY3J0Yy0+YmFzZSwgY3R4KTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIGJv b2wgaW50ZWxfZGRpX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAt CQkJICAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gK3N0YXRpYyBl bnVtIGludGVsX2hvdHBsdWdfc3RhdGUKPiA+ICtpbnRlbF9kZGlfaG90cGx1ZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCSAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ID4gKwkJICBib29sIGlycV9yZWNlaXZlZCkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBk cm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gPiAtCWJvb2wgY2hhbmdlZDsKPiA+ICsJZW51 bSBpbnRlbF9ob3RwbHVnX3N0YXRlIHN0YXRlOwo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gLQlj aGFuZ2VkID0gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3Rvcik7Cj4gPiAr CXN0YXRlID0gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3RvciwgaXJxX3Jl Y2VpdmVkKTsKPiA+ICAKPiA+ICAJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ ID4gIAo+ID4gQEAgLTQwNzYsNyArNDA3OCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RkaV9ob3Rw bHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAlkcm1fbW9kZXNldF9hY3F1 aXJlX2ZpbmkoJmN0eCk7Cj4gPiAgCVdBUk4ocmV0LCAiQWNxdWlyaW5nIG1vZGVzZXQgbG9ja3Mg ZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7Cj4gPiAgCj4gPiAtCXJldHVybiBjaGFuZ2VkOwo+ID4g KwlyZXR1cm4gc3RhdGU7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICoKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+IGlu ZGV4IDBiZGI3ZWNjNWE4MS4uNDQyM2FiYmM3OTA3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+IEBAIC00ODUzLDE0ICs0ODUzLDE2IEBAIGludCBp bnRlbF9kcF9yZXRyYWluX2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAg ICogcmV0cmFpbiB0aGUgbGluayB0byBnZXQgYSBwaWN0dXJlLiBUaGF0J3MgaW4gY2FzZSBubwo+ ID4gICAqIHVzZXJzcGFjZSBjb21wb25lbnQgcmVhY3RlZCB0byBpbnRlcm1pdHRlbnQgSFBEIGRp cC4KPiA+ICAgKi8KPiA+IC1zdGF0aWMgYm9vbCBpbnRlbF9kcF9ob3RwbHVnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ID4gLQkJCSAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+ID4gK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUKPiA+ICtpbnRl bF9kcF9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gKwkJIHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsJCSBib29sIGlycV9yZWNlaXZlZCkK PiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gPiAtCWJv b2wgY2hhbmdlZDsKPiA+ICsJZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIHN0YXRlOwo+ID4gIAlp bnQgcmV0Owo+ID4gIAo+ID4gLQljaGFuZ2VkID0gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29k ZXIsIGNvbm5lY3Rvcik7Cj4gPiArCXN0YXRlID0gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29k ZXIsIGNvbm5lY3RvciwgaXJxX3JlY2VpdmVkKTsKPiA+ICAKPiA+ICAJZHJtX21vZGVzZXRfYWNx dWlyZV9pbml0KCZjdHgsIDApOwo+ID4gIAo+ID4gQEAgLTQ4NzksNyArNDg4MSw3IEBAIHN0YXRp YyBib29sIGludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g PiAgCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKPiA+ICAJV0FSTihyZXQsICJBY3F1 aXJpbmcgbW9kZXNldCBsb2NrcyBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKPiA+ICAKPiA+IC0J cmV0dXJuIGNoYW5nZWQ7Cj4gPiArCXJldHVybiBzdGF0ZTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3Rh dGljIHZvaWQgaW50ZWxfZHBfY2hlY2tfc2VydmljZV9pcnEoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5j Cj4gPiBpbmRleCBlYTNkZTRhY2M4NTAuLjJjYTkyNzgwYzY1OSAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYwo+ID4gQEAgLTExMiw2ICsx MTIsNyBAQCBlbnVtIGhwZF9waW4gaW50ZWxfaHBkX3Bpbl9kZWZhdWx0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAKPiA+ICAjZGVmaW5lIEhQRF9TVE9STV9ERVRFQ1Rf UEVSSU9ECQkxMDAwCj4gPiAgI2RlZmluZSBIUERfU1RPUk1fUkVFTkFCTEVfREVMQVkJKDIgKiA2 MCAqIDEwMDApCj4gPiArI2RlZmluZSBIUERfUkVUUllfREVMQVkJCQkxMDAwCj4gPiAgCj4gPiAg LyoqCj4gPiAgICogaW50ZWxfaHBkX2lycV9zdG9ybV9kZXRlY3QgLSBnYXRoZXIgc3RhdHMgYW5k IGRldGVjdCBIUEQgSVJRIHN0b3JtIG9uIGEgcGluCj4gPiBAQCAtMjY2LDggKzI2NywxMCBAQCBz dGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJxX3N0b3JtX3JlZW5hYmxlX3dvcmsoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQo+ID4gIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRp bWVfcG0sIHdha2VyZWYpOwo+ID4gIH0KPiA+ICAKPiA+IC1ib29sIGludGVsX2VuY29kZXJfaG90 cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCQkgICBzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiArZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlCj4g PiAraW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ID4gKwkJICAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gKwkJICAg ICAgYm9vbCBpcnFfcmVjZWl2ZWQpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiA+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBv bGRfc3RhdHVzOwo+ID4gQEAgLTI3OSw3ICsyODIsNyBAQCBib29sIGludGVsX2VuY29kZXJfaG90 cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCWRybV9oZWxwZXJfcHJv YmVfZGV0ZWN0KCZjb25uZWN0b3ItPmJhc2UsIE5VTEwsIGZhbHNlKTsKPiA+ICAKPiA+ICAJaWYg KG9sZF9zdGF0dXMgPT0gY29ubmVjdG9yLT5iYXNlLnN0YXR1cykKPiA+IC0JCXJldHVybiBmYWxz ZTsKPiA+ICsJCXJldHVybiBJTlRFTF9IT1RQTFVHX1VOQ0hBTkdFRDsKPiA+ICAKPiA+ICAJRFJN X0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc10gc3RhdHVzIHVwZGF0ZWQgZnJvbSAlcyB0byAl c1xuIiwKPiA+ICAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAo+ID4gQEAgLTI4Nyw3 ICsyOTAsNyBAQCBib29sIGludGVsX2VuY29kZXJfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiA+ICAJCSAgICAgIGRybV9nZXRfY29ubmVjdG9yX3N0YXR1c19uYW1lKG9s ZF9zdGF0dXMpLAo+ID4gIAkJICAgICAgZHJtX2dldF9jb25uZWN0b3Jfc3RhdHVzX25hbWUoY29u bmVjdG9yLT5iYXNlLnN0YXR1cykpOwo+ID4gIAo+ID4gLQlyZXR1cm4gdHJ1ZTsKPiA+ICsJcmV0 dXJuIElOVEVMX0hPVFBMVUdfQ0hBTkdFRDsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGJvb2wg aW50ZWxfZW5jb2Rlcl9oYXNfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ID4gQEAgLTMzOSw3ICszNDIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2RpZ3BvcnRfd29ya19m dW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICAJCXNwaW5fbG9ja19pcnEoJmRldl9w cml2LT5pcnFfbG9jayk7Cj4gPiAgCQlkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzIHw9IG9s ZF9iaXRzOwo+ID4gIAkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4g LQkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrKTsKPiA+ICsJ CXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLCAw KTsKPiAKPiBSYW5kb20gdGhvdWdodDogU2hvdWxkIG9wZW4gY29kZSB0aGlzIHdpdGggcXVldWVf ZGVsYXllZF93b3JrKCkgaW5zdGVhZAo+IHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhlIHdxIHJl YWxseSBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRoaXMgY2FsbAo+IGFuZCB0aGUgbW9kX2RlbGF5ZWRf d29yaygpPwo+IAo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTM0OSwxNCArMzUyLDE2IEBA IHN0YXRpYyB2b2lkIGk5MTVfZGlncG9ydF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQo+ID4gIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KPiA+IC0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwg aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ID4gKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlLAo+ID4gKwkJCSAgICAgaG90cGx1Zy5ob3RwbHVnX3dvcmsud29yayk7 Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiA+ICAJc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwo+ID4gIAlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKPiA+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKPiA+ICAJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPiA+ IC0JYm9vbCBjaGFuZ2VkID0gZmFsc2U7Cj4gPiArCXUzMiBjaGFuZ2VkID0gMCwgcmV0cnkgPSAw Owo+ID4gIAl1MzIgaHBkX2V2ZW50X2JpdHM7Cj4gPiArCXUzMiBocGRfcmV0cnlfYml0czsKPiA+ ICAKPiA+ICAJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gPiAgCURSTV9E RUJVR19LTVMoInJ1bm5pbmcgZW5jb2RlciBob3RwbHVnIGZ1bmN0aW9uc1xuIik7Cj4gPiBAQCAt MzY1LDYgKzM3MCw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gIAo+ID4gIAlocGRfZXZlbnRfYml0cyA9IGRldl9wcml2 LT5ob3RwbHVnLmV2ZW50X2JpdHM7Cj4gPiAgCWRldl9wcml2LT5ob3RwbHVnLmV2ZW50X2JpdHMg PSAwOwo+ID4gKwlocGRfcmV0cnlfYml0cyA9IGRldl9wcml2LT5ob3RwbHVnLnJldHJ5X2JpdHM7 Cj4gPiArCWRldl9wcml2LT5ob3RwbHVnLnJldHJ5X2JpdHMgPSAwOwo+ID4gIAo+ID4gIAkvKiBF bmFibGUgcG9sbGluZyBmb3IgY29ubmVjdG9ycyB3aGljaCBoYWQgSFBEIElSUSBzdG9ybXMgKi8K PiA+ICAJaW50ZWxfaHBkX2lycV9zdG9ybV9zd2l0Y2hfdG9fcG9sbGluZyhkZXZfcHJpdik7Cj4g PiBAQCAtMzczLDE2ICszODAsMjkgQEAgc3RhdGljIHZvaWQgaTkxNV9ob3RwbHVnX3dvcmtfZnVu YyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiAgCj4gPiAgCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7Cj4gPiAgCWRybV9mb3JfZWFjaF9jb25uZWN0 b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiA+ICsJCXUzMiBocGRfYml0Owo+ID4g Kwo+ID4gIAkJaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7 Cj4gPiAgCQlpZiAoIWludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcikKPiA+ICAJCQljb250aW51ZTsK PiA+ICAJCWludGVsX2VuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXI7Cj4gPiAtCQlp ZiAoaHBkX2V2ZW50X2JpdHMgJiAoMSA8PCBpbnRlbF9lbmNvZGVyLT5ocGRfcGluKSkgewo+ID4g KwkJaHBkX2JpdCA9IEJJVChpbnRlbF9lbmNvZGVyLT5ocGRfcGluKTsKPiA+ICsJCWlmICgoaHBk X2V2ZW50X2JpdHMgfCBocGRfcmV0cnlfYml0cykgJiBocGRfYml0KSB7Cj4gPiAgCQkJRFJNX0RF QlVHX0tNUygiQ29ubmVjdG9yICVzIChwaW4gJWkpIHJlY2VpdmVkIGhvdHBsdWcgZXZlbnQuXG4i LAo+ID4gIAkJCQkgICAgICBjb25uZWN0b3ItPm5hbWUsIGludGVsX2VuY29kZXItPmhwZF9waW4p Owo+ID4gIAo+ID4gLQkJCWNoYW5nZWQgfD0gaW50ZWxfZW5jb2Rlci0+aG90cGx1ZyhpbnRlbF9l bmNvZGVyLAo+ID4gLQkJCQkJCQkgIGludGVsX2Nvbm5lY3Rvcik7Cj4gPiArCQkJc3dpdGNoIChp bnRlbF9lbmNvZGVyLT5ob3RwbHVnKGludGVsX2VuY29kZXIsCj4gPiArCQkJCQkJICAgICAgIGlu dGVsX2Nvbm5lY3RvciwKPiA+ICsJCQkJCQkgICAgICAgaHBkX2V2ZW50X2JpdHMgJiBocGRfYml0 KSkgewo+ID4gKwkJCWNhc2UgSU5URUxfSE9UUExVR19VTkNIQU5HRUQ6Cj4gPiArCQkJCWJyZWFr Owo+ID4gKwkJCWNhc2UgSU5URUxfSE9UUExVR19DSEFOR0VEOgo+ID4gKwkJCQljaGFuZ2VkIHw9 IGhwZF9iaXQ7Cj4gPiArCQkJCWJyZWFrOwo+ID4gKwkJCWNhc2UgSU5URUxfSE9UUExVR19SRVRS WToKPiA+ICsJCQkJcmV0cnkgfD0gaHBkX2JpdDsKPiA+ICsJCQkJYnJlYWs7Cj4gPiArCQkJfQo+ ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9p dGVyKTsKPiA+IEBAIC0zOTAsNiArNDEwLDE3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193 b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gIAo+ID4gIAlpZiAoY2hhbmdl ZCkKPiA+ICAJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoZGV2KTsKPiA+ICsKPiA+ICsJ LyogUmVtb3ZlIHNoYXJlZCBIUEQgcGlucyB0aGF0IGhhdmUgY2hhbmdlZCAqLwo+ID4gKwlyZXRy eSAmPSB+Y2hhbmdlZDsKPiA+ICsJaWYgKHJldHJ5KSB7Cj4gPiArCQlzcGluX2xvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4gKwkJZGV2X3ByaXYtPmhvdHBsdWcucmV0cnlfYml0cyB8 PSByZXRyeTsKPiA+ICsJCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiA+ ICsKPiA+ICsJCW1vZF9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCAmZGV2X3ByaXYtPmhvdHBsdWcu aG90cGx1Z193b3JrLAo+ID4gKwkJCQkgbXNlY3NfdG9famlmZmllcyhIUERfUkVUUllfREVMQVkp KTsKPiA+ICsJfQo+ID4gIH0KPiA+ICAKPiA+ICAKPiA+IEBAIC01MTYsNyArNTQ3LDcgQEAgdm9p ZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gIAlpZiAocXVldWVfZGlnKQo+ID4gIAkJcXVldWVfd29yayhkZXZfcHJpdi0+aG90cGx1 Zy5kcF93cSwgJmRldl9wcml2LT5ob3RwbHVnLmRpZ19wb3J0X3dvcmspOwo+ID4gIAlpZiAocXVl dWVfaHApCj4gPiAtCQlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dv cmspOwo+ID4gKwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3Rw bHVnX3dvcmssIDApOwo+ID4gIH0KPiA+ICAKPiA+ICAvKioKPiA+IEBAIC02MzYsNyArNjY3LDgg QEAgdm9pZCBpbnRlbF9ocGRfcG9sbF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiA+ICAKPiA+ICB2b2lkIGludGVsX2hwZF9pbml0X3dvcmsoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIHsKPiA+IC0JSU5JVF9XT1JLKCZkZXZfcHJpdi0+aG90 cGx1Zy5ob3RwbHVnX3dvcmssIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMpOwo+ID4gKwlJTklUX0RF TEFZRURfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLAo+ID4gKwkJCSAgaTkx NV9ob3RwbHVnX3dvcmtfZnVuYyk7Cj4gPiAgCUlOSVRfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcu ZGlnX3BvcnRfd29yaywgaTkxNV9kaWdwb3J0X3dvcmtfZnVuYyk7Cj4gPiAgCUlOSVRfV09SSygm ZGV2X3ByaXYtPmhvdHBsdWcucG9sbF9pbml0X3dvcmssIGk5MTVfaHBkX3BvbGxfaW5pdF93b3Jr KTsKPiA+ICAJSU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLnJlZW5hYmxlX3dv cmssCj4gPiBAQCAtNjUwLDExICs2ODIsMTIgQEAgdm9pZCBpbnRlbF9ocGRfY2FuY2VsX3dvcmso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAlkZXZfcHJpdi0+aG90cGx1 Zy5sb25nX3BvcnRfbWFzayA9IDA7Cj4gPiAgCWRldl9wcml2LT5ob3RwbHVnLnNob3J0X3BvcnRf bWFzayA9IDA7Cj4gPiAgCWRldl9wcml2LT5ob3RwbHVnLmV2ZW50X2JpdHMgPSAwOwo+ID4gKwlk ZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzID0gMDsKPiA+ICAKPiA+ICAJc3Bpbl91bmxvY2tf aXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4gIAo+ID4gIAljYW5jZWxfd29ya19zeW5jKCZk ZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKPiA+IC0JY2FuY2VsX3dvcmtfc3luYygm ZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrKTsKPiA+ICsJY2FuY2VsX2RlbGF5ZWRfd29y a19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ID4gIAljYW5jZWxfd29y a19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5wb2xsX2luaXRfd29yayk7Cj4gPiAgCWNhbmNlbF9k ZWxheWVkX3dvcmtfc3luYygmZGV2X3ByaXYtPmhvdHBsdWcucmVlbmFibGVfd29yayk7Cj4gPiAg fQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90 cGx1Zy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmgKPiA+ IGluZGV4IDgwNWY4OTdkYmI3YS4uYjBjZDQ0N2I3ZmJjIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmgKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5oCj4gPiBAQCAtMTUsOCArMTUsOSBA QCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yOwo+ID4gIHN0cnVjdCBpbnRlbF9lbmNvZGVyOwo+ID4g IAo+ID4gIHZvaWQgaW50ZWxfaHBkX3BvbGxfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+ID4gLWJvb2wgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ID4gLQkJCSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3Rvcik7Cj4gPiArZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIGludGVsX2VuY29kZXJfaG90cGx1 ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCQkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiArCQkJCQkgICAgICAgYm9vbCBpcnFfcmVj ZWl2ZWQpOwo+ID4gIHZvaWQgaW50ZWxfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCQkgICB1MzIgcGluX21hc2ssIHUzMiBsb25nX21hc2sp Owo+ID4gIHZvaWQgaW50ZWxfaHBkX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jCj4gPiBp bmRleCAzZmU4ZWFlZjZiZDguLjYzOTMxN2I4NGU1MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8uYwo+ID4gQEAgLTE5MTUsMTIgKzE5MTUsMTQgQEAg c3RhdGljIHZvaWQgaW50ZWxfc2R2b19lbmFibGVfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiA+ICAJCQkgICAgICZpbnRlbF9zZHZvLT5ob3RwbHVnX2FjdGl2ZSwgMik7 Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBib29sIGludGVsX3Nkdm9faG90cGx1ZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCQkgICAgICAgc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ID4gK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUKPiA+ ICtpbnRlbF9zZHZvX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAr CQkgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiArCQkgICBib29sIGly cV9yZWNlaXZlZCkKPiA+ICB7Cj4gPiAgCWludGVsX3Nkdm9fZW5hYmxlX2hvdHBsdWcoZW5jb2Rl cik7Cj4gPiAgCj4gPiAtCXJldHVybiBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29u bmVjdG9yKTsKPiA+ICsJcmV0dXJuIGludGVsX2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25u ZWN0b3IsIGlycV9yZWNlaXZlZCk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBib29sCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gaW5kZXggM2U0ZjU4ZjE5MzYyLi42ZDRi Yzk4MzkxNWYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IEBA IC00MDkwLDcgKzQwOTAsNyBAQCBzdGF0aWMgaW50IGk5MTVfaHBkX3N0b3JtX2N0bF9zaG93KHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiA+ICAJICovCj4gPiAgCWludGVsX3N5bmNo cm9uaXplX2lycShkZXZfcHJpdik7Cj4gPiAgCWZsdXNoX3dvcmsoJmRldl9wcml2LT5ob3RwbHVn LmRpZ19wb3J0X3dvcmspOwo+ID4gLQlmbHVzaF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3Rw bHVnX3dvcmspOwo+ID4gKwlmbHVzaF9kZWxheWVkX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhv dHBsdWdfd29yayk7Cj4gPiAgCj4gPiAgCXNlcV9wcmludGYobSwgIlRocmVzaG9sZDogJWRcbiIs IGhvdHBsdWctPmhwZF9zdG9ybV90aHJlc2hvbGQpOwo+ID4gIAlzZXFfcHJpbnRmKG0sICJEZXRl Y3RlZDogJXNcbiIsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IGluZGV4IGY5ODc4Y2Jl ZjRkOS4uZjQ3MTMwN2FhNzA0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4g QEAgLTE2Myw3ICsxNjMsNyBAQCBlbnVtIGhwZF9waW4gewo+ID4gICNkZWZpbmUgSFBEX1NUT1JN X0RFRkFVTFRfVEhSRVNIT0xEIDUwCj4gPiAgCj4gPiAgc3RydWN0IGk5MTVfaG90cGx1ZyB7Cj4g PiAtCXN0cnVjdCB3b3JrX3N0cnVjdCBob3RwbHVnX3dvcms7Cj4gPiArCXN0cnVjdCBkZWxheWVk X3dvcmsgaG90cGx1Z193b3JrOwo+ID4gIAo+ID4gIAlzdHJ1Y3Qgewo+ID4gIAkJdW5zaWduZWQg bG9uZyBsYXN0X2ppZmZpZXM7Cj4gPiBAQCAtMTc1LDYgKzE3NSw3IEBAIHN0cnVjdCBpOTE1X2hv dHBsdWcgewo+ID4gIAkJfSBzdGF0ZTsKPiA+ICAJfSBzdGF0c1tIUERfTlVNX1BJTlNdOwo+ID4g IAl1MzIgZXZlbnRfYml0czsKPiA+ICsJdTMyIHJldHJ5X2JpdHM7Cj4gPiAgCXN0cnVjdCBkZWxh eWVkX3dvcmsgcmVlbmFibGVfd29yazsKPiA+ICAKPiA+ICAJdTMyIGxvbmdfcG9ydF9tYXNrOwo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IDI0YzYzZWQ0NWM2Zi4uZTU4ZDM3 NTFlZDQzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTAxLDE0 ICsxMDEsMjEgQEAgc3RydWN0IGludGVsX2ZiZGV2IHsKPiA+ICAJc3RydWN0IG11dGV4IGhwZF9s b2NrOwo+ID4gIH07Cj4gPiAgCj4gPiArZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIHsKPiA+ICsJ SU5URUxfSE9UUExVR19VTkNIQU5HRUQsCj4gPiArCUlOVEVMX0hPVFBMVUdfQ0hBTkdFRCwKPiA+ ICsJSU5URUxfSE9UUExVR19SRVRSWSwKPiA+ICt9Owo+ID4gKwo+ID4gIHN0cnVjdCBpbnRlbF9l bmNvZGVyIHsKPiA+ICAJc3RydWN0IGRybV9lbmNvZGVyIGJhc2U7Cj4gPiAgCj4gPiAgCWVudW0g aW50ZWxfb3V0cHV0X3R5cGUgdHlwZTsKPiA+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gPiAgCXVuc2ln bmVkIGludCBjbG9uZWFibGU7Cj4gPiAtCWJvb2wgKCpob3RwbHVnKShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+IC0JCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip Owo+ID4gKwllbnVtIGludGVsX2hvdHBsdWdfc3RhdGUgKCpob3RwbHVnKShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsCj4gPiArCQkJCQkgICAgYm9vbCBpcnFfcmVjZWl2ZWQpOwo+ID4gIAllbnVtIGlu dGVsX291dHB1dF90eXBlICgqY29tcHV0ZV9vdXRwdXRfdHlwZSkoc3RydWN0IGludGVsX2VuY29k ZXIgKiwKPiA+ICAJCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAo+ID4gIAkJ CQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwo+ID4gLS0gCj4gPiAyLjIy LjAKPiAKPiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=