From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Check live status before reading edid Date: Mon, 14 Sep 2015 10:42:14 +0200 Message-ID: <20150914084214.GK3383@phenom.ffwll.local> References: <1441970796-5850-1-git-send-email-sonika.jindal@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6BDBC6E7B1 for ; Mon, 14 Sep 2015 01:39:31 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so130425430wic.0 for ; Mon, 14 Sep 2015 01:39:30 -0700 (PDT) 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: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBTZXAgMTEsIDIwMTUgYXQgMDU6NTY6NDdQTSArMDAwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IFRoYW5rcwo+IAo+IFJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2 aUBpbnRlbC5jb20+Cj4gCj4gCj4gT24gRnJpLCBTZXAgMTEsIDIwMTUgYXQgNDozOCBBTSBTb25p a2EgSmluZGFsIDxzb25pa2EuamluZGFsQGludGVsLmNvbT4KPiB3cm90ZToKPiAKPiA+IFRoZSBC c3BlYyBpcyB2ZXJ5IGNsZWFyIHRoYXQgTGl2ZSBzdGF0dXMgbXVzdCBiZSBjaGVja2VkIGFib3V0 IGJlZm9yZQo+ID4gdHJ5aW5nIHRvIHJlYWQgRURJRCBvdmVyIEREQyBjaGFubmVsLiBUaGlzIHBh dGNoIG1ha2VzIHN1cmUgdGhhdCBIRE1JCj4gPiBFRElEIGlzIHJlYWQgb25seSB3aGVuIGxpdmUg c3RhdHVzIGlzIHVwLgo+ID4KPiA+IFRoZSBsaXZlIHN0YXR1cyBkb2Vzbid0IHNlZW0gdG8gcGVy Zm9ybSB2ZXJ5IGNvbnNpc3RlbnQgYWNyb3NzIHZhcmlvdXMKPiA+IHBsYXRmb3JtcyB3aGVuIHRl c3RlZCB3aXRoIGRpZmZlcmVudCBtb25pdG9ycy4gVGhlIHJlYXNvbiBiZWhpbmQgdGhhdCBpcwo+ ID4gc29tZSBtb25pdG9ycyBhcmUgbGF0ZSB0byBwcm92aWRlIHJpZ2h0IHZvbHRhZ2UgdG8gc2V0 IGxpdmVfc3RhdHVzIHVwLgo+ID4gU28sIGFmdGVyIGdldHRpbmcgdGhlIGludGVycnVwdCwgZm9y IGEgc21hbGwgZHVyYXRpb24sIGxpdmUgc3RhdHVzIHJlZwo+ID4gZmx1Y3R1YXRlcywgYW5kIHRo ZW4gc2V0dGxlcyBkb3duIHNob3dpbmcgdGhlIGNvcnJlY3Qgc3RhdXMuCj4gPgo+ID4gVGhpcyBp cyBleHBsYWluZWQgaGVyZSBpbiwgaW4gYSByb3VnaCB3YXk6Cj4gPiBIUEQgbGluZSAgX19fX19f X19fX19fX19fXwo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIHxcIFQxID0gTW9uaXRvciBI b3RwbHVnIGNhdXNpbmcgSVJRCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHwgICBUMiA9IExpdmUgc3RhdHVzIGlzIHN0YWJsZQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgIHwgfCAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgfCAvfAo+ID4gTGl2ZSBzdGF0dXMg X19fX19fX19fX19fX3xffC8gfAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgfCAgfAo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgfCAgfAo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgIHwgfCAgfAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgVDAgVDEgIFQyCj4gPgo+ ID4gKEJldHdlZW4gVDEgYW5kIFQyIExpdmUgc3RhdHVzIGZsdWN0dWF0ZXMgb3IgY2FuIGJlIGV2 ZW4gbG93LCBkZXBlbmRpbmcgb24KPiA+ICB0aGUgbW9uaXRvcikKPiA+Cj4gPiBBZnRlciBzZXZl cmFsIGV4cGVyaW1lbnRzLCB3ZSBoYXZlIGNvbmNsdWRlZCB0aGF0IGEgbWF4IGRlbGF5Cj4gPiBv ZiAzMG1zIGlzIGVub3VnaCB0byBhbGxvdyB0aGUgbGl2ZSBzdGF0dXMgdG8gc2V0dGxlIGRvd24g d2l0aAo+ID4gbW9zdCBvZiB0aGUgbW9uaXRvcnMuIFRoaXMgdG90YWwgZGVsYXkgb2YgMzBtcyBo YXMgYmVlbiBzcGxpdCBpbnRvCj4gPiBhIHJlc29sdXRpb24gb2YgMyByZXRyaWVzIG9mIDEwbXMg ZWFjaCwgZm9yIHRoZSBiZXR0ZXIgY2FzZXMuCj4gPgo+ID4gVGhpcyBkZWxheSBpcyBrZXB0IGF0 IDMwbXMsIGtlZXBpbmcgaW4gY29uc2lkZXJhdGlvbiB0aGF0LCBIRENQIGNvbXBsaWFuY2UKPiA+ IGV4cGVjdCB0aGUgSFBEIGhhbmRsZXIgdG8gcmVzcG9uZCBhIHBsdWcgb3V0IGluIDEwMG1zLCBi eSBkaXNhYmxpbmcgcG9ydC4KPiA+Cj4gPiB2MjogQWRkaW5nIGNoZWNrcyBmb3IgVkxWL0NIViBh cyB3ZWxsLiBSZXVzaW5nIG9sZCBpYnggYW5kIGc0eCBmdW5jdGlvbnMKPiA+IHRvIGNoZWNrIGRp Z2l0YWwgcG9ydCBzdGF0dXMuIEFkZGluZyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGdldCBieHQg bGl2ZQo+ID4gc3RhdHVzIChEYW5pZWwpCj4gPiB2MzogVXNpbmcgaW50ZWxfZW5jb2Rlci0+aHBk X3BpbiB0byBjaGVjayB0aGUgbGl2ZSBzdGF0dXMgKFNpdmEpCj4gPiBNb3ZpbmcgdGhlIGxpdmUg c3RhdHVzIHJlYWQgdG8gaW50ZWxfaGRtaV9wcm9iZSBhbmQgcGFzc2luZyBwYXJhbWV0ZXIKPiA+ IHRvIHJlYWQvbm90IHRvIHJlYWQgdGhlIGVkaWQuIChtZSkKPiA+IHY0Ogo+ID4gKiBBZGRlZCBs aXZlIHN0YXR1cyBjaGVjayBmb3IgYWxsIHBsYXRmb3JtcyB1c2luZwo+ID4gaW50ZWxfZGlnaXRh bF9wb3J0X2Nvbm5lY3RlZC4KPiA+ICogUmViYXNlZCBvbiB0b3Agb2YgSmFuaSdzIERQIGNsZWFu dXAgc2VyaWVzCj4gPiAqIFNvbWUgbW9uaXRvcnMgdGFrZSB0aW1lIGluIHNldHRpbmcgdGhlIGxp dmUgc3RhdHVzLiBTbyByZXRyeSBmb3IgZmV3Cj4gPiB0aW1lcyBpZiB0aGlzIGlzIGEgY29ubmVj dCBIUEQKPiA+IHY1OiBSZW1vdmVkIGV4dHJhICJkcm0vaTkxNSIgZnJvbSBjb21taXQgbWVzc2Fn ZS4gQWRkaW5nIFNoYXNoYW5rJ3Mgc29iCj4gPiAgICAgd2hpY2ggd2FzIG1pc3NlZC4KPiA+IHY2 OiBEcm9wIHRoZSAoIWRldGVjdF9lZGlkICYmICFsaXZlX3N0YXR1cyBjaGVjaykgY2hlY2sgYmVj YXVzZSBmb3IgRERJCj4gPiBwb3J0cyB3aGljaCBhcmUgZW51bWVyYXRlZCBhcyBoZG1pIGFzIHdl bGwgYXMgRFAsIHdlIGRvbid0IGhhdmUgYQo+ID4gbWVjaGFuaXNtIHRvIGRpZmZlcmVudGlhdGUg YmV0d2VlbiBEUCBhbmQgaGRtaSBpbnNpZGUgdGhlIGVuY29kZXIncwo+ID4gaG90X3BsdWcuIFRo aXMgbGVhZHMgdG8gY2FsbCB0byB0aGUgaGRtaSdzIGhvdF9wbHVnIGhvb2sgZm9yIERQIGFzIHdl bGwKPiA+IGFzIGhkbWkgd2hpY2ggbGVhZHMgdG8gaXNzdWVzIGR1cmluZyB1bnBsdWcgYmVjYXVz ZSBvZiB0aGUgYWJvdmUgY2hlY2suCj4gPiB2NzogTWFrZSBpbnRlbF9kaWdpdGFsX3BvcnRfY29u bmVjdGVkIGdsb2JhbCBpbiB0aGlzIHBhdGNoLCBzb21lCj4gPiByZWZvcm1hdHRpbmcgb2Ygd2hp bGUgbG9vcCwgYWRkaW5nIGEgcHJpbnQgd2hlbiBsaXZlIHN0YXR1cyBpcyBub3QKPiA+IHVwLiAo Um9kcmlnbykKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5r LnNoYXJtYUBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBTb25pa2EgSmluZGFsIDxzb25p a2EuamluZGFsQGludGVsLmNvbT4KClNpbmNlIHRoaXMgaXMgdHJpY2t5IHN0dWZmIGFuZCBvdGhl ciBwYXRjaGVzIGluIHRoaXMgc2VyaWVzIGFyZSBibG9ja2VkCnVudGlsIHdlIGhhdmUgYSBjbGVh cmVyIHBpY3R1cmUgY2FuIHlvdSBwbGVhc2UgcmViYXNlIHRoaXMgdG8gYmUgdGhlIGZpcnN0CnBh dGNoIG9uIHRvcCBvZiAtbmlnaHRseSBzbyB0aGF0IEkgY2FuIHB1bGwgaXQgaW4gZGlyZWN0bHk/ CgpJIHRyaWVkIHRvIGRvIHRoYXQgYnV0IHByb3ZlZCBhIGJpdCB0b28gbWVzc3kuCi1EYW5pZWwK Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgfCAgICAyICst Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgICAgMiArKwo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8ICAgMjYgKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXggYmYxNzAz MC4uZmVkZjZkMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBAIC00Njk1 LDcgKzQ2OTUsNyBAQCBzdGF0aWMgYm9vbCBieHRfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1 Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAqCj4gPiAgICogUmV0dXJu ICV0cnVlIGlmIEBwb3J0IGlzIGNvbm5lY3RlZCwgJWZhbHNlIG90aGVyd2lzZS4KPiA+ICAgKi8K PiA+IC1zdGF0aWMgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlCj4gPiAqZGV2X3ByaXYsCj4gPiArYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRf Y29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqcG9ydCkKPiA+ICB7Cj4gPiAgICAgICAgIGlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGI2YzJjMjAuLmFjNmQ3NDgg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC0xMjEwLDYgKzEyMTAs OCBAQCB2b2lkIGludGVsX2VkcF9kcnJzX2Rpc2FibGUoc3RydWN0IGludGVsX2RwCj4gPiAqaW50 ZWxfZHApOwo+ID4gIHZvaWQgaW50ZWxfZWRwX2RycnNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ID4gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMp Owo+ID4gIHZvaWQgaW50ZWxfZWRwX2RycnNfZmx1c2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dW5zaWduZWQKPiA+IGZyb250YnVmZmVyX2JpdHMpOwo+ID4gK2Jvb2wgaW50ZWxfZGlnaXRhbF9w b3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKnBvcnQpOwo+Zz4KPiA+ICAvKiBpbnRlbF9kcF9tc3QuYyAqLwo+ID4gIGludCBpbnRl bF9kcF9tc3RfZW5jb2Rlcl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0LAo+ID4gaW50IGNvbm5faWQpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMKPiA+IGluZGV4IDFlZGE3MWEuLmQzNjZjYTUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYwo+ID4gQEAgLTEzMjksMjIgKzEzMjksMjMgQEAgaW50ZWxfaGRtaV91bnNldF9l ZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yCj4gPiAqY29ubmVjdG9yKQo+ID4gIH0KPiA+Cj4gPiAg c3RhdGljIGJvb2wKPiA+IC1pbnRlbF9oZG1pX3NldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiAraW50ZWxfaGRtaV9zZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gIHsKPiA+ICAgICAgICAgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmRldik7Cj4gPiAgICAg ICAgIHN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShj b25uZWN0b3IpOwo+ID4gICAgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl ciA9Cj4gPiAgICAgICAgICAgICAgICAgJmhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSktPmJh c2U7Cj4gPiAgICAgICAgIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9t YWluOwo+ID4gLSAgICAgICBzdHJ1Y3QgZWRpZCAqZWRpZDsKPiA+ICsgICAgICAgc3RydWN0IGVk aWQgKmVkaWQgPSBOVUxMOwo+ID4gICAgICAgICBib29sIGNvbm5lY3RlZCA9IGZhbHNlOwo+ID4K PiA+ICAgICAgICAgcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFp bihpbnRlbF9lbmNvZGVyKTsKPiA+ICAgICAgICAgaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2 X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPgo+ID4gLSAgICAgICBlZGlkID0gZHJtX2dldF9lZGlk KGNvbm5lY3RvciwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9nbWJ1c19n ZXRfYWRhcHRlcihkZXZfcHJpdiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnRlbF9oZG1pLT5kZGNfYnVzKSk7Cj4gPiArICAgICAgIGlm IChmb3JjZSkKPiA+ICsgICAgICAgICAgICAgICBlZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3Rv ciwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVsX2dtYnVzX2dl dF9hZGFwdGVyKGRldl9wcml2LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50ZWxfaGRtaS0+ZGRjX2J1cykpOwo+ID4KPiA+ICAgICAgICAgaW50ZWxfZGlzcGxheV9w b3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPgo+ID4gQEAgLTEzNzQsMTQgKzEz NzUsMjUgQEAgdm9pZCBpbnRlbF9oZG1pX3Byb2JlKHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiAq aW50ZWxfZW5jb2RlcikKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGVuY190b19pbnRlbF9o ZG1pKCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKPiA+ICAgICAgICAgc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubmVjdG9yID0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50ZWxfaGRtaS0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ID4gKyAgICAgICBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ID4gdG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNl LmRldik7Cj4gPiArICAgICAgIGJvb2wgbGl2ZV9zdGF0dXMgPSBmYWxzZTsKPiA+ICsgICAgICAg dW5zaWduZWQgaW50IHJldHJ5ID0gMzsKPiA+ICsKPiA+ICsgICAgICAgd2hpbGUgKCFsaXZlX3N0 YXR1cyAmJiAtLXJldHJ5KSB7Cj4gPiArICAgICAgICAgICAgICAgbGl2ZV9zdGF0dXMgPSBpbnRl bF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpKTsKPiA+ICsgICAgICAg ICAgICAgICBtZGVsYXkoMTApOwo+ID4gKyAgICAgICB9Cj4gPgo+ID4gKyAgICAgICBpZiAoIWxp dmVfc3RhdHVzKQo+ID4gKyAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIkxpdmUgc3RhdHVz IG5vdCB1cCEiKTsKPiA+ICAgICAgICAgLyoKPiA+ICAgICAgICAgICogV2UgYXJlIGhlcmUsIG1l YW5zIHRoZXJlIGlzIGEgaG90cGx1ZyBvciBhIGZvcmNlCj4gPiAgICAgICAgICAqIGRldGVjdGlv bi4gQ2xlYXIgdGhlIGNhY2hlZCBFRElEIGFuZCBwcm9iZSB0aGUKPiA+ICAgICAgICAgICogRERD IGJ1cyB0byBjaGVjayB0aGUgY3VycmVudCBzdGF0dXMgb2YgSERNSS4KPiA+ICAgICAgICAgICov Cj4gPiAgICAgICAgIGludGVsX2hkbWlfdW5zZXRfZWRpZCgmaW50ZWxfY29ubmVjdG9yLT5iYXNl KTsKPiA+IC0gICAgICAgaWYgKGludGVsX2hkbWlfc2V0X2VkaWQoJmludGVsX2Nvbm5lY3Rvci0+ YmFzZSkpCj4gPiArICAgICAgIGlmIChpbnRlbF9oZG1pX3NldF9lZGlkKCZpbnRlbF9jb25uZWN0 b3ItPmJhc2UsIGxpdmVfc3RhdHVzKSkKPiA+ICAgICAgICAgICAgICAgICBEUk1fREVCVUdfRFJJ VkVSKCJEREMgcHJvYmU6IGdvdCBFRElEXG4iKTsKPiA+ICAgICAgICAgZWxzZQo+ID4gICAgICAg ICAgICAgICAgIERSTV9ERUJVR19EUklWRVIoIkREQyBwcm9iZTogbm8gRURJRFxuIik7Cj4gPiBA QCAtMTQzMiw3ICsxNDQ0LDcgQEAgaW50ZWxfaGRtaV9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ID4gICAgICAgICBpZiAoY29ubmVjdG9yLT5zdGF0dXMgIT0gY29ubmVj dG9yX3N0YXR1c19jb25uZWN0ZWQpCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4KPiA+ IC0gICAgICAgaW50ZWxfaGRtaV9zZXRfZWRpZChjb25uZWN0b3IpOwo+ID4gKyAgICAgICBpbnRl bF9oZG1pX3NldF9lZGlkKGNvbm5lY3RvciwgdHJ1ZSk7Cj4gPiAgICAgICAgIGhkbWlfdG9fZGln X3BvcnQoaW50ZWxfaGRtaSktPmJhc2UudHlwZSA9IElOVEVMX09VVFBVVF9IRE1JOwo+ID4gIH0K PiA+Cj4gPiAtLQo+ID4gMS43LjEwLjQKPiA+Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4KCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK