From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 4/5] drm/i915: Make updating pipe without modeset atomic. Date: Thu, 27 Aug 2015 16:58:21 +0300 Message-ID: <20150827135821.GE5176@intel.com> References: <1440683046-27110-1-git-send-email-maarten.lankhorst@linux.intel.com> <1440683046-27110-5-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 4037C6E674 for ; Thu, 27 Aug 2015 06:58:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1440683046-27110-5-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 T24gVGh1LCBBdWcgMjcsIDIwMTUgYXQgMDM6NDQ6MDVQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSW5zdGVhZCBvZiBkb2luZyBhIGhhY2sgZHVyaW5nIHByaW1hcnkgcGxhbmUg Y29tbWl0IHRoZSBzdGF0ZQo+IGlzIHVwZGF0ZWQgZHVyaW5nIGF0b21pYyBldmFzaW9uLiBJdCBo YW5kbGVzIGRpZmZlcmVuY2VzIGluCj4gcGlwZSBzaXplIGFuZCB0aGUgcGFuZWwgZml0dGVyLgo+ IAo+IFRoaXMgaXMgY29udGludWluZyBvbiB0b3Agb2YgRGFuaWVsJ3Mgd29yayB0byBtYWtlIGZh c3Rlcgo+IG1vZGVzZXRzIGF0b21pYywgYW5kIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0Lgo+ IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21p Yy5jICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAx MTAgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyICsKPiAgMyBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNl cnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYwo+IGluZGV4IDkzMzZlODAzMDk4MC4uODI4N2I4MTI4N2EwIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXRvbWljLmMKPiBAQCAtOTgsOCArOTgsOCBAQCBpbnRlbF9jcnRjX2R1cGxp Y2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAo+ ICAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmY3J0Y19z dGF0ZS0+YmFzZSk7Cj4gLQo+ICAJY3J0Y19zdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsKPiArCWNy dGNfc3RhdGUtPnVwZGF0ZV9waXBlID0gZmFsc2U7Cj4gIAo+ICAJcmV0dXJuICZjcnRjX3N0YXRl LT5iYXNlOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDdi NWRmZTJmN2IyZC4uZDM4NzRhNjhjZGI5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC0xMDgsNiArMTA4LDkgQEAgc3RhdGljIHZvaWQgc2tsX2luaXRfc2NhbGVy cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3IKPiAg CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgc3RhdGljIGludCBpOXh4 X2dldF9yZWZjbGsoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g IAkJCSAgIGludCBudW1fY29ubmVjdG9ycyk7Cj4gK3N0YXRpYyB2b2lkIHNreWxha2VfcGZpdF9l bmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ICtzdGF0aWMgdm9pZCBpcm9ubGFrZV9w Zml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGJvb2wgZm9yY2UpOwo+ICtzdGF0 aWMgdm9pZCBpcm9ubGFrZV9wZml0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4g IHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4gIAo+ICB0eXBlZGVmIHN0cnVjdCB7Cj4gQEAgLTMzMDUsMTQgKzMzMDgsMjAg QEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19oYXNfcGVuZGluZ19mbGlwKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiAgCXJldHVybiBwZW5kaW5nOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRl bF91cGRhdGVfcGlwZV9zaXplKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICtzdGF0aWMgdm9p ZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJ CQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiAgewo+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwo+ICsJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnID0KPiArCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uu c3RhdGUpOwo+ICAKPiAtCWlmICghaTkxNS5mYXN0Ym9vdCkKPiAtCQlyZXR1cm47Cj4gKwkvKiBk cm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJl IGNhbGxlZC4gKi8KPiArCWNydGMtPmJhc2UubW9kZSA9IGNydGMtPmJhc2Uuc3RhdGUtPm1vZGU7 Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiVXBkYXRpbmcgcGlwZSBzaXplICVpeCVpIC0+ICVpeCVp XG4iLAo+ICsJCSAgICAgIG9sZF9jcnRjX3N0YXRlLT5waXBlX3NyY193LCBvbGRfY3J0Y19zdGF0 ZS0+cGlwZV9zcmNfaCwKPiArCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdywgcGlwZV9j b25maWctPnBpcGVfc3JjX2gpOwo+ICAKPiAgCWlmIChIQVNfRERJKGRldikpCj4gIAkJaW50ZWxf c2V0X3BpcGVfY3NjKCZjcnRjLT5iYXNlKTsKPiBAQCAtMzMyNCwyNyArMzMzMywyNiBAQCBzdGF0 aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9zaXplKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ ICAJICogZmFzdGJvb3QgY2FzZSwgd2UnbGwgZmxpcCwgYnV0IGlmIHdlIGRvbid0IHVwZGF0ZSB0 aGUgcGlwZXNyYyBhbmQKPiAgCSAqIHBmaXQgc3RhdGUsIHdlJ2xsIGVuZCB1cCB3aXRoIGEgYmln IGZiIHNjYW5uZWQgb3V0IGludG8gdGhlIHdyb25nCj4gIAkgKiBzaXplZCBzdXJmYWNlLgo+IC0J ICoKPiAtCSAqIFRvIGZpeCB0aGlzIHByb3Blcmx5LCB3ZSBuZWVkIHRvIGhvaXN0IHRoZSBjaGVj a3MgdXAgaW50bwo+IC0JICogY29tcHV0ZV9tb2RlX2NoYW5nZXMgKG9yIGFib3ZlKSwgY2hlY2sg dGhlIGFjdHVhbCBwZml0IHN0YXRlIGFuZAo+IC0JICogd2hldGhlciB0aGUgcGxhdGZvcm0gYWxs b3dzIHBmaXQgZGlzYWJsZSB3aXRoIHBpcGUgYWN0aXZlLCBhbmQgb25seQo+IC0JICogdGhlbiB1 cGRhdGUgdGhlIHBpcGVzcmMgYW5kIHBmaXQgc3RhdGUsIGV2ZW4gb24gdGhlIGZsaXAgcGF0aC4K PiAgCSAqLwo+ICAKPiAtCWFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGU7Cj4gLQo+ICAJSTkxNV9XUklURShQSVBFU1JDKGNydGMtPnBpcGUpLAo+IC0JCSAg ICgoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAtIDEpIDw8IDE2KSB8Cj4gLQkJICAgKGFk anVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXkgLSAxKSk7Cj4gLQlpZiAoIWNydGMtPmNvbmZpZy0+ cGNoX3BmaXQuZW5hYmxlZCAmJgo+IC0JICAgIChpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElO VEVMX09VVFBVVF9MVkRTKSB8fAo+IC0JICAgICBpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElO VEVMX09VVFBVVF9FRFApKSkgewo+IC0JCUk5MTVfV1JJVEUoUEZfQ1RMKGNydGMtPnBpcGUpLCAw KTsKPiAtCQlJOTE1X1dSSVRFKFBGX1dJTl9QT1MoY3J0Yy0+cGlwZSksIDApOwo+IC0JCUk5MTVf V1JJVEUoUEZfV0lOX1NaKGNydGMtPnBpcGUpLCAwKTsKPiArCQkgICAoKHBpcGVfY29uZmlnLT5w aXBlX3NyY193IC0gMSkgPDwgMTYpIHwKPiArCQkgICAocGlwZV9jb25maWctPnBpcGVfc3JjX2gg LSAxKSk7Cj4gKwo+ICsJLyogb24gc2t5bGFrZSB0aGlzIGlzIGRvbmUgYnkgZGV0YWNoaW5nIHNj YWxlcnMgKi8KPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA9PSA5KSB7Cj4gKwkJc2tsX2Rl dGFjaF9zY2FsZXJzKGNydGMpOwo+ICsKPiArCQlpZiAocGlwZV9jb25maWctPnBjaF9wZml0LmVu YWJsZWQpCj4gKwkJCXNreWxha2VfcGZpdF9lbmFibGUoY3J0Yyk7Cj4gKwl9Cj4gKwllbHNlIGlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkgJiYKPiArCSAgICAgICAgIEhBU19QQ0hfU1BMSVQo ZGV2KSkgewo+ICsJCWlmIChwaXBlX2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkKPiArCQkJaXJv bmxha2VfcGZpdF9lbmFibGUoY3J0Yyk7Cj4gKwkJZWxzZSBpZiAob2xkX2NydGNfc3RhdGUtPnBj aF9wZml0LmVuYWJsZWQpCj4gKwkJCWlyb25sYWtlX3BmaXRfZGlzYWJsZShjcnRjLCB0cnVlKTsK PiAgCX0KPiAtCWNydGMtPmNvbmZpZy0+cGlwZV9zcmNfdyA9IGFkanVzdGVkX21vZGUtPmNydGNf aGRpc3BsYXk7Cj4gLQljcnRjLT5jb25maWctPnBpcGVfc3JjX2ggPSBhZGp1c3RlZF9tb2RlLT5j cnRjX3ZkaXNwbGF5Owo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9mZGlfbm9ybWFsX3Ry YWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiBAQCAtNTAwMyw3ICs1MDExLDcgQEAgc3RhdGlj IHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAl9Cj4g IH0KPiAgCj4gLXN0YXRpYyB2b2lkIGlyb25sYWtlX3BmaXRfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPiArc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLCBib29sIGZvcmNlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IEBAIC01MDExLDcgKzUwMTksNyBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAo+ICAJ LyogVG8gYXZvaWQgdXBzZXR0aW5nIHRoZSBwb3dlciB3ZWxsIG9uIGhhc3dlbGwgb25seSBkaXNh YmxlIHRoZSBwZml0IGlmCj4gIAkgKiBpdCdzIGluIHVzZS4gVGhlIGh3IHN0YXRlIGNvZGUgd2ls bCBtYWtlIHN1cmUgd2UgZ2V0IHRoaXMgcmlnaHQuICovCj4gLQlpZiAoY3J0Yy0+Y29uZmlnLT5w Y2hfcGZpdC5lbmFibGVkKSB7Cj4gKwlpZiAoZm9yY2UgfHwgY3J0Yy0+Y29uZmlnLT5wY2hfcGZp dC5lbmFibGVkKSB7Cj4gIAkJSTkxNV9XUklURShQRl9DVEwocGlwZSksIDApOwo+ICAJCUk5MTVf V1JJVEUoUEZfV0lOX1BPUyhwaXBlKSwgMCk7Cj4gIAkJSTkxNV9XUklURShQRl9XSU5fU1oocGlw ZSksIDApOwo+IEBAIC01MDM4LDcgKzUwNDYsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRj X2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAgCWludGVsX2Rpc2FibGVfcGlw ZShpbnRlbF9jcnRjKTsKPiAgCj4gLQlpcm9ubGFrZV9wZml0X2Rpc2FibGUoaW50ZWxfY3J0Yyk7 Cj4gKwlpcm9ubGFrZV9wZml0X2Rpc2FibGUoaW50ZWxfY3J0YywgZmFsc2UpOwo+ICAKPiAgCWlm IChpbnRlbF9jcnRjLT5jb25maWctPmhhc19wY2hfZW5jb2RlcikKPiAgCQlpcm9ubGFrZV9mZGlf ZGlzYWJsZShjcnRjKTsKPiBAQCAtNTEwMSw3ICs1MTA5LDcgQEAgc3RhdGljIHZvaWQgaGFzd2Vs bF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID09IDkpCj4gIAkJc2t5bGFrZV9zY2FsZXJfZGlzYWJsZShpbnRlbF9jcnRjKTsK PiAgCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOSkKPiAtCQlpcm9ubGFrZV9wZml0 X2Rpc2FibGUoaW50ZWxfY3J0Yyk7Cj4gKwkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKGludGVsX2Ny dGMsIGZhbHNlKTsKPiAgCWVsc2UKPiAgCQlNSVNTSU5HX0NBU0UoSU5URUxfSU5GTyhkZXYpLT5n ZW4pOwo+ICAKPiBAQCAtMTIyNDYsNyArMTIyNTQsNiBAQCBzdGF0aWMgYm9vbCBpbnRlbF9mdXp6 eV9jbG9ja19jaGVjayhpbnQgY2xvY2sxLCBpbnQgY2xvY2syKQo+ICAJCQkgICAgYmFzZS5oZWFk KSBcCj4gIAkJaWYgKG1hc2sgJiAoMSA8PChpbnRlbF9jcnRjKS0+cGlwZSkpCj4gIAo+IC0KPiAg c3RhdGljIGJvb2wKPiAgaW50ZWxfY29tcGFyZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVk IGludCBuLAo+ICAJCSAgdW5zaWduZWQgaW50IG0yLCB1bnNpZ25lZCBpbnQgbjIsCj4gQEAgLTEy NDY3LDggKzEyNDc0LDE2IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfTlZTWU5DKTsKPiAgCX0KPiAg Cj4gLQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY193KTsKPiAtCVBJUEVfQ09ORl9DSEVDS19J KHBpcGVfc3JjX2gpOwo+ICsJaWYgKCFhZGp1c3QpIHsKPiArCQlQSVBFX0NPTkZfQ0hFQ0tfSShw aXBlX3NyY193KTsKPiArCQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY19oKTsKPiArCj4gKwkJ UElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQuZW5hYmxlZCk7Cj4gKwkJaWYgKGN1cnJlbnRfY29u ZmlnLT5wY2hfcGZpdC5lbmFibGVkKSB7Cj4gKwkJCVBJUEVfQ09ORl9DSEVDS19JKHBjaF9wZml0 LnBvcyk7Cj4gKwkJCVBJUEVfQ09ORl9DSEVDS19JKHBjaF9wZml0LnNpemUpOwo+ICsJCX0KPiAr CX0KCldoYXQncyB0aGlzIGhhY2sgbm93PyBBcmVuJ3QgeW91IGNvbXB1dGluZyB0aGUgY29ycmVj dCBjb25maWcgb3Igd2h5IGRvCnlvdSBuZWVkIHRvIHNraXAgdGhlIHN0YXRlIGNoZWNrPwoKPiAg Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSShnbWNoX3BmaXQuY29udHJvbCk7Cj4gIAkvKiBwZml0IHJh dGlvcyBhcmUgYXV0b2NvbXB1dGVkIGJ5IHRoZSBodyBvbiBnZW40KyAqLwo+IEBAIC0xMjQ3Niwx MiArMTI0OTEsNiBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gIAkJUElQRV9DT05GX0NIRUNLX0koZ21jaF9wZml0LnBnbV9yYXRpb3MpOwo+ICAJ UElQRV9DT05GX0NIRUNLX0koZ21jaF9wZml0Lmx2ZHNfYm9yZGVyX2JpdHMpOwo+ICAKPiAtCVBJ UEVfQ09ORl9DSEVDS19JKHBjaF9wZml0LmVuYWJsZWQpOwo+IC0JaWYgKGN1cnJlbnRfY29uZmln LT5wY2hfcGZpdC5lbmFibGVkKSB7Cj4gLQkJUElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQucG9z KTsKPiAtCQlQSVBFX0NPTkZfQ0hFQ0tfSShwY2hfcGZpdC5zaXplKTsKPiAtCX0KPiAtCj4gIAlQ SVBFX0NPTkZfQ0hFQ0tfSShzY2FsZXJfc3RhdGUuc2NhbGVyX2lkKTsKPiAgCj4gIAkvKiBCRFcr IGRvbid0IGV4cG9zZSBhIHN5bmNocm9ub3VzIHdheSB0byByZWFkIHRoZSBzdGF0ZSAqLwo+IEBA IC0xMjY0NCw3ICsxMjY1Myw4IEBAIGNoZWNrX2NydGNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiAgCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsICpzd19jb25maWc7Cj4gIAkJYm9vbCBhY3RpdmU7 Cj4gIAo+IC0JCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkpCj4gKwkJaWYgKCFuZWVk c19tb2Rlc2V0KGNydGMtPnN0YXRlKSAmJgo+ICsJCSAgICAhdG9faW50ZWxfY3J0Y19zdGF0ZShj cnRjLT5zdGF0ZSktPnVwZGF0ZV9waXBlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJX19kcm1f YXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yywgb2xkX2NydGNfc3RhdGUpOwo+ IEBAIC0xMjk0MCw3ICsxMjk1MCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlw ZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ ICAKPiAtCj4gIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUt PmRldjsKPiBAQCAtMTMwMzEsNiArMTMwNDAsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJCXRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0+c3RhdGUpLAo+ICAJCQkJCXBpcGVfY29uZmlnLCB0cnVlKSkgewo+ICAJCQljcnRjX3N0 YXRlLT5tb2RlX2NoYW5nZWQgPSBmYWxzZTsKPiArCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRj X3N0YXRlKS0+dXBkYXRlX3BpcGUgPSB0cnVlOwo+ICAJCX0KPiAgCj4gIAkJaWYgKG5lZWRzX21v ZGVzZXQoY3J0Y19zdGF0ZSkpIHsKPiBAQCAtMTMxMjgsMTYgKzEzMTM4LDMwIEBAIHN0YXRpYyBp bnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJZm9yX2Vh Y2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ICAJCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCQlib29s IG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKTsKPiArCQlib29sIHVwZGF0ZV9w aXBlID0gIW1vZGVzZXQgJiYKPiArCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSkt PnVwZGF0ZV9waXBlOwo+ICsJCXVuc2lnbmVkIGxvbmcgcHV0X2RvbWFpbnMgPSAwOwo+ICAKPiAg CQlpZiAobW9kZXNldCAmJiBjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7Cj4gIAkJCXVwZGF0ZV9zY2Fu bGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4gIAkJCWRldl9wcml2LT5kaXNwbGF5 LmNydGNfZW5hYmxlKGNydGMpOwo+ICAJCX0KPiAgCj4gKwkJaWYgKHVwZGF0ZV9waXBlKSB7Cj4g KwkJCXB1dF9kb21haW5zID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKGNydGMpOwo+ ICsKPiArCQkJLyogbWFrZSBzdXJlIGludGVsX21vZGVzZXRfY2hlY2tfc3RhdGUgcnVucyAqLwo+ ICsJCQlhbnlfbXMgPSB0cnVlOwo+ICsJCX0KPiArCj4gIAkJaWYgKCFtb2Rlc2V0KQo+ICAJCQlp bnRlbF9wcmVfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwo+ICAKPiAgCQlkcm1fYXRvbWljX2hl bHBlcl9jb21taXRfcGxhbmVzX29uX2NydGMoY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJCWlmIChwdXRf ZG9tYWlucykKPiArCQkJbW9kZXNldF9wdXRfcG93ZXJfZG9tYWlucyhkZXZfcHJpdiwgcHV0X2Rv bWFpbnMpOwo+ICsKPiAgCQlpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShpbnRlbF9jcnRjKTsKPiAg CX0KPiAgCj4gQEAgLTEzNDU0LDEwICsxMzQ3OCw2IEBAIGludGVsX2NvbW1pdF9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZl KQo+ICAJCXJldHVybjsKPiAgCj4gLQlpZiAoc3RhdGUtPnZpc2libGUpCj4gLQkJLyogRklYTUU6 IGtpbGwgdGhpcyBmYXN0Ym9vdCBoYWNrICovCj4gLQkJaW50ZWxfdXBkYXRlX3BpcGVfc2l6ZShp bnRlbF9jcnRjKTsKPiAtCj4gIAlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfcHJpbWFyeV9wbGFu ZShjcnRjLCBmYiwgY3J0Yy0+eCwgY3J0Yy0+eSk7Cj4gIH0KPiAgCj4gQEAgLTEzNDc2LDYgKzEz NDk2LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9Cj4gKwkJdG9faW50 ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7Cj4gKwlib29sIG1vZGVzZXQgPSBuZWVkc19t b2Rlc2V0KGNydGMtPnN0YXRlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0 ZV93bV9wcmUpCj4gIAkJaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7Cj4gQEAgLTEzNDg0 LDcgKzEzNTA3LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiAgCWlmIChjcnRjLT5zdGF0ZS0+YWN0aXZlKQo+ICAJCWludGVs X3BpcGVfdXBkYXRlX3N0YXJ0KGludGVsX2NydGMsICZpbnRlbF9jcnRjLT5zdGFydF92YmxfY291 bnQpOwo+ICAKPiAtCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkgJiYgSU5URUxfSU5G TyhkZXYpLT5nZW4gPj0gOSkKPiArCWlmIChtb2Rlc2V0KQo+ICsJCXJldHVybjsKPiArCj4gKwlp ZiAodG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSktPnVwZGF0ZV9waXBlKQo+ICsJCWlu dGVsX3VwZGF0ZV9waXBlX2NvbmZpZyhpbnRlbF9jcnRjLCBvbGRfaW50ZWxfc3RhdGUpOwo+ICsJ ZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKPiAgCQlza2xfZGV0YWNoX3NjYWxl cnMoaW50ZWxfY3J0Yyk7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRl eCAyMmRjOGI2YjQxOTguLjczYjI1NGJjZDQ1MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gQEAgLTMzNyw2ICszMzcsOCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gICNk ZWZpbmUgUElQRV9DT05GSUdfUVVJUktfTU9ERV9TWU5DX0ZMQUdTCSgxPDwwKSAvKiB1bnJlbGlh YmxlIHN5bmMgbW9kZS5mbGFncyAqLwo+ICAJdW5zaWduZWQgbG9uZyBxdWlya3M7Cj4gIAo+ICsJ Ym9vbCB1cGRhdGVfcGlwZTsKPiArCj4gIAkvKiBQaXBlIHNvdXJjZSBzaXplIChpZS4gcGFuZWwg Zml0dGVyIGlucHV0IHNpemUpCj4gIAkgKiBBbGwgcGxhbmVzIHdpbGwgYmUgcG9zaXRpb25lZCBp bnNpZGUgdGhpcyBzcGFjZSwKPiAgCSAqIGFuZCBnZXQgY2xpcHBlZCBhdCB0aGUgZWRnZXMuICov Cj4gLS0gCj4gMi4xLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK