From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 6/6] drm/i915/execlists: Direct submission of new requests (avoid tasklet/ksoftirqd) Date: Wed, 27 Jun 2018 12:38:43 +0100 Message-ID: <20180627113843.7257-6-chris@chris-wilson.co.uk> References: <20180627113843.7257-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 9B51D6E8B5 for ; Wed, 27 Jun 2018 11:39:04 +0000 (UTC) In-Reply-To: <20180627113843.7257-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 YnNlcnZlZCAodGhhdCBpcyB0aGUgdGltZQpzdG9sZW4gZnJvbSBhbiBSVCBwcm9jZXNzKSBvdmVy IGEgMTIwcyBpbnRlcnZhbCwgcmVwZWF0ZWQgc2V2ZXJhbCB0aW1lcwoodXNpbmcgZ2VtX3N5c2xh dGVuY3ksIHNpbWlsYXIgdG8gUlQncyBjeWNsaWN0ZXN0KSB3aGlsZSB0aGUgc3lzdGVtIGlzCmZ1 bGx5IGxhZGVuIHdpdGggaTkxNSBub3BzLCB3ZSBzZWUgdGhhdCBkaXJlY3Qgc3VibWlzc2lvbiBh biBhY3R1YWxseQppbXByb3ZlIHRoZSB3b3JzZSBjYXNlLgoKTWF4aW11bSBsYXRlbmN5IGluIG1p 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 IG5ldyByZXF1ZXN0cwp2NTogQmUgYXdhcmUgdGhhdCB3aXRoIG1peGluZyBkaXJlY3QgdGFza2xl dCBldmFsdWF0aW9uIGFuZCBkZWZlcnJlZAp0YXNrbGV0cywgd2UgbWF5IGVuZCB1cCBpZGxpbmcg YmVmb3JlIHJ1bm5pbmcgdGhlIGRlZmVycmVkIHRhc2tsZXQuCnY2OiBSZW1vdmUgdGhlIHJlZHVk YW50IGxpa2VseSgpIGZyb20gdGFza2xldF9pc19lbmFibGVkKCksIHJlc3RyaWN0IHRoZQphbm5v dGF0aW9uIHRvIHJlc2V0X2luX3Byb2dyZXNzKCkuCgpUZXN0Y2FzZTogaWd0L2dlbV9leGVjX2xh dGVuY3kvKnJ0aG9nKgpSZWZlcmVuY2VzOiAyN2FmNWVlYTU0ZDEgKCJkcm0vaTkxNTogTW92ZSBl eGVjbGlzdHMgaXJxIGhhbmRsZXIgdG8gYSBib3R0b20gaGFsZiIpClN1Z2dlc3RlZC1ieTogVHZy dGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmggICAgICAgICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAg ICAgICAgfCAgMTIgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAg fCAgIDkgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8IDEyNyAr KysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaCB8ICAgMSAtCiA1IGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDc1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oCmluZGV4IDI2MWRhNTc3ODI5YS4uZTQ2 NTkyOTU2ODcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmgKQEAgLTg4LDQgKzg4LDkgQEAgc3Rh dGljIGlubGluZSB2b2lkIF9fdGFza2xldF9lbmFibGVfc3luY19vbmNlKHN0cnVjdCB0YXNrbGV0 X3N0cnVjdCAqdCkKIAkJdGFza2xldF9raWxsKHQpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wg X190YXNrbGV0X2lzX2VuYWJsZWQoY29uc3Qgc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KQorewor CXJldHVybiAhYXRvbWljX3JlYWQoJnQtPmNvdW50KTsKK30KKwogI2VuZGlmIC8qIF9fSTkxNV9H RU1fSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCBkMDJmMzA1OTFjMGIuLjMxNmQw YjA4ZDQwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0xNDY5LDE1ICsxNDY5LDEwIEBA IHN0YXRpYyB2b2lkIHNuYl9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiBzdGF0aWMgdm9pZAogZ2VuOF9jc19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsIHUzMiBpaXIpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9leGVj bGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CiAJYm9vbCB0YXNr bGV0ID0gZmFsc2U7CiAKLQlpZiAoaWlyICYgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUKSB7 Ci0JCWlmIChSRUFEX09OQ0UoZW5naW5lLT5leGVjbGlzdHMuYWN0aXZlKSkgewotCQkJc2V0X2Jp dChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVkKTsKLQkJCXRhc2tsZXQg PSB0cnVlOwotCQl9Ci0JfQorCWlmIChpaXIgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQp CisJCXRhc2tsZXQgPSB0cnVlOwogCiAJaWYgKGlpciAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQ VCkgewogCQlub3RpZnlfcmluZyhlbmdpbmUpOwpAQCAtMTQ4NSw3ICsxNDgwLDcgQEAgZ2VuOF9j c19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBpaXIpCiAJ fQogCiAJaWYgKHRhc2tsZXQpCi0JCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmV4ZWNsaXN0cy0+dGFz a2xldCk7CisJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQp OwogfQogCiBzdGF0aWMgdm9pZCBnZW44X2d0X2lycV9hY2soc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCkBAIC0yMjE3LDcgKzIyMTIsNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY2hlcnJ5 dmlld19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAKIAkJSTkxNV9XUklURShWTFZf SUVSLCBpZXIpOwogCQlJOTE1X1dSSVRFKEdFTjhfTUFTVEVSX0lSUSwgR0VOOF9NQVNURVJfSVJR X0NPTlRST0wpOwotCQlQT1NUSU5HX1JFQUQoR0VOOF9NQVNURVJfSVJRKTsKIAogCQlnZW44X2d0 X2lycV9oYW5kbGVyKGRldl9wcml2LCBtYXN0ZXJfY3RsLCBndF9paXIpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDcyMDljMjI3OThlNi4uOWJiZGVlMjRlMjU0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMTM1MywxMiArMTM1 MywxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfcHJpbnRfcmVnaXN0ZXJzKGNvbnN0IHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJcHRyID0gSTkxNV9SRUFEKFJJTkdfQ09O VEVYVF9TVEFUVVNfUFRSKGVuZ2luZSkpOwogCQlyZWFkID0gR0VOOF9DU0JfUkVBRF9QVFIocHRy KTsKIAkJd3JpdGUgPSBHRU44X0NTQl9XUklURV9QVFIocHRyKTsKLQkJZHJtX3ByaW50ZihtLCAi XHRFeGVjbGlzdCBDU0IgcmVhZCAlZCBbJWQgY2FjaGVkXSwgd3JpdGUgJWQgWyVkIGZyb20gaHdz XSwgaW50ZXJydXB0IHBvc3RlZD8gJXMsIHRhc2tsZXQgcXVldWVkPyAlcyAoJXMpXG4iLAorCQlk cm1fcHJpbnRmKG0sICJcdEV4ZWNsaXN0IENTQiByZWFkICVkIFslZCBjYWNoZWRdLCB3cml0ZSAl ZCBbJWQgZnJvbSBod3NdLCB0YXNrbGV0IHF1ZXVlZD8gJXMgKCVzKVxuIiwKIAkJCSAgIHJlYWQs IGV4ZWNsaXN0cy0+Y3NiX2hlYWQsCiAJCQkgICB3cml0ZSwKIAkJCSAgIGludGVsX3JlYWRfc3Rh dHVzX3BhZ2UoZW5naW5lLCBpbnRlbF9od3NfY3NiX3dyaXRlX2luZGV4KGVuZ2luZS0+aTkxNSkp LAotCQkJICAgeWVzbm8odGVzdF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwKLQkJCQkJICAmZW5n aW5lLT5pcnFfcG9zdGVkKSksCiAJCQkgICB5ZXNubyh0ZXN0X2JpdChUQVNLTEVUX1NUQVRFX1ND SEVELAogCQkJCQkgICZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0LnN0YXRlKSksCiAJCQkgICBl bmFibGVkZGlzYWJsZWQoIWF0b21pY19yZWFkKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0LmNv dW50KSkpOwpAQCAtMTU3MCwxMSArMTU2OCw5IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCXNwaW5fdW5sb2NrKCZiLT5yYl9sb2NrKTsK IAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiAKLQlkcm1fcHJpbnRmKG0sICJJUlE/IDB4JWx4 IChicmVhZGNydW1icz8gJXMpIChleGVjbGlzdHM/ICVzKVxuIiwKKwlkcm1fcHJpbnRmKG0sICJJ UlE/IDB4JWx4IChicmVhZGNydW1icz8gJXMpXG4iLAogCQkgICBlbmdpbmUtPmlycV9wb3N0ZWQs CiAJCSAgIHllc25vKHRlc3RfYml0KEVOR0lORV9JUlFfQlJFQURDUlVNQiwKLQkJCQkgICZlbmdp bmUtPmlycV9wb3N0ZWQpKSwKLQkJICAgeWVzbm8odGVzdF9iaXQoRU5HSU5FX0lSUV9FWEVDTElT VCwKIAkJCQkgICZlbmdpbmUtPmlycV9wb3N0ZWQpKSk7CiAKIAlkcm1fcHJpbnRmKG0sICJIV1NQ OlxuIik7CkBAIC0xNjUwLDYgKzE2NDYsNyBAQCBpbnQgaW50ZWxfZW5hYmxlX2VuZ2luZV9zdGF0 cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB1bmxvY2s6CiAJd3JpdGVfc2VxdW5s b2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwogCXRhc2tsZXRfZW5h YmxlKCZleGVjbGlzdHMtPnRhc2tsZXQpOworCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmV4ZWNsaXN0 cy0+dGFza2xldCk7CiAKIAlyZXR1cm4gZXJyOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpp bmRleCA4YjExMWEyNjg2OTcuLmU1NDE1NzZjY2QxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKQEAgLTU2MiwxMyArNTYyLDE1IEBAIHN0YXRpYyB2b2lkIGNvbXBsZXRlX3ByZWVtcHRfY29u dGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQogewogCUdFTV9C VUdfT04oIWV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BS RUVNUFQpKTsKIAorCV9fdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoY29udGFpbmVyX29mKGV4 ZWNsaXN0cywKKwkJCQkJCSAgdHlwZW9mKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MpLAorCQkJCQkJ ICBleGVjbGlzdHMpKTsKIAlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3Rz KTsKLQlleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoZXhlY2xpc3RzKTsKIAog CWV4ZWNsaXN0c19jbGVhcl9hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVN UFQpOwogfQogCi1zdGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0 cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKIAlzdHJ1Y3QgZXhlY2xp c3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKQEAgLTU3OCw5ICs1ODAsOCBAQCBzdGF0 aWMgdm9pZCBfX2V4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIAlzdHJ1Y3QgcmJfbm9kZSAqcmI7CiAJYm9vbCBzdWJtaXQgPSBmYWxzZTsKIAotCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7Ci0KLQkvKiBIYXJkd2FyZSBz dWJtaXNzaW9uIGlzIHRocm91Z2ggMiBwb3J0cy4gQ29uY2VwdHVhbGx5IGVhY2ggcG9ydAorCS8q CisJICogSGFyZHdhcmUgc3VibWlzc2lvbiBpcyB0aHJvdWdoIDIgcG9ydHMuIENvbmNlcHR1YWxs eSBlYWNoIHBvcnQKIAkgKiBoYXMgYSAoUklOR19TVEFSVCwgUklOR19IRUFELCBSSU5HX1RBSUwp IHR1cGxlLiBSSU5HX1NUQVJUIGlzCiAJICogc3RhdGljIGZvciBhIGNvbnRleHQsIGFuZCB1bmlx dWUgdG8gZWFjaCwgc28gd2Ugb25seSBleGVjdXRlCiAJICogcmVxdWVzdHMgYmVsb25naW5nIHRv IGEgc2luZ2xlIGNvbnRleHQgZnJvbSBlYWNoIHJpbmcuIFJJTkdfSEVBRApAQCAtNzcwLDE1ICs3 NzEsNiBAQCBzdGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIAkJICAgIXBvcnRfaXNzZXQoZW5naW5lLT5leGVjbGlzdHMucG9ydCkp OwogfQogCi1zdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFz YXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKLQlfX2V4ZWNsaXN0c19kZXF1ZXVl KGVuZ2luZSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2Nr LCBmbGFncyk7Ci19Ci0KIHZvaWQKIGV4ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cykKIHsKQEAgLTg3NCwx NCArODY2LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAlzbXBfc3RvcmVfbWIoZW5naW5lLT5leGVjbGlzdHMuYWN0aXZlLCAwKTsKIAog CWNsZWFyX2d0aWlyKGVuZ2luZSk7Ci0KLQkvKgotCSAqIFRoZSBwb3J0IGlzIGNoZWNrZWQgcHJp b3IgdG8gc2NoZWR1bGluZyBhIHRhc2tsZXQsIGJ1dAotCSAqIGp1c3QgaW4gY2FzZSB3ZSBoYXZl IHN1c3BlbmRlZCB0aGUgdGFza2xldCB0byBkbyB0aGUKLQkgKiB3ZWRnaW5nIG1ha2Ugc3VyZSB0 aGF0IHdoZW4gaXQgd2FrZXMsIGl0IGRlY2lkZXMgdGhlcmUKLQkgKiBpcyBubyB3b3JrIHRvIGRv IGJ5IGNsZWFyaW5nIHRoZSBpcnFfcG9zdGVkIGJpdC4KLQkgKi8KLQljbGVhcl9iaXQoRU5HSU5F X0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJl c2V0X2NzYl9wb2ludGVycyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3Rz KQpAQCAtOTY1LDYgKzk0OSwxMiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY2FuY2VsX3JlcXVl c3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKIH0KIAorc3RhdGljIGlubGluZSBi b29sCityZXNldF9pbl9wcm9ncmVzcyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0 cyAqZXhlY2xpc3RzKQoreworCXJldHVybiB1bmxpa2VseSghX190YXNrbGV0X2lzX2VuYWJsZWQo JmV4ZWNsaXN0cy0+dGFza2xldCkpOworfQorCiBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVj bGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CkBAIC05NzIsMTAg Kzk2Miw2IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3NiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAljb25zdCB1MzIgKiBjb25zdCBidWYgPSBleGVjbGlzdHMtPmNzYl9zdGF0dXM7 CiAJdTggaGVhZCwgdGFpbDsKIAotCS8qIENsZWFyIGJlZm9yZSByZWFkaW5nIHRvIGNhdGNoIG5l dyBpbnRlcnJ1cHRzICovCi0JY2xlYXJfYml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUt PmlycV9wb3N0ZWQpOwotCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7Ci0KIAkvKiBOb3RlIHRoYXQg Y3NiX3dyaXRlLCBjc2Jfc3RhdHVzIG1heSBiZSBlaXRoZXIgaW4gSFdTUCBvciBtbWlvICovCiAJ aGVhZCA9IGV4ZWNsaXN0cy0+Y3NiX2hlYWQ7CiAJdGFpbCA9IFJFQURfT05DRSgqZXhlY2xpc3Rz LT5jc2Jfd3JpdGUpOwpAQCAtMTEwNSwxOSArMTA5MSw5IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3Nf Y3NiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlleGVjbGlzdHMtPmNzYl9oZWFk ID0gaGVhZDsKIH0KIAotLyoKLSAqIENoZWNrIHRoZSB1bnJlYWQgQ29udGV4dCBTdGF0dXMgQnVm ZmVycyBhbmQgbWFuYWdlIHRoZSBzdWJtaXNzaW9uIG9mIG5ldwotICogY29udGV4dHMgdG8gdGhl IEVMU1AgYWNjb3JkaW5nbHkuCi0gKi8KLXN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9u X3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQorc3RhdGljIHZvaWQgX19leGVjbGlzdHNfc3Vi bWlzc2lvbl90YXNrbGV0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNvbnN0IGVuZ2luZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKilkYXRhOwotCi0JR0VNX1RSQUNFKCIlcyBhd2FrZT89JWQsIGFjdGl2ZT0leCwg aXJxLXBvc3RlZD89JWRcbiIsCi0JCSAgZW5naW5lLT5uYW1lLAotCQkgIGVuZ2luZS0+aTkxNS0+ Z3QuYXdha2UsCi0JCSAgZW5naW5lLT5leGVjbGlzdHMuYWN0aXZlLAotCQkgIHRlc3RfYml0KEVO R0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpKTsKKwlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOwogCiAJLyoKIAkgKiBXZSBjYW4gc2tpcCBh Y3F1aXJpbmcgaW50ZWxfcnVudGltZV9wbV9nZXQoKSBoZXJlIGFzIGl0IHdhcyB0YWtlbgpAQCAt MTEyOSwxOCArMTEwNSwzMyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNr bGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKIAkgKi8KIAlHRU1fQlVHX09OKCFlbmdpbmUtPmk5MTUt Pmd0LmF3YWtlKTsKIAotCS8qCi0JICogUHJlZmVyIGRvaW5nIHRlc3RfYW5kX2NsZWFyX2JpdCgp IGFzIGEgdHdvIHN0YWdlIG9wZXJhdGlvbiB0byBhdm9pZAotCSAqIGltcG9zaW5nIHRoZSBjb3N0 IG9mIGEgbG9ja2VkIGF0b21pYyB0cmFuc2FjdGlvbiB3aGVuIHN1Ym1pdHRpbmcgYQotCSAqIG5l dyByZXF1ZXN0IChvdXRzaWRlIG9mIHRoZSBjb250ZXh0LXN3aXRjaCBpbnRlcnJ1cHQpLgotCSAq LwotCWlmICh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVk KSkKLQkJcHJvY2Vzc19jc2IoZW5naW5lKTsKLQorCXByb2Nlc3NfY3NiKGVuZ2luZSk7CiAJaWYg KCFleGVjbGlzdHNfaXNfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElW RV9QUkVFTVBUKSkKIAkJZXhlY2xpc3RzX2RlcXVldWUoZW5naW5lKTsKIH0KIAorLyoKKyAqIENo ZWNrIHRoZSB1bnJlYWQgQ29udGV4dCBTdGF0dXMgQnVmZmVycyBhbmQgbWFuYWdlIHRoZSBzdWJt aXNzaW9uIG9mIG5ldworICogY29udGV4dHMgdG8gdGhlIEVMU1AgYWNjb3JkaW5nbHkuCisgKi8K K3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBk YXRhKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdpbmUgPSAoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqKWRhdGE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCUdFTV9U UkFDRSgiJXMgYXdha2U/PSVkLCBhY3RpdmU9JXhcbiIsCisJCSAgZW5naW5lLT5uYW1lLAorCQkg IGVuZ2luZS0+aTkxNS0+Z3QuYXdha2UsCisJCSAgZW5naW5lLT5leGVjbGlzdHMuYWN0aXZlKTsK KworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwor CWlmIChlbmdpbmUtPmk5MTUtPmd0LmF3YWtlKSAvKiB3ZSBtYXkgYmUgZGVsYXllZCB1bnRpbCBh ZnRlciB3ZSBpZGxlISAqLworCQlfX2V4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQoZW5naW5l KTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxh Z3MpOworfQorCiBzdGF0aWMgdm9pZCBxdWV1ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwKIAkJCSAgc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKIAkJCSAgaW50 IHByaW8pCkBAIC0xMTQ5LDE2ICsxMTQwLDMwIEBAIHN0YXRpYyB2b2lkIHF1ZXVlX3JlcXVlc3Qo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgICAmbG9va3VwX3ByaW9saXN0 KGVuZ2luZSwgcHJpbyktPnJlcXVlc3RzKTsKIH0KIAotc3RhdGljIHZvaWQgX19zdWJtaXRfcXVl dWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcHJpbykKK3N0YXRpYyB2b2lk IF9fdXBkYXRlX3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHByaW8p CiB7CiAJZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHkgPSBwcmlvOwotCXRhc2tsZXRf aGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOworfQorCitzdGF0aWMgdm9p ZCBfX3N1Ym1pdF9xdWV1ZV9pbW0oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorewor CXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2lu ZS0+ZXhlY2xpc3RzOworCisJaWYgKHJlc2V0X2luX3Byb2dyZXNzKGV4ZWNsaXN0cykpCisJCXJl dHVybjsgLyogZGVmZXIgdW50aWwgd2UgcmVzdGFydCB0aGUgZW5naW5lIGZvbGxvd2luZyByZXNl dCAqLworCisJaWYgKGV4ZWNsaXN0cy0+dGFza2xldC5mdW5jID09IGV4ZWNsaXN0c19zdWJtaXNz aW9uX3Rhc2tsZXQpCisJCV9fZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldChlbmdpbmUpOwor CWVsc2UKKwkJdGFza2xldF9oaV9zY2hlZHVsZSgmZXhlY2xpc3RzLT50YXNrbGV0KTsKIH0KIAog c3RhdGljIHZvaWQgc3VibWl0X3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwg aW50IHByaW8pCiB7Ci0JaWYgKHByaW8gPiBlbmdpbmUtPmV4ZWNsaXN0cy5xdWV1ZV9wcmlvcml0 eSkKLQkJX19zdWJtaXRfcXVldWUoZW5naW5lLCBwcmlvKTsKKwlpZiAocHJpbyA+IGVuZ2luZS0+ ZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5KSB7CisJCV9fdXBkYXRlX3F1ZXVlKGVuZ2luZSwgcHJp byk7CisJCV9fc3VibWl0X3F1ZXVlX2ltbShlbmdpbmUpOworCX0KIH0KIAogc3RhdGljIHZvaWQg ZXhlY2xpc3RzX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCkBA IC0xMTcwLDExICsxMTc1LDEyIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXRfcmVxdWVz dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdp bmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKIAogCXF1ZXVlX3JlcXVlc3QoZW5naW5lLCAmcmVx dWVzdC0+c2NoZWQsIHJxX3ByaW8ocmVxdWVzdCkpOwotCXN1Ym1pdF9xdWV1ZShlbmdpbmUsIHJx X3ByaW8ocmVxdWVzdCkpOwogCiAJR0VNX0JVR19PTighZW5naW5lLT5leGVjbGlzdHMuZmlyc3Qp OwogCUdFTV9CVUdfT04obGlzdF9lbXB0eSgmcmVxdWVzdC0+c2NoZWQubGluaykpOwogCisJc3Vi bWl0X3F1ZXVlKGVuZ2luZSwgcnFfcHJpbyhyZXF1ZXN0KSk7CisKIAlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKIH0KIApAQCAtMTMwMSw4ICsx MzA3LDExIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zY2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXF1ZXN0LAogCQl9CiAKIAkJaWYgKHByaW8gPiBlbmdpbmUtPmV4ZWNsaXN0cy5xdWV1 ZV9wcmlvcml0eSAmJgotCQkgICAgaTkxNV9zd19mZW5jZV9kb25lKCZzY2hlZF90b19yZXF1ZXN0 KG5vZGUpLT5zdWJtaXQpKQotCQkJX19zdWJtaXRfcXVldWUoZW5naW5lLCBwcmlvKTsKKwkJICAg IGk5MTVfc3dfZmVuY2VfZG9uZSgmc2NoZWRfdG9fcmVxdWVzdChub2RlKS0+c3VibWl0KSkgewor CQkJLyogZGVmZXIgc3VibWlzc2lvbiB1bnRpbCBhZnRlciBhbGwgb2Ygb3VyIHVwZGF0ZXMgKi8K KwkJCV9fdXBkYXRlX3F1ZXVlKGVuZ2luZSwgcHJpbyk7CisJCQl0YXNrbGV0X2hpX3NjaGVkdWxl KCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsKKwkJfQogCX0KIAogCXNwaW5fdW5sb2NrX2ly cSgmZW5naW5lLT50aW1lbGluZS5sb2NrKTsKQEAgLTE4ODMsNiArMTg5Miw3IEBAIGV4ZWNsaXN0 c19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4 ZWNsaXN0czsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCAqYWN0aXZlOworCXVuc2ln bmVkIGxvbmcgZmxhZ3M7CiAKIAlHRU1fVFJBQ0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwogCkBA IC0xOTA0LDggKzE5MTQsOSBAQCBleGVjbGlzdHNfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJICogYW5kIGF2b2lkIGJsYW1pbmcgYW4gaW5ub2NlbnQgcmVx dWVzdCBpZiB0aGUgc3RhbGwgd2FzIGR1ZSB0byB0aGUKIAkgKiBwcmVlbXB0aW9uIGl0c2VsZi4K IAkgKi8KLQlpZiAodGVzdF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bv c3RlZCkpCi0JCXByb2Nlc3NfY3NiKGVuZ2luZSk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2lu ZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCisJcHJvY2Vzc19jc2IoZW5naW5lKTsKIAogCS8q CiAJICogVGhlIGxhc3QgYWN0aXZlIHJlcXVlc3QgY2FuIHRoZW4gYmUgbm8gbGF0ZXIgdGhhbiB0 aGUgbGFzdCByZXF1ZXN0CkBAIC0xOTE1LDE1ICsxOTI2LDEyIEBAIGV4ZWNsaXN0c19yZXNldF9w cmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlhY3RpdmUgPSBOVUxMOwog CXJlcXVlc3QgPSBwb3J0X3JlcXVlc3QoZXhlY2xpc3RzLT5wb3J0KTsKIAlpZiAocmVxdWVzdCkg ewotCQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCiAJCS8qCiAJCSAqIFByZXZlbnQgdGhlIGJyZWFk Y3J1bWIgZnJvbSBhZHZhbmNpbmcgYmVmb3JlIHdlIGRlY2lkZQogCQkgKiB3aGljaCByZXF1ZXN0 IGlzIGN1cnJlbnRseSBhY3RpdmUuCiAJCSAqLwogCQlpbnRlbF9lbmdpbmVfc3RvcF9jcyhlbmdp bmUpOwogCi0JCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdz KTsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9mcm9tX3JldmVyc2UocmVxdWVzdCwKIAkJCQkJCSAm ZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cywKIAkJCQkJCSBsaW5rKSB7CkBAIC0xOTMzLDkgKzE5 NDEsMTAgQEAgZXhlY2xpc3RzX3Jlc2V0X3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogCiAJCQlhY3RpdmUgPSByZXF1ZXN0OwogCQl9Ci0JCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwogCX0KIAorCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCiAJcmV0dXJuIGFj dGl2ZTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDVi OTJjNWYwM2UxZC4uMzgxYzI0M2JmYzZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCkBAIC0zNTksNyArMzU5LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJ YXRvbWljX3QgaXJxX2NvdW50OwogCXVuc2lnbmVkIGxvbmcgaXJxX3Bvc3RlZDsKICNkZWZpbmUg RU5HSU5FX0lSUV9CUkVBRENSVU1CIDAKLSNkZWZpbmUgRU5HSU5FX0lSUV9FWEVDTElTVCAxCiAK IAkvKiBSYXRoZXIgdGhhbiBoYXZlIGV2ZXJ5IGNsaWVudCB3YWl0IHVwb24gYWxsIHVzZXIgaW50 ZXJydXB0cywKIAkgKiB3aXRoIHRoZSBoZXJkIHdha2luZyBhZnRlciBldmVyeSBpbnRlcnJ1cHQg YW5kIGVhY2ggZG9pbmcgdGhlCi0tIAoyLjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=