From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 1/2] drm/i915: Add support for retrying hotplug Date: Mon, 25 Feb 2019 13:22:45 +0200 Message-ID: <20190225112245.GD9900@ideak-desk.fi.intel.com> References: <20190222210834.17580-1-jose.souza@intel.com> <87mumkruzu.fsf@intel.com> Reply-To: imre.deak@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 B9F4F894B7 for ; Mon, 25 Feb 2019 11:23:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87mumkruzu.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 T24gTW9uLCBGZWIgMjUsIDIwMTkgYXQgMDE6MDI6NDVQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gRnJpLCAyMiBGZWIgMjAxOSwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5z b3V6YUBpbnRlbC5jb20+IHdyb3RlOgo+ID4gRnJvbTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50 ZWwuY29tPgo+ID4KPiA+IFRoZXJlIGlzIHNvbWUgc2NlbmFyaW9zIHRoYXQgd2UgYXJlIGF3YXJl IHRoYXQgc2luayBwcm9iZSBjYW4gZmFpbCwKPiA+IHNvIGxldHMgYWRkIHRoZSBpbmZyYXN0cnVj dHVyZSB0byBsZXQgaG90cGx1ZygpIGhvb2sgdG8gcmVxdWVzdAo+ID4gYW5vdGhlciBwcm9iZSBh ZnRlciBzb21lIHRpbWUuCj4gCj4gU2VlIGFsc28KPiAKPiBodHRwOi8vcGF0Y2h3b3JrLmZyZWVk ZXNrdG9wLm9yZy9wYXRjaC9tc2dpZC8yMDE4MDkyNTA3MTgzNi4yNDcxMS0xLWphbmkubmlrdWxh QGludGVsLmNvbQoKWWVzLCB0aGUgaWRlYSBmb3IgYSBnZW5lcmljIHdheSB0byByZXRyeSB0aGUg aG90cGx1ZyBkZXRlY3Rpb24gY2FtZQphZnRlciBkaXNjdXNzaW5nIHdpdGggVmlsbGUgYW5kIEph bmkgYWJvdXQgdGhlIHNpbWlsYXIgaXNzdWUgd2l0aCBIRE1JCnNpbmtzLiBUaGUgb25seSBkaWZm ZXJlbmNlIHdydC4gSmFuaSdzIHBhdGNoIGFib3ZlIGlzIHRoYXQgaGVyZSB3ZSBvbmx5CmRlbGF5 IHRoZSBkZXRlY3Rpb24gaWYgdGhlIGNvbm5lY3RvciBwcm9iZSB0aGlua3MgaXQncyBuZWNlc3Nh cnkuIFRoaXMKdGhlbiBhbHNvIGFsbG93cyBmb3IgYSBsb25nZXIgKHVwIHRvIDFzZWMpIGRlbGF5 IG5lZWRlZCBieSB0aGUgYnVnZ3kKVHlwZUMgZG9uZ2xlcy4KCj4gCj4gQlIsCj4gSmFuaS4KPiAK PiA+Cj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiA+IFNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFA aW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNv bT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICB8ICAy ICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDMgKy0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAxMiArKystLS0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAxMiArKystLS0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAxNyArKysrKysrLS0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMgfCA1NiArKysrKysrKysrKysrKysrKysr KysrLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jICAgIHwgIDgg KystLQo+ID4gIDcgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25z KC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IGluZGV4IDM3MTc1 NDE0Y2U4OS4uODE0OWJlNjJhNjMwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gPiBAQCAtNDI5Niw3ICs0Mjk2LDcgQEAgc3RhdGljIGludCBpOTE1X2hwZF9zdG9y bV9jdGxfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gPiAgCSAqLwo+ID4g IAlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOwo+ID4gIAlmbHVzaF93b3JrKCZk ZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKPiA+IC0JZmx1c2hfd29yaygmZGV2X3By aXYtPmhvdHBsdWcuaG90cGx1Z193b3JrKTsKPiA+ICsJZmx1c2hfZGVsYXllZF93b3JrKCZkZXZf cHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ID4gIAo+ID4gIAlzZXFfcHJpbnRmKG0sICJU aHJlc2hvbGQ6ICVkXG4iLCBob3RwbHVnLT5ocGRfc3Rvcm1fdGhyZXNob2xkKTsKPiA+ICAJc2Vx X3ByaW50ZihtLCAiRGV0ZWN0ZWQ6ICVzXG4iLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g PiBpbmRleCBiYjBlNzVlNDM5ODcuLjU3MDM1MjZiZGRhYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiA+IEBAIC0xNTYsNyArMTU2LDcgQEAgZW51bSBocGRfcGluIHsKPiA+ICAj ZGVmaW5lIEhQRF9TVE9STV9ERUZBVUxUX1RIUkVTSE9MRCA1MAo+ID4gIAo+ID4gIHN0cnVjdCBp OTE1X2hvdHBsdWcgewo+ID4gLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaG90cGx1Z193b3JrOwo+ID4g KwlzdHJ1Y3QgZGVsYXllZF93b3JrIGhvdHBsdWdfd29yazsKPiA+ICAKPiA+ICAJc3RydWN0IHsK PiA+ICAJCXVuc2lnbmVkIGxvbmcgbGFzdF9qaWZmaWVzOwo+ID4gQEAgLTE2OCw2ICsxNjgsNyBA QCBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKPiA+ICAJCX0gc3RhdGU7Cj4gPiAgCX0gc3RhdHNbSFBE X05VTV9QSU5TXTsKPiA+ICAJdTMyIGV2ZW50X2JpdHM7Cj4gPiArCXUzMiByZXRyeV9iaXRzOwo+ ID4gIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHJlZW5hYmxlX3dvcms7Cj4gPiAgCj4gPiAgCXUzMiBs b25nX3BvcnRfbWFzazsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBpbmRleCBlYTgz MDcxYTIyYzQuLjE2NzZhODdmMThjYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku Ywo+ID4gQEAgLTQwNTEsMTQgKzQwNTEsMTYgQEAgc3RhdGljIGludCBpbnRlbF9oZG1pX3Jlc2V0 X2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCXJldHVybiBtb2Rlc2V0 X3BpcGUoJmNydGMtPmJhc2UsIGN0eCk7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBib29sIGlu dGVsX2RkaV9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gLQkJCSAg ICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICtzdGF0aWMgZW51bSBp bnRlbF9ob3RwbHVnX3N0YXRlCj4gPiAraW50ZWxfZGRpX2hvdHBsdWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gPiArCQkgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiA+ICsJCSAgYm9vbCBpcnFfcmVjZWl2ZWQpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX21v ZGVzZXRfYWNxdWlyZV9jdHggY3R4Owo+ID4gLQlib29sIGNoYW5nZWQ7Cj4gPiArCWVudW0gaW50 ZWxfaG90cGx1Z19zdGF0ZSBzdGF0ZTsKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+IC0JY2hhbmdl ZCA9IGludGVsX2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25uZWN0b3IpOwo+ID4gKwlzdGF0 ZSA9IGludGVsX2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25uZWN0b3IsIGlycV9yZWNlaXZl ZCk7Cj4gPiAgCj4gPiAgCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKPiA+ICAK PiA+IEBAIC00MDgwLDcgKzQwODIsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kZGlfaG90cGx1Zyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJZHJtX21vZGVzZXRfYWNxdWlyZV9m aW5pKCZjdHgpOwo+ID4gIAlXQVJOKHJldCwgIkFjcXVpcmluZyBtb2Rlc2V0IGxvY2tzIGZhaWxl ZCB3aXRoICVpXG4iLCByZXQpOwo+ID4gIAo+ID4gLQlyZXR1cm4gY2hhbmdlZDsKPiA+ICsJcmV0 dXJuIHN0YXRlOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IGUxYTA1MWMwZmJmZS4uMGJi NDNlYWExNTRjIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTQ3MzQs MTQgKzQ3MzQsMTYgQEAgaW50IGludGVsX2RwX3JldHJhaW5fbGluayhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ICAgKiByZXRyYWluIHRoZSBsaW5rIHRvIGdldCBhIHBpY3R1cmUu IFRoYXQncyBpbiBjYXNlIG5vCj4gPiAgICogdXNlcnNwYWNlIGNvbXBvbmVudCByZWFjdGVkIHRv IGludGVybWl0dGVudCBIUEQgZGlwLgo+ID4gICAqLwo+ID4gLXN0YXRpYyBib29sIGludGVsX2Rw X2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAtCQkJICAgICBzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiArc3RhdGljIGVudW0gaW50ZWxfaG90 cGx1Z19zdGF0ZQo+ID4gK2ludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gPiArCQkgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gKwkJ IGJvb2wgaXJxX3JlY2VpdmVkKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVp cmVfY3R4IGN0eDsKPiA+IC0JYm9vbCBjaGFuZ2VkOwo+ID4gKwllbnVtIGludGVsX2hvdHBsdWdf c3RhdGUgc3RhdGU7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiAtCWNoYW5nZWQgPSBpbnRlbF9l bmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yKTsKPiA+ICsJc3RhdGUgPSBpbnRlbF9l bmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yLCBpcnFfcmVjZWl2ZWQpOwo+ID4gIAo+ ID4gIAlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7Cj4gPiAgCj4gPiBAQCAtNDc2 MCw3ICs0NzYyLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+ ID4gIAlXQVJOKHJldCwgIkFjcXVpcmluZyBtb2Rlc2V0IGxvY2tzIGZhaWxlZCB3aXRoICVpXG4i LCByZXQpOwo+ID4gIAo+ID4gLQlyZXR1cm4gY2hhbmdlZDsKPiA+ICsJcmV0dXJuIHN0YXRlOwo+ ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9kcF9jaGVja19zZXJ2aWNlX2lycShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ IGluZGV4IDgxZWM3M2U0YTA4My4uZGU2MmFmOTcwZGMxIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gPiBAQCAtMjI2LDE0ICsyMjYsMjEgQEAgc3RydWN0IGludGVsX2ZiZGV2 IHsKPiA+ICAJc3RydWN0IG11dGV4IGhwZF9sb2NrOwo+ID4gIH07Cj4gPiAgCj4gPiArZW51bSBp bnRlbF9ob3RwbHVnX3N0YXRlIHsKPiA+ICsJSU5URUxfSE9UUExVR19OT0NIQU5HRSwKPiA+ICsJ SU5URUxfSE9UUExVR19DSEFOR0VELAo+ID4gKwlJTlRFTF9IT1RQTFVHX1JFVFJZLAo+ID4gK307 Cj4gPiArCj4gPiAgc3RydWN0IGludGVsX2VuY29kZXIgewo+ID4gIAlzdHJ1Y3QgZHJtX2VuY29k ZXIgYmFzZTsKPiA+ICAKPiA+ICAJZW51bSBpbnRlbF9vdXRwdXRfdHlwZSB0eXBlOwo+ID4gIAll bnVtIHBvcnQgcG9ydDsKPiA+ICAJdW5zaWduZWQgaW50IGNsb25lYWJsZTsKPiA+IC0JYm9vbCAo KmhvdHBsdWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gLQkJCXN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPiArCWVudW0gaW50ZWxfaG90cGx1Z19zdGF0 ZSAoKmhvdHBsdWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gKwkJCQkJICAg IHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsJCQkJCSAgICBib29sIGly cV9yZWNlaXZlZCk7Cj4gPiAgCWVudW0gaW50ZWxfb3V0cHV0X3R5cGUgKCpjb21wdXRlX291dHB1 dF90eXBlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ID4gIAkJCQkJCSAgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICosCj4gPiAgCQkJCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKik7Cj4gPiBAQCAtMjAwMyw4ICsyMDEwLDEwIEBAIGludCBpbnRlbF9kc2lfZGNzX2lu aXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rv cik7Cj4gPiAgdm9pZCBpbnRlbF9kdm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+ID4gIC8qIGludGVsX2hvdHBsdWcuYyAqLwo+ID4gIHZvaWQgaW50ZWxfaHBkX3Bv bGxfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gLWJvb2wgaW50 ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gLQkJ CSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPiArZW51bSBpbnRlbF9o b3RwbHVnX3N0YXRlCj4gPiAraW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gKwkJICAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ID4gKwkJICAgICAgYm9vbCBpcnFfcmVjZWl2ZWQpOwo+ID4gIAo+ID4gIC8qIGxlZ2Fj eSBmYmRldiBlbXVsYXRpb24gaW4gaW50ZWxfZmJkZXYuYyAqLwo+ID4gICNpZmRlZiBDT05GSUdf RFJNX0ZCREVWX0VNVUxBVElPTgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+ ID4gaW5kZXggYjg5MzdjNzg4ZjAzLi4zZWFhMDY1MjZmNmIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+ID4gQEAgLTExMSw2ICsxMTEsNyBAQCBlbnVtIGhwZF9w aW4gaW50ZWxfaHBkX3Bpbl9kZWZhdWx0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiA+ICAKPiA+ICAjZGVmaW5lIEhQRF9TVE9STV9ERVRFQ1RfUEVSSU9ECQkxMDAwCj4gPiAg I2RlZmluZSBIUERfU1RPUk1fUkVFTkFCTEVfREVMQVkJKDIgKiA2MCAqIDEwMDApCj4gPiArI2Rl ZmluZSBIUERfUkVUUllfREVMQVkJCQkxMDAwCj4gPiAgCj4gPiAgLyoqCj4gPiAgICogaW50ZWxf aHBkX2lycV9zdG9ybV9kZXRlY3QgLSBnYXRoZXIgc3RhdHMgYW5kIGRldGVjdCBIUEQgSVJRIHN0 b3JtIG9uIGEgcGluCj4gPiBAQCAtMjY1LDggKzI2NiwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9o cGRfaXJxX3N0b3JtX3JlZW5hYmxlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4g IAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7Cj4gPiAgfQo+ID4gIAo+ ID4gLWJvb2wgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gLQkJCSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICtl bnVtIGludGVsX2hvdHBsdWdfc3RhdGUKPiA+ICtpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiArCQkgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsCj4gPiArCQkgICAgICBib29sIGlycV9yZWNlaXZlZCkKPiA+ICB7Cj4g PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+ID4gIAll bnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIG9sZF9zdGF0dXM7Cj4gPiBAQCAtMjc4LDcgKzI4MSw3 IEBAIGJvb2wgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gIAkJZHJtX2hlbHBlcl9wcm9iZV9kZXRlY3QoJmNvbm5lY3Rvci0+YmFzZSwgTlVM TCwgZmFsc2UpOwo+ID4gIAo+ID4gIAlpZiAob2xkX3N0YXR1cyA9PSBjb25uZWN0b3ItPmJhc2Uu c3RhdHVzKQo+ID4gLQkJcmV0dXJuIGZhbHNlOwo+ID4gKwkJcmV0dXJuIElOVEVMX0hPVFBMVUdf Tk9DSEFOR0U7Cj4gPiAgCj4gPiAgCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIHN0 YXR1cyB1cGRhdGVkIGZyb20gJXMgdG8gJXNcbiIsCj4gPiAgCQkgICAgICBjb25uZWN0b3ItPmJh c2UuYmFzZS5pZCwKPiA+IEBAIC0yODYsNyArMjg5LDcgQEAgYm9vbCBpbnRlbF9lbmNvZGVyX2hv dHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkgICAgICBkcm1fZ2V0 X2Nvbm5lY3Rvcl9zdGF0dXNfbmFtZShvbGRfc3RhdHVzKSwKPiA+ICAJCSAgICAgIGRybV9nZXRf Y29ubmVjdG9yX3N0YXR1c19uYW1lKGNvbm5lY3Rvci0+YmFzZS5zdGF0dXMpKTsKPiA+ICAKPiA+ IC0JcmV0dXJuIHRydWU7Cj4gPiArCXJldHVybiBJTlRFTF9IT1RQTFVHX0NIQU5HRUQ7Cj4gPiAg fQo+ID4gIAo+ID4gIHN0YXRpYyBib29sIGludGVsX2VuY29kZXJfaGFzX2hwZF9wdWxzZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+IEBAIC0zMzgsNyArMzQxLDcgQEAgc3RhdGlj IHZvaWQgaTkxNV9kaWdwb3J0X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4g PiAgCQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4gIAkJZGV2X3ByaXYt PmhvdHBsdWcuZXZlbnRfYml0cyB8PSBvbGRfYml0czsKPiA+ICAJCXNwaW5fdW5sb2NrX2lycSgm ZGV2X3ByaXYtPmlycV9sb2NrKTsKPiA+IC0JCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5ob3Rw bHVnLmhvdHBsdWdfd29yayk7Cj4gPiArCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRldl9wcml2 LT5ob3RwbHVnLmhvdHBsdWdfd29yaywgMCk7Cj4gPiAgCX0KPiA+ICB9Cj4gPiAgCj4gPiBAQCAt MzQ4LDE0ICszNTEsMTcgQEAgc3RhdGljIHZvaWQgaTkxNV9kaWdwb3J0X3dvcmtfZnVuYyhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiAgc3RhdGljIHZvaWQgaTkxNV9ob3RwbHVnX3dvcmtf ZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ID4gLQkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlLCBob3RwbHVnLmhvdHBsdWdfd29yayk7Cj4gPiArCQljb250YWluZXJf b2Yod29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsCj4gPiArCQkJICAgICBob3RwbHVnLmhv dHBsdWdfd29yay53b3JrKTsKPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJp di0+ZHJtOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7Cj4g PiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOwo+ID4gIAlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXIgY29ubl9pdGVyOwo+ID4gIAlib29sIGNoYW5nZWQgPSBmYWxzZTsKPiA+ICsJdTMyIHJldHJ5 ID0gMDsKPiA+ICAJdTMyIGhwZF9ldmVudF9iaXRzOwo+ID4gKwl1MzIgaHBkX3JldHJ5X2JpdHM7 Cj4gPiAgCj4gPiAgCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ID4gIAlE Uk1fREVCVUdfS01TKCJydW5uaW5nIGVuY29kZXIgaG90cGx1ZyBmdW5jdGlvbnNcbiIpOwo+ID4g QEAgLTM2NCw2ICszNzAsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBsdWdfd29ya19mdW5jKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICAKPiA+ICAJaHBkX2V2ZW50X2JpdHMgPSBkZXZf cHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzOwo+ID4gIAlkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9i aXRzID0gMDsKPiA+ICsJaHBkX3JldHJ5X2JpdHMgPSBkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9i aXRzOwo+ID4gKwlkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzID0gMDsKPiA+ICAKPiA+ICAJ LyogRW5hYmxlIHBvbGxpbmcgZm9yIGNvbm5lY3RvcnMgd2hpY2ggaGFkIEhQRCBJUlEgc3Rvcm1z ICovCj4gPiAgCWludGVsX2hwZF9pcnFfc3Rvcm1fc3dpdGNoX3RvX3BvbGxpbmcoZGV2X3ByaXYp Owo+ID4gQEAgLTM3MiwxNiArMzgwLDI5IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3Jr X2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gIAo+ID4gIAlkcm1fY29ubmVjdG9y X2xpc3RfaXRlcl9iZWdpbihkZXYsICZjb25uX2l0ZXIpOwo+ID4gIAlkcm1fZm9yX2VhY2hfY29u bmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7Cj4gPiArCQl1MzIgaHBkX2JpdDsK PiA+ICsKPiA+ICAJCWludGVsX2Nvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0 b3IpOwo+ID4gIAkJaWYgKCFpbnRlbF9jb25uZWN0b3ItPmVuY29kZXIpCj4gPiAgCQkJY29udGlu dWU7Cj4gPiAgCQlpbnRlbF9lbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyOwo+ID4g LQkJaWYgKGhwZF9ldmVudF9iaXRzICYgKDEgPDwgaW50ZWxfZW5jb2Rlci0+aHBkX3BpbikpIHsK PiA+ICsJCWhwZF9iaXQgPSBCSVQoaW50ZWxfZW5jb2Rlci0+aHBkX3Bpbik7Cj4gPiArCQlpZiAo KGhwZF9ldmVudF9iaXRzIHwgaHBkX3JldHJ5X2JpdHMpICYgaHBkX2JpdCkgewo+ID4gIAkJCURS TV9ERUJVR19LTVMoIkNvbm5lY3RvciAlcyAocGluICVpKSByZWNlaXZlZCBob3RwbHVnIGV2ZW50 LlxuIiwKPiA+ICAJCQkJICAgICAgY29ubmVjdG9yLT5uYW1lLCBpbnRlbF9lbmNvZGVyLT5ocGRf cGluKTsKPiA+ICAKPiA+IC0JCQljaGFuZ2VkIHw9IGludGVsX2VuY29kZXItPmhvdHBsdWcoaW50 ZWxfZW5jb2RlciwKPiA+IC0JCQkJCQkJICBpbnRlbF9jb25uZWN0b3IpOwo+ID4gKwkJCXN3aXRj aCAoaW50ZWxfZW5jb2Rlci0+aG90cGx1ZyhpbnRlbF9lbmNvZGVyLAo+ID4gKwkJCQkJCSAgICAg ICBpbnRlbF9jb25uZWN0b3IsCj4gPiArCQkJCQkJICAgICAgIGhwZF9ldmVudF9iaXRzICYgaHBk X2JpdCkpIHsKPiA+ICsJCQljYXNlIElOVEVMX0hPVFBMVUdfTk9DSEFOR0U6Cj4gPiArCQkJCWJy ZWFrOwo+ID4gKwkJCWNhc2UgSU5URUxfSE9UUExVR19DSEFOR0VEOgo+ID4gKwkJCQljaGFuZ2Vk ID0gdHJ1ZTsKPiA+ICsJCQkJYnJlYWs7Cj4gPiArCQkJY2FzZSBJTlRFTF9IT1RQTFVHX1JFVFJZ Ogo+ID4gKwkJCQlyZXRyeSB8PSBocGRfYml0Owo+ID4gKwkJCQlicmVhazsKPiA+ICsJCQl9Cj4g PiAgCQl9Cj4gPiAgCX0KPiA+ICAJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0 ZXIpOwo+ID4gQEAgLTM4OSw2ICs0MTAsMTUgQEAgc3RhdGljIHZvaWQgaTkxNV9ob3RwbHVnX3dv cmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiAgCj4gPiAgCWlmIChjaGFuZ2Vk KQo+ID4gIAkJZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChkZXYpOwo+ID4gKwo+ID4gKwlp ZiAocmV0cnkpIHsKPiA+ICsJCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4g PiArCQlkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzIHw9IHJldHJ5Owo+ID4gKwkJc3Bpbl91 bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4gKwo+ID4gKwkJbW9kX2RlbGF5ZWRf d29yayhzeXN0ZW1fd3EsICZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmssCj4gPiArCQkJ CSBtc2Vjc190b19qaWZmaWVzKEhQRF9SRVRSWV9ERUxBWSkpOwo+ID4gKwl9Cj4gPiAgfQo+ID4g IAo+ID4gIAo+ID4gQEAgLTUxNSw3ICs1NDUsNyBAQCB2b2lkIGludGVsX2hwZF9pcnFfaGFuZGxl cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCWlmIChxdWV1ZV9kaWcp Cj4gPiAgCQlxdWV1ZV93b3JrKGRldl9wcml2LT5ob3RwbHVnLmRwX3dxLCAmZGV2X3ByaXYtPmhv dHBsdWcuZGlnX3BvcnRfd29yayk7Cj4gPiAgCWlmIChxdWV1ZV9ocCkKPiA+IC0JCXNjaGVkdWxl X3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7Cj4gPiArCQlzY2hlZHVsZV9k ZWxheWVkX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywgMCk7Cj4gPiAgfQo+ ID4gIAo+ID4gIC8qKgo+ID4gQEAgLTYzNSw3ICs2NjUsOCBAQCB2b2lkIGludGVsX2hwZF9wb2xs X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAo+ID4gIHZvaWQg aW50ZWxfaHBkX2luaXRfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g PiAgewo+ID4gLQlJTklUX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywgaTkx NV9ob3RwbHVnX3dvcmtfZnVuYyk7Cj4gPiArCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+ aG90cGx1Zy5ob3RwbHVnX3dvcmssCj4gPiArCQkJICBpOTE1X2hvdHBsdWdfd29ya19mdW5jKTsK PiA+ICAJSU5JVF9XT1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrLCBpOTE1X2Rp Z3BvcnRfd29ya19mdW5jKTsKPiA+ICAJSU5JVF9XT1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5wb2xs X2luaXRfd29yaywgaTkxNV9ocGRfcG9sbF9pbml0X3dvcmspOwo+ID4gIAlJTklUX0RFTEFZRURf V09SSygmZGV2X3ByaXYtPmhvdHBsdWcucmVlbmFibGVfd29yaywKPiA+IEBAIC02NDksMTEgKzY4 MCwxMiBAQCB2b2lkIGludGVsX2hwZF9jYW5jZWxfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gPiAgCWRldl9wcml2LT5ob3RwbHVnLmxvbmdfcG9ydF9tYXNrID0gMDsK PiA+ICAJZGV2X3ByaXYtPmhvdHBsdWcuc2hvcnRfcG9ydF9tYXNrID0gMDsKPiA+ICAJZGV2X3By aXYtPmhvdHBsdWcuZXZlbnRfYml0cyA9IDA7Cj4gPiArCWRldl9wcml2LT5ob3RwbHVnLnJldHJ5 X2JpdHMgPSAwOwo+ID4gIAo+ID4gIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9j ayk7Cj4gPiAgCj4gPiAgCWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5ob3RwbHVnLmRpZ19w b3J0X3dvcmspOwo+ID4gLQljYW5jZWxfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3Rw bHVnX3dvcmspOwo+ID4gKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRldl9wcml2LT5ob3Rw bHVnLmhvdHBsdWdfd29yayk7Cj4gPiAgCWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5ob3Rw bHVnLnBvbGxfaW5pdF93b3JrKTsKPiA+ICAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZf cHJpdi0+aG90cGx1Zy5yZWVuYWJsZV93b3JrKTsKPiA+ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc2R2by5jCj4gPiBpbmRleCBlN2IwODg0YmE1YTUuLjkyNzkzNDc1YjJiOSAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jCj4gPiBAQCAtMTcyMiwxMiArMTcyMiwxNCBAQCBz dGF0aWMgdm9pZCBpbnRlbF9zZHZvX2VuYWJsZV9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+ID4gIAkJCSAgICAgJmludGVsX3Nkdm8tPmhvdHBsdWdfYWN0aXZlLCAyKTsK PiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIGJvb2wgaW50ZWxfc2R2b19ob3RwbHVnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCj4gPiArc3RhdGljIGVudW0gaW50ZWxfaG90cGx1Z19zdGF0ZQo+ID4g K2ludGVsX3Nkdm9faG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJ CSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsJCSAgIGJvb2wgaXJx X3JlY2VpdmVkKQo+ID4gIHsKPiA+ICAJaW50ZWxfc2R2b19lbmFibGVfaG90cGx1ZyhlbmNvZGVy KTsKPiA+ICAKPiA+IC0JcmV0dXJuIGludGVsX2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25u ZWN0b3IpOwo+ID4gKwlyZXR1cm4gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5l Y3RvciwgaXJxX3JlY2VpdmVkKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGJvb2wKPiAKPiAt LSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==