From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v6] drm/i915/guc: Preemption! With GuC Date: Thu, 26 Oct 2017 15:35:58 +0200 Message-ID: <20171026133558.19580-1-michal.winiarski@intel.com> References: <20171026072707.29180-1-michal.winiarski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 842BF6E7B4 for ; Thu, 26 Oct 2017 13:36:49 +0000 (UTC) In-Reply-To: <20171026072707.29180-1-michal.winiarski@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UHJldHR5IHNpbWlsYXIgdG8gd2hhdCB3ZSBoYXZlIG9uIGV4ZWNsaXN0cy4KV2UncmUgcmV1c2lu ZyBtb3N0IG9mIHRoZSBHRU0gY29kZSwgaG93ZXZlciwgZHVlIHRvIEd1QyBxdWlya3Mgd2UgbmVl ZCBhCmNvdXBsZSBvZiBleHRyYSBiaXRzLgpQcmVlbXB0aW9uIGlzIGltcGxlbWVudGVkIGFzIEd1 QyBhY3Rpb24sIGFuZCBhY3Rpb25zIGNhbiBiZSBwcmV0dHkgc2xvdy4KQmVjYXVzZSBvZiB0aGF0 LCB3ZSdyZSB1c2luZyBhIG11dGV4IHRvIHNlcmlhbGl6ZSB0aGVtLiBTaW5jZSB3ZSdyZQpyZXF1 ZXN0aW5nIHByZWVtcHRpb24gZnJvbSB0aGUgdGFza2xldCwgdGhlIHRhc2sgb2YgY3JlYXRpbmcg YSB3b3JraXRlbQphbmQgd3JhcHBpbmcgaXQgaW4gR3VDIGFjdGlvbiBpcyBkZWxlZ2F0ZWQgdG8g YSB3b3JrZXIuCgpUbyBkaXN0aW5ndWlzaCB0aGF0IHByZWVtcHRpb24gaGFzIGZpbmlzaGVkLCB3 ZSdyZSB1c2luZyBhZGRpdGlvbmFsCnBpZWNlIG9mIEhXU1AsIGFuZCBzaW5jZSB3ZSdyZSBub3Qg Z2V0dGluZyBjb250ZXh0IHN3aXRjaCBpbnRlcnJ1cHRzLAp3ZSdyZSBhbHNvIGFkZGluZyBhIHVz ZXIgaW50ZXJydXB0LgoKVGhlIGZhY3QgdGhhdCBvdXIgc3BlY2lhbCBwcmVlbXB0IGNvbnRleHQg aGFzIGNvbXBsZXRlZCB1bmZvcnR1bmF0ZWx5CmRvZXNuJ3QgbWVhbiB0aGF0IHdlJ3JlIHJlYWR5 IHRvIHN1Ym1pdCBuZXcgd29yay4gV2UgYWxzbyBuZWVkIHRvIHdhaXQKZm9yIEd1QyB0byBmaW5p c2ggaXRzIG93biBwcm9jZXNzaW5nLgoKdjI6IERvbid0IGNvbXBpbGUgb3V0IHRoZSB3YWl0IGZv ciBHdUMsIGhhbmRsZSB3b3JrcXVldWUgZmx1c2ggb24gcmVzZXQsCm5vIG5lZWQgZm9yIG9yZGVy ZWQgd29ya3F1ZXVlLCBwdXQgb24gYSByZXZpZXdlciBoYXQgd2hlbiBsb29raW5nIGF0IG15IG93 bgpwYXRjaGVzIChDaHJpcykKTW92ZSBzdHJ1Y3Qgd29yayBhcm91bmQgaW4gaW50ZWxfZ3VjLCBt b3ZlIHVzZXIgaW50ZXJydXB1dCBvdXRzaWRlIG9mCmNvbmRpdGlvbmFsIChNaWNoYcWCKQpLZWVw IHJpbmcgYXJvdW5kIHJhdGhlciB0aGFuIGNoYXNlIHRob3VnaCBpbnRlbF9jb250ZXh0Cgp2Mzog RXh0cmFjdCBXQSBmb3IgZmx1c2hpbmcgZ2d0dCB3cml0ZXMgdG8gYSBoZWxwZXIgKENocmlzKQpL ZWVwIHdvcmtfc3RydWN0IGluIGludGVsX2d1YyByYXRoZXIgdGhhbiBlbmdpbmUgKE1pY2hhxYIp ClVzZSBvcmRlcmVkIHdvcmtxdWV1ZSBmb3IgaW5qZWN0X3ByZWVtcHQgd29ya2VyIHRvIGF2b2lk IEd1QyBxdWlya3MuCgp2NDogRHJvcCBub3cgdW51c2VkIElOVEVMX0dVQ19QUkVFTVBUX09QVElP Tl9JTU1FRElBVEUgKERhbmllbGUpCkRyb3Agc3RyYXkgbmV3bGluZXMsIHVzZSBjb250YWluZXJf b2YgZm9yIGludGVsX2d1YyBpbiB3b3JrZXIsCmNoZWNrIGZvciBwcmVzZW5jZSBvZiB3b3JrcXVl dWUgd2hlbiBmbHVzaGluZyBpdCwgcmF0aGVyIHRoYW4KZW5hYmxlX2d1Y19zdWJtaXNzaW9uIG1v ZHBhcmFtLCByZW9yZGVyIHByZWVtcHQgcG9zdHByb2Nlc3NpbmcgKENocmlzKQoKdjU6IE1ha2Ug d3EgTlVMTCBhZnRlciBkZXN0cm95aW5nIGl0Cgp2NjogU3dhcCBzdHJ1Y3QgZ3VjX3ByZWVtcHRf d29yayBtZW1iZXJzIChNaWNoYcWCKQoKU2lnbmVkLW9mZi1ieTogTWljaGHFgiBXaW5pYXJza2kg PG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+CkNjOiBKZWZmIE1jR2VlIDxqZWZmLm1jZ2VlQGludGVsLmNvbT4KQ2M6 IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IE9z Y2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZy dGtvLnVyc3VsaW5AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAg ICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAg ICAgICAgfCAgMTAgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u YyB8IDIwOCArKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjLmggICAgICAgICAgIHwgICA4ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5oICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmggICAgfCAgIDYgKwogNyBmaWxlcyBjaGFuZ2VkLCAyMjIgaW5zZXJ0aW9ucygrKSwg MTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggN2I4NzE4MDJhZTM2 Li5hZjc0NTc0OTUwOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMzczLDggKzM3Myw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAogCQkJdmFsdWUgfD0gSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSSU9SSVRZOwogCiAJCQlp ZiAoSEFTX0xPR0lDQUxfUklOR19QUkVFTVBUSU9OKGRldl9wcml2KSAmJgotCQkJICAgIGk5MTVf bW9kcGFyYW1zLmVuYWJsZV9leGVjbGlzdHMgJiYKLQkJCSAgICAhaTkxNV9tb2RwYXJhbXMuZW5h YmxlX2d1Y19zdWJtaXNzaW9uKQorCQkJICAgIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9leGVjbGlz dHMpCiAJCQkJdmFsdWUgfD0gSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSRUVNUFRJT047CiAJCX0KIAkJ YnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBkODAzZWY1ZjRhN2YuLmMyNTA2ZmIz YTQ4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yOTIxLDYgKzI5MjEsMTYgQEAgaTkx NV9nZW1fcmVzZXRfcHJlcGFyZV9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogCXRhc2tsZXRfa2lsbCgmZW5naW5lLT5leGVjbGlzdHMuaXJxX3Rhc2tsZXQpOwogCXRhc2ts ZXRfZGlzYWJsZSgmZW5naW5lLT5leGVjbGlzdHMuaXJxX3Rhc2tsZXQpOwogCisJLyoKKwkgKiBX ZSdyZSB1c2luZyB3b3JrZXIgdG8gcXVldWUgcHJlZW1wdGlvbiByZXF1ZXN0cyBmcm9tIHRoZSB0 YXNrbGV0IGluCisJICogR3VDIHN1Ym1pc3Npb24gbW9kZS4KKwkgKiBFdmVuIHRob3VnaCB0YXNr bGV0IHdhcyBkaXNhYmxlZCwgd2UgbWF5IHN0aWxsIGhhdmUgYSB3b3JrZXIgcXVldWVkLgorCSAq IExldCdzIG1ha2Ugc3VyZSB0aGF0IGFsbCB3b3JrZXJzIHNjaGVkdWxlZCBiZWZvcmUgZGlzYWJs aW5nIHRoZQorCSAqIHRhc2tsZXQgYXJlIGNvbXBsZXRlZCBiZWZvcmUgY29udGludWluZyB3aXRo IHRoZSByZXNldC4KKwkgKi8KKwlpZiAoZW5naW5lLT5pOTE1LT5ndWMucHJlZW1wdF93cSkKKwkJ Zmx1c2hfd29ya3F1ZXVlKGVuZ2luZS0+aTkxNS0+Z3VjLnByZWVtcHRfd3EpOworCiAJaWYgKGVu Z2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCiAJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIoZW5n aW5lKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4 IDYzNjQxODExZGU0Ni4uYmY4ZDFlNTRhYTVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jCkBAIC01NjUsNiArNTY1LDEwOCBAQCBzdGF0aWMgdm9pZCBndWNf YWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2d1YyAqZ3VjLAogCXNwaW5fdW5sb2NrKCZjbGllbnQt PndxX2xvY2spOwogfQogCisvKgorICogV2hlbiB3ZSdyZSBkb2luZyBzdWJtaXNzaW9ucyB1c2lu ZyByZWd1bGFyIGV4ZWNsaXN0cyBiYWNrZW5kLCB3cml0aW5nIHRvCisgKiBFTFNQIGZyb20gQ1BV IHNpZGUgaXMgZW5vdWdoIHRvIG1ha2Ugc3VyZSB0aGF0IHdyaXRlcyB0byByaW5nYnVmZmVyIHBh Z2VzCisgKiBwaW5uZWQgaW4gbWFwcGFibGUgYXBlcnR1cmUgcG9ydGlvbiBvZiBHR1RUIGFyZSB2 aXNpYmxlIHRvIGNvbW1hbmQgc3RyZWFtZXIuCisgKiBXcml0ZXMgZG9uZSBieSBHdUMgb24gb3Vy IGJlaGFsZiBhcmUgbm90IGd1YXJhbnRlZWluZyBzdWNoIG9yZGVyaW5nLAorICogdGhlcmVmb3Jl LCB0byBlbnN1cmUgdGhlIGZsdXNoLCB3ZSdyZSBpc3N1aW5nIGEgUE9TVElORyBSRUFELgorICov CitzdGF0aWMgdm9pZCBmbHVzaF9nZ3R0X3dyaXRlcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHZtYS0+b2JqLT5i YXNlLmRldik7CisKKwlpZiAoaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUodm1hKSkKKwkJ UE9TVElOR19SRUFEX0ZXKEdVQ19TVEFUVVMpOworfQorCisjZGVmaW5lIEdVQ19QUkVFTVBUX0ZJ TklTSEVEIDB4MQorI2RlZmluZSBHVUNfUFJFRU1QVF9CUkVBRENSVU1CX0RXT1JEUyAweDgKK3N0 YXRpYyB2b2lkIGluamVjdF9wcmVlbXB0X2NvbnRleHQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQoreworCXN0cnVjdCBndWNfcHJlZW1wdF93b3JrICpwcmVlbXB0X3dvcmsgPQorCQljb250YWlu ZXJfb2Yod29yaywgdHlwZW9mKCpwcmVlbXB0X3dvcmspLCB3b3JrKTsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUgPSBwcmVlbXB0X3dvcmstPmVuZ2luZTsKKwlzdHJ1Y3QgaW50ZWxf Z3VjICpndWMgPSBjb250YWluZXJfb2YocHJlZW1wdF93b3JrLCB0eXBlb2YoKmd1YyksCisJCQkJ CSAgICAgcHJlZW1wdF93b3JrW2VuZ2luZS0+aWRdKTsKKwlzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50 ICpjbGllbnQgPSBndWMtPnByZWVtcHRfY2xpZW50OworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5n ID0gY2xpZW50LT5vd25lci0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmc7CisJdTMyIGN0eF9kZXNj ID0gbG93ZXJfMzJfYml0cyhpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3IoY2xpZW50LT5vd25l ciwKKwkJCQkJCQkJIGVuZ2luZSkpOworCXUzMiAqY3MgPSByaW5nLT52YWRkciArIHJpbmctPnRh aWw7CisJdTMyIGRhdGFbN107CisKKwlpZiAoZW5naW5lLT5pZCA9PSBSQ1MpIHsKKwkJY3MgPSBn ZW44X2VtaXRfZ2d0dF93cml0ZV9yY3MoY3MsIEdVQ19QUkVFTVBUX0ZJTklTSEVELAorCQkJCWlu dGVsX2h3c19wcmVlbXB0X2RvbmVfYWRkcmVzcyhlbmdpbmUpKTsKKwl9IGVsc2UgeworCQljcyA9 IGdlbjhfZW1pdF9nZ3R0X3dyaXRlKGNzLCBHVUNfUFJFRU1QVF9GSU5JU0hFRCwKKwkJCQlpbnRl bF9od3NfcHJlZW1wdF9kb25lX2FkZHJlc3MoZW5naW5lKSk7CisJCSpjcysrID0gTUlfTk9PUDsK KwkJKmNzKysgPSBNSV9OT09QOworCX0KKwkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBUOworCSpj cysrID0gTUlfTk9PUDsKKworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQocmluZy0+c2l6ZSwKKwkJ CSAgICAgICBHVUNfUFJFRU1QVF9CUkVBRENSVU1CX0RXT1JEUyAqIHNpemVvZih1MzIpKSk7CisJ R0VNX0JVR19PTigodm9pZCAqKWNzIC0gKHJpbmctPnZhZGRyICsgcmluZy0+dGFpbCkgIT0KKwkJ ICAgR1VDX1BSRUVNUFRfQlJFQURDUlVNQl9EV09SRFMgKiBzaXplb2YodTMyKSk7CisKKwlyaW5n LT50YWlsICs9IEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfRFdPUkRTICogc2l6ZW9mKHUzMik7CisJ cmluZy0+dGFpbCAmPSAocmluZy0+c2l6ZSAtIDEpOworCisJZmx1c2hfZ2d0dF93cml0ZXMocmlu Zy0+dm1hKTsKKworCXNwaW5fbG9ja19pcnEoJmNsaWVudC0+d3FfbG9jayk7CisJZ3VjX3dxX2l0 ZW1fYXBwZW5kKGNsaWVudCwgZW5naW5lLT5ndWNfaWQsIGN0eF9kZXNjLAorCQkJICAgcmluZy0+ dGFpbCAvIHNpemVvZih1NjQpLCAwKTsKKwlzcGluX3VubG9ja19pcnEoJmNsaWVudC0+d3FfbG9j ayk7CisKKwlkYXRhWzBdID0gSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX1BSRUVNUFRJT047CisJ ZGF0YVsxXSA9IGNsaWVudC0+c3RhZ2VfaWQ7CisJZGF0YVsyXSA9IElOVEVMX0dVQ19QUkVFTVBU X09QVElPTl9EUk9QX1dPUktfUSB8CisJCSAgSU5URUxfR1VDX1BSRUVNUFRfT1BUSU9OX0RST1Bf U1VCTUlUX1E7CisJZGF0YVszXSA9IGVuZ2luZS0+Z3VjX2lkOworCWRhdGFbNF0gPSBndWMtPmV4 ZWNidWZfY2xpZW50LT5wcmlvcml0eTsKKwlkYXRhWzVdID0gZ3VjLT5leGVjYnVmX2NsaWVudC0+ c3RhZ2VfaWQ7CisJZGF0YVs2XSA9IGd1Y19nZ3R0X29mZnNldChndWMtPnNoYXJlZF9kYXRhKTsK KworCWlmIChXQVJOX09OKGludGVsX2d1Y19zZW5kKGd1YywgZGF0YSwgQVJSQVlfU0laRShkYXRh KSkpKSB7CisJCWV4ZWNsaXN0c19jbGVhcl9hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzLAorCQkJ CSAgICAgICBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOworCQl0YXNrbGV0X3NjaGVkdWxlKCZl bmdpbmUtPmV4ZWNsaXN0cy5pcnFfdGFza2xldCk7CisJfQorfQorCisvKgorICogV2UncmUgdXNp bmcgdXNlciBpbnRlcnJ1cHQgYW5kIEhXU1AgdmFsdWUgdG8gbWFyayB0aGF0IHByZWVtcHRpb24g aGFzCisgKiBmaW5pc2hlZCBhbmQgR1BVIGlzIGlkbGUuIE5vcm1hbGx5LCB3ZSBjb3VsZCB1bndp bmQgYW5kIGNvbnRpbnVlIHNpbWlsYXIgdG8KKyAqIGV4ZWNsaXN0cyBzdWJtaXNzaW9uIHBhdGgu IFVuZm9ydHVuYXRlbHksIHdpdGggR3VDIHdlIGFsc28gbmVlZCB0byB3YWl0IGZvcgorICogaXQg dG8gZmluaXNoIGl0cyBvd24gcG9zdHByb2Nlc3NpbmcsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHN1 Ym1pdC4gT3RoZXJ3aXNlCisgKiBHdUMgbWF5IHNpbGVudGx5IGlnbm9yZSBvdXIgc3VibWlzc2lv bnMsIGFuZCB0aHVzIHdlIHJpc2sgbG9zaW5nIHJlcXVlc3QgYXQKKyAqIGJlc3QsIGV4ZWN1dGlu ZyBvdXQtb2Ytb3JkZXIgYW5kIGNhdXNpbmcga2VybmVsIHBhbmljIGF0IHdvcnN0LgorICovCisj ZGVmaW5lIEdVQ19QUkVFTVBUX1BPU1RQUk9DRVNTX0RFTEFZX01TIDEwCitzdGF0aWMgdm9pZCB3 YWl0X2Zvcl9ndWNfcHJlZW1wdF9yZXBvcnQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQoreworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZlbmdpbmUtPmk5MTUtPmd1YzsKKwlzdHJ1 Y3QgZ3VjX3NoYXJlZF9jdHhfZGF0YSAqZGF0YSA9IGd1Yy0+c2hhcmVkX2RhdGFfdmFkZHI7CisJ c3RydWN0IGd1Y19jdHhfcmVwb3J0ICpyZXBvcnQgPQorCQkmZGF0YS0+cHJlZW1wdF9jdHhfcmVw b3J0W2VuZ2luZS0+Z3VjX2lkXTsKKworCVdBUk5fT04od2FpdF9mb3JfYXRvbWljKHJlcG9ydC0+ cmVwb3J0X3JldHVybl9zdGF0dXMgPT0KKwkJCQlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19DT01Q TEVURSwKKwkJCQlHVUNfUFJFRU1QVF9QT1NUUFJPQ0VTU19ERUxBWV9NUykpOworCS8qCisJICog R3VDIGlzIGV4cGVjdGluZyB0aGF0IHdlJ3JlIGFsc28gZ29pbmcgdG8gY2xlYXIgdGhlIGFmZmVj dGVkIGNvbnRleHQKKwkgKiBjb3VudGVyLCBsZXQncyBhbHNvIHJlc2V0IHRoZSByZXR1cm4gc3Rh dHVzIHRvIG5vdCBkZXBlbmQgb24gR3VDCisJICogcmVzZXR0aW5nIGl0IGFmdGVyIHJlY2lldmlu ZyBhbm90aGVyIHByZWVtcHQgYWN0aW9uCisJICovCisJcmVwb3J0LT5hZmZlY3RlZF9jb3VudCA9 IDA7CisJcmVwb3J0LT5yZXBvcnRfcmV0dXJuX3N0YXR1cyA9IElOVEVMX0dVQ19SRVBPUlRfU1RB VFVTX1VOS05PV047Cit9CisKIC8qKgogICogaTkxNV9ndWNfc3VibWl0KCkgLSBTdWJtaXQgY29t bWFuZHMgdGhyb3VnaCBHdUMKICAqIEBlbmdpbmU6IGVuZ2luZSBhc3NvY2lhdGVkIHdpdGggdGhl IGNvbW1hbmRzCkBAIC01NzQsOCArNjc2LDcgQEAgc3RhdGljIHZvaWQgZ3VjX2FkZF9yZXF1ZXN0 KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKICAqLwogc3RhdGljIHZvaWQgaTkxNV9ndWNfc3VibWl0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0g JmRldl9wcml2LT5ndWM7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmVuZ2luZS0+aTkxNS0+ Z3VjOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0g JmVuZ2luZS0+ZXhlY2xpc3RzOwogCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZXhlY2xp c3RzLT5wb3J0OwogCXVuc2lnbmVkIGludCBuOwpAQCAtNTg4LDggKzY4OSw3IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWlm IChycSAmJiBjb3VudCA9PSAwKSB7CiAJCQlwb3J0X3NldCgmcG9ydFtuXSwgcG9ydF9wYWNrKHJx LCArK2NvdW50KSk7CiAKLQkJCWlmIChpOTE1X3ZtYV9pc19tYXBfYW5kX2ZlbmNlYWJsZShycS0+ cmluZy0+dm1hKSkKLQkJCQlQT1NUSU5HX1JFQURfRlcoR1VDX1NUQVRVUyk7CisJCQlmbHVzaF9n Z3R0X3dyaXRlcyhycS0+cmluZy0+dm1hKTsKIAogCQkJZ3VjX2FkZF9yZXF1ZXN0KGd1YywgcnEp OwogCQl9CkBAIC02MTcsMTMgKzcxNywzMiBAQCBzdGF0aWMgdm9pZCBpOTE1X2d1Y19kZXF1ZXVl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlib29sIHN1Ym1pdCA9IGZhbHNlOwog CXN0cnVjdCByYl9ub2RlICpyYjsKIAotCWlmIChwb3J0X2lzc2V0KHBvcnQpKQotCQlwb3J0Kys7 Ci0KIAlzcGluX2xvY2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKIAlyYiA9IGV4ZWNs aXN0cy0+Zmlyc3Q7CiAJR0VNX0JVR19PTihyYl9maXJzdCgmZXhlY2xpc3RzLT5xdWV1ZSkgIT0g cmIpOwotCXdoaWxlIChyYikgeworCisJaWYgKCFyYikKKwkJZ290byB1bmxvY2s7CisKKwlpZiAo SEFTX0xPR0lDQUxfUklOR19QUkVFTVBUSU9OKGVuZ2luZS0+aTkxNSkgJiYgcG9ydF9pc3NldChw b3J0KSkgeworCQlzdHJ1Y3QgZ3VjX3ByZWVtcHRfd29yayAqcHJlZW1wdF93b3JrID0KKwkJCSZl bmdpbmUtPmk5MTUtPmd1Yy5wcmVlbXB0X3dvcmtbZW5naW5lLT5pZF07CisKKwkJaWYgKHJiX2Vu dHJ5KHJiLCBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCwgbm9kZSktPnByaW9yaXR5ID4KKwkJICAgIG1h eChwb3J0X3JlcXVlc3QocG9ydCktPnByaW90cmVlLnByaW9yaXR5LCAwKSkgeworCQkJZXhlY2xp c3RzX3NldF9hY3RpdmUoZXhlY2xpc3RzLAorCQkJCQkgICAgIEVYRUNMSVNUU19BQ1RJVkVfUFJF RU1QVCk7CisJCQlxdWV1ZV93b3JrKGVuZ2luZS0+aTkxNS0+Z3VjLnByZWVtcHRfd3EsCisJCQkJ ICAgJnByZWVtcHRfd29yay0+d29yayk7CisJCQlnb3RvIHVubG9jazsKKwkJfSBlbHNlIGlmIChw b3J0X2lzc2V0KGxhc3RfcG9ydCkpIHsKKwkJCWdvdG8gdW5sb2NrOworCQl9CisKKwkJcG9ydCsr OworCX0KKworCWRvIHsKIAkJc3RydWN0IGk5MTVfcHJpb2xpc3QgKnAgPSByYl9lbnRyeShyYiwg dHlwZW9mKCpwKSwgbm9kZSk7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEsICpy bjsKIApAQCAtNjUzLDcgKzc3Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2RlcXVldWUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlJTklUX0xJU1RfSEVBRCgmcC0+cmVxdWVz dHMpOwogCQlpZiAocC0+cHJpb3JpdHkgIT0gSTkxNV9QUklPUklUWV9OT1JNQUwpCiAJCQlrbWVt X2NhY2hlX2ZyZWUoZW5naW5lLT5pOTE1LT5wcmlvcml0aWVzLCBwKTsKLQl9CisJfSB3aGlsZSAo cmIpOwogZG9uZToKIAlleGVjbGlzdHMtPmZpcnN0ID0gcmI7CiAJaWYgKHN1Ym1pdCkgewpAQCAt NjYxLDYgKzc4MCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2RlcXVldWUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCQlleGVjbGlzdHNfc2V0X2FjdGl2ZShleGVjbGlzdHMsIEVY RUNMSVNUU19BQ1RJVkVfVVNFUik7CiAJCWk5MTVfZ3VjX3N1Ym1pdChlbmdpbmUpOwogCX0KK3Vu bG9jazoKIAlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwogfQogCkBA IC02NjksOCArNzg5LDYgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfaXJxX2hhbmRsZXIodW5zaWdu ZWQgbG9uZyBkYXRhKQogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdpbmUgPSAo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqKWRhdGE7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVj bGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CiAJc3RydWN0IGV4 ZWNsaXN0X3BvcnQgKnBvcnQgPSBleGVjbGlzdHMtPnBvcnQ7Ci0JY29uc3Qgc3RydWN0IGV4ZWNs aXN0X3BvcnQgKiBjb25zdCBsYXN0X3BvcnQgPQotCQkmZXhlY2xpc3RzLT5wb3J0W2V4ZWNsaXN0 cy0+cG9ydF9tYXNrXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxOwogCiAJcnEg PSBwb3J0X3JlcXVlc3QoJnBvcnRbMF0pOwpAQCAtNjg1LDcgKzgwMywxOSBAQCBzdGF0aWMgdm9p ZCBpOTE1X2d1Y19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCiAJaWYgKCFycSkKIAkJ ZXhlY2xpc3RzX2NsZWFyX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfVVNFUik7 CiAKLQlpZiAoIXBvcnRfaXNzZXQobGFzdF9wb3J0KSkKKwlpZiAoZXhlY2xpc3RzX2lzX2FjdGl2 ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkgJiYKKwkgICAgaW50ZWxfcmVh ZF9zdGF0dXNfcGFnZShlbmdpbmUsIEk5MTVfR0VNX0hXU19QUkVFTVBUX0lOREVYKSA9PQorCSAg ICBHVUNfUFJFRU1QVF9GSU5JU0hFRCkgeworCQlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVz dHMoJmVuZ2luZS0+ZXhlY2xpc3RzKTsKKwkJZXhlY2xpc3RzX3Vud2luZF9pbmNvbXBsZXRlX3Jl cXVlc3RzKGV4ZWNsaXN0cyk7CisKKwkJd2FpdF9mb3JfZ3VjX3ByZWVtcHRfcmVwb3J0KGVuZ2lu ZSk7CisKKwkJZXhlY2xpc3RzX2NsZWFyX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJ VkVfUFJFRU1QVCk7CisJCWludGVsX3dyaXRlX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1f SFdTX1BSRUVNUFRfSU5ERVgsIDApOworCX0KKworCWlmICghZXhlY2xpc3RzX2lzX2FjdGl2ZShl eGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkpCiAJCWk5MTVfZ3VjX2RlcXVldWUo ZW5naW5lKTsKIH0KIApAQCAtMTA1Nyw2ICsxMTg3LDUxIEBAIHN0YXRpYyB2b2lkIGd1Y19hZHNf ZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVh c2UoJmd1Yy0+YWRzX3ZtYSk7CiB9CiAKK3N0YXRpYyBpbnQgZ3VjX3ByZWVtcHRfd29ya19jcmVh dGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCisJLyoKKwkgKiBFdmVuIHRob3VnaCBi b3RoIHNlbmRpbmcgR3VDIGFjdGlvbiwgYW5kIGFkZGluZyBhIG5ldyB3b3JraXRlbSB0bworCSAq IEd1QyB3b3JrcXVldWUgYXJlIHNlcmlhbGl6ZWQgKGVhY2ggd2l0aCBpdHMgb3duIGxvY2tpbmcp LCBzaW5jZQorCSAqIHdlJ3JlIHVzaW5nIG11dGxpcGxlIGVuZ2luZXMsIGl0J3MgcG9zc2libGUg dGhhdCB3ZSdyZSBnb2luZyB0bworCSAqIGlzc3VlIGEgcHJlZW1wdCByZXF1ZXN0IHdpdGggdHdv IChvciBtb3JlIC0gZWFjaCBmb3IgZGlmZmVyZW50CisJICogZW5naW5lKSB3b3JraXRlbXMgaW4g R3VDIHF1ZXVlLiBJbiB0aGlzIHNpdHVhdGlvbiwgR3VDIG1heSBzdWJtaXQKKwkgKiBhbGwgb2Yg dGhlbSwgd2hpY2ggd2lsbCBtYWtlIHVzIHZlcnkgY29uZnVzZWQuCisJICogT3VyIHByZWVtcHRp b24gY29udGV4dHMgbWF5IGV2ZW4gYWxyZWFkeSBiZSBjb21wbGV0ZSAtIGJlZm9yZSB3ZQorCSAq IGV2ZW4gaGFkIHRoZSBjaGFuY2UgdG8gc2VudCB0aGUgcHJlZW1wdCBhY3Rpb24gdG8gR3VDIS4g UmF0aGVyCisJICogdGhhbiBpbnRyb2R1Y2luZyB5ZXQgYW5vdGhlciBsb2NrLCB3ZSBjYW4ganVz dCB1c2Ugb3JkZXJlZCB3b3JrcXVldWUKKwkgKiB0byBtYWtlIHN1cmUgd2UncmUgYWx3YXlzIHNl bmRpbmcgYSBzaW5nbGUgcHJlZW1wdGlvbiByZXF1ZXN0IHdpdGggYQorCSAqIHNpbmdsZSB3b3Jr aXRlbS4KKwkgKi8KKwlndWMtPnByZWVtcHRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgi aTkxNS1ndWNfcHJlZW1wdCIsCisJCQkJCQkgIFdRX0hJR0hQUkkpOworCWlmICghZ3VjLT5wcmVl bXB0X3dxKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRl dl9wcml2LCBpZCkgeworCQlndWMtPnByZWVtcHRfd29ya1tpZF0uZW5naW5lID0gZW5naW5lOwor CQlJTklUX1dPUksoJmd1Yy0+cHJlZW1wdF93b3JrW2lkXS53b3JrLCBpbmplY3RfcHJlZW1wdF9j b250ZXh0KTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZ3VjX3ByZWVtcHRf d29ya19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOworCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKworCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkKKwkJY2FuY2VsX3dvcmtfc3luYygmZ3VjLT5wcmVl bXB0X3dvcmtbaWRdLndvcmspOworCisJZGVzdHJveV93b3JrcXVldWUoZ3VjLT5wcmVlbXB0X3dx KTsKKwlndWMtPnByZWVtcHRfd3EgPSBOVUxMOworfQorCiAvKgogICogU2V0IHVwIHRoZSBtZW1v cnkgcmVzb3VyY2VzIHRvIGJlIHNoYXJlZCB3aXRoIHRoZSBHdUMgKHZpYSB0aGUgR0dUVCkKICAq IGF0IGZpcm13YXJlIGxvYWRpbmcgdGltZS4KQEAgLTEwODEsMTIgKzEyNTYsMTggQEAgaW50IGk5 MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZXJyX3NoYXJlZF9kYXRhOwogCisJcmV0ID0gZ3VjX3By ZWVtcHRfd29ya19jcmVhdGUoZ3VjKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9sb2c7CisKIAly ZXQgPSBndWNfYWRzX2NyZWF0ZShndWMpOwogCWlmIChyZXQgPCAwKQotCQlnb3RvIGVycl9sb2c7 CisJCWdvdG8gZXJyX3dxOwogCiAJcmV0dXJuIDA7CiAKK2Vycl93cToKKwlndWNfcHJlZW1wdF93 b3JrX2Rlc3Ryb3koZ3VjKTsKIGVycl9sb2c6CiAJaW50ZWxfZ3VjX2xvZ19kZXN0cm95KGd1Yyk7 CiBlcnJfc2hhcmVkX2RhdGE6CkBAIC0xMTAxLDYgKzEyODIsNyBAQCB2b2lkIGk5MTVfZ3VjX3N1 Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0 IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CiAKIAlndWNfYWRzX2Rlc3Ryb3koZ3Vj KTsKKwlndWNfcHJlZW1wdF93b3JrX2Rlc3Ryb3koZ3VjKTsKIAlpbnRlbF9ndWNfbG9nX2Rlc3Ry b3koZ3VjKTsKIAlndWNfc2hhcmVkX2RhdGFfZGVzdHJveShndWMpOwogCWd1Y19zdGFnZV9kZXNj X3Bvb2xfZGVzdHJveShndWMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAppbmRleCA2Y2E1NWM1 YmVkM2MuLjYwN2UwMjUwMDI2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKQEAgLTM0LDYg KzM0LDExIEBACiAjaW5jbHVkZSAiaTkxNV9ndWNfcmVnLmgiCiAjaW5jbHVkZSAiaTkxNV92bWEu aCIKIAorc3RydWN0IGd1Y19wcmVlbXB0X3dvcmsgeworCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3Jr OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKK307CisKIC8qCiAgKiBUb3AgbGV2 ZWwgc3RydWN0dXJlIG9mIEd1Qy4gSXQgaGFuZGxlcyBmaXJtd2FyZSBsb2FkaW5nIGFuZCBtYW5h Z2VzIGNsaWVudAogICogcG9vbCBhbmQgZG9vcmJlbGxzLiBpbnRlbF9ndWMgb3ducyBhIGk5MTVf Z3VjX2NsaWVudCB0byByZXBsYWNlIHRoZSBsZWdhY3kKQEAgLTYwLDYgKzY1LDkgQEAgc3RydWN0 IGludGVsX2d1YyB7CiAJc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZXhlY2J1Zl9jbGllbnQ7CiAJ c3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqcHJlZW1wdF9jbGllbnQ7CiAKKwlzdHJ1Y3QgZ3VjX3By ZWVtcHRfd29yayBwcmVlbXB0X3dvcmtbSTkxNV9OVU1fRU5HSU5FU107CisJc3RydWN0IHdvcmtx dWV1ZV9zdHJ1Y3QgKnByZWVtcHRfd3E7CisKIAlERUNMQVJFX0JJVE1BUChkb29yYmVsbF9iaXRt YXAsIEdVQ19OVU1fRE9PUkJFTExTKTsKIAkvKiBDeWNsaWMgY291bnRlciBtb2QgcGFnZXNpemUJ Ki8KIAl1MzIgZGJfY2FjaGVsaW5lOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBiNWQz ODJlZjhkODUuLjY4NDBlYzhkYjAzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTM4 NSw3ICszODUsNyBAQCBzdGF0aWMgdm9pZCBfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkCit2b2lk CiBleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPQpAQCAtNjk2LDcgKzY5Niw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkCit2b2lk CiBleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9leGVj bGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCiB7CiAJc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQg PSBleGVjbGlzdHMtPnBvcnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IDY4OWZkZTFh NjNhOS4uMTcxODJjZTI5Njc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAtMTA3LDcg KzEwNyw2IEBAIGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4LAogCXJldHVybiBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfZGVzYzsKIH0K IAotCiAvKiBFeGVjbGlzdHMgKi8KIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3Rz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgaW50IGVuYWJsZV9l eGVjbGlzdHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDRh NWEwODk4NTMyOC4uNjlhZDg3NWZkMDExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCkBAIC01NTcsNiArNTU3LDEyIEBAIGV4ZWNsaXN0c19pc19hY3RpdmUoY29uc3Qg c3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cywKIAlyZXR1cm4gdGVzdF9i aXQoYml0LCAodW5zaWduZWQgbG9uZyAqKSZleGVjbGlzdHMtPmFjdGl2ZSk7CiB9CiAKK3ZvaWQK K2V4ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNs aXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyk7CisKK3ZvaWQKK2V4ZWNsaXN0c191bndpbmRfaW5jb21w bGV0ZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKTsK Kwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKIGV4ZWNsaXN0c19udW1fcG9ydHMoY29uc3Qg c3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCiB7Ci0tIAoy LjEzLjYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=