From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI] drm/i915/gt: Introduce barrier pulses along engines Date: Mon, 21 Oct 2019 18:43:39 +0100 Message-ID: <20191021174339.5389-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 BEE086E1B5 for ; Mon, 21 Oct 2019 17:43:47 +0000 (UTC) Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 18916289-1500050 for ; Mon, 21 Oct 2019 18:43:44 +0100 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 VG8gZmx1c2ggaWRsZSBiYXJyaWVycywgYW5kIGV2ZW4gaW5mbGlnaHQgcmVxdWVzdHMsIHdlIHdh bnQgdG8gc2VuZCBhCnByZWVtcHRpdmUgJ3B1bHNlJyBhbG9uZyBhbiBlbmdpbmUuIFdlIHVzZSBh IG5vLW9wIHJlcXVlc3QgYWxvbmcgdGhlCnBpbm5lZCBrZXJuZWxfY29udGV4dCBhdCBoaWdoIHBy aW9yaXR5IHNvIHRoYXQgaXQgc2hvdWxkIHJ1biBvciBlbHNlCmtpY2sgb2ZmIHRoZSBzdHVjayBy ZXF1ZXN0cy4gV2UgY2FuIHVzZSB0aGlzIHRvIGVuc3VyZSBpZGxlIGJhcnJpZXJzIGFyZQppbW1l ZGlhdGVseSBmbHVzaGVkLCBhcyBwYXJ0IG9mIGEgY29udGV4dCBjYW5jZWxsYXRpb24gbWVjaGFu aXNtLCBvciBhcwpwYXJ0IG9mIGEgaGVhcnRiZWF0IG1lY2hhbmlzbSB0byBkZXRlY3QgYW5kIHJl c2V0IGEgc3R1Y2sgR1BVLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAg ICAgICAgICB8ICAgMyArLQogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRi ZWF0LmMgIHwgIDc3ICsrKysrKysrKwogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVf aGVhcnRiZWF0LmggIHwgIDE1ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdp bmVfcG0uYyAgICAgfCAgIDIgKy0KIC4uLi9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfaGVh cnRiZWF0LmMgICB8IDE1OSArKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfYWN0aXZlLmMgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ByaW9saXN0X3R5cGVzLmggICAgfCAgIDEgKwogLi4uL2RybS9pOTE1L3NlbGZ0ZXN0cy9p OTE1X2xpdmVfc2VsZnRlc3RzLmggIHwgICAxICsKIDggZmlsZXMgY2hhbmdlZCwgMjU3IGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0 YmVhdC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCBhMTZhMmRhZWY5NzcuLjJmZDRiZWQxODhl NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTc4LDggKzc4LDkgQEAgZ3QteSArPSBcCiAJZ3Qv aW50ZWxfYnJlYWRjcnVtYnMubyBcCiAJZ3QvaW50ZWxfY29udGV4dC5vIFwKIAlndC9pbnRlbF9l bmdpbmVfY3MubyBcCi0JZ3QvaW50ZWxfZW5naW5lX3Bvb2wubyBcCisJZ3QvaW50ZWxfZW5naW5l X2hlYXJ0YmVhdC5vIFwKIAlndC9pbnRlbF9lbmdpbmVfcG0ubyBcCisJZ3QvaW50ZWxfZW5naW5l X3Bvb2wubyBcCiAJZ3QvaW50ZWxfZW5naW5lX3VzZXIubyBcCiAJZ3QvaW50ZWxfZ3QubyBcCiAJ Z3QvaW50ZWxfZ3RfaXJxLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf ZW5naW5lX2hlYXJ0YmVhdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNGI5YWI3ODEzZDU0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwg Q29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCisKKyNpbmNsdWRl ICJpbnRlbF9jb250ZXh0LmgiCisjaW5jbHVkZSAiaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5oIgor I2luY2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImludGVsX2VuZ2luZS5oIgor I2luY2x1ZGUgImludGVsX2d0LmgiCisKK3N0YXRpYyB2b2lkIGlkbGVfcHVsc2Uoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwllbmdp bmUtPndha2VyZWZfc2VyaWFsID0gUkVBRF9PTkNFKGVuZ2luZS0+c2VyaWFsKSArIDE7CisJaTkx NV9yZXF1ZXN0X2FkZF9hY3RpdmVfYmFycmllcnMocnEpOworfQorCitpbnQgaW50ZWxfZW5naW5l X3B1bHNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlzdHJ1Y3QgaTkxNV9z Y2hlZF9hdHRyIGF0dHIgPSB7IC5wcmlvcml0eSA9IEk5MTVfUFJJT1JJVFlfQkFSUklFUiB9Owor CXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IGVuZ2luZS0+a2VybmVsX2NvbnRleHQ7CisJc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnE7CisJaW50IGVyciA9IDA7CisKKwlpZiAoIWludGVsX2VuZ2lu ZV9oYXNfcHJlZW1wdGlvbihlbmdpbmUpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmICghaW50 ZWxfZW5naW5lX3BtX2dldF9pZl9hd2FrZShlbmdpbmUpKQorCQlyZXR1cm4gMDsKKworCWlmICht dXRleF9sb2NrX2ludGVycnVwdGlibGUoJmNlLT50aW1lbGluZS0+bXV0ZXgpKQorCQlnb3RvIG91 dF9ycG07CisKKwlpbnRlbF9jb250ZXh0X2VudGVyKGNlKTsKKwlycSA9IF9faTkxNV9yZXF1ZXN0 X2NyZWF0ZShjZSwgR0ZQX05PV0FJVCB8IF9fR0ZQX05PV0FSTik7CisJaW50ZWxfY29udGV4dF9l eGl0KGNlKTsKKwlpZiAoSVNfRVJSKHJxKSkgeworCQllcnIgPSBQVFJfRVJSKHJxKTsKKwkJZ290 byBvdXRfdW5sb2NrOworCX0KKworCXJxLT5mbGFncyB8PSBJOTE1X1JFUVVFU1RfU0VOVElORUw7 CisJaWRsZV9wdWxzZShlbmdpbmUsIHJxKTsKKworCV9faTkxNV9yZXF1ZXN0X2NvbW1pdChycSk7 CisJX19pOTE1X3JlcXVlc3RfcXVldWUocnEsICZhdHRyKTsKKworb3V0X3VubG9jazoKKwltdXRl eF91bmxvY2soJmNlLT50aW1lbGluZS0+bXV0ZXgpOworb3V0X3JwbToKKwlpbnRlbF9lbmdpbmVf cG1fcHV0KGVuZ2luZSk7CisJcmV0dXJuIGVycjsKK30KKworaW50IGludGVsX2VuZ2luZV9mbHVz aF9iYXJyaWVycyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnE7CisKKwlpZiAobGxpc3RfZW1wdHkoJmVuZ2luZS0+YmFycmllcl90YXNr cykpCisJCXJldHVybiAwOworCisJcnEgPSBpOTE1X3JlcXVlc3RfY3JlYXRlKGVuZ2luZS0+a2Vy bmVsX2NvbnRleHQpOworCWlmIChJU19FUlIocnEpKQorCQlyZXR1cm4gUFRSX0VSUihycSk7CisK KwlpZGxlX3B1bHNlKGVuZ2luZSwgcnEpOworCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCisJcmV0 dXJuIDA7Cit9CisKKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKKyNp bmNsdWRlICJzZWxmdGVzdF9lbmdpbmVfaGVhcnRiZWF0LmMiCisjZW5kaWYKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9oZWFydGJlYXQuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9oZWFydGJlYXQuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIzMzRlNWFhZjc4ZAotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9oZWFydGJlYXQuaApAQCAt MCwwICsxLDE1IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAq IENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBJTlRF TF9FTkdJTkVfSEVBUlRCRUFUX0gKKyNkZWZpbmUgSU5URUxfRU5HSU5FX0hFQVJUQkVBVF9ICisK K3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7CisKK2ludCBpbnRlbF9lbmdpbmVfcHVsc2Uoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKK2ludCBpbnRlbF9lbmdpbmVfZmx1c2hfYmFycmll cnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKKworI2VuZGlmIC8qIElOVEVMX0VO R0lORV9IRUFSVEJFQVRfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVf cG0uYwppbmRleCA2N2ViNjE4MzY0OGEuLjdkNzY2MTFkOWRmMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMgYm9v bCBzd2l0Y2hfdG9fa2VybmVsX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogCWk5MTVfcmVxdWVzdF9hZGRfYWN0aXZlX2JhcnJpZXJzKHJxKTsKIAogCS8qIEluc3RhbGwg b3Vyc2VsdmVzIGFzIGEgcHJlZW1wdGlvbiBiYXJyaWVyICovCi0JcnEtPnNjaGVkLmF0dHIucHJp b3JpdHkgPSBJOTE1X1BSSU9SSVRZX1VOUFJFRU1QVEFCTEU7CisJcnEtPnNjaGVkLmF0dHIucHJp b3JpdHkgPSBJOTE1X1BSSU9SSVRZX0JBUlJJRVI7CiAJX19pOTE1X3JlcXVlc3RfY29tbWl0KHJx KTsKIAogCS8qIFJlbGVhc2Ugb3VyIGV4Y2x1c2l2ZSBob2xkIG9uIHRoZSBlbmdpbmUgKi8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2luZV9oZWFydGJl YXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2luZV9oZWFydGJlYXQu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFmNWFiNTlhZDZlNwot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2lu ZV9oZWFydGJlYXQuYwpAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgor ICovCisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCisjaW5jbHVkZSAiaW50ZWxfZ3RfcmVxdWVz dHMuaCIKKyNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCisKK3N0cnVjdCBwdWxzZSB7CisJc3Ry dWN0IGk5MTVfYWN0aXZlIGFjdGl2ZTsKKwlzdHJ1Y3Qga3JlZiBrcmVmOworfTsKKworc3RhdGlj IGludCBwdWxzZV9hY3RpdmUoc3RydWN0IGk5MTVfYWN0aXZlICphY3RpdmUpCit7CisJa3JlZl9n ZXQoJmNvbnRhaW5lcl9vZihhY3RpdmUsIHN0cnVjdCBwdWxzZSwgYWN0aXZlKS0+a3JlZik7CisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHB1bHNlX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYp Cit7CisJa2ZyZWUoY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBwdWxzZSwga3JlZikpOworfQor CitzdGF0aWMgdm9pZCBwdWxzZV9wdXQoc3RydWN0IHB1bHNlICpwKQoreworCWtyZWZfcHV0KCZw LT5rcmVmLCBwdWxzZV9mcmVlKTsKK30KKworc3RhdGljIHZvaWQgcHVsc2VfcmV0aXJlKHN0cnVj dCBpOTE1X2FjdGl2ZSAqYWN0aXZlKQoreworCXB1bHNlX3B1dChjb250YWluZXJfb2YoYWN0aXZl LCBzdHJ1Y3QgcHVsc2UsIGFjdGl2ZSkpOworfQorCitzdGF0aWMgc3RydWN0IHB1bHNlICpwdWxz ZV9jcmVhdGUodm9pZCkKK3sKKwlzdHJ1Y3QgcHVsc2UgKnA7CisKKwlwID0ga21hbGxvYyhzaXpl b2YoKnApLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXApCisJCXJldHVybiBwOworCisJa3JlZl9pbml0 KCZwLT5rcmVmKTsKKwlpOTE1X2FjdGl2ZV9pbml0KCZwLT5hY3RpdmUsIHB1bHNlX2FjdGl2ZSwg cHVsc2VfcmV0aXJlKTsKKworCXJldHVybiBwOworfQorCitzdGF0aWMgaW50IF9fbGl2ZV9pZGxl X3B1bHNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCSAgICAgaW50ICgqZm4p KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNzKSkKK3sKKwlzdHJ1Y3QgcHVsc2UgKnA7CisJaW50 IGVycjsKKworCXAgPSBwdWxzZV9jcmVhdGUoKTsKKwlpZiAoIXApCisJCXJldHVybiAtRU5PTUVN OworCisJZXJyID0gaTkxNV9hY3RpdmVfYWNxdWlyZSgmcC0+YWN0aXZlKTsKKwlpZiAoZXJyKQor CQlnb3RvIG91dDsKKworCWVyciA9IGk5MTVfYWN0aXZlX2FjcXVpcmVfcHJlYWxsb2NhdGVfYmFy cmllcigmcC0+YWN0aXZlLCBlbmdpbmUpOworCWlmIChlcnIpIHsKKwkJaTkxNV9hY3RpdmVfcmVs ZWFzZSgmcC0+YWN0aXZlKTsKKwkJZ290byBvdXQ7CisJfQorCisJaTkxNV9hY3RpdmVfYWNxdWly ZV9iYXJyaWVyKCZwLT5hY3RpdmUpOworCWk5MTVfYWN0aXZlX3JlbGVhc2UoJnAtPmFjdGl2ZSk7 CisKKwlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX2lzX2lkbGUoJnAtPmFjdGl2ZSkpOworCisJZXJy ID0gZm4oZW5naW5lKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKKworCWlmIChpbnRlbF9ndF9y ZXRpcmVfcmVxdWVzdHNfdGltZW91dChlbmdpbmUtPmd0LCBIWiAvIDUpKSB7CisJCWVyciA9IC1F VElNRTsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKCFpOTE1X2FjdGl2ZV9pc19pZGxlKCZwLT5h Y3RpdmUpKSB7CisJCXByX2VycigiJXM6IGhlYXJ0YmVhdCBwdWxzZSBkaWQgbm90IGZsdXNoIGlk bGUgdGFza3NcbiIsCisJCSAgICAgICBlbmdpbmUtPm5hbWUpOworCQllcnIgPSAtRUlOVkFMOwor CQlnb3RvIG91dDsKKwl9CisKK291dDoKKwlwdWxzZV9wdXQocCk7CisJcmV0dXJuIGVycjsKK30K Kworc3RhdGljIGludCBsaXZlX2lkbGVfZmx1c2godm9pZCAqYXJnKQoreworCXN0cnVjdCBpbnRl bF9ndCAqZ3QgPSBhcmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0g aW50ZWxfZW5naW5lX2lkIGlkOworCWludCBlcnIgPSAwOworCisJLyogQ2hlY2sgdGhhdCB3ZSBj YW4gZmx1c2ggdGhlIGlkbGUgYmFycmllcnMgKi8KKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkgeworCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KGVuZ2luZSk7CisJCWVyciA9IF9fbGl2 ZV9pZGxlX3B1bHNlKGVuZ2luZSwgaW50ZWxfZW5naW5lX2ZsdXNoX2JhcnJpZXJzKTsKKwkJaW50 ZWxfZW5naW5lX3BtX3B1dChlbmdpbmUpOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisJfQorCisJ cmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBsaXZlX2lkbGVfcHVsc2Uodm9pZCAqYXJnKQor eworCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBhcmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCWludCBlcnIgPSAwOworCisJLyog Q2hlY2sgdGhhdCBoZWFydGJlYXQgcHVsc2VzIGZsdXNoIHRoZSBpZGxlIGJhcnJpZXJzICovCisK Kwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKKwkJaW50ZWxfZW5naW5lX3BtX2dl dChlbmdpbmUpOworCQllcnIgPSBfX2xpdmVfaWRsZV9wdWxzZShlbmdpbmUsIGludGVsX2VuZ2lu ZV9wdWxzZSk7CisJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKKwkJaWYgKGVyciAmJiBl cnIgIT0gLUVOT0RFVikKKwkJCWJyZWFrOworCisJCWVyciA9IDA7CisJfQorCisJcmV0dXJuIGVy cjsKK30KKworaW50IGludGVsX2hlYXJ0YmVhdF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0 ZXN0c1tdID0geworCQlTVUJURVNUKGxpdmVfaWRsZV9mbHVzaCksCisJCVNVQlRFU1QobGl2ZV9p ZGxlX3B1bHNlKSwKKwl9OworCWludCBzYXZlZF9oYW5nY2hlY2s7CisJaW50IGVycjsKKworCWlm IChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKKwkJcmV0dXJuIDA7CisKKwlzYXZlZF9o YW5nY2hlY2sgPSBpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrOworCWk5MTVfbW9kcGFy YW1zLmVuYWJsZV9oYW5nY2hlY2sgPSBJTlRfTUFYOworCisJZXJyID0gIGludGVsX2d0X2xpdmVf c3VidGVzdHModGVzdHMsICZpOTE1LT5ndCk7CisKKwlpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFu Z2NoZWNrID0gc2F2ZWRfaGFuZ2NoZWNrOworCXJldHVybiBlcnI7Cit9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9hY3RpdmUuYwppbmRleCA3OTI3YjFhMGM3YTYuLjA3ZDM5ZjIyYTJjMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2FjdGl2ZS5jCkBAIC01OTUsNiArNTk1LDcgQEAgaW50IGk5MTVfYWN0aXZl X2FjcXVpcmVfcHJlYWxsb2NhdGVfYmFycmllcihzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwKIAlz dHJ1Y3QgbGxpc3Rfbm9kZSAqcG9zLCAqbmV4dDsKIAlpbnQgZXJyOwogCisJR0VNX0JVR19PTihp OTE1X2FjdGl2ZV9pc19pZGxlKHJlZikpOwogCUdFTV9CVUdfT04oIWxsaXN0X2VtcHR5KCZyZWYt PnByZWFsbG9jYXRlZF9iYXJyaWVycykpOwogCiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcHJpb2xpc3RfdHlwZXMuaAppbmRleCAyMTAzN2EyZTIwMzguLmFlOGJiM2NiNjI3ZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wcmlvbGlzdF90eXBlcy5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMuaApAQCAtMzksNiArMzks NyBAQCBlbnVtIHsKICAqIGFjdGl2ZSByZXF1ZXN0LgogICovCiAjZGVmaW5lIEk5MTVfUFJJT1JJ VFlfVU5QUkVFTVBUQUJMRSBJTlRfTUFYCisjZGVmaW5lIEk5MTVfUFJJT1JJVFlfQkFSUklFUiBJ TlRfTUFYCiAKICNkZWZpbmUgX19OT19QUkVFTVBUSU9OIChJOTE1X1BSSU9SSVRZX1dBSVQpCiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2Vs ZnRlc3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0 ZXN0cy5oCmluZGV4IDZkYWY2NTk5ZWM3OS4uMDBhMDYzNzMwYmMzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3RzLmgKQEAgLTE3 LDYgKzE3LDcgQEAgc2VsZnRlc3QoZ3RfdGltZWxpbmVzLCBpbnRlbF90aW1lbGluZV9saXZlX3Nl bGZ0ZXN0cykKIHNlbGZ0ZXN0KGd0X2NvbnRleHRzLCBpbnRlbF9jb250ZXh0X2xpdmVfc2VsZnRl c3RzKQogc2VsZnRlc3QoZ3RfbHJjLCBpbnRlbF9scmNfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVz dChndF9wbSwgaW50ZWxfZ3RfcG1fbGl2ZV9zZWxmdGVzdHMpCitzZWxmdGVzdChndF9oZWFydGJl YXQsIGludGVsX2hlYXJ0YmVhdF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KHJlcXVlc3RzLCBp OTE1X3JlcXVlc3RfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChhY3RpdmUsIGk5MTVfYWN0aXZl X2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3Qob2JqZWN0cywgaTkxNV9nZW1fb2JqZWN0X2xpdmVf c2VsZnRlc3RzKQotLSAKMi4yNC4wLnJjMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4