From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 12/42] drm/i915: Reuse the active golden render state batch Date: Fri, 7 Oct 2016 10:46:05 +0100 Message-ID: <20161007094635.28319-13-chris@chris-wilson.co.uk> References: <20161007094635.28319-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-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id C22F66EB38 for ; Fri, 7 Oct 2016 09:46:55 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id f193so2089329wmg.2 for ; Fri, 07 Oct 2016 02:46:55 -0700 (PDT) In-Reply-To: <20161007094635.28319-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 VGhlIGdvbGRlbiByZW5kZXIgc3RhdGUgaXMgY29uc3RhbnQsIGJ1dCB3ZSByZWNyZWF0ZSB0aGUg YmF0Y2ggc2V0dGluZwppdCB1cCBmb3IgZXZlcnkgbmV3IGNvbnRleHQuIElmIHdlIGtlZXAgdGhh dCBiYXRjaCBpbiBhIHZvbGF0aWxlIGNhY2hlCndlIGNhbiBzYWZlbHkgcmV1c2UgaXQgd2hlbmV2 ZXIgd2UgbmVlZCB0byBpbml0aWFsaXNlIGEgbmV3IGNvbnRleHQuIFdlCm1hcmsgdGhlIHBhZ2Vz IGFzIHB1cmdlYWJsZSBhbmQgdXNlIHRoZSBzaHJpbmtlciB0byByZWNvdmVyIHBhZ2VzIGZyb20K dGhlIGJhdGNoIHdoZW5ldmVyIHdlIGZhY2UgbWVtb3J5IHByZXNzdWVzLCByZWNyZWF0aW5nIHRo YXQgYmF0Y2ggYWZyZXNoCm9uIHRoZSBuZXh0IG5ldyBjb250ZXh0LgoKU2lnbmVkLW9mZi1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBKb29u YXMgTGFodGluZW4gPGpvb25hcy5sYWh0aWVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYyB8IDE4NCArKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0 ZS5oIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAg ICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICB8 ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAgfCAg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICAgIHwgICAz ICsKIDYgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKaW5kZXggYzAw OWVlMWMyN2ZkLi5mYzM0MjFjNTk5MDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlbmRlcl9zdGF0ZS5jCkBAIC0yOCwxNyArMjgsMTkgQEAKICNpbmNsdWRlICJpOTE1X2Ry di5oIgogI2luY2x1ZGUgImludGVsX3JlbmRlcnN0YXRlLmgiCiAKLXN0cnVjdCByZW5kZXJfc3Rh dGUgeworc3RydWN0IGludGVsX3JlbmRlcl9zdGF0ZSB7CiAJY29uc3Qgc3RydWN0IGludGVsX3Jl bmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXUzMiBh dXhfYmF0Y2hfc2l6ZTsKLQl1MzIgYXV4X2JhdGNoX29mZnNldDsKKwl1MzIgYmF0Y2hfb2Zmc2V0 OworCXUzMiBiYXRjaF9zaXplOworCXUzMiBhdXhfb2Zmc2V0OworCXUzMiBhdXhfc2l6ZTsKIH07 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhICoKLXJlbmRl cl9zdGF0ZV9nZXRfcm9kYXRhKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQorcmVuZGVyX3N0YXRlX2dldF9yb2RhdGEoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogewotCXN3aXRjaCAoSU5URUxfR0VOKHJlcS0+aTkxNSkpIHsKKwlzd2l0Y2ggKElO VEVMX0dFTihlbmdpbmUtPmk5MTUpKSB7CiAJY2FzZSA2OgogCQlyZXR1cm4gJmdlbjZfbnVsbF9z dGF0ZTsKIAljYXNlIDc6CkBAIC02MywyOSArNjUsMjcgQEAgcmVuZGVyX3N0YXRlX2dldF9yb2Rh dGEoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAgKi8KICNkZWZpbmUg T1VUX0JBVENIKGJhdGNoLCBpLCB2YWwpCQkJCVwKIAlkbyB7CQkJCQkJCVwKLQkJaWYgKFdBUk5f T04oKGkpID49IFBBR0VfU0laRSAvIHNpemVvZih1MzIpKSkgewlcCi0JCQlyZXQgPSAtRU5PU1BD OwkJCQlcCi0JCQlnb3RvIGVycl9vdXQ7CQkJCVwKLQkJfQkJCQkJCVwKKwkJaWYgKChpKSA+PSBQ QUdFX1NJWkUgLyBzaXplb2YodTMyKSkJCVwKKwkJCWdvdG8gZXJyOwkJCQlcCiAJCShiYXRjaClb KGkpKytdID0gKHZhbCk7CQkJCVwKIAl9IHdoaWxlKDApCiAKLXN0YXRpYyBpbnQgcmVuZGVyX3N0 YXRlX3NldHVwKHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvKQorc3RhdGljIGludCByZW5kZXJfc3Rh dGVfc2V0dXAoc3RydWN0IGludGVsX3JlbmRlcl9zdGF0ZSAqc28sCisJCQkgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc28t PnZtYS0+dm0tPmRldjsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhICpy b2RhdGEgPSBzby0+cm9kYXRhOwotCWNvbnN0IGJvb2wgaGFzXzY0Yml0X3JlbG9jID0gSU5URUxf R0VOKGRldikgPj0gODsKKwljb25zdCBib29sIGhhc182NGJpdF9yZWxvYyA9IElOVEVMX0dFTihp OTE1KSA+PSA4OworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBzby0+dm1hLT5v Ymo7CiAJdW5zaWduZWQgaW50IGkgPSAwLCByZWxvY19pbmRleCA9IDA7Ci0Jc3RydWN0IHBhZ2Ug KnBhZ2U7CisJdW5zaWduZWQgaW50IG5lZWRzX2NsZmx1c2g7CiAJdTMyICpkOwogCWludCByZXQ7 CiAKLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4oc28tPnZtYS0+b2Jq LCB0cnVlKTsKKwlyZXQgPSBpOTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV93cml0ZShvYmosICZu ZWVkc19jbGZsdXNoKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcGFnZSA9IGk5MTVf Z2VtX29iamVjdF9nZXRfZGlydHlfcGFnZShzby0+dm1hLT5vYmosIDApOwotCWQgPSBrbWFwKHBh Z2UpOworCWQgPSBrbWFwX2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0X2RpcnR5X3BhZ2Uob2Jq LCAwKSk7CiAKIAl3aGlsZSAoaSA8IHJvZGF0YS0+YmF0Y2hfaXRlbXMpIHsKIAkJdTMyIHMgPSBy b2RhdGEtPmJhdGNoW2ldOwpAQCAtOTUsMTAgKzk1LDggQEAgc3RhdGljIGludCByZW5kZXJfc3Rh dGVfc2V0dXAoc3RydWN0IHJlbmRlcl9zdGF0ZSAqc28pCiAJCQlzID0gbG93ZXJfMzJfYml0cyhy KTsKIAkJCWlmIChoYXNfNjRiaXRfcmVsb2MpIHsKIAkJCQlpZiAoaSArIDEgPj0gcm9kYXRhLT5i YXRjaF9pdGVtcyB8fAotCQkJCSAgICByb2RhdGEtPmJhdGNoW2kgKyAxXSAhPSAwKSB7Ci0JCQkJ CXJldCA9IC1FSU5WQUw7Ci0JCQkJCWdvdG8gZXJyX291dDsKLQkJCQl9CisJCQkJICAgIHJvZGF0 YS0+YmF0Y2hbaSArIDFdICE9IDApCisJCQkJCWdvdG8gZXJyOwogCiAJCQkJZFtpKytdID0gczsK IAkJCQlzID0gdXBwZXJfMzJfYml0cyhyKTsKQEAgLTExMCwxMiArMTA4LDIwIEBAIHN0YXRpYyBp bnQgcmVuZGVyX3N0YXRlX3NldHVwKHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvKQogCQlkW2krK10g PSBzOwogCX0KIAorCWlmIChyb2RhdGEtPnJlbG9jW3JlbG9jX2luZGV4XSAhPSAtMSkgeworCQlE Uk1fRVJST1IoIm9ubHkgJWQgcmVsb2NzIHJlc29sdmVkXG4iLCByZWxvY19pbmRleCk7CisJCWdv dG8gZXJyOworCX0KKworCXNvLT5iYXRjaF9vZmZzZXQgPSBzby0+dm1hLT5ub2RlLnN0YXJ0Owor CXNvLT5iYXRjaF9zaXplID0gcm9kYXRhLT5iYXRjaF9pdGVtcyAqIHNpemVvZih1MzIpOworCiAJ d2hpbGUgKGkgJSBDQUNIRUxJTkVfRFdPUkRTKQogCQlPVVRfQkFUQ0goZCwgaSwgTUlfTk9PUCk7 CiAKLQlzby0+YXV4X2JhdGNoX29mZnNldCA9IGkgKiBzaXplb2YodTMyKTsKKwlzby0+YXV4X29m ZnNldCA9IGkgKiBzaXplb2YodTMyKTsKIAotCWlmIChIQVNfUE9PTEVEX0VVKGRldikpIHsKKwlp ZiAoSEFTX1BPT0xFRF9FVShpOTE1KSkgewogCQkvKgogCQkgKiBXZSBhbHdheXMgcHJvZ3JhbSAz eDYgcG9vbCBjb25maWcgYnV0IGRlcGVuZGluZyB1cG9uIHdoaWNoCiAJCSAqIHN1YnNsaWNlIGlz IGRpc2FibGVkIEhXIGRyb3BzIGRvd24gdG8gYXBwcm9wcmlhdGUgY29uZmlnCkBAIC0xNDMsODkg KzE0OSwxMzEgQEAgc3RhdGljIGludCByZW5kZXJfc3RhdGVfc2V0dXAoc3RydWN0IHJlbmRlcl9z dGF0ZSAqc28pCiAJfQogCiAJT1VUX0JBVENIKGQsIGksIE1JX0JBVENIX0JVRkZFUl9FTkQpOwot CXNvLT5hdXhfYmF0Y2hfc2l6ZSA9IChpICogc2l6ZW9mKHUzMikpIC0gc28tPmF1eF9iYXRjaF9v ZmZzZXQ7Ci0KKwlzby0+YXV4X3NpemUgPSBpICogc2l6ZW9mKHUzMikgLSBzby0+YXV4X29mZnNl dDsKKwlzby0+YXV4X29mZnNldCArPSBzby0+YmF0Y2hfb2Zmc2V0OwogCS8qCiAJICogU2luY2Ug d2UgYXJlIHNlbmRpbmcgbGVuZ3RoLCB3ZSBuZWVkIHRvIHN0cmljdGx5IGNvbmZvcm0gdG8KIAkg KiBhbGwgcmVxdWlyZW1lbnRzLiBGb3IgR2VuMiB0aGlzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA4 LgogCSAqLwotCXNvLT5hdXhfYmF0Y2hfc2l6ZSA9IEFMSUdOKHNvLT5hdXhfYmF0Y2hfc2l6ZSwg OCk7Ci0KLQlrdW5tYXAocGFnZSk7Ci0KLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0 dF9kb21haW4oc28tPnZtYS0+b2JqLCBmYWxzZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsK LQotCWlmIChyb2RhdGEtPnJlbG9jW3JlbG9jX2luZGV4XSAhPSAtMSkgewotCQlEUk1fRVJST1Io Im9ubHkgJWQgcmVsb2NzIHJlc29sdmVkXG4iLCByZWxvY19pbmRleCk7Ci0JCXJldHVybiAtRUlO VkFMOwotCX0KKwlzby0+YXV4X3NpemUgPSBBTElHTihzby0+YXV4X3NpemUsIDgpOwogCi0JcmV0 dXJuIDA7CisJaWYgKG5lZWRzX2NsZmx1c2gpCisJCWRybV9jbGZsdXNoX3ZpcnRfcmFuZ2UoZCwg aSAqIHNpemVvZih1MzIpKTsKKwlrdW5tYXBfYXRvbWljKGQpOwogCi1lcnJfb3V0OgotCWt1bm1h cChwYWdlKTsKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCBm YWxzZSk7CitvdXQ6CisJaTkxNV9nZW1fb2JqX2ZpbmlzaF9zaG1lbV9hY2Nlc3Mob2JqKTsKIAly ZXR1cm4gcmV0OworCitlcnI6CisJa3VubWFwX2F0b21pYyhkKTsKKwlyZXQgPSAtRUlOVkFMOwor CWdvdG8gb3V0OwogfQogCiAjdW5kZWYgT1VUX0JBVENICiAKLWludCBpOTE1X2dlbV9yZW5kZXJf c3RhdGVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKK2ludCBpOTE1X2dl bV9yZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0J c3RydWN0IHJlbmRlcl9zdGF0ZSBzbzsKKwlzdHJ1Y3QgaW50ZWxfcmVuZGVyX3N0YXRlICpzbzsK Kwljb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhICpyb2RhdGE7CiAJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlpbnQgcmV0OwogCi0JaWYgKFdBUk5fT04ocmVx LT5lbmdpbmUtPmlkICE9IFJDUykpCi0JCXJldHVybiAtRU5PRU5UOworCWlmIChlbmdpbmUtPmlk ICE9IFJDUykKKwkJcmV0dXJuIDA7CiAKLQlzby5yb2RhdGEgPSByZW5kZXJfc3RhdGVfZ2V0X3Jv ZGF0YShyZXEpOwotCWlmICghc28ucm9kYXRhKQorCXJvZGF0YSA9IHJlbmRlcl9zdGF0ZV9nZXRf cm9kYXRhKGVuZ2luZSk7CisJaWYgKCFyb2RhdGEpCiAJCXJldHVybiAwOwogCi0JaWYgKHNvLnJv ZGF0YS0+YmF0Y2hfaXRlbXMgKiA0ID4gNDA5NikKKwlpZiAocm9kYXRhLT5iYXRjaF9pdGVtcyAq IDQgPiA0MDk2KQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9j cmVhdGVfaW50ZXJuYWwoJnJlcS0+aTkxNS0+ZHJtLCA0MDk2KTsKLQlpZiAoSVNfRVJSKG9iaikp Ci0JCXJldHVybiBQVFJfRVJSKG9iaik7CisJc28gPSBrbWFsbG9jKHNpemVvZigqc28pLCBHRlBf S0VSTkVMKTsKKwlpZiAoIXNvKQorCQlyZXR1cm4gLUVOT01FTTsKIAotCXNvLnZtYSA9IGk5MTVf dm1hX2NyZWF0ZShvYmosICZyZXEtPmk5MTUtPmdndHQuYmFzZSwgTlVMTCk7Ci0JaWYgKElTX0VS Uihzby52bWEpKSB7Ci0JCXJldCA9IFBUUl9FUlIoc28udm1hKTsKLQkJZ290byBlcnJfb2JqOwor CW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoJmVuZ2luZS0+aTkxNS0+ZHJt LCA0MDk2KTsKKwlpZiAoSVNfRVJSKG9iaikpIHsKKwkJcmV0ID0gUFRSX0VSUihvYmopOworCQln b3RvIGVycl9mcmVlOwogCX0KIAotCXJldCA9IGk5MTVfdm1hX3Bpbihzby52bWEsIDAsIDAsIFBJ Tl9HTE9CQUwpOwotCWlmIChyZXQpCisJc28tPnZtYSA9IGk5MTVfdm1hX2NyZWF0ZShvYmosICZl bmdpbmUtPmk5MTUtPmdndHQuYmFzZSwgTlVMTCk7CisJaWYgKElTX0VSUihzby0+dm1hKSkgewor CQlyZXQgPSBQVFJfRVJSKHNvLT52bWEpOwogCQlnb3RvIGVycl9vYmo7CisJfQorCisJc28tPnJv ZGF0YSA9IHJvZGF0YTsKKwllbmdpbmUtPnJlbmRlcl9zdGF0ZSA9IHNvOworCXJldHVybiAwOwog Ci0JcmV0ID0gcmVuZGVyX3N0YXRlX3NldHVwKCZzbyk7CitlcnJfb2JqOgorCWk5MTVfZ2VtX29i amVjdF9wdXQob2JqKTsKK2Vycl9mcmVlOgorCWtmcmVlKHNvKTsKKwlyZXR1cm4gcmV0OworfQor CitpbnQgaTkxNV9nZW1fcmVuZGVyX3N0YXRlX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpCit7CisJc3RydWN0IGludGVsX3JlbmRlcl9zdGF0ZSAqc287CisJaW50IHJldDsK KworCXNvID0gcmVxLT5lbmdpbmUtPnJlbmRlcl9zdGF0ZTsKKwlpZiAoIXNvKQorCQlyZXR1cm4g MDsKKworCS8qIFJlY3JlYXRlIHRoZSBwYWdlIGFmdGVyIHNocmlua2luZyAqLworCWlmICghc28t PnZtYS0+b2JqLT5wYWdlcykKKwkJc28tPmJhdGNoX29mZnNldCA9IC0xOworCisJcmV0ID0gaTkx NV92bWFfcGluKHNvLT52bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7CiAJaWYgKHJl dCkKLQkJZ290byBlcnJfdW5waW47CisJCXJldHVybiByZXQ7CiAKLQlyZXQgPSByZXEtPmVuZ2lu ZS0+ZW1pdF9iYl9zdGFydChyZXEsIHNvLnZtYS0+bm9kZS5zdGFydCwKLQkJCQkJIHNvLnJvZGF0 YS0+YmF0Y2hfaXRlbXMgKiA0LAorCWlmIChzby0+dm1hLT5ub2RlLnN0YXJ0ICE9IHNvLT5iYXRj aF9vZmZzZXQpIHsKKwkJcmV0ID0gcmVuZGVyX3N0YXRlX3NldHVwKHNvLCByZXEtPmk5MTUpOwor CQlpZiAocmV0KQorCQkJZ290byBlcnJfdW5waW47CisJfQorCisJcmV0ID0gcmVxLT5lbmdpbmUt PmVtaXRfYmJfc3RhcnQocmVxLAorCQkJCQkgc28tPmJhdGNoX29mZnNldCwgc28tPmJhdGNoX3Np emUsCiAJCQkJCSBJOTE1X0RJU1BBVENIX1NFQ1VSRSk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJf dW5waW47CiAKLQlpZiAoc28uYXV4X2JhdGNoX3NpemUgPiA4KSB7CisJaWYgKHNvLT5hdXhfc2l6 ZSA+IDgpIHsKIAkJcmV0ID0gcmVxLT5lbmdpbmUtPmVtaXRfYmJfc3RhcnQocmVxLAotCQkJCQkJ IChzby52bWEtPm5vZGUuc3RhcnQgKwotCQkJCQkJICBzby5hdXhfYmF0Y2hfb2Zmc2V0KSwKLQkJ CQkJCSBzby5hdXhfYmF0Y2hfc2l6ZSwKKwkJCQkJCSBzby0+YXV4X29mZnNldCwgc28tPmF1eF9z aXplLAogCQkJCQkJIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8g ZXJyX3VucGluOwogCX0KIAotCWk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHNvLnZtYSwgcmVxLCAw KTsKKwlpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzby0+dm1hLCByZXEsIDApOwogZXJyX3VucGlu OgotCWk5MTVfdm1hX3VucGluKHNvLnZtYSk7Ci0JaTkxNV92bWFfY2xvc2Uoc28udm1hKTsKLWVy cl9vYmo6Ci0JX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV91bmxlc3NfYWN0aXZlKG9iaik7CisJ aTkxNV92bWFfdW5waW4oc28tPnZtYSk7CiAJcmV0dXJuIHJldDsKIH0KKwordm9pZCBpOTE1X2dl bV9yZW5kZXJfc3RhdGVfZmluaShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJ c3RydWN0IGludGVsX3JlbmRlcl9zdGF0ZSAqc287CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iajsKKworCXNvID0gZmV0Y2hfYW5kX3plcm8oJmVuZ2luZS0+cmVuZGVyX3N0YXRlKTsK KwlpZiAoIXNvKQorCQlyZXR1cm47CisKKwlvYmogPSBzby0+dm1hLT5vYmo7CisKKwlpOTE1X3Zt YV9jbG9zZShzby0+dm1hKTsKKwlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX3VubGVzc19hY3Rp dmUob2JqKTsKKworCWtmcmVlKHNvKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fcmVuZGVyX3N0YXRlLmgKaW5kZXggMThjY2UzZjA2ZTljLi44NzQ4MTg0NTc5OWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5oCkBAIC0yNiw2ICsy Niw4IEBACiAKIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdDsKIAotaW50IGk5MTVfZ2VtX3Jl bmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKK2ludCBp OTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp OworaW50IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKTsKK3ZvaWQgaTkxNV9nZW1fcmVuZGVyX3N0YXRlX2Zpbmkoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKTsKIAogI2VuZGlmIC8qIF9JOTE1X0dFTV9SRU5ERVJfU1RBVEVf SF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggOTk3MzdiODQy ZDczLi5iNDhjNTE5NjRjYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j CkBAIC0zMDEsNiArMzAxLDEwIEBAIGludCBpbnRlbF9lbmdpbmVfaW5pdF9jb21tb24oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKKwly ZXQgPSBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5pdChlbmdpbmUpOworCWlmIChyZXQpCisJCXJl dHVybiByZXQ7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzE1LDYgKzMxOSw3IEBAIHZvaWQgaW50 ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IHsKIAlpbnRlbF9lbmdpbmVfY2xlYW51cF9zY3JhdGNoKGVuZ2luZSk7CiAKKwlpOTE1X2dlbV9y ZW5kZXJfc3RhdGVfZmluaShlbmdpbmUpOwogCWludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJz KGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2NsZWFudXBfY21kX3BhcnNlcihlbmdpbmUpOwogCWk5 MTVfZ2VtX2JhdGNoX3Bvb2xfZmluaSgmZW5naW5lLT5iYXRjaF9wb29sKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKaW5kZXggMTBmY2VhNTdlNGRkLi4wMmM0OGQzOTAxNDggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCkBAIC0xNjM3LDcgKzE2MzcsNyBAQCBzdGF0aWMgaW50IGdlbjhfaW5p dF9yY3NfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAlpZiAocmV0 KQogCQlEUk1fRVJST1IoIk1PQ1MgZmFpbGVkIHRvIHByb2dyYW06IGV4cGVjdCBwZXJmb3JtYW5j ZSBpc3N1ZXMuXG4iKTsKIAotCXJldHVybiBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5pdChyZXEp OworCXJldHVybiBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfZW1pdChyZXEpOwogfQogCiAvKioKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBiNWQ5YzAzZjg0Y2UuLmVj MDZkNzVhNDJhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAt NjQ4LDcgKzY0OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcmNzX2N0eF9pbml0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCWlmIChyZXQgIT0gMCkKIAkJcmV0dXJuIHJldDsKIAot CXJldCA9IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9pbml0KHJlcSk7CisJcmV0ID0gaTkxNV9nZW1f cmVuZGVyX3N0YXRlX2VtaXQocmVxKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggYTA1MTBkNDk0MGIyLi40Mjg5 ZmNkYTRiM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTE1 Nyw2ICsxNTcsNyBAQCBzdHJ1Y3QgaTkxNV9jdHhfd29ya2Fyb3VuZHMgewogfTsKIAogc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0Oworc3RydWN0IGludGVsX3JlbmRlcl9zdGF0ZTsKIAogc3Ry dWN0IGludGVsX2VuZ2luZV9jcyB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CkBA IC0xODQsNiArMTg1LDggQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJdW5zaWduZWQgaW50 IGlycV9zaGlmdDsKIAlzdHJ1Y3QgaW50ZWxfcmluZyAqYnVmZmVyOwogCisJc3RydWN0IGludGVs X3JlbmRlcl9zdGF0ZSAqcmVuZGVyX3N0YXRlOworCiAJLyogUmF0aGVyIHRoYW4gaGF2ZSBldmVy eSBjbGllbnQgd2FpdCB1cG9uIGFsbCB1c2VyIGludGVycnVwdHMsCiAJICogd2l0aCB0aGUgaGVy ZCB3YWtpbmcgYWZ0ZXIgZXZlcnkgaW50ZXJydXB0IGFuZCBlYWNoIGRvaW5nIHRoZQogCSAqIGhl YXZ5d2VpZ2h0IHNlcW5vIGRhbmNlLCB3ZSBkZWxlZ2F0ZSB0aGUgdGFzayAob2YgYmVpbmcgdGhl Ci0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==