From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v3 17/19] drm/i915: Make setting color key atomic. Date: Thu, 18 Jun 2015 07:21:23 -0700 Message-ID: <20150618142123.GI3607@intel.com> References: <1434364436-6366-1-git-send-email-maarten.lankhorst@linux.intel.com> <1434364436-6366-18-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 3133B6ECF1 for ; Thu, 18 Jun 2015 07:21:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434364436-6366-18-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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTUsIDIwMTUgYXQgMTI6MzM6NTRQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQnkgbWFraW5nIGNvbG9yIGtleSBhdG9taWMgdGhlcmUgYXJlIG5vIG1vcmUg dHJhbnNpdGlvbmFsIGhlbHBlcnMuCj4gVGhlIHBsYW5lIGNoZWNrIGZ1bmN0aW9uIHdpbGwgcmVq ZWN0IHRoZSBjb2xvciBrZXkgd2hlbiBhIHNjYWxlciBpcwo+IGFjdGl2ZS4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8 ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCAgNyAr Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgNiArLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgICAgICAgfCA4NSArKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9u cygrKSwgNTMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljX3BsYW5lLmMKPiBpbmRleCA5MWQ1Mzc2OGRmOWQuLjEwYThlY2VkYzk0MiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gQEAgLTU2LDYgKzU2LDcg QEAgaW50ZWxfY3JlYXRlX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICAK PiAgCXN0YXRlLT5iYXNlLnBsYW5lID0gcGxhbmU7Cj4gIAlzdGF0ZS0+YmFzZS5yb3RhdGlvbiA9 IEJJVChEUk1fUk9UQVRFXzApOwo+ICsJc3RhdGUtPmNrZXkuZmxhZ3MgPSBJOTE1X1NFVF9DT0xP UktFWV9OT05FOwo+ICAKPiAgCXJldHVybiBzdGF0ZTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBpbmRleCA1ZmFjZDA1MDFhMzQuLjc0NmM3M2QyYWI4NCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDQwMSw5ICs0NDAxLDkgQEAg c3RhdGljIGludCBza2xfdXBkYXRlX3NjYWxlcl9wbGFuZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCS8qIGNoZWNrIGNvbG9ya2V5 ICovCj4gLQlpZiAoV0FSTl9PTihpbnRlbF9wbGFuZS0+Y2tleS5mbGFncyAhPSBJOTE1X1NFVF9D T0xPUktFWV9OT05FKSkgewo+ICsJaWYgKHBsYW5lX3N0YXRlLT5ja2V5LmZsYWdzICE9IEk5MTVf U0VUX0NPTE9SS0VZX05PTkUpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJbUExBTkU6JWRdIHNjYWxp bmcgd2l0aCBjb2xvciBrZXkgbm90IGFsbG93ZWQiLAo+IC0JCQlpbnRlbF9wbGFuZS0+YmFzZS5i YXNlLmlkKTsKPiArCQkJICAgICAgaW50ZWxfcGxhbmUtPmJhc2UuYmFzZS5pZCk7Cj4gIAkJcmV0 dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IEBAIC0xMzczMyw3ICsxMzczMyw3IEBAIGludGVsX2No ZWNrX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAo+ICAJLyogdXNl IHNjYWxlciB3aGVuIGNvbG9ya2V5IGlzIG5vdCByZXF1aXJlZCAqLwo+ICAJaWYgKElOVEVMX0lO Rk8ocGxhbmUtPmRldiktPmdlbiA+PSA5ICYmCj4gLQkgICAgdG9faW50ZWxfcGxhbmUocGxhbmUp LT5ja2V5LmZsYWdzID09IEk5MTVfU0VUX0NPTE9SS0VZX05PTkUpIHsKPiArCSAgICBzdGF0ZS0+ Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9OT05FKSB7Cj4gIAkJbWluX3NjYWxlID0g MTsKPiAgCQltYXhfc2NhbGUgPSBza2xfbWF4X3NjYWxlKHRvX2ludGVsX2NydGMoY3J0YyksIGNy dGNfc3RhdGUpOwo+ICAJCWNhbl9wb3NpdGlvbiA9IHRydWU7Cj4gQEAgLTEzODgxLDcgKzEzODgx LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlwcmltYXJ5LT5jaGVja19wbGFuZSA9IGludGVs X2NoZWNrX3ByaW1hcnlfcGxhbmU7Cj4gIAlwcmltYXJ5LT5jb21taXRfcGxhbmUgPSBpbnRlbF9j b21taXRfcHJpbWFyeV9wbGFuZTsKPiAgCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBpbnRlbF9k aXNhYmxlX3ByaW1hcnlfcGxhbmU7Cj4gLQlwcmltYXJ5LT5ja2V5LmZsYWdzID0gSTkxNV9TRVRf Q09MT1JLRVlfTk9ORTsKPiAgCWlmIChIQVNfRkJDKGRldikgJiYgSU5URUxfSU5GTyhkZXYpLT5n ZW4gPCA0KQo+ICAJCXByaW1hcnktPnBsYW5lID0gIXBpcGU7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gaW5kZXggOTNiOTU0MmFiOGRjLi4zYTJhYzgyYjA5NzAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0yNzQsNiArMjc0LDggQEAgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlIHsKPiAgCSAqICAgICB1cGRhdGVfc2NhbGVyX3BsYW5lLgo+ICAJICovCj4gIAlp bnQgc2NhbGVyX2lkOwo+ICsKPiArCXN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5IGNr ZXk7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9jb25maWcgewo+IEBA IC01ODgsOSArNTkwLDYgQEAgc3RydWN0IGludGVsX3BsYW5lIHsKPiAgCWJvb2wgY2FuX3NjYWxl Owo+ICAJaW50IG1heF9kb3duc2NhbGU7Cj4gIAo+IC0JLyogRklYTUUgY29udmVydCB0byBwcm9w ZXJ0aWVzICovCj4gLQlzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSBja2V5Owo+IC0K PiAgCS8qIFNpbmNlIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSB3YXRlcm1hcmtzIGJlZm9yZS9hZnRl cgo+ICAJICogZW5hYmxpbmcvZGlzYWJsaW5nIHRoZSBwbGFuZXMsIHdlIG5lZWQgdG8gc3RvcmUg dGhlIHBhcmFtZXRlcnMgaGVyZQo+ICAJICogYXMgdGhlIG90aGVyIHBpZWNlcyBvZiB0aGUgc3Ry dWN0IG1heSBub3QgcmVmbGVjdCB0aGUgdmFsdWVzIHdlIHdhbnQKPiBAQCAtMTM5MCw3ICsxMzg5 LDYgQEAgYm9vbCBpbnRlbF9zZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMy X3Qgc2R2b19yZWcsIGJvb2wgaXNfc2R2b2IpOwo+ICAKPiAgLyogaW50ZWxfc3ByaXRlLmMgKi8K PiAgaW50IGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBl IHBpcGUsIGludCBwbGFuZSk7Cj4gLWludCBpbnRlbF9wbGFuZV9yZXN0b3JlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lKTsKPiAgaW50IGludGVsX3Nwcml0ZV9zZXRfY29sb3JrZXkoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQkJICAgICAgc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYpOwo+ICBib29sIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gaW5kZXggMTY4Zjkw ZjM0NmMyLi4yMWQzZjc4ODJjNGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUu Ywo+IEBAIC0xODIsNyArMTgyLDggQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWNvbnN0IGludCBwbGFuZSA9 IGludGVsX3BsYW5lLT5wbGFuZSArIDE7Cj4gIAl1MzIgcGxhbmVfY3RsLCBzdHJpZGVfZGl2LCBz dHJpZGU7Cj4gIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDApOwo+IC0JY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkg KmtleSA9ICZpbnRlbF9wbGFuZS0+Y2tleTsKPiArCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3By aXRlX2NvbG9ya2V5ICprZXkgPQo+ICsJCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmUt PnN0YXRlKS0+Y2tleTsKPiAgCXVuc2lnbmVkIGxvbmcgc3VyZl9hZGRyOwo+ICAJdTMyIHRpbGVf aGVpZ2h0LCBwbGFuZV9vZmZzZXQsIHBsYW5lX3NpemU7Cj4gIAl1bnNpZ25lZCBpbnQgcm90YXRp b247Cj4gQEAgLTM0NCw3ICszNDUsOCBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJdTMyIHNwcmN0bDsKPiAgCXVu c2lnbmVkIGxvbmcgc3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7Cj4gIAlpbnQgcGl4ZWxf c2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+IC0JY29u c3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZpbnRlbF9wbGFuZS0+ Y2tleTsKPiArCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPQo+ ICsJCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShkcGxhbmUtPnN0YXRlKS0+Y2tleTsKPiAgCj4gIAlz cHJjdGwgPSBTUF9FTkFCTEU7Cj4gIAo+IEBAIC00ODcsNyArNDg5LDggQEAgaXZiX3VwZGF0ZV9w bGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJ dTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwo+ICAJdW5zaWduZWQgbG9uZyBzcHJzdXJmX29mZnNl dCwgbGluZWFyX29mZnNldDsKPiAgCWludCBwaXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFuZV9j cHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0 ZV9jb2xvcmtleSAqa2V5ID0gJmludGVsX3BsYW5lLT5ja2V5Owo+ICsJY29uc3Qgc3RydWN0IGRy bV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9Cj4gKwkJJnRvX2ludGVsX3BsYW5lX3N0YXRl KHBsYW5lLT5zdGF0ZSktPmNrZXk7Cj4gIAo+ICAJc3ByY3RsID0gU1BSSVRFX0VOQUJMRTsKPiAg Cj4gQEAgLTYyNyw3ICs2MzAsOCBAQCBpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAl1bnNpZ25lZCBsb25nIGR2c3N1cmZf b2Zmc2V0LCBsaW5lYXJfb2Zmc2V0Owo+ICAJdTMyIGR2c2NudHIsIGR2c3NjYWxlOwo+ICAJaW50 IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsK PiAtCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmaW50ZWxf cGxhbmUtPmNrZXk7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAq a2V5ID0KPiArCQkmdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKS0+Y2tleTsKPiAg Cj4gIAlkdnNjbnRyID0gRFZTX0VOQUJMRTsKPiAgCj4gQEAgLTc3OCw3ICs3ODIsNyBAQCBpbnRl bF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkvKiBzZXR1 cCBjYW5fc2NhbGUsIG1pbl9zY2FsZSwgbWF4X3NjYWxlICovCj4gIAlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPj0gOSkgewo+ICAJCS8qIHVzZSBzY2FsZXIgd2hlbiBjb2xvcmtleSBpcyBub3Qg cmVxdWlyZWQgKi8KPiAtCQlpZiAoaW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgPT0gSTkxNV9TRVRf Q09MT1JLRVlfTk9ORSkgewo+ICsJCWlmIChzdGF0ZS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9D T0xPUktFWV9OT05FKSB7Cj4gIAkJCWNhbl9zY2FsZSA9IDE7Cj4gIAkJCW1pbl9zY2FsZSA9IDE7 Cj4gIAkJCW1heF9zY2FsZSA9IHNrbF9tYXhfc2NhbGUoaW50ZWxfY3J0YywgY3J0Y19zdGF0ZSk7 Cj4gQEAgLTc5OCw3ICs4MDIsNiBAQCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4gIAkgKiBjb29yZGluYXRlcyBhbmQgc2l6ZXMuIFdlIHByb2JhYmx5 IG5lZWQgc29tZSB3YXkgdG8gZGVjaWRlIHdoZXRoZXIKPiAgCSAqIG1vcmUgc3RyaWN0IGNoZWNr aW5nIHNob3VsZCBiZSBkb25lIGluc3RlYWQuCj4gIAkgKi8KPiAtCj4gIAlkcm1fcmVjdF9yb3Rh dGUoc3JjLCBmYi0+d2lkdGggPDwgMTYsIGZiLT5oZWlnaHQgPDwgMTYsCj4gIAkJCXN0YXRlLT5i YXNlLnJvdGF0aW9uKTsKPiAgCj4gQEAgLTgwOCw3ICs4MTEsNyBAQCBpbnRlbF9jaGVja19zcHJp dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAl2c2NhbGUgPSBkcm1fcmVjdF9j YWxjX3ZzY2FsZV9yZWxheGVkKHNyYywgZHN0LCBtaW5fc2NhbGUsIG1heF9zY2FsZSk7Cj4gIAlC VUdfT04odnNjYWxlIDwgMCk7Cj4gIAo+IC0Jc3RhdGUtPnZpc2libGUgPSAgZHJtX3JlY3RfY2xp cF9zY2FsZWQoc3JjLCBkc3QsIGNsaXAsIGhzY2FsZSwgdnNjYWxlKTsKPiArCXN0YXRlLT52aXNp YmxlID0gZHJtX3JlY3RfY2xpcF9zY2FsZWQoc3JjLCBkc3QsIGNsaXAsIGhzY2FsZSwgdnNjYWxl KTsKPiAgCj4gIAljcnRjX3ggPSBkc3QtPngxOwo+ICAJY3J0Y195ID0gZHN0LT55MTsKPiBAQCAt OTUwLDcgKzk1Myw5IEBAIGludCBpbnRlbF9zcHJpdGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIHsKPiAgCXN0cnVjdCBkcm1faW50ZWxfc3ByaXRl X2NvbG9ya2V5ICpzZXQgPSBkYXRhOwo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gLQlz dHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOwo+ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gKwlz dHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Owo+ICAJaW50IHJldCA9IDA7CgpDYW4g d2Ugc2ltcGxpZnkgdGhpcyBieSBqdXN0IGNhbGxpbmcKZHJtX2F0b21pY19oZWxwZXJfcGxhbmVf c2V0X3Byb3BlcnR5KCkgYW5kIGxldCBpdCBoYW5kbGUgdGhlIGF0b21pYwp0cmFuc2FjdGlvbiBm b3IgdXM/CgoKTWF0dAoKPiAgCj4gIAkvKiBNYWtlIHN1cmUgd2UgZG9uJ3QgdHJ5IHRvIGVuYWJs ZSBib3RoIHNyYyAmIGRlc3Qgc2ltdWx0YW5lb3VzbHkgKi8KPiBAQCAtOTYxLDUwICs5NjYsNDEg QEAgaW50IGludGVsX3Nwcml0ZV9zZXRfY29sb3JrZXkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKPiAgCSAgICBzZXQtPmZsYWdzICYgSTkxNV9TRVRfQ09MT1JLRVlfREVTVElO QVRJT04pCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IC0JZHJtX21vZGVzZXRfbG9ja19hbGwo ZGV2KTsKPiAtCj4gIAlwbGFuZSA9IGRybV9wbGFuZV9maW5kKGRldiwgc2V0LT5wbGFuZV9pZCk7 Cj4gLQlpZiAoIXBsYW5lIHx8IHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX09WRVJMQVkp IHsKPiAtCQlyZXQgPSAtRU5PRU5UOwo+IC0JCWdvdG8gb3V0X3VubG9jazsKPiAtCX0KPiArCWlm ICghcGxhbmUgfHwgcGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkKPiArCQly ZXR1cm4gLUVOT0VOVDsKPiAgCj4gLQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5l KTsKPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKPiAgCj4gLQlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+IC0JCS8qIHBsYW5lIHNjYWxpbmcgYW5kIGNvbG9y a2V5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUgKi8KPiAtCQlpZiAodG9faW50ZWxfcGxhbmVfc3Rh dGUocGxhbmUtPnN0YXRlKS0+c2NhbGVyX2lkID49IDApIHsKPiAtCQkJRFJNX0VSUk9SKCJjb2xv cmtleSBub3QgYWxsb3dlZCB3aXRoIHNjYWxlclxuIik7Cj4gLQkJCXJldCA9IC1FSU5WQUw7Cj4g LQkJCWdvdG8gb3V0X3VubG9jazsKPiAtCQl9Cj4gKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVf YWxsb2MocGxhbmUtPmRldik7Cj4gKwlpZiAoIXN0YXRlKSB7Cj4gKwkJcmV0ID0gLUVOT01FTTsK PiArCQlnb3RvIG91dDsKPiAgCX0KPiArCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7Cj4gKwo+ ICsJd2hpbGUgKDEpIHsKPiArCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0 YXRlKHN0YXRlLCBwbGFuZSk7Cj4gKwkJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKHBsYW5lX3N0YXRl KTsKPiArCQlpZiAoIXJldCkgewo+ICsJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9zdGF0 ZSktPmNrZXkgPSAqc2V0Owo+ICsJCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4g KwkJfQo+ICAKPiAtCWludGVsX3BsYW5lLT5ja2V5ID0gKnNldDsKPiAtCj4gLQkvKgo+IC0JICog VGhlIG9ubHkgd2F5IHRoaXMgY291bGQgZmFpbCB3b3VsZCBiZSBkdWUgdG8KPiAtCSAqIHRoZSBj dXJyZW50IHBsYW5lIHN0YXRlIGJlaW5nIHVuc3VwcG9ydGFibGUgYWxyZWFkeSwKPiAtCSAqIGFu ZCB3ZSBkb250J3QgY29uc2lkZXIgdGhhdCBhbiBlcnJvciBmb3IgdGhlCj4gLQkgKiBjb2xvcmtl eSBpb2N0bC4gU28ganVzdCBpZ25vcmUgYW55IGVycm9yLgo+IC0JICovCj4gLQlpbnRlbF9wbGFu ZV9yZXN0b3JlKHBsYW5lKTsKPiArCQlpZiAocmV0ICE9IC1FREVBRExLKQo+ICsJCQlicmVhazsK PiAgCj4gLW91dF91bmxvY2s6Cj4gLQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7Cj4gLQly ZXR1cm4gcmV0Owo+IC19Cj4gKwkJZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7Cj4gKwkJ ZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKPiArCX0KPiAgCj4gLWludCBpbnRlbF9wbGFuZV9y ZXN0b3JlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+IC17Cj4gLQlpZiAoIXBsYW5lLT5jcnRj IHx8ICFwbGFuZS0+c3RhdGUtPmZiKQo+IC0JCXJldHVybiAwOwo+ICsJaWYgKHJldCkKPiArCQlk cm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICAKPiAtCXJldHVybiBkcm1fcGxhbmVfaGVs cGVyX3VwZGF0ZShwbGFuZSwgcGxhbmUtPmNydGMsIHBsYW5lLT5zdGF0ZS0+ZmIsCj4gLQkJCQkg ICAgICAgcGxhbmUtPnN0YXRlLT5jcnRjX3gsIHBsYW5lLT5zdGF0ZS0+Y3J0Y195LAo+IC0JCQkJ ICAgICAgIHBsYW5lLT5zdGF0ZS0+Y3J0Y193LCBwbGFuZS0+c3RhdGUtPmNydGNfaCwKPiAtCQkJ CSAgICAgICBwbGFuZS0+c3RhdGUtPnNyY194LCBwbGFuZS0+c3RhdGUtPnNyY195LAo+IC0JCQkJ ICAgICAgIHBsYW5lLT5zdGF0ZS0+c3JjX3csIHBsYW5lLT5zdGF0ZS0+c3JjX2gpOwo+ICtvdXQ6 Cj4gKwlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwo+ICsJZHJtX21vZGVzZXRfYWNxdWly ZV9maW5pKCZjdHgpOwo+ICsJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHVp bnQzMl90IGlsa19wbGFuZV9mb3JtYXRzW10gPSB7Cj4gQEAgLTExMzMsNyArMTEyOSw2IEBAIGlu dGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGlu dCBwbGFuZSkKPiAgCWludGVsX3BsYW5lLT5wbGFuZSA9IHBsYW5lOwo+ICAJaW50ZWxfcGxhbmUt PmNoZWNrX3BsYW5lID0gaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lOwo+ICAJaW50ZWxfcGxhbmUt PmNvbW1pdF9wbGFuZSA9IGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmU7Cj4gLQlpbnRlbF9wbGFu ZS0+Y2tleS5mbGFncyA9IEk5MTVfU0VUX0NPTE9SS0VZX05PTkU7Cj4gIAlwb3NzaWJsZV9jcnRj cyA9ICgxIDw8IHBpcGUpOwo+ICAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwg JmludGVsX3BsYW5lLT5iYXNlLCBwb3NzaWJsZV9jcnRjcywKPiAgCQkJCSAgICAgICAmaW50ZWxf cGxhbmVfZnVuY3MsCj4gLS0gCj4gMi4xLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCk1hdHQgUm9wZXIKR3JhcGhpY3MgU29mdHdh cmUgRW5naW5lZXIKSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50CkludGVsIENv cnBvcmF0aW9uCig5MTYpIDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==