From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v3 1/2] drm/i915: Add support for retrying hotplug Date: Wed, 10 Jul 2019 04:20:04 -0700 Message-ID: <20190710112004.GL16315@intel.com> References: <20190628213921.16879-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id C06DF89739 for ; Wed, 10 Jul 2019 11:19:28 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190628213921.16879-1-jose.souza@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?iso-8859-1?Q?Jos=E9?= Roberto de Souza Cc: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMjgsIDIwMTkgYXQgMDI6Mzk6MjBQTSAtMDcwMCwgSm9zw6kgUm9iZXJ0byBk ZSBTb3V6YSB3cm90ZToKPiBGcm9tOiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4g Cj4gVGhlcmUgaXMgc29tZSBzY2VuYXJpb3MgdGhhdCB3ZSBhcmUgYXdhcmUgdGhhdCBzaW5rIHBy b2JlIGNhbiBmYWlsLAo+IHNvIGxldHMgYWRkIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBsZXQgaG90 cGx1ZygpIGhvb2sgdG8gcmVxdWVzdAo+IGFub3RoZXIgcHJvYmUgYWZ0ZXIgc29tZSB0aW1lLgo+ IAo+IHYyOiBIYW5kbGUgc2hhcmVkIEhQRCBwaW5zIChJbXJlKQo+IHYzOiBSZWJhc2VkCj4gCj4g Q2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2ln bmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiBT aWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgIHwgMTIgKystLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICB8IDEyICsrLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMgfCA1OSArKysrKysr KysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBs dWcuaCB8ICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5j ICAgIHwgIDggKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAg ICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAg ICAgfCAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAg ICB8IDExICsrKy0KPiAgOCBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAzMiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBp bmRleCA3OTI1YTE3NmY5MDAuLjUzMDA5OTg0ZTA0NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+IEBAIC00MDgxLDE0ICs0MDgxLDE2IEBAIHN0YXRpYyBp bnQgaW50ZWxfaGRtaV9yZXNldF9saW5rKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAJcmV0dXJuIG1vZGVzZXRfcGlwZSgmY3J0Yy0+YmFzZSwgY3R4KTsKPiAgfQo+ICAKPiAtc3Rh dGljIGJvb2wgaW50ZWxfZGRpX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gLQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArc3RhdGlj IGVudW0gaW50ZWxfaG90cGx1Z19zdGF0ZQo+ICtpbnRlbF9kZGlfaG90cGx1ZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiArCQkgIGJvb2wgaXJxX3JlY2VpdmVkKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVz ZXRfYWNxdWlyZV9jdHggY3R4Owo+IC0JYm9vbCBjaGFuZ2VkOwo+ICsJZW51bSBpbnRlbF9ob3Rw bHVnX3N0YXRlIHN0YXRlOwo+ICAJaW50IHJldDsKPiAgCj4gLQljaGFuZ2VkID0gaW50ZWxfZW5j b2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3Rvcik7Cj4gKwlzdGF0ZSA9IGludGVsX2VuY29k ZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25uZWN0b3IsIGlycV9yZWNlaXZlZCk7Cj4gIAo+ICAJZHJt X21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ICAKPiBAQCAtNDExMCw3ICs0MTEyLDcg QEAgc3RhdGljIGJvb2wgaW50ZWxfZGRpX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gIAlXQVJOKHJldCwg IkFjcXVpcmluZyBtb2Rlc2V0IGxvY2tzIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwo+ICAKPiAt CXJldHVybiBjaGFuZ2VkOwo+ICsJcmV0dXJuIHN0YXRlOwo+ICB9Cj4gIAo+ICBzdGF0aWMgc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHAuYwo+IGluZGV4IDQzMzZkZjQ2ZmU3OC4uOTVkMGRhOWQxYmFjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+IEBAIC00ODc4LDE0ICs0ODc4LDE2IEBAIGlu dCBpbnRlbF9kcF9yZXRyYWluX2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g ICAqIHJldHJhaW4gdGhlIGxpbmsgdG8gZ2V0IGEgcGljdHVyZS4gVGhhdCdzIGluIGNhc2Ugbm8K PiAgICogdXNlcnNwYWNlIGNvbXBvbmVudCByZWFjdGVkIHRvIGludGVybWl0dGVudCBIUEQgZGlw Lgo+ICAgKi8KPiAtc3RhdGljIGJvb2wgaW50ZWxfZHBfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAtCQkJICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUKPiAraW50ZWxfZHBfaG90cGx1 ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkgc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAo+ICsJCSBib29sIGlycV9yZWNlaXZlZCkKPiAgewo+ICAJc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKPiAtCWJvb2wgY2hhbmdlZDsKPiArCWVudW0g aW50ZWxfaG90cGx1Z19zdGF0ZSBzdGF0ZTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JY2hhbmdlZCA9 IGludGVsX2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25uZWN0b3IpOwo+ICsJc3RhdGUgPSBp bnRlbF9lbmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yLCBpcnFfcmVjZWl2ZWQpOwo+ ICAKPiAgCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKPiAgCj4gQEAgLTQ5MDQs NyArNDkwNiw3IEBAIHN0YXRpYyBib29sIGludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gIAlX QVJOKHJldCwgIkFjcXVpcmluZyBtb2Rlc2V0IGxvY2tzIGZhaWxlZCB3aXRoICVpXG4iLCByZXQp Owo+ICAKPiAtCXJldHVybiBjaGFuZ2VkOwo+ICsJcmV0dXJuIHN0YXRlOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCBpbnRlbF9kcF9jaGVja19zZXJ2aWNlX2lycShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5j Cj4gaW5kZXggZWEzZGU0YWNjODUwLi4zNjYyOTY2ZDM2NmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYwo+IEBAIC0xMTIsNiArMTEyLDcgQEAg ZW51bSBocGRfcGluIGludGVsX2hwZF9waW5fZGVmYXVsdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAo+ICAjZGVmaW5lIEhQRF9TVE9STV9ERVRFQ1RfUEVSSU9ECQkxMDAw Cj4gICNkZWZpbmUgSFBEX1NUT1JNX1JFRU5BQkxFX0RFTEFZCSgyICogNjAgKiAxMDAwKQo+ICsj ZGVmaW5lIEhQRF9SRVRSWV9ERUxBWQkJCTEwMDAKPiAgCj4gIC8qKgo+ICAgKiBpbnRlbF9ocGRf aXJxX3N0b3JtX2RldGVjdCAtIGdhdGhlciBzdGF0cyBhbmQgZGV0ZWN0IEhQRCBJUlEgc3Rvcm0g b24gYSBwaW4KPiBAQCAtMjY2LDggKzI2NywxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJx X3N0b3JtX3JlZW5hYmxlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJaW50ZWxf cnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKPiAgfQo+ICAK PiAtYm9vbCBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gLQkJCSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArZW51bSBp bnRlbF9ob3RwbHVnX3N0YXRlCj4gK2ludGVsX2VuY29kZXJfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiArCQkgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IsCj4gKwkJICAgICAgYm9vbCBpcnFfcmVjZWl2ZWQpCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+ICAJZW51bSBkcm1fY29ubmVjdG9y X3N0YXR1cyBvbGRfc3RhdHVzOwo+IEBAIC0yNzksNyArMjgyLDcgQEAgYm9vbCBpbnRlbF9lbmNv ZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJZHJtX2hlbHBl cl9wcm9iZV9kZXRlY3QoJmNvbm5lY3Rvci0+YmFzZSwgTlVMTCwgZmFsc2UpOwo+ICAKPiAgCWlm IChvbGRfc3RhdHVzID09IGNvbm5lY3Rvci0+YmFzZS5zdGF0dXMpCj4gLQkJcmV0dXJuIGZhbHNl Owo+ICsJCXJldHVybiBJTlRFTF9IT1RQTFVHX05PQ0hBTkdFOwo+ICAKPiAgCURSTV9ERUJVR19L TVMoIltDT05ORUNUT1I6JWQ6JXNdIHN0YXR1cyB1cGRhdGVkIGZyb20gJXMgdG8gJXNcbiIsCj4g IAkJICAgICAgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCj4gQEAgLTI4Nyw3ICsyOTAsNyBAQCBi b29sIGludGVsX2VuY29kZXJfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCQkgICAgICBkcm1fZ2V0X2Nvbm5lY3Rvcl9zdGF0dXNfbmFtZShvbGRfc3RhdHVzKSwKPiAg CQkgICAgICBkcm1fZ2V0X2Nvbm5lY3Rvcl9zdGF0dXNfbmFtZShjb25uZWN0b3ItPmJhc2Uuc3Rh dHVzKSk7Cj4gIAo+IC0JcmV0dXJuIHRydWU7Cj4gKwlyZXR1cm4gSU5URUxfSE9UUExVR19DSEFO R0VEOwo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBpbnRlbF9lbmNvZGVyX2hhc19ocGRfcHVsc2Uo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gQEAgLTMzOSw3ICszNDIsNyBAQCBzdGF0 aWMgdm9pZCBpOTE1X2RpZ3BvcnRfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK PiAgCQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICAJCWRldl9wcml2LT5o b3RwbHVnLmV2ZW50X2JpdHMgfD0gb2xkX2JpdHM7Cj4gIAkJc3Bpbl91bmxvY2tfaXJxKCZkZXZf cHJpdi0+aXJxX2xvY2spOwo+IC0JCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhv dHBsdWdfd29yayk7Cj4gKwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+aG90cGx1 Zy5ob3RwbHVnX3dvcmssIDApOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0zNDksMTQgKzM1MiwxNiBA QCBzdGF0aWMgdm9pZCBpOTE1X2RpZ3BvcnRfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPiAgc3RhdGljIHZvaWQgaTkxNV9ob3RwbHVnX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 Cj4gLQkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBob3RwbHVn LmhvdHBsdWdfd29yayk7Cj4gKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9w cml2YXRlLAo+ICsJCQkgICAgIGhvdHBsdWcuaG90cGx1Z193b3JrLndvcmspOwo+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ICAJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubmVjdG9yOwo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXI7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0IGRy bV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPiAtCWJvb2wgY2hhbmdlZCA9IGZhbHNl Owo+ICsJdTMyIGNoYW5nZWQgPSAwLCByZXRyeSA9IDA7Cj4gIAl1MzIgaHBkX2V2ZW50X2JpdHM7 Cj4gKwl1MzIgaHBkX3JldHJ5X2JpdHM7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2Nv bmZpZy5tdXRleCk7Cj4gIAlEUk1fREVCVUdfS01TKCJydW5uaW5nIGVuY29kZXIgaG90cGx1ZyBm dW5jdGlvbnNcbiIpOwo+IEBAIC0zNjUsNiArMzcwLDggQEAgc3RhdGljIHZvaWQgaTkxNV9ob3Rw bHVnX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIAo+ICAJaHBkX2V2ZW50 X2JpdHMgPSBkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzOwo+ICAJZGV2X3ByaXYtPmhvdHBs dWcuZXZlbnRfYml0cyA9IDA7Cj4gKwlocGRfcmV0cnlfYml0cyA9IGRldl9wcml2LT5ob3RwbHVn LnJldHJ5X2JpdHM7Cj4gKwlkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzID0gMDsKPiAgCj4g IAkvKiBFbmFibGUgcG9sbGluZyBmb3IgY29ubmVjdG9ycyB3aGljaCBoYWQgSFBEIElSUSBzdG9y bXMgKi8KPiAgCWludGVsX2hwZF9pcnFfc3Rvcm1fc3dpdGNoX3RvX3BvbGxpbmcoZGV2X3ByaXYp Owo+IEBAIC0zNzMsMTYgKzM4MCwyOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBsdWdfd29ya19m dW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCj4gIAlkcm1fY29ubmVjdG9yX2xpc3Rf aXRlcl9iZWdpbihkZXYsICZjb25uX2l0ZXIpOwo+ICAJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9p dGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgewo+ICsJCXUzMiBocGRfYml0Owo+ICsKPiAgCQlp bnRlbF9jb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAgCQlpZiAo IWludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcikKPiAgCQkJY29udGludWU7Cj4gIAkJaW50ZWxfZW5j b2RlciA9IGludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcjsKPiAtCQlpZiAoaHBkX2V2ZW50X2JpdHMg JiAoMSA8PCBpbnRlbF9lbmNvZGVyLT5ocGRfcGluKSkgewo+ICsJCWhwZF9iaXQgPSBCSVQoaW50 ZWxfZW5jb2Rlci0+aHBkX3Bpbik7Cj4gKwkJaWYgKChocGRfZXZlbnRfYml0cyB8IGhwZF9yZXRy eV9iaXRzKSAmIGhwZF9iaXQpIHsKPiAgCQkJRFJNX0RFQlVHX0tNUygiQ29ubmVjdG9yICVzIChw aW4gJWkpIHJlY2VpdmVkIGhvdHBsdWcgZXZlbnQuXG4iLAo+ICAJCQkJICAgICAgY29ubmVjdG9y LT5uYW1lLCBpbnRlbF9lbmNvZGVyLT5ocGRfcGluKTsKPiAgCj4gLQkJCWNoYW5nZWQgfD0gaW50 ZWxfZW5jb2Rlci0+aG90cGx1ZyhpbnRlbF9lbmNvZGVyLAo+IC0JCQkJCQkJICBpbnRlbF9jb25u ZWN0b3IpOwo+ICsJCQlzd2l0Y2ggKGludGVsX2VuY29kZXItPmhvdHBsdWcoaW50ZWxfZW5jb2Rl ciwKPiArCQkJCQkJICAgICAgIGludGVsX2Nvbm5lY3RvciwKPiArCQkJCQkJICAgICAgIGhwZF9l dmVudF9iaXRzICYgaHBkX2JpdCkpIHsKPiArCQkJY2FzZSBJTlRFTF9IT1RQTFVHX05PQ0hBTkdF Ogo+ICsJCQkJYnJlYWs7Cj4gKwkJCWNhc2UgSU5URUxfSE9UUExVR19DSEFOR0VEOgo+ICsJCQkJ Y2hhbmdlZCB8PSBocGRfYml0Owo+ICsJCQkJYnJlYWs7Cj4gKwkJCWNhc2UgSU5URUxfSE9UUExV R19SRVRSWToKPiArCQkJCXJldHJ5IHw9IGhwZF9iaXQ7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ ICAJCX0KPiAgCX0KPiAgCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVyKTsK PiBAQCAtMzkwLDYgKzQxMCwxNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBsdWdfd29ya19mdW5j KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCj4gIAlpZiAoY2hhbmdlZCkKPiAgCQlkcm1f a21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGRldik7Cj4gKwo+ICsJLyogUmVtb3ZlIHNoYXJlZCBI UEQgcGlucyB0aGF0IGhhdmUgY2hhbmdlZCAqLwo+ICsJcmV0cnkgJj0gfmNoYW5nZWQ7Cj4gKwlp ZiAocmV0cnkpIHsKPiArCQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsJ CWRldl9wcml2LT5ob3RwbHVnLnJldHJ5X2JpdHMgfD0gcmV0cnk7Cj4gKwkJc3Bpbl91bmxvY2tf aXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsKPiArCQltb2RfZGVsYXllZF93b3JrKHN5c3Rl bV93cSwgJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywKPiArCQkJCSBtc2Vjc190b19q aWZmaWVzKEhQRF9SRVRSWV9ERUxBWSkpOwo+ICsJfQo+ICB9Cj4gIAo+ICAKPiBAQCAtNTE2LDcg KzU0Nyw3IEBAIHZvaWQgaW50ZWxfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgCWlmIChxdWV1ZV9kaWcpCj4gIAkJcXVldWVfd29yayhkZXZfcHJp di0+aG90cGx1Zy5kcF93cSwgJmRldl9wcml2LT5ob3RwbHVnLmRpZ19wb3J0X3dvcmspOwo+ICAJ aWYgKHF1ZXVlX2hwKQo+IC0JCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBs dWdfd29yayk7Cj4gKwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5o b3RwbHVnX3dvcmssIDApOwo+ICB9Cj4gIAo+ICAvKioKPiBAQCAtNjM2LDcgKzY2Nyw4IEBAIHZv aWQgaW50ZWxfaHBkX3BvbGxfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gIAo+ICB2b2lkIGludGVsX2hwZF9pbml0X3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICB7Cj4gLQlJTklUX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdf d29yaywgaTkxNV9ob3RwbHVnX3dvcmtfZnVuYyk7Cj4gKwlJTklUX0RFTEFZRURfV09SSygmZGV2 X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLAo+ICsJCQkgIGk5MTVfaG90cGx1Z193b3JrX2Z1 bmMpOwo+ICAJSU5JVF9XT1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrLCBpOTE1 X2RpZ3BvcnRfd29ya19mdW5jKTsKPiAgCUlOSVRfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcucG9s bF9pbml0X3dvcmssIGk5MTVfaHBkX3BvbGxfaW5pdF93b3JrKTsKPiAgCUlOSVRfREVMQVlFRF9X T1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5yZWVuYWJsZV93b3JrLAo+IEBAIC02NTAsMTEgKzY4Miwx MiBAQCB2b2lkIGludGVsX2hwZF9jYW5jZWxfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAlkZXZfcHJpdi0+aG90cGx1Zy5sb25nX3BvcnRfbWFzayA9IDA7Cj4gIAlk ZXZfcHJpdi0+aG90cGx1Zy5zaG9ydF9wb3J0X21hc2sgPSAwOwo+ICAJZGV2X3ByaXYtPmhvdHBs dWcuZXZlbnRfYml0cyA9IDA7Cj4gKwlkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzID0gMDsK PiAgCj4gIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gIAo+ICAJY2Fu Y2VsX3dvcmtfc3luYygmZGV2X3ByaXYtPmhvdHBsdWcuZGlnX3BvcnRfd29yayk7Cj4gLQljYW5j ZWxfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ICsJY2FuY2Vs X2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ICAJ Y2FuY2VsX3dvcmtfc3luYygmZGV2X3ByaXYtPmhvdHBsdWcucG9sbF9pbml0X3dvcmspOwo+ICAJ Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5yZWVuYWJsZV93b3Jr KTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2hvdHBsdWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5o Cj4gaW5kZXggODA1Zjg5N2RiYjdhLi5iMGNkNDQ3YjdmYmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuaAo+IEBAIC0xNSw4ICsxNSw5IEBAIHN0 cnVjdCBpbnRlbF9jb25uZWN0b3I7Cj4gIHN0cnVjdCBpbnRlbF9lbmNvZGVyOwo+ICAKPiAgdm9p ZCBpbnRlbF9ocGRfcG9sbF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4gLWJvb2wgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+IC0JCQkgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICtlbnVt IGludGVsX2hvdHBsdWdfc3RhdGUgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICsJCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsCj4gKwkJCQkJICAgICAgIGJvb2wgaXJxX3JlY2VpdmVkKTsKPiAgdm9pZCBpbnRl bF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ CQkgICB1MzIgcGluX21hc2ssIHUzMiBsb25nX21hc2spOwo+ICB2b2lkIGludGVsX2hwZF9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKPiBpbmRleCBjZWRhMDNlNWEzZDQuLjI4NTVmMTRmNTc0 NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jCj4gQEAg LTE4OTMsMTIgKzE4OTMsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19lbmFibGVfaG90cGx1 ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCQkJICAgICAmaW50ZWxfc2R2by0+ aG90cGx1Z19hY3RpdmUsIDIpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBpbnRlbF9zZHZvX2hv dHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdf c3RhdGUKPiAraW50ZWxfc2R2b19ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICsJCSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICBib29s IGlycV9yZWNlaXZlZCkKPiAgewo+ICAJaW50ZWxfc2R2b19lbmFibGVfaG90cGx1ZyhlbmNvZGVy KTsKPiAgCj4gLQlyZXR1cm4gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3Rv cik7Cj4gKwlyZXR1cm4gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3Rvciwg aXJxX3JlY2VpdmVkKTsKPiAgfQo+ICAKPiAgc3RhdGljIGJvb2wKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+IGluZGV4IGVlZWNkYWQwZTNjYS4uODM2NzA5ZWU5ZmY3IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtNDA4Myw3ICs0MDgzLDcgQEAgc3Rh dGljIGludCBpOTE1X2hwZF9zdG9ybV9jdGxfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KmRhdGEpCj4gIAkgKi8KPiAgCXN5bmNocm9uaXplX2lycShkZXZfcHJpdi0+ZHJtLmlycSk7Cj4g IAlmbHVzaF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKPiAtCWZsdXNo X3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7Cj4gKwlmbHVzaF9kZWxheWVk X3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7Cj4gIAo+ICAJc2VxX3ByaW50 ZihtLCAiVGhyZXNob2xkOiAlZFxuIiwgaG90cGx1Zy0+aHBkX3N0b3JtX3RocmVzaG9sZCk7Cj4g IAlzZXFfcHJpbnRmKG0sICJEZXRlY3RlZDogJXNcbiIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gaW5kZXggN2U5ODFiMDNmYWNlLi5kMjQwOTk3OTEyZDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiBAQCAtMTYzLDcgKzE2Myw3IEBAIGVudW0gaHBkX3BpbiB7Cj4gICNkZWZpbmUg SFBEX1NUT1JNX0RFRkFVTFRfVEhSRVNIT0xEIDUwCj4gIAo+ICBzdHJ1Y3QgaTkxNV9ob3RwbHVn IHsKPiAtCXN0cnVjdCB3b3JrX3N0cnVjdCBob3RwbHVnX3dvcms7Cj4gKwlzdHJ1Y3QgZGVsYXll ZF93b3JrIGhvdHBsdWdfd29yazsKPiAgCj4gIAlzdHJ1Y3Qgewo+ICAJCXVuc2lnbmVkIGxvbmcg bGFzdF9qaWZmaWVzOwo+IEBAIC0xNzUsNiArMTc1LDcgQEAgc3RydWN0IGk5MTVfaG90cGx1ZyB7 Cj4gIAkJfSBzdGF0ZTsKPiAgCX0gc3RhdHNbSFBEX05VTV9QSU5TXTsKPiAgCXUzMiBldmVudF9i aXRzOwo+ICsJdTMyIHJldHJ5X2JpdHM7Cj4gIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHJlZW5hYmxl X3dvcms7Cj4gIAo+ICAJdTMyIGxvbmdfcG9ydF9tYXNrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gaW5kZXggMWQ1OGY3ZWM1ZDg0Li4wMDg4ZWIyZjUxMGUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+IEBAIC0xMDEsMTQgKzEwMSwyMSBAQCBzdHJ1Y3QgaW50ZWxfZmJkZXYg ewo+ICAJc3RydWN0IG11dGV4IGhwZF9sb2NrOwo+ICB9Owo+ICAKPiArZW51bSBpbnRlbF9ob3Rw bHVnX3N0YXRlIHsKPiArCUlOVEVMX0hPVFBMVUdfTk9DSEFOR0UsCj4gKwlJTlRFTF9IT1RQTFVH X0NIQU5HRUQsCgpteSBvbmx5IGJpa2VzaGVkIHdvdWxkIGJlIHRvIGtlZXAgdGhpcyBzeW1tZXRy aWMuLi4Kbm8tY2hhbmdlIGNoYW5nZSBvciBwcmVmZXJhYmx5IHVuY2hhbmdlZCBjaGFuZ2VkLgoK QnV0IGV2ZXJ5dGhpbmcgc2VlbXMgcmlnaHQgc28gbGV0J3MgbW92ZQoKUmV2aWV3ZWQtYnk6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KCj4gKwlJTlRFTF9IT1RQTFVHX1JF VFJZLAo+ICt9Owo+ICsKPiAgc3RydWN0IGludGVsX2VuY29kZXIgewo+ICAJc3RydWN0IGRybV9l bmNvZGVyIGJhc2U7Cj4gIAo+ICAJZW51bSBpbnRlbF9vdXRwdXRfdHlwZSB0eXBlOwo+ICAJZW51 bSBwb3J0IHBvcnQ7Cj4gIAl1bnNpZ25lZCBpbnQgY2xvbmVhYmxlOwo+IC0JYm9vbCAoKmhvdHBs dWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpOwo+ICsJZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlICgqaG90cGx1 Zykoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkJICAgIHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCQkgICAgYm9vbCBpcnFfcmVjZWl2ZWQpOwo+ ICAJZW51bSBpbnRlbF9vdXRwdXRfdHlwZSAoKmNvbXB1dGVfb3V0cHV0X3R5cGUpKHN0cnVjdCBp bnRlbF9lbmNvZGVyICosCj4gIAkJCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICos Cj4gIAkJCQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwo+IC0tIAo+IDIu MjIuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=