From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915/execlists: Direct submission of new requests (avoid tasklet/ksoftirqd) Date: Thu, 31 May 2018 20:57:11 +0100 Message-ID: <20180531195711.16233-1-chris@chris-wilson.co.uk> References: <20180531185204.19520-8-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 DDEF86E348 for ; Thu, 31 May 2018 19:57:23 +0000 (UTC) In-Reply-To: <20180531185204.19520-8-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 IG5ldyByZXF1ZXN0cwp2NTogQmUgYXdhcmUgdGhhdCB3aXRoIG1peGluZyBkaXJlY3QgdGFza2xl dCBldmFsdWF0aW9uIGFuZCBkZWZlcnJlZAp0YXNrbGV0cywgd2UgbWF5IGVuZCB1cCBpZGxpbmcg YmVmb3JlIHJ1bm5pbmcgdGhlIGRlZmVycmVkIHRhc2tsZXQuCgpUZXN0Y2FzZTogaWd0L2dlbV9l eGVjX2xhdGVuY3kvKnJ0aG9nKgpSZWZlcmVuY2VzOiAyN2FmNWVlYTU0ZDEgKCJkcm0vaTkxNTog TW92ZSBleGVjbGlzdHMgaXJxIGhhbmRsZXIgdG8gYSBib3R0b20gaGFsZiIpClN1Z2dlc3RlZC1i eTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBUdnJ0a28gVXJz dWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmggICAgICAgICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jICAgICAgICAgfCAgMTEgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwg MTQ4ICsrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oIHwgICAxIC0KIDUgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwg NzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmgKaW5kZXggMjYxZGE1Nzc4Mjlh Li43ODkyYWM3NzM5MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uaApAQCAtODgsNCArODgsOSBA QCBzdGF0aWMgaW5saW5lIHZvaWQgX190YXNrbGV0X2VuYWJsZV9zeW5jX29uY2Uoc3RydWN0IHRh c2tsZXRfc3RydWN0ICp0KQogCQl0YXNrbGV0X2tpbGwodCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUg Ym9vbCBfX3Rhc2tsZXRfaXNfZW5hYmxlZChjb25zdCBzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQp Cit7CisJcmV0dXJuIGxpa2VseSghYXRvbWljX3JlYWQoJnQtPmNvdW50KSk7Cit9CisKICNlbmRp ZiAvKiBfX0k5MTVfR0VNX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggZjliYzNh YWE5MGQwLi4zYThlYWNhYjUxNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMTQ2Miwx NCArMTQ2MiwxMCBAQCBzdGF0aWMgdm9pZCBzbmJfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQKIGdlbjhfY3NfaXJxX2hhbmRsZXIo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaWlyKQogewotCXN0cnVjdCBpbnRl bF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3Rz OwogCWJvb2wgdGFza2xldCA9IGZhbHNlOwogCi0JaWYgKGlpciAmIEdUX0NPTlRFWFRfU1dJVENI X0lOVEVSUlVQVCkgewotCQlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSkp Ci0JCQl0YXNrbGV0ID0gIXRlc3RfYW5kX3NldF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwKLQkJ CQkJCSAgICAmZW5naW5lLT5pcnFfcG9zdGVkKTsKLQl9CisJaWYgKGlpciAmIEdUX0NPTlRFWFRf U1dJVENIX0lOVEVSUlVQVCkKKwkJdGFza2xldCA9IHRydWU7CiAKIAlpZiAoaWlyICYgR1RfUkVO REVSX1VTRVJfSU5URVJSVVBUKSB7CiAJCW5vdGlmeV9yaW5nKGVuZ2luZSk7CkBAIC0xNDc3LDcg KzE0NzMsNyBAQCBnZW44X2NzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwgdTMyIGlpcikKIAl9CiAKIAlpZiAodGFza2xldCkKLQkJdGFza2xldF9oaV9zY2hlZHVs ZSgmZXhlY2xpc3RzLT50YXNrbGV0KTsKKwkJdGFza2xldF9oaV9zY2hlZHVsZSgmZW5naW5lLT5l eGVjbGlzdHMudGFza2xldCk7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX2FjayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKQEAgLTIxODUsNyArMjE4MSw2IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBjaGVycnl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAog CQlJOTE1X1dSSVRFKFZMVl9JRVIsIGllcik7CiAJCUk5MTVfV1JJVEUoR0VOOF9NQVNURVJfSVJR LCBHRU44X01BU1RFUl9JUlFfQ09OVFJPTCk7Ci0JCVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9J UlEpOwogCiAJCWdlbjhfZ3RfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIG1hc3Rlcl9jdGwsIGd0X2lp cik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggYmMwMTkzMTk5 YTAzLi40Mzg4MGJmMGY1MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j CkBAIC0xMzI5LDEyICsxMzI5LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9wcmludF9y ZWdpc3RlcnMoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQlwdHIgPSBJ OTE1X1JFQUQoUklOR19DT05URVhUX1NUQVRVU19QVFIoZW5naW5lKSk7CiAJCXJlYWQgPSBHRU44 X0NTQl9SRUFEX1BUUihwdHIpOwogCQl3cml0ZSA9IEdFTjhfQ1NCX1dSSVRFX1BUUihwdHIpOwot CQlkcm1fcHJpbnRmKG0sICJcdEV4ZWNsaXN0IENTQiByZWFkICVkIFslZCBjYWNoZWRdLCB3cml0 ZSAlZCBbJWQgZnJvbSBod3NdLCBpbnRlcnJ1cHQgcG9zdGVkPyAlcywgdGFza2xldCBxdWV1ZWQ/ ICVzICglcylcbiIsCisJCWRybV9wcmludGYobSwgIlx0RXhlY2xpc3QgQ1NCIHJlYWQgJWQgWyVk IGNhY2hlZF0sIHdyaXRlICVkIFslZCBmcm9tIGh3c10sIHRhc2tsZXQgcXVldWVkPyAlcyAoJXMp XG4iLAogCQkJICAgcmVhZCwgZXhlY2xpc3RzLT5jc2JfaGVhZCwKIAkJCSAgIHdyaXRlLAogCQkJ ICAgaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShlbmdpbmUsIGludGVsX2h3c19jc2Jfd3JpdGVfaW5k ZXgoZW5naW5lLT5pOTE1KSksCi0JCQkgICB5ZXNubyh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNM SVNULAotCQkJCQkgICZlbmdpbmUtPmlycV9wb3N0ZWQpKSwKIAkJCSAgIHllc25vKHRlc3RfYml0 KFRBU0tMRVRfU1RBVEVfU0NIRUQsCiAJCQkJCSAgJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQu c3RhdGUpKSwKIAkJCSAgIGVuYWJsZWRkaXNhYmxlZCghYXRvbWljX3JlYWQoJmVuZ2luZS0+ZXhl Y2xpc3RzLnRhc2tsZXQuY291bnQpKSk7CkBAIC0xNTE1LDExICsxNTEzLDkgQEAgdm9pZCBpbnRl bF9lbmdpbmVfZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJc3Bpbl91bmxv Y2soJmItPnJiX2xvY2spOwogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAotCWRybV9wcmlu dGYobSwgIklSUT8gMHglbHggKGJyZWFkY3J1bWJzPyAlcykgKGV4ZWNsaXN0cz8gJXMpXG4iLAor CWRybV9wcmludGYobSwgIklSUT8gMHglbHggKGJyZWFkY3J1bWJzPyAlcylcbiIsCiAJCSAgIGVu Z2luZS0+aXJxX3Bvc3RlZCwKIAkJICAgeWVzbm8odGVzdF9iaXQoRU5HSU5FX0lSUV9CUkVBRENS VU1CLAotCQkJCSAgJmVuZ2luZS0+aXJxX3Bvc3RlZCkpLAotCQkgICB5ZXNubyh0ZXN0X2JpdChF TkdJTkVfSVJRX0VYRUNMSVNULAogCQkJCSAgJmVuZ2luZS0+aXJxX3Bvc3RlZCkpKTsKIAogCWRy bV9wcmludGYobSwgIkhXU1A6XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggN2Iz NmFhOTg0MzA0Li40NmU4ZDI5YWNmNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC01 NTcsMTMgKzU1NywxNSBAQCBzdGF0aWMgdm9pZCBjb21wbGV0ZV9wcmVlbXB0X2NvbnRleHQoc3Ry dWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKIHsKIAlHRU1fQlVHX09OKCFl eGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSk7 CiAKKwlfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGNvbnRhaW5lcl9vZihleGVjbGlzdHMs CisJCQkJCQkgIHR5cGVvZihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzKSwKKwkJCQkJCSAgZXhlY2xp c3RzKSk7CiAJZXhlY2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKGV4ZWNsaXN0cyk7Ci0JZXhl Y2xpc3RzX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGV4ZWNsaXN0cyk7CiAKIAlleGVjbGlz dHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKTsKIH0K IAotc3RhdGljIHZvaWQgX19leGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCitzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25z dCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CiAJc3RydWN0IGV4ZWNsaXN0X3BvcnQg KnBvcnQgPSBleGVjbGlzdHMtPnBvcnQ7CkBAIC01NzUsNyArNTc3LDExIEBAIHN0YXRpYyB2b2lk IF9fZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJ bG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT50aW1lbGluZS5sb2NrKTsKIAotCS8qIEhhcmR3 YXJlIHN1Ym1pc3Npb24gaXMgdGhyb3VnaCAyIHBvcnRzLiBDb25jZXB0dWFsbHkgZWFjaCBwb3J0 CisJR0VNX0JVR19PTihleGVjbGlzdHNfaXNfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cywKKwkJ CQkgICAgICAgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSk7CisKKwkvKgorCSAqIEhhcmR3YXJl IHN1Ym1pc3Npb24gaXMgdGhyb3VnaCAyIHBvcnRzLiBDb25jZXB0dWFsbHkgZWFjaCBwb3J0CiAJ ICogaGFzIGEgKFJJTkdfU1RBUlQsIFJJTkdfSEVBRCwgUklOR19UQUlMKSB0dXBsZS4gUklOR19T VEFSVCBpcwogCSAqIHN0YXRpYyBmb3IgYSBjb250ZXh0LCBhbmQgdW5pcXVlIHRvIGVhY2gsIHNv IHdlIG9ubHkgZXhlY3V0ZQogCSAqIHJlcXVlc3RzIGJlbG9uZ2luZyB0byBhIHNpbmdsZSBjb250 ZXh0IGZyb20gZWFjaCByaW5nLiBSSU5HX0hFQUQKQEAgLTc2NSwxNSArNzcxLDYgQEAgc3RhdGlj IHZvaWQgX19leGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJCSAgICFwb3J0X2lzc2V0KGVuZ2luZS0+ZXhlY2xpc3RzLnBvcnQpKTsKIH0KIAotc3RhdGlj IHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQot ewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50 aW1lbGluZS5sb2NrLCBmbGFncyk7Ci0JX19leGVjbGlzdHNfZGVxdWV1ZShlbmdpbmUpOwotCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwotfQot CiB2b2lkCiBleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCiB7CkBAIC04NzAsMTQgKzg2Nyw2IEBAIHN0 YXRpYyB2b2lkIHJlc2V0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc3lu Y2hyb25pemVfaGFyZGlycShlbmdpbmUtPmk5MTUtPmRybS5pcnEpOwogCiAJY2xlYXJfZ3RpaXIo ZW5naW5lKTsKLQotCS8qCi0JICogVGhlIHBvcnQgaXMgY2hlY2tlZCBwcmlvciB0byBzY2hlZHVs aW5nIGEgdGFza2xldCwgYnV0Ci0JICoganVzdCBpbiBjYXNlIHdlIGhhdmUgc3VzcGVuZGVkIHRo ZSB0YXNrbGV0IHRvIGRvIHRoZQotCSAqIHdlZGdpbmcgbWFrZSBzdXJlIHRoYXQgd2hlbiBpdCB3 YWtlcywgaXQgZGVjaWRlcyB0aGVyZQotCSAqIGlzIG5vIHdvcmsgdG8gZG8gYnkgY2xlYXJpbmcg dGhlIGlycV9wb3N0ZWQgYml0LgotCSAqLwotCWNsZWFyX2JpdChFTkdJTkVfSVJRX0VYRUNMSVNU LCAmZW5naW5lLT5pcnFfcG9zdGVkKTsKIH0KIAogc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNl bF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC05NTAsNiArOTM5 LDEyIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAorc3Rh dGljIGlubGluZSBib29sCityZXNldF9pbl9wcm9ncmVzcyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQoreworCXJldHVybiB1bmxpa2VseSghX190YXNrbGV0 X2lzX2VuYWJsZWQoJmV4ZWNsaXN0cy0+dGFza2xldCkpOworfQorCiBzdGF0aWMgdm9pZCBwcm9j ZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVs X2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7 CkBAIC05NTcsMTAgKzk1Miw2IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3NiKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAljb25zdCB1MzIgKiBjb25zdCBidWYgPSBleGVjbGlzdHMt PmNzYl9zdGF0dXM7CiAJdTggaGVhZCwgdGFpbDsKIAotCS8qIENsZWFyIGJlZm9yZSByZWFkaW5n IHRvIGNhdGNoIG5ldyBpbnRlcnJ1cHRzICovCi0JY2xlYXJfYml0KEVOR0lORV9JUlFfRVhFQ0xJ U1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpOwotCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7Ci0KIAkv KiBOb3RlIHRoYXQgY3NiX3dyaXRlLCBjc2Jfc3RhdHVzIG1heSBiZSBlaXRoZXIgaW4gSFdTUCBv ciBtbWlvICovCiAJaGVhZCA9IGV4ZWNsaXN0cy0+Y3NiX2hlYWQ7CiAJdGFpbCA9IFJFQURfT05D RSgqZXhlY2xpc3RzLT5jc2Jfd3JpdGUpOwpAQCAtMTA5MCwxOSArMTA4MSw5IEBAIHN0YXRpYyB2 b2lkIHByb2Nlc3NfY3NiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlleGVjbGlz dHMtPmNzYl9oZWFkID0gaGVhZDsKIH0KIAotLyoKLSAqIENoZWNrIHRoZSB1bnJlYWQgQ29udGV4 dCBTdGF0dXMgQnVmZmVycyBhbmQgbWFuYWdlIHRoZSBzdWJtaXNzaW9uIG9mIG5ldwotICogY29u dGV4dHMgdG8gdGhlIEVMU1AgYWNjb3JkaW5nbHkuCi0gKi8KLXN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQorc3RhdGljIHZvaWQgX19l eGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNvbnN0 IGVuZ2luZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOwotCi0JR0VNX1RSQUNFKCIlcyBhd2FrZT89JWQs IGFjdGl2ZT0leCwgaXJxLXBvc3RlZD89JWRcbiIsCi0JCSAgZW5naW5lLT5uYW1lLAotCQkgIGVu Z2luZS0+aTkxNS0+Z3QuYXdha2UsCi0JCSAgZW5naW5lLT5leGVjbGlzdHMuYWN0aXZlLAotCQkg IHRlc3RfYml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpKTsKKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOwogCiAJLyoKIAkgKiBX ZSBjYW4gc2tpcCBhY3F1aXJpbmcgaW50ZWxfcnVudGltZV9wbV9nZXQoKSBoZXJlIGFzIGl0IHdh cyB0YWtlbgpAQCAtMTExNCwxOCArMTA5NSwzMyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3Vi bWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKIAkgKi8KIAlHRU1fQlVHX09OKCFl bmdpbmUtPmk5MTUtPmd0LmF3YWtlKTsKIAotCS8qCi0JICogUHJlZmVyIGRvaW5nIHRlc3RfYW5k X2NsZWFyX2JpdCgpIGFzIGEgdHdvIHN0YWdlIG9wZXJhdGlvbiB0byBhdm9pZAotCSAqIGltcG9z aW5nIHRoZSBjb3N0IG9mIGEgbG9ja2VkIGF0b21pYyB0cmFuc2FjdGlvbiB3aGVuIHN1Ym1pdHRp bmcgYQotCSAqIG5ldyByZXF1ZXN0IChvdXRzaWRlIG9mIHRoZSBjb250ZXh0LXN3aXRjaCBpbnRl cnJ1cHQpLgotCSAqLwotCWlmICh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5l LT5pcnFfcG9zdGVkKSkKLQkJcHJvY2Vzc19jc2IoZW5naW5lKTsKLQorCXByb2Nlc3NfY3NiKGVu Z2luZSk7CiAJaWYgKCFleGVjbGlzdHNfaXNfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cywgRVhF Q0xJU1RTX0FDVElWRV9QUkVFTVBUKSkKIAkJZXhlY2xpc3RzX2RlcXVldWUoZW5naW5lKTsKIH0K IAorLyoKKyAqIENoZWNrIHRoZSB1bnJlYWQgQ29udGV4dCBTdGF0dXMgQnVmZmVycyBhbmQgbWFu YWdlIHRoZSBzdWJtaXNzaW9uIG9mIG5ldworICogY29udGV4dHMgdG8gdGhlIEVMU1AgYWNjb3Jk aW5nbHkuCisgKi8KK3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5z aWduZWQgbG9uZyBkYXRhKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdp bmUgPSAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqKWRhdGE7CisJdW5zaWduZWQgbG9uZyBmbGFn czsKKworCUdFTV9UUkFDRSgiJXMgYXdha2U/PSVkLCBhY3RpdmU9JXhcbiIsCisJCSAgZW5naW5l LT5uYW1lLAorCQkgIGVuZ2luZS0+aTkxNS0+Z3QuYXdha2UsCisJCSAgZW5naW5lLT5leGVjbGlz dHMuYWN0aXZlKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ss IGZsYWdzKTsKKworCWlmIChlbmdpbmUtPmk5MTUtPmd0LmF3YWtlKSAvKiB3ZSBtYXkgYmUgZGVs YXllZCB1bnRpbCBhZnRlciB3ZSBpZGxlISAqLworCQlfX2V4ZWNsaXN0c19zdWJtaXNzaW9uX3Rh c2tsZXQoZW5naW5lKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxp bmUubG9jaywgZmxhZ3MpOworfQorCiBzdGF0aWMgdm9pZCBxdWV1ZV9yZXF1ZXN0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCSAgc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9k ZSwKIAkJCSAgaW50IHByaW8pCkBAIC0xMTM0LDE2ICsxMTMwLDMwIEBAIHN0YXRpYyB2b2lkIHF1 ZXVlX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgICAmbG9v a3VwX3ByaW9saXN0KGVuZ2luZSwgcHJpbyktPnJlcXVlc3RzKTsKIH0KIAotc3RhdGljIHZvaWQg X19zdWJtaXRfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcHJpbykK K3N0YXRpYyB2b2lkIF9fdXBkYXRlX3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwgaW50IHByaW8pCiB7CiAJZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHkgPSBwcmlv OwotCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOworfQor CitzdGF0aWMgdm9pZCBfX3N1Ym1pdF9xdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMg PSAmZW5naW5lLT5leGVjbGlzdHM7CisKKwlpZiAocmVzZXRfaW5fcHJvZ3Jlc3MoZXhlY2xpc3Rz KSkKKwkJcmV0dXJuOyAvKiBkZWZlciB1bnRpbCB3ZSByZXN0YXJ0IHRoZSBlbmdpbmUgZm9sbG93 aW5nIHJlc2V0ICovCisKKwlpZiAoZXhlY2xpc3RzLT50YXNrbGV0LmZ1bmMgPT0gZXhlY2xpc3Rz X3N1Ym1pc3Npb25fdGFza2xldCkKKwkJX19leGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KGVu Z2luZSk7CisJZWxzZQorCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZleGVjbGlzdHMtPnRhc2tsZXQp OwogfQogCiBzdGF0aWMgdm9pZCBzdWJtaXRfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLCBpbnQgcHJpbykKIHsKLQlpZiAocHJpbyA+IGVuZ2luZS0+ZXhlY2xpc3RzLnF1ZXVl X3ByaW9yaXR5KQotCQlfX3N1Ym1pdF9xdWV1ZShlbmdpbmUsIHByaW8pOworCWlmIChwcmlvID4g ZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHkpIHsKKwkJX191cGRhdGVfcXVldWUoZW5n aW5lLCBwcmlvKTsKKwkJX19zdWJtaXRfcXVldWUoZW5naW5lKTsKKwl9CiB9CiAKIHN0YXRpYyB2 b2lkIGV4ZWNsaXN0c19zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0 KQpAQCAtMTE1NSwxMSArMTE2NSwxMiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWl0X3Jl cXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAlzcGluX2xvY2tfaXJxc2F2ZSgm ZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CiAKIAlxdWV1ZV9yZXF1ZXN0KGVuZ2luZSwg JnJlcXVlc3QtPnNjaGVkLCBycV9wcmlvKHJlcXVlc3QpKTsKLQlzdWJtaXRfcXVldWUoZW5naW5l LCBycV9wcmlvKHJlcXVlc3QpKTsKIAogCUdFTV9CVUdfT04oIWVuZ2luZS0+ZXhlY2xpc3RzLmZp cnN0KTsKIAlHRU1fQlVHX09OKGxpc3RfZW1wdHkoJnJlcXVlc3QtPnNjaGVkLmxpbmspKTsKIAor CXN1Ym1pdF9xdWV1ZShlbmdpbmUsIHJxX3ByaW8ocmVxdWVzdCkpOworCiAJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTEyODYs OCArMTI5NywxMSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc2NoZWR1bGUoc3RydWN0IGk5MTVf cmVxdWVzdCAqcmVxdWVzdCwKIAkJfQogCiAJCWlmIChwcmlvID4gZW5naW5lLT5leGVjbGlzdHMu cXVldWVfcHJpb3JpdHkgJiYKLQkJICAgIGk5MTVfc3dfZmVuY2VfZG9uZSgmc2NoZWRfdG9fcmVx dWVzdChub2RlKS0+c3VibWl0KSkKLQkJCV9fc3VibWl0X3F1ZXVlKGVuZ2luZSwgcHJpbyk7CisJ CSAgICBpOTE1X3N3X2ZlbmNlX2RvbmUoJnNjaGVkX3RvX3JlcXVlc3Qobm9kZSktPnN1Ym1pdCkp IHsKKwkJCS8qIGRlZmVyIHN1Ym1pc3Npb24gdW50aWwgYWZ0ZXIgYWxsIG9mIG91ciB1cGRhdGVz ICovCisJCQlfX3VwZGF0ZV9xdWV1ZShlbmdpbmUsIHByaW8pOworCQkJdGFza2xldF9oaV9zY2hl ZHVsZSgmZW5naW5lLT5leGVjbGlzdHMudGFza2xldCk7CisJCX0KIAl9CiAKIAlzcGluX3VubG9j a19pcnEoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7CkBAIC0xODMxLDYgKzE4NDUsNyBAQCBleGVj bGlzdHNfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJ c3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5l LT5leGVjbGlzdHM7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwgKmFjdGl2ZTsKKwl1 bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJR0VNX1RSQUNFKCIlc1xuIiwgZW5naW5lLT5uYW1lKTsK IApAQCAtMTg1Miw4ICsxODY3LDEwIEBAIGV4ZWNsaXN0c19yZXNldF9wcmVwYXJlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkgKiBhbmQgYXZvaWQgYmxhbWluZyBhbiBpbm5vY2Vu dCByZXF1ZXN0IGlmIHRoZSBzdGFsbCB3YXMgZHVlIHRvIHRoZQogCSAqIHByZWVtcHRpb24gaXRz ZWxmLgogCSAqLwotCWlmICh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5p cnFfcG9zdGVkKSkKLQkJcHJvY2Vzc19jc2IoZW5naW5lKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgm ZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3luY2hyb25pemVfaGFyZGlycShlbmdp bmUtPmk5MTUtPmRybS5pcnEpOworCisJcHJvY2Vzc19jc2IoZW5naW5lKTsKIAogCS8qCiAJICog VGhlIGxhc3QgYWN0aXZlIHJlcXVlc3QgY2FuIHRoZW4gYmUgbm8gbGF0ZXIgdGhhbiB0aGUgbGFz dCByZXF1ZXN0CkBAIC0xODYzLDE1ICsxODgwLDEyIEBAIGV4ZWNsaXN0c19yZXNldF9wcmVwYXJl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlhY3RpdmUgPSBOVUxMOwogCXJlcXVl c3QgPSBwb3J0X3JlcXVlc3QoZXhlY2xpc3RzLT5wb3J0KTsKIAlpZiAocmVxdWVzdCkgewotCQl1 bnNpZ25lZCBsb25nIGZsYWdzOwotCiAJCS8qCiAJCSAqIFByZXZlbnQgdGhlIGJyZWFkY3J1bWIg ZnJvbSBhZHZhbmNpbmcgYmVmb3JlIHdlIGRlY2lkZQogCQkgKiB3aGljaCByZXF1ZXN0IGlzIGN1 cnJlbnRseSBhY3RpdmUuCiAJCSAqLwogCQlpbnRlbF9lbmdpbmVfc3RvcF9jcyhlbmdpbmUpOwog Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKIAkJ bGlzdF9mb3JfZWFjaF9lbnRyeV9mcm9tX3JldmVyc2UocmVxdWVzdCwKIAkJCQkJCSAmZW5naW5l LT50aW1lbGluZS5yZXF1ZXN0cywKIAkJCQkJCSBsaW5rKSB7CkBAIC0xODgxLDEyICsxODk1LDI4 IEBAIGV4ZWNsaXN0c19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIAogCQkJYWN0aXZlID0gcmVxdWVzdDsKIAkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKIAl9CiAKKwlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwogCXJldHVybiBhY3RpdmU7 CiB9CiAKK3N0YXRpYyB2b2lkIHJlc2V0X2NzYl9wb2ludGVycyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQoreworCS8qCisJICogQWZ0ZXIgYSByZXNldCwgdGhlIEhX IHN0YXJ0cyB3cml0aW5nIGludG8gQ1NCIGVudHJ5IFswXS4gV2UKKwkgKiB0aGVyZWZvcmUgaGF2 ZSB0byBzZXQgb3VyIEhFQUQgcG9pbnRlciBiYWNrIG9uZSBlbnRyeSBzbyB0aGF0CisJICogdGhl ICpmaXJzdCogZW50cnkgd2UgY2hlY2sgaXMgZW50cnkgMC4gVG8gY29tcGxpY2F0ZSB0aGlzIGZ1 cnRoZXIsCisJICogYXMgd2UgZG9uJ3Qgd2FpdCBmb3IgdGhlIGZpcnN0IGludGVycnVwdCBhZnRl ciByZXNldCwgd2UgaGF2ZSB0bworCSAqIGZha2UgdGhlIEhXIHdyaXRlIHRvIHBvaW50IGJhY2sg dG8gdGhlIGxhc3QgZW50cnkgc28gdGhhdCBvdXIKKwkgKiBpbmxpbmUgY29tcGFyaXNvbiBvZiBv dXIgY2FjaGVkIGhlYWQgcG9zaXRpb24gYWdhaW5zdCB0aGUgbGFzdCBIVworCSAqIHdyaXRlIHdv cmtzIGV2ZW4gYmVmb3JlIHRoZSBmaXJzdCBpbnRlcnJ1cHQuCisJICovCisJZXhlY2xpc3RzLT5j c2JfaGVhZCA9IEdFTjhfQ1NCX0VOVFJJRVMgLSAxOworCVdSSVRFX09OQ0UoKmV4ZWNsaXN0cy0+ Y3NiX3dyaXRlLCAoR0VOOF9DU0JfRU5UUklFUyAtIDEpIHwgMHhmZiA8PCAxNik7Cit9CisKIHN0 YXRpYyB2b2lkIGV4ZWNsaXN0c19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs CiAJCQkgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIHsKQEAgLTE5MTYsNyArMTk0 Niw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiAJX191bndpbmRfaW5jb21wbGV0ZV9yZXF1ZXN0cyhlbmdpbmUpOwogCiAJLyog Rm9sbG93aW5nIHRoZSByZXNldCwgd2UgbmVlZCB0byByZWxvYWQgdGhlIENTQiByZWFkL3dyaXRl IHBvaW50ZXJzICovCi0JZW5naW5lLT5leGVjbGlzdHMuY3NiX2hlYWQgPSBHRU44X0NTQl9FTlRS SUVTIC0gMTsKKwlyZXNldF9jc2JfcG9pbnRlcnMoJmVuZ2luZS0+ZXhlY2xpc3RzKTsKIAogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwogCkBA IC0yNDA4LDcgKzI0MzgsNiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCXVwcGVyXzMyX2JpdHMoY2UtPmxyY19kZXNjKTsK IAl9CiAKLQlleGVjbGlzdHMtPmNzYl9oZWFkID0gR0VOOF9DU0JfRU5UUklFUyAtIDE7CiAJZXhl Y2xpc3RzLT5jc2JfcmVhZCA9CiAJCWk5MTUtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNldChS SU5HX0NPTlRFWFRfU1RBVFVTX1BUUihlbmdpbmUpKTsKIAlpZiAoY3NiX2ZvcmNlX21taW8oaTkx NSkpIHsKQEAgLTI0MjMsNiArMjQ1Miw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2luaXQo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlleGVjbGlzdHMtPmNzYl93cml0ZSA9 CiAJCQkmZW5naW5lLT5zdGF0dXNfcGFnZS5wYWdlX2FkZHJbaW50ZWxfaHdzX2NzYl93cml0ZV9p bmRleChpOTE1KV07CiAJfQorCXJlc2V0X2NzYl9wb2ludGVycyhleGVjbGlzdHMpOwogCiAJcmV0 dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCA4ODQx ODQ3N2Y5YWIuLmYwMjM0NjI5MTA4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaApAQCAtMzU4LDcgKzM1OCw2IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCWF0 b21pY190IGlycV9jb3VudDsKIAl1bnNpZ25lZCBsb25nIGlycV9wb3N0ZWQ7CiAjZGVmaW5lIEVO R0lORV9JUlFfQlJFQURDUlVNQiAwCi0jZGVmaW5lIEVOR0lORV9JUlFfRVhFQ0xJU1QgMQogCiAJ LyogUmF0aGVyIHRoYW4gaGF2ZSBldmVyeSBjbGllbnQgd2FpdCB1cG9uIGFsbCB1c2VyIGludGVy cnVwdHMsCiAJICogd2l0aCB0aGUgaGVyZCB3YWtpbmcgYWZ0ZXIgZXZlcnkgaW50ZXJydXB0IGFu ZCBlYWNoIGRvaW5nIHRoZQotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK