From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 2/2] drm/i915/execlists: Pack the count into the low bits of the port.request Date: Fri, 31 Mar 2017 15:10:33 +0100 Message-ID: <20170331141033.20743-2-chris@chris-wilson.co.uk> References: <20170331141033.20743-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 mail-wr0-x243.google.com (mail-wr0-x243.google.com [IPv6:2a00:1450:400c:c0c::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 78E0189CF4 for ; Fri, 31 Mar 2017 14:10:39 +0000 (UTC) Received: by mail-wr0-x243.google.com with SMTP id u18so21099666wrc.0 for ; Fri, 31 Mar 2017 07:10:39 -0700 (PDT) In-Reply-To: <20170331141033.20743-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 Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org YWRkL3JlbW92ZTogMS8xIGdyb3cvc2hyaW5rOiA1LzQgdXAvZG93bjogMzkxLy01NzggKC0xODcp CmZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZCAgICAgbmV3 ICAgZGVsdGEKZXhlY2xpc3RzX3N1Ym1pdF9wb3J0cyAgICAgICAgICAgICAgICAgICAgICAgMjYy ICAgICA0NzEgICAgKzIwOQpwb3J0X2Fzc2lnbi5pc3JhICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0gICAgIDEzNiAgICArMTM2CmNhcHR1cmUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgNjM0NCAgICA2MzU5ICAgICArMTUKcmVzZXRfY29tbW9uX3JpbmcgICAgICAg ICAgICAgICAgICAgICAgICAgICAgNDM4ICAgICA0NTIgICAgICsxNApleGVjbGlzdHNfc3VibWl0 X3JlcXVlc3QgICAgICAgICAgICAgICAgICAgICAyMjggICAgIDIzOCAgICAgKzEwCmdlbjhfaW5p dF9jb21tb25fcmluZyAgICAgICAgICAgICAgICAgICAgICAgIDMzNCAgICAgMzQxICAgICAgKzcK aW50ZWxfZW5naW5lX2lzX2lkbGUgICAgICAgICAgICAgICAgICAgICAgICAgMTA2ICAgICAxMDUg ICAgICAtMQppOTE1X2VuZ2luZV9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzMTQg ICAgMjI5MCAgICAgLTI0Cl9faTkxNV9nZW1fc2V0X3dlZGdlZF9CS0wgICAgICAgICAgICAgICAg ICAgIDQ4NSAgICAgNDExICAgICAtNzQKaW50ZWxfbHJjX2lycV9oYW5kbGVyICAgICAgICAgICAg ICAgICAgICAgICAxNzg5ICAgIDE2MDQgICAgLTE4NQpleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQg ICAgICAgICAgICAgICAgICAgICAyOTQgICAgICAgLSAgICAtMjk0CgpUaGUgbW9zdCBpbXBvcnRh bnQgY2hhbmdlIHRoZXJlIGlzIHRoZSBpbXByb3ZlIHRvIHRoZQppbnRlbF9scmNfaXJxX2hhbmRs ZXIgYW5kIGV4Y2NsaXN0X3N1Ym1pdF9wb3J0cyAobmV0IGltcHJvdmVtZW50IHNpbmNlCmV4ZWNs aXN0c191cGRhdGVfY29udGV4dCBpcyBub3cgaW5saW5lZCkuCgpTaWduZWQtb2ZmLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAgMzIgKysrKy0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgMTMgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAgMTggKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZW5naW5lX2NzLmMgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyAgICAgICAgICAgfCAxMzMgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICB8ICAgOCArLQogNyBmaWxlcyBj aGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwppbmRleCBkNjg5ZTUxMTc0NGUuLjAyNzM1OTFjNDNhZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTMzMTcsNiArMzMxNyw3IEBAIHN0YXRpYyBp bnQgaTkxNV9lbmdpbmVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJ aWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewogCQkJdTMyIHB0ciwgcmVhZCwgd3JpdGU7CiAJ CQlzdHJ1Y3QgcmJfbm9kZSAqcmI7CisJCQl1bnNpZ25lZCBpbnQgaWR4OwogCiAJCQlzZXFfcHJp bnRmKG0sICJcdEV4ZWNsaXN0IHN0YXR1czogMHglMDh4ICUwOHhcbiIsCiAJCQkJICAgSTkxNV9S RUFEKFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0xPKGVuZ2luZSkpLApAQCAtMzMzNCw4ICszMzM1LDcg QEAgc3RhdGljIGludCBpOTE1X2VuZ2luZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAq dW51c2VkKQogCQkJaWYgKHJlYWQgPiB3cml0ZSkKIAkJCQl3cml0ZSArPSBHRU44X0NTQl9FTlRS SUVTOwogCQkJd2hpbGUgKHJlYWQgPCB3cml0ZSkgewotCQkJCXVuc2lnbmVkIGludCBpZHggPSAr K3JlYWQgJSBHRU44X0NTQl9FTlRSSUVTOwotCisJCQkJaWR4ID0gKytyZWFkICUgR0VOOF9DU0Jf RU5UUklFUzsKIAkJCQlzZXFfcHJpbnRmKG0sICJcdEV4ZWNsaXN0IENTQlslZF06IDB4JTA4eCwg Y29udGV4dDogJWRcbiIsCiAJCQkJCSAgIGlkeCwKIAkJCQkJICAgSTkxNV9SRUFEKFJJTkdfQ09O VEVYVF9TVEFUVVNfQlVGX0xPKGVuZ2luZSwgaWR4KSksCkBAIC0zMzQzLDIxICszMzQzLDE5IEBA IHN0YXRpYyBpbnQgaTkxNV9lbmdpbmVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVu dXNlZCkKIAkJCX0KIAogCQkJcmN1X3JlYWRfbG9jaygpOwotCQkJcnEgPSBSRUFEX09OQ0UoZW5n aW5lLT5leGVjbGlzdF9wb3J0WzBdLnJlcXVlc3QpOwotCQkJaWYgKHJxKSB7Ci0JCQkJc2VxX3By aW50ZihtLCAiXHRcdEVMU1BbMF0gY291bnQ9JWQsICIsCi0JCQkJCSAgIGVuZ2luZS0+ZXhlY2xp c3RfcG9ydFswXS5jb3VudCk7Ci0JCQkJcHJpbnRfcmVxdWVzdChtLCBycSwgInJxOiAiKTsKLQkJ CX0gZWxzZSB7Ci0JCQkJc2VxX3ByaW50ZihtLCAiXHRcdEVMU1BbMF0gaWRsZVxuIik7Ci0JCQl9 Ci0JCQlycSA9IFJFQURfT05DRShlbmdpbmUtPmV4ZWNsaXN0X3BvcnRbMV0ucmVxdWVzdCk7Ci0J CQlpZiAocnEpIHsKLQkJCQlzZXFfcHJpbnRmKG0sICJcdFx0RUxTUFsxXSBjb3VudD0lZCwgIiwK LQkJCQkJICAgZW5naW5lLT5leGVjbGlzdF9wb3J0WzFdLmNvdW50KTsKLQkJCQlwcmludF9yZXF1 ZXN0KG0sIHJxLCAicnE6ICIpOwotCQkJfSBlbHNlIHsKLQkJCQlzZXFfcHJpbnRmKG0sICJcdFx0 RUxTUFsxXSBpZGxlXG4iKTsKKwkJCWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShlbmdp bmUtPmV4ZWNsaXN0X3BvcnQpOyBpZHgrKykgeworCQkJCXVuc2lnbmVkIGludCBjb3VudDsKKwor CQkJCXJxID0gcG9ydF91bnBhY2soJmVuZ2luZS0+ZXhlY2xpc3RfcG9ydFtpZHhdLAorCQkJCQkJ IGNvdW50KTsKKwkJCQlpZiAocnEpIHsKKwkJCQkJc2VxX3ByaW50ZihtLCAiXHRcdEVMU1BbJWRd IGNvdW50PSVkLCAiLAorCQkJCQkJICAgaWR4LCBjb3VudCk7CisJCQkJCXByaW50X3JlcXVlc3Qo bSwgcnEsICJycTogIik7CisJCQkJfSBlbHNlIHsKKwkJCQkJc2VxX3ByaW50ZihtLCAiXHRcdEVM U1BbJWRdIGlkbGVcbiIsCisJCQkJCQkgICBpZHgpOworCQkJCX0KIAkJCX0KIAkJCXJjdV9yZWFk X3VubG9jaygpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA4MjYzODg5NWFkMjAuLjk0 NjA1MGJmNDI4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yOTY3LDEyICsyOTY3LDE0 IEBAIHN0YXRpYyB2b2lkIGVuZ2luZV9zZXRfd2VkZ2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAkgKi8KIAogCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKKwkJc3RydWN0 IGV4ZWNsaXN0X3BvcnQgKnBvcnQgPSBlbmdpbmUtPmV4ZWNsaXN0X3BvcnQ7CiAJCXVuc2lnbmVk IGxvbmcgZmxhZ3M7CisJCXVuc2lnbmVkIGludCBuOwogCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZl bmdpbmUtPnRpbWVsaW5lLT5sb2NrLCBmbGFncyk7CiAKLQkJaTkxNV9nZW1fcmVxdWVzdF9wdXQo ZW5naW5lLT5leGVjbGlzdF9wb3J0WzBdLnJlcXVlc3QpOwotCQlpOTE1X2dlbV9yZXF1ZXN0X3B1 dChlbmdpbmUtPmV4ZWNsaXN0X3BvcnRbMV0ucmVxdWVzdCk7CisJCWZvciAobiA9IDA7IG4gPCBB UlJBWV9TSVpFKGVuZ2luZS0+ZXhlY2xpc3RfcG9ydCk7IG4rKykKKwkJCWk5MTVfZ2VtX3JlcXVl c3RfcHV0KHBvcnRfcmVxdWVzdCgmcG9ydFtuXSkpOwogCQltZW1zZXQoZW5naW5lLT5leGVjbGlz dF9wb3J0LCAwLCBzaXplb2YoZW5naW5lLT5leGVjbGlzdF9wb3J0KSk7CiAJCWVuZ2luZS0+ZXhl Y2xpc3RfcXVldWUgPSBSQl9ST09UOwogCQllbmdpbmUtPmV4ZWNsaXN0X2ZpcnN0ID0gTlVMTDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCmluZGV4IDhlZmZjNTlmNWNiNS4uYzg2 YTNiZDg5NDY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTEzMTYs MTIgKzEzMTYsMTcgQEAgc3RhdGljIHZvaWQgZW5naW5lX3JlY29yZF9yZXF1ZXN0cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiBzdGF0aWMgdm9pZCBlcnJvcl9yZWNvcmRfZW5naW5l X2V4ZWNsaXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJCSAgc3RydWN0 IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUpCiB7CisJY29uc3Qgc3RydWN0IGV4ZWNsaXN0X3Bv cnQgKnBvcnQgPSBlbmdpbmUtPmV4ZWNsaXN0X3BvcnQ7CiAJdW5zaWduZWQgaW50IG47CiAKLQlm b3IgKG4gPSAwOyBuIDwgQVJSQVlfU0laRShlbmdpbmUtPmV4ZWNsaXN0X3BvcnQpOyBuKyspCi0J CWlmIChlbmdpbmUtPmV4ZWNsaXN0X3BvcnRbbl0ucmVxdWVzdCkKLQkJCXJlY29yZF9yZXF1ZXN0 KGVuZ2luZS0+ZXhlY2xpc3RfcG9ydFtuXS5yZXF1ZXN0LAotCQkJCSAgICAgICAmZWUtPmV4ZWNs aXN0W25dKTsKKwlmb3IgKG4gPSAwOyBuIDwgQVJSQVlfU0laRShlbmdpbmUtPmV4ZWNsaXN0X3Bv cnQpOyBuKyspIHsKKwkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSA9IHBvcnRfcmVx dWVzdCgmcG9ydFtuXSk7CisKKwkJaWYgKCFycSkKKwkJCWJyZWFrOworCisJCXJlY29yZF9yZXF1 ZXN0KHJxLCAmZWUtPmV4ZWNsaXN0W25dKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIHJlY29yZF9j b250ZXh0KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9jb250ZXh0ICplLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IDE2NDJmZmY5Y2YxMy4uMzcwMzczYzk3 YjgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9u LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC02 NTgsNyArNjU4LDcgQEAgc3RhdGljIHZvaWQgbmVzdGVkX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKIHN0YXRpYyBib29sIGk5MTVfZ3VjX2RlcXVldWUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBleGVjbGlzdF9wb3J0 ICpwb3J0ID0gZW5naW5lLT5leGVjbGlzdF9wb3J0OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqbGFzdCA9IHBvcnRbMF0ucmVxdWVzdDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKmxhc3QgPSBwb3J0WzBdLnJlcXVlc3RfY291bnQ7CiAJc3RydWN0IHJiX25vZGUgKnJiOwog CWJvb2wgc3VibWl0ID0gZmFsc2U7CiAKQEAgLTY3Miw3ICs2NzIsNyBAQCBzdGF0aWMgYm9vbCBp OTE1X2d1Y19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCWlmIChw b3J0ICE9IGVuZ2luZS0+ZXhlY2xpc3RfcG9ydCkKIAkJCQlicmVhazsKIAotCQkJaTkxNV9nZW1f cmVxdWVzdF9hc3NpZ24oJnBvcnQtPnJlcXVlc3QsIGxhc3QpOworCQkJaTkxNV9nZW1fcmVxdWVz dF9hc3NpZ24oJnBvcnQtPnJlcXVlc3RfY291bnQsIGxhc3QpOwogCQkJbmVzdGVkX2VuYWJsZV9z aWduYWxpbmcobGFzdCk7CiAJCQlwb3J0Kys7CiAJCX0KQEAgLTY4OCw3ICs2ODgsNyBAQCBzdGF0 aWMgYm9vbCBpOTE1X2d1Y19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IAkJc3VibWl0ID0gdHJ1ZTsKIAl9CiAJaWYgKHN1Ym1pdCkgewotCQlpOTE1X2dlbV9yZXF1ZXN0 X2Fzc2lnbigmcG9ydC0+cmVxdWVzdCwgbGFzdCk7CisJCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWdu KCZwb3J0LT5yZXF1ZXN0X2NvdW50LCBsYXN0KTsKIAkJbmVzdGVkX2VuYWJsZV9zaWduYWxpbmco bGFzdCk7CiAJCWVuZ2luZS0+ZXhlY2xpc3RfZmlyc3QgPSByYjsKIAl9CkBAIC03MDUsMTcgKzcw NSwxOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2d1Y19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRh dGEpCiAJYm9vbCBzdWJtaXQ7CiAKIAlkbyB7Ci0JCXJxID0gcG9ydFswXS5yZXF1ZXN0OworCQly cSA9IHBvcnRbMF0ucmVxdWVzdF9jb3VudDsKIAkJd2hpbGUgKHJxICYmIGk5MTVfZ2VtX3JlcXVl c3RfY29tcGxldGVkKHJxKSkgewogCQkJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9vdXQocnEpOwog CQkJaTkxNV9nZW1fcmVxdWVzdF9wdXQocnEpOwotCQkJcG9ydFswXS5yZXF1ZXN0ID0gcG9ydFsx XS5yZXF1ZXN0OwotCQkJcG9ydFsxXS5yZXF1ZXN0ID0gTlVMTDsKLQkJCXJxID0gcG9ydFswXS5y ZXF1ZXN0OworCisJCQlwb3J0WzBdLnJlcXVlc3RfY291bnQgPSBwb3J0WzFdLnJlcXVlc3RfY291 bnQ7CisJCQlwb3J0WzFdLnJlcXVlc3RfY291bnQgPSBOVUxMOworCisJCQlycSA9IHBvcnRbMF0u cmVxdWVzdF9jb3VudDsKIAkJfQogCiAJCXN1Ym1pdCA9IGZhbHNlOwotCQlpZiAoIXBvcnRbMV0u cmVxdWVzdCkKKwkJaWYgKCFwb3J0WzFdLnJlcXVlc3RfY291bnQpCiAJCQlzdWJtaXQgPSBpOTE1 X2d1Y19kZXF1ZXVlKGVuZ2luZSk7CiAJfSB3aGlsZSAoc3VibWl0KTsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggODU0ZThlMGM4MzZiLi5mY2E3MTYwYTI5YzIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0xMDk2LDcgKzEwOTYs NyBAQCBib29sIGludGVsX2VuZ2luZV9pc19pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogQm90aCBwb3J0cyBkcmFpbmVkLCBubyBtb3Jl IEVMU1Agc3VibWlzc2lvbj8gKi8KLQlpZiAoZW5naW5lLT5leGVjbGlzdF9wb3J0WzBdLnJlcXVl c3QpCisJaWYgKHBvcnRfcmVxdWVzdCgmZW5naW5lLT5leGVjbGlzdF9wb3J0WzBdKSkKIAkJcmV0 dXJuIGZhbHNlOwogCiAJLyogUmluZyBzdG9wcGVkPyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwppbmRleCBjOGY3YzYzMWZjMWYuLmZjYzc0Y2FhZjI5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKQEAgLTM0MiwzOSArMzQyLDMyIEBAIHN0YXRpYyB1NjQgZXhlY2xpc3RzX3VwZGF0ZV9j b250ZXh0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCiAKIHN0YXRpYyB2b2lkIGV4 ZWNsaXN0c19zdWJtaXRfcG9ydHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKIAlzdHJ1 Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGVuZ2luZS0+ZXhlY2xpc3RfcG9ydDsKIAl1MzIgX19p b21lbSAqZWxzcCA9Ci0JCWRldl9wcml2LT5yZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklO R19FTFNQKGVuZ2luZSkpOwotCXU2NCBkZXNjWzJdOwotCi0JR0VNX0JVR19PTihwb3J0WzBdLmNv dW50ID4gMSk7Ci0JaWYgKCFwb3J0WzBdLmNvdW50KQotCQlleGVjbGlzdHNfY29udGV4dF9zdGF0 dXNfY2hhbmdlKHBvcnRbMF0ucmVxdWVzdCwKLQkJCQkJCUlOVEVMX0NPTlRFWFRfU0NIRURVTEVf SU4pOwotCWRlc2NbMF0gPSBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQocG9ydFswXS5yZXF1ZXN0 KTsKLQlHRU1fREVCVUdfRVhFQyhwb3J0WzBdLmNvbnRleHRfaWQgPSB1cHBlcl8zMl9iaXRzKGRl c2NbMF0pKTsKLQlwb3J0WzBdLmNvdW50Kys7Ci0KLQlpZiAocG9ydFsxXS5yZXF1ZXN0KSB7Ci0J CUdFTV9CVUdfT04ocG9ydFsxXS5jb3VudCk7Ci0JCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19j aGFuZ2UocG9ydFsxXS5yZXF1ZXN0LAotCQkJCQkJSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9JTik7 Ci0JCWRlc2NbMV0gPSBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQocG9ydFsxXS5yZXF1ZXN0KTsK LQkJR0VNX0RFQlVHX0VYRUMocG9ydFsxXS5jb250ZXh0X2lkID0gdXBwZXJfMzJfYml0cyhkZXNj WzFdKSk7Ci0JCXBvcnRbMV0uY291bnQgPSAxOwotCX0gZWxzZSB7Ci0JCWRlc2NbMV0gPSAwOwot CX0KLQlHRU1fQlVHX09OKGRlc2NbMF0gPT0gZGVzY1sxXSk7Ci0KLQkvKiBZb3UgbXVzdCBhbHdh eXMgd3JpdGUgYm90aCBkZXNjcmlwdG9ycyBpbiB0aGUgb3JkZXIgYmVsb3cuICovCi0Jd3JpdGVs KHVwcGVyXzMyX2JpdHMoZGVzY1sxXSksIGVsc3ApOwotCXdyaXRlbChsb3dlcl8zMl9iaXRzKGRl c2NbMV0pLCBlbHNwKTsKKwkJZW5naW5lLT5pOTE1LT5yZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZz ZXQoUklOR19FTFNQKGVuZ2luZSkpOworCXVuc2lnbmVkIGludCBuOworCisJZm9yIChuID0gQVJS QVlfU0laRShlbmdpbmUtPmV4ZWNsaXN0X3BvcnQpOyBuLS07ICkgeworCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJxOworCQl1bnNpZ25lZCBpbnQgY291bnQ7CisJCXU2NCBkZXNjOwor CisJCXJxID0gcG9ydF91bnBhY2soJnBvcnRbbl0sIGNvdW50KTsKKwkJaWYgKHJxKSB7CisJCQlH RU1fQlVHX09OKGNvdW50ID4gIW4pOworCQkJaWYgKCFjb3VudCsrKQorCQkJCWV4ZWNsaXN0c19j b250ZXh0X3N0YXR1c19jaGFuZ2UocnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfSU4pOworCQkJ cG9ydFtuXS5yZXF1ZXN0X2NvdW50ID0gcG9ydF9wYWNrKHJxLCBjb3VudCk7CisJCQlkZXNjID0g ZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHJxKTsKKwkJCUdFTV9ERUJVR19FWEVDKHBvcnRbbl0u Y29udGV4dF9pZCA9IHVwcGVyXzMyX2JpdHMoZGVzYykpOworCQl9IGVsc2UgeworCQkJR0VNX0JV R19PTighbik7CisJCQlkZXNjID0gMDsKKwkJfQogCi0Jd3JpdGVsKHVwcGVyXzMyX2JpdHMoZGVz Y1swXSksIGVsc3ApOwotCS8qIFRoZSBjb250ZXh0IGlzIGF1dG9tYXRpY2FsbHkgbG9hZGVkIGFm dGVyIHRoZSBmb2xsb3dpbmcgKi8KLQl3cml0ZWwobG93ZXJfMzJfYml0cyhkZXNjWzBdKSwgZWxz cCk7CisJCXdyaXRlbCh1cHBlcl8zMl9iaXRzKGRlc2MpLCBlbHNwKTsKKwkJd3JpdGVsKGxvd2Vy XzMyX2JpdHMoZGVzYyksIGVsc3ApOworCX0KIH0KIAogc3RhdGljIGJvb2wgY3R4X3NpbmdsZV9w b3J0X3N1Ym1pc3Npb24oY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKQEAgLTM5 NSw2ICszODgsMTggQEAgc3RhdGljIGJvb2wgY2FuX21lcmdlX2N0eChjb25zdCBzdHJ1Y3QgaTkx NV9nZW1fY29udGV4dCAqcHJldiwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHZvaWQgcG9y dF9hc3NpZ24oc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQsCisJCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJxKQoreworCUdFTV9CVUdfT04ocnEgPT0gcG9ydF9yZXF1ZXN0KHBvcnQp KTsKKworCWlmIChwb3J0LT5yZXF1ZXN0X2NvdW50KQorCQlpOTE1X2dlbV9yZXF1ZXN0X3B1dChw b3J0X3JlcXVlc3QocG9ydCkpOworCisJcG9ydC0+cmVxdWVzdF9jb3VudCA9CisJCXBvcnRfcGFj ayhpOTE1X2dlbV9yZXF1ZXN0X2dldChycSksIHBvcnRfY291bnQocG9ydCkpOworfQorCiBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpsYXN0OwpAQCAtNDAyLDcgKzQwNyw3 IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAlzdHJ1Y3QgcmJfbm9kZSAqcmI7CiAJYm9vbCBzdWJtaXQgPSBmYWxzZTsKIAot CWxhc3QgPSBwb3J0LT5yZXF1ZXN0OworCWxhc3QgPSBwb3J0X3JlcXVlc3QocG9ydCk7CiAJaWYg KGxhc3QpCiAJCS8qIFdhSWRsZUxpdGVSZXN0b3JlOmJkdyxza2wKIAkJICogQXBwbHkgdGhlIHdh IE5PT1BzIHRvIHByZXZlbnQgcmluZzpIRUFEID09IHJlcTpUQUlMCkBAIC00MTIsNyArNDE3LDcg QEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogCQkgKi8KIAkJbGFzdC0+dGFpbCA9IGxhc3QtPndhX3RhaWw7CiAKLQlHRU1fQlVH X09OKHBvcnRbMV0ucmVxdWVzdCk7CisJR0VNX0JVR19PTihwb3J0WzFdLnJlcXVlc3RfY291bnQp OwogCiAJLyogSGFyZHdhcmUgc3VibWlzc2lvbiBpcyB0aHJvdWdoIDIgcG9ydHMuIENvbmNlcHR1 YWxseSBlYWNoIHBvcnQKIAkgKiBoYXMgYSAoUklOR19TVEFSVCwgUklOR19IRUFELCBSSU5HX1RB SUwpIHR1cGxlLiBSSU5HX1NUQVJUIGlzCkBAIC00NjksNyArNDc0LDggQEAgc3RhdGljIHZvaWQg ZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJCQlH RU1fQlVHX09OKGxhc3QtPmN0eCA9PSBjdXJzb3ItPmN0eCk7CiAKLQkJCWk5MTVfZ2VtX3JlcXVl c3RfYXNzaWduKCZwb3J0LT5yZXF1ZXN0LCBsYXN0KTsKKwkJCWlmIChzdWJtaXQpCisJCQkJcG9y dF9hc3NpZ24ocG9ydCwgbGFzdCk7CiAJCQlwb3J0Kys7CiAJCX0KIApAQCAtNDg0LDcgKzQ5MCw3 IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAkJc3VibWl0ID0gdHJ1ZTsKIAl9CiAJaWYgKHN1Ym1pdCkgewotCQlpOTE1X2dl bV9yZXF1ZXN0X2Fzc2lnbigmcG9ydC0+cmVxdWVzdCwgbGFzdCk7CisJCXBvcnRfYXNzaWduKHBv cnQsIGxhc3QpOwogCQllbmdpbmUtPmV4ZWNsaXN0X2ZpcnN0ID0gcmI7CiAJfQogCXNwaW5fdW5s b2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7CkBAIC00OTUsMTQgKzUwMSwxNCBAQCBz dGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCiAKIHN0YXRpYyBib29sIGV4ZWNsaXN0c19lbHNwX2lkbGUoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogewotCXJldHVybiAhZW5naW5lLT5leGVjbGlzdF9wb3J0WzBdLnJlcXVl c3Q7CisJcmV0dXJuICFwb3J0X2NvdW50KCZlbmdpbmUtPmV4ZWNsaXN0X3BvcnRbMF0pOwogfQog CiBzdGF0aWMgYm9vbCBleGVjbGlzdHNfZWxzcF9yZWFkeShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiB7CiAJY29uc3Qgc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQgPSBl bmdpbmUtPmV4ZWNsaXN0X3BvcnQ7CiAKLQlyZXR1cm4gcG9ydFswXS5jb3VudCArIHBvcnRbMV0u Y291bnQgPCAyOworCXJldHVybiBwb3J0X2NvdW50KCZwb3J0WzBdKSArIHBvcnRfY291bnQoJnBv cnRbMV0pIDwgMjsKIH0KIAogLyoKQEAgLTU0Myw3ICs1NDksOSBAQCBzdGF0aWMgdm9pZCBpbnRl bF9scmNfaXJxX2hhbmRsZXIodW5zaWduZWQgbG9uZyBkYXRhKQogCQl0YWlsID0gR0VOOF9DU0Jf V1JJVEVfUFRSKGhlYWQpOwogCQloZWFkID0gR0VOOF9DU0JfUkVBRF9QVFIoaGVhZCk7CiAJCXdo aWxlIChoZWFkICE9IHRhaWwpIHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnE7 CiAJCQl1bnNpZ25lZCBpbnQgc3RhdHVzOworCQkJdW5zaWduZWQgaW50IGNvdW50OwogCiAJCQlp ZiAoKytoZWFkID09IEdFTjhfQ1NCX0VOVFJJRVMpCiAJCQkJaGVhZCA9IDA7CkBAIC01NzMsMjAg KzU4MSwyNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIodW5zaWduZWQgbG9u ZyBkYXRhKQogCQkJR0VNX0RFQlVHX0JVR19PTihyZWFkbChidWYgKyAyICogaGVhZCArIDEpICE9 CiAJCQkJCSBwb3J0WzBdLmNvbnRleHRfaWQpOwogCi0JCQlHRU1fQlVHX09OKHBvcnRbMF0uY291 bnQgPT0gMCk7Ci0JCQlpZiAoLS1wb3J0WzBdLmNvdW50ID09IDApIHsKKwkJCXJxID0gcG9ydF91 bnBhY2soJnBvcnRbMF0sIGNvdW50KTsKKwkJCUdFTV9CVUdfT04oY291bnQgPT0gMCk7CisJCQlp ZiAoLS1jb3VudCA9PSAwKSB7CiAJCQkJR0VNX0JVR19PTihzdGF0dXMgJiBHRU44X0NUWF9TVEFU VVNfUFJFRU1QVEVEKTsKLQkJCQlHRU1fQlVHX09OKCFpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZChwb3J0WzBdLnJlcXVlc3QpKTsKLQkJCQlleGVjbGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdl KHBvcnRbMF0ucmVxdWVzdCwKLQkJCQkJCQkJSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9PVVQpOwor CQkJCUdFTV9CVUdfT04oIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJxKSk7CisJCQkJZXhl Y2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9P VVQpOworCisJCQkJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9vdXQocnEpOworCQkJCWk5MTVfZ2Vt X3JlcXVlc3RfcHV0KHJxKTsKIAotCQkJCXRyYWNlX2k5MTVfZ2VtX3JlcXVlc3Rfb3V0KHBvcnRb MF0ucmVxdWVzdCk7Ci0JCQkJaTkxNV9nZW1fcmVxdWVzdF9wdXQocG9ydFswXS5yZXF1ZXN0KTsK IAkJCQlwb3J0WzBdID0gcG9ydFsxXTsKIAkJCQltZW1zZXQoJnBvcnRbMV0sIDAsIHNpemVvZihw b3J0WzFdKSk7CisJCQl9IGVsc2UgeworCQkJCXBvcnRbMF0ucmVxdWVzdF9jb3VudCA9IHBvcnRf cGFjayhycSwgY291bnQpOwogCQkJfQogCi0JCQlHRU1fQlVHX09OKHBvcnRbMF0uY291bnQgPT0g MCAmJgorCQkJLyogQWZ0ZXIgdGhlIGZpbmFsIGVsZW1lbnQsIHRoZSBodyBzaG91bGQgYmUgaWRs ZSAqLworCQkJR0VNX0JVR19PTihwb3J0X2NvdW50KCZwb3J0WzBdKSA9PSAwICYmCiAJCQkJICAg IShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZFX0lETEUpKTsKIAkJfQogCkBAIC0xMTM5 LDExICsxMTUxLDYgQEAgc3RhdGljIGludCBpbnRlbF9pbml0X3dvcmthcm91bmRfYmIoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB1MzIg cG9ydF9zZXFubyhzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCkKLXsKLQlyZXR1cm4gcG9ydC0+ cmVxdWVzdCA/IHBvcnQtPnJlcXVlc3QtPmdsb2JhbF9zZXFubyA6IDA7Ci19Ci0KIHN0YXRpYyBp bnQgZ2VuOF9pbml0X2NvbW1vbl9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CkBA IC0xMTY4LDEyICsxMTc1LDIyIEBAIHN0YXRpYyBpbnQgZ2VuOF9pbml0X2NvbW1vbl9yaW5nKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkvKiBBZnRlciBhIEdQVSByZXNldCwgd2Ug bWF5IGhhdmUgcmVxdWVzdHMgdG8gcmVwbGF5ICovCiAJY2xlYXJfYml0KEVOR0lORV9JUlFfRVhF Q0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpOwogCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1p c3Npb24gJiYgIWV4ZWNsaXN0c19lbHNwX2lkbGUoZW5naW5lKSkgewotCQlEUk1fREVCVUdfRFJJ VkVSKCJSZXN0YXJ0aW5nICVzIGZyb20gcmVxdWVzdHMgWzB4JXgsIDB4JXhdXG4iLAotCQkJCSBl bmdpbmUtPm5hbWUsCi0JCQkJIHBvcnRfc2Vxbm8oJmVuZ2luZS0+ZXhlY2xpc3RfcG9ydFswXSks Ci0JCQkJIHBvcnRfc2Vxbm8oJmVuZ2luZS0+ZXhlY2xpc3RfcG9ydFsxXSkpOwotCQllbmdpbmUt PmV4ZWNsaXN0X3BvcnRbMF0uY291bnQgPSAwOwotCQllbmdpbmUtPmV4ZWNsaXN0X3BvcnRbMV0u Y291bnQgPSAwOworCQlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGVuZ2luZS0+ZXhlY2xp c3RfcG9ydDsKKwkJdW5zaWduZWQgaW50IG47CisKKwkJZm9yIChuID0gMDsgbiA8IEFSUkFZX1NJ WkUoZW5naW5lLT5leGVjbGlzdF9wb3J0KTsgbisrKSB7CisJCQlpZiAoIXBvcnRbbl0ucmVxdWVz dF9jb3VudCkKKwkJCQlicmVhazsKKworCQkJRFJNX0RFQlVHX0RSSVZFUigiUmVzdGFydGluZyAl cyBmcm9tIDB4JXggWyVkXVxuIiwKKwkJCQkJIGVuZ2luZS0+bmFtZSwKKwkJCQkJIHBvcnRfcmVx dWVzdCgmcG9ydFtuXSktPmdsb2JhbF9zZXFubywKKwkJCQkJIG4pOworCisJCQkvKiBEaXNjYXJk IHRoZSBjdXJyZW50IGluZmxpZ2h0IGNvdW50ICovCisJCQlwb3J0W25dLnJlcXVlc3RfY291bnQg PSBwb3J0X3JlcXVlc3QoJnBvcnRbbl0pOworCQl9CisKIAkJZXhlY2xpc3RzX3N1Ym1pdF9wb3J0 cyhlbmdpbmUpOwogCX0KIApAQCAtMTI1MiwxMyArMTI2OSwxMyBAQCBzdGF0aWMgdm9pZCByZXNl dF9jb21tb25fcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaW50ZWxfcmlu Z191cGRhdGVfc3BhY2UocmVxdWVzdC0+cmluZyk7CiAKIAkvKiBDYXRjaCB1cCB3aXRoIGFueSBt aXNzZWQgY29udGV4dC1zd2l0Y2ggaW50ZXJydXB0cyAqLwotCWlmIChyZXF1ZXN0LT5jdHggIT0g cG9ydFswXS5yZXF1ZXN0LT5jdHgpIHsKLQkJaTkxNV9nZW1fcmVxdWVzdF9wdXQocG9ydFswXS5y ZXF1ZXN0KTsKKwlpZiAocmVxdWVzdC0+Y3R4ICE9IHBvcnRfcmVxdWVzdCgmcG9ydFswXSktPmN0 eCkgeworCQlpOTE1X2dlbV9yZXF1ZXN0X3B1dChwb3J0X3JlcXVlc3QoJnBvcnRbMF0pKTsKIAkJ cG9ydFswXSA9IHBvcnRbMV07CiAJCW1lbXNldCgmcG9ydFsxXSwgMCwgc2l6ZW9mKHBvcnRbMV0p KTsKIAl9CiAKLQlHRU1fQlVHX09OKHJlcXVlc3QtPmN0eCAhPSBwb3J0WzBdLnJlcXVlc3QtPmN0 eCk7CisJR0VNX0JVR19PTihyZXF1ZXN0LT5jdHggIT0gcG9ydF9yZXF1ZXN0KCZwb3J0WzBdKS0+ Y3R4KTsKIAogCS8qIFJlc2V0IFdhSWRsZUxpdGVSZXN0b3JlOmJkdyxza2wgYXMgd2VsbCAqLwog CXJlcXVlc3QtPnRhaWwgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmlu ZGV4IGE4MmEwODA3ZjY0ZC4uNTE0OTc2NTNjODMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCkBAIC0zNzMsOCArMzczLDEyIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgewogCS8qIEV4ZWNsaXN0cyAqLwogCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCBpcnFfdGFza2xl dDsKIAlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCB7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdDsKLQkJdW5zaWduZWQgaW50IGNvdW50OworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcXVlc3RfY291bnQ7CisjZGVmaW5lIEVYRUNMSVNUX0NPVU5UX0JJVFMgMgor I2RlZmluZSBwb3J0X3JlcXVlc3QocCkgcHRyX21hc2tfYml0cygocCktPnJlcXVlc3RfY291bnQs IEVYRUNMSVNUX0NPVU5UX0JJVFMpCisjZGVmaW5lIHBvcnRfY291bnQocCkgcHRyX3VubWFza19i aXRzKChwKS0+cmVxdWVzdF9jb3VudCwgRVhFQ0xJU1RfQ09VTlRfQklUUykKKyNkZWZpbmUgcG9y dF9wYWNrKHJxLCBjb3VudCkgcHRyX3BhY2tfYml0cyhycSwgY291bnQsIEVYRUNMSVNUX0NPVU5U X0JJVFMpCisjZGVmaW5lIHBvcnRfdW5wYWNrKHAsIGNvdW50KSBwdHJfdW5wYWNrX2JpdHMoKHAp LT5yZXF1ZXN0X2NvdW50LCBjb3VudCwgRVhFQ0xJU1RfQ09VTlRfQklUUykKIAkJR0VNX0RFQlVH X0RFQ0wodTMyIGNvbnRleHRfaWQpOwogCX0gZXhlY2xpc3RfcG9ydFsyXTsKIAlzdHJ1Y3QgcmJf cm9vdCBleGVjbGlzdF9xdWV1ZTsKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==