From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 6/8] drm/i915: Calculate ILK-style watermarks during atomic check (v2) Date: Mon, 6 Jul 2015 11:13:09 +0200 Message-ID: <20150706091309.GM2156@phenom.ffwll.local> References: <1435803961-30079-1-git-send-email-matthew.d.roper@intel.com> <1435803961-30079-7-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com [209.85.212.174]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3CAD56E807 for ; Mon, 6 Jul 2015 02:10:22 -0700 (PDT) Received: by wiclp1 with SMTP id lp1so14609679wic.0 for ; Mon, 06 Jul 2015 02:10:21 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1435803961-30079-7-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdWwgMDEsIDIwMTUgYXQgMDc6MjU6NTlQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBDYWxjdWxhdGUgcGlwZSB3YXRlcm1hcmtzIGR1cmluZyBhdG9taWMgY2FsY3VsYXRpb24g cGhhc2UsIGJhc2VkIG9uIHRoZQo+IGNvbnRlbnRzIG9mIHRoZSBhdG9taWMgdHJhbnNhY3Rpb24n cyBzdGF0ZSBzdHJ1Y3R1cmUuICBXZSBzdGlsbCBwcm9ncmFtCj4gdGhlIHdhdGVybWFya3MgYXQg dGhlIHNhbWUgdGltZSB3ZSBkaWQgYmVmb3JlLCBidXQgdGhlIGNvbXB1dGF0aW9uIG5vdwo+IGhh cHBlbnMgbXVjaCBlYXJsaWVyLgo+IAo+IFdoaWxlIHRoaXMgcGF0Y2ggaXNuJ3QgdG9vIGV4Y2l0 aW5nIGJ5IGl0c2VsZiwgaXQgcGF2ZXMgdGhlIHdheSBmb3IKPiBmdXR1cmUgcGF0Y2hlcy4gIFRo ZSBldmVudHVhbCBnb2FsICh3aGljaCB3aWxsIGJlIHJlYWxpemVkIGluIGZ1dHVyZQo+IHBhdGNo ZXMgaW4gdGhpcyBzZXJpZXMpIGlzIHRvIGNhbGN1bGF0ZSBtdWx0aXBsZSBzZXRzIHVwIHdhdGVy bWFyawo+IHZhbHVlcyB1cCBmcm9udCwgYW5kIHRoZW4gcHJvZ3JhbSB0aGVtIGF0IGRpZmZlcmVu dCB0aW1lcyAocHJlLSB2cwo+IHBvc3QtdmJsYW5rKSBvbiB0aGUgcGxhdGZvcm1zIHRoYXQgbmVl ZCBhIHR3by1zdGVwIHdhdGVybWFyayB1cGRhdGUuCj4gCj4gV2hpbGUgd2UncmUgYXQgaXQsIHMv aW50ZWxfY29tcHV0ZV9waXBlX3dtL2lsa19jb21wdXRlX3BpcGVfd20vIHNpbmNlCj4gdGhpcyBm dW5jdGlvbiBvbmx5IGFwcGxpZXMgdG8gSUxLLXN0eWxlIHdhdGVybWFya3MgYW5kIHdlIGhhdmUg YQo+IGNvbXBsZXRlbHkgZGlmZmVyZW50IGZ1bmN0aW9uIGZvciBTS0wtc3R5bGUgd2F0ZXJtYXJr cy4KPiAKPiBOb3RlIHRoYXQgdGhlIG9yaWdpbmFsIGNvZGUgaGFkIGEgbWVtY21wKCkgaW4gaWxr X3VwZGF0ZV93bSgpIHRvIGF2b2lkCj4gY2FsbGluZyBpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKCkg aWYgdGhlIHdhdGVybWFya3MgaGFkbid0IGNoYW5nZWQuICBUaGlzCj4gbWVtY21wIHZhbmlzaGVz IGhlcmUsIHdoaWNoIG1lYW5zIHdlIG1heSBkbyBzb21lIHVubmVjZXNzYXJ5IHJlc3VsdAo+IGdl bmVyYXRpb24gYW5kIG1lcmdpbmcgaW4gY2FzZXMgd2hlcmUgd2F0ZXJtYXJrcyBkaWRuJ3QgY2hh bmdlLCBidXQgdGhlCj4gbG93ZXItbGV2ZWwgZnVuY3Rpb24gaWxrX3dyaXRlX3dtX3ZhbHVlcyBh bHJlYWR5IG1ha2VzIHN1cmUgdGhhdCB3ZQo+IGRvbid0IGFjdHVhbGx5IHRyeSB0byBwcm9ncmFt IHRoZSB3YXRlcm1hcmsgcmVnaXN0ZXJzIGFnYWluLgo+IAo+IHYyOiBTcXVhc2ggYSBmZXcgY29t bWl0cyBmcm9tIHRoZSBvcmlnaW5hbCBzZXJpZXMgdG9nZXRoZXI7IG5vIGxvbmdlcgo+ICAgICBs ZWF2ZSBwcmUtY2FsY3VsYXRlZCB3bSdzIGluIGEgc2VwYXJhdGUgdGVtcG9yYXJ5IHN0cnVjdHVy ZSBzaW5jZQo+ICAgICBpdCdzIGVhc2llciB0byBmb2xsb3cgdGhlIGxvZ2ljIGlmIHdlIGp1c3Qg Y3V0IG92ZXIgdG8gdXNpbmcgdGhlCj4gICAgIHByZS1jYWxjdWxhdGVkIHZhbHVlcyBkaXJlY3Rs eS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMiAr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICA2ICsrKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDZhYTgwODMuLjI3NzQ5NzYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNjIxLDYgKzYyMSw4IEBAIHN0cnVj dCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKPiAgCQkJICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xr LAo+ICAJCQkgIHN0cnVjdCBkcGxsICptYXRjaF9jbG9jaywKPiAgCQkJICBzdHJ1Y3QgZHBsbCAq YmVzdF9jbG9jayk7Cj4gKwlpbnQgKCpjb21wdXRlX3BpcGVfd20pKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CgpBbGwg dGhlIG5ldyBjYWxsYmFja3MgeW91IGFkZCBoZXJlIGFyZSBwZXItY3J0YywgYnV0IHdlIG1pZ2h0 IHdhbnQgdG8KcmViYWxhbmNlIHRoZSBmaWZvIHNwYWNlIG9uIHNvbWUgcGxhdGZvcm1zIHdoZXJl IHRoYXQncyBub3QgcGVyZmVjdGx5CnBlci1jcnRjLiBPdG9oIHRoYXQgY2FuIHdhaXQgdW50aWwg c29tZW9uZSBhY3R1YWxseSB3cml0ZXMgdGhhdCBjb2RlLAptYXliZSB3ZSdsbCBkZWNpZGUgdG8g b25seSByZWJhbGFuY2Ugd20gd2hlbiB3ZSBuZWVkIHRvIGRvIGEgbW9kZXNldAphbnl3YXkuIEkg dGhpbmsgd2UgY2FuIHN0aWNrIHdpdGggdGhpcyBmb3Igbm93LgotRGFuaWVsCgo+ICAJdm9pZCAo KnVwZGF0ZV93bSkoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAgCXZvaWQgKCp1cGRhdGVfc3By aXRlX3dtKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJCSBzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDM2YWUzZjcu LjQ2YjYyY2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTEx ODU3LDYgKzExODU3LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiArCWlmIChk ZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20pIHsKPiArCQlyZXQgPSBkZXZfcHJpdi0+ ZGlzcGxheS5jb21wdXRlX3BpcGVfd20oY3J0Yywgc3RhdGUpOwo+ICsJCWlmIChyZXQpCj4gKwkJ CXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICAJcmV0dXJuIGludGVsX2F0b21pY19zZXR1cF9zY2Fs ZXJzKGRldiwgaW50ZWxfY3J0YywgcGlwZV9jb25maWcpOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggYzIzY2Y3ZC4uMzM1YjI0YiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gQEAgLTE0NDUsNiArMTQ0NSw4IEBAIGludGVsX2F0b21pY19nZXRfY3J0 Y19zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIGludCBpbnRlbF9hdG9t aWNfc2V0dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMsCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSk7Cj4gK2ludCBpbnRlbF9jaGVja19jcnRjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkg ICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwo+ICAKPiAgLyogaW50ZWxfYXRvbWlj X3BsYW5lLmMgKi8KPiAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9jcmVhdGVfcGxh bmVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u Ywo+IGluZGV4IDBlMjg4MDYuLmM2ZTczNWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK PiBAQCAtMjAzOSw5ICsyMDM5LDExIEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX2xldmVs KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCSBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCQkJCSBpbnQgbGV2ZWwsCj4gIAkJCQkg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiArCQkJCSBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnByaXN0YXRlLAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3By c3RhdGUsCj4gKwkJCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpjdXJzdGF0ZSwKPiAgCQkJ CSBzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgKnJlc3VsdCkKPiAgewo+IC0Jc3RydWN0IGludGVsX3Bs YW5lICppbnRlbF9wbGFuZTsKPiAgCXVpbnQxNl90IHByaV9sYXRlbmN5ID0gZGV2X3ByaXYtPndt LnByaV9sYXRlbmN5W2xldmVsXTsKPiAgCXVpbnQxNl90IHNwcl9sYXRlbmN5ID0gZGV2X3ByaXYt PndtLnNwcl9sYXRlbmN5W2xldmVsXTsKPiAgCXVpbnQxNl90IGN1cl9sYXRlbmN5ID0gZGV2X3By aXYtPndtLmN1cl9sYXRlbmN5W2xldmVsXTsKPiBAQCAtMjA1MywyOSArMjA1NSwxMSBAQCBzdGF0 aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAkJY3VyX2xhdGVuY3kgKj0gNTsKPiAgCX0KPiAgCj4gLQlmb3JfZWFj aF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldl9wcml2LT5kZXYsIGludGVsX2NydGMsIGludGVsX3Bs YW5lKSB7Cj4gLQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUgPQo+IC0JCQl0b19p bnRlbF9wbGFuZV9zdGF0ZShpbnRlbF9wbGFuZS0+YmFzZS5zdGF0ZSk7Cj4gLQo+IC0JCXN3aXRj aCAoaW50ZWxfcGxhbmUtPmJhc2UudHlwZSkgewo+IC0JCWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJ TUFSWToKPiAtCQkJcmVzdWx0LT5wcmlfdmFsID0gaWxrX2NvbXB1dGVfcHJpX3dtKGNzdGF0ZSwg cHN0YXRlLAo+IC0JCQkJCQkJICAgICBwcmlfbGF0ZW5jeSwKPiAtCQkJCQkJCSAgICAgbGV2ZWwp Owo+IC0JCQlyZXN1bHQtPmZiY192YWwgPSBpbGtfY29tcHV0ZV9mYmNfd20oY3N0YXRlLCBwc3Rh dGUsCj4gLQkJCQkJCQkgICAgIHJlc3VsdC0+cHJpX3ZhbCk7Cj4gLQkJCWJyZWFrOwo+IC0JCWNh c2UgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKPiAtCQkJcmVzdWx0LT5zcHJfdmFsID0gaWxrX2Nv bXB1dGVfc3ByX3dtKGNzdGF0ZSwgcHN0YXRlLAo+IC0JCQkJCQkJICAgICBzcHJfbGF0ZW5jeSk7 Cj4gLQkJCWJyZWFrOwo+IC0JCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgo+IC0JCQlyZXN1 bHQtPmN1cl92YWwgPSBpbGtfY29tcHV0ZV9jdXJfd20oY3N0YXRlLCBwc3RhdGUsCj4gLQkJCQkJ CQkgICAgIGN1cl9sYXRlbmN5KTsKPiAtCQkJYnJlYWs7Cj4gLQkJfQo+IC0JfQo+IC0KPiArCXJl c3VsdC0+cHJpX3ZhbCA9IGlsa19jb21wdXRlX3ByaV93bShjc3RhdGUsIHByaXN0YXRlLAo+ICsJ CQkJCSAgICAgcHJpX2xhdGVuY3ksIGxldmVsKTsKPiArCXJlc3VsdC0+c3ByX3ZhbCA9IGlsa19j b21wdXRlX3Nwcl93bShjc3RhdGUsIHNwcnN0YXRlLCBzcHJfbGF0ZW5jeSk7Cj4gKwlyZXN1bHQt PmN1cl92YWwgPSBpbGtfY29tcHV0ZV9jdXJfd20oY3N0YXRlLCBjdXJzdGF0ZSwgY3VyX2xhdGVu Y3kpOwo+ICsJcmVzdWx0LT5mYmNfdmFsID0gaWxrX2NvbXB1dGVfZmJjX3dtKGNzdGF0ZSwgcHJp c3RhdGUsIHJlc3VsdC0+cHJpX3ZhbCk7Cj4gIAlyZXN1bHQtPmVuYWJsZSA9IHRydWU7Cj4gIH0K PiAgCj4gQEAgLTIzNTUsMTUgKzIzMzksMjAgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21f Y29uZmlnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIH0KPiAgCj4gIC8qIENvbXB1dGUgbmV3 IHdhdGVybWFya3MgZm9yIHRoZSBwaXBlICovCj4gLXN0YXRpYyBib29sIGludGVsX2NvbXB1dGVf cGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+IC0JCQkJICBzdHJ1Y3Qg aW50ZWxfcGlwZV93bSAqcGlwZV93bSkKPiArc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dt KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNl LmNydGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcGlwZV93bTsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjczsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSBOVUxMOwo+ICAJc3Ry dWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnBzOwo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwcmlzdGF0ZSA9IE5VTEw7Cj4gIAlz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnNwcnN0YXRlID0gTlVMTDsKPiArCXN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqY3Vyc3RhdGUgPSBOVUxMOwo+ICAJaW50IGxldmVsLCBtYXhfbGV2ZWwg PSBpbGtfd21fbWF4X2xldmVsKGRldik7Cj4gIAkvKiBMUDAgd2F0ZXJtYXJrIG1heGltdW1zIGRl cGVuZCBvbiB0aGlzIHBpcGUgYWxvbmUgKi8KPiAgCXN0cnVjdCBpbnRlbF93bV9jb25maWcgY29u ZmlnID0gewo+IEBAIC0yMzcxLDExICsyMzYwLDI2IEBAIHN0YXRpYyBib29sIGludGVsX2NvbXB1 dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJfTsKPiAgCXN0 cnVjdCBpbGtfd21fbWF4aW11bXMgbWF4Owo+ICAKPiArCWNzID0gZHJtX2F0b21pY19nZXRfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gKwlpZiAoSVNfRVJSKGNzKSkKPiArCQlyZXR1cm4gUFRS X0VSUihjcyk7Cj4gKwllbHNlCj4gKwkJY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcyk7 Cj4gKwo+ICsJcGlwZV93bSA9ICZjc3RhdGUtPndtLmFjdGl2ZS5pbGs7Cj4gKwo+ICAJZm9yX2Vh Y2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGludGVsX2NydGMsIGludGVsX3BsYW5lKSB7Cj4g LQkJaWYgKGludGVsX3BsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkg ewo+IC0JCQlzcHJzdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGludGVsX3BsYW5lLT5iYXNl LnN0YXRlKTsKPiAtCQkJYnJlYWs7Cj4gLQkJfQo+ICsJCXBzID0gZHJtX2F0b21pY19nZXRfcGxh bmVfc3RhdGUoc3RhdGUsCj4gKwkJCQkJCSZpbnRlbF9wbGFuZS0+YmFzZSk7Cj4gKwkJaWYgKElT X0VSUihwcykpCj4gKwkJCXJldHVybiBQVFJfRVJSKHBzKTsKPiArCj4gKwkJaWYgKGludGVsX3Bs YW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPiArCQkJcHJpc3RhdGUg PSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwcyk7Cj4gKwkJZWxzZSBpZiAoaW50ZWxfcGxhbmUtPmJh c2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKQo+ICsJCQlzcHJzdGF0ZSA9IHRvX2lu dGVsX3BsYW5lX3N0YXRlKHBzKTsKPiArCQllbHNlIGlmIChpbnRlbF9wbGFuZS0+YmFzZS50eXBl ID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikKPiArCQkJY3Vyc3RhdGUgPSB0b19pbnRlbF9wbGFu ZV9zdGF0ZShwcyk7Cj4gIAl9Cj4gIAo+ICAJY29uZmlnLnNwcml0ZXNfZW5hYmxlZCA9IHNwcnN0 YXRlLT52aXNpYmxlOwo+IEBAIC0yMzg0LDcgKzIzODgsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9j b21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCQlkcm1f cmVjdF9oZWlnaHQoJnNwcnN0YXRlLT5kc3QpICE9IGRybV9yZWN0X2hlaWdodCgmc3Byc3RhdGUt PnNyYykgPj4gMTY7Cj4gIAo+ICAJcGlwZV93bS0+cGlwZV9lbmFibGVkID0gY3N0YXRlLT5iYXNl LmFjdGl2ZTsKPiAtCXBpcGVfd20tPnNwcml0ZXNfZW5hYmxlZCA9IHNwcnN0YXRlLT52aXNpYmxl Owo+ICsJcGlwZV93bS0+c3ByaXRlc19lbmFibGVkID0gY29uZmlnLnNwcml0ZXNfZW5hYmxlZDsK PiAgCXBpcGVfd20tPnNwcml0ZXNfc2NhbGVkID0gY29uZmlnLnNwcml0ZXNfc2NhbGVkOwo+ICAK PiAgCS8qIElMSy9TTkI6IExQMisgd2F0ZXJtYXJrcyBvbmx5IHcvbyBzcHJpdGVzICovCj4gQEAg LTIzOTUsNyArMjM5OSw4IEBAIHN0YXRpYyBib29sIGludGVsX2NvbXB1dGVfcGlwZV93bShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJaWYgKGNvbmZpZy5zcHJpdGVzX3NjYWxl ZCkKPiAgCQltYXhfbGV2ZWwgPSAwOwo+ICAKPiAtCWlsa19jb21wdXRlX3dtX2xldmVsKGRldl9w cml2LCBpbnRlbF9jcnRjLCAwLCBjc3RhdGUsICZwaXBlX3dtLT53bVswXSk7Cj4gKwlpbGtfY29t cHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgMCwgY3N0YXRlLAo+ICsJCQkgICAg IHByaXN0YXRlLCBzcHJzdGF0ZSwgY3Vyc3RhdGUsICZwaXBlX3dtLT53bVswXSk7Cj4gIAo+ICAJ aWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKPiAgCQlwaXBlX3dtLT5s aW5ldGltZSA9IGhzd19jb21wdXRlX2xpbmV0aW1lX3dtKGRldiwgY3J0Yyk7Cj4gQEAgLTI0MDUs MTQgKzI0MTAsMTUgQEAgc3RhdGljIGJvb2wgaW50ZWxfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIAo+ICAJLyogQXQgbGVhc3QgTFAwIG11c3QgYmUg dmFsaWQgKi8KPiAgCWlmICghaWxrX3ZhbGlkYXRlX3dtX2xldmVsKDAsICZtYXgsICZwaXBlX3dt LT53bVswXSkpCj4gLQkJcmV0dXJuIGZhbHNlOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICAKPiAg CWlsa19jb21wdXRlX3dtX3JlZ19tYXhpbXVtcyhkZXYsIDEsICZtYXgpOwo+ICAKPiAgCWZvciAo bGV2ZWwgPSAxOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKPiAgCQlzdHJ1Y3QgaW50 ZWxfd21fbGV2ZWwgd20gPSB7fTsKPiAgCj4gLQkJaWxrX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3By aXYsIGludGVsX2NydGMsIGxldmVsLCBjc3RhdGUsICZ3bSk7Cj4gKwkJaWxrX2NvbXB1dGVfd21f bGV2ZWwoZGV2X3ByaXYsIGludGVsX2NydGMsIGxldmVsLCBjc3RhdGUsCj4gKwkJCQkgICAgIHBy aXN0YXRlLCBzcHJzdGF0ZSwgY3Vyc3RhdGUsICZ3bSk7Cj4gIAo+ICAJCS8qCj4gIAkJICogRGlz YWJsZSBhbnkgd2F0ZXJtYXJrIGxldmVsIHRoYXQgZXhjZWVkcyB0aGUKPiBAQCAtMjQyNSw3ICsy NDMxLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsCj4gIAkJcGlwZV93bS0+d21bbGV2ZWxdID0gd207Cj4gIAl9Cj4g IAo+IC0JcmV0dXJuIHRydWU7Cj4gKwlyZXR1cm4gMDsKPiAgfQo+ICAKPiAgLyoKPiBAQCAtMzc1 Miw3ICszNzU4LDYgQEAgc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50ZWxf Y3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gLQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBwaXBlX3dt ID0ge307Cj4gIAo+ICAJLyoKPiAgCSAqIElWQiB3b3JrYXJvdW5kOiBtdXN0IGRpc2FibGUgbG93 IHBvd2VyIHdhdGVybWFya3MgZm9yIGF0IGxlYXN0Cj4gQEAgLTM3NjYsMTMgKzM3NzEsNiBAQCBz dGF0aWMgdm9pZCBpbGtfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQlpbnRl bF93YWl0X2Zvcl92YmxhbmsoY3J0Yy0+ZGV2LCBpbnRlbF9jcnRjLT5waXBlKTsKPiAgCX0KPiAg Cj4gLQlpbnRlbF9jb21wdXRlX3BpcGVfd20oY3N0YXRlLCAmcGlwZV93bSk7Cj4gLQo+IC0JaWYg KCFtZW1jbXAoJmNzdGF0ZS0+d20uYWN0aXZlLmlsaywgJnBpcGVfd20sIHNpemVvZihwaXBlX3dt KSkpCj4gLQkJcmV0dXJuOwo+IC0KPiAtCWNzdGF0ZS0+d20uYWN0aXZlLmlsayA9IHBpcGVfd207 Cj4gLQo+ICAJaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhkZXZfcHJpdik7Cj4gIH0KPiAgCj4gQEAg LTcwNDksNiArNzA0Nyw3IEBAIHZvaWQgaW50ZWxfaW5pdF9wbShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAJCSAgICAoIUlTX0dFTjUoZGV2KSAmJiBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lb MF0gJiYKPiAgCQkgICAgIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVswXSAmJiBkZXZfcHJpdi0+ d20uY3VyX2xhdGVuY3lbMF0pKSB7Cj4gIAkJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9 IGlsa191cGRhdGVfd207Cj4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfcGlwZV93bSA9 IGlsa19jb21wdXRlX3BpcGVfd207Cj4gIAkJfSBlbHNlIHsKPiAgCQkJRFJNX0RFQlVHX0tNUygi RmFpbGVkIHRvIHJlYWQgZGlzcGxheSBwbGFuZSBsYXRlbmN5LiAiCj4gIAkJCQkgICAgICAiRGlz YWJsZSBDeFNSXG4iKTsKPiAtLSAKPiAyLjEuNAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBF bmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK