From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 06/11] drm/i915: Introduce spt_irq_handler() Date: Thu, 27 Aug 2015 10:38:25 +0300 Message-ID: <877fohxjta.fsf@intel.com> References: <1439394260-15137-1-git-send-email-ville.syrjala@linux.intel.com> <1439394260-15137-7-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 2590B6E7DC for ; Thu, 27 Aug 2015 00:38:36 -0700 (PDT) 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 , Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyNyBBdWcgMjAxNSwgUGF1bG8gWmFub25pIDxwcnphbm9uaUBnbWFpbC5jb20+IHdy b3RlOgo+IDIwMTUtMDgtMTIgMTI6NDQgR01ULTAzOjAwICA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Ogo+PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+Pgo+PiBTdGFydGluZyBmcm9tIFNQVCB0aGUgb25seSBpbnRlcnJ1cHRzIGxp dmluZyBpbiB0aGUgc291dGggYXJlIEdNQlVTIGFuZAo+PiBIUEQuIFdoYXQncyB3b3JzZSBzb21l IG9mIHRoZSBTUFQgc3BlY2lmaWMgbmV3IGJpdHMgY29uZmxpY3Qgd2l0aCBzb21lCj4+IG90aGVy IGJpdHMgb24gZWFybGllciBQQ0ggZ2VuZXJhdGlvbnMuIFNvIGJldHRlciBub3QgdXNlIHRoZQo+ PiBjcHRfaXJxX2hhbmRsZXIoKSBmb3IgU1BUKyBhbnltb3JlLgo+Pgo+PiBBbHNvIGtpbGwgdGhl IGhhbmQgcm9sbGVkIHBvcnQgRSBoYW5kbGluZyB3aXRoIHNvbWV0aGluZyBtb3JlCj4+IHN0YW5k YXJkaXNoLiBUaGlzIGFsc28gYXZvaWRzIGFjY2lkZW50YWxseSBjb25mdXNpbmcgcG9ydCBCIGFu ZCBwb3J0IEUKPj4gbG9uZyBwdWxzZXMgc2luY2UgdGhlIGJpdHMgb2NjdXB5IHRoZSBzYW1lIHBv c2l0aW9ucywganVzdCBpbiBkaWZmZXJlbnQKPj4gcmVnaXN0ZXJzLgo+Pgo+PiBBbHNvIGFkZCBh IGNvbW1lbnQgbm90aW5nIHRoYXQgdGhlIHNob3J0IHB1bHNlIGR1cmF0aW9uIGJpdHMgYXJlCj4+ IHJlc2VydmVkIG9uIExQVCsuIFRoZSAybXMgdmFsdWUgd2UgcHJvZ3JhbSBpcyAwLCBzbyBubyBp c3N1ZSB3cnQuIHRoZQo+PiBNQlogaW4gdGhlIHNwZWMuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+IC0tLQo+PiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyB8IDEyMyArKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tCj4+ICAxIGZpbGUgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygr KSwgNDAgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+PiBpbmRleCBk MTIxMDZjLi5lMjQ4NWJkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPj4gQEAgLTEy NjAsNiArMTI2MCwxNiBAQCBzdGF0aWMgYm9vbCBieHRfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0 KGVudW0gcG9ydCBwb3J0LCB1MzIgdmFsKQo+PiAgICAgICAgIH0KPj4gIH0KPj4KPj4gK3N0YXRp YyBib29sIHNwdF9wb3J0X2hvdHBsdWcyX2xvbmdfZGV0ZWN0KGVudW0gcG9ydCBwb3J0LCB1MzIg dmFsKQo+PiArewo+PiArICAgICAgIHN3aXRjaCAocG9ydCkgewo+PiArICAgICAgIGNhc2UgUE9S VF9FOgo+PiArICAgICAgICAgICAgICAgcmV0dXJuIHZhbCAmIFBPUlRFX0hPVFBMVUdfTE9OR19E RVRFQ1Q7Cj4+ICsgICAgICAgZGVmYXVsdDoKPj4gKyAgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKPj4gKyAgICAgICB9Cj4+ICt9Cj4+ICsKPj4gIHN0YXRpYyBib29sIHBjaF9wb3J0X2hvdHBs dWdfbG9uZ19kZXRlY3QoZW51bSBwb3J0IHBvcnQsIHUzMiB2YWwpCj4+ICB7Cj4+ICAgICAgICAg c3dpdGNoIChwb3J0KSB7Cj4+IEBAIC0xMjY5LDggKzEyNzksNiBAQCBzdGF0aWMgYm9vbCBwY2hf cG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KGVudW0gcG9ydCBwb3J0LCB1MzIgdmFsKQo+PiAgICAg ICAgICAgICAgICAgcmV0dXJuIHZhbCAmIFBPUlRDX0hPVFBMVUdfTE9OR19ERVRFQ1Q7Cj4+ICAg ICAgICAgY2FzZSBQT1JUX0Q6Cj4+ICAgICAgICAgICAgICAgICByZXR1cm4gdmFsICYgUE9SVERf SE9UUExVR19MT05HX0RFVEVDVDsKPj4gLSAgICAgICBjYXNlIFBPUlRfRToKPj4gLSAgICAgICAg ICAgICAgIHJldHVybiB2YWwgJiBQT1JURV9IT1RQTFVHX0xPTkdfREVURUNUOwo+PiAgICAgICAg IGRlZmF1bHQ6Cj4+ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4+ICAgICAgICAgfQo+ PiBAQCAtMTc3MSwxMiArMTc3OSw3IEBAIHN0YXRpYyB2b2lkIGNwdF9pcnFfaGFuZGxlcihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgcGNoX2lpcikKPj4gIHsKPj4gICAgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiAgICAgICAg IGludCBwaXBlOwo+PiAtICAgICAgIHUzMiBob3RwbHVnX3RyaWdnZXI7Cj4+IC0KPj4gLSAgICAg ICBpZiAoSEFTX1BDSF9TUFQoZGV2KSkKPj4gLSAgICAgICAgICAgICAgIGhvdHBsdWdfdHJpZ2dl ciA9IHBjaF9paXIgJiBTREVfSE9UUExVR19NQVNLX1NQVDsKPj4gLSAgICAgICBlbHNlCj4+IC0g ICAgICAgICAgICAgICBob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0hPVFBMVUdfTUFT S19DUFQ7Cj4+ICsgICAgICAgdTMyIGhvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfSE9U UExVR19NQVNLX0NQVDsKPj4KPj4gICAgICAgICBpZiAoaG90cGx1Z190cmlnZ2VyKSB7Cj4+ICAg ICAgICAgICAgICAgICB1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzaywgbG9uZ19tYXNrOwo+ PiBAQCAtMTc4NCwyMiArMTc4NywxMCBAQCBzdGF0aWMgdm9pZCBjcHRfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHBjaF9paXIpCj4+ICAgICAgICAgICAgICAgICBkaWdf aG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoUENIX1BPUlRfSE9UUExVRyk7Cj4+ICAgICAgICAgICAg ICAgICBJOTE1X1dSSVRFKFBDSF9QT1JUX0hPVFBMVUcsIGRpZ19ob3RwbHVnX3JlZyk7Cj4+Cj4+ IC0gICAgICAgICAgICAgICBpZiAoSEFTX1BDSF9TUFQoZGV2KSkgewo+PiAtICAgICAgICAgICAg ICAgICAgICAgICBpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAo+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG90cGx1Z190cmlnZ2Vy LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlnX2hvdHBs dWdfcmVnLCBocGRfc3B0LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGNoX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7Cj4+IC0KPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgLyogZGV0ZWN0IFBPUlRFIEhQIGV2ZW50ICovCj4+IC0gICAgICAgICAgICAg ICAgICAgICAgIGRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVHMik7 Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChwY2hfcG9ydF9ob3RwbHVnX2xvbmdfZGV0 ZWN0KFBPUlRfRSwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGlnX2hvdHBsdWdfcmVnKSkKPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsb25nX21hc2sgfD0gMSA8PCBIUERfUE9SVF9FOwo+PiAtICAgICAgICAgICAg ICAgfSBlbHNlCj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGludGVsX2dldF9ocGRfcGlucygm cGluX21hc2ssICZsb25nX21hc2ssCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBob3RwbHVnX3RyaWdnZXIsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkaWdfaG90cGx1Z19yZWcsIGhwZF9jcHQsCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hfcG9ydF9ob3RwbHVnX2xvbmdfZGV0 ZWN0KTsKPj4gKyAgICAgICAgICAgICAgIGludGVsX2dldF9ocGRfcGlucygmcGluX21hc2ssICZs b25nX21hc2ssCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG90cGx1Z190 cmlnZ2VyLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZ19ob3RwbHVn X3JlZywgaHBkX2NwdCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hf cG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKPj4KPj4gICAgICAgICAgICAgICAgIGludGVsX2hw ZF9pcnFfaGFuZGxlcihkZXYsIHBpbl9tYXNrLCBsb25nX21hc2spOwo+PiAgICAgICAgIH0KPj4g QEAgLTE4MzMsNiArMTgyNCw0MiBAQCBzdGF0aWMgdm9pZCBjcHRfaXJxX2hhbmRsZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIHBjaF9paXIpCj4+ICAgICAgICAgICAgICAgICBjcHRfc2Vy cl9pbnRfaGFuZGxlcihkZXYpOwo+PiAgfQo+Pgo+PiArc3RhdGljIHZvaWQgc3B0X2lycV9oYW5k bGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBwY2hfaWlyKQo+PiArewo+PiArICAgICAg IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ ICsgICAgICAgdTMyIGhvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfSE9UUExVR19NQVNL X1NQVCAmCj4+ICsgICAgICAgICAgICAgICB+U0RFX1BPUlRFX0hPVFBMVUdfU1BUOwo+PiArICAg ICAgIHUzMiBob3RwbHVnMl90cmlnZ2VyID0gcGNoX2lpciAmIFNERV9QT1JURV9IT1RQTFVHX1NQ VDsKPj4gKwo+PiArICAgICAgIGlmIChob3RwbHVnX3RyaWdnZXIpIHsKPj4gKyAgICAgICAgICAg ICAgIHUzMiBkaWdfaG90cGx1Z19yZWcsIHBpbl9tYXNrLCBsb25nX21hc2s7Cj4+ICsKPj4gKyAg ICAgICAgICAgICAgIGRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVH KTsKPj4gKyAgICAgICAgICAgICAgIEk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExVRywgZGlnX2hv dHBsdWdfcmVnKTsKPj4gKwo+PiArICAgICAgICAgICAgICAgaW50ZWxfZ2V0X2hwZF9waW5zKCZw aW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX3NwdCwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsK Pj4gKyAgICAgICAgICAgICAgIGludGVsX2hwZF9pcnFfaGFuZGxlcihkZXYsIHBpbl9tYXNrLCBs b25nX21hc2spOwo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgIGlmIChob3RwbHVnMl90cmln Z2VyKSB7Cj4+ICsgICAgICAgICAgICAgICB1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzaywg bG9uZ19tYXNrOwo+PiArCj4+ICsgICAgICAgICAgICAgICBkaWdfaG90cGx1Z19yZWcgPSBJOTE1 X1JFQUQoUENIX1BPUlRfSE9UUExVRzIpOwo+PiArICAgICAgICAgICAgICAgSTkxNV9XUklURShQ Q0hfUE9SVF9IT1RQTFVHMiwgZGlnX2hvdHBsdWdfcmVnKTsKPj4gKwo+PiArICAgICAgICAgICAg ICAgaW50ZWxfZ2V0X2hwZF9waW5zKCZwaW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1ZzJfdHJp Z2dlciwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWdfaG90cGx1Z19y ZWcsIGhwZF9zcHQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3B0X3Bv cnRfaG90cGx1ZzJfbG9uZ19kZXRlY3QpOwo+PiArCj4+ICsgICAgICAgICAgICAgICBpbnRlbF9o cGRfaXJxX2hhbmRsZXIoZGV2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKPj4gKyAgICAgICB9Cj4K PiBJbnN0ZWFkIG9mIGNhbGxpbmcgaW50ZWxfaHBkX2lycV9oYW5kbGVyKCkgdHdpY2UsIGNhbid0 IHlvdSBqdXN0IGRvCj4gc29tZXRoaW5nIGxpa2U6Cj4gaW50ZWxfaHBkX2lycV9oYW5sZGVyKGRl diwgcGluX21hc2sxIHwgcGluX21hc2syLCBsb25nX21hc2sxIHwgbG9uZ19tYXNrMikgPwoKCkFu ZCBpZiB5b3UgcmV2ZXJ0ZWQKCmNvbW1pdCBmZDYzZTJhOTcyYzY3MDg4N2U1ZThhMDg0NDAxMTFk MzgxMmMwOTk2CkF1dGhvcjogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpEYXRlOiAg IFR1ZSBKdWwgMjEgMTU6MzI6NDQgMjAxNSAtMDcwMAoKICAgIGRybS9pOTE1OiBjb21iaW5lIGk5 eHhfZ2V0X2hwZF9waW5zIGFuZCBwY2hfZ2V0X2hwZF9waW5zCgphbmQgYWRkZWQgYW5vdGhlciB2 ZXJzaW9uIGZvciBzcHQsIHRoaXMgd291bGQgYWxsIGJlIHByZXR0eSBhbmQgZWFjaCBvZgp0aGUg ZnVuY3Rpb25zIHdvdWxkIGRvIGV4YWN0bHkgd2hhdCBpcyByZXF1aXJlZCBhbmQgeW91IGNvdWxk IGhhdmUKbWVhbmluZ2Z1bCwgcGxhdGZvcm0gc3BlY2lmaWMgZGVidWcgbG9nZ2luZyBpbiBlYWNo IG9mIHRoZSBmdW5jdGlvbnMuCgpCeSBmb2N1c2luZyBvbiBkZWR1cGxpY2F0aW5nIGEgZmV3IGxp bmVzIGluIGdldF9ocGRfcGlucywgdGhlIGNhbGxlcnMKKHdoaWNoIGFyZSBwbGF0Zm9ybSBzcGVj aWZpYyBjb2RlIHRvIGJlZ2luIHdpdGgpIGdldCBtb3JlIGNvbXBsaWNhdGVkLgoKQlIsCkphbmku CgoKCj4KPiBFdmVyeXRoaW5nIGVsc2UgbG9va3MgZ29vZCAoZXhjZXB0IGZvciB0aGUgZmFjdCB0 aGF0IEkgd291bGQgaGF2ZQo+IHNwbGl0IHRoaXMgcGF0Y2ggaW4gbGlrZSA1IGRpZmZlcmVudCBw YXRjaGVzKS4KPgo+PiArCj4+ICsgICAgICAgaWYgKHBjaF9paXIgJiBTREVfR01CVVNfQ1BUKQo+ PiArICAgICAgICAgICAgICAgZ21idXNfaXJxX2hhbmRsZXIoZGV2KTsKPj4gK30KPj4gKwo+PiAg c3RhdGljIHZvaWQgaWxrX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdTMyIGRlX2lpcikKPj4gIHsKPj4gICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiBAQCAtMjE1MSw3ICsyMTc4LDExIEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCBnZW44X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKPj4g ICAgICAgICAgICAgICAgIGlmIChwY2hfaWlyKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAg IEk5MTVfV1JJVEUoU0RFSUlSLCBwY2hfaWlyKTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAg cmV0ID0gSVJRX0hBTkRMRUQ7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGNwdF9pcnFfaGFu ZGxlcihkZXYsIHBjaF9paXIpOwo+PiArCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChI QVNfUENIX1NQVChkZXZfcHJpdikpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3B0X2lycV9oYW5kbGVyKGRldiwgcGNoX2lpcik7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAg IGVsc2UKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHRfaXJxX2hhbmRsZXIo ZGV2LCBwY2hfaWlyKTsKPj4gICAgICAgICAgICAgICAgIH0gZWxzZQo+PiAgICAgICAgICAgICAg ICAgICAgICAgICBEUk1fRVJST1IoIlRoZSBtYXN0ZXIgY29udHJvbCBpbnRlcnJ1cHQgbGllZCAo U0RFKSFcbiIpOwo+Pgo+PiBAQCAtMzAzMyw5ICszMDY0LDYgQEAgc3RhdGljIHZvaWQgaWJ4X2hw ZF9pcnFfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gICAgICAgICBpZiAoSEFTX1BD SF9JQlgoZGV2KSkgewo+PiAgICAgICAgICAgICAgICAgaG90cGx1Z19pcnFzID0gU0RFX0hPVFBM VUdfTUFTSzsKPj4gICAgICAgICAgICAgICAgIGVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFi bGVkX2lycXMoZGV2LCBocGRfaWJ4KTsKPj4gLSAgICAgICB9IGVsc2UgaWYgKEhBU19QQ0hfU1BU KGRldikpIHsKPj4gLSAgICAgICAgICAgICAgIGhvdHBsdWdfaXJxcyA9IFNERV9IT1RQTFVHX01B U0tfU1BUOwo+PiAtICAgICAgICAgICAgICAgZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJs ZWRfaXJxcyhkZXYsIGhwZF9zcHQpOwo+PiAgICAgICAgIH0gZWxzZSB7Cj4+ICAgICAgICAgICAg ICAgICBob3RwbHVnX2lycXMgPSBTREVfSE9UUExVR19NQVNLX0NQVDsKPj4gICAgICAgICAgICAg ICAgIGVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2LCBocGRfY3B0KTsK Pj4gQEAgLTMwNDUsOSArMzA3Myw4IEBAIHN0YXRpYyB2b2lkIGlieF9ocGRfaXJxX3NldHVwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+Cj4+ICAgICAgICAgLyoKPj4gICAgICAgICAgKiBFbmFi bGUgZGlnaXRhbCBob3RwbHVnIG9uIHRoZSBQQ0gsIGFuZCBjb25maWd1cmUgdGhlIERQIHNob3J0 IHB1bHNlCj4+IC0gICAgICAgICogZHVyYXRpb24gdG8gMm1zICh3aGljaCBpcyB0aGUgbWluaW11 bSBpbiB0aGUgRGlzcGxheSBQb3J0IHNwZWMpCj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBU aGlzIHJlZ2lzdGVyIGlzIHRoZSBzYW1lIG9uIGFsbCBrbm93biBQQ0ggY2hpcHMuCj4+ICsgICAg ICAgICogZHVyYXRpb24gdG8gMm1zICh3aGljaCBpcyB0aGUgbWluaW11bSBpbiB0aGUgRGlzcGxh eSBQb3J0IHNwZWMpLgo+PiArICAgICAgICAqIFRoZSBwdWxzZSBkdXJhdGlvbiBiaXRzIGFyZSBy ZXNlcnZlZCBvbiBMUFQrLgo+PiAgICAgICAgICAqLwo+PiAgICAgICAgIGhvdHBsdWcgPSBJOTE1 X1JFQUQoUENIX1BPUlRfSE9UUExVRyk7Cj4+ICAgICAgICAgaG90cGx1ZyAmPSB+KFBPUlREX1BV TFNFX0RVUkFUSU9OX01BU0t8UE9SVENfUFVMU0VfRFVSQVRJT05fTUFTS3xQT1JUQl9QVUxTRV9E VVJBVElPTl9NQVNLKTsKPj4gQEAgLTMwNTUsMTMgKzMwODIsMjcgQEAgc3RhdGljIHZvaWQgaWJ4 X2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gICAgICAgICBob3RwbHVn IHw9IFBPUlRDX0hPVFBMVUdfRU5BQkxFIHwgUE9SVENfUFVMU0VfRFVSQVRJT05fMm1zOwo+PiAg ICAgICAgIGhvdHBsdWcgfD0gUE9SVEJfSE9UUExVR19FTkFCTEUgfCBQT1JUQl9QVUxTRV9EVVJB VElPTl8ybXM7Cj4+ICAgICAgICAgSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVHLCBob3RwbHVn KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgc3B0X2hwZF9pcnFfc2V0dXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArICAgICAgIHUzMiBob3RwbHVnX2lycXMs IGhvdHBsdWcsIGVuYWJsZWRfaXJxczsKPj4gKwo+PiArICAgICAgIGhvdHBsdWdfaXJxcyA9IFNE RV9IT1RQTFVHX01BU0tfU1BUOwo+PiArICAgICAgIGVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9l bmFibGVkX2lycXMoZGV2LCBocGRfc3B0KTsKPj4gKwo+PiArICAgICAgIGlieF9kaXNwbGF5X2lu dGVycnVwdF91cGRhdGUoZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzKTsKPj4g Kwo+PiArICAgICAgIC8qIEVuYWJsZSBkaWdpdGFsIGhvdHBsdWcgb24gdGhlIFBDSCAqLwo+PiAr ICAgICAgIGhvdHBsdWcgPSBJOTE1X1JFQUQoUENIX1BPUlRfSE9UUExVRyk7Cj4+ICsgICAgICAg aG90cGx1ZyB8PSBQT1JURF9IT1RQTFVHX0VOQUJMRSB8IFBPUlRDX0hPVFBMVUdfRU5BQkxFIHwK Pj4gKyAgICAgICAgICAgICAgIFBPUlRCX0hPVFBMVUdfRU5BQkxFOwo+PiArICAgICAgIEk5MTVf V1JJVEUoUENIX1BPUlRfSE9UUExVRywgaG90cGx1Zyk7Cj4+Cj4+IC0gICAgICAgLyogZW5hYmxl IFNQVCBQT1JURSBob3QgcGx1ZyAqLwo+PiAtICAgICAgIGlmIChIQVNfUENIX1NQVChkZXYpKSB7 Cj4+IC0gICAgICAgICAgICAgICBob3RwbHVnID0gSTkxNV9SRUFEKFBDSF9QT1JUX0hPVFBMVUcy KTsKPj4gLSAgICAgICAgICAgICAgIGhvdHBsdWcgfD0gUE9SVEVfSE9UUExVR19FTkFCTEU7Cj4+ IC0gICAgICAgICAgICAgICBJOTE1X1dSSVRFKFBDSF9QT1JUX0hPVFBMVUcyLCBob3RwbHVnKTsK Pj4gLSAgICAgICB9Cj4+ICsgICAgICAgaG90cGx1ZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQ TFVHMik7Cj4+ICsgICAgICAgaG90cGx1ZyB8PSBQT1JURV9IT1RQTFVHX0VOQUJMRTsKPj4gKyAg ICAgICBJOTE1X1dSSVRFKFBDSF9QT1JUX0hPVFBMVUcyLCBob3RwbHVnKTsKPj4gIH0KPj4KPj4g IHN0YXRpYyB2b2lkIGJ4dF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ IEBAIC00MTY2LDEwICs0MjA3LDEyIEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgICAgICAgICAgICAgICAgZGV2LT5kcml2ZXItPmly cV91bmluc3RhbGwgPSBnZW44X2lycV91bmluc3RhbGw7Cj4+ICAgICAgICAgICAgICAgICBkZXYt PmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGdlbjhfZW5hYmxlX3ZibGFuazsKPj4gICAgICAgICAg ICAgICAgIGRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGdlbjhfZGlzYWJsZV92Ymxhbms7 Cj4+IC0gICAgICAgICAgICAgICBpZiAoSEFTX1BDSF9TUExJVChkZXYpKQo+PiAtICAgICAgICAg ICAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaWJ4X2hwZF9p cnFfc2V0dXA7Cj4+IC0gICAgICAgICAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICBpZiAo SVNfQlJPWFRPTihkZXYpKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlz cGxheS5ocGRfaXJxX3NldHVwID0gYnh0X2hwZF9pcnFfc2V0dXA7Cj4+ICsgICAgICAgICAgICAg ICBlbHNlIGlmIChIQVNfUENIX1NQVChkZXYpKQo+PiArICAgICAgICAgICAgICAgICAgICAgICBk ZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gc3B0X2hwZF9pcnFfc2V0dXA7Cj4+ICsg ICAgICAgICAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT5k aXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpYnhfaHBkX2lycV9zZXR1cDsKPj4gICAgICAgICB9IGVs c2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewo+PiAgICAgICAgICAgICAgICAgZGV2LT5kcml2 ZXItPmlycV9oYW5kbGVyID0gaXJvbmxha2VfaXJxX2hhbmRsZXI7Cj4+ICAgICAgICAgICAgICAg ICBkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBpcm9ubGFrZV9pcnFfcmVzZXQ7Cj4+IC0t Cj4+IDIuNC42Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cj4KPgo+Cj4gLS0gCj4gUGF1bG8gWmFub25pCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApKYW5pIE5pa3VsYSwgSW50 ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK