From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 26/34] drm/i915: Identify active requests Date: Tue, 22 Jan 2019 15:34:07 +0000 Message-ID: <29973015-ba08-45ae-e4e9-a211e24231ef@linux.intel.com> References: <20190121222117.23305-1-chris@chris-wilson.co.uk> <20190121222117.23305-27-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 60F806ED12 for ; Tue, 22 Jan 2019 15:34:05 +0000 (UTC) In-Reply-To: <20190121222117.23305-27-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIxLzAxLzIwMTkgMjI6MjEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBUbyBhbGxvdyByZXF1 ZXN0cyB0byBmb3JnbyBhIGNvbW1vbiBleGVjdXRpb24gdGltZWxpbmUsIG9uZSBxdWVzdGlvbiB3 ZQo+IG5lZWQgdG8gYmUgYWJsZSB0byBhbnN3ZXIgaXMgImlzIHRoaXMgcmVxdWVzdCBydW5uaW5n PyIuIFRvIHRyYWNrCj4gd2hldGhlciBhIHJlcXVlc3QgaGFzIHN0YXJ0ZWQgb24gSFcsIHdlIGNh biBlbWl0IGEgYnJlYWRjcnVtYiBhdCB0aGUKPiBiZWdpbm5pbmcgb2YgdGhlIHJlcXVlc3QgYW5k IGNoZWNrIGl0cyB0aW1lbGluZSdzIEhXU1AgdG8gc2VlIGlmIHRoZQo+IGJyZWFkY3J1bWIgaGFz IGFkdmFuY2VkIHBhc3QgdGhlIHN0YXJ0IG9mIHRoaXMgcmVxdWVzdC4gKFRoaXMgaXMgaW4KPiBj b250cmFzdCB0byB0aGUgZ2xvYmFsIHRpbWVsaW5lIHdoZXJlIHdlIG5lZWQgb25seSBhc2sgaWYg d2UgYXJlIG9uIHRoZQo+IGdsb2JhbCB0aW1lbGluZSBhbmQgaWYgdGhlIHRpbWVsaW5lIGhhcyBh ZHZhbmNlZCBwYXN0IHRoZSBlbmQgb2YgdGhlCj4gcHJldmlvdXMgcmVxdWVzdC4pCj4gCj4gVGhl cmUgaXMgc3RpbGwgY29uZnVzaW9uIGZyb20gYSBwcmVlbXB0ZWQgcmVxdWVzdCwgd2hpY2ggaGFz IGFscmVhZHkKPiBzdGFydGVkIGJ1dCByZWxpbnF1aXNoZWQgdGhlIEhXIHRvIGEgaGlnaCBwcmlv cml0eSByZXF1ZXN0LiBGb3IgdGhlCj4gY29tbW9uIGNhc2UsIHRoaXMgZGlzY3JlcGFuY3kgc2hv dWxkIGJlIG5lZ2xpZ2libGUuIEhvd2V2ZXIsIGZvcgo+IGlkZW50aWZpY2F0aW9uIG9mIGh1bmcg cmVxdWVzdHMsIGtub3dpbmcgd2hpY2ggb25lIHdhcyBydW5uaW5nIGF0IHRoZQo+IHRpbWUgb2Yg dGhlIGhhbmcgd2lsbCBiZSBtdWNoIG1vcmUgaW1wb3J0YW50Lgo+IAo+IFNpZ25lZC1vZmYtYnk6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jICAgfCAgNiArKysKPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jICAgICAgICAgIHwgIDkgKystLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICAgICAgICAgfCAgMSArCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmMgICAgICAgICB8ICAxICsKPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxpbmUuaCAgICAgICAgIHwgIDIgKwo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgICAgICAgfCAgNCArLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgfCA0NyArKysrKysrKysrKysr KysrLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAg fCA0MyArKysrKysrKysrLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCAgICAgIHwgIDYgKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvbW9ja19lbmdpbmUuYyB8ICAyICstCj4gICAxMCBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRp b25zKCspLCAzNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggZjI1MDEwOWUxZjY2Li5kZWZlN2Q2MGJiODggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTE5NzYs NiArMTk3NiwxMiBAQCBzdGF0aWMgaW50IGViX3N1Ym1pdChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVy ICplYikKPiAgIAkJCXJldHVybiBlcnI7Cj4gICAJfQo+ICAgCj4gKwlpZiAoZWItPmVuZ2luZS0+ ZW1pdF9pbml0X2JyZWFkY3J1bWIpIHsKPiArCQllcnIgPSBlYi0+ZW5naW5lLT5lbWl0X2luaXRf YnJlYWRjcnVtYihlYi0+cmVxdWVzdCk7Cj4gKwkJaWYgKGVycikKPiArCQkJcmV0dXJuIGVycjsK PiArCX0KPiArCj4gICAJZXJyID0gZWItPmVuZ2luZS0+ZW1pdF9iYl9zdGFydChlYi0+cmVxdWVz dCwKPiAgIAkJCQkJZWItPmJhdGNoLT5ub2RlLnN0YXJ0ICsKPiAgIAkJCQkJZWItPmJhdGNoX3N0 YXJ0X29mZnNldCwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1 ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGluZGV4IGJiMjg4 NWYxZGMxZS4uMGE4YTJhMWJmNTVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMKPiBAQCAtMzMzLDYgKzMzMyw3IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAgCj4gICBzdGF0aWMgdTMyIHRpbWVsaW5lX2dldF9z ZXFubyhzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwpCj4gICB7Cj4gKwl0bC0+c2Vxbm8gKz0gdGwt Pmhhc19pbml0aWFsX2JyZWFkY3J1bWI7Cj4gICAJcmV0dXJuICsrdGwtPnNlcW5vOwoKcmV0dXJu IHRsLT5zZXFubyArPSAxICsgdGwtPmhhc19pbml0aWFsX2JyZWFkY3J1bWI/CgpOb3Qgc3VyZSBp ZiBpdCB3b3VsZCBtYWtlIGFueSBkaWZmZXJlbmNlIGluIHRoZSBjb2RlLgoKPiAgIH0KPiAgIAo+ IEBAIC0zODIsOCArMzgzLDggQEAgdm9pZCBfX2k5MTVfcmVxdWVzdF9zdWJtaXQoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAkJaW50ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxpbmco cmVxdWVzdCwgZmFsc2UpOwo+ICAgCXNwaW5fdW5sb2NrKCZyZXF1ZXN0LT5sb2NrKTsKPiAgIAo+ IC0JZW5naW5lLT5lbWl0X2JyZWFkY3J1bWIocmVxdWVzdCwKPiAtCQkJCXJlcXVlc3QtPnJpbmct PnZhZGRyICsgcmVxdWVzdC0+cG9zdGZpeCk7Cj4gKwllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNy dW1iKHJlcXVlc3QsCj4gKwkJCQkgICAgIHJlcXVlc3QtPnJpbmctPnZhZGRyICsgcmVxdWVzdC0+ cG9zdGZpeCk7Cj4gICAKPiAgIAkvKiBUcmFuc2ZlciBmcm9tIHBlci1jb250ZXh0IG9udG8gdGhl IGdsb2JhbCBwZXItZW5naW5lIHRpbWVsaW5lICovCj4gICAJbW92ZV90b190aW1lbGluZShyZXF1 ZXN0LCAmZW5naW5lLT50aW1lbGluZSk7Cj4gQEAgLTY1Nyw3ICs2NTgsNyBAQCBpOTE1X3JlcXVl c3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4KQo+ICAgCSAqIGFyb3VuZCBpbnNpZGUgaTkxNV9yZXF1ZXN0X2FkZCgpIHRo ZXJlIGlzIHN1ZmZpY2llbnQgc3BhY2UgYXQKPiAgIAkgKiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBy aW5nIGFzIHdlbGwuCj4gICAJICovCj4gLQlycS0+cmVzZXJ2ZWRfc3BhY2UgPSAyICogZW5naW5l LT5lbWl0X2JyZWFkY3J1bWJfc3ogKiBzaXplb2YodTMyKTsKPiArCXJxLT5yZXNlcnZlZF9zcGFj ZSA9IDIgKiBlbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iX3N6ICogc2l6ZW9mKHUzMik7CgpM b2dpYyBiZWluZyBmaW5pIGJyZWFkY3J1bWIgaXMgYXQgbGVhc3QgYXMgYmlnIGFzIHRoZSBpbml0 IG9uZT8gSSBjYW4ndCAKdGhpbmsgb2YgYW55IGVhc3kgYXNzZXJ0cyB0byB2ZXJpZnkgdGhhdC4K CkFsc28sIGEgbGl0dGxlIGJpdCBvZiByaW5nIHNwYWNlIHdhc3RhZ2UgYnV0IEkgZ3Vlc3Mgd2Ug ZG9uJ3QgY2FyZS4KCj4gICAKPiAgIAkvKgo+ICAgCSAqIFJlY29yZCB0aGUgcG9zaXRpb24gb2Yg dGhlIHN0YXJ0IG9mIHRoZSByZXF1ZXN0IHNvIHRoYXQKPiBAQCAtOTA4LDcgKzkwOSw3IEBAIHZv aWQgaTkxNV9yZXF1ZXN0X2FkZChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCSAq IEdQVSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LCB3ZSBuZXZlciBvdmVyLWVzdGltYXRlIHRoZQo+ ICAgCSAqIHBvc2l0aW9uIG9mIHRoZSByaW5nJ3MgSEVBRC4KPiAgIAkgKi8KPiAtCWNzID0gaW50 ZWxfcmluZ19iZWdpbihyZXF1ZXN0LCBlbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeik7Cj4gKwlj cyA9IGludGVsX3JpbmdfYmVnaW4ocmVxdWVzdCwgZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVt Yl9zeik7Cj4gICAJR0VNX0JVR19PTihJU19FUlIoY3MpKTsKPiAgIAlyZXF1ZXN0LT5wb3N0Zml4 ID0gaW50ZWxfcmluZ19vZmZzZXQocmVxdWVzdCwgY3MpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmgKPiBpbmRleCA5NmM1ODZkNmZmNGQuLjM0MGQ2MjE2NzkxYyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gQEAgLTM0NCw2ICszNDQsNyBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgaTkxNV9yZXF1ZXN0X3N0YXJ0ZWQoY29uc3Qgc3RydWN0IGk5MTVfcmVx dWVzdCAqcnEpCj4gICAJaWYgKGk5MTVfcmVxdWVzdF9zaWduYWxlZChycSkpCj4gICAJCXJldHVy biB0cnVlOwo+ICAgCj4gKwkvKiBSZW1lbWJlcjogc3RhcnRlZCBidXQgbWF5IGhhdmUgc2luY2Ug YmVlbiBwcmVlbXB0ZWQhICovCj4gICAJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKGh3c3Bfc2Vx bm8ocnEpLCBycS0+ZmVuY2Uuc2Vxbm8gLSAxKTsKPiAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3RpbWVsaW5lLmMKPiBpbmRleCAwMDczNDhiMWI0NjkuLjdiYzkxNjQ3MzNiYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmMKPiBAQCAtMTMyLDYgKzEzMiw3IEBA IGludCBpOTE1X3RpbWVsaW5lX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4g ICAJdGltZWxpbmUtPmk5MTUgPSBpOTE1Owo+ICAgCXRpbWVsaW5lLT5uYW1lID0gbmFtZTsKPiAg IAl0aW1lbGluZS0+cGluX2NvdW50ID0gMDsKPiArCXRpbWVsaW5lLT5oYXNfaW5pdGlhbF9icmVh ZGNydW1iID0gIWh3c3A7Cj4gICAKPiAgIAl0aW1lbGluZS0+aHdzcF9vZmZzZXQgPSBJOTE1X0dF TV9IV1NfU0VRTk9fQUREUjsKPiAgIAlpZiAoIWh3c3ApIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV90aW1lbGluZS5oCj4gaW5kZXggYWI3MzZlMmU1NzA3Li44Y2FlYjY2ZDFjZDUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5oCj4gQEAgLTQ4LDYgKzQ4LDggQEAgc3RydWN0 IGk5MTVfdGltZWxpbmUgewo+ICAgCXN0cnVjdCBpOTE1X3ZtYSAqaHdzcF9nZ3R0Owo+ICAgCXUz MiBod3NwX29mZnNldDsKPiAgIAo+ICsJYm9vbCBoYXNfaW5pdGlhbF9icmVhZGNydW1iOwo+ICsK PiAgIAkvKioKPiAgIAkgKiBMaXN0IG9mIGJyZWFkY3J1bWJzIGFzc29jaWF0ZWQgd2l0aCBHUFUg cmVxdWVzdHMgY3VycmVudGx5Cj4gICAJICogb3V0c3RhbmRpbmcuCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCBlNTMyYjRiMjcyMzkuLjJhNGM1NDcyNDBhMSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTEyMzksNyAr MTIzOSw5IEBAIHN0YXRpYyB2b2lkIHByaW50X3JlcXVlc3Qoc3RydWN0IGRybV9wcmludGVyICpt LAo+ICAgCWRybV9wcmludGYobSwgIiVzJXglcyBbJWxseDolbGx4XSVzIEAgJWRtczogJXNcbiIs Cj4gICAJCSAgIHByZWZpeCwKPiAgIAkJICAgcnEtPmdsb2JhbF9zZXFubywKPiAtCQkgICBpOTE1 X3JlcXVlc3RfY29tcGxldGVkKHJxKSA/ICIhIiA6ICIiLAo+ICsJCSAgIGk5MTVfcmVxdWVzdF9j b21wbGV0ZWQocnEpID8gIiEiIDoKPiArCQkgICBpOTE1X3JlcXVlc3Rfc3RhcnRlZChycSkgPyAi KiIgOgo+ICsJCSAgICIiLAo+ICAgCQkgICBycS0+ZmVuY2UuY29udGV4dCwgcnEtPmZlbmNlLnNl cW5vLAo+ICAgCQkgICBidWYsCj4gICAJCSAgIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtIHJx LT5lbWl0dGVkX2ppZmZpZXMpLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggMWJm MTc4Y2EzZTAwLi4wYTJkNTNmMTk2MjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ IEBAIC02NDksNyArNjQ5LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCQkgKiBXYUlkbGVMaXRlUmVzdG9yZTpiZHcs c2tsCj4gICAJCSAqIEFwcGx5IHRoZSB3YSBOT09QcyB0byBwcmV2ZW50Cj4gICAJCSAqIHJpbmc6 SEVBRCA9PSBycTpUQUlMIGFzIHdlIHJlc3VibWl0IHRoZQo+IC0JCSAqIHJlcXVlc3QuIFNlZSBn ZW44X2VtaXRfYnJlYWRjcnVtYigpIGZvcgo+ICsJCSAqIHJlcXVlc3QuIFNlZSBnZW44X2VtaXRf ZmluaV9icmVhZGNydW1iKCkgZm9yCj4gICAJCSAqIHdoZXJlIHdlIHByZXBhcmUgdGhlIHBhZGRp bmcgYWZ0ZXIgdGhlCj4gICAJCSAqIGVuZCBvZiB0aGUgcmVxdWVzdC4KPiAgIAkJICovCj4gQEAg LTEyOTQsNiArMTI5NCwzNCBAQCBleGVjbGlzdHNfY29udGV4dF9waW4oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLAo+ICAgCXJldHVybiBfX2V4ZWNsaXN0c19jb250ZXh0X3Bpbihlbmdp bmUsIGN0eCwgY2UpOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyBpbnQgZ2VuOF9lbWl0X2luaXRfYnJl YWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiArewo+ICsJdTMyICpjczsKPiArCj4g KwlHRU1fQlVHX09OKCFycS0+dGltZWxpbmUtPmhhc19pbml0aWFsX2JyZWFkY3J1bWIpOwo+ICsK PiArCWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgNik7Cj4gKwlpZiAoSVNfRVJSKGNzKSkKPiAr CQlyZXR1cm4gUFRSX0VSUihjcyk7Cj4gKwo+ICsJLyoKPiArCSAqIENoZWNrIGlmIHdlIGhhdmUg YmVlbiBwcmVlbXB0ZWQgYmVmb3JlIHdlIGV2ZW4gZ2V0IHN0YXJ0ZWQuCj4gKwkgKgo+ICsJICog QWZ0ZXIgdGhpcyBwb2ludCBpOTE1X3JlcXVlc3Rfc3RhcnRlZCgpIHJlcG9ydHMgdHJ1ZSwgZXZl biBpZgo+ICsJICogd2UgZ2V0IHByZWVtcHRlZCBhbmQgc28gYXJlIG5vIGxvbmdlciBydW5uaW5n Lgo+ICsJICovCj4gKwkqY3MrKyA9IE1JX0FSQl9DSEVDSzsKPiArCSpjcysrID0gTUlfTk9PUDsK PiArCj4gKwkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40IHwgTUlfVVNFX0dHVFQ7Cj4g KwkqY3MrKyA9IGk5MTVfdGltZWxpbmVfc2Vxbm9fYWRkcmVzcyhycS0+dGltZWxpbmUpOwo+ICsJ KmNzKysgPSAwOwo+ICsJKmNzKysgPSBycS0+ZmVuY2Uuc2Vxbm8gLSAxOwo+ICsKPiArCWludGVs X3JpbmdfYWR2YW5jZShycSwgY3MpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gICBzdGF0aWMg aW50IGVtaXRfcGRwcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIHsKPiAgIAljb25zdCBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gcnEtPmVuZ2luZTsKPiBAQCAt MjA0OSw3ICsyMDc3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9lbWl0X3dhX3RhaWwoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcmVxdWVzdCwgdTMyICpjcykKPiAgIAlyZXF1ZXN0LT53YV90YWlsID0gaW50 ZWxfcmluZ19vZmZzZXQocmVxdWVzdCwgY3MpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIGdl bjhfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3Mp Cj4gK3N0YXRpYyB2b2lkIGdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVx dWVzdCAqcmVxdWVzdCwgdTMyICpjcykKPiAgIHsKPiAgIAkvKiB3L2E6IGJpdCA1IG5lZWRzIHRv IGJlIHplcm8gZm9yIE1JX0ZMVVNIX0RXIGFkZHJlc3MuICovCj4gICAJQlVJTERfQlVHX09OKEk5 MTVfR0VNX0hXU19JTkRFWF9BRERSICYgKDEgPDwgNSkpOwo+IEBAIC0yMDcwLDkgKzIwOTgsOSBA QCBzdGF0aWMgdm9pZCBnZW44X2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpy ZXF1ZXN0LCB1MzIgKmNzKQo+ICAgCj4gICAJZ2VuOF9lbWl0X3dhX3RhaWwocmVxdWVzdCwgY3Mp Owo+ICAgfQo+IC1zdGF0aWMgY29uc3QgaW50IGdlbjhfZW1pdF9icmVhZGNydW1iX3N6ID0gMTAg KyBXQV9UQUlMX0RXT1JEUzsKPiArc3RhdGljIGNvbnN0IGludCBnZW44X2VtaXRfZmluaV9icmVh ZGNydW1iX3N6ID0gMTAgKyBXQV9UQUlMX0RXT1JEUzsKPiAgIAo+IC1zdGF0aWMgdm9pZCBnZW44 X2VtaXRfYnJlYWRjcnVtYl9yY3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwgdTMyICpj cykKPiArc3RhdGljIHZvaWQgZ2VuOF9lbWl0X2ZpbmlfYnJlYWRjcnVtYl9yY3Moc3RydWN0IGk5 MTVfcmVxdWVzdCAqcmVxdWVzdCwgdTMyICpjcykKPiAgIHsKPiAgIAljcyA9IGdlbjhfZW1pdF9n Z3R0X3dyaXRlX3JjcyhjcywKPiAgIAkJCQkgICAgICByZXF1ZXN0LT5mZW5jZS5zZXFubywKPiBA QCAtMjA5Niw3ICsyMTI0LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9lbWl0X2JyZWFkY3J1bWJfcmNz KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCj4gICAKPiAgIAlnZW44X2Vt aXRfd2FfdGFpbChyZXF1ZXN0LCBjcyk7Cj4gICB9Cj4gLXN0YXRpYyBjb25zdCBpbnQgZ2VuOF9l bWl0X2JyZWFkY3J1bWJfcmNzX3N6ID0gMTQgKyBXQV9UQUlMX0RXT1JEUzsKPiArc3RhdGljIGNv bnN0IGludCBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iX3Jjc19zeiA9IDE0ICsgV0FfVEFJTF9E V09SRFM7Cj4gICAKPiAgIHN0YXRpYyBpbnQgZ2VuOF9pbml0X3Jjc19jb250ZXh0KHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxKQo+ICAgewo+IEBAIC0yMTg4LDggKzIyMTYsOSBAQCBsb2dpY2FsX3Jp bmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCWVu Z2luZS0+cmVxdWVzdF9hbGxvYyA9IGV4ZWNsaXN0c19yZXF1ZXN0X2FsbG9jOwo+ICAgCj4gICAJ ZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuOF9lbWl0X2ZsdXNoOwo+IC0JZW5naW5lLT5lbWl0X2Jy ZWFkY3J1bWIgPSBnZW44X2VtaXRfYnJlYWRjcnVtYjsKPiAtCWVuZ2luZS0+ZW1pdF9icmVhZGNy dW1iX3N6ID0gZ2VuOF9lbWl0X2JyZWFkY3J1bWJfc3o7Cj4gKwllbmdpbmUtPmVtaXRfaW5pdF9i cmVhZGNydW1iID0gZ2VuOF9lbWl0X2luaXRfYnJlYWRjcnVtYjsKPiArCWVuZ2luZS0+ZW1pdF9m aW5pX2JyZWFkY3J1bWIgPSBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iOwo+ICsJZW5naW5lLT5l bWl0X2ZpbmlfYnJlYWRjcnVtYl9zeiA9IGdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWJfc3o7Cj4g ICAKPiAgIAllbmdpbmUtPnNldF9kZWZhdWx0X3N1Ym1pc3Npb24gPSBpbnRlbF9leGVjbGlzdHNf c2V0X2RlZmF1bHRfc3VibWlzc2lvbjsKPiAgIAo+IEBAIC0yMzAyLDggKzIzMzEsOCBAQCBpbnQg bG9naWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgIAkvKiBPdmVycmlkZSBzb21lIGZvciByZW5kZXIgcmluZy4gKi8KPiAgIAllbmdpbmUtPmlu aXRfY29udGV4dCA9IGdlbjhfaW5pdF9yY3NfY29udGV4dDsKPiAgIAllbmdpbmUtPmVtaXRfZmx1 c2ggPSBnZW44X2VtaXRfZmx1c2hfcmVuZGVyOwo+IC0JZW5naW5lLT5lbWl0X2JyZWFkY3J1bWIg PSBnZW44X2VtaXRfYnJlYWRjcnVtYl9yY3M7Cj4gLQllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9z eiA9IGdlbjhfZW1pdF9icmVhZGNydW1iX3Jjc19zejsKPiArCWVuZ2luZS0+ZW1pdF9maW5pX2Jy ZWFkY3J1bWIgPSBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iX3JjczsKPiArCWVuZ2luZS0+ZW1p dF9maW5pX2JyZWFkY3J1bWJfc3ogPSBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iX3Jjc19zejsK PiAgIAo+ICAgCXJldCA9IGxvZ2ljYWxfcmluZ19pbml0KGVuZ2luZSk7Cj4gICAJaWYgKHJldCkK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggNzUxYmQ0ZTdk YTQyLi5mNmIzMGViNDYyNjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jCj4gQEAgLTE1OTQsNiArMTU5NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5n X2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJCWVyciA9IFBUUl9F UlIodGltZWxpbmUpOwo+ICAgCQlnb3RvIGVycjsKPiAgIAl9Cj4gKwlHRU1fQlVHX09OKHRpbWVs aW5lLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iKTsKPiAgIAo+ICAgCXJpbmcgPSBpbnRlbF9lbmdp bmVfY3JlYXRlX3JpbmcoZW5naW5lLCB0aW1lbGluZSwgMzIgKiBQQUdFX1NJWkUpOwo+ICAgCWk5 MTVfdGltZWxpbmVfcHV0KHRpbWVsaW5lKTsKPiBAQCAtMTk0Nyw2ICsxOTQ4LDcgQEAgc3RhdGlj IGludCByaW5nX3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAg IAlpbnQgcmV0Owo+ICAgCj4gICAJR0VNX0JVR19PTighcmVxdWVzdC0+aHdfY29udGV4dC0+cGlu X2NvdW50KTsKPiArCUdFTV9CVUdfT04ocmVxdWVzdC0+dGltZWxpbmUtPmhhc19pbml0aWFsX2Jy ZWFkY3J1bWIpOwo+ICAgCj4gICAJLyoKPiAgIAkgKiBGbHVzaCBlbm91Z2ggc3BhY2UgdG8gcmVk dWNlIHRoZSBsaWtlbGlob29kIG9mIHdhaXRpbmcgYWZ0ZXIKPiBAQCAtMjI4MywxMSArMjI4NSwx NiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAllbmdpbmUtPmNvbnRleHRfcGluID0gaW50ZWxfcmlu Z19jb250ZXh0X3BpbjsKPiAgIAllbmdpbmUtPnJlcXVlc3RfYWxsb2MgPSByaW5nX3JlcXVlc3Rf YWxsb2M7Cj4gICAKPiAtCWVuZ2luZS0+ZW1pdF9icmVhZGNydW1iID0gaTl4eF9lbWl0X2JyZWFk Y3J1bWI7Cj4gLQllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IGk5eHhfZW1pdF9icmVhZGNy dW1iX3N6Owo+ICsJLyoKPiArCSAqIFVzaW5nIGEgZ2xvYmFsIGV4ZWN1dGlvbiB0aW1lbGluZTsg dGhlIHByZXZpb3VzIGZpbmFsIGJyZWFkY3J1bWIgaXMKPiArCSAqIGVxdWl2YWxlbnQgdG8gb3Vy IG5leHQgaW5pdGlhbCBicmVhZCBzbyB3ZSBjYW4gZWxpZGUKPiArCSAqIGVuZ2luZS0+ZW1pdF9p bml0X2JyZWFkY3J1bWIoKS4KPiArCSAqLwo+ICsJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVt YiA9IGk5eHhfZW1pdF9icmVhZGNydW1iOwo+ICsJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVt Yl9zeiA9IGk5eHhfZW1pdF9icmVhZGNydW1iX3N6Owo+ICAgCWlmIChJU19HRU4oZGV2X3ByaXYs IDUpKSB7Cj4gLQkJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWIgPSBnZW41X2VtaXRfYnJlYWRjcnVt YjsKPiAtCQllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IGdlbjVfZW1pdF9icmVhZGNydW1i X3N6Owo+ICsJCWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIgPSBnZW41X2VtaXRfYnJlYWRj cnVtYjsKPiArCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iX3N6ID0gZ2VuNV9lbWl0X2Jy ZWFkY3J1bWJfc3o7Cj4gICAJfQo+ICAgCj4gICAJZW5naW5lLT5zZXRfZGVmYXVsdF9zdWJtaXNz aW9uID0gaTl4eF9zZXRfZGVmYXVsdF9zdWJtaXNzaW9uOwo+IEBAIC0yMzE3LDEzICsyMzI0LDEz IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgewo+ICAgCQll bmdpbmUtPmluaXRfY29udGV4dCA9IGludGVsX3Jjc19jdHhfaW5pdDsKPiAgIAkJZW5naW5lLT5l bWl0X2ZsdXNoID0gZ2VuN19yZW5kZXJfcmluZ19mbHVzaDsKPiAtCQllbmdpbmUtPmVtaXRfYnJl YWRjcnVtYiA9IGdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYjsKPiAtCQllbmdpbmUtPmVtaXRfYnJl YWRjcnVtYl9zeiA9IGdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYl9zejsKPiArCQllbmdpbmUtPmVt aXRfZmluaV9icmVhZGNydW1iID0gZ2VuN19yY3NfZW1pdF9icmVhZGNydW1iOwo+ICsJCWVuZ2lu ZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWJfc3ogPSBnZW43X3Jjc19lbWl0X2JyZWFkY3J1bWJfc3o7 Cj4gICAJfSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDYpKSB7Cj4gICAJCWVuZ2luZS0+aW5p dF9jb250ZXh0ID0gaW50ZWxfcmNzX2N0eF9pbml0Owo+ICAgCQllbmdpbmUtPmVtaXRfZmx1c2gg PSBnZW42X3JlbmRlcl9yaW5nX2ZsdXNoOwo+IC0JCWVuZ2luZS0+ZW1pdF9icmVhZGNydW1iID0g Z2VuNl9yY3NfZW1pdF9icmVhZGNydW1iOwo+IC0JCWVuZ2luZS0+ZW1pdF9icmVhZGNydW1iX3N6 ID0gZ2VuNl9yY3NfZW1pdF9icmVhZGNydW1iX3N6Owo+ICsJCWVuZ2luZS0+ZW1pdF9maW5pX2Jy ZWFkY3J1bWIgPSBnZW42X3Jjc19lbWl0X2JyZWFkY3J1bWI7Cj4gKwkJZW5naW5lLT5lbWl0X2Zp bmlfYnJlYWRjcnVtYl9zeiA9IGdlbjZfcmNzX2VtaXRfYnJlYWRjcnVtYl9zejsKPiAgIAl9IGVs c2UgaWYgKElTX0dFTihkZXZfcHJpdiwgNSkpIHsKPiAgIAkJZW5naW5lLT5lbWl0X2ZsdXNoID0g Z2VuNF9yZW5kZXJfcmluZ19mbHVzaDsKPiAgIAl9IGVsc2Ugewo+IEBAIC0yMzYwLDExICsyMzY3 LDExIEBAIGludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gICAJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfQlNEX1VTRVJf SU5URVJSVVBUOwo+ICAgCj4gICAJCWlmIChJU19HRU4oZGV2X3ByaXYsIDYpKSB7Cj4gLQkJCWVu Z2luZS0+ZW1pdF9icmVhZGNydW1iID0gZ2VuNl94Y3NfZW1pdF9icmVhZGNydW1iOwo+IC0JCQll bmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IGdlbjZfeGNzX2VtaXRfYnJlYWRjcnVtYl9zejsK PiArCQkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYiA9IGdlbjZfeGNzX2VtaXRfYnJlYWRj cnVtYjsKPiArCQkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYl9zeiA9IGdlbjZfeGNzX2Vt aXRfYnJlYWRjcnVtYl9zejsKPiAgIAkJfSBlbHNlIHsKPiAtCQkJZW5naW5lLT5lbWl0X2JyZWFk Y3J1bWIgPSBnZW43X3hjc19lbWl0X2JyZWFkY3J1bWI7Cj4gLQkJCWVuZ2luZS0+ZW1pdF9icmVh ZGNydW1iX3N6ID0gZ2VuN194Y3NfZW1pdF9icmVhZGNydW1iX3N6Owo+ICsJCQllbmdpbmUtPmVt aXRfZmluaV9icmVhZGNydW1iID0gZ2VuN194Y3NfZW1pdF9icmVhZGNydW1iOwo+ICsJCQllbmdp bmUtPmVtaXRfZmluaV9icmVhZGNydW1iX3N6ID0gZ2VuN194Y3NfZW1pdF9icmVhZGNydW1iX3N6 Owo+ICAgCQl9Cj4gICAJfSBlbHNlIHsKPiAgIAkJZW5naW5lLT5lbWl0X2ZsdXNoID0gYnNkX3Jp bmdfZmx1c2g7Cj4gQEAgLTIzODksMTEgKzIzOTYsMTEgQEAgaW50IGludGVsX2luaXRfYmx0X3Jp bmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAllbmdpbmUtPmly cV9lbmFibGVfbWFzayA9IEdUX0JMVF9VU0VSX0lOVEVSUlVQVDsKPiAgIAo+ICAgCWlmIChJU19H RU4oZGV2X3ByaXYsIDYpKSB7Cj4gLQkJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWIgPSBnZW42X3hj c19lbWl0X2JyZWFkY3J1bWI7Cj4gLQkJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWJfc3ogPSBnZW42 X3hjc19lbWl0X2JyZWFkY3J1bWJfc3o7Cj4gKwkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVt YiA9IGdlbjZfeGNzX2VtaXRfYnJlYWRjcnVtYjsKPiArCQllbmdpbmUtPmVtaXRfZmluaV9icmVh ZGNydW1iX3N6ID0gZ2VuNl94Y3NfZW1pdF9icmVhZGNydW1iX3N6Owo+ICAgCX0gZWxzZSB7Cj4g LQkJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWIgPSBnZW43X3hjc19lbWl0X2JyZWFkY3J1bWI7Cj4g LQkJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWJfc3ogPSBnZW43X3hjc19lbWl0X2JyZWFkY3J1bWJf c3o7Cj4gKwkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYiA9IGdlbjdfeGNzX2VtaXRfYnJl YWRjcnVtYjsKPiArCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iX3N6ID0gZ2VuN194Y3Nf ZW1pdF9icmVhZGNydW1iX3N6Owo+ICAgCX0KPiAgIAo+ICAgCXJldHVybiBpbnRlbF9pbml0X3Jp bmdfYnVmZmVyKGVuZ2luZSk7Cj4gQEAgLTI0MTIsOCArMjQxOSw4IEBAIGludCBpbnRlbF9pbml0 X3ZlYm94X3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAll bmdpbmUtPmlycV9lbmFibGUgPSBoc3dfdmVib3hfaXJxX2VuYWJsZTsKPiAgIAllbmdpbmUtPmly cV9kaXNhYmxlID0gaHN3X3ZlYm94X2lycV9kaXNhYmxlOwo+ICAgCj4gLQllbmdpbmUtPmVtaXRf YnJlYWRjcnVtYiA9IGdlbjdfeGNzX2VtaXRfYnJlYWRjcnVtYjsKPiAtCWVuZ2luZS0+ZW1pdF9i cmVhZGNydW1iX3N6ID0gZ2VuN194Y3NfZW1pdF9icmVhZGNydW1iX3N6Owo+ICsJZW5naW5lLT5l bWl0X2ZpbmlfYnJlYWRjcnVtYiA9IGdlbjdfeGNzX2VtaXRfYnJlYWRjcnVtYjsKPiArCWVuZ2lu ZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWJfc3ogPSBnZW43X3hjc19lbWl0X2JyZWFkY3J1bWJfc3o7 Cj4gICAKPiAgIAlyZXR1cm4gaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihlbmdpbmUpOwo+ICAgfQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCBhNzkyYmFjZjI5 MzAuLmQzZDRmMzY2N2FmYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiBAQCAtNDYzLDggKzQ2MywxMCBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKPiAg IAkJCQkJIHVuc2lnbmVkIGludCBkaXNwYXRjaF9mbGFncyk7Cj4gICAjZGVmaW5lIEk5MTVfRElT UEFUQ0hfU0VDVVJFIEJJVCgwKQo+ICAgI2RlZmluZSBJOTE1X0RJU1BBVENIX1BJTk5FRCBCSVQo MSkKPiAtCXZvaWQJCSgqZW1pdF9icmVhZGNydW1iKShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwg dTMyICpjcyk7Cj4gLQlpbnQJCWVtaXRfYnJlYWRjcnVtYl9zejsKPiArCWludAkJKCplbWl0X2lu aXRfYnJlYWRjcnVtYikoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpOwo+ICsJdm9pZAkJKCplbWl0 X2ZpbmlfYnJlYWRjcnVtYikoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4gKwkJCQkJCXUzMiAq Y3MpOwo+ICsJdW5zaWduZWQgaW50CWVtaXRfZmluaV9icmVhZGNydW1iX3N6Owo+ICAgCj4gICAJ LyogUGFzcyB0aGUgcmVxdWVzdCB0byB0aGUgaGFyZHdhcmUgcXVldWUgKGUuZy4gZGlyZWN0bHkg aW50bwo+ICAgCSAqIHRoZSBsZWdhY3kgcmluZ2J1ZmZlciBvciB0byB0aGUgZW5kIG9mIGFuIGV4 ZWNsaXN0KS4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21v Y2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUu Ywo+IGluZGV4IGMwYTQwODgyODQxNS4uMjUxNWNmZmI0NDkwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMKPiBAQCAtMjI3LDcgKzIyNyw3IEBA IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKm1vY2tfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAo+ICAgCWVuZ2luZS0+YmFzZS5jb250ZXh0X3BpbiA9IG1vY2tfY29udGV4dF9w aW47Cj4gICAJZW5naW5lLT5iYXNlLnJlcXVlc3RfYWxsb2MgPSBtb2NrX3JlcXVlc3RfYWxsb2M7 Cj4gICAJZW5naW5lLT5iYXNlLmVtaXRfZmx1c2ggPSBtb2NrX2VtaXRfZmx1c2g7Cj4gLQllbmdp bmUtPmJhc2UuZW1pdF9icmVhZGNydW1iID0gbW9ja19lbWl0X2JyZWFkY3J1bWI7Cj4gKwllbmdp bmUtPmJhc2UuZW1pdF9maW5pX2JyZWFkY3J1bWIgPSBtb2NrX2VtaXRfYnJlYWRjcnVtYjsKPiAg IAllbmdpbmUtPmJhc2Uuc3VibWl0X3JlcXVlc3QgPSBtb2NrX3N1Ym1pdF9yZXF1ZXN0Owo+ICAg Cj4gICAJaWYgKGk5MTVfdGltZWxpbmVfaW5pdChpOTE1LAo+IAoKUmV2aWV3ZWQtYnk6IFR2cnRr byBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=