From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 22/27] drm/i915: Make setting color key atomic. Date: Thu, 4 Jun 2015 14:47:52 +0200 Message-ID: <1433422077-14907-23-git-send-email-maarten.lankhorst@linux.intel.com> References: <1433422077-14907-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTP id E3A5F6EB31 for ; Thu, 4 Jun 2015 05:48:12 -0700 (PDT) In-Reply-To: <1433422077-14907-1-git-send-email-maarten.lankhorst@linux.intel.com> 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 QnkgbWFraW5nIGNvbG9yIGtleSBhdG9taWMgdGhlcmUgYXJlIG5vIG1vcmUgdHJhbnNpdGlvbmFs IGhlbHBlcnMuClRoZSBwbGFuZSBjaGVjayBmdW5jdGlvbiB3aWxsIHJlamVjdCB0aGUgY29sb3Ig a2V5IHdoZW4gYSBzY2FsZXIgaXMKYWN0aXZlLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5r aG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgIHwgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICAgICAgIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYyAgICAgICB8IDg1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDQgZmls ZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwppbmRleCA0ZDhjYWNiY2E3NzcuLjlhZjEw NTNhZThhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3Bs YW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAg LTU2LDYgKzU2LDcgQEAgaW50ZWxfY3JlYXRlX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKQogCiAJc3RhdGUtPmJhc2UucGxhbmUgPSBwbGFuZTsKIAlzdGF0ZS0+YmFzZS5yb3Rh dGlvbiA9IEJJVChEUk1fUk9UQVRFXzApOworCXN0YXRlLT5ja2V5LmZsYWdzID0gSTkxNV9TRVRf Q09MT1JLRVlfTk9ORTsKIAogCXJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCBiMjI4ZGIyMWU5YzAuLmQyYTFiZjRmMzFkYyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDM5Miw3ICs0MzkyLDcgQEAgc3RhdGljIGludCBz a2xfdXBkYXRlX3NjYWxlcl9wbGFuZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJcmV0dXJuIHJldDsKIAogCS8qIGNoZWNrIGNvbG9ya2V5ICovCi0JaWYgKFdBUk5fT04o aW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09MT1JLRVlfTk9ORSkpIHsKKwlp ZiAocGxhbmVfc3RhdGUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09MT1JLRVlfTk9ORSkgewog CQlEUk1fREVCVUdfS01TKCJQTEFORTolZCBzY2FsaW5nIHdpdGggY29sb3Iga2V5IG5vdCBhbGxv d2VkIiwKIAkJCWludGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQpOwogCQlyZXR1cm4gLUVJTlZBTDsK QEAgLTEzNDA0LDcgKzEzNDA0LDcgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAogCS8qIHVzZSBzY2FsZXIgd2hlbiBjb2xvcmtleSBpcyBub3Qg cmVxdWlyZWQgKi8KIAlpZiAoSU5URUxfSU5GTyhwbGFuZS0+ZGV2KS0+Z2VuID49IDkgJiYKLQkg ICAgdG9faW50ZWxfcGxhbmUocGxhbmUpLT5ja2V5LmZsYWdzID09IEk5MTVfU0VUX0NPTE9SS0VZ X05PTkUpIHsKKwkgICAgc3RhdGUtPmNrZXkuZmxhZ3MgPT0gSTkxNV9TRVRfQ09MT1JLRVlfTk9O RSkgewogCQltaW5fc2NhbGUgPSAxOwogCQltYXhfc2NhbGUgPSBza2xfbWF4X3NjYWxlKHRvX2lu dGVsX2NydGMoY3J0YyksIGNydGNfc3RhdGUpOwogCQljYW5fcG9zaXRpb24gPSB0cnVlOwpAQCAt MTM1NTUsNyArMTM1NTUsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFy eV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlwcmltYXJ5LT5jaGVja19w bGFuZSA9IGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmU7CiAJcHJpbWFyeS0+Y29tbWl0X3BsYW5l ID0gaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmU7CiAJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9 IGludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKLQlwcmltYXJ5LT5ja2V5LmZsYWdzID0gSTkx NV9TRVRfQ09MT1JLRVlfTk9ORTsKIAlpZiAoSEFTX0ZCQyhkZXYpICYmIElOVEVMX0lORk8oZGV2 KS0+Z2VuIDwgNCkKIAkJcHJpbWFyeS0+cGxhbmUgPSAhcGlwZTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAppbmRleCA3YjFhMTNmNjM4NzIuLjUwNmE3ZTMyMGZiZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKQEAgLTI2Myw2ICsyNjMsOCBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg ewogCSAqICAgICB1cGRhdGVfc2NhbGVyX3BsYW5lLgogCSAqLwogCWludCBzY2FsZXJfaWQ7CisK KwlzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSBja2V5OwogfTsKIAogc3RydWN0IGlu dGVsX2luaXRpYWxfcGxhbmVfY29uZmlnIHsKQEAgLTU4Miw5ICs1ODQsNiBAQCBzdHJ1Y3QgaW50 ZWxfcGxhbmUgewogCWJvb2wgY2FuX3NjYWxlOwogCWludCBtYXhfZG93bnNjYWxlOwogCi0JLyog RklYTUUgY29udmVydCB0byBwcm9wZXJ0aWVzICovCi0Jc3RydWN0IGRybV9pbnRlbF9zcHJpdGVf Y29sb3JrZXkgY2tleTsKLQogCS8qIFNpbmNlIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSB3YXRlcm1h cmtzIGJlZm9yZS9hZnRlcgogCSAqIGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgcGxhbmVzLCB3ZSBu ZWVkIHRvIHN0b3JlIHRoZSBwYXJhbWV0ZXJzIGhlcmUKIAkgKiBhcyB0aGUgb3RoZXIgcGllY2Vz IG9mIHRoZSBzdHJ1Y3QgbWF5IG5vdCByZWZsZWN0IHRoZSB2YWx1ZXMgd2Ugd2FudApAQCAtMTM4 NSw3ICsxMzg0LDYgQEAgYm9vbCBpbnRlbF9zZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdWludDMyX3Qgc2R2b19yZWcsIGJvb2wgaXNfc2R2b2IpOwogCiAvKiBpbnRlbF9zcHJpdGUu YyAqLwogaW50IGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBw aXBlIHBpcGUsIGludCBwbGFuZSk7Ci1pbnQgaW50ZWxfcGxhbmVfcmVzdG9yZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSk7CiBpbnQgaW50ZWxfc3ByaXRlX3NldF9jb2xvcmtleShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYpOwogYm9vbCBpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggNDlkODY3YThiMDczLi45 OTRkOWFjOTA3OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC0xODIsNyAr MTgyLDggQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAljb25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxh bmUgKyAxOwogCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0cmlkZTsKIAlpbnQgcGl4ZWxf c2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwotCWNvbnN0 IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmaW50ZWxfcGxhbmUtPmNr ZXk7CisJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9CisJCSZ0 b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmUtPnN0YXRlKS0+Y2tleTsKIAl1bnNpZ25lZCBs b25nIHN1cmZfYWRkcjsKIAl1MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29mZnNldCwgcGxhbmVfc2l6 ZTsKIAl1bnNpZ25lZCBpbnQgcm90YXRpb247CkBAIC0zNDQsNyArMzQ1LDggQEAgdmx2X3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAl1MzIgc3ByY3RsOwogCXVuc2lnbmVkIGxvbmcgc3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZz ZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9y bWF0LCAwKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0g JmludGVsX3BsYW5lLT5ja2V5OworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9y a2V5ICprZXkgPQorCQkmdG9faW50ZWxfcGxhbmVfc3RhdGUoZHBsYW5lLT5zdGF0ZSktPmNrZXk7 CiAKIAlzcHJjdGwgPSBTUF9FTkFCTEU7CiAKQEAgLTQ4Nyw3ICs0ODksOCBAQCBpdmJfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJ dTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3Byc3VyZl9vZmZzZXQs IGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChm Yi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xv cmtleSAqa2V5ID0gJmludGVsX3BsYW5lLT5ja2V5OworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxf c3ByaXRlX2NvbG9ya2V5ICprZXkgPQorCQkmdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0 YXRlKS0+Y2tleTsKIAogCXNwcmN0bCA9IFNQUklURV9FTkFCTEU7CiAKQEAgLTYyNyw3ICs2MzAs OCBAQCBpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJdW5zaWduZWQgbG9uZyBkdnNzdXJmX29mZnNldCwgbGluZWFyX29mZnNl dDsKIAl1MzIgZHZzY250ciwgZHZzc2NhbGU7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0 X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVs X3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJmludGVsX3BsYW5lLT5ja2V5OworCWNvbnN0IHN0cnVj dCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPQorCQkmdG9faW50ZWxfcGxhbmVfc3Rh dGUocGxhbmUtPnN0YXRlKS0+Y2tleTsKIAogCWR2c2NudHIgPSBEVlNfRU5BQkxFOwogCkBAIC03 NzYsNyArNzgwLDcgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCS8qIHNldHVwIGNhbl9zY2FsZSwgbWluX3NjYWxlLCBtYXhfc2NhbGUgKi8KIAlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewogCQkvKiB1c2Ugc2NhbGVyIHdoZW4gY29s b3JrZXkgaXMgbm90IHJlcXVpcmVkICovCi0JCWlmIChpbnRlbF9wbGFuZS0+Y2tleS5mbGFncyA9 PSBJOTE1X1NFVF9DT0xPUktFWV9OT05FKSB7CisJCWlmIChzdGF0ZS0+Y2tleS5mbGFncyA9PSBJ OTE1X1NFVF9DT0xPUktFWV9OT05FKSB7CiAJCQljYW5fc2NhbGUgPSAxOwogCQkJbWluX3NjYWxl ID0gMTsKIAkJCW1heF9zY2FsZSA9IHNrbF9tYXhfc2NhbGUoaW50ZWxfY3J0YywgY3J0Y19zdGF0 ZSk7CkBAIC03OTYsNyArODAwLDYgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCSAqIGNvb3JkaW5hdGVzIGFuZCBzaXplcy4gV2UgcHJvYmFibHkg bmVlZCBzb21lIHdheSB0byBkZWNpZGUgd2hldGhlcgogCSAqIG1vcmUgc3RyaWN0IGNoZWNraW5n IHNob3VsZCBiZSBkb25lIGluc3RlYWQuCiAJICovCi0KIAlkcm1fcmVjdF9yb3RhdGUoc3JjLCBm Yi0+d2lkdGggPDwgMTYsIGZiLT5oZWlnaHQgPDwgMTYsCiAJCQlzdGF0ZS0+YmFzZS5yb3RhdGlv bik7CiAKQEAgLTgwNiw3ICs4MDksNyBAQCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJdnNjYWxlID0gZHJtX3JlY3RfY2FsY192c2NhbGVfcmVsYXhl ZChzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwogCUJVR19PTih2c2NhbGUgPCAwKTsK IAotCXN0YXRlLT52aXNpYmxlID0gIGRybV9yZWN0X2NsaXBfc2NhbGVkKHNyYywgZHN0LCBjbGlw LCBoc2NhbGUsIHZzY2FsZSk7CisJc3RhdGUtPnZpc2libGUgPSBkcm1fcmVjdF9jbGlwX3NjYWxl ZChzcmMsIGRzdCwgY2xpcCwgaHNjYWxlLCB2c2NhbGUpOwogCiAJY3J0Y194ID0gZHN0LT54MTsK IAljcnRjX3kgPSBkc3QtPnkxOwpAQCAtOTQ4LDcgKzk1MSw5IEBAIGludCBpbnRlbF9zcHJpdGVf c2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiB7CiAJc3Ry dWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKnNldCA9IGRhdGE7CiAJc3RydWN0IGRybV9w bGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKKwlzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGU7CisJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKIAlpbnQgcmV0ID0g MDsKIAogCS8qIE1ha2Ugc3VyZSB3ZSBkb24ndCB0cnkgdG8gZW5hYmxlIGJvdGggc3JjICYgZGVz dCBzaW11bHRhbmVvdXNseSAqLwpAQCAtOTU5LDUwICs5NjQsNDEgQEAgaW50IGludGVsX3Nwcml0 ZV9zZXRfY29sb3JrZXkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgICAg c2V0LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZX0RFU1RJTkFUSU9OKQogCQlyZXR1cm4gLUVJ TlZBTDsKIAotCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Ci0KIAlwbGFuZSA9IGRybV9wbGFu ZV9maW5kKGRldiwgc2V0LT5wbGFuZV9pZCk7Ci0JaWYgKCFwbGFuZSB8fCBwbGFuZS0+dHlwZSAh PSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKSB7Ci0JCXJldCA9IC1FTk9FTlQ7Ci0JCWdvdG8gb3V0 X3VubG9jazsKLQl9CisJaWYgKCFwbGFuZSB8fCBwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQ RV9PVkVSTEFZKQorCQlyZXR1cm4gLUVOT0VOVDsKIAotCWludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmUpOworCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKIAotCWlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Ci0JCS8qIHBsYW5lIHNjYWxpbmcgYW5kIGNv bG9ya2V5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUgKi8KLQkJaWYgKHRvX2ludGVsX3BsYW5lX3N0 YXRlKHBsYW5lLT5zdGF0ZSktPnNjYWxlcl9pZCA+PSAwKSB7Ci0JCQlEUk1fRVJST1IoImNvbG9y a2V5IG5vdCBhbGxvd2VkIHdpdGggc2NhbGVyXG4iKTsKLQkJCXJldCA9IC1FSU5WQUw7Ci0JCQln b3RvIG91dF91bmxvY2s7Ci0JCX0KKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MocGxh bmUtPmRldik7CisJaWYgKCFzdGF0ZSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsK IAl9CisJc3RhdGUtPmFjcXVpcmVfY3R4ID0gJmN0eDsKKworCXdoaWxlICgxKSB7CisJCXBsYW5l X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKKwkJcmV0 ID0gUFRSX0VSUl9PUl9aRVJPKHBsYW5lX3N0YXRlKTsKKwkJaWYgKCFyZXQpIHsKKwkJCXRvX2lu dGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKS0+Y2tleSA9ICpzZXQ7CisJCQlyZXQgPSBkcm1f YXRvbWljX2NvbW1pdChzdGF0ZSk7CisJCX0KIAotCWludGVsX3BsYW5lLT5ja2V5ID0gKnNldDsK LQotCS8qCi0JICogVGhlIG9ubHkgd2F5IHRoaXMgY291bGQgZmFpbCB3b3VsZCBiZSBkdWUgdG8K LQkgKiB0aGUgY3VycmVudCBwbGFuZSBzdGF0ZSBiZWluZyB1bnN1cHBvcnRhYmxlIGFscmVhZHks Ci0JICogYW5kIHdlIGRvbnQndCBjb25zaWRlciB0aGF0IGFuIGVycm9yIGZvciB0aGUKLQkgKiBj b2xvcmtleSBpb2N0bC4gU28ganVzdCBpZ25vcmUgYW55IGVycm9yLgotCSAqLwotCWludGVsX3Bs YW5lX3Jlc3RvcmUocGxhbmUpOworCQlpZiAocmV0ICE9IC1FREVBRExLKQorCQkJYnJlYWs7CiAK LW91dF91bmxvY2s6Ci0JZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwotCXJldHVybiByZXQ7 Ci19CisJCWRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOworCQlkcm1fbW9kZXNldF9iYWNr b2ZmKCZjdHgpOworCX0KIAotaW50IGludGVsX3BsYW5lX3Jlc3RvcmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpCi17Ci0JaWYgKCFwbGFuZS0+Y3J0YyB8fCAhcGxhbmUtPnN0YXRlLT5mYikKLQkJ cmV0dXJuIDA7CisJaWYgKHJldCkKKwkJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKIAot CXJldHVybiBkcm1fcGxhbmVfaGVscGVyX3VwZGF0ZShwbGFuZSwgcGxhbmUtPmNydGMsIHBsYW5l LT5zdGF0ZS0+ZmIsCi0JCQkJICAgICAgIHBsYW5lLT5zdGF0ZS0+Y3J0Y194LCBwbGFuZS0+c3Rh dGUtPmNydGNfeSwKLQkJCQkgICAgICAgcGxhbmUtPnN0YXRlLT5jcnRjX3csIHBsYW5lLT5zdGF0 ZS0+Y3J0Y19oLAotCQkJCSAgICAgICBwbGFuZS0+c3RhdGUtPnNyY194LCBwbGFuZS0+c3RhdGUt PnNyY195LAotCQkJCSAgICAgICBwbGFuZS0+c3RhdGUtPnNyY193LCBwbGFuZS0+c3RhdGUtPnNy Y19oKTsKK291dDoKKwlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOworCWRybV9tb2Rlc2V0 X2FjcXVpcmVfZmluaSgmY3R4KTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgY29uc3QgdWlu dDMyX3QgaWxrX3BsYW5lX2Zvcm1hdHNbXSA9IHsKQEAgLTExMzEsNyArMTEyNyw2IEBAIGludGVs X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBw bGFuZSkKIAlpbnRlbF9wbGFuZS0+cGxhbmUgPSBwbGFuZTsKIAlpbnRlbF9wbGFuZS0+Y2hlY2tf cGxhbmUgPSBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmU7CiAJaW50ZWxfcGxhbmUtPmNvbW1pdF9w bGFuZSA9IGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmU7Ci0JaW50ZWxfcGxhbmUtPmNrZXkuZmxh Z3MgPSBJOTE1X1NFVF9DT0xPUktFWV9OT05FOwogCXBvc3NpYmxlX2NydGNzID0gKDEgPDwgcGlw ZSk7CiAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgJmludGVsX3BsYW5lLT5i YXNlLCBwb3NzaWJsZV9jcnRjcywKIAkJCQkgICAgICAgJmludGVsX3BsYW5lX2Z1bmNzLAotLSAK Mi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==