From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 07/13] drm/msm/gpu: Convert the GPU show function to use the GPU state Date: Fri, 29 Jun 2018 10:56:35 -0600 Message-ID: <20180629165641.1348-8-jcrouse@codeaurora.org> References: <20180629165641.1348-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180629165641.1348-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Q29udmVydCB0aGUgZXhpc3RpbmcgR1BVIHNob3cgZnVuY3Rpb24gdG8gdXNlIHRoZSBHUFUgc3Rh dGUgdG8KZHVtcCB0aGUgaW5mb3JtYXRpb24gcmF0aGVyIHRoYW4gcmVhZGluZyBpdCBkaXJlY3Rs eSBmcm9tIHRoZSBoYXJkd2FyZS4KVGhpcyB3aWxsIHJlcXVpcmUgYW4gYWRkaXRpb25hbCBzdGVw IHRvIGNhcHR1cmUgdGhlIHN0YXRlIGJlZm9yZQpkdW1waW5nIGl0IGZvciB0aGUgZXhpc3Rpbmcg bm9kZXMgYnV0IGl0IHdpbGwgZ3JlYXRseSBmYWNpbGl0YXRlIHJldXNpbmcKdGhlIHNhbWUgY29k ZSBmb3IgZHVtcGluZyBhIHByZXZpb3VzbHkgY2FwdHVyZWQgc3RhdGUgZnJvbSBhIEdQVSBoYW5n LgoKU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jICAgfCAxMSArLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMgICB8IDEyICstLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMgICB8IDE4ICstLS0tCiBkcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgfCAzMCArKysrLS0tLQogZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2RlYnVnZnMuYyAgICAgICB8IDkyICsrKysrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2dwdS5oICAgICAgICAgICB8ICAzICstCiA3IGZpbGVzIGNoYW5nZWQs IDEwNCBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJl bm8vYTN4eF9ncHUuYwppbmRleCBiNzA3YjViY2E5YWIuLjRjZmZlYzJiNmFkYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCkBAIC00MTEsMTUgKzQxMSw2IEBAIHN0YXRpYyBj b25zdCB1bnNpZ25lZCBpbnQgYTN4eF9yZWdpc3RlcnNbXSA9IHsKIAl+MCAgIC8qIHNlbnRpbmVs ICovCiB9OwogCi0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCi1zdGF0aWMgdm9pZCBhM3h4X3Nob3co c3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxlICptKQotewotCXNlcV9wcmludGYo bSwgInN0YXR1czogICAlMDh4XG4iLAotCQkJZ3B1X3JlYWQoZ3B1LCBSRUdfQTNYWF9SQkJNX1NU QVRVUykpOwotCWFkcmVub19zaG93KGdwdSwgbSk7Ci19Ci0jZW5kaWYKLQogLyogd291bGQgYmUg bmljZSB0byBub3QgaGF2ZSB0byBkdXBsaWNhdGUgdGhlIF9zaG93KCkgc3R1ZmYgd2l0aCBwcmlu dGsoKTogKi8KIHN0YXRpYyB2b2lkIGEzeHhfZHVtcChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogewpA QCAtNDY0LDcgKzQ1NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBm dW5jcyA9IHsKIAkJLmlycSA9IGEzeHhfaXJxLAogCQkuZGVzdHJveSA9IGEzeHhfZGVzdHJveSwK ICNpZmRlZiBDT05GSUdfREVCVUdfRlMKLQkJLnNob3cgPSBhM3h4X3Nob3csCisJCS5zaG93ID0g YWRyZW5vX3Nob3csCiAjZW5kaWYKIAkJLmdwdV9zdGF0ZV9nZXQgPSBhM3h4X2dwdV9zdGF0ZV9n ZXQsCiAJCS5ncHVfc3RhdGVfcHV0ID0gYWRyZW5vX2dwdV9zdGF0ZV9wdXQsCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYTR4eF9ncHUuYwppbmRleCAxN2U5N2ViYzEwNzcuLjk1ZjA4YzIyZThkNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dwdS5jCkBAIC00NTUsMTYgKzQ1NSw2IEBA IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYTR4eF9yZWdpc3RlcnNbXSA9IHsKIAl+MCAvKiBz ZW50aW5lbCAqLwogfTsKIAotI2lmZGVmIENPTkZJR19ERUJVR19GUwotc3RhdGljIHZvaWQgYTR4 eF9zaG93KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBzZXFfZmlsZSAqbSkKLXsKLQlzZXFf cHJpbnRmKG0sICJzdGF0dXM6ICAgJTA4eFxuIiwKLQkJCWdwdV9yZWFkKGdwdSwgUkVHX0E0WFhf UkJCTV9TVEFUVVMpKTsKLQlhZHJlbm9fc2hvdyhncHUsIG0pOwotCi19Ci0jZW5kaWYKLQogc3Rh dGljIHN0cnVjdCBtc21fZ3B1X3N0YXRlICphNHh4X2dwdV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9n cHUgKmdwdSkKIHsKIAlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUgPSBhZHJlbm9fZ3B1X3N0 YXRlX2dldChncHUpOwpAQCAtNTUxLDcgKzU0MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRy ZW5vX2dwdV9mdW5jcyBmdW5jcyA9IHsKIAkJLmlycSA9IGE0eHhfaXJxLAogCQkuZGVzdHJveSA9 IGE0eHhfZGVzdHJveSwKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKLQkJLnNob3cgPSBhNHh4X3No b3csCisJCS5zaG93ID0gYWRyZW5vX3Nob3csCiAjZW5kaWYKIAkJLmdwdV9zdGF0ZV9nZXQgPSBh NHh4X2dwdV9zdGF0ZV9nZXQsCiAJCS5ncHVfc3RhdGVfcHV0ID0gYWRyZW5vX2dwdV9zdGF0ZV9w dXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwppbmRleCA5ZTg1ZTRmNzAxNmQu LjVmMWFhYjNjMWNiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4 eF9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCkBAIC0x MjE1LDIyICsxMjE1LDYgQEAgc3RhdGljIHN0cnVjdCBtc21fZ3B1X3N0YXRlICphNXh4X2dwdV9z dGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAlyZXR1cm4gc3RhdGU7CiB9CiAKLSNpZmRl ZiBDT05GSUdfREVCVUdfRlMKLXN0YXRpYyB2b2lkIGE1eHhfc2hvdyhzdHJ1Y3QgbXNtX2dwdSAq Z3B1LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCi17Ci0Jc2VxX3ByaW50ZihtLCAic3RhdHVzOiAgICUw OHhcbiIsCi0JCQlncHVfcmVhZChncHUsIFJFR19BNVhYX1JCQk1fU1RBVFVTKSk7Ci0KLQkvKgot CSAqIFRlbXBvcmFyaWx5IGRpc2FibGUgaGFyZHdhcmUgY2xvY2sgZ2F0aW5nIGJlZm9yZSBnb2lu ZyBpbnRvCi0JICogYWRyZW5vX3Nob3cgdG8gYXZvaWQgaXNzdWVzIHdoaWxlIHJlYWRpbmcgdGhl IHJlZ2lzdGVycwotCSAqLwotCWE1eHhfc2V0X2h3Y2coZ3B1LCBmYWxzZSk7Ci0JYWRyZW5vX3No b3coZ3B1LCBtKTsKLQlhNXh4X3NldF9od2NnKGdwdSwgdHJ1ZSk7Ci19Ci0jZW5kaWYKLQogc3Rh dGljIHN0cnVjdCBtc21fcmluZ2J1ZmZlciAqYTV4eF9hY3RpdmVfcmluZyhzdHJ1Y3QgbXNtX2dw dSAqZ3B1KQogewogCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dw dShncHUpOwpAQCAtMTI2MCw3ICsxMjQ0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9f Z3B1X2Z1bmNzIGZ1bmNzID0gewogCQkuaXJxID0gYTV4eF9pcnEsCiAJCS5kZXN0cm95ID0gYTV4 eF9kZXN0cm95LAogI2lmZGVmIENPTkZJR19ERUJVR19GUwotCQkuc2hvdyA9IGE1eHhfc2hvdywK KwkJLnNob3cgPSBhZHJlbm9fc2hvdywKIAkJLmRlYnVnZnNfaW5pdCA9IGE1eHhfZGVidWdmc19p bml0LAogI2VuZGlmCiAJCS5ncHVfYnVzeSA9IGE1eHhfZ3B1X2J1c3ksCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKaW5kZXggYzdhMGQyNzhjNTllLi4wZTkzN2VlZGNlYzUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKQEAgLTQyMywzOCArNDIz LDM0IEBAIHZvaWQgYWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0 YXRlKQogfQogCiAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCi12b2lkIGFkcmVub19zaG93KHN0cnVj dCBtc21fZ3B1ICpncHUsIHN0cnVjdCBzZXFfZmlsZSAqbSkKK3ZvaWQgYWRyZW5vX3Nob3coc3Ry dWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlLAorCQlzdHJ1Y3Qg c2VxX2ZpbGUgKm0pCiB7CiAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0b19hZHJl bm9fZ3B1KGdwdSk7CiAJaW50IGk7CiAKKwlpZiAoSVNfRVJSX09SX05VTEwoc3RhdGUpKQorCQly ZXR1cm47CisKKwlzZXFfcHJpbnRmKG0sICJzdGF0dXM6ICAgJTA4eFxuIiwgc3RhdGUtPnJiYm1f c3RhdHVzKTsKIAlzZXFfcHJpbnRmKG0sICJyZXZpc2lvbjogJWQgKCVkLiVkLiVkLiVkKVxuIiwK IAkJCWFkcmVub19ncHUtPmluZm8tPnJldm4sIGFkcmVub19ncHUtPnJldi5jb3JlLAogCQkJYWRy ZW5vX2dwdS0+cmV2Lm1ham9yLCBhZHJlbm9fZ3B1LT5yZXYubWlub3IsCiAJCQlhZHJlbm9fZ3B1 LT5yZXYucGF0Y2hpZCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZ3B1LT5ucl9yaW5nczsgaSsrKSB7 Ci0JCXN0cnVjdCBtc21fcmluZ2J1ZmZlciAqcmluZyA9IGdwdS0+cmJbaV07Ci0KIAkJc2VxX3By aW50ZihtLCAicmIgJWQ6IGZlbmNlOiAgICAlZC8lZFxuIiwgaSwKLQkJCXJpbmctPm1lbXB0cnMt PmZlbmNlLCByaW5nLT5zZXFubyk7CisJCQlzdGF0ZS0+cmluZ1tpXS5mZW5jZSwgc3RhdGUtPnJp bmdbaV0uc2Vxbm8pOwogCi0JCXNlcV9wcmludGYobSwgIiAgICAgIHJwdHI6ICAgICAlZFxuIiwK LQkJCWdldF9ycHRyKGFkcmVub19ncHUsIHJpbmcpKTsKLQkJc2VxX3ByaW50ZihtLCAicmIgd3B0 cjogICVkXG4iLCBnZXRfd3B0cihyaW5nKSk7CisJCXNlcV9wcmludGYobSwgIiAgICAgIHJwdHI6 ICAgICAlZFxuIiwgc3RhdGUtPnJpbmdbaV0ucnB0cik7CisJCXNlcV9wcmludGYobSwgInJiIHdw dHI6ICAlZFxuIiwgc3RhdGUtPnJpbmdbaV0ud3B0cik7CiAJfQogCi0JLyogZHVtcCB0aGVzZSBv dXQgaW4gYSBmb3JtIHRoYXQgY2FuIGJlIHBhcnNlZCBieSBkZW1zbTogKi8KIAlzZXFfcHJpbnRm KG0sICJJTzpyZWdpb24gJXMgMDAwMDAwMDAgMDAwMjAwMDBcbiIsIGdwdS0+bmFtZSk7Ci0JZm9y IChpID0gMDsgYWRyZW5vX2dwdS0+cmVnaXN0ZXJzW2ldICE9IH4wOyBpICs9IDIpIHsKLQkJdWlu dDMyX3Qgc3RhcnQgPSBhZHJlbm9fZ3B1LT5yZWdpc3RlcnNbaV07Ci0JCXVpbnQzMl90IGVuZCAg ID0gYWRyZW5vX2dwdS0+cmVnaXN0ZXJzW2krMV07Ci0JCXVpbnQzMl90IGFkZHI7Ci0KLQkJZm9y IChhZGRyID0gc3RhcnQ7IGFkZHIgPD0gZW5kOyBhZGRyKyspIHsKLQkJCXVpbnQzMl90IHZhbCA9 IGdwdV9yZWFkKGdwdSwgYWRkcik7Ci0JCQlzZXFfcHJpbnRmKG0sICJJTzpSICUwOHggJTA4eFxu IiwgYWRkcjw8MiwgdmFsKTsKLQkJfQorCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnJfcmVnaXN0 ZXJzOyBpKyspIHsKKwkJc2VxX3ByaW50ZihtLCAiSU86UiAlMDh4ICUwOHhcbiIsCisJCQlzdGF0 ZS0+cmVnaXN0ZXJzW2kgKiAyXSA8PCAyLAorCQkJc3RhdGUtPnJlZ2lzdGVyc1soaSAqIDIpICsg MV0pOwogCX0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJl bm8vYWRyZW5vX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5o CmluZGV4IDczNGUzMWE5NjMxZi4uOTBiNmI1OTI1MmFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYWRyZW5vX2dwdS5oCkBAIC0yMTYsNyArMjE2LDggQEAgdm9pZCBhZHJlbm9fc3VibWl0 KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0LAogdm9p ZCBhZHJlbm9fZmx1c2goc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9yaW5nYnVmZmVy ICpyaW5nKTsKIGJvb2wgYWRyZW5vX2lkbGUoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1z bV9yaW5nYnVmZmVyICpyaW5nKTsKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKLXZvaWQgYWRyZW5v X3Nob3coc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxlICptKTsKK3ZvaWQgYWRy ZW5vX3Nob3coc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRl LAorCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwogI2VuZGlmCiB2b2lkIGFkcmVub19kdW1wX2luZm8o c3RydWN0IG1zbV9ncHUgKmdwdSk7CiB2b2lkIGFkcmVub19kdW1wKHN0cnVjdCBtc21fZ3B1ICpn cHUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZGVidWdmcy5jIGIvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZGVidWdmcy5jCmluZGV4IDFmZjNmZGEyNDVkMS4uYzNkYTEy MTc5ODg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kZWJ1Z2ZzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZGVidWdmcy5jCkBAIC0xNiwyNiArMTYsMTAwIEBA CiAgKi8KIAogI2lmZGVmIENPTkZJR19ERUJVR19GUworI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMu aD4KICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2dwdS5oIgogI2luY2x1ZGUg Im1zbV9rbXMuaCIKICNpbmNsdWRlICJtc21fZGVidWdmcy5oIgogCi1zdGF0aWMgaW50IG1zbV9n cHVfc2hvdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCitzdHJ1 Y3QgbXNtX2dwdV9zaG93X3ByaXYgeworCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZTsKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2OworfTsKKworc3RhdGljIGludCBtc21fZ3B1X3Nob3coc3Ry dWN0IHNlcV9maWxlICptLCB2b2lkICphcmcpCit7CisJc3RydWN0IG1zbV9ncHVfc2hvd19wcml2 ICpzaG93X3ByaXYgPSBtLT5wcml2YXRlOworCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYg PSBzaG93X3ByaXYtPmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IG1zbV9ncHUgKmdwdSA9IHBy aXYtPmdwdTsKKwlpbnQgcmV0OworCisJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZz aG93X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0Owor CisJc2VxX3ByaW50ZihtLCAiJXMgU3RhdHVzOlxuIiwgZ3B1LT5uYW1lKTsKKwlncHUtPmZ1bmNz LT5zaG93KGdwdSwgc2hvd19wcml2LT5zdGF0ZSwgbSk7CisKKwltdXRleF91bmxvY2soJnNob3df cHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg bXNtX2dwdV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQor eworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgbXNt X2dwdV9zaG93X3ByaXYgKnNob3dfcHJpdiA9IG0tPnByaXZhdGU7CisJc3RydWN0IG1zbV9kcm1f cHJpdmF0ZSAqcHJpdiA9IHNob3dfcHJpdi0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgbXNt X2dwdSAqZ3B1ID0gcHJpdi0+Z3B1OworCWludCByZXQ7CisKKwlyZXQgPSBtdXRleF9sb2NrX2lu dGVycnVwdGlibGUoJnNob3dfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisKKwlncHUtPmZ1bmNzLT5ncHVfc3RhdGVfcHV0KHNob3dfcHJpdi0+c3Rh dGUpOworCW11dGV4X3VubG9jaygmc2hvd19wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CisKKwlr ZnJlZShzaG93X3ByaXYpOworCisJcmV0dXJuIHNpbmdsZV9yZWxlYXNlKGlub2RlLCBmaWxlKTsK K30KKworc3RhdGljIGludCBtc21fZ3B1X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IGZpbGUgKmZpbGUpCiB7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlub2RlLT5pX3ByaXZh dGU7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJ c3RydWN0IG1zbV9ncHUgKmdwdSA9IHByaXYtPmdwdTsKKwlzdHJ1Y3QgbXNtX2dwdV9zaG93X3By aXYgKnNob3dfcHJpdjsKKwlpbnQgcmV0OwogCi0JaWYgKGdwdSkgewotCQlzZXFfcHJpbnRmKG0s ICIlcyBTdGF0dXM6XG4iLCBncHUtPm5hbWUpOwotCQlwbV9ydW50aW1lX2dldF9zeW5jKCZncHUt PnBkZXYtPmRldik7Ci0JCWdwdS0+ZnVuY3MtPnNob3coZ3B1LCBtKTsKLQkJcG1fcnVudGltZV9w dXRfc3luYygmZ3B1LT5wZGV2LT5kZXYpOworCWlmICghZ3B1KQorCQlyZXR1cm4gLUVOT0RFVjsK KworCXNob3dfcHJpdiA9IGttYWxsb2Moc2l6ZW9mKCpzaG93X3ByaXYpLCBHRlBfS0VSTkVMKTsK KwlpZiAoIXNob3dfcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXQgPSBtdXRleF9sb2Nr X2ludGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAocmV0KQorCQlyZXR1cm4g cmV0OworCisJcG1fcnVudGltZV9nZXRfc3luYygmZ3B1LT5wZGV2LT5kZXYpOworCXNob3dfcHJp di0+c3RhdGUgPSBncHUtPmZ1bmNzLT5ncHVfc3RhdGVfZ2V0KGdwdSk7CisJcG1fcnVudGltZV9w dXRfc3luYygmZ3B1LT5wZGV2LT5kZXYpOworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7CisKKwlpZiAoSVNfRVJSKHNob3dfcHJpdi0+c3RhdGUpKSB7CisJCXJldCA9IFBUUl9F UlIoc2hvd19wcml2LT5zdGF0ZSk7CisJCWtmcmVlKHNob3dfcHJpdik7CisJCXJldHVybiByZXQ7 CiAJfQogCi0JcmV0dXJuIDA7CisJc2hvd19wcml2LT5kZXYgPSBkZXY7CisKKwlyZXR1cm4gc2lu Z2xlX29wZW4oZmlsZSwgbXNtX2dwdV9zaG93LCBzaG93X3ByaXYpOwogfQogCitzdGF0aWMgY29u c3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtc21fZ3B1X2ZvcHMgPSB7CisJLm93bmVyID0gVEhJ U19NT0RVTEUsCisJLm9wZW4gPSBtc21fZ3B1X29wZW4sCisJLnJlYWQgPSBzZXFfcmVhZCwKKwku bGxzZWVrID0gc2VxX2xzZWVrLAorCS5yZWxlYXNlID0gbXNtX2dwdV9yZWxlYXNlLAorfTsKKwog c3RhdGljIGludCBtc21fZ2VtX3Nob3coc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IHNl cV9maWxlICptKQogewogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9w cml2YXRlOwpAQCAtMTA1LDcgKzE3OSw2IEBAIHN0YXRpYyBpbnQgc2hvd19sb2NrZWQoc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICphcmcpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2luZm9fbGlz dCBtc21fZGVidWdmc19saXN0W10gPSB7Ci0JCXsiZ3B1Iiwgc2hvd19sb2NrZWQsIDAsIG1zbV9n cHVfc2hvd30sCiAJCXsiZ2VtIiwgc2hvd19sb2NrZWQsIDAsIG1zbV9nZW1fc2hvd30sCiAJCXsg Im1tIiwgc2hvd19sb2NrZWQsIDAsIG1zbV9tbV9zaG93IH0sCiAJCXsgImZiIiwgc2hvd19sb2Nr ZWQsIDAsIG1zbV9mYl9zaG93IH0sCkBAIC0xNTgsNiArMjMxLDkgQEAgaW50IG1zbV9kZWJ1Z2Zz X2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpCiAJCXJldHVybiByZXQ7CiAJfQogCisJZGVi dWdmc19jcmVhdGVfZmlsZSgiZ3B1IiwgU19JUlVTUiwgbWlub3ItPmRlYnVnZnNfcm9vdCwKKwkJ ZGV2LCAmbXNtX2dwdV9mb3BzKTsKKwogCWlmIChwcml2LT5rbXMtPmZ1bmNzLT5kZWJ1Z2ZzX2lu aXQpIHsKIAkJcmV0ID0gcHJpdi0+a21zLT5mdW5jcy0+ZGVidWdmc19pbml0KHByaXYtPmttcywg bWlub3IpOwogCQlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f Z3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAppbmRleCA0YmU3MmE2MTJiZWMu LjQ3MGYzYmI1ZjgzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKQEAgLTY1LDcgKzY1LDggQEAgc3Ry dWN0IG1zbV9ncHVfZnVuY3MgewogCXZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgbXNtX2dwdSAqZ3B1 KTsKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKIAkvKiBzaG93IEdQVSBzdGF0dXMgaW4gZGVidWdm czogKi8KLQl2b2lkICgqc2hvdykoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxl ICptKTsKKwl2b2lkICgqc2hvdykoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9ncHVf c3RhdGUgKnN0YXRlLAorCQkJc3RydWN0IHNlcV9maWxlICptKTsKIAkvKiBmb3IgZ2VuZXJhdGlv biBzcGVjaWZpYyBkZWJ1Z2ZzOiAqLwogCWludCAoKmRlYnVnZnNfaW5pdCkoc3RydWN0IG1zbV9n cHUgKmdwdSwgc3RydWN0IGRybV9taW5vciAqbWlub3IpOwogI2VuZGlmCi0tIAoyLjE3LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBt YWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=