From mboxrd@z Thu Jan 1 00:00:00 1970 From: Todd Previte Subject: Re: [PATCH 4/9] drm/i915: Add check for corrupt raw EDID header for Displayport compliance testing Date: Wed, 08 Apr 2015 14:43:07 -0700 Message-ID: <5525A0EB.1040400@gmail.com> References: <1427822106-29617-1-git-send-email-tprevite@gmail.com> <1427822106-29617-5-git-send-email-tprevite@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: 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: Paulo Zanoni Cc: Intel Graphics Development , DRI Development List-Id: intel-gfx@lists.freedesktop.org CgpPbiA0LzgvMjAxNSA5OjUxIEFNLCBQYXVsbyBaYW5vbmkgd3JvdGU6Cj4gMjAxNS0wMy0zMSAx NDoxNSBHTVQtMDM6MDAgVG9kZCBQcmV2aXRlIDx0cHJldml0ZUBnbWFpbC5jb20+Ogo+PiBEaXNw bGF5cG9ydCBjb21wbGlhbmNlIHRlc3QgNC4yLjIuNiByZXF1aXJlcyB0aGF0IGEgc291cmNlIGRl dmljZSBiZSBjYXBhYmxlIG9mIGRldGVjdGluZwo+PiBhIGNvcnJ1cHQgRURJRC4gVG8gZG8gdGhp cywgdGhlIHRlc3Qgc2V0cyB1cCBhbiBpbnZhbGlkIEVESUQgaGVhZGVyIHRvIGJlIHJlYWQgYnkg dGhlIHNvdXJjZQo+PiBkZXZpY2UuIFVuZm9ydHVuYXRlbHksIHRoZSBEUk0gRURJRCByZWFkaW5n IGFuZCBwYXJzaW5nIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgdG9vIGdvb2QgaW4KPj4gdGhpcyBj YXNlIGFuZCBwcmV2ZW50IHRoZSBzb3VyY2UgZnJvbSByZWFkaW5nIHRoZSBjb3JydXB0ZWQgRURJ RC4gVGhlIHJlc3VsdCBpcyBhIGZhaWxlZAo+PiBjb21wbGlhbmNlIHRlc3QuCj4+Cj4+IEluIG9y ZGVyIHRvIHN1Y2Nlc3NmdWxseSBwYXNzIHRoZSB0ZXN0LCB0aGUgcmF3IEVESUQgaGVhZGVyIG11 c3QgYmUgY2hlY2tlZCBvbiBlYWNoIHJlYWQKPj4gdG8gc2VlIGlmIGhhcyBiZWVuICJjb3JydXB0 ZWQiLiBJZiBhbiBpbnZhbGlkIHJhdyBoZWFkZXIgaXMgZGV0ZWN0ZWQsIGEgZmxhZyBpcyBzZXQg dGhhdAo+PiBhbGxvd3MgdGhlIGNvbXBsaWFuY2UgdGVzdGluZyBjb2RlIHRvIGFja25vd2xlZGdl IHRoYXQgZmFjdCBhbmQgcmVhY3QgYXBwcm9wcmlhdGVseS4gVGhlCj4+IGZsYWcgaXMgYXV0b21h dGljYWxseSBjbGVhcmVkIG9uIHJlYWQuCj4+Cj4+IFRoaXMgY29kZSBpcyBkZXNpZ25lZCB0byBl eHByZXNzbHkgd29yayBmb3IgY29tcGxpYW5jZSB0ZXN0aW5nIHdpdGhvdXQgZGlzcnVwdGluZyBu b3JtYWwKPj4gb3BlcmF0aW9ucyBmb3IgRURJRCByZWFkaW5nIGFuZCBwYXJzaW5nLgo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBUb2RkIFByZXZpdGUgPHRwcmV2aXRlQGdtYWlsLmNvbT4KPj4gQ2M6IGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMgICAgICAgfCAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDE3ICsrKysrKysrKysrKysr KysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMSArCj4+ICAgaW5j bHVkZS9kcm0vZHJtX2VkaWQuaCAgICAgICAgICAgfCAgNSArKysrKwo+PiAgIDQgZmlsZXMgY2hh bmdlZCwgNTYgaW5zZXJ0aW9ucygrKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+PiBpbmRleCA1M2JjN2E2 Li4zZDRmNDczIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+PiBAQCAtOTkwLDYgKzk5MCwzMiBAQCBz dGF0aWMgY29uc3QgdTggZWRpZF9oZWFkZXJbXSA9IHsKPj4gICAgICAgICAgMHgwMCwgMHhmZiwg MHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHgwMAo+PiAgIH07Cj4+Cj4+ICsKPj4gKy8q IEZsYWcgZm9yIEVESUQgY29ycnVwdGlvbiB0ZXN0aW5nCj4+ICsgKiBEaXNwbGF5cG9ydCBMaW5r IENUUyBDb3JlIDEuMiByZXYxLjEgLSA0LjIuMi42Cj4+ICsgKi8KPj4gK3N0YXRpYyBib29sIHJh d19lZGlkX2hlYWRlcl9jb3JydXB0ZWQ7Cj4gQSBzdGF0aWMgdmFyaWFibGUgbGlrZSB0aGlzIGlz IG5vdCBhIGdvb2QgZGVzaWduLCBlc3BlY2lhbGx5IGZvciBhCj4gbW9kdWxlIGxpa2UgZHJtLmtv LiBJZiB5b3UgcmVhbGx5IG5lZWQgdGhpcywgcGxlYXNlIHN0b3JlIGl0IGluc2lkZQo+IHNvbWUg c3RydWN0LiBCdXQgc2VlIGJlbG93IGZpcnN0LgpQZXIgb3VyIGRpc2N1c3Npb24gdGhpcyBtb3Ju aW5nLCBJIGNvbmN1ci4gVGhpcyBoYXMgYmVlbiByZW1vdmVkIGluIApmYXZvciBvZiBhIGRpZmZl cmVudCBzb2x1dGlvbiB0aGF0IHVzZXMgYSBuZXcgYm9vbGVhbiBmbGFnIGluIHRoZSAKZHJtX2Nv bm5lY3RvciBzdHJ1Y3QuCgpDYXB0dXJpbmcgbW9yZSBvZiB0aGUgZGlzY3Vzc2lvbiBoZXJlLCB0 aGUgc3RhdGljIGJvb2xlYW4gd2FzIGEgYmFkIGlkZWEgCnRvIGJlZ2luIHdpdGggYW5kIG5lZWRl ZCB0byBiZSByZW1vdmVkLiBPbmUgc29sdXRpb24gd2FzIHRvIG1ha2UgdGhlIApmbGFnIG5vbi1z dGF0aWMgYW5kIG5vbi1jbGVhci1vbi1yZWFkLCB0aGVuIGFkZCBhIHNlcGFyYXRlIGNsZWFyKCkg CmZ1bmN0aW9uLiBCdXQgaXQgc3RpbGwgaGFkIHRoZSBwcm9ibGVtIG9mIHBvdGVudGlhbCBtaXN1 c2Ugb3RoZXIgcGxhY2VzIAppbiB0aGUgY29kZS4gVGhlIGN1cnJlbnQgc29sdXRpb24gKHdoaWNo IHdpbGwgYmUgcG9zdGVkIHdpdGggVjUpIAptb2RpZmllcyB0aGUgaXNfdmFsaWQoKSBmdW5jdGlv biBhbmQgYWRkcyBhIGZsYWcgaW4gdGhlIGRybV9jb25uZWN0b3IgCnN0cnVjdCB0aGF0IGNhbiBi ZSB1c2VkIHRvIGRldGVjdCB0aGlzIGxvdy1sZXZlbCBoZWFkZXIgY29ycnVwdGlvbi4KCj4KPj4g Kwo+PiArLyoqCj4+ICsgKiBkcm1fcmF3X2VkaWRfaGVhZGVyX3ZhbGlkIC0gY2hlY2sgdG8gc2Vl IGlmIHRoZSByYXcgaGVhZGVyIGlzCj4+ICsgKiBjb3JydXB0IG9yIG5vdC4gVXNlZCBzb2xlbHkg Zm9yIERpc3BsYXlwb3J0IGNvbXBsaWFuY2UKPj4gKyAqIHRlc3RpbmcgYW5kIHJlcXVpcmVkIGJ5 IExpbmsgQ1RTIENvcmUgMS4yIHJldjEuMSA0LjIuMi42Lgo+PiArICogQHJhd19lZGlkOiBwb2lu dGVyIHRvIHJhdyBiYXNlIEVESUQgYmxvY2sKPj4gKyAqCj4+ICsgKiBJbmRpY2F0ZXMgd2hldGhl ciB0aGUgb3JpZ2luYWwgRURJRCBoZWFkZXIgYXMgcmVhZCBmcm9tIHRoZQo+PiArICogZGV2aWNl IHdhcyBjb3JydXB0IG9yIG5vdC4gQ2xlYXJzIG9uIHJlYWQuCj4+ICsgKgo+PiArICogUmV0dXJu OiB0cnVlIGlmIHRoZSByYXcgaGVhZGVyIHdhcyBjb3JydXB0LCBvdGhlcndpc2UgZmFsc2UKPj4g KyAqLwo+PiArYm9vbCBkcm1fcmF3X2VkaWRfaGVhZGVyX2NvcnJ1cHQodm9pZCkKPj4gK3sKPj4g KyAgICAgICBib29sIGNvcnJ1cHRlZCA9IHJhd19lZGlkX2hlYWRlcl9jb3JydXB0ZWQ7Cj4+ICsK Pj4gKyAgICAgICByYXdfZWRpZF9oZWFkZXJfY29ycnVwdGVkID0gMDsKPj4gKyAgICAgICByZXR1 cm4gY29ycnVwdGVkOwo+PiArfQo+PiArRVhQT1JUX1NZTUJPTChkcm1fcmF3X2VkaWRfaGVhZGVy X2NvcnJ1cHQpOwo+PiArCj4+ICAgLyoqCj4+ICAgICogZHJtX2VkaWRfaGVhZGVyX2lzX3ZhbGlk IC0gc2FuaXR5IGNoZWNrIHRoZSBoZWFkZXIgb2YgdGhlIGJhc2UgRURJRCBibG9jawo+PiAgICAq IEByYXdfZWRpZDogcG9pbnRlciB0byByYXcgYmFzZSBFRElEIGJsb2NrCj4+IEBAIC0xMDA2LDYg KzEwMzIsMTMgQEAgaW50IGRybV9lZGlkX2hlYWRlcl9pc192YWxpZChjb25zdCB1OCAqcmF3X2Vk aWQpCj4+ICAgICAgICAgICAgICAgICAgaWYgKHJhd19lZGlkW2ldID09IGVkaWRfaGVhZGVyW2ld KQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmUrKzsKPj4KPj4gKyAgICAgICBpZiAo c2NvcmUgIT0gOCkgewo+PiArICAgICAgICAgICAgICAgLyogTG9nIGFuZCBzZXQgZmxhZyBoZXJl IGZvciBFRElEIGNvcnJ1cHRpb24gdGVzdGluZwo+PiArICAgICAgICAgICAgICAgICogRGlzcGxh eXBvcnQgTGluayBDVFMgQ29yZSAxLjIgcmV2MS4xIC0gNC4yLjIuNgo+PiArICAgICAgICAgICAg ICAgICovCj4+ICsgICAgICAgICAgICAgICBEUk1fREVCVUdfRFJJVkVSKCJSYXcgRURJRCBoZWFk ZXIgaW52YWxpZFxuIik7Cj4+ICsgICAgICAgICAgICAgICByYXdfZWRpZF9oZWFkZXJfY29ycnVw dGVkID0gMTsKPj4gKyAgICAgICB9Cj4gVGhlIHByb2JsZW0gaXMgdGhhdCBoZXJlIHdlJ3JlIGxp bWl0aW5nIG91cnNlbHZlcyB0byBqdXN0IGEgYmFkIGVkaWQKPiBoZWFkZXIsIG5vdCBhIGJhZCBl ZGlkIGluIGdlbmVyYWwsIHNvIHRoZXJlIGFyZSBtYW55IHRoaW5ncyB3aGljaCB3ZQo+IG1pZ2h0 IG5vdCBnZXQgLSBzdWNoIGFzIGEgc2ltcGxlIHdyb25nIGNoZWNrc3VtIGVkaWQgdmFsdWUuIEkg cmVtZW1iZXIKPiB0aGF0IG9uIHRoZSBwcmV2aW91cyBwYXRjaCB5b3UgY2FsY3VsYXRlZCB0aGUg d2hvbGUgY2hlY2tzdW0gbWFudWFsbHksCj4gYnV0IEkgZG9uJ3Qgc2VlIHRoYXQgY29kZSBhbnlt b3JlLiBXaGF0IHdhcyB0aGUgcmVhc29uIGZvciB0aGUgY2hhbmdlPwpTbyB0aGlzIGNvZGUgaXMg c3BlY2lmaWNhbGx5IGZvciB0aGUgNC4yLjIuNiBjb21wbGlhbmNlIHRlc3QgdGhhdCBpcyAKbG9v a2luZyBmb3Igbm90aGluZyBtb3JlIHRoYW4gYW4gaW52YWxpZCBFRElEIGhlYWRlci4gSW4gZmFj dCwgdGhlIHRlc3QgCnVuaXQgb25seSBzZXRzIHRoYXQgaGVhZGVyIGFzIGludmFsaWQgb25jZSwg c28gaWYgeW91IG1pc3MgaXQgb24gdGhlIApmaXJzdCByZWFkLCB5b3UgY2FuJ3QgZ28gYmFjayBh bmQgY2hlY2sgaXQgYWdhaW4gbGF0ZXIgLSB0aGUgdGVzdCB3aWxsIApub3cgZmFpbC4gU28gY2F0 Y2hpbmcgdGhlIGdlbmVyYWwgY2FzZSBpc24ndCByZWFsbHkgd2hhdCB0aGlzIGlzIGFib3V0IC0g Cml0J3MgYWJvdXQgYmVpbmcgYWJsZSB0byBkZXRlY3QgYSBjb3JydXB0IEVESUQgaGVhZGVyIGV2 ZW4gaWYgaXQgb25seSAKaGFwcGVucyBvbmNlLgoKSG9uZXN0bHksIHRoZSBEUk0gRURJRCBjb2Rl IGlzIFZFUlkgZ29vZCBhYm91dCBjYXRjaGluZyBjb3JydXB0aW9uIGNhc2VzIAphbmQgaW4gdGhl IGNhc2Ugb2YgY29ycnVwdGVkIGhlYWRlcnMsIGZpeGluZyB0aGVtIGFuZCBtb3Zpbmcgb24uIEkg aGFkIAp0byB0aWUgaW50byBpdCBhdCBhIGZhaXJseSBsb3cgbGV2ZWwgaW4gb3JkZXIgdG8gY2F0 Y2ggdGhlIGludmFsaWQgCmhlYWRlciBiZWZvcmUgdGhlIGNvZGUgZml4ZWQgaXQuCgpXaXRoIHJl c3BlY3QgdG8gdGhlIGNoZWNrc3VtIGNvZGUsIGZvciBxdWl0ZSBhIHdoaWxlIHRoZSBjaGVja3N1 bSAKY29tcHV0YXRpb24gd2FzIGluY29ycmVjdCBpbiB0aGUgRFJNIGNvZGUuIFNvbWV3aGVyZSBh bG9uZyBpbiBOb3ZlbWJlciAKb2YgbGFzdCB5ZWFyIG9yIDIwMTMgKEkgcmVtZW1iZXIgdGhlIG1v bnRoLCBub3QgdGhlIHllYXIsIGdvIGZpZ3VyZSkgCnNvbWVvbmUgY2FtZSBhbG9uZyBhbmQgYWRk ZWQgYSBjaGVja3N1bSBjb21wdXRhdGlvbiB0aGF0IGFjdHVhbGx5IAp3b3JrZWQuIFNvIHRoYXQg cmVuZGVyZWQgdGhhdCBvcmlnaW5hbCBjb2RlIEkgd3JvdGUgdW5uZWNlc3NhcnkuCgo+IEFsc28s IHdoaWxlIHJldmlld2luZyB0aGUgcGF0Y2ggSSBqdXN0IGRpc2NvdmVyZWQKPiBjb25uZWN0b3It PmJhZF9lZGlkX2NvdW50ZXIuIENhbid0IHdlIGp1c3QgdXNlIGl0IGluc3RlYWQgb2YgdGhpcwo+ IHBhdGNoPyBJIG1lYW46IGdyYWIgdGhlIGN1cnJlbnQgY291bnRlciwgY2hlY2sgZWRpZCwgc2Vl IGlmIHRoZQo+IGNvdW50ZXIgbW92ZWQuCkkgdGhpbmsgdGhlIGFib3ZlIGRlc2NyaXB0aW9uIGhp Z2hsaWdodHMgd2h5IHVzaW5nIHRoaXMgY291bnRlciByZWFsbHkgCmlzbid0IGFuIG9wdGlvbi4g U2luY2UgdGhlIGNvZGUgb25seSBnZXRzIG9uZSBzaG90IGF0IGNhdGNoaW5nIHRoYXQgCmludmFs aWQgaGVhZGVyLCBpdCdzIGVzc2VudGlhbCB0byBtYWtlIHN1cmUgaXQncyBjYXB0dXJlZCBzcGVj aWZpY2FsbHkuIApDb21wYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB2YWx1ZXMgb2YgdGhpcyBjb3Vu dGVyIGRvZXNuJ3Qgc3BlY2lmaWNhbGx5IApzYXkgdGhhdCB0aGUgaGVhZGVyIHdhcyBpbnZhbGlk LCBvbmx5IHRoYXQgU09NRXRoaW5nIGluIHRoZSBFRElEIHdhcyAKaW52YWxpZC4KPj4gICAgICAg ICAgcmV0dXJuIHNjb3JlOwo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MKGRybV9lZGlkX2hlYWRl cl9pc192YWxpZCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBpbmRleCBkYzg3Mjc2Li41 N2Y4ZTQzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gQEAgLTM4MjQsNiArMzgy NCw5IEBAIHVwZGF0ZV9zdGF0dXM6Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZyZXNwb25zZSwgMSk7Cj4+ICAgICAgICAgIGlmIChzdGF0dXMgPD0gMCkKPj4gICAgICAg ICAgICAgICAgICBEUk1fREVCVUdfS01TKCJDb3VsZCBub3Qgd3JpdGUgdGVzdCByZXNwb25zZSB0 byBzaW5rXG4iKTsKPj4gKwo+PiArICAgICAgIC8qIENsZWFyIGZsYWcgaGVyZSwgYWZ0ZXIgdGVz dGluZyBpcyBjb21wbGV0ZSovCj4+ICsgICAgICAgaW50ZWxfZHAtPmNvbXBsaWFuY2VfZWRpZF9p bnZhbGlkID0gMDsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGludAo+PiBAQCAtMzg5Niw2ICszODk5 LDEwIEBAIGludGVsX2RwX2NoZWNrX2xpbmtfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKTsKPj4gICAgICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+PiArICAgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5l Y3Rvci0+YmFzZTsKPj4gKyAgICAgICBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPSAmaW50 ZWxfZHAtPmF1eC5kZGM7Cj4+ICsgICAgICAgc3RydWN0IGVkaWQgKmVkaWRfcmVhZCA9IE5VTEw7 Cj4+ICsKPj4gICAgICAgICAgdTggc2lua19pcnFfdmVjdG9yOwo+PiAgICAgICAgICB1OCBsaW5r X3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXTsKPj4KPj4gQEAgLTM5MTIsNiArMzkxOSwxNiBA QCBpbnRlbF9kcF9jaGVja19saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ PiAgICAgICAgICAgICAgICAgIHJldHVybjsKPj4gICAgICAgICAgfQo+Pgo+PiArICAgICAgIC8q IENvbXBsaWFuY2UgdGVzdGluZyByZXF1aXJlcyBhbiBFRElEIHJlYWQgZm9yIGFsbCBIUEQgZXZl bnRzCj4+ICsgICAgICAgICogTGluayBDVFMgQ29yZSAxLjIgcmV2IDEuMTogVGVzdCA0LjIuMi4x Cj4+ICsgICAgICAgICogRmxhZyBzZXQgaGVyZSB3aWxsIGJlIGhhbmRsZWQgaW4gdGhlIEVESUQg dGVzdCBmdW5jdGlvbgo+PiArICAgICAgICAqLwo+PiArICAgICAgIGVkaWRfcmVhZCA9IGRybV9n ZXRfZWRpZChjb25uZWN0b3IsIGFkYXB0ZXIpOwo+PiArICAgICAgIGlmICghZWRpZF9yZWFkIHx8 IGRybV9yYXdfZWRpZF9oZWFkZXJfY29ycnVwdCgpID09IDEpIHsKPj4gKyAgICAgICAgICAgICAg IERSTV9ERUJVR19EUklWRVIoIkVESUQgaW52YWxpZCwgc2V0dGluZyBmbGFnXG4iKTsKPj4gKyAg ICAgICAgICAgICAgIGludGVsX2RwLT5jb21wbGlhbmNlX2VkaWRfaW52YWxpZCA9IDE7Cj4+ICsg ICAgICAgfQo+IEkgc2VlIHRoYXQgb24gdGhlIG5leHQgcGF0Y2ggeW91IGFsc28gYWRkIGEgZHJt X2dldF9lZGlkKCkgY2FsbCwgc28gd2UKPiBoYXZlIGFwcGFyZW50bHkgYWRkZWQgMiBjYWxscyBm b3IgdGhlIGVkaWQgdGVzdC4gRG8gd2UgcmVhbGx5IG5lZWQKPiBib3RoPyBXaHkgaXMgdGhpcyBv bmUgbmVlZGVkPyBXaHkgaXMgdGhhdCBvbmUgbmVlZGVkPwpTbyB0aGVyZSdzIHR3byBpc3N1ZXMg aGVyZSAtIGZpcnN0IGlzIHRoZSBzYW1lIG9uZSBtZW50aW9uZWQgYWJvdmUsIApjYXRjaGluZyB0 aGF0IHNpbmdsZSBpbnN0YW5jZSBvZiBhIGNvcnJ1cHRlZCBFRElEIGhlYWRlci4gVGhlIHNlY29u ZCBpcyAKdGhhdCB0aGUgY2hlY2tzdW0gZnJvbSB0aGUgdGVzdCBkZXZpY2UgZGlmZmVycyBiZXR3 ZWVuIHRoZSB0d28gcmVhZHMuIElmIAp5b3UgcmVtb3ZlIGVpdGhlciBvbmUgb2YgdGhlbSwgb25l IHRlc3Qgb3IgdGhlIG90aGVyIHdpbGwgZmFpbC4KCj4gQWxzbywgc29tZSBtb3JlIGlkZWFzOgo+ Cj4gSSBhbHNvIHRob3VnaHQgdGhhdCB3ZSBhbHJlYWR5IGF1dG9tYXRpY2FsbHkgaXNzdWVkIGdl dF9lZGlkKCkgY2FsbHMKPiBvbiB0aGUgbm9ybWFsIGhvdHBsdWcgY29kZSBwYXRoLCBzbyBpdCB3 b3VsZCBiZSBhICJ0aGlyZCIgY2FsbCBvbiB0aGUKPiBjb2RlcGF0aCBmb3IgdGhlIHRlc3QuIENh bid0IHdlIGp1c3QgcmVseSBvbiB0aGlzIG9uZT8KU2FtZSBpc3N1ZSBhcyBhYm92ZS4KPgo+IEFu b3RoZXIgaWRlYSB3b3VsZCBiZTogaW5zdGVhZCBvZiBnZXR0aW5nIHRoZSBlZGlkIGZyb20gaW5z aWRlIHRoZQo+IEtlcm5lbCwgd2UgY291bGQgdHJ5IHRvIGdldCBpdCBmcm9tIHRoZSB1c2VyLXNw YWNlLCB1c2luZyB0aGUKPiBHZXRSZXNvdXJjZXMvR2V0Q29ubmVjdG9yIElPQ1RMcywgYW5kIGFs c28gbWF5YmUgbG9vayBhdCB0aGUgRURJRAo+IHByb3BlcnRpZXMgdG8gcG9zc2libHkgdmFsaWRh dGUgdGhlIEVESUQgKGluIGNhc2UgdGhhdCBlZGlkIGRpZCBub3QKPiBnZXQgImZpeGVkIiBieSB0 aGUgS2VybmVsKS4gVGhlIG5pY2UgdGhpbmcgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IHdvdWxkCj4g bWFrZSB0aGUgdGVzdCBiZSBtb3JlIGxpa2UgYSByZWFsIGRyaXZlciB1c2FnZS4gRG8geW91IHNl ZSBhbnkKPiBwb3NzaWJsZSBwcm9ibGVtcyB3aXRoIHRoaXMgYXBwcm9hY2g/CkkgZG9uJ3QgcmVh bGx5IHNlZSB0aGlzIGFzIGEgdmFsaWQgb3B0aW9uIGluIGxpZ2h0IG9mIHRoZSBkZXNjcmlwdGlv bnMgCkkndmUgZ2l2ZW4gYWJvdmUuIFRoaXMgaGFzIGEgZ29vZCBjaGFuY2Ugb2YgaW50cm9kdWNp bmcgbGF0ZW5jeSBwcm9ibGVtcyAKd2hpY2ggbWF5IGFkdmVyc2VseSBhZmZlY3QgdGhlIHRlc3Rz IGFzIHdlbGwuCgo+PiArCj4+ICAgICAgICAgIC8qIFRyeSB0byByZWFkIHRoZSBzb3VyY2Ugb2Yg dGhlIGludGVycnVwdCAqLwo+PiAgICAgICAgICBpZiAoaW50ZWxfZHAtPmRwY2RbRFBfRFBDRF9S RVZdID49IDB4MTEgJiYKPj4gICAgICAgICAgICAgIGludGVsX2RwX2dldF9zaW5rX2lycShpbnRl bF9kcCwgJnNpbmtfaXJxX3ZlY3RvcikpIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4g aW5kZXggZTdiNjJiZS4uNDJlNDI1MSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK Pj4gQEAgLTY1MSw2ICs2NTEsNyBAQCBzdHJ1Y3QgaW50ZWxfZHAgewo+PiAgICAgICAgICAvKiBE aXNwbGF5cG9ydCBjb21wbGlhbmNlIHRlc3RpbmcgKi8KPj4gICAgICAgICAgdW5zaWduZWQgbG9u ZyBjb21wbGlhbmNlX3Rlc3RfdHlwZTsKPj4gICAgICAgICAgYm9vbCBjb21wbGlhbmNlX3Rlc3Rp bmdfYWN0aXZlOwo+PiArICAgICAgIGJvb2wgY29tcGxpYW5jZV9lZGlkX2ludmFsaWQ7Cj4+ICAg fTsKPj4KPj4gICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKPj4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9lZGlkLmggYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4+IGluZGV4IDg3 ZDg1ZTguLjhhN2ViMjIgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKPj4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAo+PiBAQCAtMzg4LDQgKzM4OCw5IEBAIHN0cnVj dCBlZGlkICpkcm1fZG9fZ2V0X2VkaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pLAo+PiAgICAgICAg ICB2b2lkICpkYXRhKTsKPj4KPj4gKy8qIENoZWNrIGZvciBjb3JydXB0aW9uIGluIHJhdyBFRElE IGhlYWRlciAtIERpc3BsYXlwb3J0IGNvbXBsaWFuY2UKPj4gKyAgKiBEaXNwbGF5cG9ydCBMaW5r IENUUyBDb3JlIDEuMiByZXYxLjEgLSA0LjIuMi42Cj4+ICsgKi8KPj4gK2Jvb2wgZHJtX3Jhd19l ZGlkX2hlYWRlcl9jb3JydXB0KHZvaWQpOwo+PiArCj4+ICAgI2VuZGlmIC8qIF9fRFJNX0VESURf SF9fICovCj4+IC0tCj4+IDEuOS4xCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK