From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 3/3] drm/i915: Add short HPD IRQ storm detection for non-MST systems Date: Fri, 2 Nov 2018 21:27:38 +0200 Message-ID: <20181102192738.GC9144@intel.com> References: <20181026224910.10138-1-lyude@redhat.com> <20181026224910.10138-4-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181026224910.10138-4-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lyude Paul Cc: David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMjYsIDIwMTggYXQgMDY6NDk6MDlQTSAtMDQwMCwgTHl1ZGUgUGF1bCB3cm90 ZToKPiBVbmZvcnR1bmF0ZWx5LCBpdCBzZWVtcyB0aGF0IHRoZSBIUEQgSVJRIHN0b3JtIHByb2Js ZW0gZnJvbSB0aGUgZWFybHkKPiBkYXlzIG9mIEludGVsIEdQVXMgd2FzIG5ldmVyIGVudGlyZWx5 IHNvbHZlZCwgb25seSBtb3N0bHkuIFdpdGhpbiB0aGUKPiBsYXN0IGNvdXBsZSBvZiBkYXlzLCBJ IGdvdCBhIGJ1ZyByZXBvcnQgZnJvbSBvbmUgb2Ygb3VyIGN1c3RvbWVycyB3aG8KPiBoYWQgYmVl biBoYXZpbmcgaXNzdWVzIHdpdGggdGhlaXIgbWFjaGluZSBzdWRkZW5seSBib290aW5nIHVwIHZl cnkKPiBzbG93bHkgYWZ0ZXIgaGF2aW5nIHVwZGF0ZWQuIFRoZSBhbW91bnQgb2YgdGltZSBpdCB0 b29rIHRvIGJvb3Qgd2VudAo+IGZyb20gYXJvdW5kIDMwIHNlY29uZHMsIHRvIG92ZXIgNiBtaW51 dGVzIGNvbnNpc3RlbnRseS4KPiAKPiBBZnRlciBzb21lIGludmVzdGlnYXRpb24sIEkgZGlzY292 ZXJlZCB0aGF0IGk5MTUgd2FzIHJlcG9ydGluZyBtYXNzaXZlCj4gYW1vdW50cyBvZiBzaG9ydCBI UEQgSVJRIHNwYW0gb24gdGhpcyBzeXN0ZW0gZnJvbSB0aGUgRGlzcGxheVBvcnQgcG9ydCwKPiBk ZXNwaXRlIHRoZXJlIG5vdCBiZWluZyBhbnl0aGluZyBhY3R1YWxseSBjb25uZWN0ZWQuIFRoZSBz eW1wdG9tcyB3b3VsZAo+IHN0YXJ0IHdpdGggb25lICJsb25nIiBIUEQgSVJRIGJlaW5nIGRldGVj dGVkIGF0IGJvb3Q6Cj4gCj4gWyAgICAxLjg5MTM5OF0gW2RybTppbnRlbF9nZXRfaHBkX3BpbnMg W2k5MTVdXSBob3RwbHVnIGV2ZW50IHJlY2VpdmVkLCBzdGF0IDB4MDA0NDAwMDAsIGRpZyAweDAw NDQwMDAwLCBwaW5zIDB4MDAwMDAwYTAKPiBbICAgIDEuODkxNDM2XSBbZHJtOmludGVsX2hwZF9p cnFfaGFuZGxlciBbaTkxNV1dIGRpZ2l0YWwgaHBkIHBvcnQgQiAtIGxvbmcKPiBbICAgIDEuODkx NDcyXSBbZHJtOmludGVsX2hwZF9pcnFfaGFuZGxlciBbaTkxNV1dIFJlY2VpdmVkIEhQRCBpbnRl cnJ1cHQgb24gUElOIDUgLSBjbnQ6IDAKPiBbICAgIDEuODkxNTA4XSBbZHJtOmludGVsX2hwZF9p cnFfaGFuZGxlciBbaTkxNV1dIGRpZ2l0YWwgaHBkIHBvcnQgRCAtIGxvbmcKPiBbICAgIDEuODkx NTQ0XSBbZHJtOmludGVsX2hwZF9pcnFfaGFuZGxlciBbaTkxNV1dIFJlY2VpdmVkIEhQRCBpbnRl cnJ1cHQgb24gUElOIDcgLSBjbnQ6IDAKPiBbICAgIDEuODkxNTkyXSBbZHJtOmludGVsX2RwX2hw ZF9wdWxzZSBbaTkxNV1dIGdvdCBocGQgaXJxIG9uIHBvcnQgQiAtIGxvbmcKPiBbICAgIDEuODkx NjI4XSBbZHJtOmludGVsX2RwX2hwZF9wdWxzZSBbaTkxNV1dIGdvdCBocGQgaXJxIG9uIHBvcnQg RCAtIGxvbmcKPiDigKYKPiAKPiBmb2xsb3dlZCBieSBjb25zdGFudCBzaG9ydCBJUlFzIGFmdGVy d2FyZHM6Cj4gCj4gWyAgICAxLjg5NTA5MV0gW2RybTppbnRlbF9lbmNvZGVyX2hvdHBsdWcgW2k5 MTVdXSBbQ09OTkVDVE9SOjY2OkRQLTFdIHN0YXR1cyB1cGRhdGVkIGZyb20gdW5rbm93biB0byBk aXNjb25uZWN0ZWQKPiBbICAgIDEuODk1MTI5XSBbZHJtOmk5MTVfaG90cGx1Z193b3JrX2Z1bmMg W2k5MTVdXSBDb25uZWN0b3IgRFAtMyAocGluIDcpIHJlY2VpdmVkIGhvdHBsdWcgZXZlbnQuCj4g WyAgICAxLjg5NTE2NV0gW2RybTppbnRlbF9kcF9kZXRlY3QgW2k5MTVdXSBbQ09OTkVDVE9SOjcy OkRQLTNdCj4gWyAgICAxLjg5NTI3NV0gW2RybTppbnRlbF9nZXRfaHBkX3BpbnMgW2k5MTVdXSBo b3RwbHVnIGV2ZW50IHJlY2VpdmVkLCBzdGF0IDB4MDAyMDAwMDAsIGRpZyAweDAwMjAwMDAwLCBw aW5zIDB4MDAwMDAwODAKPiBbICAgIDEuODk1MzEyXSBbZHJtOmludGVsX2hwZF9pcnFfaGFuZGxl ciBbaTkxNV1dIGRpZ2l0YWwgaHBkIHBvcnQgRCAtIHNob3J0Cj4gWyAgICAxLjg5NTc2Ml0gW2Ry bTppbnRlbF9nZXRfaHBkX3BpbnMgW2k5MTVdXSBob3RwbHVnIGV2ZW50IHJlY2VpdmVkLCBzdGF0 IDB4MDAyMDAwMDAsIGRpZyAweDAwMjAwMDAwLCBwaW5zIDB4MDAwMDAwODAKPiBbICAgIDEuODk1 Nzk5XSBbZHJtOmludGVsX2hwZF9pcnFfaGFuZGxlciBbaTkxNV1dIGRpZ2l0YWwgaHBkIHBvcnQg RCAtIHNob3J0Cj4gWyAgICAxLjg5NjIzOV0gW2RybTppbnRlbF9kcF9hdXhfeGZlciBbaTkxNV1d IGRwX2F1eF9jaCB0aW1lb3V0IHN0YXR1cyAweDcxNDUwMDg1Cj4gWyAgICAxLjg5NjI5M10gW2Ry bTppbnRlbF9nZXRfaHBkX3BpbnMgW2k5MTVdXSBob3RwbHVnIGV2ZW50IHJlY2VpdmVkLCBzdGF0 IDB4MDAyMDAwMDAsIGRpZyAweDAwMjAwMDAwLCBwaW5zIDB4MDAwMDAwODAKPiBbICAgIDEuODk2 MzMwXSBbZHJtOmludGVsX2hwZF9pcnFfaGFuZGxlciBbaTkxNV1dIGRpZ2l0YWwgaHBkIHBvcnQg RCAtIHNob3J0Cj4gWyAgICAxLjg5Njc4MV0gW2RybTppbnRlbF9nZXRfaHBkX3BpbnMgW2k5MTVd XSBob3RwbHVnIGV2ZW50IHJlY2VpdmVkLCBzdGF0IDB4MDAyMDAwMDAsIGRpZyAweDAwMjAwMDAw LCBwaW5zIDB4MDAwMDAwODAKPiBbICAgIDEuODk2ODE3XSBbZHJtOmludGVsX2hwZF9pcnFfaGFu ZGxlciBbaTkxNV1dIGRpZ2l0YWwgaHBkIHBvcnQgRCAtIHNob3J0Cj4gWyAgICAxLjg5NzI3NV0g W2RybTppbnRlbF9nZXRfaHBkX3BpbnMgW2k5MTVdXSBob3RwbHVnIGV2ZW50IHJlY2VpdmVkLCBz dGF0IDB4MDAyMDAwMDAsIGRpZyAweDAwMjAwMDAwLCBwaW5zIDB4MDAwMDAwODAKPiAKPiBUaGUg Y3VzdG9tZXIncyBzeXN0ZW0gaW4gcXVlc3Rpb24gaGFzIGEgR000NSBHUFUsIHdoaWNoIGlzIGFw cGFyZW50bHkKPiB3ZWxsIGtub3duIGZvciBob3RwbHVnZ2luZyBzdG9ybXMuCj4gCj4gU28sIHdv cmthcm91bmQgdGhpcyBpbXByZXNzaXZlbHkgYnJva2VuIGhhcmR3YXJlIGJ5IGNoYW5naW5nIHRo ZSBkZWZhdWx0Cj4gSFBEIHN0b3JtIHRocmVzaG9sZCBmcm9tIDUgdG8gNTAuIFRoZW4sIG1ha2Ug bG9uZyBJUlFzIGNvdW50IGZvciAxMCwgYW5kCj4gc2hvcnQgSVJRcyBjb3VudCBmb3IgMS4gVGhp cyBtYWtlcyBpdCBzbyB0aGF0IDUgbG9uZyBJUlFzIHdpbGwgdHJpZ2dlcgo+IGFuIEhQRCBzdG9y bSwgYW5kIG9uIHN5c3RlbXMgd2l0aCBzaG9ydCBIUEQgc3Rvcm0gZGV0ZWN0aW9uIDUwIHNob3J0 Cj4gSVJRcyB3aWxsIHRyaWdnZXIgYW4gSFBEIHN0b3JtLiA1MCBzaG9ydCBJUlFzIGFtb3VudHMg dG8gMTAwbXMgb2YKPiBjb25zdGFudCBwdWxzaW5nLCB3aGljaCBzZWVtcyBsaWtlIGEgZ29vZCBt aWRkbGVncm91bmQgYmV0d2VlbiBiZWluZyB0b28KPiBzZW5zaXRpdmUgYW5kIG5vdCBiZWluZyBz ZW5zaXRpdmUgZW5vdWdoICh3aGljaCB3b3VsZCBjYXVzZSB2aXNpYmxlCj4gc3R1dHRlcnMgaW4g dXNlcnNwYWNlIGV2ZXJ5IHRpbWUgYSBzdG9ybSBvY2N1cnMpLgo+IAo+IEFuZCBqdXN0IHRvIGJl IGV4dHJhIHNhZmU6IHdlIGRvbid0IGVuYWJsZSB0aGlzIGJ5IGRlZmF1bHQgb24gc3lzdGVtcwo+ IHdpdGggTVNUIHN1cHBvcnQuIFRoZXJlJ3MgdG9vIGhpZ2ggb2YgYSBjaGFuY2Ugb2YgTVNUIHN1 cHBvcnQgdHJpZ2dlcmluZwo+IHN0b3JtIGRldGVjdGlvbiwgYW5kIHN5c3RlbXMgdGhhdCBhcmUg bmV3IGVub3VnaCB0byBzdXBwb3J0IE1TVCBhcmUgYQo+IGxvdCBsZXNzIGxpa2VseSB0byBoYXZl IGlzc3VlcyB3aXRoIElSUSBzdG9ybXMgYW55d2F5Lgo+IAo+IEFzIGEgbm90ZTogdGhpcyBwYXRj aCB3YXMgdGVzdGVkIHVzaW5nIGEgVGhpbmtQYWQgVDQ1MHMgYW5kIGEgQ2hhbWVsaXVtCj4gdG8g c2ltdWxhdGUgdGhlIHNob3J0IElSUSBzdG9ybXMuCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAt IERvbid0IHVzZSB0d28gc2VwYXJhdGUgdGhyZXNob2xkcywganVzdCBtYWtlIGxvbmcgSVJRcyBj b3VudCBmb3IgMTAKPiAgIGVhY2ggYW5kIHNob3J0IElSUXMgY291bnQgZm9yIDEuIFRoaXMgc2lt cGxpZmllcyB0aGUgY29kZSBhIGJpdAo+ICAgLSBWaWxsZSBTeXJqw6Rsw6QKPiAKPiBTaWduZWQt b2ZmLWJ5OiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgo+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICA1ICstCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICB8ICA3ICsrKwo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMgfCA0NyArKysrKysrKysrKy0tLS0tLS0KPiAgNCBmaWxl cyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBiNDc0NGE2OGNkODguLjE1OTViODU2NTg3 NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTQ2NDEsNiArNDY0 MSw3OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpOTE1X2hwZF9zdG9y bV9jdGxfZm9wcyA9IHsKPiAgCS53cml0ZSA9IGk5MTVfaHBkX3N0b3JtX2N0bF93cml0ZQo+ICB9 Owo+ICAKPiArc3RhdGljIGludCBpOTE1X2hwZF9zaG9ydF9zdG9ybV9jdGxfc2hvdyhzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IG0tPnByaXZhdGU7Cj4gKwo+ICsJc2VxX3ByaW50ZihtLCAiRW5hYmxlZDog JXNcbiIsCj4gKwkJICAgeWVzbm8oZGV2X3ByaXYtPmhvdHBsdWcuaHBkX3Nob3J0X3N0b3JtX2Vu YWJsZWQpKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludAo+ICtpOTE1 X2hwZF9zaG9ydF9zdG9ybV9jdGxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls ZSAqZmlsZSkKPiArewo+ICsJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGk5MTVfaHBkX3Nob3J0 X3N0b3JtX2N0bF9zaG93LAo+ICsJCQkgICBpbm9kZS0+aV9wcml2YXRlKTsKPiArfQo+ICsKPiAr c3RhdGljIHNzaXplX3QgaTkxNV9ocGRfc2hvcnRfc3Rvcm1fY3RsX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLAo+ICsJCQkJCSAgICAgIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAo+ICsJCQkJCSAg ICAgIHNpemVfdCBsZW4sIGxvZmZfdCAqb2ZmcCkKPiArewo+ICsJc3RydWN0IHNlcV9maWxlICpt ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gbS0+cHJpdmF0ZTsKPiArCXN0cnVjdCBpOTE1X2hvdHBsdWcgKmhvdHBsdWcgPSAmZGV2 X3ByaXYtPmhvdHBsdWc7Cj4gKwljaGFyICpuZXdsaW5lOwo+ICsJY2hhciB0bXBbMTZdOwo+ICsJ aW50IGk7Cj4gKwlib29sIG5ld19zdGF0ZTsKPiArCj4gKwlpZiAobGVuID49IHNpemVvZih0bXAp KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlmIChjb3B5X2Zyb21fdXNlcih0bXAsIHVi dWYsIGxlbikpCj4gKwkJcmV0dXJuIC1FRkFVTFQ7Cj4gKwo+ICsJdG1wW2xlbl0gPSAnXDAnOwo+ ICsKPiArCS8qIFN0cmlwIG5ld2xpbmUsIGlmIGFueSAqLwo+ICsJbmV3bGluZSA9IHN0cmNocih0 bXAsICdcbicpOwo+ICsJaWYgKG5ld2xpbmUpCj4gKwkJKm5ld2xpbmUgPSAnXDAnOwo+ICsKPiAr CS8qIFJlc2V0IHRvIHRoZSAiZGVmYXVsdCIgc3RhdGUgZm9yIHRoaXMgc3lzdGVtICovCj4gKwlp ZiAoc3RyY21wKHRtcCwgInJlc2V0IikgPT0gMCkKPiArCQluZXdfc3RhdGUgPSAhSEFTX0RQX01T VChkZXZfcHJpdik7Cj4gKwllbHNlIGlmIChrc3RydG9ib29sKHRtcCwgJm5ld19zdGF0ZSkgIT0g MCkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlEUk1fREVCVUdfS01TKCIlc2FibGluZyBI UEQgc2hvcnQgc3Rvcm0gZGV0ZWN0aW9uXG4iLAo+ICsJCSAgICAgIG5ld19zdGF0ZSA/ICJFbiIg OiAiRGlzIik7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAr CWhvdHBsdWctPmhwZF9zaG9ydF9zdG9ybV9lbmFibGVkID0gbmV3X3N0YXRlOwo+ICsJLyogUmVz ZXQgdGhlIEhQRCBzdG9ybSBzdGF0cyBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgdHJpZ2dlciBh IHN0b3JtICovCj4gKwlmb3JfZWFjaF9ocGRfcGluKGkpCj4gKwkJaG90cGx1Zy0+c3RhdHNbaV0u Y291bnQgPSAwOwo+ICsJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsK PiArCS8qIFJlLWVuYWJsZSBocGQgaW1tZWRpYXRlbHkgaWYgd2Ugd2VyZSBpbiBhbiBpcnEgc3Rv cm0gKi8KPiArCWZsdXNoX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPmhvdHBsdWcucmVlbmFibGVf d29yayk7Cj4gKwo+ICsJcmV0dXJuIGxlbjsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgaTkxNV9ocGRfc2hvcnRfc3Rvcm1fY3RsX2ZvcHMgPSB7Cj4gKwku b3duZXIgPSBUSElTX01PRFVMRSwKPiArCS5vcGVuID0gaTkxNV9ocGRfc2hvcnRfc3Rvcm1fY3Rs X29wZW4sCj4gKwkucmVhZCA9IHNlcV9yZWFkLAo+ICsJLmxsc2VlayA9IHNlcV9sc2VlaywKPiAr CS5yZWxlYXNlID0gc2luZ2xlX3JlbGVhc2UsCj4gKwkud3JpdGUgPSBpOTE1X2hwZF9zaG9ydF9z dG9ybV9jdGxfd3JpdGUsCj4gK307Cj4gKwo+ICBzdGF0aWMgaW50IGk5MTVfZHJyc19jdGxfc2V0 KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRhdGE7Cj4gQEAgLTQ4MTgsNiArNDg5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9kZWJ1Z2ZzX2ZpbGVzIHsKPiAgCXsiaTkxNV9ndWNfbG9nX2xldmVsIiwgJmk5MTVf Z3VjX2xvZ19sZXZlbF9mb3BzfSwKPiAgCXsiaTkxNV9ndWNfbG9nX3JlbGF5IiwgJmk5MTVfZ3Vj X2xvZ19yZWxheV9mb3BzfSwKPiAgCXsiaTkxNV9ocGRfc3Rvcm1fY3RsIiwgJmk5MTVfaHBkX3N0 b3JtX2N0bF9mb3BzfSwKPiArCXsiaTkxNV9ocGRfc2hvcnRfc3Rvcm1fY3RsIiwgJmk5MTVfaHBk X3Nob3J0X3N0b3JtX2N0bF9mb3BzfSwKPiAgCXsiaTkxNV9pcGNfc3RhdHVzIiwgJmk5MTVfaXBj X3N0YXR1c19mb3BzfSwKPiAgCXsiaTkxNV9kcnJzX2N0bCIsICZpOTE1X2RycnNfY3RsX2ZvcHN9 LAo+ICAJeyJpOTE1X2VkcF9wc3JfZGVidWciLCAmaTkxNV9lZHBfcHNyX2RlYnVnX2ZvcHN9Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggODA4MjA0YTdjYTdjLi5hMzc4ZTBmZDIwMjIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjgyLDcgKzI4Miw4IEBAIGVudW0g aHBkX3BpbiB7Cj4gICNkZWZpbmUgZm9yX2VhY2hfaHBkX3BpbihfX3BpbikgXAo+ICAJZm9yICgo X19waW4pID0gKEhQRF9OT05FICsgMSk7IChfX3BpbikgPCBIUERfTlVNX1BJTlM7IChfX3Bpbikr KykKPiAgCj4gLSNkZWZpbmUgSFBEX1NUT1JNX0RFRkFVTFRfVEhSRVNIT0xEIDUKPiArLyogVGhy ZXNob2xkID09IDUgZm9yIGxvbmcgSVJRcywgNTAgZm9yIHNob3J0ICovCj4gKyNkZWZpbmUgSFBE X1NUT1JNX0RFRkFVTFRfVEhSRVNIT0xEIDUwCj4gIAo+ICBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsK PiAgCXN0cnVjdCB3b3JrX3N0cnVjdCBob3RwbHVnX3dvcms7Cj4gQEAgLTMwNyw2ICszMDgsOCBA QCBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKPiAgCWJvb2wgcG9sbF9lbmFibGVkOwo+ICAKPiAgCXVu c2lnbmVkIGludCBocGRfc3Rvcm1fdGhyZXNob2xkOwo+ICsJLyogV2hldGhlciBvciBub3QgdG8g Y291bnQgc2hvcnQgSFBEIElSUXMgaW4gSFBEIHN0b3JtcyAqLwo+ICsJdTggaHBkX3Nob3J0X3N0 b3JtX2VuYWJsZWQ7Cj4gIAo+ICAJLyoKPiAgCSAqIGlmIHdlIGdldCBhIEhQRCBpcnEgZnJvbSBE UCBhbmQgYSBIUEQgaXJxIGZyb20gbm9uLURQCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5k ZXggMTBmMjhhMmVlMmU2Li41Nzk3MGIzYTIyZGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiBAQCAtNDg0Myw2ICs0ODQzLDEzIEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCWRldl9wcml2LT5kaXNwbGF5X2lycXNfZW5h YmxlZCA9IGZhbHNlOwo+ICAKPiAgCWRldl9wcml2LT5ob3RwbHVnLmhwZF9zdG9ybV90aHJlc2hv bGQgPSBIUERfU1RPUk1fREVGQVVMVF9USFJFU0hPTEQ7Cj4gKwkvKiBJZiB3ZSBoYXZlIE1TVCBz dXBwb3J0LCB3ZSB3YW50IHRvIGF2b2lkIGRvaW5nIHNob3J0IEhQRCBJUlEgc3Rvcm0KPiArCSAq IGRldGVjdGlvbiwgYXMgc2hvcnQgSFBEIHN0b3JtcyB3aWxsIG9jY3VyIGFzIGEgbmF0dXJhbCBw YXJ0IG9mCj4gKwkgKiBzaWRlYmFuZCBtZXNzYWdpbmcgd2l0aCBNU1QuCj4gKwkgKiBPbiBvbGRl ciBwbGF0Zm9ybXMgaG93ZXZlciwgSVJRIHN0b3JtcyBjYW4gb2NjdXIgd2l0aCBib3RoIGxvbmcg YW5kCj4gKwkgKiBzaG9ydCBwdWxzZXMsIGFzIHNlZW4gb24gc29tZSBHNHggc3lzdGVtcy4KPiAr CSAqLwo+ICsJZGV2X3ByaXYtPmhvdHBsdWcuaHBkX3Nob3J0X3N0b3JtX2VuYWJsZWQgPSAhSEFT X0RQX01TVChkZXZfcHJpdik7Cj4gIAo+ICAJZGV2LT5kcml2ZXItPmdldF92YmxhbmtfdGltZXN0 YW1wID0gZHJtX2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nhbm91dHBvczsKPiAgCWRldi0+ZHJp dmVyLT5nZXRfc2Nhbm91dF9wb3NpdGlvbiA9IGk5MTVfZ2V0X2NydGNfc2Nhbm91dHBvczsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gaW5kZXggODMyNjkwMGEzMTFlLi5hYTZm NTJlNzIzZjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1 Zy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gQEAgLTEx NCwzMiArMTE0LDQ1IEBAIGVudW0gaHBkX3BpbiBpbnRlbF9ocGRfcGluX2RlZmF1bHQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAjZGVmaW5lIEhQRF9TVE9STV9SRUVOQUJM RV9ERUxBWQkoMiAqIDYwICogMTAwMCkKPiAgCj4gIC8qKgo+IC0gKiBpbnRlbF9ocGRfaXJxX3N0 b3JtX2RldGVjdCAtIGdhdGhlciBzdGF0cyBhbmQgZGV0ZWN0IEhQRCBpcnEgc3Rvcm0gb24gYSBw aW4KPiArICogaW50ZWxfaHBkX2lycV9zdG9ybV9kZXRlY3QgLSBnYXRoZXIgc3RhdHMgYW5kIGRl dGVjdCBIUEQgSVJRIHN0b3JtIG9uIGEgcGluCj4gICAqIEBkZXZfcHJpdjogcHJpdmF0ZSBkcml2 ZXIgZGF0YSBwb2ludGVyCj4gICAqIEBwaW46IHRoZSBwaW4gdG8gZ2F0aGVyIHN0YXRzIG9uCj4g ICAqCj4gLSAqIEdhdGhlciBzdGF0cyBhYm91dCBIUEQgaXJxcyBmcm9tIHRoZSBzcGVjaWZpZWQg QHBpbiwgYW5kIGRldGVjdCBpcnEKPiArICogR2F0aGVyIHN0YXRzIGFib3V0IEhQRCBJUlFzIGZy b20gdGhlIHNwZWNpZmllZCBAcGluLCBhbmQgZGV0ZWN0IElSUQo+ICAgKiBzdG9ybXMuIE9ubHkg dGhlIHBpbiBzcGVjaWZpYyBzdGF0cyBhbmQgc3RhdGUgYXJlIGNoYW5nZWQsIHRoZSBjYWxsZXIg aXMKPiAgICogcmVzcG9uc2libGUgZm9yIGZ1cnRoZXIgYWN0aW9uLgo+ICAgKgo+IC0gKiBUaGUg bnVtYmVyIG9mIGlycXMgdGhhdCBhcmUgYWxsb3dlZCB3aXRoaW4gQEhQRF9TVE9STV9ERVRFQ1Rf UEVSSU9EIGlzCj4gKyAqIFRoZSBudW1iZXIgb2YgSVJRcyB0aGF0IGFyZSBhbGxvd2VkIHdpdGhp biBASFBEX1NUT1JNX0RFVEVDVF9QRVJJT0QgaXMKPiAgICogc3RvcmVkIGluIEBkZXZfcHJpdi0+ aG90cGx1Zy5ocGRfc3Rvcm1fdGhyZXNob2xkIHdoaWNoIGRlZmF1bHRzIHRvCj4gLSAqIEBIUERf U1RPUk1fREVGQVVMVF9USFJFU0hPTEQuIElmIHRoaXMgdGhyZXNob2xkIGlzIGV4Y2VlZGVkLCBp dCdzCj4gLSAqIGNvbnNpZGVyZWQgYW4gaXJxIHN0b3JtIGFuZCB0aGUgaXJxIHN0YXRlIGlzIHNl dCB0byBASFBEX01BUktfRElTQUJMRUQuCj4gKyAqIEBIUERfU1RPUk1fREVGQVVMVF9USFJFU0hP TEQuIExvbmcgSVJRcyBjb3VudCBhcyArMTAgdG8gdGhpcyB0aHJlc2hvbGQsIGFuZAo+ICsgKiBz aG9ydCBJUlFzIGNvdW50IGFzICsxLiBJZiB0aGlzIHRocmVzaG9sZCBpcyBleGNlZWRlZCwgaXQn cyBjb25zaWRlcmVkIGFuCj4gKyAqIElSUSBzdG9ybSBhbmQgdGhlIElSUSBzdGF0ZSBpcyBzZXQg dG8gQEhQRF9NQVJLX0RJU0FCTEVELgo+ICsgKgo+ICsgKiBCeSBkZWZhdWx0LCBtb3N0IHN5c3Rl bXMgd2lsbCBvbmx5IGNvdW50IGxvbmcgSVJRcyB0b3dhcmRzCj4gKyAqICZkZXZfcHJpdi0+aG90 cGx1Zy5ocGRfc3Rvcm1fdGhyZXNob2xkLiBIb3dldmVyLCBzb21lIG9sZGVyIHN5c3RlbXMgYWxz bwo+ICsgKiBzdWZmZXIgZnJvbSBzaG9ydCBJUlEgc3Rvcm1zIGFuZCBtdXN0IGFsc28gdHJhY2sg dGhlc2UuIEJlY2F1c2Ugc2hvcnQgSVJRCj4gKyAqIHN0b3JtcyBhcmUgbmF0dXJhbGx5IGNhdXNl ZCBieSBzaWRlYmFuZCBpbnRlcmFjdGlvbnMgd2l0aCBEUCBNU1QgZGV2aWNlcywKPiArICogc2hv cnQgSVJRIGRldGVjdGlvbiBpcyBvbmx5IGVuYWJsZWQgZm9yIHN5c3RlbXMgd2l0aG91dCBEUCBN U1Qgc3VwcG9ydC4KPiArICogU3lzdGVtcyB3aGljaCBhcmUgbmV3IGVub3VnaCB0byBzdXBwb3J0 IERQIE1TVCBhcmUgZmFyIGxlc3MgbGlrZWx5IHRvCj4gKyAqIHN1ZmZlciBmcm9tIElSUSBzdG9y bXMgYXQgYWxsLCBzbyB0aGlzIGlzIGZpbmUuCj4gICAqCj4gICAqIFRoZSBIUEQgdGhyZXNob2xk IGNhbiBiZSBjb250cm9sbGVkIHRocm91Z2ggaTkxNV9ocGRfc3Rvcm1fY3RsIGluIGRlYnVnZnMs Cj4gICAqIGFuZCBzaG91bGQgb25seSBiZSBhZGp1c3RlZCBmb3IgYXV0b21hdGVkIGhvdHBsdWcg dGVzdGluZy4KPiAgICoKPiAtICogUmV0dXJuIHRydWUgaWYgYW4gaXJxIHN0b3JtIHdhcyBkZXRl Y3RlZCBvbiBAcGluLgo+ICsgKiBSZXR1cm4gdHJ1ZSBpZiBhbiBJUlEgc3Rvcm0gd2FzIGRldGVj dGVkIG9uIEBwaW4uCj4gICAqLwo+ICBzdGF0aWMgYm9vbCBpbnRlbF9ocGRfaXJxX3N0b3JtX2Rl dGVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkgICAgICAgZW51 bSBocGRfcGluIHBpbikKPiArCQkJCSAgICAgICBlbnVtIGhwZF9waW4gcGluLCBib29sIGxvbmdf aHBkKQo+ICB7Cj4gIAl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gZGV2X3ByaXYtPmhvdHBsdWcuc3Rh dHNbcGluXS5sYXN0X2ppZmZpZXM7Cj4gIAl1bnNpZ25lZCBsb25nIGVuZCA9IHN0YXJ0ICsgbXNl Y3NfdG9famlmZmllcyhIUERfU1RPUk1fREVURUNUX1BFUklPRCk7Cj4gIAljb25zdCBpbnQgdGhy ZXNob2xkID0gZGV2X3ByaXYtPmhvdHBsdWcuaHBkX3N0b3JtX3RocmVzaG9sZDsKPiArCWNvbnN0 IGludCBpbmNyZW1lbnQgPSBsb25nX2hwZCA/IDEwIDogMTsKPiAgCWJvb2wgc3Rvcm0gPSBmYWxz ZTsKPiAgCj4gKwlpZiAoIWxvbmdfaHBkICYmICFkZXZfcHJpdi0+aG90cGx1Zy5ocGRfc2hvcnRf c3Rvcm1fZW5hYmxlZCkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICAJaWYgKCF0aW1lX2luX3Jh bmdlKGppZmZpZXMsIHN0YXJ0LCBlbmQpKSB7Cj4gIAkJZGV2X3ByaXYtPmhvdHBsdWcuc3RhdHNb cGluXS5sYXN0X2ppZmZpZXMgPSBqaWZmaWVzOwo+ICAJCWRldl9wcml2LT5ob3RwbHVnLnN0YXRz W3Bpbl0uY291bnQgPSAwOwo+IEBAIC0xNTAsNyArMTYzLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxf aHBkX2lycV9zdG9ybV9kZXRlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJCURSTV9ERUJVR19LTVMoIkhQRCBpbnRlcnJ1cHQgc3Rvcm0gZGV0ZWN0ZWQgb24gUElOICVk XG4iLCBwaW4pOwo+ICAJCXN0b3JtID0gdHJ1ZTsKPiAgCX0gZWxzZSB7Cj4gLQkJZGV2X3ByaXYt PmhvdHBsdWcuc3RhdHNbcGluXS5jb3VudCsrOwo+ICsJCWRldl9wcml2LT5ob3RwbHVnLnN0YXRz W3Bpbl0uY291bnQgKz0gaW5jcmVtZW50Owo+ICAJCURSTV9ERUJVR19LTVMoIlJlY2VpdmVkIEhQ RCBpbnRlcnJ1cHQgb24gUElOICVkIC0gY250OiAlZFxuIiwgcGluLAo+ICAJCQkgICAgICBkZXZf cHJpdi0+aG90cGx1Zy5zdGF0c1twaW5dLmNvdW50KTsKPiAgCX0KPiBAQCAtNDA1LDI4ICs0MTgs MjQgQEAgdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYtPmRybSwgZW5j b2Rlcikgewo+ICAJCWVudW0gaHBkX3BpbiBwaW4gPSBlbmNvZGVyLT5ocGRfcGluOwo+ICAJCWJv b2wgaGFzX2hwZF9wdWxzZSA9IGludGVsX2VuY29kZXJfaGFzX2hwZF9wdWxzZShlbmNvZGVyKTsK PiArCQlib29sIGxvbmdfaHBkID0gdHJ1ZTsKPiAgCj4gIAkJaWYgKCEoQklUKHBpbikgJiBwaW5f bWFzaykpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlpZiAoaGFzX2hwZF9wdWxzZSkgewo+IC0J CQlib29sIGxvbmdfaHBkID0gbG9uZ19tYXNrICYgQklUKHBpbik7Cj4gIAkJCWVudW0gcG9ydCBw b3J0ID0gZW5jb2Rlci0+cG9ydDsKPiAgCj4gKwkJCWxvbmdfaHBkID0gISEobG9uZ19tYXNrICYg QklUKHBpbikpOwo+ICsKPiAgCQkJRFJNX0RFQlVHX0RSSVZFUigiZGlnaXRhbCBocGQgcG9ydCAl YyAtICVzXG4iLCBwb3J0X25hbWUocG9ydCksCj4gIAkJCQkJIGxvbmdfaHBkID8gImxvbmciIDog InNob3J0Iik7Cj4gLQkJCS8qCj4gLQkJCSAqIEZvciBsb25nIEhQRCBwdWxzZXMgd2Ugd2FudCB0 byBoYXZlIHRoZSBkaWdpdGFsIHF1ZXVlIGhhcHBlbiwKPiAtCQkJICogYnV0IHdlIHN0aWxsIHdh bnQgSFBEIHN0b3JtIGRldGVjdGlvbiB0byBmdW5jdGlvbi4KPiAtCQkJICovCj4gIAkJCXF1ZXVl X2RpZyA9IHRydWU7Cj4gLQkJCWlmIChsb25nX2hwZCkgewo+ICsJCQlpZiAobG9uZ19ocGQpCj4g IAkJCQlkZXZfcHJpdi0+aG90cGx1Zy5sb25nX3BvcnRfbWFzayB8PSAoMSA8PCBwb3J0KTsKPiAt CQkJfSBlbHNlIHsKPiAtCQkJCS8qIGZvciBzaG9ydCBIUEQganVzdCB0cmlnZ2VyIHRoZSBkaWdp dGFsIHF1ZXVlICovCj4gKwkJCWVsc2UKPiAgCQkJCWRldl9wcml2LT5ob3RwbHVnLnNob3J0X3Bv cnRfbWFzayB8PSAoMSA8PCBwb3J0KTsKPiAtCQkJCWNvbnRpbnVlOwo+IC0JCQl9Cj4gKwo+ICAJ CX0KPiAgCj4gIAkJaWYgKGRldl9wcml2LT5ob3RwbHVnLnN0YXRzW3Bpbl0uc3RhdGUgPT0gSFBE X0RJU0FCTEVEKSB7Cj4gQEAgLTQ0OSw3ICs0NTgsNyBAQCB2b2lkIGludGVsX2hwZF9pcnFfaGFu ZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCXF1ZXVlX2hwID0g dHJ1ZTsKPiAgCQl9Cj4gIAo+IC0JCWlmIChpbnRlbF9ocGRfaXJxX3N0b3JtX2RldGVjdChkZXZf cHJpdiwgcGluKSkgewo+ICsJCWlmIChpbnRlbF9ocGRfaXJxX3N0b3JtX2RldGVjdChkZXZfcHJp diwgcGluLCBsb25nX2hwZCkpIHsKPiAgCQkJZGV2X3ByaXYtPmhvdHBsdWcuZXZlbnRfYml0cyAm PSB+QklUKHBpbik7Cj4gIAkJCXN0b3JtX2RldGVjdGVkID0gdHJ1ZTsKPiAgCQl9CgpMb29rcyBs aWtlIHdlIHdvbid0IGFjdHVhbGx5IGRpc2FibGUgdGhlIGhwZCBpcnEgYW55d2hlcmUuIEV2ZW4g dGhlCmN1cnJlbnQgbG9uZyBocGQgc3Rvcm0gaGFuZGxpbmcgc2VlbXMgYSBiaXQgY29uZnVzZWQg YXMgaXQgd2lsbApjYWxsIC5ocGRfaXJxX3NldHVwKCkgZnJvbSBpbnRlbF9ocGRfaXJxX2hhbmRs ZXIoKSBidXQgYWN0dWFsbHkKbWFya2luZyB0aGUgcGlucyBhcyBkaXNhYmxlZCB3b24ndCBoYXBw ZW4gdW50aWwKaTkxNV9ob3RwbHVnX3dvcmtfZnVuYygpLiBTbyB0aGUgaW50ZXJydXB0IHdvbid0 IGFjdHVhbGx5IGdldCBkaXNhYmxlZAp1bnRpbCB0aGUgc2Vjb25kIHRpbWUgdGhyb3VnaCBpbnRl bF9ocGRfaXJxX2hhbmRsZXIoKSBhZnRlciB3ZSBkZXRlY3RlZAphIHN0b3JtLgoKLS0gClZpbGxl IFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK