From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/probe-helper: don't lose hotplug event Date: Mon, 26 Jan 2015 08:06:43 +0100 Message-ID: <20150126070643.GH10113@phenom.ffwll.local> References: <1421826322-7592-1-git-send-email-daniel.vetter@ffwll.ch> <1421851260-23297-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rob Clark Cc: Daniel Vetter , Intel Graphics Development , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBKYW4gMjUsIDIwMTUgYXQgMTI6Mzc6MzFQTSAtMDUwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IE9uIFdlZCwgSmFuIDIxLCAyMDE1IGF0IDQ6NDAgUE0sIFJvYiBDbGFyayA8cm9iZGNsYXJr QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiBPbiBXZWQsIEphbiAyMSwgMjAxNSBhdCA5OjQxIEFNLCBE YW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPiA+PiBUaGVyZSdz IGEgcmFjZSB3aW5kb3cgKHNtYWxsIGZvciBocGQsIDEwcyBsYXJnZSBmb3IgcG9sbGVkIG91dHB1 dHMpCj4gPj4gd2hlcmUgdXNlcnNwYWNlIGNvdWxkIHNuZWFrIGluIHdpdGggYW4gdW5yZWxhdGVk IGNvbm5uZWN0b3IgcHJvYmUKPiA+PiBpb2N0bCBjYWxsIGFuZCBlYXQgdGhlIGhvdHBsdWcgZXZl bnQgKHNpbmNlIG5laXRoZXIgdGhlIGhwZCBub3IgdGhlCj4gPj4gcG9sbCBjb2RlIHNlZSBhIHN0 YXRlIGNoYW5nZSkuCj4gPj4KPiA+PiBUbyBhdm9pZCB0aGlzLCBjaGVjayB3aGV0aGVyIHRoZSBj b25uZWN0b3Igc3RhdGUgY2hhbmdlcyBpbiBhbGwgb3RoZXIKPiA+PiAtPmRldGVjdCBjYWxscyAo aW4gdGhlIGN1cnJlbnQgaGVscGVyIGNvZGUgdGhhdCdzIG9ubHkgcHJvYmVfc2luZ2xlKQo+ID4+ IGFuZCBpZiB0aGF0J3MgdGhlIGNhc2UsIGZpcmUgb2ZmIGEgaG90cGx1ZyBldmVudC4gTm90ZSB0 aGF0IHdlIGNhbid0Cj4gPj4gZGlyZWN0bHkgY2FsbCB0aGUgaG90cGx1ZyBldmVudCBoYW5kbGVy LCBzaW5jZSB0aGF0IGV4cGVjdHMgdGhhdCBubwo+ID4+IGxvY2tzIGFyZSBoZWxkIChkdWUgdG8g cmVlbnRyYW5jeSB3aXRoIHRoZSBmYiBjb2RlIHRvIHVwZGF0ZSB0aGUga21zCj4gPj4gY29uc29s ZSkuCj4gPj4KPiA+PiBBbHNvLCB0aGlzIHJlcXVpcmVzIHRoYXQgZHJpdmVycyB1c2luZyB0aGUg cHJvYmVfc2luZ2xlIGhlbHBlcgo+ID4+IGZ1bmN0aW9uIHNldCB1cCB0aGUgcG9sbCB3b3JrLiBB bGwgY3VycmVudCBkcml2ZXJzIGRvIHRoYXQgYWxyZWFkeSwKPiA+PiBhbmQgd2l0aCB0aGUgcmV3 b3JrZWQgaHBkIGhhbmRsaW5nIHRoZXJlJ2xsIGJlIG5vIGRvd25zaWRlIHRvCj4gPj4gdW5jb25k aXRpb25hbGx5IHNldHRpbmcgdXAgdGhlIHBvbGwgd29yayBhbnkgbW9yZS4KPiA+Pgo+ID4+IHYy OiBSZXZpZXcgZnJvbSBSb2IgQ2xhcmsKPiA+PiAtIERvbid0IGJhaWwgb3V0IG9mIHRoZSBvdXRw dXQgcG9sbCB3b3JrIGltbWVkaWF0ZWx5IGlmIGl0J3MgZGlzYWJsZWQKPiA+PiAgIHRvIG1ha2Ug c3VyZSB3ZSBkZWxpdmVyIHRoZSBkZWxheWVkIGhvcHRwbHVnIGV2ZW50cy4gSW5zdGVhZCBqdXN0 Cj4gPj4gICBqdW1wIHRvIHRoZSB0YWlsLgo+ID4+IC0gRG9uJ3Qgc2NoZWR1ZWwgdGhlIHdvcmsg d2hlbiBpdCdzIG5vdCBzZXQgdXAuIFdvdWxkIGJlIGEgZHJpdmVyIGJ1Zwo+ID4+ICAgc2luY2Ug dXNpbmcgcHJvYmUgaGVscGVycyBmb3IgYW55dGhpbmcgZHluYW1pYyB3aXRob3V0IHRoZW0KPiA+ PiAgIGluaXRpYWxpemVkIG1ha2VzIHRoZW0gYWxsIG5vb3BzLgo+ID4+Cj4gPj4gUmV2aWV3ZWQt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiAodjEpCj4gPj4gQ2M6 IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4KPiA+IFJldmlld2VkLWJ5OiBS b2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4gPgo+ID4gYW5kIHdpdGggdGhlIG1vbml0 b3IgdGhhdCBzdGFydGVkIGFsbCB0aGlzLCBwbHVzIHRoZSBhZGRpdGlvbiBvZjoKPiA+IGh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTUtSmFudWFyeS8w NzU5MDEuaHRtbAo+ID4KPiA+IFRlc3RlZC1ieTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwu Y29tPgo+IAo+IGJsZWgsIGJ1dCBvbiBsYXRlc3QgdXBzdHJlYW0gKHBsdXMgZHJtLW5leHQsIGV0 YykuLiBwb3NzaWJseSBqdXN0IG5vdAo+IGNhdWdodCBlYXJsaWVyIGR1ZSB0byBpbnN1ZmZpY2ll bnQgZGVidWcgc3R1ZmYgZW5hYmxlZC4uCj4gCj4gSSBjb3VsZCBwcm9iYWJseSBzb2x2ZSB0aGlz IGJ5IG1vdmluZyBkcm1fa21zX2hlbHBlcl9wb2xsX2luaXQoKQo+IGVhcmxpZXIuLiBvdG9oIHRo YXQgbWlnaHQgY2F1c2Ugb3RoZXIgc3VycHJpc2VzIGFuZCBvdGhlciBkcml2ZXJzIGFsc28KPiBz ZWVtIHRvIGRvIHRoaXMgbGF0ZSBpbiB0aGVpciBsb2FkLi4KCldlbGwgSSdtIGNvbmZ1c2VkIC0g SSBjaGVjayBmb3IgcG9sbF9lbmFibGVkIGFuZCB0aGF0IGlzIG9ubHkgc2V0IF9hZnRlcl8KSU5J VF9ERUxBWUVEX1dPUksuIFdoaWNoIHNob3VsZCBwcmV2ZW50IHNjaGVkdWxlX2RlbGF5ZWRfd29y ayBvbiBhbgp1bmluaXRpYWxpemVkIHdvcmsgYW5kIHdhcyB0aGUgZW50aXJlIHBvaW50IG9mIHYy LiBOb3RoaW5nIGVsc2Ugd3JpdGVzIHRvCnBvbGxfZW5hYmxlZC4gV2hhdCBkbyBJIG1pc3M/CgpU b3RhbGx5IGNvbmZ1c2VkIC4uLgotRGFuaWVsCgo+IAo+IFsgICAgNC4wNTMxOTddIFdBUk5JTkc6 IENQVTogMyBQSUQ6IDUyIGF0IC4uL2tlcm5lbC93b3JrcXVldWUuYzoxNDI3Cj4gX19xdWV1ZV9k ZWxheWVkX3dvcmsrMHgxNGMvMHgxNWMoKQo+IFsgICAgNC4wNTgwNDBdIE1vZHVsZXMgbGlua2Vk IGluOgo+IFsgICAgNC4wNzAwMTddIENQVTogMyBQSUQ6IDUyIENvbW06IGt3b3JrZXIvdTg6MSBU YWludGVkOiBHICAgICBVCj4gICAgMy4xOS4wLXJjNS0wMDgyMS1nNDE1ZjllMC1kaXJ0eSAjMTEx Mwo+IFsgICAgNC4wNzAxMDddIEhhcmR3YXJlIG5hbWU6IFF1YWxjb21tIChGbGF0dGVuZWQgRGV2 aWNlIFRyZWUpCj4gWyAgICA0LjA4MDAxNl0gV29ya3F1ZXVlOiBkZWZlcndxIGRlZmVycmVkX3By b2JlX3dvcmtfZnVuYwo+IFsgICAgNC4wOTA1NDldIFs8YzAyMTY1NGM+XSAodW53aW5kX2JhY2t0 cmFjZSkgZnJvbSBbPGMwMjExZjY4Pl0KPiAoc2hvd19zdGFjaysweDEwLzB4MTQpCj4gWyAgICA0 LjA5MDcxNF0gWzxjMDIxMWY2OD5dIChzaG93X3N0YWNrKSBmcm9tIFs8YzA5MWQzYmM+XQo+IChk dW1wX3N0YWNrKzB4OGMvMHg5YykKPiBbICAgIDQuMDk4NTE5XSBbPGMwOTFkM2JjPl0gKGR1bXBf c3RhY2spIGZyb20gWzxjMDI0NmEyYz5dCj4gKHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4ODQvMHhi NCkKPiBbICAgIDQuMTA1NTQ3XSBbPGMwMjQ2YTJjPl0gKHdhcm5fc2xvd3BhdGhfY29tbW9uKSBm cm9tIFs8YzAyNDZhZjg+XQo+ICh3YXJuX3Nsb3dwYXRoX251bGwrMHgxYy8weDI0KQo+IFsgICAg NC4xMTM3OTBdIFs8YzAyNDZhZjg+XSAod2Fybl9zbG93cGF0aF9udWxsKSBmcm9tIFs8YzAyNTli NWM+XQo+IChfX3F1ZXVlX2RlbGF5ZWRfd29yaysweDE0Yy8weDE1YykKPiBbICAgIDQuMTIyNTU2 XSBbPGMwMjU5YjVjPl0gKF9fcXVldWVfZGVsYXllZF93b3JrKSBmcm9tIFs8YzAyNTliYmM+XQo+ IChxdWV1ZV9kZWxheWVkX3dvcmtfb24rMHg1MC8weDVjKQo+IFsgICAgNC4xMzEzMzddIFs8YzAy NTliYmM+XSAocXVldWVfZGVsYXllZF93b3JrX29uKSBmcm9tIFs8YzA1NjExMTQ+XQo+IChkcm1f aGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXNfbWVyZ2VfYml0cysweDJmYy8weDQ5 YykKPiBbICAgIDQuMTQwMjkwXSBbPGMwNTYxMTE0Pl0KPiAoZHJtX2hlbHBlcl9wcm9iZV9zaW5n bGVfY29ubmVjdG9yX21vZGVzX21lcmdlX2JpdHMpIGZyb20gWzxjMDU2OTgyND5dCj4gKGRybV9m Yl9oZWxwZXJfcHJvYmVfY29ubmVjdG9yX21vZGVzLmlzcmEuNSsweDRjLzB4NmMpCj4gWyAgICA0 LjE1MjA4OV0gWzxjMDU2OTgyND5dCj4gKGRybV9mYl9oZWxwZXJfcHJvYmVfY29ubmVjdG9yX21v ZGVzLmlzcmEuNSkgZnJvbSBbPGMwNTZhOGE4Pl0KPiAoZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2Nv bmZpZysweDM0LzB4M2Q4KQo+IFsgICAgNC4xNjU2MjRdIFs8YzA1NmE4YTg+XSAoZHJtX2ZiX2hl bHBlcl9pbml0aWFsX2NvbmZpZykgZnJvbQo+IFs8YzA1YTYyZGM+XSAobXNtX2ZiZGV2X2luaXQr MHg3MC8weGEwKQo+IFsgICAgNC4xNzczNDJdIFs8YzA1YTYyZGM+XSAobXNtX2ZiZGV2X2luaXQp IGZyb20gWzxjMDVhMTYxND5dCj4gKG1zbV9sb2FkKzB4MjY4LzB4MzZjKQo+IFsgICAgNC4xODY1 MzddIFs8YzA1YTE2MTQ+XSAobXNtX2xvYWQpIGZyb20gWzxjMDU3M2FmND5dCj4gKGRybV9kZXZf cmVnaXN0ZXIrMHhhOC8weDEwNCkKPiBbICAgIDQuMTkzOTEyXSBbPGMwNTczYWY0Pl0gKGRybV9k ZXZfcmVnaXN0ZXIpIGZyb20gWzxjMDU3NTlkYz5dCj4gKGRybV9wbGF0Zm9ybV9pbml0KzB4NDQv MHhkOCkKPiBbICAgIDQuMjAxNDc1XSBbPGMwNTc1OWRjPl0gKGRybV9wbGF0Zm9ybV9pbml0KSBm cm9tIFs8YzA1YzE2NTQ+XQo+ICh0cnlfdG9fYnJpbmdfdXBfbWFzdGVyLnBhcnQuMysweGM4LzB4 MTA4KQo+IFsgICAgNC4yMDk4MDRdIFs8YzA1YzE2NTQ+XSAodHJ5X3RvX2JyaW5nX3VwX21hc3Rl ci5wYXJ0LjMpIGZyb20KPiBbPGMwNWMxNzQwPl0gKGNvbXBvbmVudF9tYXN0ZXJfYWRkX3dpdGhf bWF0Y2grMHhhYy8weDEyNCkKPiBbICAgIDQuMjE5NTI1XSBbPGMwNWMxNzQwPl0gKGNvbXBvbmVu dF9tYXN0ZXJfYWRkX3dpdGhfbWF0Y2gpIGZyb20KPiBbPGMwNWExMTZjPl0gKG1zbV9wZGV2X3By b2JlKzB4NjQvMHg3MCkKPiBbICAgIDQuMjMwMTE2XSBbPGMwNWExMTZjPl0gKG1zbV9wZGV2X3By b2JlKSBmcm9tIFs8YzA1YzczYzg+XQo+IChwbGF0Zm9ybV9kcnZfcHJvYmUrMHg0NC8weGE0KQo+ IFsgICAgNC4yMzk0ODVdIFs8YzA1YzczYzg+XSAocGxhdGZvcm1fZHJ2X3Byb2JlKSBmcm9tIFs8 YzA1YzVjNDg+XQo+IChkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MTA4LzB4MjNjKQo+IFsgICAgNC4y NDc4MTNdIFs8YzA1YzVjNDg+XSAoZHJpdmVyX3Byb2JlX2RldmljZSkgZnJvbSBbPGMwNWM0MmFj Pl0KPiAoYnVzX2Zvcl9lYWNoX2RydisweDY0LzB4OTgpCj4gWyAgICA0LjI1Njc1Ml0gWzxjMDVj NDJhYz5dIChidXNfZm9yX2VhY2hfZHJ2KSBmcm9tIFs8YzA1YzViMTA+XQo+IChkZXZpY2VfYXR0 YWNoKzB4NzQvMHg4OCkKPiBbICAgIDQuMjY1MjU5XSBbPGMwNWM1YjEwPl0gKGRldmljZV9hdHRh Y2gpIGZyb20gWzxjMDVjNTFmYz5dCj4gKGJ1c19wcm9iZV9kZXZpY2UrMHg4NC8weGE4KQo+IFsg ICAgNC4yNzMwNzFdIFs8YzA1YzUxZmM+XSAoYnVzX3Byb2JlX2RldmljZSkgZnJvbSBbPGMwNWM1 NjFjPl0KPiAoZGVmZXJyZWRfcHJvYmVfd29ya19mdW5jKzB4NjQvMHg5NCkKPiBbICAgIDQuMjgx MDY0XSBbPGMwNWM1NjFjPl0gKGRlZmVycmVkX3Byb2JlX3dvcmtfZnVuYykgZnJvbQo+IFs8YzAy NWEzNTQ+XSAocHJvY2Vzc19vbmVfd29yaysweDEzNC8weDMzNCkKPiBbICAgIDQuMjkwMDkxXSBb PGMwMjVhMzU0Pl0gKHByb2Nlc3Nfb25lX3dvcmspIGZyb20gWzxjMDI1YWMzMD5dCj4gKHdvcmtl cl90aHJlYWQrMHg0Yy8weDRiMCkKPiBbICAgIDQuMjk5MzgzXSBbPGMwMjVhYzMwPl0gKHdvcmtl cl90aHJlYWQpIGZyb20gWzxjMDI1ZWNmYz5dCj4gKGt0aHJlYWQrMHhkYy8weGY0KQo+IFsgICAg NC4zMDc0NTldIFs8YzAyNWVjZmM+XSAoa3RocmVhZCkgZnJvbSBbPGMwMjBlOTc4Pl0KPiAocmV0 X2Zyb21fZm9yaysweDE0LzB4M2MpCj4gCj4gQlIsCj4gLVIKPiAKPiA+Cj4gPj4gLS0tCj4gPj4g IGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMgfCAzNiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0KPiA+PiAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAg ICAgICB8ICAxICsKPiA+PiAgMiBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJv YmVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCj4gPj4gaW5k ZXggMmZiZGNjYTdjYTlhLi4zM2JmNTUwYTFkM2YgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f cHJvYmVfaGVscGVyLmMKPiA+PiBAQCAtMTAzLDYgKzEwMyw3IEBAIHN0YXRpYyBpbnQgZHJtX2hl bHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzX21lcmdlX2JpdHMoc3RydWN0IGRybV9j b25uZWN0Cj4gPj4gICAgICAgICBpbnQgY291bnQgPSAwOwo+ID4+ICAgICAgICAgaW50IG1vZGVf ZmxhZ3MgPSAwOwo+ID4+ICAgICAgICAgYm9vbCB2ZXJib3NlX3BydW5lID0gdHJ1ZTsKPiA+PiAr ICAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgb2xkX3N0YXR1czsKPiA+Pgo+ID4+ICAg ICAgICAgV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KSk7 Cj4gPj4KPiA+PiBAQCAtMTIxLDcgKzEyMiwzMyBAQCBzdGF0aWMgaW50IGRybV9oZWxwZXJfcHJv YmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc19tZXJnZV9iaXRzKHN0cnVjdCBkcm1fY29ubmVjdAo+ ID4+ICAgICAgICAgICAgICAgICBpZiAoY29ubmVjdG9yLT5mdW5jcy0+Zm9yY2UpCj4gPj4gICAg ICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5mdW5jcy0+Zm9yY2UoY29ubmVjdG9yKTsK PiA+PiAgICAgICAgIH0gZWxzZSB7Cj4gPj4gKyAgICAgICAgICAgICAgIG9sZF9zdGF0dXMgPSBj b25uZWN0b3ItPnN0YXR1czsKPiA+PiArCj4gPj4gICAgICAgICAgICAgICAgIGNvbm5lY3Rvci0+ c3RhdHVzID0gY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0KGNvbm5lY3RvciwgdHJ1ZSk7Cj4gPj4g Kwo+ID4+ICsgICAgICAgICAgICAgICAvKgo+ID4+ICsgICAgICAgICAgICAgICAgKiBOb3JtYWxs eSBlaXRoZXIgdGhlIGRyaXZlcidzIGhwZCBjb2RlIG9yIHRoZSBwb2xsIGxvb3Agc2hvdWxkCj4g Pj4gKyAgICAgICAgICAgICAgICAqIHBpY2sgdXAgYW55IGNoYW5nZXMgYW5kIGZpcmUgdGhlIGhv dHBsdWcgZXZlbnQuIEJ1dCBpZgo+ID4+ICsgICAgICAgICAgICAgICAgKiB1c2Vyc3BhY2Ugc25l YWtzIGluIGEgcHJvYmUsIHdlIG1pZ2h0IG1pc3MgYSBjaGFuZ2UuIEhlbmNlCj4gPj4gKyAgICAg ICAgICAgICAgICAqIGNoZWNrIGhlcmUsIGFuZCBpZiBhbnl0aGluZyBjaGFuZ2VkIHN0YXJ0IHRo ZSBob3RwbHVnIGNvZGUuCj4gPj4gKyAgICAgICAgICAgICAgICAqLwo+ID4+ICsgICAgICAgICAg ICAgICBpZiAob2xkX3N0YXR1cyAhPSBjb25uZWN0b3ItPnN0YXR1cykgewo+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIHN0YXR1cyB1 cGRhdGVkIGZyb20gJWQgdG8gJWRcbiIsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPm5hbWUsCj4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvbGRfc3RhdHVzLCBjb25uZWN0b3ItPnN0YXR1cyk7Cj4gPj4g Kwo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qCj4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICogVGhlIGhvdHBsdWcgZXZlbnQgY29kZSBtaWdodCBjYWxsIGludG8gdGhlIGZiCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogaGVscGVycywgYW5kIHNvIGV4cGVjdHMgdGhh dCB3ZSBkbyBub3QgaG9sZCBhbnkKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgKiBsb2Nr cy4gRmlyZSB1cCB0aGUgcG9sbCBzdHJ1Y3QgaW5zdGVhZCwgaXQgd2lsbAo+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAqIGRpc2FibGUgaXRzZWxmIGFnYWluLgo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAqLwo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIGRldi0+bW9kZV9j b25maWcuZGVsYXllZF9ldmVudCA9IHRydWU7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg aWYgKGRldi0+bW9kZV9jb25maWcucG9sbF9lbmFibGVkKQo+ID4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXYtPm1vZGVfY29uZmlnLm91 dHB1dF9wb2xsX3dvcmssCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCk7Cj4gPj4gKyAgICAgICAgICAgICAgIH0KPiA+PiAgICAgICAg IH0KPiA+Pgo+ID4+ICAgICAgICAgLyogUmUtZW5hYmxlIHBvbGxpbmcgaW4gY2FzZSB0aGUgZ2xv YmFsIHBvbGwgY29uZmlnIGNoYW5nZWQuICovCj4gPj4gQEAgLTI3NCwxMCArMzAxLDE0IEBAIHN0 YXRpYyB2b2lkIG91dHB1dF9wb2xsX2V4ZWN1dGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ ID4+ICAgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihkZWxheWVk X3dvcmssIHN0cnVjdCBkcm1fZGV2aWNlLCBtb2RlX2NvbmZpZy5vdXRwdXRfcG9sbF93b3JrKTsK PiA+PiAgICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPj4gICAgICAg ICBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIG9sZF9zdGF0dXM7Cj4gPj4gLSAgICAgICBib29s IHJlcG9sbCA9IGZhbHNlLCBjaGFuZ2VkID0gZmFsc2U7Cj4gPj4gKyAgICAgICBib29sIHJlcG9s bCA9IGZhbHNlLCBjaGFuZ2VkOwo+ID4+ICsKPiA+PiArICAgICAgIC8qIFBpY2sgdXAgYW55IGNo YW5nZXMgZGV0ZWN0ZWQgYnkgdGhlIHByb2JlIGZ1bmN0aW9ucy4gKi8KPiA+PiArICAgICAgIGNo YW5nZWQgPSBkZXYtPm1vZGVfY29uZmlnLmRlbGF5ZWRfZXZlbnQ7Cj4gPj4gKyAgICAgICBkZXYt Pm1vZGVfY29uZmlnLmRlbGF5ZWRfZXZlbnQgPSBmYWxzZTsKPiA+Pgo+ID4+ICAgICAgICAgaWYg KCFkcm1fa21zX2hlbHBlcl9wb2xsKQo+ID4+IC0gICAgICAgICAgICAgICByZXR1cm47Cj4gPj4g KyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ID4+Cj4gPj4gICAgICAgICBtdXRleF9sb2NrKCZk ZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiA+PiAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnko Y29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgewo+ID4+ IEBAIC0zMTksNiArMzUwLDcgQEAgc3RhdGljIHZvaWQgb3V0cHV0X3BvbGxfZXhlY3V0ZShzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPj4KPiA+PiAgICAgICAgIG11dGV4X3VubG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gPj4KPiA+PiArb3V0Ogo+ID4+ICAgICAgICAgaWYgKGNo YW5nZWQpCj4gPj4gICAgICAgICAgICAgICAgIGRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQo ZGV2KTsKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5j bHVkZS9kcm0vZHJtX2NydGMuaAo+ID4+IGluZGV4IGY0NDQyNjMwNTVjNS4uNjVkYTlmYjkzOWE3 IDEwMDY0NAo+ID4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiA+PiArKysgYi9pbmNs dWRlL2RybS9kcm1fY3J0Yy5oCj4gPj4gQEAgLTEwODksNiArMTA4OSw3IEBAIHN0cnVjdCBkcm1f bW9kZV9jb25maWcgewo+ID4+ICAgICAgICAgLyogb3V0cHV0IHBvbGwgc3VwcG9ydCAqLwo+ID4+ ICAgICAgICAgYm9vbCBwb2xsX2VuYWJsZWQ7Cj4gPj4gICAgICAgICBib29sIHBvbGxfcnVubmlu ZzsKPiA+PiArICAgICAgIGJvb2wgZGVsYXllZF9ldmVudDsKPiA+PiAgICAgICAgIHN0cnVjdCBk ZWxheWVkX3dvcmsgb3V0cHV0X3BvbGxfd29yazsKPiA+Pgo+ID4+ICAgICAgICAgLyogcG9pbnRl cnMgdG8gc3RhbmRhcmQgcHJvcGVydGllcyAqLwo+ID4+IC0tCj4gPj4gMi4xLjQKPiA+PgoKLS0g CkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCis0MSAo MCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK