From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 19/24] drm/i915: Make setting color key atomic. Date: Mon, 1 Jun 2015 15:27:22 +0200 Message-ID: <1433165247-15928-20-git-send-email-maarten.lankhorst@linux.intel.com> References: <1433165247-15928-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 542316E603 for ; Mon, 1 Jun 2015 06:27:45 -0700 (PDT) In-Reply-To: <1433165247-15928-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 dS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwppbmRleCBhYTIxMjgzNjlhMGEuLmM3OWMw N2VmNjY1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3Bs YW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAg LTU2LDYgKzU2LDcgQEAgaW50ZWxfY3JlYXRlX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKQogCiAJc3RhdGUtPmJhc2UucGxhbmUgPSBwbGFuZTsKIAlzdGF0ZS0+YmFzZS5yb3Rh dGlvbiA9IEJJVChEUk1fUk9UQVRFXzApOworCXN0YXRlLT5ja2V5LmZsYWdzID0gSTkxNV9TRVRf Q09MT1JLRVlfTk9ORTsKIAogCXJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCA2NzYwNjU0YjY5ZjIuLjUzMDAwYTk4Zjg2NSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDM5Miw3ICs0MzkyLDcgQEAgc3RhdGljIGludCBz a2xfdXBkYXRlX3NjYWxlcl9wbGFuZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJcmV0dXJuIHJldDsKIAogCS8qIGNoZWNrIGNvbG9ya2V5ICovCi0JaWYgKFdBUk5fT04o aW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09MT1JLRVlfTk9ORSkpIHsKKwlp ZiAocGxhbmVfc3RhdGUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09MT1JLRVlfTk9ORSkgewog CQlEUk1fREVCVUdfS01TKCJQTEFORTolZCBzY2FsaW5nIHdpdGggY29sb3Iga2V5IG5vdCBhbGxv d2VkIiwKIAkJCWludGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQpOwogCQlyZXR1cm4gLUVJTlZBTDsK QEAgLTEzMzk1LDcgKzEzMzk1LDcgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7CiAJ CS8qIHVzZSBzY2FsZXIgd2hlbiBjb2xvcmtleSBpcyBub3QgcmVxdWlyZWQgKi8KLQkJaWYgKHRv X2ludGVsX3BsYW5lKHBsYW5lKS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9OT05F KSB7CisJCWlmIChzdGF0ZS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9OT05FKSB7 CiAJCQltaW5fc2NhbGUgPSAxOwogCQkJbWF4X3NjYWxlID0gc2tsX21heF9zY2FsZShpbnRlbF9j cnRjLCBjcnRjX3N0YXRlKTsKIAkJfQpAQCAtMTM1NTQsNyArMTM1NTQsNiBAQCBzdGF0aWMgc3Ry dWN0IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAlwcmltYXJ5LT5jaGVja19wbGFuZSA9IGludGVsX2NoZWNrX3ByaW1hcnlfcGxh bmU7CiAJcHJpbWFyeS0+Y29tbWl0X3BsYW5lID0gaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmU7 CiAJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsK LQlwcmltYXJ5LT5ja2V5LmZsYWdzID0gSTkxNV9TRVRfQ09MT1JLRVlfTk9ORTsKIAlpZiAoSEFT X0ZCQyhkZXYpICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkKIAkJcHJpbWFyeS0+cGxhbmUg PSAhcGlwZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA2MjYyZDliY2I1OWUuLmFi ZjkwMjQ1MTQ2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTI2Myw2ICsyNjMsOCBA QCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewogCSAqICAgICB1cGRhdGVfc2NhbGVyX3BsYW5l LgogCSAqLwogCWludCBzY2FsZXJfaWQ7CisKKwlzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xv cmtleSBja2V5OwogfTsKIAogc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnIHsKQEAg LTU3Nyw5ICs1NzksNiBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmUgewogCWJvb2wgY2FuX3NjYWxlOwog CWludCBtYXhfZG93bnNjYWxlOwogCi0JLyogRklYTUUgY29udmVydCB0byBwcm9wZXJ0aWVzICov Ci0Jc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgY2tleTsKLQogCS8qIFNpbmNlIHdl IG5lZWQgdG8gY2hhbmdlIHRoZSB3YXRlcm1hcmtzIGJlZm9yZS9hZnRlcgogCSAqIGVuYWJsaW5n L2Rpc2FibGluZyB0aGUgcGxhbmVzLCB3ZSBuZWVkIHRvIHN0b3JlIHRoZSBwYXJhbWV0ZXJzIGhl cmUKIAkgKiBhcyB0aGUgb3RoZXIgcGllY2VzIG9mIHRoZSBzdHJ1Y3QgbWF5IG5vdCByZWZsZWN0 IHRoZSB2YWx1ZXMgd2Ugd2FudApAQCAtMTM4Miw3ICsxMzgxLDYgQEAgYm9vbCBpbnRlbF9zZHZv X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3Qgc2R2b19yZWcsIGJvb2wgaXNf c2R2b2IpOwogCiAvKiBpbnRlbF9zcHJpdGUuYyAqLwogaW50IGludGVsX3BsYW5lX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSk7Ci1pbnQgaW50 ZWxfcGxhbmVfcmVzdG9yZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7CiBpbnQgaW50ZWxfc3By aXRlX3NldF9jb2xvcmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJ ICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogYm9vbCBpbnRlbF9waXBlX3VwZGF0 ZV9zdGFydChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKaW5kZXggNTQ0M2UxNmYzMDdlLi4xOTg4ZjBmMDM2NGIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCkBAIC0xODIsNyArMTgyLDggQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAljb25zdCBp bnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwogCXUzMiBwbGFuZV9jdGwsIHN0cmlk ZV9kaXYsIHN0cmlkZTsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZi LT5waXhlbF9mb3JtYXQsIDApOwotCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9y a2V5ICprZXkgPSAmaW50ZWxfcGxhbmUtPmNrZXk7CisJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9z cHJpdGVfY29sb3JrZXkgKmtleSA9CisJCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmUt PnN0YXRlKS0+Y2tleTsKIAl1bnNpZ25lZCBsb25nIHN1cmZfYWRkcjsKIAl1MzIgdGlsZV9oZWln aHQsIHBsYW5lX29mZnNldCwgcGxhbmVfc2l6ZTsKIAl1bnNpZ25lZCBpbnQgcm90YXRpb247CkBA IC0zNDQsNyArMzQ1LDggQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxh bmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1MzIgc3ByY3RsOwogCXVuc2lnbmVkIGxvbmcg c3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9y bWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2lu dGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJmludGVsX3BsYW5lLT5ja2V5OworCWNvbnN0IHN0 cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPQorCQkmdG9faW50ZWxfcGxhbmVf c3RhdGUoZHBsYW5lLT5zdGF0ZSktPmNrZXk7CiAKIAlzcHJjdGwgPSBTUF9FTkFCTEU7CiAKQEAg LTQ4Nyw3ICs0ODksOCBAQCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwogCXVu c2lnbmVkIGxvbmcgc3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3Np emUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBz dHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJmludGVsX3BsYW5lLT5ja2V5 OworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPQorCQkmdG9f aW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKS0+Y2tleTsKIAogCXNwcmN0bCA9IFNQUklU RV9FTkFCTEU7CiAKQEAgLTYyNyw3ICs2MzAsOCBAQCBpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdW5zaWduZWQgbG9uZyBk dnNzdXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKIAl1MzIgZHZzY250ciwgZHZzc2NhbGU7CiAJ aW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAw KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJmludGVs X3BsYW5lLT5ja2V5OworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICpr ZXkgPQorCQkmdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKS0+Y2tleTsKIAogCWR2 c2NudHIgPSBEVlNfRU5BQkxFOwogCkBAIC03ODEsNyArNzg1LDcgQEAgaW50ZWxfY2hlY2tfc3By aXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCS8qIHNldHVwIGNhbl9zY2FsZSwg bWluX3NjYWxlLCBtYXhfc2NhbGUgKi8KIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkg ewogCQkvKiB1c2Ugc2NhbGVyIHdoZW4gY29sb3JrZXkgaXMgbm90IHJlcXVpcmVkICovCi0JCWlm IChpbnRlbF9wbGFuZS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9OT05FKSB7CisJ CWlmIChzdGF0ZS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9OT05FKSB7CiAJCQlj YW5fc2NhbGUgPSAxOwogCQkJbWluX3NjYWxlID0gMTsKIAkJCW1heF9zY2FsZSA9IHNrbF9tYXhf c2NhbGUoaW50ZWxfY3J0YywgY3J0Y19zdGF0ZSk7CkBAIC04MDEsNyArODA1LDYgQEAgaW50ZWxf Y2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCSAqIGNvb3JkaW5h dGVzIGFuZCBzaXplcy4gV2UgcHJvYmFibHkgbmVlZCBzb21lIHdheSB0byBkZWNpZGUgd2hldGhl cgogCSAqIG1vcmUgc3RyaWN0IGNoZWNraW5nIHNob3VsZCBiZSBkb25lIGluc3RlYWQuCiAJICov Ci0KIAlkcm1fcmVjdF9yb3RhdGUoc3JjLCBmYi0+d2lkdGggPDwgMTYsIGZiLT5oZWlnaHQgPDwg MTYsCiAJCQlzdGF0ZS0+YmFzZS5yb3RhdGlvbik7CiAKQEAgLTgxMSw3ICs4MTQsNyBAQCBpbnRl bF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJdnNjYWxlID0g ZHJtX3JlY3RfY2FsY192c2NhbGVfcmVsYXhlZChzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2Nh bGUpOwogCUJVR19PTih2c2NhbGUgPCAwKTsKIAotCXN0YXRlLT52aXNpYmxlID0gIGRybV9yZWN0 X2NsaXBfc2NhbGVkKHNyYywgZHN0LCBjbGlwLCBoc2NhbGUsIHZzY2FsZSk7CisJc3RhdGUtPnZp c2libGUgPSBkcm1fcmVjdF9jbGlwX3NjYWxlZChzcmMsIGRzdCwgY2xpcCwgaHNjYWxlLCB2c2Nh bGUpOwogCiAJY3J0Y194ID0gZHN0LT54MTsKIAljcnRjX3kgPSBkc3QtPnkxOwpAQCAtOTU1LDcg Kzk1OCw5IEBAIGludCBpbnRlbF9zcHJpdGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiB7CiAJc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkg KnNldCA9IGRhdGE7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGludGVsX3Bs YW5lICppbnRlbF9wbGFuZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsK KwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4IGN0eDsKIAlpbnQgcmV0ID0gMDsKIAogCS8qIE1ha2Ugc3VyZSB3ZSBkb24ndCB0 cnkgdG8gZW5hYmxlIGJvdGggc3JjICYgZGVzdCBzaW11bHRhbmVvdXNseSAqLwpAQCAtOTY2LDUw ICs5NzEsNDEgQEAgaW50IGludGVsX3Nwcml0ZV9zZXRfY29sb3JrZXkoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgICAgc2V0LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZ X0RFU1RJTkFUSU9OKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWRybV9tb2Rlc2V0X2xvY2tfYWxs KGRldik7Ci0KIAlwbGFuZSA9IGRybV9wbGFuZV9maW5kKGRldiwgc2V0LT5wbGFuZV9pZCk7Ci0J aWYgKCFwbGFuZSB8fCBwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKSB7Ci0J CXJldCA9IC1FTk9FTlQ7Ci0JCWdvdG8gb3V0X3VubG9jazsKLQl9CisJaWYgKCFwbGFuZSB8fCBw bGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKQorCQlyZXR1cm4gLUVOT0VOVDsK IAotCWludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOworCWRybV9tb2Rlc2V0X2Fj cXVpcmVfaW5pdCgmY3R4LCAwKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7 Ci0JCS8qIHBsYW5lIHNjYWxpbmcgYW5kIGNvbG9ya2V5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUg Ki8KLQkJaWYgKHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSktPnNjYWxlcl9pZCA+ PSAwKSB7Ci0JCQlEUk1fRVJST1IoImNvbG9ya2V5IG5vdCBhbGxvd2VkIHdpdGggc2NhbGVyXG4i KTsKLQkJCXJldCA9IC1FSU5WQUw7Ci0JCQlnb3RvIG91dF91bmxvY2s7Ci0JCX0KKwlzdGF0ZSA9 IGRybV9hdG9taWNfc3RhdGVfYWxsb2MocGxhbmUtPmRldik7CisJaWYgKCFzdGF0ZSkgeworCQly ZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKIAl9CisJc3RhdGUtPmFjcXVpcmVfY3R4ID0gJmN0 eDsKKworCXdoaWxlICgxKSB7CisJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVf c3RhdGUoc3RhdGUsIHBsYW5lKTsKKwkJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKHBsYW5lX3N0YXRl KTsKKwkJaWYgKCFyZXQpIHsKKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKS0+ Y2tleSA9ICpzZXQ7CisJCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CisJCX0KIAot CWludGVsX3BsYW5lLT5ja2V5ID0gKnNldDsKLQotCS8qCi0JICogVGhlIG9ubHkgd2F5IHRoaXMg Y291bGQgZmFpbCB3b3VsZCBiZSBkdWUgdG8KLQkgKiB0aGUgY3VycmVudCBwbGFuZSBzdGF0ZSBi ZWluZyB1bnN1cHBvcnRhYmxlIGFscmVhZHksCi0JICogYW5kIHdlIGRvbnQndCBjb25zaWRlciB0 aGF0IGFuIGVycm9yIGZvciB0aGUKLQkgKiBjb2xvcmtleSBpb2N0bC4gU28ganVzdCBpZ25vcmUg YW55IGVycm9yLgotCSAqLwotCWludGVsX3BsYW5lX3Jlc3RvcmUocGxhbmUpOworCQlpZiAocmV0 ICE9IC1FREVBRExLKQorCQkJYnJlYWs7CiAKLW91dF91bmxvY2s6Ci0JZHJtX21vZGVzZXRfdW5s b2NrX2FsbChkZXYpOwotCXJldHVybiByZXQ7Ci19CisJCWRybV9hdG9taWNfc3RhdGVfY2xlYXIo c3RhdGUpOworCQlkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOworCX0KIAotaW50IGludGVsX3Bs YW5lX3Jlc3RvcmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCi17Ci0JaWYgKCFwbGFuZS0+Y3J0 YyB8fCAhcGxhbmUtPnN0YXRlLT5mYikKLQkJcmV0dXJuIDA7CisJaWYgKHJldCkKKwkJZHJtX2F0 b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKIAotCXJldHVybiBkcm1fcGxhbmVfaGVscGVyX3VwZGF0 ZShwbGFuZSwgcGxhbmUtPmNydGMsIHBsYW5lLT5zdGF0ZS0+ZmIsCi0JCQkJICAgICAgIHBsYW5l LT5zdGF0ZS0+Y3J0Y194LCBwbGFuZS0+c3RhdGUtPmNydGNfeSwKLQkJCQkgICAgICAgcGxhbmUt PnN0YXRlLT5jcnRjX3csIHBsYW5lLT5zdGF0ZS0+Y3J0Y19oLAotCQkJCSAgICAgICBwbGFuZS0+ c3RhdGUtPnNyY194LCBwbGFuZS0+c3RhdGUtPnNyY195LAotCQkJCSAgICAgICBwbGFuZS0+c3Rh dGUtPnNyY193LCBwbGFuZS0+c3RhdGUtPnNyY19oKTsKK291dDoKKwlkcm1fbW9kZXNldF9kcm9w X2xvY2tzKCZjdHgpOworCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKKwlyZXR1cm4g cmV0OwogfQogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgaWxrX3BsYW5lX2Zvcm1hdHNbXSA9IHsK QEAgLTExMzgsNyArMTEzNCw2IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIAlpbnRlbF9wbGFuZS0+cGxhbmUgPSBw bGFuZTsKIAlpbnRlbF9wbGFuZS0+Y2hlY2tfcGxhbmUgPSBpbnRlbF9jaGVja19zcHJpdGVfcGxh bmU7CiAJaW50ZWxfcGxhbmUtPmNvbW1pdF9wbGFuZSA9IGludGVsX2NvbW1pdF9zcHJpdGVfcGxh bmU7Ci0JaW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgPSBJOTE1X1NFVF9DT0xPUktFWV9OT05FOwog CXBvc3NpYmxlX2NydGNzID0gKDEgPDwgcGlwZSk7CiAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFu ZV9pbml0KGRldiwgJmludGVsX3BsYW5lLT5iYXNlLCBwb3NzaWJsZV9jcnRjcywKIAkJCQkgICAg ICAgJmludGVsX3BsYW5lX2Z1bmNzLAotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==