From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 14/18] drm/i915/execlists: Direct submission of new requests (avoid tasklet/ksoftirqd) Date: Fri, 25 May 2018 10:32:02 +0100 Message-ID: <20180525093206.1919-15-chris@chris-wilson.co.uk> References: <20180525093206.1919-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id BB3FE6E916 for ; Fri, 25 May 2018 09:32:43 +0000 (UTC) In-Reply-To: <20180525093206.1919-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QmFjayBpbiBjb21taXQgMjdhZjVlZWE1NGQxICgiZHJtL2k5MTU6IE1vdmUgZXhlY2xpc3RzIGly cSBoYW5kbGVyIHRvIGEKYm90dG9tIGhhbGYiKSwgd2UgY2FtZSB0byB0aGUgY29uY2x1c2lvbiB0 aGF0IHJ1bm5pbmcgb3VyIENTQiBwcm9jZXNzaW5nCmFuZCBFTFNQIHN1Ym1pc3Npb24gZnJvbSBp bnNpZGUgdGhlIGlycSBoYW5kbGVyIHdhcyBhIGJhZCBpZGVhLiBBIHJlYWxseQpiYWQgaWRlYSBh cyB3ZSBjb3VsZCBpbXBvc2UgbmVhcmx5IDFzIGxhdGVuY3kgb24gb3RoZXIgdXNlcnMgb2YgdGhl CnN5c3RlbSwgb24gYXZlcmFnZSEgRGVmZXJyaW5nIG91ciB3b3JrIHRvIGEgdGFza2xldCBhbGxv d2VkIHVzIHRvIGRvIHRoZQpwcm9jZXNzaW5nIHdpdGggaXJxcyBlbmFibGVkLCByZWR1Y2luZyB0 aGUgaW1wYWN0IHRvIGFuIGF2ZXJhZ2Ugb2YgYWJvdXQKNTB1cy4KCldlIGhhdmUgc2luY2UgZXJh ZGljYXRlZCB0aGUgdXNlIG9mIGZvcmNld2FrZWQgbW1pbyBmcm9tIGluc2lkZSB0aGUgQ1NCCnBy b2Nlc3NpbmcgYW5kIEVMU1Agc3VibWlzc2lvbiwgYnJpbmdpbmcgdGhlIGltcGFjdCBkb3duIHRv IGFyb3VuZCA1dXMKKG9uIEthYnlsYWtlKTsgYW4gb3JkZXIgb2YgbWFnbml0dWRlIGJldHRlciB0 aGFuIG91ciBtZWFzdXJlbWVudHMgMgp5ZWFycyBhZ28gb24gQnJvYWR3ZWxsIGFuZCBvbmx5IGFi b3V0IDJ4IHdvcnNlIG9uIGF2ZXJhZ2UgdGhhbiB0aGUKZ2VtX3N5c2xhdGVuY3kgb24gYW4gdW5s YWRlbiBzeXN0ZW0uCgpJbiB0aGlzIGl0ZXJhdGlvbiBvZiB0aGUgdGFza2xldC12cy1kaXJlY3Qg c3VibWlzc2lvbiBkZWJhdGUsIHdlIHNlZWsgYQpjb21wcm9taXNlIHdoZXJlIGJ5IHdlIHN1Ym1p dCBuZXcgcmVxdWVzdHMgaW1tZWRpYXRlbHkgdG8gdGhlIEhXIGJ1dApkZWZlciBwcm9jZXNzaW5n IHRoZSBDUyBpbnRlcnJ1cHQgb250byBhIHRhc2tsZXQuIFdlIGdhaW4gdGhlIGFkdmFudGFnZQpv ZiBsb3ctbGF0ZW5jeSBhbmQga3NvZnRpcnFkIGF2b2lkYW5jZSB3aGVuIHdha2luZyB1cCB0aGUg SFcsIHdoaWxlCmF2b2lkaW5nIHRoZSBzeXN0ZW0td2lkZSBzdGFydmF0aW9uIG9mIG91ciBDUyBp cnEtc3Rvcm1zLgoKQ29tcGFyaW5nIHRoZSBpbXBhY3Qgb24gdGhlIG1heGltdW0gbGF0ZW5jeSBv YnNlcnZlZCAodGhhdCBpcyB0aGUgdGltZSBzdG9sZW4KZnJvbSBhbiBSVCBwcm9jZXNzKSBvdmVy IGEgMTIwcyBpbnRlcnZhbCwgcmVwZWF0ZWQgc2V2ZXJhbCB0aW1lcyAodXNpbmcKZ2VtX3N5c2xh dGVuY3ksIHNpbWlsYXIgdG8gUlQncyBjeWNsaWN0ZXN0KSB3aGlsZSB0aGUgc3lzdGVtIGlzIGZ1 bGx5CmxhZGVuIHdpdGggaTkxNSBub3BzLCB3ZSBzZWUgdGhhdCBkaXJlY3Qgc3VibWlzc2lvbiBh biBhY3R1YWxseSBpbXByb3ZlCnRoZSB3b3JzZSBjYXNlLgoKTWF4aW11bSBsYXRlbmN5IGluIG1p Y3Jvc2Vjb25kcyBvZiBhIHRoaXJkIHBhcnR5IFJUIHRocmVhZAooZ2VtX3N5c2xhdGVuY3kgLXQg MTIwIC1mIDIpCiAgeCBBbHdheXMgdXNpbmcgdGFza2xldHMgKGEgY291cGxlIG9mID4xMDAwdXMg b3V0bGllcnMgcmVtb3ZlZCkKICArIE9ubHkgdXNpbmcgdGFza2xldHMgZnJvbSBDUyBpcnEsIGRp cmVjdCBzdWJtaXNzaW9uIG9mIHJlcXVlc3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnwgICAgICAgICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CnwgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgKyAg ICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8CnwgICAgICAgICAgKyArICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgKyAgKyArICAgICArICB4ICAgICB4ICAgICB4 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICArKysgKyArICAg ICArICB4ICB4ICB4ICB4ICB4ICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 CnwgICAgICArKysgKyArKyAgKyArICAqeCB4ICB4ICB4ICB4ICB4ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8CnwgICAgICArKysgKyArKyAgKyAqICAqeCB4ICAqICB4ICB4ICB4 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgKyArKysgKyArKyAgKiAq ICsqeHh4ICAqICB4ICB4ICB4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cnwg ICAgKiArKysgKyArKysrKiAqeCsqKnh4KyAqICB4ICB4IHh4eHggeCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CnwgICAqKngrKysrKisrKiorKngqeCoqKip4KyAqICt4IHh4IHh4eHgg eCAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICB8Cnx4KiAqKioqKiorKioqKioqKioqKioq KioqKysqKyoqKnh4eHh4eCogeHgqeCAgICAgeHh4ICsgICAgICAgICAgICAgICAgeCt8CnwgICAg ICAgICAgICAgfF9fX19fX19fX19NQV9fX19fX19fX19ffCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CnwgICAgICB8X19fX19fTV9fQV9fX19fX19ffCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICBOICAg ICAgICAgICBNaW4gICAgICAgICAgIE1heCAgICAgICAgTWVkaWFuICAgICAgICAgICBBdmcgICAg ICAgIFN0ZGRldgp4IDExOCAgICAgICAgICAgIDkxICAgICAgICAgICAxODYgICAgICAgICAgIDEy NCAgICAgMTI1LjI4ODE0ICAgICAxNi4yNzkxMzcKKyAxMjAgICAgICAgICAgICA5MiAgICAgICAg ICAgMTg3ICAgICAgICAgICAxMDkgICAgIDExMi4wMDgzMyAgICAgMTMuNDU4NjE3CkRpZmZlcmVu Y2UgYXQgOTUuMCUgY29uZmlkZW5jZQoJLTEzLjI3OTggKy8tIDMuNzkyMTkKCS0xMC41OTk0JSAr Ly0gMy4wMjY3NyUKCShTdHVkZW50J3MgdCwgcG9vbGVkIHMgPSAxNC45MjM3KQoKSG93ZXZlciB0 aGUgbWVhbiBsYXRlbmN5IGlzIGFkdmVyc2VseSBhZmZlY3RlZDoKCk1lYW4gbGF0ZW5jeSBpbiBt aWNyb3NlY29uZHMgb2YgYSB0aGlyZCBwYXJ0eSBSVCB0aHJlYWQKKGdlbV9zeXNsYXRlbmN5IC10 IDEyMCAtZiAxKQogIHggQWx3YXlzIHVzaW5nIHRhc2tsZXRzCiAgKyBPbmx5IHVzaW5nIHRhc2ts ZXRzIGZyb20gQ1MgaXJxLCBkaXJlY3Qgc3VibWlzc2lvbiBvZiByZXF1ZXN0cworLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKwp8ICAgICAgICAgICB4eHh4eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKyAgICsrICAgICAgICAgfAp8ICAgICAgICAgICB4eHh4eHggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAgICsrICAgICAgICAgfAp8ICAgICAgICAgICB4 eHh4eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKysrICsrICAgICAg ICAgfAp8ICAgICAgICAgICB4eHh4eHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsrKysrICsrICAgICAgICAgfAp8ICAgICAgICAgICB4eHh4eHh4ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsrKysrICsrICAgICAgICAgfAp8ICAgICAgICAgICB4eHh4 eHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrKysrICsrKyAgICAgICAg fAp8ICAgICAgICAgICB4eHh4eHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr ICsrKysrKysrKysgICAgICAgfAp8ICAgICAgICAgICB4eHh4eHh4eCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsrICsrKysrKysrKysgICAgICAgfAp8ICAgICAgICAgICB4eHh4eHh4 eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrICsrKysrKysrKysgICAgICAgfAp8 ICAgICAgICAgIHh4eHh4eHh4eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrKysr KysrKysrKysrKyAgICAgfAp8ICAgICAgICAgeHh4eHh4eHh4eHggICAgeCAgICAgICAgICAgICAg ICAgICAgICAgICAgICsrKysrKysrKysrKysrKyAgICAgfAp8eCAgICAgICB4eHh4eHh4eHh4eHh4 ICAgeCAgICAgICAgICAgKyAgICAgICAgICAgICsgKysrKysrKysrKysrKysrKysrICArfAp8ICAg ICAgICAgICB8X19BX198ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfF9fX19BX19ffCAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgTiAg ICAgICAgICAgTWluICAgICAgICAgICBNYXggICAgICAgIE1lZGlhbiAgICAgICAgICAgQXZnICAg ICAgICBTdGRkZXYKeCAxMjAgICAgICAgICAzLjUwNiAgICAgICAgIDMuNzI3ICAgICAgICAgMy42 MzEgICAgIDMuNjMyMTQxNyAgICAwLjAyNzczMTA5CisgMTIwICAgICAgICAgMy44MzQgICAgICAg ICA0LjE0OSAgICAgICAgIDQuMDM5ICAgICA0LjAzNzUxNjcgICAwLjA0MTIyMTY3NgpEaWZmZXJl bmNlIGF0IDk1LjAlIGNvbmZpZGVuY2UKCTAuNDA1Mzc1ICsvLSAwLjAwODg4OTEzCgkxMS4xNjA4 JSArLy0gMC4yNDQ3MzUlCgkoU3R1ZGVudCdzIHQsIHBvb2xlZCBzID0gMC4wMzUxMykKCkhvd2V2 ZXIsIHNpbmNlIHRoZSBtZWFuIGxhdGVuY3kgY29ycmVzcG9uZHMgdG8gdGhlIGFtb3VudCBvZiBp cnFzb2ZmCnByb2Nlc3Npbmcgd2UgaGF2ZSB0byBkbyBmb3IgYSBDUyBpbnRlcnJ1cHQsIHdlIG9u bHkgbmVlZCB0byBzcGVlZCB0aGF0CnVwIHRvIGJlbmVmaXQgbm90IGp1c3Qgc3lzdGVtIGxhdGVu Y3kgYnV0IG91ciBvd24gdGhyb3VnaHB1dC4KCnYyOiBSZW1lbWJlciB0byBkZWZlciBzdWJtaXNz aW9ucyB3aGVuIHVuZGVyIHJlc2V0Lgp2NDogT25seSB1c2UgZGlyZWN0IHN1Ym1pc3Npb24gZm9y IG5ldyByZXF1ZXN0cwoKVGVzdGNhc2U6IGlndC9nZW1fZXhlY19sYXRlbmN5LypydGhvZyoKUmVm ZXJlbmNlczogMjdhZjVlZWE1NGQxICgiZHJtL2k5MTU6IE1vdmUgZXhlY2xpc3RzIGlycSBoYW5k bGVyIHRvIGEgYm90dG9tIGhhbGYiKQpTdWdnZXN0ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oICAgICAgICAgfCAg IDUgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgIHwgIDExICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCAgIDggKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8IDE0NyArKysrKysrKysrKysrKy0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgMSAtCiA1 IGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5oCmluZGV4IDI2MWRhNTc3ODI5YS4uNzg5MmFjNzczOTE2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmgKQEAgLTg4LDQgKzg4LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIF9f dGFza2xldF9lbmFibGVfc3luY19vbmNlKHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdCkKIAkJdGFz a2xldF9raWxsKHQpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgX190YXNrbGV0X2lzX2VuYWJs ZWQoY29uc3Qgc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KQoreworCXJldHVybiBsaWtlbHkoIWF0 b21pY19yZWFkKCZ0LT5jb3VudCkpOworfQorCiAjZW5kaWYgLyogX19JOTE1X0dFTV9IX18gKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IGY5YmMzYWFhOTBkMC4uM2E4ZWFjYWI1MTcyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTE0NjIsMTQgKzE0NjIsMTAgQEAgc3RhdGljIHZv aWQgc25iX2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IHN0YXRpYyB2b2lkCiBnZW44X2NzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwgdTMyIGlpcikKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNv bnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKIAlib29sIHRhc2tsZXQgPSBmYWxz ZTsKIAotCWlmIChpaXIgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQpIHsKLQkJaWYgKFJF QURfT05DRShlbmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUpKQotCQkJdGFza2xldCA9ICF0ZXN0X2Fu ZF9zZXRfYml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsCi0JCQkJCQkgICAgJmVuZ2luZS0+aXJxX3Bv c3RlZCk7Ci0JfQorCWlmIChpaXIgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQpCisJCXRh c2tsZXQgPSB0cnVlOwogCiAJaWYgKGlpciAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCkgewog CQlub3RpZnlfcmluZyhlbmdpbmUpOwpAQCAtMTQ3Nyw3ICsxNDczLDcgQEAgZ2VuOF9jc19pcnFf aGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBpaXIpCiAJfQogCiAJ aWYgKHRhc2tsZXQpCi0JCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmV4ZWNsaXN0cy0+dGFza2xldCk7 CisJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOwogfQog CiBzdGF0aWMgdm9pZCBnZW44X2d0X2lycV9hY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCkBAIC0yMTg1LDcgKzIxODEsNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY2hlcnJ5dmlld19p cnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAKIAkJSTkxNV9XUklURShWTFZfSUVSLCBp ZXIpOwogCQlJOTE1X1dSSVRFKEdFTjhfTUFTVEVSX0lSUSwgR0VOOF9NQVNURVJfSVJRX0NPTlRS T0wpOwotCQlQT1NUSU5HX1JFQUQoR0VOOF9NQVNURVJfSVJRKTsKIAogCQlnZW44X2d0X2lycV9o YW5kbGVyKGRldl9wcml2LCBtYXN0ZXJfY3RsLCBndF9paXIpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IGJjMDE5MzE5OWEwMy4uNDM4ODBiZjBmNTI5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMTMyOSwxMiArMTMyOSwxMCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfcHJpbnRfcmVnaXN0ZXJzKGNvbnN0IHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJcHRyID0gSTkxNV9SRUFEKFJJTkdfQ09OVEVYVF9T VEFUVVNfUFRSKGVuZ2luZSkpOwogCQlyZWFkID0gR0VOOF9DU0JfUkVBRF9QVFIocHRyKTsKIAkJ d3JpdGUgPSBHRU44X0NTQl9XUklURV9QVFIocHRyKTsKLQkJZHJtX3ByaW50ZihtLCAiXHRFeGVj bGlzdCBDU0IgcmVhZCAlZCBbJWQgY2FjaGVkXSwgd3JpdGUgJWQgWyVkIGZyb20gaHdzXSwgaW50 ZXJydXB0IHBvc3RlZD8gJXMsIHRhc2tsZXQgcXVldWVkPyAlcyAoJXMpXG4iLAorCQlkcm1fcHJp bnRmKG0sICJcdEV4ZWNsaXN0IENTQiByZWFkICVkIFslZCBjYWNoZWRdLCB3cml0ZSAlZCBbJWQg ZnJvbSBod3NdLCB0YXNrbGV0IHF1ZXVlZD8gJXMgKCVzKVxuIiwKIAkJCSAgIHJlYWQsIGV4ZWNs aXN0cy0+Y3NiX2hlYWQsCiAJCQkgICB3cml0ZSwKIAkJCSAgIGludGVsX3JlYWRfc3RhdHVzX3Bh Z2UoZW5naW5lLCBpbnRlbF9od3NfY3NiX3dyaXRlX2luZGV4KGVuZ2luZS0+aTkxNSkpLAotCQkJ ICAgeWVzbm8odGVzdF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwKLQkJCQkJICAmZW5naW5lLT5p cnFfcG9zdGVkKSksCiAJCQkgICB5ZXNubyh0ZXN0X2JpdChUQVNLTEVUX1NUQVRFX1NDSEVELAog CQkJCQkgICZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0LnN0YXRlKSksCiAJCQkgICBlbmFibGVk ZGlzYWJsZWQoIWF0b21pY19yZWFkKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0LmNvdW50KSkp OwpAQCAtMTUxNSwxMSArMTUxMyw5IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCXNwaW5fdW5sb2NrKCZiLT5yYl9sb2NrKTsKIAlsb2Nh bF9pcnFfcmVzdG9yZShmbGFncyk7CiAKLQlkcm1fcHJpbnRmKG0sICJJUlE/IDB4JWx4IChicmVh ZGNydW1icz8gJXMpIChleGVjbGlzdHM/ICVzKVxuIiwKKwlkcm1fcHJpbnRmKG0sICJJUlE/IDB4 JWx4IChicmVhZGNydW1icz8gJXMpXG4iLAogCQkgICBlbmdpbmUtPmlycV9wb3N0ZWQsCiAJCSAg IHllc25vKHRlc3RfYml0KEVOR0lORV9JUlFfQlJFQURDUlVNQiwKLQkJCQkgICZlbmdpbmUtPmly cV9wb3N0ZWQpKSwKLQkJICAgeWVzbm8odGVzdF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwKIAkJ CQkgICZlbmdpbmUtPmlycV9wb3N0ZWQpKSk7CiAKIAlkcm1fcHJpbnRmKG0sICJIV1NQOlxuIik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDcxNjkzMDA4YjVkMC4uYzg4ZWE4MDc5NDVh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNTU3LDEzICs1NTcsMTUgQEAgc3RhdGlj IHZvaWQgY29tcGxldGVfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xp c3RzICpleGVjbGlzdHMpCiB7CiAJR0VNX0JVR19PTighZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVj bGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkpOwogCisJX191bndpbmRfaW5jb21wbGV0 ZV9yZXF1ZXN0cyhjb250YWluZXJfb2YoZXhlY2xpc3RzLAorCQkJCQkJICB0eXBlb2Yoc3RydWN0 IGludGVsX2VuZ2luZV9jcyksCisJCQkJCQkgIGV4ZWNsaXN0cykpOwogCWV4ZWNsaXN0c19jYW5j ZWxfcG9ydF9yZXF1ZXN0cyhleGVjbGlzdHMpOwotCWV4ZWNsaXN0c191bndpbmRfaW5jb21wbGV0 ZV9yZXF1ZXN0cyhleGVjbGlzdHMpOwogCiAJZXhlY2xpc3RzX2NsZWFyX2FjdGl2ZShleGVjbGlz dHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9fZXhlY2xp c3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQg ZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0 cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ ZXhlY2xpc3RzOwogCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0 OwpAQCAtNTc1LDcgKzU3NywxMSBAQCBzdGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19kZXF1ZXVlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVu Z2luZS0+dGltZWxpbmUubG9jayk7CiAKLQkvKiBIYXJkd2FyZSBzdWJtaXNzaW9uIGlzIHRocm91 Z2ggMiBwb3J0cy4gQ29uY2VwdHVhbGx5IGVhY2ggcG9ydAorCUdFTV9CVUdfT04oZXhlY2xpc3Rz X2lzX2FjdGl2ZSgmZW5naW5lLT5leGVjbGlzdHMsCisJCQkJICAgICAgIEVYRUNMSVNUU19BQ1RJ VkVfUFJFRU1QVCkpOworCisJLyoKKwkgKiBIYXJkd2FyZSBzdWJtaXNzaW9uIGlzIHRocm91Z2gg MiBwb3J0cy4gQ29uY2VwdHVhbGx5IGVhY2ggcG9ydAogCSAqIGhhcyBhIChSSU5HX1NUQVJULCBS SU5HX0hFQUQsIFJJTkdfVEFJTCkgdHVwbGUuIFJJTkdfU1RBUlQgaXMKIAkgKiBzdGF0aWMgZm9y IGEgY29udGV4dCwgYW5kIHVuaXF1ZSB0byBlYWNoLCBzbyB3ZSBvbmx5IGV4ZWN1dGUKIAkgKiBy ZXF1ZXN0cyBiZWxvbmdpbmcgdG8gYSBzaW5nbGUgY29udGV4dCBmcm9tIGVhY2ggcmluZy4gUklO R19IRUFECkBAIC03NjUsMTUgKzc3MSw2IEBAIHN0YXRpYyB2b2lkIF9fZXhlY2xpc3RzX2RlcXVl dWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkgICAhcG9ydF9pc3NldChlbmdp bmUtPmV4ZWNsaXN0cy5wb3J0KSk7CiB9CiAKLXN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdz OwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwot CV9fZXhlY2xpc3RzX2RlcXVldWUoZW5naW5lKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZl bmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKLX0KLQogdm9pZAogZXhlY2xpc3RzX2NhbmNl bF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhl Y2xpc3RzKQogewpAQCAtODcwLDE0ICs4NjcsNiBAQCBzdGF0aWMgdm9pZCByZXNldF9pcnEoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXN5bmNocm9uaXplX2hhcmRpcnEoZW5naW5l LT5pOTE1LT5kcm0uaXJxKTsKIAogCWNsZWFyX2d0aWlyKGVuZ2luZSk7Ci0KLQkvKgotCSAqIFRo ZSBwb3J0IGlzIGNoZWNrZWQgcHJpb3IgdG8gc2NoZWR1bGluZyBhIHRhc2tsZXQsIGJ1dAotCSAq IGp1c3QgaW4gY2FzZSB3ZSBoYXZlIHN1c3BlbmRlZCB0aGUgdGFza2xldCB0byBkbyB0aGUKLQkg KiB3ZWRnaW5nIG1ha2Ugc3VyZSB0aGF0IHdoZW4gaXQgd2FrZXMsIGl0IGRlY2lkZXMgdGhlcmUK LQkgKiBpcyBubyB3b3JrIHRvIGRvIGJ5IGNsZWFyaW5nIHRoZSBpcnFfcG9zdGVkIGJpdC4KLQkg Ki8KLQljbGVhcl9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCk7 CiB9CiAKIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtOTUwLDYgKzkzOSwxMiBAQCBzdGF0aWMgdm9pZCBleGVj bGlzdHNfY2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAls b2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbAorcmVzZXRf aW5fcHJvZ3Jlc3MoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0 cykKK3sKKwlyZXR1cm4gdW5saWtlbHkoIV9fdGFza2xldF9pc19lbmFibGVkKCZleGVjbGlzdHMt PnRhc2tsZXQpKTsKK30KKwogc3RhdGljIHZvaWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29u c3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwpAQCAtOTU3LDEwICs5NTIsNiBAQCBz dGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ Y29uc3QgdTMyICogY29uc3QgYnVmID0gZXhlY2xpc3RzLT5jc2Jfc3RhdHVzOwogCXU4IGhlYWQs IHRhaWw7CiAKLQkvKiBDbGVhciBiZWZvcmUgcmVhZGluZyB0byBjYXRjaCBuZXcgaW50ZXJydXB0 cyAqLwotCWNsZWFyX2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVk KTsKLQlzbXBfbWJfX2FmdGVyX2F0b21pYygpOwotCiAJLyogTm90ZSB0aGF0IGNzYl93cml0ZSwg Y3NiX3N0YXR1cyBtYXkgYmUgZWl0aGVyIGluIEhXU1Agb3IgbW1pbyAqLwogCWhlYWQgPSBleGVj bGlzdHMtPmNzYl9oZWFkOwogCXRhaWwgPSBSRUFEX09OQ0UoKmV4ZWNsaXN0cy0+Y3NiX3dyaXRl KTsKQEAgLTEwOTAsMTkgKzEwODEsOSBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZXhlY2xpc3RzLT5jc2JfaGVhZCA9IGhlYWQ7CiB9 CiAKLS8qCi0gKiBDaGVjayB0aGUgdW5yZWFkIENvbnRleHQgU3RhdHVzIEJ1ZmZlcnMgYW5kIG1h bmFnZSB0aGUgc3VibWlzc2lvbiBvZiBuZXcKLSAqIGNvbnRleHRzIHRvIHRoZSBFTFNQIGFjY29y ZGluZ2x5LgotICovCi1zdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVu c2lnbmVkIGxvbmcgZGF0YSkKK3N0YXRpYyB2b2lkIF9fZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFz a2xldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpjb25zdCBlbmdpbmUpCiB7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICop ZGF0YTsKLQotCUdFTV9UUkFDRSgiJXMgYXdha2U/PSVkLCBhY3RpdmU9JXgsIGlycS1wb3N0ZWQ/ PSVkXG4iLAotCQkgIGVuZ2luZS0+bmFtZSwKLQkJICBlbmdpbmUtPmk5MTUtPmd0LmF3YWtlLAot CQkgIGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSwKLQkJICB0ZXN0X2JpdChFTkdJTkVfSVJRX0VY RUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVkKSk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5n aW5lLT50aW1lbGluZS5sb2NrKTsKIAogCS8qCiAJICogV2UgY2FuIHNraXAgYWNxdWlyaW5nIGlu dGVsX3J1bnRpbWVfcG1fZ2V0KCkgaGVyZSBhcyBpdCB3YXMgdGFrZW4KQEAgLTExMTQsMTggKzEw OTUsMzIgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25l ZCBsb25nIGRhdGEpCiAJICovCiAJR0VNX0JVR19PTighZW5naW5lLT5pOTE1LT5ndC5hd2FrZSk7 CiAKLQkvKgotCSAqIFByZWZlciBkb2luZyB0ZXN0X2FuZF9jbGVhcl9iaXQoKSBhcyBhIHR3byBz dGFnZSBvcGVyYXRpb24gdG8gYXZvaWQKLQkgKiBpbXBvc2luZyB0aGUgY29zdCBvZiBhIGxvY2tl ZCBhdG9taWMgdHJhbnNhY3Rpb24gd2hlbiBzdWJtaXR0aW5nIGEKLQkgKiBuZXcgcmVxdWVzdCAo b3V0c2lkZSBvZiB0aGUgY29udGV4dC1zd2l0Y2ggaW50ZXJydXB0KS4KLQkgKi8KLQlpZiAodGVz dF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCkpCi0JCXByb2Nl c3NfY3NiKGVuZ2luZSk7Ci0KKwlwcm9jZXNzX2NzYihlbmdpbmUpOwogCWlmICghZXhlY2xpc3Rz X2lzX2FjdGl2ZSgmZW5naW5lLT5leGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkp CiAJCWV4ZWNsaXN0c19kZXF1ZXVlKGVuZ2luZSk7CiB9CiAKKy8qCisgKiBDaGVjayB0aGUgdW5y ZWFkIENvbnRleHQgU3RhdHVzIEJ1ZmZlcnMgYW5kIG1hbmFnZSB0aGUgc3VibWlzc2lvbiBvZiBu ZXcKKyAqIGNvbnRleHRzIHRvIHRoZSBFTFNQIGFjY29yZGluZ2x5LgorICovCitzdGF0aWMgdm9p ZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKilkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlHRU1fVFJBQ0UoIiVzIGF3 YWtlPz0lZCwgYWN0aXZlPSV4XG4iLAorCQkgIGVuZ2luZS0+bmFtZSwKKwkJICBlbmdpbmUtPmk5 MTUtPmd0LmF3YWtlLAorCQkgIGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSk7CisKKwlzcGluX2xv Y2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisKKwlfX2V4ZWNsaXN0 c19zdWJtaXNzaW9uX3Rhc2tsZXQoZW5naW5lKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworfQorCiBzdGF0aWMgdm9pZCBxdWV1ZV9y ZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCSAgc3RydWN0IGk5MTVf c2NoZWRfbm9kZSAqbm9kZSwKIAkJCSAgaW50IHByaW8pCkBAIC0xMTM0LDE2ICsxMTI5LDMwIEBA IHN0YXRpYyB2b2lkIHF1ZXVlX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LAogCQkgICAgICAmbG9va3VwX3ByaW9saXN0KGVuZ2luZSwgcHJpbyktPnJlcXVlc3RzKTsKIH0K IAotc3RhdGljIHZvaWQgX19zdWJtaXRfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCBpbnQgcHJpbykKK3N0YXRpYyB2b2lkIF9fdXBkYXRlX3F1ZXVlKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwgaW50IHByaW8pCiB7CiAJZW5naW5lLT5leGVjbGlzdHMucXVldWVf cHJpb3JpdHkgPSBwcmlvOwotCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3Rz LnRhc2tsZXQpOworfQorCitzdGF0aWMgdm9pZCBfX3N1Ym1pdF9xdWV1ZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBj b25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CisKKwlpZiAocmVzZXRfaW5fcHJv Z3Jlc3MoZXhlY2xpc3RzKSkKKwkJcmV0dXJuOyAvKiBkZWZlciB1bnRpbCB3ZSByZXN0YXJ0IHRo ZSBlbmdpbmUgZm9sbG93aW5nIHJlc2V0ICovCisKKwlpZiAoZXhlY2xpc3RzLT50YXNrbGV0LmZ1 bmMgPT0gZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCkKKwkJX19leGVjbGlzdHNfc3VibWlz c2lvbl90YXNrbGV0KGVuZ2luZSk7CisJZWxzZQorCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZleGVj bGlzdHMtPnRhc2tsZXQpOwogfQogCiBzdGF0aWMgdm9pZCBzdWJtaXRfcXVldWUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcHJpbykKIHsKLQlpZiAocHJpbyA+IGVuZ2luZS0+ ZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5KQotCQlfX3N1Ym1pdF9xdWV1ZShlbmdpbmUsIHByaW8p OworCWlmIChwcmlvID4gZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHkpIHsKKwkJX191 cGRhdGVfcXVldWUoZW5naW5lLCBwcmlvKTsKKwkJX19zdWJtaXRfcXVldWUoZW5naW5lKTsKKwl9 CiB9CiAKIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpyZXF1ZXN0KQpAQCAtMTE1NSwxMSArMTE2NCwxMiBAQCBzdGF0aWMgdm9pZCBleGVj bGlzdHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAlzcGlu X2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CiAKIAlxdWV1ZV9y ZXF1ZXN0KGVuZ2luZSwgJnJlcXVlc3QtPnNjaGVkLCBycV9wcmlvKHJlcXVlc3QpKTsKLQlzdWJt aXRfcXVldWUoZW5naW5lLCBycV9wcmlvKHJlcXVlc3QpKTsKIAogCUdFTV9CVUdfT04oIWVuZ2lu ZS0+ZXhlY2xpc3RzLmZpcnN0KTsKIAlHRU1fQlVHX09OKGxpc3RfZW1wdHkoJnJlcXVlc3QtPnNj aGVkLmxpbmspKTsKIAorCXN1Ym1pdF9xdWV1ZShlbmdpbmUsIHJxX3ByaW8ocmVxdWVzdCkpOwor CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7 CiB9CiAKQEAgLTEyODYsOCArMTI5NiwxMSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc2NoZWR1 bGUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwKIAkJfQogCiAJCWlmIChwcmlvID4gZW5n aW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHkgJiYKLQkJICAgIGk5MTVfc3dfZmVuY2VfZG9u ZSgmc2NoZWRfdG9fcmVxdWVzdChub2RlKS0+c3VibWl0KSkKLQkJCV9fc3VibWl0X3F1ZXVlKGVu Z2luZSwgcHJpbyk7CisJCSAgICBpOTE1X3N3X2ZlbmNlX2RvbmUoJnNjaGVkX3RvX3JlcXVlc3Qo bm9kZSktPnN1Ym1pdCkpIHsKKwkJCS8qIGRlZmVyIHN1Ym1pc3Npb24gdW50aWwgYWZ0ZXIgYWxs IG9mIG91ciB1cGRhdGVzICovCisJCQlfX3VwZGF0ZV9xdWV1ZShlbmdpbmUsIHByaW8pOworCQkJ dGFza2xldF9oaV9zY2hlZHVsZSgmZW5naW5lLT5leGVjbGlzdHMudGFza2xldCk7CisJCX0KIAl9 CiAKIAlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7CkBAIC0xODMxLDYg KzE4NDQsNyBAQCBleGVjbGlzdHNfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVj bGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVz dCwgKmFjdGl2ZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJR0VNX1RSQUNFKCIlc1xuIiwg ZW5naW5lLT5uYW1lKTsKIApAQCAtMTg1NCw4ICsxODY4LDEwIEBAIGV4ZWNsaXN0c19yZXNldF9w cmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkgKiBhbmQgYXZvaWQgYmxh bWluZyBhbiBpbm5vY2VudCByZXF1ZXN0IGlmIHRoZSBzdGFsbCB3YXMgZHVlIHRvIHRoZQogCSAq IHByZWVtcHRpb24gaXRzZWxmLgogCSAqLwotCWlmICh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNM SVNULCAmZW5naW5lLT5pcnFfcG9zdGVkKSkKLQkJcHJvY2Vzc19jc2IoZW5naW5lKTsKKwlzcGlu X2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3luY2hyb25p emVfaGFyZGlycShlbmdpbmUtPmk5MTUtPmRybS5pcnEpOworCisJcHJvY2Vzc19jc2IoZW5naW5l KTsKIAogCS8qCiAJICogVGhlIGxhc3QgYWN0aXZlIHJlcXVlc3QgY2FuIHRoZW4gYmUgbm8gbGF0 ZXIgdGhhbiB0aGUgbGFzdCByZXF1ZXN0CkBAIC0xODY1LDE1ICsxODgxLDEyIEBAIGV4ZWNsaXN0 c19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlhY3RpdmUg PSBOVUxMOwogCXJlcXVlc3QgPSBwb3J0X3JlcXVlc3QoZXhlY2xpc3RzLT5wb3J0KTsKIAlpZiAo cmVxdWVzdCkgewotCQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCiAJCS8qCiAJCSAqIFByZXZlbnQg dGhlIGJyZWFkY3J1bWIgZnJvbSBhZHZhbmNpbmcgYmVmb3JlIHdlIGRlY2lkZQogCQkgKiB3aGlj aCByZXF1ZXN0IGlzIGN1cnJlbnRseSBhY3RpdmUuCiAJCSAqLwogCQlpbnRlbF9lbmdpbmVfc3Rv cF9jcyhlbmdpbmUpOwogCi0JCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxv Y2ssIGZsYWdzKTsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9mcm9tX3JldmVyc2UocmVxdWVzdCwK IAkJCQkJCSAmZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cywKIAkJCQkJCSBsaW5rKSB7CkBAIC0x ODgzLDEyICsxODk2LDI4IEBAIGV4ZWNsaXN0c19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIAogCQkJYWN0aXZlID0gcmVxdWVzdDsKIAkJfQotCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKIAl9CiAKKwlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwog CXJldHVybiBhY3RpdmU7CiB9CiAKK3N0YXRpYyB2b2lkIHJlc2V0X2NzYl9wb2ludGVycyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQoreworCS8qCisJICogQWZ0ZXIg YSByZXNldCwgdGhlIEhXIHN0YXJ0cyB3cml0aW5nIGludG8gQ1NCIGVudHJ5IFswXS4gV2UKKwkg KiB0aGVyZWZvcmUgaGF2ZSB0byBzZXQgb3VyIEhFQUQgcG9pbnRlciBiYWNrIG9uZSBlbnRyeSBz byB0aGF0CisJICogdGhlICpmaXJzdCogZW50cnkgd2UgY2hlY2sgaXMgZW50cnkgMC4gVG8gY29t cGxpY2F0ZSB0aGlzIGZ1cnRoZXIsCisJICogYXMgd2UgZG9uJ3Qgd2FpdCBmb3IgdGhlIGZpcnN0 IGludGVycnVwdCBhZnRlciByZXNldCwgd2UgaGF2ZSB0bworCSAqIGZha2UgdGhlIEhXIHdyaXRl IHRvIHBvaW50IGJhY2sgdG8gdGhlIGxhc3QgZW50cnkgc28gdGhhdCBvdXIKKwkgKiBpbmxpbmUg Y29tcGFyaXNvbiBvZiBvdXIgY2FjaGVkIGhlYWQgcG9zaXRpb24gYWdhaW5zdCB0aGUgbGFzdCBI VworCSAqIHdyaXRlIHdvcmtzIGV2ZW4gYmVmb3JlIHRoZSBmaXJzdCBpbnRlcnJ1cHQuCisJICov CisJZXhlY2xpc3RzLT5jc2JfaGVhZCA9IEdFTjhfQ1NCX0VOVFJJRVMgLSAxOworCVdSSVRFX09O Q0UoKmV4ZWNsaXN0cy0+Y3NiX3dyaXRlLCAoR0VOOF9DU0JfRU5UUklFUyAtIDEpIHwgMHhmZiA8 PCAxNik7Cit9CisKIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19yZXNldChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCiAJCQkgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIHsK QEAgLTE5MTgsNyArMTk0Nyw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19yZXNldChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJX191bndpbmRfaW5jb21wbGV0ZV9yZXF1ZXN0cyhl bmdpbmUpOwogCiAJLyogRm9sbG93aW5nIHRoZSByZXNldCwgd2UgbmVlZCB0byByZWxvYWQgdGhl IENTQiByZWFkL3dyaXRlIHBvaW50ZXJzICovCi0JZW5naW5lLT5leGVjbGlzdHMuY3NiX2hlYWQg PSBHRU44X0NTQl9FTlRSSUVTIC0gMTsKKwlyZXNldF9jc2JfcG9pbnRlcnMoJmVuZ2luZS0+ZXhl Y2xpc3RzKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9j aywgZmxhZ3MpOwogCkBAIC0yNDEyLDcgKzI0NDEsNiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmlu Z19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCXVwcGVyXzMyX2JpdHMo Y2UtPmxyY19kZXNjKTsKIAl9CiAKLQlleGVjbGlzdHMtPmNzYl9oZWFkID0gR0VOOF9DU0JfRU5U UklFUyAtIDE7CiAJZXhlY2xpc3RzLT5jc2JfcmVhZCA9CiAJCWk5MTUtPnJlZ3MgKyBpOTE1X21t aW9fcmVnX29mZnNldChSSU5HX0NPTlRFWFRfU1RBVFVTX1BUUihlbmdpbmUpKTsKIAlpZiAoY3Ni X2ZvcmNlX21taW8oaTkxNSkpIHsKQEAgLTI0MjcsNiArMjQ1NSw3IEBAIHN0YXRpYyBpbnQgbG9n aWNhbF9yaW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlleGVjbGlz dHMtPmNzYl93cml0ZSA9CiAJCQkmZW5naW5lLT5zdGF0dXNfcGFnZS5wYWdlX2FkZHJbaW50ZWxf aHdzX2NzYl93cml0ZV9pbmRleChpOTE1KV07CiAJfQorCXJlc2V0X2NzYl9wb2ludGVycyhleGVj bGlzdHMpOwogCiAJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaAppbmRleCBiOTJlNzZjMjM4NDMuLjYzNmExYjFhYzBkYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMzU4LDcgKzM1OCw2IEBAIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgewogCWF0b21pY190IGlycV9jb3VudDsKIAl1bnNpZ25lZCBsb25nIGlycV9wb3N0 ZWQ7CiAjZGVmaW5lIEVOR0lORV9JUlFfQlJFQURDUlVNQiAwCi0jZGVmaW5lIEVOR0lORV9JUlFf RVhFQ0xJU1QgMQogCiAJLyogUmF0aGVyIHRoYW4gaGF2ZSBldmVyeSBjbGllbnQgd2FpdCB1cG9u IGFsbCB1c2VyIGludGVycnVwdHMsCiAJICogd2l0aCB0aGUgaGVyZCB3YWtpbmcgYWZ0ZXIgZXZl cnkgaW50ZXJydXB0IGFuZCBlYWNoIGRvaW5nIHRoZQotLSAKMi4xNy4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK