From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v6] drm/i915: Apply missed interrupt after reset w/a to all ringbuffer gen Date: Mon, 17 Dec 2018 20:02:25 +0200 Message-ID: <20181217180225.GQ9144@intel.com> References: <20181213085359.31541-1-chris@chris-wilson.co.uk> <20181217152055.12872-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 917176E667 for ; Mon, 17 Dec 2018 18:02:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181217152055.12872-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBEZWMgMTcsIDIwMTggYXQgMDM6MjA6NTVQTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IEhhdmluZyBjb21wbGV0ZWQgYSB0ZXN0IHJ1biBvZiBnZW1fZWlvIGFjcm9zcyBhbGwg bWFjaGluZXMgaW4gQ0kgd2UgYWxzbwo+IG9ic2VydmUgdGhlIHBoZW5vbWVub24gKG9mIGxvc3Qg aW50ZXJydXB0cyBhZnRlciByZXNldHRpbmcgdGhlIEdQVSkgb24KPiBnZW4zIG1hY2hpbmVzIGFz IHdlbGwgYXMgdGhlIHByZXZpb3VzbHkgc2lnaHRlZCBnZW42L2dlbjcuIExldCdzIGFwcGx5Cj4g dGhlIHNhbWUgSFdTVEFNIHdvcmthcm91bmQgdGhhdCB3YXMgZWZmZWN0aXZlIGZvciBnZW42KyBm b3IgYWxsLCBhcwo+IGFsdGhvdWdoIHdlIGhhdmVuJ3Qgc2VlbiB0aGUgc2FtZSBmYWlsdXJlIG9u IGdlbjQvNSBpdCBzZWVtcyBwcnVkZW50IHRvCj4ga2VlcCB0aGUgY29kZSB0aGUgc2FtZS4KPiAK PiBBcyBhIGNvbnNlcXVlbmNlIHdlIGNhbiByZW1vdmUgdGhlIGV4dHJhIHNldHRpbmcgb2YgSFdT VEFNIGFuZCBhcHBseSB0aGUKPiByZWdpc3RlciBmcm9tIGEgc2luZ2xlIHNpdGUuCj4gCj4gdjI6 IERlbGF6eSBhbmQgbW92ZSB0aGUgSFdTVEFNIGludG8gaXRzIG93biBmdW5jdGlvbgo+IHYzOiBN YXNrIG9mZiBhbGwgSFdTUCB3cml0ZXMgb24gZHJpdmVyIHVubG9hZCBhbmQgZW5naW5lIGNsZWFu dXAuCj4gdjQ6IEFuZCB3aGF0IGFib3V0IHRoZSBwaHlzaWNhbCBod3NwPwo+IHY1OiBObywgZW5n aW5lLT5pbml0X2h3KCkgaXMgbm90IGNhbGxlZCBmcm9tIGRyaXZlcl9pbml0X2h3KCksIGRvbid0 IGJlCj4gZGFmdC4gUmVhbGx5IHNjcnViIEhXU1RBTSBhcyBlYXJseSBhcyB3ZSBjYW4gaW4gZHJp dmVyX2luaXRfbW1pbygpCj4gdjY6IFJlbmFtZSBzZXRfaHdzcCBhcyBpdCB3YXMgc2V0dGluZyB0 aGUgbWFzayBub3QgdGhlIGh3c3AgcmVnaXN0ZXIuCj4gCj4gUmVmZXJlbmNlczogaHR0cHM6Ly9i dWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NzM1Cj4gU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFR2cnRrbyBV cnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgICAgICAgICB8ICAgOSAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9lbmdpbmVfY3MuYyAgfCAgMjMgKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jIHwgMTA3ICsrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICAzIGZpbGVz IGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYwo+IGluZGV4IGUyZGFjOWI1ZjRjZS4uMGM3ZmM5ODkwODkxIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTM1ODYsOSArMzU4Niw2IEBAIHN0YXRpYyB2b2lk IGlyb25sYWtlX2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAo+IC0JaWYg KElTX0dFTihkZXZfcHJpdiwgNSkpCj4gLQkJSTkxNV9XUklURShIV1NUQU0sIDB4ZmZmZmZmZmYp Owo+IC0KPiAgCUdFTjNfSVJRX1JFU0VUKERFKTsKPiAgCWlmIChJU19HRU4oZGV2X3ByaXYsIDcp KQo+ICAJCUk5MTVfV1JJVEUoR0VON19FUlJfSU5ULCAweGZmZmZmZmZmKTsKPiBAQCAtNDM2OCw4 ICs0MzY1LDYgQEAgc3RhdGljIHZvaWQgaTh4eF9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCj4gIAlpOXh4X3BpcGVzdGF0X2lycV9yZXNldChkZXZfcHJpdik7Cj4gIAo+IC0J STkxNV9XUklURTE2KEhXU1RBTSwgMHhmZmZmKTsKPiAtCj4gIAlHRU4yX0lSUV9SRVNFVCgpOwo+ ICB9Cj4gIAo+IEBAIC00NTM3LDggKzQ1MzIsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2lycV9yZXNl dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAKPiAgCWk5eHhfcGlwZXN0YXRfaXJxX3Jlc2V0 KGRldl9wcml2KTsKPiAgCj4gLQlJOTE1X1dSSVRFKEhXU1RBTSwgMHhmZmZmZmZmZik7Cj4gLQo+ ICAJR0VOM19JUlFfUkVTRVQoKTsKPiAgfQo+ICAKPiBAQCAtNDY0OCw4ICs0NjQxLDYgQEAgc3Rh dGljIHZvaWQgaTk2NV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAlp OXh4X3BpcGVzdGF0X2lycV9yZXNldChkZXZfcHJpdik7Cj4gIAo+IC0JSTkxNV9XUklURShIV1NU QU0sIDB4ZmZmZmZmZmYpOwo+IC0KPiAgCUdFTjNfSVJRX1JFU0VUKCk7Cj4gIH0KPiAgCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCA2ZjE2NWY5YWQyYmYuLmYx YTJhZWIzNGU1ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4g QEAgLTI2MSw2ICsyNjEsMjMgQEAgc3RhdGljIHZvaWQgX19zcHJpbnRfZW5naW5lX25hbWUoY2hh ciAqbmFtZSwgY29uc3Qgc3RydWN0IGVuZ2luZV9pbmZvICppbmZvKQo+ICAJCQkgaW5mby0+aW5z dGFuY2UpID49IElOVEVMX0VOR0lORV9DU19NQVhfTkFNRSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2 b2lkIHNldF9od3NwX3dyaXRlbWFzayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUz MiBtYXNrKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdp bmUtPmk5MTU7Cj4gKwlpOTE1X3JlZ190IGh3c3RhbSA9IFJJTkdfSFdTVEFNKGVuZ2luZS0+bW1p b19iYXNlKTsKCmc0eC9pbGsgZG9uJ3QgaGF2ZSBIV1NUQU0gZm9yIHRoZSBic2QuIEEgcXVpY2sg dGVzdCBvbiBteSBpbGsgc2hvd3MgdGhhdAp0aGUgcmVnaXN0ZXIgYXQgdGhhdCBvZmZzZXQgc3Rh eXMgYXQgMHgwIGV2ZW4gaWYgd3JpdHRlbiwgc28gaXQgbWlnaHQKZXZlbiBiZSBzYWZlLiBCdXQg bWF5YmUgd2Ugc2hvdWxkbid0IHBva2UgYXQgdGhpbmdzIHRoYXQgYXJlbid0IHRoZXJlPwoKPiAr Cj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAzKQo+ICsJCUk5MTVfV1JJVEUoaHdzdGFt LCBtYXNrKTsKPiArCWVsc2UKPiArCQlJOTE1X1dSSVRFMTYoaHdzdGFtLCBtYXNrKTsKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX3Nhbml0aXplX21taW8oc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4gKwkvKiBNYXNrIG9mZiBhbGwgd3JpdGVzIGludG8g dGhlIHVua25vd24gSFdTUCAqLwo+ICsJc2V0X2h3c3Bfd3JpdGVtYXNrKGVuZ2luZSwgfjB1KTsK PiArfQo+ICsKPiAgc3RhdGljIGludAo+ICBpbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCSAgIGVudW0gaW50ZWxfZW5naW5lX2lkIGlkKQo+ IEBAIC0zMTIsNiArMzI5LDkgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIAlBVE9NSUNfSU5JVF9OT1RJRklFUl9IRUFEKCZlbmdp bmUtPmNvbnRleHRfc3RhdHVzX25vdGlmaWVyKTsKPiAgCj4gKwkvKiBTY3J1YiBtbWlvIHN0YXRl IG9uIHRha2VvdmVyICovCj4gKwlpbnRlbF9lbmdpbmVfc2FuaXRpemVfbW1pbyhlbmdpbmUpOwo+ ICsKPiAgCWRldl9wcml2LT5lbmdpbmVfY2xhc3NbaW5mby0+Y2xhc3NdW2luZm8tPmluc3RhbmNl XSA9IGVuZ2luZTsKPiAgCWRldl9wcml2LT5lbmdpbmVbaWRdID0gZW5naW5lOwo+ICAJcmV0dXJu IDA7Cj4gQEAgLTQ5NSw2ICs1MTUsOSBAQCB2b2lkIGludGVsX2VuZ2luZV9zZXR1cF9jb21tb24o c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAKPiAgc3RhdGljIHZvaWQgY2xlYW51 cF9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiArCS8q IFN0b3Agd3JpdGluZyBpbnRvIHRoZSBzdGF0dXMgcGFnZSBiZWZvcmUgcmV0dXJuaWcgaXQgdG8g dGhlIHN5c3RlbSAqLwo+ICsJc2V0X2h3c3Bfd3JpdGVtYXNrKGVuZ2luZSwgfjB1KTsKPiArCj4g IAlpZiAoSFdTX05FRURTX1BIWVNJQ0FMKGVuZ2luZS0+aTkxNSkpIHsKPiAgCQl2b2lkICphZGRy ID0gZmV0Y2hfYW5kX3plcm8oJmVuZ2luZS0+c3RhdHVzX3BhZ2UucGFnZV9hZGRyKTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IGZkZWNhMmI4Nzdj OS4uODhmNTBlMzBhMGM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+IEBAIC0zNzksMTEgKzM3OSwzMSBAQCBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgbW9kZSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1z dGF0aWMgdm9pZCByaW5nX3NldHVwX3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICtzdGF0aWMgdm9pZCBzZXRfaHdzdGFtKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwgdTMyIG1hc2spCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiArCWk5MTVfcmVnX3QgaHdzdGFtID0gUklOR19I V1NUQU0oZW5naW5lLT5tbWlvX2Jhc2UpOwo+ICsKCkRpdHRvLgoKT3RoZXJ3aXNlIHRoaXMgbG9v a3MgZ29vZCB0byBtZS4KCj4gKwkvKgo+ICsJICogS2VlcCB0aGUgcmVuZGVyIGludGVycnVwdCB1 bm1hc2tlZCBhcyB0aGlzIHBhcGVycyBvdmVyCj4gKwkgKiBsb3N0IGludGVycnVwdHMgZm9sbG93 aW5nIGEgcmVzZXQuCj4gKwkgKi8KPiArCWlmIChlbmdpbmUtPmlkID09IFJDUykgewo+ICsJCWlm IChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+PSA2KQo+ICsJCQltYXNrICY9IH5CSVQoMCk7Cj4g KwkJZWxzZQo+ICsJCQltYXNrICY9IH5JOTE1X1VTRVJfSU5URVJSVVBUOwo+ICsJfQo+ICsKPiAr CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDMpCj4gKwkJSTkxNV9XUklURShod3N0YW0sIG1h c2spOwo+ICsJZWxzZQo+ICsJCUk5MTVfV1JJVEUxNihod3N0YW0sIG1hc2spOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBzZXRfaHdzX3BnYShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs IHBoeXNfYWRkcl90IHBoeXMpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGVuZ2luZS0+aTkxNTsKPiAtCXN0cnVjdCBwYWdlICpwYWdlID0gdmlydF90b19wYWdl KGVuZ2luZS0+c3RhdHVzX3BhZ2UucGFnZV9hZGRyKTsKPiAtCXBoeXNfYWRkcl90IHBoeXMgPSBQ Rk5fUEhZUyhwYWdlX3RvX3BmbihwYWdlKSk7Cj4gIAl1MzIgYWRkcjsKPiAgCj4gIAlhZGRyID0g bG93ZXJfMzJfYml0cyhwaHlzKTsKPiBAQCAtMzkzLDEyICs0MTMsMjIgQEAgc3RhdGljIHZvaWQg cmluZ19zZXR1cF9waHlzX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAgCUk5MTVfV1JJVEUoSFdTX1BHQSwgYWRkcik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lk IGludGVsX3Jpbmdfc2V0dXBfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICtzdGF0aWMgdm9pZCByaW5nX3NldHVwX3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHZpcnRf dG9fcGFnZShlbmdpbmUtPnN0YXR1c19wYWdlLnBhZ2VfYWRkcik7Cj4gKwlwaHlzX2FkZHJfdCBw aHlzID0gUEZOX1BIWVMocGFnZV90b19wZm4ocGFnZSkpOwo+ICsKPiArCXNldF9od3NfcGdhKGVu Z2luZSwgcGh5cyk7Cj4gKwlzZXRfaHdzdGFtKGVuZ2luZSwgfjB1KTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgc2V0X2h3c3Aoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgb2Zm c2V0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUt Pmk5MTU7Cj4gLQlpOTE1X3JlZ190IG1taW87Cj4gKwlpOTE1X3JlZ190IGh3c3A7Cj4gIAo+IC0J LyogVGhlIHJpbmcgc3RhdHVzIHBhZ2UgYWRkcmVzc2VzIGFyZSBubyBsb25nZXIgbmV4dCB0byB0 aGUgcmVzdCBvZgo+ICsJLyoKPiArCSAqIFRoZSByaW5nIHN0YXR1cyBwYWdlIGFkZHJlc3NlcyBh cmUgbm8gbG9uZ2VyIG5leHQgdG8gdGhlIHJlc3Qgb2YKPiAgCSAqIHRoZSByaW5nIHJlZ2lzdGVy cyBhcyBvZiBnZW43Lgo+ICAJICovCj4gIAlpZiAoSVNfR0VOKGRldl9wcml2LCA3KSkgewo+IEBA IC00MTAsNTYgKzQ0MCw1NSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yaW5nX3NldHVwX3N0YXR1c19w YWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQlkZWZhdWx0Ogo+ICAJCQlH RU1fQlVHX09OKGVuZ2luZS0+aWQpOwo+ICAJCWNhc2UgUkNTOgo+IC0JCQltbWlvID0gUkVOREVS X0hXU19QR0FfR0VONzsKPiArCQkJaHdzcCA9IFJFTkRFUl9IV1NfUEdBX0dFTjc7Cj4gIAkJCWJy ZWFrOwo+ICAJCWNhc2UgQkNTOgo+IC0JCQltbWlvID0gQkxUX0hXU19QR0FfR0VONzsKPiArCQkJ aHdzcCA9IEJMVF9IV1NfUEdBX0dFTjc7Cj4gIAkJCWJyZWFrOwo+ICAJCWNhc2UgVkNTOgo+IC0J CQltbWlvID0gQlNEX0hXU19QR0FfR0VONzsKPiArCQkJaHdzcCA9IEJTRF9IV1NfUEdBX0dFTjc7 Cj4gIAkJCWJyZWFrOwo+ICAJCWNhc2UgVkVDUzoKPiAtCQkJbW1pbyA9IFZFQk9YX0hXU19QR0Ff R0VONzsKPiArCQkJaHdzcCA9IFZFQk9YX0hXU19QR0FfR0VONzsKPiAgCQkJYnJlYWs7Cj4gIAkJ fQo+ICAJfSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDYpKSB7Cj4gLQkJbW1pbyA9IFJJTkdf SFdTX1BHQV9HRU42KGVuZ2luZS0+bW1pb19iYXNlKTsKPiArCQlod3NwID0gUklOR19IV1NfUEdB X0dFTjYoZW5naW5lLT5tbWlvX2Jhc2UpOwo+ICAJfSBlbHNlIHsKPiAtCQltbWlvID0gUklOR19I V1NfUEdBKGVuZ2luZS0+bW1pb19iYXNlKTsKPiArCQlod3NwID0gUklOR19IV1NfUEdBKGVuZ2lu ZS0+bW1pb19iYXNlKTsKPiAgCX0KPiAgCj4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2 KSB7Cj4gLQkJdTMyIG1hc2sgPSB+MHU7Cj4gKwlJOTE1X1dSSVRFKGh3c3AsIG9mZnNldCk7Cj4g KwlQT1NUSU5HX1JFQUQoaHdzcCk7Cj4gK30KPiAgCj4gLQkJLyoKPiAtCQkgKiBLZWVwIHRoZSBy ZW5kZXIgaW50ZXJydXB0IHVubWFza2VkIGFzIHRoaXMgcGFwZXJzIG92ZXIKPiAtCQkgKiBsb3N0 IGludGVycnVwdHMgZm9sbG93aW5nIGEgcmVzZXQuCj4gLQkJICovCj4gLQkJaWYgKGVuZ2luZS0+ aWQgPT0gUkNTKQo+IC0JCQltYXNrICY9IH5CSVQoMCk7Cj4gK3N0YXRpYyB2b2lkIGZsdXNoX2Nz X3RsYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiArCWk5MTVfcmVnX3QgaW5z dHBtID0gUklOR19JTlNUUE0oZW5naW5lLT5tbWlvX2Jhc2UpOwo+ICAKPiAtCQlJOTE1X1dSSVRF KFJJTkdfSFdTVEFNKGVuZ2luZS0+bW1pb19iYXNlKSwgbWFzayk7Cj4gLQl9Cj4gKwlpZiAoIUlT X0dFTl9SQU5HRShkZXZfcHJpdiwgNiwgNykpCj4gKwkJcmV0dXJuOwo+ICAKPiAtCUk5MTVfV1JJ VEUobW1pbywgZW5naW5lLT5zdGF0dXNfcGFnZS5nZ3R0X29mZnNldCk7Cj4gLQlQT1NUSU5HX1JF QUQobW1pbyk7Cj4gKwkvKiByaW5nIHNob3VsZCBiZSBpZGxlIGJlZm9yZSBpc3N1aW5nIGEgc3lu YyBmbHVzaCovCj4gKwlXQVJOX09OKChJOTE1X1JFQURfTU9ERShlbmdpbmUpICYgTU9ERV9JRExF KSA9PSAwKTsKPiAgCj4gLQkvKiBGbHVzaCB0aGUgVExCIGZvciB0aGlzIHBhZ2UgKi8KPiAtCWlm IChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDYsIDcpKSB7Cj4gLQkJaTkxNV9yZWdfdCByZWcgPSBS SU5HX0lOU1RQTShlbmdpbmUtPm1taW9fYmFzZSk7Cj4gKwlJOTE1X1dSSVRFKGluc3RwbSwKPiAr CQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoSU5TVFBNX1RMQl9JTlZBTElEQVRFIHwKPiArCQkJCSAg ICAgIElOU1RQTV9TWU5DX0ZMVVNIKSk7Cj4gKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIo ZGV2X3ByaXYsCj4gKwkJCQkgICAgaW5zdHBtLCBJTlNUUE1fU1lOQ19GTFVTSCwgMCwKPiArCQkJ CSAgICAxMDAwKSkKPiArCQlEUk1fRVJST1IoIiVzOiB3YWl0IGZvciBTeW5jRmx1c2ggdG8gY29t cGxldGUgZm9yIFRMQiBpbnZhbGlkYXRpb24gdGltZWQgb3V0XG4iLAo+ICsJCQkgIGVuZ2luZS0+ bmFtZSk7Cj4gK30KPiAgCj4gLQkJLyogcmluZyBzaG91bGQgYmUgaWRsZSBiZWZvcmUgaXNzdWlu ZyBhIHN5bmMgZmx1c2gqLwo+IC0JCVdBUk5fT04oKEk5MTVfUkVBRF9NT0RFKGVuZ2luZSkgJiBN T0RFX0lETEUpID09IDApOwo+ICtzdGF0aWMgdm9pZCByaW5nX3NldHVwX3N0YXR1c19wYWdlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJc2V0X2h3c3AoZW5naW5lLCBl bmdpbmUtPnN0YXR1c19wYWdlLmdndHRfb2Zmc2V0KTsKPiArCXNldF9od3N0YW0oZW5naW5lLCB+ MHUpOwo+ICAKPiAtCQlJOTE1X1dSSVRFKHJlZywKPiAtCQkJICAgX01BU0tFRF9CSVRfRU5BQkxF KElOU1RQTV9UTEJfSU5WQUxJREFURSB8Cj4gLQkJCQkJICAgICAgSU5TVFBNX1NZTkNfRkxVU0gp KTsKPiAtCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gLQkJCQkJICAg IHJlZywgSU5TVFBNX1NZTkNfRkxVU0gsIDAsCj4gLQkJCQkJICAgIDEwMDApKQo+IC0JCQlEUk1f RVJST1IoIiVzOiB3YWl0IGZvciBTeW5jRmx1c2ggdG8gY29tcGxldGUgZm9yIFRMQiBpbnZhbGlk YXRpb24gdGltZWQgb3V0XG4iLAo+IC0JCQkJICBlbmdpbmUtPm5hbWUpOwo+IC0JfQo+ICsJZmx1 c2hfY3NfdGxiKGVuZ2luZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIHN0b3BfcmluZyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gQEAgLTUyOSw3ICs1NTgsNyBAQCBzdGF0aWMg aW50IGluaXRfcmluZ19jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJ aWYgKEhXU19ORUVEU19QSFlTSUNBTChkZXZfcHJpdikpCj4gIAkJcmluZ19zZXR1cF9waHlzX3N0 YXR1c19wYWdlKGVuZ2luZSk7Cj4gIAllbHNlCj4gLQkJaW50ZWxfcmluZ19zZXR1cF9zdGF0dXNf cGFnZShlbmdpbmUpOwo+ICsJCXJpbmdfc2V0dXBfc3RhdHVzX3BhZ2UoZW5naW5lKTsKPiAgCj4g IAlpbnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgCj4gLS0gCj4gMi4y MC4wCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=