From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 08/42] drm/i915: Implement intel_crtc_toggle using atomic state Date: Mon, 11 May 2015 20:12:30 +0200 Message-ID: <20150511181230.GO15256@phenom.ffwll.local> References: <1431354318-11995-1-git-send-email-maarten.lankhorst@linux.intel.com> <1431354318-11995-9-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 mail-wg0-f53.google.com (mail-wg0-f53.google.com [74.125.82.53]) by gabe.freedesktop.org (Postfix) with ESMTP id 6CE716E16A for ; Mon, 11 May 2015 11:10:10 -0700 (PDT) Received: by wgiu9 with SMTP id u9so136738769wgi.3 for ; Mon, 11 May 2015 11:10:09 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1431354318-11995-9-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: Ander Conselvan de Oliveira , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMTEsIDIwMTUgYXQgMDQ6MjQ6NDRQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQXNzdW1lIHRoZSBmdW5jdGlvbiBpcyBsb2NrZWQgd2l0aCBkcm1fbW9kZXNl dF9sb2NrX2FsbCBmb3Igbm93LgoKcy90b2dnbGUvY29udHJvbC8gaW4gdGhlIGNvbW1pdCBtZXNz YWdlLgoKQW5kIGEgYml0IG9mIGJsYWJsYSB3b3VsZCBiZSBnb29kIHRvIGV4cGxhaW4gd2h5IHdl IG5lZWQgdG8gbWFrZSBhCm1hc3MtcmVwbGFjZW1lbnQgb2Ygc3RhdGUtPmVuYWJsZSB0byBzdGF0 ZS0+YWN0aXZlIGhlcmUgbm93LiBBbmQgbG9va2luZwphdCB0aGUgZW5hYmxlL2FjdGl2ZSByZXBs YWNlbWVudCBpbiBkZXRhaWwgSSB0aGluayB3ZSBzaG91bGQgZG8gdGhpcyBpbiBhbgp1cGZyb250 IHBhdGNoIGZpcnN0ICh0aGUgc3RhdGUgc2hvdWxkIGJlIGNvbnNpc3RlbnQgYWxyZWFkeSkuIEFu ZCBoYXZlIHRoZQpyZXdvcmtpbmcgb2YgaW50ZWxfY3J0Y19jb250cm9sIGluIGEgc2VwYXJhdGUg c3BsaXQtb3V0IHBhdGNoLgoKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFh cnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgfCA3OSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiAg MiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCA5ZGE5NTVlNGYzNTUuLmE2ODE2NTAzYTA4MCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC03OTYsNyArNzk2LDcgQEAgc3RhdGlj IGludCBpOTE1X2dldF92YmxhbmtfdGltZXN0YW1wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBwaXBlLAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCWlmICghY3J0Yy0+c3Rh dGUtPmVuYWJsZSkgewo+ICsJaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7Cj4gIAkJRFJNX0RF QlVHX0tNUygiY3J0YyAlZCBpcyBkaXNhYmxlZFxuIiwgcGlwZSk7Cj4gIAkJcmV0dXJuIC1FQlVT WTsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggOGMyZmI5 NTEwMjliLi5hMjFiMmU1MWMwNTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCgpPbmUgcy9zdGF0ZS0+ZW5hYmxlL3N0YXRlLT5hY3RpdmUvIGluIG1vZGVzZXRfdXBkYXRl X2NydGNfcG93ZXJfZG9tYWlucwpzZWVtcyB0byBiZSBtaXNzaW5nLgoKPiBAQCAtNDY1Niw3ICs0 NjU2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19sb2FkX2x1dChzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIAlib29sIHJlZW5hYmxlX2lwcyA9IGZhbHNlOwo+ICAKPiAgCS8qIFRoZSBjbG9j a3MgaGF2ZSB0byBiZSBvbiB0byBsb2FkIHRoZSBwYWxldHRlLiAqLwo+IC0JaWYgKCFjcnRjLT5z dGF0ZS0+ZW5hYmxlIHx8ICFpbnRlbF9jcnRjLT5hY3RpdmUpCj4gKwlpZiAoIWNydGMtPnN0YXRl LT5hY3RpdmUgfHwgIWludGVsX2NydGMtPmFjdGl2ZSkKClJlcGxhY2UgdGhlIGNoZWNrIGZvciBp bnRlbF9jcnRjLT5hY3RpdmUgd2l0aCBhIFdBUk5fT04/Cgo+ICAJCXJldHVybjsKPiAgCj4gIAlp ZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdi0+ZGV2KSkgewo+IEBAIC01NzY3LDcgKzU3Njcs NyBAQCBzdGF0aWMgaW50IHZhbGxleXZpZXdfbW9kZXNldF9nbG9iYWxfcGlwZXMoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAKPiAgCS8qIGFkZCBhbGwgYWN0aXZlIHBpcGVzIHRv IHRoZSBzdGF0ZSAqLwo+ICAJZm9yX2VhY2hfY3J0YyhzdGF0ZS0+ZGV2LCBjcnRjKSB7Cj4gLQkJ aWYgKCFjcnRjLT5zdGF0ZS0+ZW5hYmxlKQo+ICsJCWlmICghY3J0Yy0+c3RhdGUtPmFjdGl2ZSkK PiAgCQkJY29udGludWU7Cj4gIAo+ICAJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRj X3N0YXRlKHN0YXRlLCBjcnRjKTsKClRoZSBzZWNvbmQgc3RhdGUtPmVuYWJsZSBsb29rcyBhIGJp dCBmdW5reSwgaW1vCgoJaWYgKGNydGNfc3RhdGUtPmFjdGl2ZSkKCQljcnRjX3N0YXRlLT5hY3Rp dmVfY2hhbmdlZAoKYWZ0ZXIgdGhpcyBwYXRjaCB3b3VsZCBtYWtlIGEgbG90IG9mIHNlbnNlLiBU aGF0IHdheSB3ZSB3b24ndCB0cnkgdG8gZnJvYgpwaXBlcyB3aGljaCBhcmUgYWxyZWFkeSBvZmYu Cgo+IEBAIC01ODY1LDcgKzU4NjUsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5h YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKPiAgCWJvb2wgaXNfZHNpOwo+ICAKPiAtCVdBUk5fT04oIWNydGMtPnN0YXRlLT5lbmFibGUp Owo+ICsJV0FSTl9PTighY3J0Yy0+c3RhdGUtPmFjdGl2ZSk7CgpZb3UgZG9uJ3QgdXBkYXRlIGhh c3dlbGwvaXJvbmxha2VfY3J0Y19lbmFibGUsIHdoaWNoIGlzIGluY29uc2lzdGVudC4KCj4gIAo+ ICAJaWYgKGludGVsX2NydGMtPmFjdGl2ZSkKPiAgCQlyZXR1cm47Cj4gQEAgLTU5NDMsNyArNTk0 Myw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRj KQo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gIAlpbnQgcGlwZSA9IGludGVs X2NydGMtPnBpcGU7Cj4gIAo+IC0JV0FSTl9PTighY3J0Yy0+c3RhdGUtPmVuYWJsZSk7Cj4gKwlX QVJOX09OKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+YWN0 aXZlKQo+ICAJCXJldHVybjsKCmludGVsX2Nvbm5lY3Rvcl9jaGVja19zdGF0ZSBzaG91bGQgZ2Fp biBhCgoJCQlJOTE1X1NUQVRFX1dBUk4oIWNydGMtPnN0YXRlLT5hY3RpdmUsCgkJCQkJImNydGMg bm90IGFjdGl2ZVxuIik7CgppbW8uCgpTaW1pbGFyIGZvciBjaGVja19jcnRjX3N0YXRlOgoKCQlJ OTE1X1NUQVRFX1dBUk4oYWN0aXZlICE9IGNydGMtPnN0YXRlLT5hY3RpdmUsCgkJICAgICAiY3J0 YydzIGNvbXB1dGVkIGFjdGl2ZSBzdGF0ZSBkb2Vzbid0IG1hdGNoIHN3IGFjdGl2ZSBzdGF0ZSAi CgkJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIGFjdGl2ZSwgY3J0Yy0+YWN0aXZl KTsKCgo+IEBAIC02MDU0LDEwICs2MDU0LDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNh YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgdm9pZCBpbnRlbF9jcnRjX2NvbnRyb2woc3Ry dWN0IGRybV9jcnRjICpjcnRjLCBib29sIGVuYWJsZSkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcg PSAmZGV2LT5tb2RlX2NvbmZpZzsKPiArCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAq Y3R4ID0gY29uZmlnLT5hY3F1aXJlX2N0eDsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9k b21haW4gZG9tYWluOwo+IC0JdW5zaWduZWQgbG9uZyBkb21haW5zOwo+ICsJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnOwo+ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gKwlpbnQgcmV0 Owo+ICAKPiAgCWlmIChlbmFibGUgPT0gaW50ZWxfY3J0Yy0+YWN0aXZlKQo+ICAJCXJldHVybjsK PiBAQCAtNjA2NSwyNCArNjA2OCw0MCBAQCB2b2lkIGludGVsX2NydGNfY29udHJvbChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsIGJvb2wgZW5hYmxlKQo+ICAJaWYgKGVuYWJsZSAmJiAhY3J0Yy0+c3Rh dGUtPmVuYWJsZSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JY3J0Yy0+c3RhdGUtPmFjdGl2ZSA9IGVu YWJsZTsKPiAtCWlmIChlbmFibGUpIHsKPiAtCQlkb21haW5zID0gZ2V0X2NydGNfcG93ZXJfZG9t YWlucyhjcnRjKTsKPiAtCQlmb3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWluLCBkb21haW5zKQo+ IC0JCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgZG9tYWluKTsKPiAtCQlpbnRl bF9jcnRjLT5lbmFibGVkX3Bvd2VyX2RvbWFpbnMgPSBkb21haW5zOwo+ICsJLyogdGhpcyBmdW5j dGlvbiBzaG91bGQgYmUgY2FsbGVkIHdpdGggZHJtX21vZGVzZXRfbG9ja19hbGwgZm9yIG5vdyAq Lwo+ICsJaWYgKFdBUk5fT04oIWN0eCkpCj4gKwkJcmV0dXJuOwo+ICsJbG9ja2RlcF9hc3NlcnRf aGVsZCgmY3R4LT53d19jdHgpOwo+ICAKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2VuYWJs ZShjcnRjKTsKPiAtCQlpbnRlbF9jcnRjX2VuYWJsZV9wbGFuZXMoY3J0Yyk7Cj4gLQl9IGVsc2Ug ewo+IC0JCWludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoY3J0Yyk7Cj4gLQkJZGV2X3ByaXYtPmRp c3BsYXkuY3J0Y19kaXNhYmxlKGNydGMpOwo+ICsJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2Fs bG9jKGRldik7Cj4gKwlpZiAoV0FSTl9PTighc3RhdGUpKQo+ICsJCXJldHVybjsKPiAgCj4gLQkJ ZG9tYWlucyA9IGludGVsX2NydGMtPmVuYWJsZWRfcG93ZXJfZG9tYWluczsKPiAtCQlmb3JfZWFj aF9wb3dlcl9kb21haW4oZG9tYWluLCBkb21haW5zKQo+IC0JCQlpbnRlbF9kaXNwbGF5X3Bvd2Vy X3B1dChkZXZfcHJpdiwgZG9tYWluKTsKPiAtCQlpbnRlbF9jcnRjLT5lbmFibGVkX3Bvd2VyX2Rv bWFpbnMgPSAwOwo+ICsJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4Owo+ICsJc3RhdGUtPmFsbG93 X21vZGVzZXQgPSB0cnVlOwo+ICsKPiArCXBpcGVfY29uZmlnID0gaW50ZWxfYXRvbWljX2dldF9j cnRjX3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKPiArCWlmIChJU19FUlIocGlwZV9jb25maWcp KSB7Cj4gKwkJcmV0ID0gUFRSX0VSUihwaXBlX2NvbmZpZyk7Cj4gKwkJZ290byBlcnI7Cj4gIAl9 Cj4gKwlwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUgPSBlbmFibGU7Cj4gKwo+ICsJcGxhbmVfc3Rh dGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgY3J0Yy0+cHJpbWFyeSk7Cj4g KwlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgewo+ICsJCXJldCA9IFBUUl9FUlIocGxhbmVfc3Rh dGUpOwo+ICsJCWdvdG8gZXJyOwo+ICsJfQo+ICsKPiArCXJldCA9IGludGVsX3NldF9tb2RlKGNy dGMsIHN0YXRlKTsKPiArCWlmICghcmV0KQo+ICsJCXJldHVybjsKPiArCj4gKwlEUk1fRVJST1Io IkZhaWxlZCB0byB0b2dnbGUgY3J0YyFcbiIpOwo+ICsKPiArZXJyOgo+ICsJRFJNX0VSUk9SKCJV cGRhdGluZyBjcnRjIGFjdGl2ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKPiArCWRybV9hdG9t aWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC02MTU4LDcgKzYxNzcs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfY2hlY2tfc3RhdGUoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAKPiAgCQkJY3J0YyA9IGVuY29kZXItPmJhc2UuY3J0 YzsKPiAgCj4gLQkJCUk5MTVfU1RBVEVfV0FSTighY3J0Yy0+c3RhdGUtPmVuYWJsZSwKPiArCQkJ STkxNV9TVEFURV9XQVJOKCFjcnRjLT5zdGF0ZS0+YWN0aXZlLAo+ICAJCQkJCSJjcnRjIG5vdCBl bmFibGVkXG4iKTsKPiAgCQkJSTkxNV9TVEFURV9XQVJOKCF0b19pbnRlbF9jcnRjKGNydGMpLT5h Y3RpdmUsICJjcnRjIG5vdCBhY3RpdmVcbiIpOwo+ICAJCQlJOTE1X1NUQVRFX1dBUk4ocGlwZSAh PSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlLAo+IEBAIC0xMTU1NCw3ICsxMTU3Myw3IEBAIGlu dGVsX21vZGVzZXRfdXBkYXRlX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiAgCQlpZiAoIWNydGNfc3RhdGUgfHwgIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ICAJ CQljb250aW51ZTsKPiAgCj4gLQkJaWYgKGNydGMtPnN0YXRlLT5lbmFibGUpIHsKPiArCQlpZiAo Y3J0Yy0+c3RhdGUtPmFjdGl2ZSkgewo+ICAJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkcG1zX3By b3BlcnR5ID0KPiAgCQkJCWRldi0+bW9kZV9jb25maWcuZHBtc19wcm9wZXJ0eTsKPiAgCj4gQEAg LTEyMDE4LDcgKzEyMDM3LDcgQEAgY2hlY2tfc2hhcmVkX2RwbGxfc3RhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgCQkgICAgIHBsbC0+b24sIGFjdGl2ZSk7Cj4gIAo+ICAJCWZvcl9lYWNo X2ludGVsX2NydGMoZGV2LCBjcnRjKSB7Cj4gLQkJCWlmIChjcnRjLT5iYXNlLnN0YXRlLT5lbmFi bGUgJiYgaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBwbGwpCj4gKwkJCWlmIChj cnRjLT5iYXNlLnN0YXRlLT5hY3RpdmUgJiYgaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRj KSA9PSBwbGwpCj4gIAkJCQllbmFibGVkX2NydGNzKys7Cj4gIAkJCWlmIChjcnRjLT5hY3RpdmUg JiYgaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBwbGwpCj4gIAkJCQlhY3RpdmVf Y3J0Y3MrKzsKPiBAQCAtMTIxODUsNyArMTIyMDQsNyBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0 X21vZGVfc2V0dXBfcGxscyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJZ290 byBkb25lOwo+ICAKPiAgCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNf c3RhdGUsIGkpIHsKPiAtCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkgfHwgIWNydGNf c3RhdGUtPmVuYWJsZSkKPiArCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkgfHwgIWNy dGNfc3RhdGUtPmFjdGl2ZSkKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCWludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwo+IEBAIC0xMjI2NSw3ICsxMjI4NCw3IEBAIHN0YXRpYyBpbnQg X19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKm1vZGVzZXRfY3J0YywKPiAgCSAqIHBp cGVzOyBoZXJlIHdlIGFzc3VtZSBhIHNpbmdsZSBtb2Rlc2V0X3BpcGUgYW5kIG9ubHkgdHJhY2sg dGhlCj4gIAkgKiBzaW5nbGUgY3J0YyBhbmQgbW9kZS4KPiAgCSAqLwo+IC0JaWYgKHBpcGVfY29u ZmlnLT5iYXNlLmVuYWJsZSAmJiBuZWVkc19tb2Rlc2V0KCZwaXBlX2NvbmZpZy0+YmFzZSkpIHsK PiArCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUgJiYgbmVlZHNfbW9kZXNldCgmcGlwZV9j b25maWctPmJhc2UpKSB7Cj4gIAkJbW9kZXNldF9jcnRjLT5tb2RlID0gcGlwZV9jb25maWctPmJh c2UubW9kZTsKPiAgCj4gIAkJLyoKPiBAQCAtMTIyOTAsNyArMTIzMDksNyBAQCBzdGF0aWMgaW50 IF9faW50ZWxfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICptb2Rlc2V0X2NydGMsCj4gIAo+ICAJ LyogTm93IGVuYWJsZSB0aGUgY2xvY2tzLCBwbGFuZSwgcGlwZSwgYW5kIGNvbm5lY3RvcnMgdGhh dCB3ZSBzZXQgdXAuICovCj4gIAlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBj cnRjX3N0YXRlLCBpKSB7Cj4gLQkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSB8fCAh Y3J0Yy0+c3RhdGUtPmVuYWJsZSkKCldoeSBkaWQgeW91IGRyb3AgdGhpcyBuZWVkc19tb2Rlc2V0 IGNoZWNrIGhlcmU/IFdvbid0IHRoaXMgbGVhZCB0byBhbgplbmFibGVkIHBpcGUgZ2V0dGluZyBl bmFibGVkIGFnYWluLCB3aGljaCBpcyB0cm91Ymxlc29tZT8KCj4gKwkJaWYgKCFjcnRjLT5zdGF0 ZS0+YWN0aXZlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJdXBkYXRlX3NjYW5saW5lX29mZnNl dCh0b19pbnRlbF9jcnRjKGNydGMpKTsKCl9faW50ZWxfbW9kZV9zZXQgYWxzbyBzZWVtcyB0byBo YXZlIHNvbWUgdHJvdWJsZXNvbWUgdXNlIG9mIHN0YXRlLT5lbmFibGUuCk9yIG1pc3NpbmcgY2hl Y2tzIGZvciBzdGF0ZS0+YWN0aXZlIG1heWJlLCBkdW5uby4KCj4gQEAgLTE0NTE2LDcgKzE0NTM1 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKPiAgCSAqIGhhdmUgYWN0aXZlIGNvbm5lY3RvcnMvZW5jb2RlcnMuICovCj4gIAlpbnRl bF9jcnRjX3VwZGF0ZV9kcG1zKCZjcnRjLT5iYXNlKTsKPiAgCj4gLQlpZiAoY3J0Yy0+YWN0aXZl ICE9IGNydGMtPmJhc2Uuc3RhdGUtPmVuYWJsZSkgewo+ICsJaWYgKGNydGMtPmFjdGl2ZSAhPSBj cnRjLT5iYXNlLnN0YXRlLT5hY3RpdmUpIHsKPiAgCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcjsKPiAgCj4gIAkJLyogVGhpcyBjYW4gaGFwcGVuIGVpdGhlciBkdWUgdG8gYnVncyBpbiB0 aGUgZ2V0X2h3X3N0YXRlCj4gQEAgLTE0NjY1LDcgKzE0Njg0LDcgQEAgc3RhdGljIHZvaWQgaW50 ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ ICAJCWNydGMtPmNvbmZpZy0+cXVpcmtzIHw9IFBJUEVfQ09ORklHX1FVSVJLX0lOSEVSSVRFRF9N T0RFOwo+ICAKPiAtCQlpZiAoY3J0Yy0+YWN0aXZlKQo+ICsJCWlmIChjcnRjLT5iYXNlLnN0YXRl LT5hY3RpdmUpCj4gIAkJCSpjcnRjX21hc2sgfD0gZHJtX2NydGNfaW5kZXgoJmNydGMtPmJhc2Up Owo+ICAKPiAgCQljcnRjLT5hY3RpdmUgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25m aWcoY3J0YywKClRoZXNlIHR3byBodW5rcyBsb29rIGxpa2UgZm9sbG93LXVwIG9yIGluZGVwZW5k YW50IHdvcmsgdG8gc3dpdGNoIGZyb20KaW50ZWxfY3J0Yy0+YWN0aXZlIHRvIHN0YXRlLT5hY3Rp dmUuIEltbyBiZXR0ZXIgc2VwYXJhdGUuCgpDaGVlcnMsIERhbmllbAo+IC0tIAo+IDIuMS4wCj4g Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0t IApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRw Oi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=