From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 1/2] drm/i915: Add support for retrying hotplug Date: Thu, 11 Jul 2019 23:05:15 +0300 Message-ID: <20190711200515.GF5942@intel.com> References: <20190710221500.11576-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D85F6E286 for ; Thu, 11 Jul 2019 20:05:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190710221500.11576-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 T24gV2VkLCBKdWwgMTAsIDIwMTkgYXQgMDM6MTQ6NTlQTSAtMDcwMCwgSm9zw6kgUm9iZXJ0byBk ZSBTb3V6YSB3cm90ZToKPiBGcm9tOiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4g Cj4gVGhlcmUgaXMgc29tZSBzY2VuYXJpb3MgdGhhdCB3ZSBhcmUgYXdhcmUgdGhhdCBzaW5rIHBy b2JlIGNhbiBmYWlsLAo+IHNvIGxldHMgYWRkIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBsZXQgaG90 cGx1ZygpIGhvb2sgdG8gcmVxdWVzdAo+IGFub3RoZXIgcHJvYmUgYWZ0ZXIgc29tZSB0aW1lLgo+ IAo+IHYyOiBIYW5kbGUgc2hhcmVkIEhQRCBwaW5zIChJbXJlKQo+IHYzOiBSZWJhc2VkCj4gdjQ6 IFJlbmFtZWQgSU5URUxfSE9UUExVR19OT0NIQU5HRSB0byBJTlRFTF9IT1RQTFVHX1VOQ0hBTkdF RCB0byBrZWVwCj4gaXQgY29uc2lzdGVudChSb2RyaWdvKQo+IAo+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBSb2RyaWdv IFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9i ZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSmFu aSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGRpLmMgICAgIHwgMTIgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwLmMgICAgICB8IDEyICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMgfCA1OSArKysrKysrKysrKysrKystLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuaCB8ICA1ICstCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jICAgIHwgIDggKystCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgfCAgMyArLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICB8IDExICsrKy0KPiAgOCBmaWxl cyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBpbmRleCBhZDYzOGU3ZjI3YmIuLjcz NGMwMDQ4MDBmOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGku Ywo+IEBAIC00MDQ3LDE0ICs0MDQ3LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRtaV9yZXNldF9s aW5rKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJcmV0dXJuIG1vZGVzZXRfcGlw ZSgmY3J0Yy0+YmFzZSwgY3R4KTsKPiAgfQo+ICAKPiAtc3RhdGljIGJvb2wgaW50ZWxfZGRpX2hv dHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCSAgICAgIHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArc3RhdGljIGVudW0gaW50ZWxfaG90cGx1Z19z dGF0ZQo+ICtpbnRlbF9kZGlfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiArCQkgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgIGJvb2wgaXJx X3JlY2VpdmVkKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Owo+ IC0JYm9vbCBjaGFuZ2VkOwo+ICsJZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIHN0YXRlOwo+ICAJ aW50IHJldDsKPiAgCj4gLQljaGFuZ2VkID0gaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIs IGNvbm5lY3Rvcik7Cj4gKwlzdGF0ZSA9IGludGVsX2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBj b25uZWN0b3IsIGlycV9yZWNlaXZlZCk7Cj4gIAo+ICAJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0 KCZjdHgsIDApOwo+ICAKPiBAQCAtNDA3Niw3ICs0MDc4LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZGRpX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlkcm1fbW9kZXNl dF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gIAlXQVJOKHJldCwgIkFjcXVpcmluZyBtb2Rlc2V0IGxv Y2tzIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwo+ICAKPiAtCXJldHVybiBjaGFuZ2VkOwo+ICsJ cmV0dXJuIHN0YXRlOwo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+IGluZGV4IDBiZGI3ZWNj NWE4MS4uNDQyM2FiYmM3OTA3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZHAuYwo+IEBAIC00ODUzLDE0ICs0ODUzLDE2IEBAIGludCBpbnRlbF9kcF9yZXRyYWluX2xp bmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAqIHJldHJhaW4gdGhlIGxpbmsg dG8gZ2V0IGEgcGljdHVyZS4gVGhhdCdzIGluIGNhc2Ugbm8KPiAgICogdXNlcnNwYWNlIGNvbXBv bmVudCByZWFjdGVkIHRvIGludGVybWl0dGVudCBIUEQgZGlwLgo+ICAgKi8KPiAtc3RhdGljIGJv b2wgaW50ZWxfZHBfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAtCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3N0YXRpYyBlbnVtIGlu dGVsX2hvdHBsdWdfc3RhdGUKPiAraW50ZWxfZHBfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiArCQkgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJ CSBib29sIGlycV9yZWNlaXZlZCkKPiAgewo+ICAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4IGN0eDsKPiAtCWJvb2wgY2hhbmdlZDsKPiArCWVudW0gaW50ZWxfaG90cGx1Z19zdGF0ZSBz dGF0ZTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JY2hhbmdlZCA9IGludGVsX2VuY29kZXJfaG90cGx1 ZyhlbmNvZGVyLCBjb25uZWN0b3IpOwo+ICsJc3RhdGUgPSBpbnRlbF9lbmNvZGVyX2hvdHBsdWco ZW5jb2RlciwgY29ubmVjdG9yLCBpcnFfcmVjZWl2ZWQpOwo+ICAKPiAgCWRybV9tb2Rlc2V0X2Fj cXVpcmVfaW5pdCgmY3R4LCAwKTsKPiAgCj4gQEAgLTQ4NzksNyArNDg4MSw3IEBAIHN0YXRpYyBi b29sIGludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlk cm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gIAlXQVJOKHJldCwgIkFjcXVpcmluZyBt b2Rlc2V0IGxvY2tzIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwo+ICAKPiAtCXJldHVybiBjaGFu Z2VkOwo+ICsJcmV0dXJuIHN0YXRlOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kcF9j aGVja19zZXJ2aWNlX2lycShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCj4gaW5kZXggZWEzZGU0YWNjODUw Li4yY2E5Mjc4MGM2NTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9ob3RwbHVnLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2hvdHBsdWcuYwo+IEBAIC0xMTIsNiArMTEyLDcgQEAgZW51bSBocGRfcGluIGludGVsX2hw ZF9waW5fZGVmYXVsdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAo+ICAj ZGVmaW5lIEhQRF9TVE9STV9ERVRFQ1RfUEVSSU9ECQkxMDAwCj4gICNkZWZpbmUgSFBEX1NUT1JN X1JFRU5BQkxFX0RFTEFZCSgyICogNjAgKiAxMDAwKQo+ICsjZGVmaW5lIEhQRF9SRVRSWV9ERUxB WQkJCTEwMDAKPiAgCj4gIC8qKgo+ICAgKiBpbnRlbF9ocGRfaXJxX3N0b3JtX2RldGVjdCAtIGdh dGhlciBzdGF0cyBhbmQgZGV0ZWN0IEhQRCBJUlEgc3Rvcm0gb24gYSBwaW4KPiBAQCAtMjY2LDgg KzI2NywxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJxX3N0b3JtX3JlZW5hYmxlX3dvcmso c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9w cml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKPiAgfQo+ICAKPiAtYm9vbCBpbnRlbF9lbmNvZGVy X2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCSAgIHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlCj4g K2ludGVsX2VuY29kZXJfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAr CQkgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJICAgICAgYm9v bCBpcnFfcmVjZWl2ZWQpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0 b3ItPmJhc2UuZGV2Owo+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBvbGRfc3RhdHVzOwo+ IEBAIC0yNzksNyArMjgyLDcgQEAgYm9vbCBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJZHJtX2hlbHBlcl9wcm9iZV9kZXRlY3QoJmNvbm5l Y3Rvci0+YmFzZSwgTlVMTCwgZmFsc2UpOwo+ICAKPiAgCWlmIChvbGRfc3RhdHVzID09IGNvbm5l Y3Rvci0+YmFzZS5zdGF0dXMpCj4gLQkJcmV0dXJuIGZhbHNlOwo+ICsJCXJldHVybiBJTlRFTF9I T1RQTFVHX1VOQ0hBTkdFRDsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVz XSBzdGF0dXMgdXBkYXRlZCBmcm9tICVzIHRvICVzXG4iLAo+ICAJCSAgICAgIGNvbm5lY3Rvci0+ YmFzZS5iYXNlLmlkLAo+IEBAIC0yODcsNyArMjkwLDcgQEAgYm9vbCBpbnRlbF9lbmNvZGVyX2hv dHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJICAgICAgZHJtX2dldF9j b25uZWN0b3Jfc3RhdHVzX25hbWUob2xkX3N0YXR1cyksCj4gIAkJICAgICAgZHJtX2dldF9jb25u ZWN0b3Jfc3RhdHVzX25hbWUoY29ubmVjdG9yLT5iYXNlLnN0YXR1cykpOwo+ICAKPiAtCXJldHVy biB0cnVlOwo+ICsJcmV0dXJuIElOVEVMX0hPVFBMVUdfQ0hBTkdFRDsKPiAgfQo+ICAKPiAgc3Rh dGljIGJvb2wgaW50ZWxfZW5jb2Rlcl9oYXNfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+IEBAIC0zMzksNyArMzQyLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9kaWdwb3J0 X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIAkJc3Bpbl9sb2NrX2lycSgm ZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAgCQlkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzIHw9 IG9sZF9iaXRzOwo+ICAJCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAt CQlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ICsJCXNj aGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLCAwKTsK ClJhbmRvbSB0aG91Z2h0OiBTaG91bGQgb3BlbiBjb2RlIHRoaXMgd2l0aCBxdWV1ZV9kZWxheWVk X3dvcmsoKSBpbnN0ZWFkCnNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhlIHdxIHJlYWxseSBpcyB0 aGUgc2FtZSBiZXR3ZWVuIHRoaXMgY2FsbAphbmQgdGhlIG1vZF9kZWxheWVkX3dvcmsoKT8KCj4g IAl9Cj4gIH0KPiAgCj4gQEAgLTM0OSwxNCArMzUyLDE2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZGln cG9ydF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICBzdGF0aWMgdm9pZCBp OTE1X2hvdHBsdWdfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgewo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAtCQljb250YWluZXJfb2Yod29y aywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIGhvdHBsdWcuaG90cGx1Z193b3JrKTsKPiArCQlj b250YWluZXJfb2Yod29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsCj4gKwkJCSAgICAgaG90 cGx1Zy5ob3RwbHVnX3dvcmsud29yayk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRl dl9wcml2LT5kcm07Cj4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7 Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKPiAgCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIg Y29ubl9pdGVyOwo+IC0JYm9vbCBjaGFuZ2VkID0gZmFsc2U7Cj4gKwl1MzIgY2hhbmdlZCA9IDAs IHJldHJ5ID0gMDsKPiAgCXUzMiBocGRfZXZlbnRfYml0czsKPiArCXUzMiBocGRfcmV0cnlfYml0 czsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiAgCURSTV9E RUJVR19LTVMoInJ1bm5pbmcgZW5jb2RlciBob3RwbHVnIGZ1bmN0aW9uc1xuIik7Cj4gQEAgLTM2 NSw2ICszNzAsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBsdWdfd29ya19mdW5jKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKPiAgCj4gIAlocGRfZXZlbnRfYml0cyA9IGRldl9wcml2LT5ob3Rw bHVnLmV2ZW50X2JpdHM7Cj4gIAlkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzID0gMDsKPiAr CWhwZF9yZXRyeV9iaXRzID0gZGV2X3ByaXYtPmhvdHBsdWcucmV0cnlfYml0czsKPiArCWRldl9w cml2LT5ob3RwbHVnLnJldHJ5X2JpdHMgPSAwOwo+ICAKPiAgCS8qIEVuYWJsZSBwb2xsaW5nIGZv ciBjb25uZWN0b3JzIHdoaWNoIGhhZCBIUEQgSVJRIHN0b3JtcyAqLwo+ICAJaW50ZWxfaHBkX2ly cV9zdG9ybV9zd2l0Y2hfdG9fcG9sbGluZyhkZXZfcHJpdik7Cj4gQEAgLTM3MywxNiArMzgwLDI5 IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQo+ICAKPiAgCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5f aXRlcik7Cj4gIAlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9p dGVyKSB7Cj4gKwkJdTMyIGhwZF9iaXQ7Cj4gKwo+ICAJCWludGVsX2Nvbm5lY3RvciA9IHRvX2lu dGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJCWlmICghaW50ZWxfY29ubmVjdG9yLT5lbmNv ZGVyKQo+ICAJCQljb250aW51ZTsKPiAgCQlpbnRlbF9lbmNvZGVyID0gaW50ZWxfY29ubmVjdG9y LT5lbmNvZGVyOwo+IC0JCWlmIChocGRfZXZlbnRfYml0cyAmICgxIDw8IGludGVsX2VuY29kZXIt PmhwZF9waW4pKSB7Cj4gKwkJaHBkX2JpdCA9IEJJVChpbnRlbF9lbmNvZGVyLT5ocGRfcGluKTsK PiArCQlpZiAoKGhwZF9ldmVudF9iaXRzIHwgaHBkX3JldHJ5X2JpdHMpICYgaHBkX2JpdCkgewo+ ICAJCQlEUk1fREVCVUdfS01TKCJDb25uZWN0b3IgJXMgKHBpbiAlaSkgcmVjZWl2ZWQgaG90cGx1 ZyBldmVudC5cbiIsCj4gIAkJCQkgICAgICBjb25uZWN0b3ItPm5hbWUsIGludGVsX2VuY29kZXIt PmhwZF9waW4pOwo+ICAKPiAtCQkJY2hhbmdlZCB8PSBpbnRlbF9lbmNvZGVyLT5ob3RwbHVnKGlu dGVsX2VuY29kZXIsCj4gLQkJCQkJCQkgIGludGVsX2Nvbm5lY3Rvcik7Cj4gKwkJCXN3aXRjaCAo aW50ZWxfZW5jb2Rlci0+aG90cGx1ZyhpbnRlbF9lbmNvZGVyLAo+ICsJCQkJCQkgICAgICAgaW50 ZWxfY29ubmVjdG9yLAo+ICsJCQkJCQkgICAgICAgaHBkX2V2ZW50X2JpdHMgJiBocGRfYml0KSkg ewo+ICsJCQljYXNlIElOVEVMX0hPVFBMVUdfVU5DSEFOR0VEOgo+ICsJCQkJYnJlYWs7Cj4gKwkJ CWNhc2UgSU5URUxfSE9UUExVR19DSEFOR0VEOgo+ICsJCQkJY2hhbmdlZCB8PSBocGRfYml0Owo+ ICsJCQkJYnJlYWs7Cj4gKwkJCWNhc2UgSU5URUxfSE9UUExVR19SRVRSWToKPiArCQkJCXJldHJ5 IHw9IGhwZF9iaXQ7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICAJCX0KPiAgCX0KPiAgCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVyKTsKPiBAQCAtMzkwLDYgKzQxMCwxNyBA QCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBsdWdfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPiAgCj4gIAlpZiAoY2hhbmdlZCkKPiAgCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2 ZW50KGRldik7Cj4gKwo+ICsJLyogUmVtb3ZlIHNoYXJlZCBIUEQgcGlucyB0aGF0IGhhdmUgY2hh bmdlZCAqLwo+ICsJcmV0cnkgJj0gfmNoYW5nZWQ7Cj4gKwlpZiAocmV0cnkpIHsKPiArCQlzcGlu X2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsJCWRldl9wcml2LT5ob3RwbHVnLnJl dHJ5X2JpdHMgfD0gcmV0cnk7Cj4gKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xv Y2spOwo+ICsKPiArCQltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJmRldl9wcml2LT5ob3Rw bHVnLmhvdHBsdWdfd29yaywKPiArCQkJCSBtc2Vjc190b19qaWZmaWVzKEhQRF9SRVRSWV9ERUxB WSkpOwo+ICsJfQo+ICB9Cj4gIAo+ICAKPiBAQCAtNTE2LDcgKzU0Nyw3IEBAIHZvaWQgaW50ZWxf aHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWlm IChxdWV1ZV9kaWcpCj4gIAkJcXVldWVfd29yayhkZXZfcHJpdi0+aG90cGx1Zy5kcF93cSwgJmRl dl9wcml2LT5ob3RwbHVnLmRpZ19wb3J0X3dvcmspOwo+ICAJaWYgKHF1ZXVlX2hwKQo+IC0JCXNj aGVkdWxlX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7Cj4gKwkJc2NoZWR1 bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmssIDApOwo+ICB9 Cj4gIAo+ICAvKioKPiBAQCAtNjM2LDcgKzY2Nyw4IEBAIHZvaWQgaW50ZWxfaHBkX3BvbGxfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICB2b2lkIGludGVsX2hw ZF9pbml0X3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlJ TklUX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywgaTkxNV9ob3RwbHVnX3dv cmtfZnVuYyk7Cj4gKwlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1 Z193b3JrLAo+ICsJCQkgIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMpOwo+ICAJSU5JVF9XT1JLKCZk ZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrLCBpOTE1X2RpZ3BvcnRfd29ya19mdW5jKTsK PiAgCUlOSVRfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcucG9sbF9pbml0X3dvcmssIGk5MTVfaHBk X3BvbGxfaW5pdF93b3JrKTsKPiAgCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+aG90cGx1 Zy5yZWVuYWJsZV93b3JrLAo+IEBAIC02NTAsMTEgKzY4MiwxMiBAQCB2b2lkIGludGVsX2hwZF9j YW5jZWxfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlkZXZfcHJp di0+aG90cGx1Zy5sb25nX3BvcnRfbWFzayA9IDA7Cj4gIAlkZXZfcHJpdi0+aG90cGx1Zy5zaG9y dF9wb3J0X21hc2sgPSAwOwo+ICAJZGV2X3ByaXYtPmhvdHBsdWcuZXZlbnRfYml0cyA9IDA7Cj4g KwlkZXZfcHJpdi0+aG90cGx1Zy5yZXRyeV9iaXRzID0gMDsKPiAgCj4gIAlzcGluX3VubG9ja19p cnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gIAo+ICAJY2FuY2VsX3dvcmtfc3luYygmZGV2X3By aXYtPmhvdHBsdWcuZGlnX3BvcnRfd29yayk7Cj4gLQljYW5jZWxfd29ya19zeW5jKCZkZXZfcHJp di0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ICsJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZk ZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+ICAJY2FuY2VsX3dvcmtfc3luYygmZGV2 X3ByaXYtPmhvdHBsdWcucG9sbF9pbml0X3dvcmspOwo+ICAJY2FuY2VsX2RlbGF5ZWRfd29ya19z eW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5yZWVuYWJsZV93b3JrKTsKPiAgfQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5oCj4gaW5kZXggODA1Zjg5N2RiYjdh Li5iMGNkNDQ3YjdmYmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9ob3RwbHVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2hvdHBsdWcuaAo+IEBAIC0xNSw4ICsxNSw5IEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3I7 Cj4gIHN0cnVjdCBpbnRlbF9lbmNvZGVyOwo+ICAKPiAgdm9pZCBpbnRlbF9ocGRfcG9sbF9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gLWJvb2wgaW50ZWxfZW5jb2Rl cl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQkgICBzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICtlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUg aW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJ CQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJICAg ICAgIGJvb2wgaXJxX3JlY2VpdmVkKTsKPiAgdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICB1MzIgcGluX21hc2ssIHUz MiBsb25nX21hc2spOwo+ICB2b2lkIGludGVsX2hwZF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZv LmMKPiBpbmRleCAzZmU4ZWFlZjZiZDguLjYzOTMxN2I4NGU1MSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jCj4gQEAgLTE5MTUsMTIgKzE5MTUsMTQgQEAg c3RhdGljIHZvaWQgaW50ZWxfc2R2b19lbmFibGVfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiAgCQkJICAgICAmaW50ZWxfc2R2by0+aG90cGx1Z19hY3RpdmUsIDIpOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBpbnRlbF9zZHZvX2hvdHBsdWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCj4gK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUKPiAraW50ZWxfc2R2b19o b3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCSAgIHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICBib29sIGlycV9yZWNlaXZlZCkKPiAgewo+ ICAJaW50ZWxfc2R2b19lbmFibGVfaG90cGx1ZyhlbmNvZGVyKTsKPiAgCj4gLQlyZXR1cm4gaW50 ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3Rvcik7Cj4gKwlyZXR1cm4gaW50ZWxf ZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3RvciwgaXJxX3JlY2VpdmVkKTsKPiAgfQo+ ICAKPiAgc3RhdGljIGJvb2wKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4 IDNlNGY1OGYxOTM2Mi4uNmQ0YmM5ODM5MTVmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKPiBAQCAtNDA5MCw3ICs0MDkwLDcgQEAgc3RhdGljIGludCBpOTE1X2hwZF9zdG9y bV9jdGxfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIAkgKi8KPiAgCWlu dGVsX3N5bmNocm9uaXplX2lycShkZXZfcHJpdik7Cj4gIAlmbHVzaF93b3JrKCZkZXZfcHJpdi0+ aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKPiAtCWZsdXNoX3dvcmsoJmRldl9wcml2LT5ob3RwbHVn LmhvdHBsdWdfd29yayk7Cj4gKwlmbHVzaF9kZWxheWVkX3dvcmsoJmRldl9wcml2LT5ob3RwbHVn LmhvdHBsdWdfd29yayk7Cj4gIAo+ICAJc2VxX3ByaW50ZihtLCAiVGhyZXNob2xkOiAlZFxuIiwg aG90cGx1Zy0+aHBkX3N0b3JtX3RocmVzaG9sZCk7Cj4gIAlzZXFfcHJpbnRmKG0sICJEZXRlY3Rl ZDogJXNcbiIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZjk4NzhjYmVmNGQ5Li5m NDcxMzA3YWE3MDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTYzLDcgKzE2 Myw3IEBAIGVudW0gaHBkX3BpbiB7Cj4gICNkZWZpbmUgSFBEX1NUT1JNX0RFRkFVTFRfVEhSRVNI T0xEIDUwCj4gIAo+ICBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKPiAtCXN0cnVjdCB3b3JrX3N0cnVj dCBob3RwbHVnX3dvcms7Cj4gKwlzdHJ1Y3QgZGVsYXllZF93b3JrIGhvdHBsdWdfd29yazsKPiAg Cj4gIAlzdHJ1Y3Qgewo+ICAJCXVuc2lnbmVkIGxvbmcgbGFzdF9qaWZmaWVzOwo+IEBAIC0xNzUs NiArMTc1LDcgQEAgc3RydWN0IGk5MTVfaG90cGx1ZyB7Cj4gIAkJfSBzdGF0ZTsKPiAgCX0gc3Rh dHNbSFBEX05VTV9QSU5TXTsKPiAgCXUzMiBldmVudF9iaXRzOwo+ICsJdTMyIHJldHJ5X2JpdHM7 Cj4gIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHJlZW5hYmxlX3dvcms7Cj4gIAo+ICAJdTMyIGxvbmdf cG9ydF9tYXNrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMjRjNjNlZDQ1YzZm Li5lNThkMzc1MWVkNDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xMDEs MTQgKzEwMSwyMSBAQCBzdHJ1Y3QgaW50ZWxfZmJkZXYgewo+ICAJc3RydWN0IG11dGV4IGhwZF9s b2NrOwo+ICB9Owo+ICAKPiArZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIHsKPiArCUlOVEVMX0hP VFBMVUdfVU5DSEFOR0VELAo+ICsJSU5URUxfSE9UUExVR19DSEFOR0VELAo+ICsJSU5URUxfSE9U UExVR19SRVRSWSwKPiArfTsKPiArCj4gIHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKPiAgCXN0cnVj dCBkcm1fZW5jb2RlciBiYXNlOwo+ICAKPiAgCWVudW0gaW50ZWxfb3V0cHV0X3R5cGUgdHlwZTsK PiAgCWVudW0gcG9ydCBwb3J0Owo+ICAJdW5zaWduZWQgaW50IGNsb25lYWJsZTsKPiAtCWJvb2wg KCpob3RwbHVnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAtCQkJc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiArCWVudW0gaW50ZWxfaG90cGx1Z19zdGF0ZSAo KmhvdHBsdWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJCSAgICBzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJICAgIGJvb2wgaXJxX3JlY2Vp dmVkKTsKPiAgCWVudW0gaW50ZWxfb3V0cHV0X3R5cGUgKCpjb21wdXRlX291dHB1dF90eXBlKShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ICAJCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqLAo+ICAJCQkJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqKTsKPiAt LSAKPiAyLjIyLjAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4